Payin Classic

Классическое пополнение счёта мерчанта — двухэтапный HTTP-контракт.

Payin Classic

Payin Classic — прямой HTTP-контракт для пополнения баланса клиента мерчанта через двухэтапный флоу (prepareconfirm). SDK для него нет — вызывается напрямую.

EndpointНазначение
/balanceБаланс мерчанта по валютам
/prepare_topup1-й этап — зарегистрировать операцию
/confirm_topup2-й этап — запустить операцию
/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.

Copyright © 2026