Webhook Events
PAYMENT_SETTLED
Emitted when a payment is successfully settled.
{
"id": "evt_123",
"type": "PAYMENT_SETTLED",
"timestamp": "2026-04-03T10:00:00.000Z",
"data": {
"order": {
"id": "ord_abc",
"merchantId": "merchant_123",
"status": "FULFILLED",
"requestedUsdcAmount": "50.00"
},
"payment": {
"id": "pay_abc",
"orderId": "ord_abc",
"status": "SETTLED",
"netSettledUsdcAmount": "49.50"
}
}
}
Common fields used for reconciliation:
data.order.iddata.order.statusdata.payment.iddata.payment.statusdata.payment.netSettledUsdcAmount
PAYMENT_FAILED
Emitted for terminal payment failures.
Use data.payment.status (FAILED) plus data.order.id/data.payment.id for reconciliation.
PAYMENT_EXPIRED
Emitted when a payment quote expires before settlement.
PAYMENT_CANCELLED
Emitted when a payment is cancelled.
PAYMENT_CREATED
Emitted when a payment attempt is created for an order.
ORDER_CREATED
Emitted when an order is created.
ORDER_FULFILLED
Emitted when the order reaches fulfilled status.
ORDER_CANCELLED
Emitted when an order is cancelled before fulfillment.
Crypto Payment Events
Bridge lifecycle events for crypto payout settlement:
PAYMENT_BRIDGE_PENDING: bridge transfer queuedPAYMENT_BRIDGE_SUBMITTED: relay handoff submittedPAYMENT_BRIDGE_COMPLETED: destination transfer confirmedPAYMENT_BRIDGE_FAILED: destination transfer failed
For bridge events, data.paymentBridge carries status and destination transaction context.
Event Ordering Notes
PAYMENT_CREATEDis emitted before terminal payment events.PAYMENT_SETTLEDmay be followed byORDER_FULFILLED.- Bridge events are optional and only emitted when bridge execution applies.