Register an outgoing webhook URL for one or more events

posthttps://api.expiryedge.com/v1/createWebhookSubscription
admin60/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).

Body-Parameter

application/json
  • urlstringerforderlich
    https URL on a public hostname (port 443 or 8443).
    format: uri · max length: 2048
  • eventsarray of stringerforderlich
    Erlaubtexpiry.createdexpiry.updatedexpiry.completedexpiry.deletedcollection_request.completedcollection_submission.receivedmin items: 1
  • descriptionstring
    max length: 200

Rückgabe

201
Created. subscription.secret is shown only in this response.
  • subscriptionobjecterforderlich

Fehler

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.