Доставка и повторы
Доставка вебхуков — не менее одного раза (at‑least‑once). Проектируйте обработчик идемпотентным и сверяйтесь через GET.
Что вызывает повтор
По ответу вашего endpoint Eleven Pay классифицирует доставку:
| Результат | Классификация |
|---|---|
Ответ 2xx | Доставлено — повторов нет. |
| Сетевая ошибка / таймаут | Повтор. |
HTTP 408, 429 | Повтор. |
HTTP 5xx | Повтор. |
Прочие 4xx | Терминально — повторов нет. |
3xx (редирект) | Терминально — редиректы не выполняются. |
Расписание повторов
Доставка выполняется с ограниченным числом попыток и экспоненциальной задержкой. Текущее поведение — до 7 попыток суммарно, с задержками 1 мин, 5 мин, 15 мин, 1 ч, 6 ч, 24 ч между ними (всего около 31 часа). Каждая попытка подписывается заново в момент отправки (новая метка t), поэтому повтор не отклонится проверкой окна времени. Рассматривайте конкретные интервалы как текущее поведение, а не как замороженный контракт — операционные параметры могут меняться. После исчерпания попыток доставка становится терминально неуспешной.
Retry-After
Если ваш endpoint возвращает заголовок Retry-After, Eleven Pay может учесть его для следующей попытки, в пределах внутреннего ограничения. Точную величину ограничения не фиксируйте в интеграции.
Практика
- Возвращайте
2xxтолько после надёжной, идемпотентной фиксации обработки. - Не возвращайте
2xxдо фиксации, если это грозит потерей обработки. - Не полагайтесь на одну доставку как на «ровно один раз» — дедуплицируйте по
idсобытия и сверяйтесь черезGET.