Справочник

Коды ошибок

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

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

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

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

Коды

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

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

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

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