Перейти к содержанию

ДЕЙСТВУЮЩИЙ КОНТРАКТ

Заявки на выплату

Мерчант передаёт реквизит получателя и сумму в фиатной валюте. Платформа назначает трейдера, который переводит деньги получателю и отмечает результат. Доступные валюты и способы оплаты для выплат запрашиваются через /currencies/?operation=withdrawal.

Создать выплату

POST /api/v1/merchant/create_withdrawal/
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "merchant_order_id": "payout-20260904-001",
  "merchant_client_id": "client-1042",
  "currency_code_from": "USDT",
  "currency_code_to": "UZS",
  "amount": "200000",
  "requisite_type": "C2C",
  "requisite_number": "8600 1234 5678 9012",
  "bank": "UZCARD",
  "account_owner": "CARD HOLDER"
}
Поле Обязательность Описание
merchant_order_id Передавайте всегда Ваш уникальный ID выплаты, до 64 символов
merchant_client_id Нет ID получателя в вашей системе
currency_code_from Да USDT
currency_code_to Да Код из /currencies/?operation=withdrawal
amount Да Сумма в фиатной валюте; должна соответствовать шагу валюты
requisite_type Да C2C, SBP, TRANSFER или IBAN; только из разрешённых для валюты
requisite_number Да Номер карты, телефон или счёт получателя в зависимости от requisite_type
bank Нет Название банка получателя, как его видит отправитель
account_owner Нет Имя получателя

Пример успешного ответа:

{
  "id": "9b0c2e4a-5d1f-4f8e-9a6b-3c7d8e1f2a45",
  "status": "BRAND_NEW",
  "status_info": "BRAND_NEW",
  "merchant_order_id": "payout-20260904-001",
  "merchant_client_id": "client-1042",
  "currency_code_from": "USDT",
  "currency_code_to": "UZS",
  "amount": "200000.000000",
  "requisite_type": "C2C",
  "requisite_number": "8600 1234 5678 9012",
  "bank": "UZCARD",
  "account_owner": "CARD HOLDER",
  "create_date": "2026-09-04T10:00:00+03:00",
  "merchant_USDT_debt": 16.45
}

merchant_USDT_debt — сумма в USDT, которую мерчант будет должен платформе после успешного выполнения выплаты; курс и комиссия фиксируются в момент создания и не пересчитываются.

Уникальность merchant_order_id

Платформа не отклоняет повторный merchant_order_id выплаты: второй запрос с тем же ID создаст вторую выплату. Не повторяйте запрос при неопределённом ответе — сначала проверьте статус по UUID или найдите выплату в кабинете.

Проверить статус

GET /api/v1/merchant/get_withdrawal_status/9b0c2e4a-5d1f-4f8e-9a6b-3c7d8e1f2a45/
Authorization: Bearer <access_token>
{
  "id": "9b0c2e4a-5d1f-4f8e-9a6b-3c7d8e1f2a45",
  "merchant_order_id": "payout-20260904-001",
  "create_dt": "2026-09-04T10:00:00+03:00",
  "currency_code_from": "USDT",
  "currency_code_to": "UZS",
  "merchant_USDT_debt": 16.45,
  "course": 12160.5,
  "status": "SUCCESSFULLY_FINISHED"
}

Чужая или несуществующая выплата возвращает 404.

Статусы выплаты

Статус Код Группа Что означает
BRAND_NEW BN Активная Выплата создана и назначена трейдеру
IN_PROGRESS IP Активная Трейдер взял выплату в работу
SENT_TO_SUPPORT STS Ожидает решения Трейдер передал выплату в поддержку; в callback приходит comment с причиной
PROBLEM_CONFIRMED PC Ожидает решения Поддержка подтвердила проблему с реквизитом или суммой
IN_DISPUTE ID Диспут Открыт диспут по выплате
SUCCESSFULLY_FINISHED SF Успешно выполнена Деньги переведены получателю
FINISHED_WITH_RECALCULATION FR Успешно выполнена Выплата выполнена с перерасчётом суммы
TIME_OUT TO Неуспешно Подходящий трейдер не найден или не взял выплату в срок
CANCELED_WITH_RECALCULATION CR Неуспешно Перерасчёт или диспут отклонён
flowchart LR
    BN[BRAND_NEW] --> IP[IN_PROGRESS]
    BN --> TO[TIME_OUT]
    IP --> SF[SUCCESSFULLY_FINISHED]
    IP --> STS[SENT_TO_SUPPORT]
    STS --> BN
    STS --> PC[PROBLEM_CONFIRMED]
    PC --> ID[IN_DISPUTE]
    SF --> ID
    ID --> FR[FINISHED_WITH_RECALCULATION]
    ID --> CR[CANCELED_WITH_RECALCULATION]

Если подходящего трейдера нет в момент создания, выплата сразу получает TIME_OUT. Ответ при этом 200: проверяйте status, а не только HTTP-код.

Callback по выплатам

Уведомления о выплатах приходят на отдельный URL, который настраивается для мерчанта администратором; он может совпадать с URL для пополнений. Отправляются статусы BRAND_NEW, SUCCESSFULLY_FINISHED, SENT_TO_SUPPORT и TIME_OUT.

{
  "merchant": "service_merchant",
  "withdrawal_uuid": "9b0c2e4a-5d1f-4f8e-9a6b-3c7d8e1f2a45",
  "status": "SENT_TO_SUPPORT",
  "amount": "200000.000000",
  "currency": "UZS",
  "comment": "Карта получателя заблокирована",
  "signature": "0123456789abcdef..."
}

Отличайте выплату от пополнения по ключу: у выплаты withdrawal_uuid, у пополнения order_uuid. Подпись считается так же, как для пополнений, по всем полям кроме signature в исходном порядке — см. проверку подписи.

Ответы создания

HTTP Значение Действие
200 Выплата создана; смотрите status Сохранить UUID и весь ответ
400 Поля, сумма, валюта, способ оплаты или реквизит недопустимы Исправить запрос
403 Запрос пришёл с адреса, не разрешённого для мерчанта Согласовать адреса интеграции

Передавайте requisite_type, currency_code_to и currency_code_from всегда: запрос без любого из них отклоняется ошибкой сервера, а не 400.