Out-of-Order Webhook
Pronunciation: OWT uhv OR-der WEB-hook
Definition
An out-of-order webhook is an event delivered after a newer event for the same entity, so arrival order differs from business sequence.
Overview
Understand the idea
Independent retries, parallel delivery, network paths, and provider partitions can cause an older payment or order event to arrive after a later state. Processing events solely by arrival time may then move local state backward.
Timestamps alone may be insufficient because clocks differ and multiple events can share a time. Sequence numbers, entity versions, monotonic status rules, or authoritative state queries provide stronger ordering evidence. Some business events remain valid even when they arrive late.
Receivers should store event identity, entity identity, provider sequence or version when available, and the current local state. They should reject illegal regressions, process commutative effects safely, and query the provider when uncertain. Reconciliation must repair any ordering-related divergence.
What actually happens
An out-of-order webhook is a genuine event notification delivered after a newer event relating to the same payment. Webhook transport often uses independent retries and queues, so creation order does not imply arrival order. A receiver that overwrites status with every last message can undo a correct payment classification or reopen a settled order.
The handler verifies each payload, preserves event ID and source timestamp, and checks the entity's latest authoritative state before applying a transition. If the provider offers version numbers, sequence IDs or fetch-by-ID endpoints, those can help establish order. Where no ordering metadata exists, a local state machine should reject unsafe regressions and obtain a fresh status when events conflict. Reorganizations or reversals need explicit exception states rather than silently treating every later-looking status as final.
Decisions and failure cases
Do not rely on timestamps from the receiver's HTTP gateway alone. Some provider statuses are non-linear, and settlement states may be separate from payment status. Keep processing idempotent and log rejected transitions so operators can investigate instead of hiding contradictions.
Related concepts
Order Webhook, Webhook, Duplicate Webhook.
Further reading
Example
An invoice produces 'pending', 'confirmed' and 'paid' events. Network delays cause 'paid' to reach the merchant first. Five minutes later 'pending' is retried. The merchant correctly acknowledges the authentic older message while leaving fulfillment completed, rather than revoking access solely because it arrived later.
Comparison
Out-of-order describes relative timing of distinct genuine events. Duplicate webhook means the same event was sent again. Replay may describe a malicious resubmission; transport behavior alone does not establish malicious intent.
Key Takeaway
An out-of-order webhook is an event delivered after a newer event for the same entity, so arrival order differs from business sequence.
Sources
- OxaPay Documentation: Webhook — OxaPay (2026-07-30)
- Stripe Documentation: Webhooks — Stripe (2026-07-30)