Дедуплікація подій і замовлень
Надійне прийняття й одноразова видача.
Повтори й ручна доставка можуть повторити коректну подію. X-Event-Id — логічна ідентичність події, X-Delivery-Id стосується доставки на endpoint. Дедуплікуйте подію й бізнес-замовлення. Номера спроби чи delivery ID недостатньо.
Після перевірки початкового підпису й авторизованої PAID-відповіді зі звіркою замовлення/проєкту/режиму/валюти/ціни виконайте одну транзакцію БД: вставте унікальний (merchant_scope, eventId), позначте пов’язане замовлення оплаченим під унікальним обмеженням замовлення/сесії й додайте видачу до надійного outbox. Прийнята подія чи оплачене замовлення не створюють повторної видачі. Спершу commit, потім невеликий 2xx. Тимчасовий збій читання/зберігання має допускати повтор.
Не можна видавати замовлення за сесію й повторно за дочірній рахунок. Test-події, treasury-поповнення, тести зв’язку, redirects і записи перевірки не оплачують Live-замовлення.