Payin Classic
Payin Classic
Payin Classic — прямой HTTP-контракт для пополнения баланса клиента мерчанта через двухэтапный флоу (prepare → confirm). SDK для него нет — вызывается напрямую.
| Endpoint | Назначение |
|---|---|
/balance | Баланс мерчанта по валютам |
/prepare_topup | 1-й этап — зарегистрировать операцию |
/confirm_topup | 2-й этап — запустить операцию |
/topup_status | Проверка статуса |
Все эндпоинты доступны под префиксом /api/v1/merchant/topup (например, POST /api/v1/merchant/topup/prepare_topup).
Транспорт — HTTP POST, тело в JSON. Формат даты — 2006-01-02T15:04:05+03:00. HTTP-код ответа зависит от исхода: 200 при успехе, 400 / 403 при ошибках, 429 при превышении лимита запросов. Для разбора результата ориентируйтесь на поле SuccessCall и ErrorInfo в теле, а не только на HTTP-статус. Исключение — ответ 429: он приходит без подписи и без конверта, в виде {"error": "rate limit exceeded"}.
Базовый контракт
Каждый запрос несёт два заголовка: Key-Id и Signature (ed25519-подпись тела в Base64). Подробнее — в Ключи для Payin.
Тело запроса:
{
"Datetime": "2009-11-10T23:01:02+03:00",
"Payload": { /* ... */ }
}
Тело ответа:
{
"SuccessCall": true,
"Datetime": "2009-11-10T23:01:02+03:00",
"Payload": { /* ... */ }
}
При ошибке см. Коды ошибок Payin.
Когда использовать
- Нужен двухэтапный флоу без прикрепления чеков. Опциональный webhook о смене статуса поддерживается через
WebhookStatusUrl(см. Статус операции). - Интеграция в legacy-системе, где нет возможности подключить SDK.
Для новых интеграций с картами/СБП, асинхронным режимом, чеками и расширенными webhooks — используйте Payin H2H.