Перейти к содержанию

Обработка ошибок и повторные запросы

HTTP код Примечание Рекомендуемые действия
2xx Статус транзакции финальный (successful, failed) Используйте полученный статус транзакции.
2xx Статус транзакции нефинальный
(например, incomplete)
Дождитесь автоматического уведомления (подробнее про уведомление для карт, подробнее про уведомление для АПМ), затем запросите актуальный статус по uid(подробнее про запрос статуса для карт, подробнее про запрос статуса для АПМ).
4xx Запрос содержит некорректные данные или синтаксические ошибки. Повторять такой запрос без изменения параметров не рекомендуется. Исправьте запрос и отправьте его повторно. Если в первом запросе был передан ключ идемпотентности, обновите его.
5xx При обработке запроса произошла внутренняя ошибка сервиса. Несмотря на полученную ошибку, транзакция могла быть успешно создана. Запросите статус транзакции по tracking_id(для карт, для АПМ).

Если транзакция не найдена, повторите исходный запрос с тем же ключом идемпотентности.

Если повторный запрос отправлен без ключа идемпотентности или с новым ключом идемпотентности, API рассматривает его как новую транзакцию. Для транзакций, допускающих многократное выполнение (например, частичных возвратов), это может привести к созданию дополнительного частичного возврата.
Ответ не получен Timeout или сетевая ошибка Запросите статус транзакции по tracking_id(для карт, для АПМ). Если транзакция не найдена, повторите исходный запрос с тем же ключом идемпотентности.

Не ожидайте ответ неограниченное время. Если запрос не завершился до истечения установленного тайм-аута, прервите соединение и запросите текущий статус транзакции через соответствующий API. Это помогает избежать накопления длительных соединений и деградации производительности вашей системы.

Если повторный запрос отправлен без ключа идемпотентности или с новым ключом идемпотентности, API рассматривает его как новую транзакцию.

Для транзакций, допускающих многократное выполнение (например, частичных возвратов), это может привести к нежелательному созданию дополнительного частичного возврата.

Warning

В исключительных случаях эквайер или провайдер платёжного метода может не вернуть финальный результат транзакции до истечения времени ожидания.

Поэтому для транзакций, которые обычно получают финальный статус синхронно (refund, capture, void, recurring, p2p), API может вернуть промежуточный статус: incomplete для карточных транзакций или pending для АПМ.

После получения финального результата от эквайера или провайдера платёжного метода торговцу будет отправлено уведомление с финальным статусом транзакции.