Event types
| Event | Trigger | data.object type |
|---|---|---|
payment.created | A Payment is created | Payment |
payment.pending | Mempool tx detected for the payment | Payment |
payment.succeeded | Payment confirmed (network finality reached) | Payment |
payment.failed | On-chain failure or reversal | Payment |
payment.expired | expires_at passed without payment | Payment |
checkout.session.completed | Hosted Checkout payment confirmed | CheckoutSession |
checkout.session.expired | Session expired without payment | CheckoutSession |
qr.session.completed | QR Session payment confirmed | QRSession |
refund.created | Refund initiated | Refund |
refund.succeeded | Refund confirmed on-chain | Refund |
refund.failed | Refund couldn’t be sent (e.g., insufficient liquidity) | Refund |
Ordering guarantees
Section titled “Ordering guarantees”ParaSta guarantees payment.succeeded is sent after payment.pending for the same payment. No other ordering is guaranteed across different payments or across object types.
Subscribing to events
Section titled “Subscribing to events”When creating a webhook endpoint, specify enabled_events:
{ "url": "https://your-site.com/webhook", "enabled_events": ["checkout.session.completed", "payment.failed", "refund.succeeded"]}You’ll only receive the listed events. Use ["*"] to subscribe to all (current and future).