sk_v1_test_… key manages test-mode endpoints, and a live key manages live ones.
On Node, npm install @ionicfi/sdk gives you typed calls for every request
below; the server SDK guide has details. Each example also
shows raw curl.
Every write on this API (create, update, delete, rotate) requires an
Idempotency-Key header; the SDK types it as a required field on those
calls.
Platform webhooks for connected accounts
Open Webhooks in the dashboard. Choose This account for events belonging to the business whose workspace you opened, or Connected accounts for events from merchants connected to your platform. Each view has separate endpoints, signing secrets, and embedded delivery activity. The test/live toggle applies to both. The Connected accounts choice appears only when your current Program and dashboard permissions allow it. For a server integration:- Ask Ionic to enable
connect_webhooksfor your active Platform Program and approvewebhook_endpoints:readandwebhook_endpoints:writein its permission ceiling. The target environment and delegated API capability must also be enabled. - In Connect → API keys, select the Webhook management preset and create a restricted Platform key. Save the credential securely. This preset manages endpoints; it does not grant access to connected-account resources.
- Use that Platform credential with the endpoint APIs below. Omit
Ionic-Account: the endpoint belongs to your Platform and receives its eligible connected-merchant stream. A direct merchant API key cannot select this stream. - Subscribe to the events you need. Delivery also requires an active Connection
with the matching resource’s read permission—for example,
payments:readfor payment events. Minimalaccount.created/account.updatedlifecycle status requires an active Connection and Program, without a profile-read grant. Registering an endpoint does not grant resource permissions. - Verify the webhook signature before using the payload. Its top-level
accountis the receiving connected account’s Ionicmer_…ID. Match it to the merchant ID your application stored on the order, together with the PaymentIntent ID and mode. Keep processing and deduplication scoped to that merchant.
Create an endpoint
The response is the endpoint object. The
secret is present only in this create response and in a rotate response — store it now; it’s never returned again.
Filtering events
event_types accepts three forms, which you can mix in one array:
Subscribe only to what you handle — it keeps your endpoint’s traffic and your logs focused. You can change the set any time with an update.
List, retrieve, update
data:
POST or PATCH and only the fields you’re changing — url, description, or event_types:
Disable and delete
Disable an endpoint to stop deliveries while keeping it (and its secret) intact — useful during maintenance:disabled and status are two views of the same flag — {"disabled": true} is equivalent to {"status": "disabled"}, and status is only ever active or disabled. Re-enable with {"disabled": false}.
Delete removes the endpoint permanently:
Rotate the signing secret
Rotating issues a new secret and returns it once. The previous secret keeps verifying for a brief overlap window, so deliveries already in flight (or signed just before the rotation) still pass — which is why a delivery’swebhook-signature header can carry more than one signature.
1
Rotate
Call
rotate_secret and capture the new whsec_ from the response.2
Accept both
Deploy your handler to verify against the new secret while still accepting the old one during the overlap.
3
Retire the old
Once the window has passed and all deliveries verify with the new secret, drop the old one.
What’s next
Browse the event catalog
Choose the event types to subscribe to.
Verify signatures
Check each delivery against the endpoint’s signing secret.
Set up platform webhooks
Receive events from connected accounts on a Platform endpoint.

