Webhook events
All deliveries share the same envelope:X-Payzor-Event: <type> and X-Payzor-Signature: t=<unix_ts>,v1=<hex_hmac>. Verification guide: Webhooks.
charge.created
A merchant charge was created (still unpaid).payment.succeeded
An agent paid from its wallet (directly, or via a PayLink draw). Money moved.method is ledger (wallet) or paylink (budget draw). On-chain x402 settlements emit only charge.succeeded.
charge.succeeded
The charge reachedpaid, whatever the method. Listen to this one if you only subscribe to a single event.
approval.required
The paying agent’s policy demanded human review. The money has not moved.charge.succeeded. If it expires or is rejected, no further event fires for this charge; poll GET /charges/:id for final state.
paylink.accepted
An agent accepted one of your PayLinks. The budget grant exists now.budget.exhausted
A PayLink’s budget was fully drawn. Stop charging; issue a new link.deposit.confirmed
On-chain USDC was detected and credited to an agent’s wallet.Delivery semantics
- Retries: non-2xx responses are retried with exponential backoff.
- Ordering: not guaranteed; dedupe by
idand rely oncreatedAt. - Idempotency: handlers should be safe to run twice for the same event.