{
  "item": [
    {
      "name": "Withdrawals",
      "description": {
        "content": "Вывод собственных средств на криптокошелёк.",
        "type": "text/plain"
      },
      "item": [
        {
          "name": "Вывести средства",
          "request": {
            "name": "Вывести средства",
            "description": {
              "content": "Сумма списывается с баланса сразу и замораживается до отправки\nтранзакции. Ответ приходит в состоянии `PENDING`: отправка\nв сеть происходит фоном, и об её исходе платформа сообщает\nуведомлением.\n            \nАдрес и сеть обязаны соответствовать друг другу — перевод в чужую\nсеть необратим, и платформа этого не проверяет.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`, где body —\nсырое тело байт в байт.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "merchant",
                "withdrawals"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{\n  \"order_id\": \"order-10001\",\n  \"amount\": 1000,\n  \"currency\": \"USDT\",\n  \"address\": \"TRecipientWalletAddressExample1234\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Список выводов",
          "request": {
            "name": "Список выводов",
            "description": {
              "content": "Для сверки. Все поля фильтра необязательны: пустое тело `{}`\nвернёт последние выводы. Элементы списка — тот же объект, что отдаёт\nзапрос состояния, так что разбор нужен один.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`, где body —\nсырое тело, даже если это `{}`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "merchant",
                "withdrawals",
                "list"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Состояние вывода",
          "request": {
            "name": "Состояние вывода",
            "description": {
              "content": "Отдаются только выводы вызывающего мерчанта.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`; тела\nу запроса нет, поэтому последняя часть пуста. Для метки 1756123456\nи вывода `payout-1001` подписывается\n`1756123456./v2/merchant/withdrawals/payout-1001.` — с точкой\nна конце.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "merchant",
                "withdrawals",
                ":orderId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "orderId",
                  "description": "(Required) Идентификатор вывода, присвоенный мерчантом при создании."
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) HMAC-SHA256 от строки `{unix_timestamp}.{path}.{body}`.",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) Время запроса в секундах Unix.",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "name": "Payment",
      "description": {
        "content": "Платежи: создание заказов, состояние и сверка.",
        "type": "text/plain"
      },
      "item": [
        {
          "name": "Создать входящий платёж",
          "request": {
            "name": "Создать входящий платёж",
            "description": {
              "content": "В ответе приходит `redirect_url` — адрес платёжной страницы,\nна которую нужно отправить плательщика.\n            \nЗапрос идемпотентен по `order_id`: повтор с теми же суммой\nи валютой вернёт тот же платёж, а не создаст второй. Повтор с другой\nсуммой — отказ `DUPLICATE_ORDER`.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`, где body —\nсырое тело байт в байт. Не пересобирайте JSON перед подписью: порядок\nполей и пробелы влияют на результат.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                "incoming"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{\n  \"order_id\": \"order-10001\",\n  \"amount\": 1000,\n  \"currency\": \"RUB\",\n  \"country\": \"ru\",\n  \"callback_url\": \"https://merchant.example.com/callbacks/payments\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Создать исходящий платёж",
          "request": {
            "name": "Создать исходящий платёж",
            "description": {
              "content": "Идемпотентен по `order_id` так же, как приём.\nПодписывается строка `{unix_timestamp}.{path}.{body}`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                "outgoing"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{\n  \"order_id\": \"order-10001\",\n  \"amount\": 1000,\n  \"currency\": \"RUB\",\n  \"method\": \"SberPay\",\n  \"country\": \"ru\",\n  \"callback_url\": \"https://merchant.example.com/callbacks/payments\",\n  \"account_number\": \"2200000000000000\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Узнать состояние заказа",
          "request": {
            "name": "Узнать состояние заказа",
            "description": {
              "content": "Ищет и среди входящих, и среди исходящих платежей — помнить, чем был\nзаказ, не нужно. Отдаются только заказы вызывающего мерчанта.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`; тела\nу запроса нет, поэтому последняя часть пуста. Для метки 1756123456\nи заказа `order-1001` подписывается\n`1756123456./v2/payments/status/order-1001.` — с точкой на конце.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                "status",
                ":orderId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "orderId",
                  "description": "(Required) Идентификатор заказа, присвоенный мерчантом при создании."
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) HMAC-SHA256 от строки `{unix_timestamp}.{path}.{body}`.",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) Время запроса в секундах Unix.",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Список входящих платежей",
          "request": {
            "name": "Список входящих платежей",
            "description": {
              "content": "Для сверки в конце дня. Все поля фильтра необязательны: пустое тело\n`{}` вернёт последние заказы. Элементы списка — тот же объект,\nчто отдаёт запрос состояния, так что разбор нужен один.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`, где body —\nсырое тело, даже если это `{}`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                "incoming",
                "list"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Список исходящих платежей",
          "request": {
            "name": "Список исходящих платежей",
            "description": {
              "content": "Устроен так же, как список входящих.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                "outgoing",
                "list"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Отменить заказ",
          "request": {
            "name": "Отменить заказ",
            "description": {
              "content": "Одна отмена на оба направления: заказ ищется и среди входящих,\nи среди исходящих.\n            \nОтменить можно только незавершённый заказ. По завершённому приходит\nотказ, а не молчаливый успех.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`. Тело\nобязательно, пусть даже `{}`, и входит в подпись вместе с путём:\nподпись отмены одного заказа не подойдёт к отмене другого.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                ":orderId",
                "cancel"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "orderId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Чеки по выплате",
          "request": {
            "name": "Чеки по выплате",
            "description": {
              "content": "Подтверждения перевода, приложенные исполнителем. Только для исходящих\nзаказов. Подписывается строка `{unix_timestamp}.{path}.{body}`\nс пустым телом.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "payments",
                ":orderId",
                "receipts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "orderId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "name": "Merchant",
      "description": {
        "content": "Учётная запись мерчанта: профиль, остатки и доступные способы оплаты.",
        "type": "text/plain"
      },
      "item": [
        {
          "name": "Профиль мерчанта",
          "request": {
            "name": "Профиль мерчанта",
            "description": {},
            "url": {
              "path": [
                "v2",
                "merchant"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) HMAC-SHA256 от строки `{unix_timestamp}.{path}.{body}`; тела нет, поэтому строка кончается точкой.",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) Время запроса в секундах Unix.",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Остатки на балансах",
          "request": {
            "name": "Остатки на балансах",
            "description": {
              "content": "`settlement` — оборотный баланс: на него зачисляется приём и с него\n             уходят выплаты. `deposit` — обеспечительный.\n            \n             Пример подписываемой строки для метки 1756123456:\n             `1756123456./v2/merchant/balances.` — с точкой на конце.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "merchant",
                "balances"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) HMAC-SHA256 от строки `{unix_timestamp}.{path}.{body}`; тела нет, поэтому строка кончается точкой.",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) Время запроса в секундах Unix.",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Доступные способы оплаты и выплаты",
          "request": {
            "name": "Доступные способы оплаты и выплаты",
            "description": {
              "content": "С этого эндпоинта начинается интеграция: значения полей `method`,\n`country` и `currency` подставляются в запрос создания заказа\nдословно. Комиссия платформы возвращается здесь же.\n            \nПример подписываемой строки для метки 1756123456:\n`1756123456./v2/merchant/methods.` — с точкой на конце.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "merchant",
                "methods"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) HMAC-SHA256 от строки `{unix_timestamp}.{path}.{body}`; тела нет, поэтому строка кончается точкой.",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) Время запроса в секундах Unix.",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "name": "Disputes",
      "description": {
        "content": "Споры по заказам.",
        "type": "text/plain"
      },
      "item": [
        {
          "name": "Открыть спор",
          "request": {
            "name": "Открыть спор",
            "description": {
              "content": "Спор открывается только по входящему заказу. Номер выплаты здесь\nне найдётся, и ответом будет `404 ORDER_NOT_FOUND` — тот же,\nчто на несуществующий заказ.\n            \nОстальные правила отдают `400 PAYMENT_REJECTED`:\n            \n* не позже чем через месяц с даты создания заказа;\n* по заказу уже должен быть назначен исполнитель;\n* по заказу нет открытого или удовлетворённого спора.\n            \nПовтор по отклонённому спору — не ошибка: спор переоткрывается,\nв ответе приходит тот же `dispute_id` в состоянии `OPEN`,\nа приложенные к повтору сумма, комментарий и чек заменяют прежние.\n            \nПока спор открыт, состояние самого заказа отдаётся как `PENDING`;\nход разбора смотрите в `GET /v2/disputes/{disputeId}`.\n            \nПодписывается строка `{unix_timestamp}.{path}.{body}`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "disputes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{\n  \"order_id\": \"order-10001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Список споров",
          "request": {
            "name": "Список споров",
            "description": {
              "content": "Все поля фильтра необязательны. Подписывается строка\n`{unix_timestamp}.{path}.{body}`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "disputes",
                "list"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": null,
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "name": "Состояние спора",
          "request": {
            "name": "Состояние спора",
            "description": {
              "content": "Подписывается строка `{unix_timestamp}.{path}.{body}`;\nтела у запроса нет, поэтому последняя часть пуста.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v2",
                "disputes",
                ":disputeId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "disputeId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": "(Required) Идентификатор мерчанта.",
                "key": "x-api-key",
                "value": "{{apiKey}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-signature",
                "value": "{{xSignature}}"
              },
              {
                "disabled": false,
                "description": "(Required) ",
                "key": "x-timestamp",
                "value": "{{xTimestamp}}"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": null
          },
          "response": [],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// Подписывает запрос: x-timestamp и x-signature, секрет — apiSecret из окружения. https://api-docs.fintechini.io/ru/#description/аутентификация",
          "(() => {",
          "  const noSecret = \"Впишите apiSecret (тип secret) в выбранное окружение: без него запрос не подписать\"",
          "  const notRaw = \"Тело запроса должно быть raw JSON: тело form-data и urlencoded этот скрипт подписать не может\"",
          "  const CryptoJS = require('crypto-js')",
          "  const secret = pm.environment.get('apiSecret')",
          "  if (!secret) throw new Error(noSecret)",
          "  const method = pm.request.method.toUpperCase()",
          "  const withBody = ['POST', 'PUT', 'PATCH'].includes(method)",
          "  const reqBody = pm.request.body",
          "  if (withBody && reqBody && reqBody.mode && reqBody.mode !== 'raw' && !reqBody.isEmpty()) throw new Error(notRaw)",
          "  const url = pm.variables.replaceIn(pm.request.url.toString())",
          "  pm.request.url.update(url)",
          "  const rawPath = url.replace(/^([a-z][a-z0-9+.-]*:\\/\\/)?[^/?#]*/i, '').replace(/[?#].*$/, '') || '/'",
          "  const path = rawPath",
          "    .split(/%2F/i)",
          "    .map((part) => {",
          "      try {",
          "        return decodeURIComponent(part)",
          "      } catch (e) {",
          "        return part",
          "      }",
          "    })",
          "    .join('%2F')",
          "  let body = ''",
          "  if (withBody && reqBody && reqBody.mode === 'raw') {",
          "    body = pm.variables.replaceIn(reqBody.raw || '')",
          "    reqBody.update({ mode: 'raw', raw: body, options: reqBody.options })",
          "  }",
          "  const timestamp = String(Math.floor(Date.now() / 1000))",
          "  pm.variables.set('xTimestamp', timestamp)",
          "  pm.variables.set('xSignature', CryptoJS.HmacSHA256(`${timestamp}.${path}.${body}`, secret).toString(CryptoJS.enc.Hex))",
          "})()"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api-merchant.fintechini.io",
      "type": "string",
      "description": "Адрес Merchant API"
    }
  ],
  "info": {
    "name": "FINTECHINI Merchant API (RU)",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "Запросы FINTECHINI Merchant API, собранные из спецификации OpenAPI.\n\nИмпортируйте и окружение песочницы: https://api-docs.fintechini.io/ru/postman-environment.json. Выберите его и впишите `apiKey` и `apiSecret` — ключи песочницы. Ключи держите в окружении, секрет — переменной с типом **secret**, а не в переменных коллекции: те уходят вместе с коллекцией при экспорте и передаче.\n\nКоллекция подписывает запросы сама: её pre-request script выставляет `x-timestamp` и `x-signature` по `apiSecret` выбранного окружения. Без окружения скрипт остановится с ошибкой: подписывать нечем. Для прода заведите своё окружение с адресом прода и его ключами.\n\nПодпись запроса: https://api-docs.fintechini.io/ru/#description/аутентификация",
      "type": "text/markdown"
    }
  }
}
