Account limits
| Limit | Value |
|---|---|
| Subscriptions per account | 25 |
| Maximum payload size (JSON envelope) | 256 KB |
| URL scheme | https:// only |
List subscriptions
Bearer token from Auth0
Create subscription
Bearer token from Auth0
Endpoint URL. Must be
https://. Rejected with 400 if it’s a private IP, loopback, or metadata host.Non-empty list of event types. Allowed:
payout.created, payout.status.updated.Optional human-readable label for the dashboard. Never sent to your endpoint.
secret field — your whsec_… signing secret. Copy it immediately. Subsequent reads of the subscription only return the secret_prefix; we cannot retrieve the plaintext later.
| Status | Meaning |
|---|---|
400 | Invalid URL (not https, missing host, private IP, metadata host) or unknown event type |
409 | You’ve reached the per-account limit (25). Delete or pause an existing one first. |
Get subscription
Bearer token from Auth0
Subscription UUID
404 if the id isn’t yours.
Update subscription
Bearer token from Auth0
Subscription UUID
New endpoint URL. Same validation rules as create.
New event allow-list. Replaces existing.
active or paused. disabled is reserved for ops-side use and not user-settable.New label.
Delete subscription
Bearer token from Auth0
Subscription UUID
{"deleted": true} on success.
Rotate signing secret
Bearer token from Auth0
Subscription UUID
whsec_… secret and returns it once (same envelope as Create). The previous secret is invalidated immediately — there is no overlap window. If you need overlap, pause the subscription first, rotate, deploy your verifier with the new secret, and unpause.