OutpayDocs
Webhooks

Events

The event type and payload currently emitted by Outpay.

checkout.paid

Sent after the payment matcher marks a matching on-chain transfer as confirmed. It is persisted as a unique webhook event for the checkout/payment pair before delivery, so Outpay never dispatches more than one checkout.paid event per checkout.

{
  "amount": "49.99",
  "checkout_ref": "chk_4f21a9c3b7e04d18",
  "confirmed_at": "2026-07-15T11:45:00.000Z",
  "currency": "USDC",
  "event": "checkout.paid",
  "tx_hash": "0xabc123..."
}
FieldTypeMeaning
eventstringAlways checkout.paid in the current worker.
checkout_refstringThe checkout reference returned by the create-checkout API call.
amountstringMatched token amount.
currencystringToken symbol, currently always USDC.
confirmed_atISO 8601 timestampWhen Outpay marked the payment confirmed.
tx_hashstring or nullOn-chain transaction hash, when available.

Payload shape is beta

A richer, nested envelope has been discussed for a future release, but the current worker persists and delivers only the flat shape above. Build against the payload your deployment actually sends, and watch the changelog for a future versioned change.

Planned event types

No other event type is dispatched today. Do not build merchant-side logic that waits for a checkout.expired, checkout.underpaid, payment.confirmed, or similar event — poll GET /api/v1/checkouts/{id} for any state other than paid.

On this page