Webhook Events
All available webhook event types and when they're triggered.
Order Events
order.created
Triggered when an order is created and the intent is signaled on-chain.
{
"id": "evt_abc123",
"type": "order.created",
"timestamp": "2024-01-15T10:00:00.000Z",
"data": {
"session": { ... },
"order": {
"id": "ord_xyz789",
"status": "SIGNAL_MINED",
"intentHash": "0x1234...",
"signalTx": "0xabcd...",
"paymentPlatform": "venmo",
"fiatCurrency": "USD",
"amountUsdc": "50.00",
"conversionRate": "1.00",
...
}
}
}
Use cases:
- Track that a user has started a payment
- Update order status in your database
order.payment_sent
Triggered when the user indicates they've sent the fiat payment.
{
"id": "evt_def456",
"type": "order.payment_sent",
"timestamp": "2024-01-15T10:05:00.000Z",
"data": {
"session": { ... },
"order": {
"id": "ord_xyz789",
"status": "PAYMENT_SENT",
...
}
}
}
Use cases:
- Show "payment pending verification" status to user
- Start a timer for expected verification
order.fulfilled
Triggered when the payment is verified and USDC is transferred to your wallet.
{
"id": "evt_ghi789",
"type": "order.fulfilled",
"timestamp": "2024-01-15T10:10:00.000Z",
"data": {
"session": { ... },
"order": {
"id": "ord_xyz789",
"status": "FULFILLED",
"fulfillTx": "0x5678...",
...
},
"txHash": "0x5678..."
}
}
Use cases:
- Fulfill the customer's order
- Send confirmation email
- Update inventory
- Record transaction in accounting
order.failed
Triggered when payment verification or on-chain fulfillment fails.
{
"id": "evt_jkl012",
"type": "order.failed",
"timestamp": "2024-01-15T10:15:00.000Z",
"data": {
"session": { ... },
"order": {
"id": "ord_xyz789",
"status": "FAILED",
"errorCode": "PROOF_INVALID",
"errorMessage": "Payment proof validation failed",
...
},
"error": {
"code": "PROOF_INVALID",
"message": "Payment proof validation failed"
}
}
}
Error codes:
PROOF_INVALID- The payment proof couldn't be verifiedPROOF_EXPIRED- The proof timestamp was too oldFULFILL_TIMEOUT- Transaction timed outFULFILL_REVERTED- On-chain transaction revertedRPC_ERROR- Blockchain RPC error
Use cases:
- Notify user of failure
- Allow retry if applicable
- Log for debugging
order.expired
Triggered when an order expires before completion.
{
"id": "evt_mno345",
"type": "order.expired",
"timestamp": "2024-01-15T11:00:00.000Z",
"data": {
"session": { ... },
"order": {
"id": "ord_xyz789",
"status": "EXPIRED",
...
}
}
}
Use cases:
- Release reserved inventory
- Update order status
- Notify user session expired
Session Events
session.started
Triggered when a user begins a checkout session.
{
"id": "evt_pqr678",
"type": "session.started",
"timestamp": "2024-01-15T09:55:00.000Z",
"data": {
"session": {
"id": "sess_abc123",
"status": "ACTIVE",
"selectedPaymentPlatform": "venmo",
...
}
}
}
session.completed
Triggered when a checkout session is completed successfully.
{
"id": "evt_stu901",
"type": "session.completed",
"timestamp": "2024-01-15T10:10:00.000Z",
"data": {
"session": {
"id": "sess_abc123",
"status": "COMPLETED",
...
},
"order": { ... }
}
}
session.abandoned
Triggered when a user abandons the checkout without completing.
{
"id": "evt_vwx234",
"type": "session.abandoned",
"timestamp": "2024-01-15T10:30:00.000Z",
"data": {
"session": {
"id": "sess_abc123",
"status": "EXPIRED",
...
}
}
}
Use cases:
- Send cart abandonment email
- Analytics tracking