Обработка ошибок
WinWallet Merchant API использует стандартные HTTP-коды и единую структуру ошибок ErrorSchema в теле ответа для бизнес-методов.
Структура ErrorSchema
Поле | Тип | Описание |
|---|---|---|
| string | Человекочитаемое описание ошибки |
| integer | Код ошибки (часто совпадает с HTTP-статусом) |
Обёртка ответа при result: false:
HTTP-статусы и коды
HTTP | error_code | Когда возникает | Рекомендация |
|---|---|---|---|
200 | — | Успех; | Обработать |
401 | 401 | Нет или неверен Bearer token, неверный | Проверить учётные данные, не повторять запрос без исправления |
404 | 404 | Инвойс не найден | Проверить |
409 | 409 | Дубликат | Использовать новый ID или вернуть существующий инвойс из вашей БД |
422 | — | Ошибка валидации полей (формат | Исправить тело запроса по |
500 | 500 | Внутренняя ошибка сервера | Повтор с backoff; эскалация в поддержку при повторении |
Ошибки валидации (422)
Ответ не использует result/error, а массив detail:
Типичные причины: неверный формат URL, сумма ≤ 0, пустой description, отсутствие обязательных полей, неверный currency.
Стратегия обработки на стороне мерчанта
Логируйте
error_code,messageи correlation ID запроса.Не считайте оплату завершённой только по HTTP 200 при создании — ждите статус PAID или webhook.
Для 409 храните идемпотентность по
merchant_transaction_idна своей стороне.Для 500 и сетевых таймаутов используйте ограниченное число повторов с jitter.