ДЕЙСТВУЮЩИЙ КОНТРАКТ
Заявки на выплату¶
Мерчант передаёт реквизит получателя и сумму в фиатной валюте. Платформа
назначает трейдера, который переводит деньги получателю и отмечает результат.
Доступные валюты и способы оплаты для выплат запрашиваются через
/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.