Create a webhook endpoint
Register an HTTPS URL to receive event notifications. Subscribe to specific event types, wildcards, or all (”*”). The signing secret used to verify deliveries is returned exactly once here.
Authorizations
API key: Authorization: Bearer sk_test_... or sk_live_....
Headers
Pin a dated API release (Stripe-style). Omit to use the current version. An unknown value returns 400 request.invalid_version. Echoed back on every response.
"2026-07-10"
Connect: act on behalf of one of your connected accounts (its acct_…/org_… id). Omit to act as your own organization. Not honored on /v1/api_keys.
"org_2P9connectedacct"
Safely retry any POST. The first response is stored for 24h and replayed byte-for-byte for identical retries (the replay adds an idempotent-replayed: true header). Reusing the key with a different body is 409 idempotency.key_reuse; an in-flight duplicate is 409 idempotency.key_processing. This makes retrying a 502/429 safe — no duplicate stamp.
"a1b2c3d4-e5f6-4789-8abc-1234567890ab"
Body
HTTPS URL that receives event POSTs, e.g. "https://example.com/webhooks/invoice".
Event types to deliver: "" (all), a namespace wildcard like "invoice.", or exact types like "invoice.stamped". Default ["*"].
1Connect: when true (on a platform org), also receive events from ALL connected accounts. Each delivery's account field names which one. Default false.
Integrator-owned key-value map (≤50 keys), stored and echoed back verbatim.
Response
Default Response
Always "webhook_endpoint".
webhook_endpoint Webhook endpoint id, e.g. "we_2P9K3sample".
HTTPS URL events are delivered to.
Subscribed event types ("*", namespace wildcards, or exact types).
False when the endpoint is paused (disabled).
True when this endpoint also receives connected-account events.
True if created with a live-mode key.
Integrator-owned key-value map echoed back.
Creation timestamp, ISO-8601 UTC.
Last-update timestamp, ISO-8601 UTC.
Signing secret ("whsec_…") for verifying delivery signatures — shown exactly once at creation.