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

Идемпотентные запросы

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

Чтобы осуществить идемпотентный запрос, добавьте в HTTP запрос заголовок RequestID. Все запросы с одним и тем же RequestID будут рассмотрены как попытки проведения одной и той же транзакции. Важно использовать уникальные значения в RequestID. Например, это может быть UUID. Horizonpay хранит полученные RequestID в течение 24 часов.

Если будет прислан второй запрос с тем же RequestID и первый запрос был обработан, то Horizonpay вернет тот же самый ответ. При этом допускается, что какая-то информация в ответе может быть обновлена. Например, статус транзакции оплата.

Info

Данная логика работает только для запросов host-to-host, т.е. для прямых запросов на карточные транзакции и транзакции с использованием альтернативных способов оплаты.