Справочник

Коды ошибок

API использует стандартные HTTP-коды. Тело ошибки — JSON с полем message.

Формат ошибки

Любая ошибка возвращается с соответствующим HTTP-статусом и телом:

{
"message": "Краткое описание ошибки."
}

Коды

ПолеТипОписание
401опц.UnauthorizedОтсутствует или неверный заголовок X-Api-Key. На подписанных маршрутах выплат сюда же относятся отсутствующий или просроченный X-Timestamp и отсутствующая или неверная X-Signature.
403опц.ForbiddenМерчант отключён, не может принимать платежи, либо не задан callback_url. Также: IP не в списке разрешённых мерчанта, а на подписанных маршрутах — не настроен секрет мерчанта.
404опц.Not FoundОбъект с указанным uuid или external_id не найден.
409опц.ConflictОчень редкая гонка БД при одновременном создании с одинаковым external_id. В обычном случае повтор external_id идемпотентен — возвращается ранее созданный объект (HTTP 201), не ошибка.
422опц.Unprocessable EntityОшибка валидации тела запроса (см. поле errors), недопустимый callback_url, нехватка баланса для выплаты. При создании выплаты также: переданы запрещённые поля destination/metadata/callback_url. Ненайденный wallet_uuid возвращает 404, а не 422.
429опц.Too Many RequestsПревышен лимит запросов (rate limit) по ключу или IP.
502опц.Bad GatewayОшибка платёжного провайдера при инициации платежа или получении H2H-реквизитов.
Обработка 429

При 429 Too Many Requests снизьте частоту и повторите запрос позже. Учитывайте заголовокRetry-After, если он присутствует. Лимиты считаются по API-ключу и по IP одновременно.

Повторные попытки

  • 5xx и сетевые сбои — безопасно повторять с тем же external_id.
  • 4xx (кроме 429) — повтор не поможет, исправьте запрос.
  • Используйте экспоненциальную задержку между повторами.