How it works
1
Register an endpoint
Tell Ionic which URL to deliver to with
POST /v1/webhook_endpoints. You receive a signing secret once, at creation time.2
Receive events
Ionic sends each event as a
POST with a JSON envelope in the body. Respond 2xx quickly to acknowledge receipt.3
Verify and act
Verify the signature on every request, then act on the event — idempotently, because the same event can arrive more than once.
Delivery semantics
Read these guarantees carefully — they determine how you must write your handler.Test mode and live mode
Every event carries alivemode flag. Events generated by test API keys (sk_v1_test_…) have "livemode": false; events from live keys have "livemode": true. Endpoints are scoped to one mode, so a test-mode endpoint only receives test-mode events. Build and verify your integration entirely in test mode before going live.
The envelope at a glance
Every delivery has the same outer shape. The event-specific data lives underdata.object, which is the full resource snapshot — byte-for-byte the same shape the API returns from GET /v1/<resource>/{id}.
What’s next
Quickstart
Register an endpoint and verify your first event.
Verify signatures
Confirm each delivery came from Ionic before you trust it.
Event catalog
See when each event type fires, with a verified payload for each.
Idempotency and retries
Handle duplicates and out-of-order delivery correctly.

