Webhook по фиат-выплате
После подтверждения или отклонения админом сервис отправляет HTTP POST с JSON на callbackUri из создания выплаты. Тип события: payin.status.updated.
Корень объекта
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| type | string | да | Всегда payin.status.updated. |
| eventId | string | да | Уникальный id события для дедупликации (evt_ + ULID). |
| createdAt | string (ISO8601) | да | Время формирования события (UTC). |
| data | object | да | id (uuid), orderId, status (UPPERCASE), amount, currency. |
| meta.reason | string | нет | При FAILED — код/причина (например admin_reject). |
| meta.proofUrls | string[] | нет | При COMPLETED — прямые URL чеков трейдера (если загружены). См. раздел Чеки выплаты. |
Примеры
Успешное завершение:
{
"type": "payin.status.updated",
"eventId": "evt_01hz…",
"createdAt": "2026-05-22T12:00:00Z",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"orderId": "payout-order-001",
"status": "COMPLETED",
"amount": "500",
"currency": "RUB"
},
"id": "550e8400-e29b-41d4-a716-446655440000",
"order_id": "payout-order-001",
"meta": {
"proofUrls": [
"https://api.example.com/storage/payin_proofs/42/check.jpg"
]
}
}Отклонение:
{
"type": "payin.status.updated",
"eventId": "evt_01hz…",
"createdAt": "2026-05-22T12:05:00Z",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"orderId": "payout-order-001",
"status": "FAILED",
"amount": "500",
"currency": "RUB"
},
"meta": {
"reason": "admin_reject"
}
}Терминальные статусы в webhook
В data.status: COMPLETED, FAILED, CANCELLED и при создании — текущий статус. Шаги pending / awaiting_admin — через GET статуса.
Обработка
- Отвечайте HTTP 2xx; повторы возможны — идемпотентность по eventId и data.id.
- Подпись исходящего webhook — по той же схеме, что входящие запросы (если включена на ключе).
- Общие правила доставки — в разделе Webhooks.
- Прямые ссылки на чеки при успехе — в Чеки выплаты.