Перейти к содержимому

API

На странице

Доставка и retry

Учтите 11 попыток доставки вебхука примерно за 16 часов, отсекайте повторы, разбирайте ошибки и повторяйте событие после восстановления.

Если ваш endpoint вернёт не-2xx статус или превысит таймаут 10 секунд, Paymos повторяет с экспоненциальным backoff (x2). До 11 попыток всего (1 начальная + 10 повторов) за ~16 часов.

Backoff schedule

Попытка Задержка после предыдущей Накопленная задержка
1 сразу 0
2 1 мин 1 мин
3 2 мин 3 мин
4 4 мин 7 мин
5 8 мин 15 мин
6 16 мин 31 мин
7 32 мин ~1 час
8 1 час ~2 часа
9 2 часа ~4 часа
10 4 часа ~8 часов
11 8 часов ~16 часов

После 11 попыток событие помечается failed. Failed-события можно отправить повторно из дашборда — повторная отправка обнуляет счётчик попыток и снова ставит событие в очередь на доставку.

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

Доставка at-least-once. Одно и то же событие с тем же event_id может прийти несколько раз — это нормально при retry. Обработчик должен быть идемпотентным: сохраняйте уже обработанные event_id, а на повторы отвечайте 200 OK без побочных действий (no-op).

Что считается успешной доставкой

  • HTTP 2xx ответ за 10 секунд → доставка успешна
  • HTTP 4xx или 5xx → считается ошибкой, будет retry
  • Connection refused, DNS failure, TLS error → считается ошибкой, будет retry
  • Ответ после 10 секунд → считается ошибкой, будет retry (ваш endpoint может обработать дубль)

Возвращайте 2xx как только событие сохранено на вашей стороне. Тяжёлую обработку откладывайте в background-очередь, чтобы webhook-handler укладывался в таймаут.