Register an outgoing webhook URL for one or more events
post
https://api.expiryedge.com/v1/createWebhookSubscriptionadmin60/min
Anfrage
curl -X POST 'https://api.expiryedge.com/v1/createWebhookSubscription' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://hooks.northwind-dental.com/expiryedge",
"events": [
"expiry.completed",
"collection_submission.received"
],
"description": "CRM sync"
}'Antwort
{
"subscription": {
"id": "wh_3kQ9xLm2",
"url": "https://hooks.northwind-dental.com/expiryedge",
"events": [
"expiry.completed",
"collection_submission.received"
],
"description": "CRM sync",
"active": true,
"disabled_reason": null,
"disabled_at": null,
"consecutive_failures": 0,
"last_delivery_at": null,
"last_delivery_status": null,
"secret_hint": "whsec_...9f2c",
"created_by": "u_71bXq",
"created_at": "2026-09-27T14:05:00.000Z",
"updated_at": "2026-09-27T14:05:00.000Z",
"secret": "whsec_4b1e0c2d7a9e5f3b8c1d6e4f2a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f9f2c"
}
}The URL must be https (port 443 or 8443) on a public hostname - IP addresses, localhost and internal names are rejected.
Returns the signing secret once; later reads only show secret_hint. At most 20 subscriptions per organization.
Deliveries are signed POSTs of a WebhookEvent (see the webhooks guide).
urlstringerforderlichhttps URL on a public hostname (port 443 or 8443).format: uri · max length: 2048eventsarray of stringerforderlichErlaubtexpiry.createdexpiry.updatedexpiry.completedexpiry.deletedcollection_request.completedcollection_submission.receivedmin items: 1descriptionstringmax length: 200
201
Created.
subscription.secret is shown only in this response.subscriptionobjecterforderlich
400 | The request is missing required fields or contains invalid values. |
401 | Missing, expired or invalid bearer token. |
403 | Authenticated, but your role or organization does not allow this action. |
405 | The endpoint does not accept this HTTP method. |
409 | The organization already has 20 webhook subscriptions (code WEBHOOK_LIMIT_REACHED). |
429 | Too many requests for this endpoint from your IP. Wait Retry-After seconds. |
500 | Unexpected server error. Retry later; quote requestId to support. |
