Webhooks
Requires Growth tier or above
Two Types of Events
Payment Page & Invoice Events (Real-time)
Fired instantly when customers interact:payment_page.payment— Payment receivedpayment_page.form_start— Customer started filling forminvoice.sent— Invoice emailed to customerinvoice.paid— Invoice paidinvoice.overdue— Invoice past due date
Synced Data Events (Batched)
Fired after each NMI sync cycle:transaction.approved— New approved transaction syncedtransaction.declined— New declined transaction syncedtransaction.settled— Transaction settledtransaction.refunded— Refund syncedsubscription.created— New subscription detectedsubscription.cancelled— Subscription expired/cancelledcustomer.created— New customer extracted
Security
All webhooks are signed with HMAC-SHA256. The signature is sent in theX-Webhook-Signature header.
Verify by computing HMAC-SHA256(webhook_secret, request_body) and comparing to the header value.
Retry Policy
- Failed deliveries are retried up to 5 times
- Exponential backoff: 30s, 2m, 10m, 1h, 6h
- After 5 failures, the webhook is paused
Creating a Webhook
- Go to Settings → Webhooks
- Click Add Webhook
- Enter the endpoint URL
- Select events to subscribe to
- Optionally set a signing secret (recommended)