На странице
События
Обрабатывайте все 13 webhook-событий Paymos с явным состоянием ресурса и понятной терминальностью.
Paymos публикует 13 типов событий: 8 для инвойсов и 5 для выплат. Подписка настраивается по категории endpoint'а; отдельные события внутри категории не выбираются.
События инвойсов
| Событие | Значение | Терминальное |
|---|---|---|
invoice.awaiting_payment |
Глубокий reorg удалил все учтённые переводы, и инвойс вернулся к ожиданию оплаты. Первичный переход в ожидание оплаты это событие не создаёт | Нет |
invoice.confirming |
Платёж обнаружен и ожидает требуемой финальности блокчейна | Нет |
invoice.underpaid_waiting |
Получено меньше ожидаемой суммы, но инвойс ещё может принять доплату | Нет |
invoice.paid |
Ожидаемая сумма оплачена | Да |
invoice.paid_over |
Получено больше ожидаемой суммы; мерчанту зачисляется вся полученная сумма | Да |
invoice.underpaid |
Инвойс перешёл в финальное состояние недоплаты | Да |
invoice.expired |
Инвойс истёк без подходящей оплаты | Да |
invoice.cancelled |
Мерчант отменил инвойс | Да |
События выплат
| Событие | Значение | Терминальное |
|---|---|---|
withdrawal.created |
Выплата принята и создана | Нет |
withdrawal.processing |
Исходящая транзакция обнаружена в блокчейне, доступен её tx hash | Нет |
withdrawal.completed |
Исходящая транзакция завершена в блокчейне | Да |
withdrawal.failed |
Выплата завершилась ошибкой и перешла в финальное состояние | Да |
withdrawal.cancelled |
Выплата отменена до завершения | Да |
Правила обработки
- Маршрутизируйте по точному
event_type; неизвестный будущий тип безопасно пропускайте и отправляйте на разбор. - Читайте
data.statusиdata.is_finalиз payload, не восстанавливайте состояние только по названию события. - Не полагайтесь на порядок доставки. Параллельная доставка и retry могут привести более новый снимок ресурса раньше старого.
- Терминальное событие завершает state machine ресурса. Повторная доставка того же
event_idостаётся дублем, а не новым переходом.
Общий envelope и поля ресурсов описаны в Контракте payload.