Webhooks and state reconciliation
Receive events safely, handle duplicates and ordering, and reconcile against the transaction state source.
Delivery channels and result authority
Service callbacks update the backend; WebSocket relays updates to the frontend; JavaScript callbacks belong to the iframe. After UI disconnection, reconcile submitted requests on the backend before resubmission.
Practice the offline reconciliation journalCallbacks are not WebSocket updates
Postback/callback delivers outcomes to the backend; WebSocket updates the frontend; iframe JavaScript notifies the host UI. Persist before acknowledgement, deduplicate, handle ordering and reconcile missing events. Keep TIMEOUT and CANCELED in their respective state layers.
Service-specific callbacks
RSS describes RP postbacks for registration, signing and sharing. SIC separates view callbackUrl and redirectUrl. Redirect serves navigation; reconcile business outcomes server-side. Inconsistent source payloads are not production schemas.
From event receipt to recovery
- Receive and correlate
Retain required data and correlate with an initiated transaction.
- Authenticate the source
Apply approved authentication and replay checks.
- Persist and deduplicate
Persist before business effects and avoid repeating applied effects.
- Acknowledge and process
Acknowledge under contract and queue slow work.
- Reconcile
Late or unordered events must not regress terminal state; consult the source when results are missing.
Event contract to confirm
If the table is wider than its frame, scroll horizontally to see all columns; use arrow keys when the table region has focus.
| Item | Agreement needed |
|---|---|
| Identity and payload | Event name, event/transaction ID, version and fields. |
| Security | Authentication, signed data, time handling and secret rotation. |
| Delivery | ACK, timeout, retry, ordering and retention. |
| Reconciliation | State source, lookup rights and uncertain-outcome owner. |