DocumentationEvents & reconciliation

Operate reliably

Events & reconciliation

Recover missed notifications without confusing event snapshots with current payment state.

Markdown

Read your environment’s event history

Use a key with events:read. GET /events supports type, payment_id and inclusive creation-time bounds with pagination. GET /events/{id} returns a single normalized event. Event IDs belong to one project environment.

Snapshots and current truth

An event records what was true when it fired. A later refund does not rewrite the original payment.succeeded event. Fetch the payment/refund for its current state when reconciling a missed or out-of-order event.

The events API returns {success:true,data:event}; an outgoing webhook sends event directly. The JSON content is the same, but database serialization may change key order, so an events API response cannot replace the raw signed delivery body.

A reconciliation worker

  1. 1Persist the IDs of locally unresolved orders and their Veyqo payment/session IDs.
  2. 2Poll unresolved payment records using a payments:read key and fresh verification requests where needed.
  3. 3Page through event history for the outage window, with overlap to tolerate processing delay; deduplicate by event ID.
  4. 4Compare verified status, amount, currency and trusted order/session association.
  5. 5Atomically update the order and enqueue fulfilment once. Record unresolved discrepancies for investigation.