Перейти к основному содержимому
Машинный перевод

Эта страница использует машинный перевод. При любых несоответствиях обращайтесь к английской документации.

Колбэки

Общая информация

  • Представляет собой HTTP-запрос POST к системе клиента, отправляемый на URL, указанный в личном кабинете
  • Данные в теле запроса и ответа передаются в формате JSON
  • Запрос содержит следующие заголовки:
    • Content-Type: application/json
    • User-Agent: информация о вызывающей системе
  • Даты передаются в UTC в формате ISO 8601. Например: 2024-07-02T12:50:30Z

Требования к URL колбэка

  1. Должен использоваться безопасный протокол HTTPS
  2. Должны использоваться доменные имена, а не IP-адреса

Аутентификация

Аутентификация колбэка выполняется путём передачи заголовков в запросе, аналогичных заголовкам, используемым для авторизации API-запросов (см. раздел Авторизация).

Проверка колбэка

Чтобы предотвратить мошенничество, система клиента должна проверять значения указанных заголовков колбэка следующим образом:

  1. Разница между текущим временем сервера и значением заголовка X-Processing-Timestamp не превышает значения заголовка X-Processing-RecvWindow
  2. Значение заголовка X-Processing-Key совпадает со значением активного публичного ключа доступа к API клиента
  3. Значение заголовка X-Processing-Signature совпадает с подписью данных запроса, подписанных секретным ключом

Обработка колбэков

Успешный ответ

Если запрос колбэка обработан успешно, система клиента должна ответить HTTP-кодом 200 OK.

Идемпотентность

Если после успешного ответа на запрос колбэка поступает ещё один аналогичный запрос, должен быть сформирован тот же ответ, что и на предыдущий.

Запросы считаются аналогичными, если у них совпадают значения следующих параметров в теле запроса:

  • type - тип транзакции
  • id - идентификатор транзакции в процессинговой системе (для проверки адреса - checkId)
  • status - статус транзакции

Уникальность транзакции

Чтобы определить, относятся ли несколько колбэков к одной и той же транзакции или к разным, используйте комбинацию параметров type и id из корневого элемента JSON колбэка. Эта комбинация уникальна для всех транзакций.

Для колбэков проверки адреса (type = AddressCheck) вместо id используется параметр checkId.

Политика повторных попыток

Коды без повторных попыток

Колбэк не будет повторно отправлен, если система клиента отвечает следующими HTTP-кодами:

  • 1xx
  • 3xx
  • 4xx

Коды с повторными попытками

Если ответ содержит HTTP-код из диапазона 5xx, колбэк остаётся в очереди отправки, и попытки доставки продолжаются согласно политике экспоненциальной задержки.

Формула расчёта задержки:

60 seconds + {retry count}^4

Максимальное количество попыток: 10

Интервалы повторных попыток

ПопыткаИнтервалОбщее время
161 сек61 сек
276 сек137 сек
3141 сек278 сек
4361 сек594 сек
5685 сек1 279 сек
61 356 сек2 635 сек
72 461 сек5 096 сек
84 156 сек9 252 сек
96 621 сек15 873 сек
1010 060 сек25 933 сек (~7,2 часа)