Cascade → UTERLAB
Cascade API
Интеграция внешнего процессинга с UTERLAB.COM.
Базовый URL
https://test.uterlab.com/api/v1/cascadeCascade получает доступные предложения, принимает заявку и передаёт реквизиты через API.
Авторизация
X-API-KeyИдентификатор Cascade API-ключа
X-TimestampUnix timestamp, допустимое окно ±60 секунд
X-NonceУникальное значение на запрос
X-SignatureHMAC-SHA256
Подпись
timestamp\nnonce\nMETHOD\n/path\nraw_body
X-Signature = HMAC-SHA256(signature_string, secret)
Endpoints
| Метод | Endpoint | Scope | Назначение |
|---|---|---|---|
| GET | /orders/next | cascade:orders:pull | Получить следующую предложенную заявку |
| GET | /orders/{dispatchId} | cascade:orders:read | Получить состояние dispatch |
| POST | /orders/{dispatchId}/accept | cascade:orders:write | Принять и передать реквизиты |
| POST | /orders/{dispatchId}/reject | cascade:orders:write | Отклонить предложение |
| POST | /orders/{dispatchId}/complete | cascade:orders:write | Сообщить о завершении |
| GET | /methods | cascade:methods:read | Разрешённые методы |
| GET | /balance | cascade:balance:read | Баланс Cascade |
Процесс заявки
1GET /orders/nextполучить предложение
2accept или rejectответить до истечения предложения
3Передать реквизитыпри accept
4completeпосле фактического завершения
Принятие заявки
POST /api/v1/cascade/orders/{dispatchId}/accept
{
"bank_code": "sber",
"bank_name": "СберБанк",
"requisite": "2202201234567890",
"holder_name": "Иван И."
}Возвращайте только реквизиты, которые соответствуют методу и валюте предложения. Внутренние правила маршрутизации UTERLAB через API не раскрываются.
Статусы dispatch
offeredПредложение создано
pulledCascade получил предложение
activeЗаявка принята, реквизиты переданы
completedЗавершено
rejectedОтклонено Cascade
expiredВремя предложения истекло
cancelledОтменено UTERLAB
Ошибки
401Неверный ключ, подпись или timestamp
403Нет scope, IP не разрешён или доступ отключён
404Dispatch не найден
409Конфликт статуса или повтор nonce
422Ошибка параметров / реквизитов
429Rate limit exceeded
{
"success": false,
"message": "Invalid signature"
}