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 — 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}.
Next steps
Quickstart
Register an endpoint and verify your first event in about five minutes.
Verify signatures
Confirm every delivery really came from Ionic. Do this before trusting any event.
Event catalog
All 23 event types, when each fires, and a verified payload for each.
Idempotency & retries
Handle duplicates and out-of-order delivery correctly.

