Ошибки, статусы и повторы
Проверяйте HTTP-ответ и status транзакции. При 200 или 201 транзакция может быть отклонена или ожидать обработки.
| HTTP-результат | Действие интеграции |
|---|---|
| 400 / 422 | Проверьте поля, типы, масштаб суммы, окружение и получателя. Не повторяйте неизменённый невалидный запрос по кругу |
| 401 | Проверьте реквизиты авторизации, срок и API-хост |
| 403 | Аккаунту или ключу не хватает прав; не переключайте автоматически пользователя и окружение |
| 404 | Проверьте идентификатор и контекст аккаунта. Ответ не доказывает отсутствие ресурса у другого аккаунта |
| 409 | Разберите конфликт и восстановите исходную операцию до создания другой |
| 429 | Учитывайте Retry-After, если он передан; повторы чтения ограничивайте по времени |
| Таймаут / 5xx | Результат может быть неизвестен. Найдите исходную операцию по id или txid до повторной отправки |
Форматы ошибок различаются по endpoint. Если описан машинный код ошибки, используйте его; error_description — человекочитаемый, нестабильный текст. Удаляйте из логов секреты и данные платёжного инструмента.
Результат транзакции
charged: операция успешно завершена.rejectedилиfailed: проверьте причину и исходную операцию; успех не подтверждён.refundedилиreversed: состояние денег отличается от нового успешного зачисления.- Ожидание, запрос действия или неизвестный статус: покажите это состояние и необходимое действие пользователя. Незнакомый статус и timestamp сами по себе не означают успеха.
Проверяйте операцию через GET транзакции. Для повтора одной бизнес-инструкции сохраняйте txid. Ошибка доставки webhook и ошибка обработки платежа — разные события.