Выплаты клиентам (PayOut)
Вывод средств через P2P-трейдеров: мерчант создаёт заявку, трейдер переводит деньги получателю со своего банка
Выплаты клиентам (PayOut)
Выплата (PayOut) — это P2P-операция вывода средств, при которой мерчант создаёт заявку на перевод, а трейдер выполняет фактический перевод получателю со своего банковского счёта.
Процесс выплаты (PayOut Flow)
Как работает P2P-выплата:
Ключевой момент: Деньги получателю приходят со счёта трейдера, а не напрямую с баланса мерчанта. Баланс мерчанта компенсирует трейдера за выполненный перевод внутри платформы Syncra.
Эндпоинт создания PayOut запроса
POST /api/v1/p2p/merchant/deals/payoutПараметры запроса (JSON Body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
amount | int64 | Да | Сумма выплаты в минимальных единицах валюты (копейках). Например, 500000 = 5000.00 RUB. |
currency | string | Да | ISO 4217 код валюты выплаты. Определяется конфигурацией тенанта (например, "RUB", "KZT"). |
wallet_id | string | Да | UUID кошелька мерчанта, с которого будут списаны средства для выплаты. |
target_requisite | string | Да | Номер реквизитов (карты, телефона) получателя выплаты. |
target_name | string | Нет | Имя получателя для верификации банком или трейдером. |
payment_method | string | Нет | Тип метода оплаты (например, BANK_CARD, SBP). |
idempotency_key | string | Да | Уникальный ID операции для предотвращения двойного списания при сетевых сбоях. |
callback_url | string | Нет | Индивидуальный URL для отправки вебхуков по этой сделке. |
Пример запроса
{
"amount": 500000,
"currency": "RUB",
"wallet_id": "8f870a31-b88d-4cb0-a882-628d08cbda88",
"target_requisite": "2202201234567890",
"target_name": "Иван Иванович И.",
"payment_method": "BANK_CARD",
"idempotency_key": "payout_order_99812",
"callback_url": "https://merchant.example/callbacks/payout"
}Пример ответа (200 OK)
{
"data": {
"id": "e81d77a0-0d3a-4422-b91c-7cb052a2119c",
"status": "PENDING",
"amount": 500000,
"currency": "RUB",
"target_requisite": "220220******7890",
"target_name": "Иван Иванович И.",
"created_at": "2026-07-12T17:21:00Z"
}
}Статусы PayOut транзакции
Обратите внимание, что статусы выплат (PayOut) существенно отличаются от статусов входящих платежей (PayIn). Используется другой набор числовых и строковых значений:
| Код V1 | Название V1 | Финальный? | Статус V2 | Описание состояния |
|---|---|---|---|---|
| 1 | WaitingProcessing | Нет | PENDING | Выплата создана, средства удержаны на Hold, ожидает принятия трейдером. |
| 40 | InProgress | Нет | PROCESSING | Трейдер принял заявку в работу и готовит перевод. |
| 50 | PayingRightNow | Нет | EXECUTING | Трейдер осуществляет отправку средств получателю. |
| 10 | Paid | Да | PAID | Средства успешно отправлены получателю, транзакция успешно завершена. |
| 20 | PaidPartially | Да | UNDERPAID | Оплата произведена частично (редкий случай сбоя лимитов). |
| 30 | Failed | Да | CANCELLED | Ошибка выплаты (неверная карта, отмена трейдером). Средства возвращены на баланс мерчанта из Hold. |
Важное отличие от PayIn:
Выплаты не поддерживают статусы Timeout (код 13 в PayIn) или Disput (код 21). При любых ошибках перевода со стороны трейдера или отклонении операции банком-эмитентом транзакция переходит в финальный статус Failed (код 30 в V1 / CANCELLED в V2).
Лимиты на разовые выплаты
Лимиты сумм не захардкожены в шлюзе — они динамически определяются конфигурацией вашего тенанта:
| Источник лимита | Управление | Описание |
|---|---|---|
Каскадные правила (cascade_rules.max_amount) | Админ-панель | Максимальная сумма для конкретного каскада маршрутизации |
Реквизиты трейдеров (requisites.max_amount) | Трейдер / Админ | Лимит на одну транзакцию для конкретного реквизита |
Конфиг тенанта (system_config) | Суперадмин | Глобальные лимиты автоодобрения |
Конкретные значения лимитов зависят от вашей конфигурации и могут быть изменены администратором в реальном времени без перезапуска сервисов. При необходимости отправить сумму, превышающую лимит одной транзакции, разделите её на несколько запросов с уникальными ключами idempotency_key.