Skip to main content
Languages: every operation supports cURL, Node.js (TypeScript), Python, Go, Ruby, and PHP. The first 15 operations on this page show all six languages; the remaining 61 show cURL and TypeScript — the two most-used.

Webhooks API

Register outbound webhook endpoints with HMAC signing Base path: /api/v1/webhooks Endpoint count: 76

title: “Worked request and response samples” description: “Worked samples for the most-used webhook operations: register an endpoint, read deliveries, and replay one. Each sample shows the request, the success envelope, and the error envelope to expect.”

Worked request and response samples

Copy a request body as written, substitute your own ids, and compare the response envelope. Errors follow Devotel Orbit’s { error, meta } envelope, shown once below under Error envelope.

Create a webhook endpoint

POST /api/v1/webhooks/
The body needs at least one subscribed event. Subscribe only the events you plan to consume — a broad ["*"] receiver is harder to debug and racy. Request

List outgoing deliveries for an endpoint

GET /api/v1/webhooks/deliveries
string
Restrict to one webhook endpoint id.
string
e.g. delivered, failed, pending.
Request

Replay a delivery

POST /api/v1/webhooks/dlq/{delivery_id}/replay
Redispatches a delivery whose previous attempt failed, without changing subscriptions.

Verify signatures on receipt

Registering the endpoint is half the work — the receiver must verify the X-Orbit-Signature header before trusting a body. A complete, copy-pasteable verification handler per SDK language (Node, Python, Go, PHP, Ruby, Java, C#) lives at Verify webhook signatures; draft-07 payload schemas come from GET /webhooks/event-schemas on this page.

Error envelope

422

List webhook endpoints

GET /api/v1/webhooks
List all webhook endpoints for the tenant, cursor-paginated.
string
Opaque cursor for the next page (from previous response meta.pagination.cursor)
any
Number of items per page (default 25). Values above the page-size cap are silently clamped; negative, fractional, or unparseable values fall back to the default. Never 422s.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a webhook endpoint

GET /api/v1/webhooks/{id}
Retrieve a single webhook endpoint by its ID.
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List webhook deliveries

GET /api/v1/webhooks/{id}/deliveries
List delivery attempts for a webhook endpoint, cursor-paginated. Filter by status, event_type, event_id, and a from_date/to_date range.
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a webhook delivery

GET /api/v1/webhooks/{id}/deliveries/{deliveryId}
Retrieve full detail for a single delivery attempt, including the request payload (PII redacted), response body, and timing information.
string
required
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get webhook endpoint health

GET /api/v1/webhooks/{id}/health
Per-endpoint health over the last 24 hours: success rate, p50/p95 latency, the last five errors, a week-over-week degradation delta, and a red/amber/green colour band.
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get bulk replay job status

GET /api/v1/webhooks/{id}/replay-range/{jobId}
Poll the status and progress of a bulk replay job: queued | running | done | failed, plus processed/total counts and the replayed window.
string
required
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get webhook rotation status

GET /api/v1/webhooks/{id}/rotation/status
Report the in-flight rotation state for an endpoint: whether a rotation is active, the grace-window expiry, the candidate secret fingerprint, and how many recent deliveries the receiver verified with the new secret.
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List dead-lettered webhook deliveries

GET /api/v1/webhooks/dlq
List deliveries that exhausted every retry tier and landed in the dead-letter queue, cursor-paginated. Filter by endpoint_id, event_type, or the derived reason_code (network_error | max_retries_exceeded).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Get a dead-lettered delivery’s full detail

GET /api/v1/webhooks/dlq/{deliveryId}
Full drill-down for one dead-lettered delivery: the untruncated last_response_body, the redacted event payload, request/response headers, latency, and the derived reason_code + failure_category the list row carried. Scope is the delivery id alone (no endpoint id) so the row stays inspectable after its endpoint is deleted — endpoint_url degrades to null in that case. Ids that are not currently dead-lettered (not failed, or retries not exhausted) return 404.
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List email

GET /api/v1/webhooks/dlr/email

List webhook egress IPs

GET /api/v1/webhooks/egress-ips
Return the static source IP allowlist Orbit sends every webhook delivery from. Add these addresses to your firewall if your endpoint only accepts inbound HTTPS from known IPs. Each entry carries the bare IPv4 address and a /32 CIDR; the response also includes flat comma-separated ip_addresses and cidrs strings for a quick firewall paste. Allowlist EVERY entry — never assume a fixed count. This is a defence-in-depth convenience: always verify the HMAC signature on X-Orbit-Signature, never the source IP alone.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List webhook event schemas

GET /api/v1/webhooks/event-schemas
Return the machine-readable catalog of every event type Orbit emits. Each entry carries a Draft-07 envelope JSON Schema (with the type literal pinned) plus a realistic example payload, for OpenAPI codegen, runtime validation, or type generation without mining the docs by hand.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List webhook events (tenant timeline)

GET /api/v1/webhooks/events
Cross-endpoint delivery timeline for the tenant, cursor-paginated. Filter by status, event_type, endpoint_id, a free-text search over the event type, and a from_date/to_date range. Scoped to the authenticated tenant — there is no organization_id parameter.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

List inbound-event normalization catalog

GET /api/v1/webhooks/inbound-events
Return the universal inbound-message normalization catalog: one canonical event envelope customers subscribe to once, folded out of every supported upstream carrier (Devotel softswitch, Telnyx, DIDWW, Meta). Each entry carries a canonical_event + canonical_status pair and the per-provider raw_status vocabulary that normalizes to it, plus the shipped normalizer name. Use this to wire delivery/fail/opt-out receivers without writing per-provider parsers; pair with the @devotel/shared/webhooks/inbound-normalization SDK export (normalizeInboundEvent) for runtime validation on the receiver.

List instagram

GET /api/v1/webhooks/inbound/instagram

List messenger

GET /api/v1/webhooks/inbound/messenger

List meta

GET /api/v1/webhooks/inbound/meta

Get webhook reliability rollup

GET /api/v1/webhooks/reliability
Per-endpoint reliability rollup across the tenant: success rate, p95 latency, the oldest still-pending delivery, and the last-event timestamp over a configurable window_hours (default 24).
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Register a webhook endpoint

POST /api/v1/webhooks
Register a webhook endpoint to receive event notifications. URL must be HTTPS and not target a private/loopback/link-local/CGNAT host (SSRF defense). Optional secret is used to compute the X-Devotel-Signature HMAC; if omitted, Devotel auto-generates one and returns it in the response (this is the only time the secret is returned in cleartext — it is encrypted at rest after).
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
string
required
HTTPS endpoint URL.
string[]
required
Subscribed event types (e.g. message.delivered, call.completed, verification.approved). Pass ["*"] to subscribe to every event type, including ones added later.
string
Optional shared secret. Used to verify the X-Devotel-Signature HMAC on every delivery.
boolean
Whether to start dispatching events immediately.
string
integer
Per-endpoint HTTP delivery timeout in seconds (1-30). The dispatcher aborts an in-flight delivery once this many seconds elapse. Defaults to 30 (the platform hard ceiling) when omitted.
object
Optional per-endpoint custom request headers (e.g. {"Authorization": "Bearer …", "X-API-Key": "…"}) sent on every delivery so you can authenticate to gateways/middleware that require header-based auth. Up to 20 headers. Orbit-managed headers (Content-Type, the X-Devotel-/X-Orbit- signature + identity headers, Idempotency-Key, User-Agent) cannot be overridden and are rejected.
object
object

Replay a webhook delivery

POST /api/v1/webhooks/{id}/deliveries/{deliveryId}/replay
Re-dispatch a stored delivery’s original payload through the standard dispatch pipeline. Unlike retry (failed-only), replay works on both succeeded and failed deliveries.
string
required
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Retry a webhook delivery

POST /api/v1/webhooks/{id}/deliveries/{deliveryId}/retry
Re-queue a failed delivery attempt for another retry.
string
required
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Pause a webhook endpoint

POST /api/v1/webhooks/{id}/pause
Temporarily pause deliveries for a webhook endpoint. Set a bounded window via duration_minutes or an explicit until timestamp and deliveries auto-resume once the window passes; omit both to pause indefinitely until you call resume. Distinct from PUT /:id with active: false, which is an open-ended deactivation.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Start a bulk webhook replay

POST /api/v1/webhooks/{id}/replay-range
Enqueue a bulk replay of every stored delivery in the from/to window (optionally filtered by eventTypeFilter). Returns 202 with a job_id to poll via GET /webhooks/:id/replay-range/:jobId. Returns 409 with machine-readable error code BULK_REPLAY_IN_PROGRESS when a bulk replay is already running or queued for the endpoint (at most one active bulk replay per endpoint) — wait for the in-flight job to finish before retrying.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Preview a bulk webhook replay

POST /api/v1/webhooks/{id}/replay-range/preview
Dry-run a bulk replay: count how many stored deliveries fall in the from/to window (optionally filtered by eventTypeFilter) without enqueuing any job.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Resume a webhook endpoint

POST /api/v1/webhooks/{id}/resume
Clear an in-flight pause window so deliveries resume immediately. Idempotent — calling it on an endpoint that is not paused returns the endpoint unchanged.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Rotate a webhook signing secret

POST /api/v1/webhooks/{id}/rotate-secret
Rotate the signing secret for a webhook endpoint. The new secret is returned in cleartext exactly once — persist it immediately, since later reads only show a masked prefix. Pass ?force=true to override the 24-hour previous-secret grace window (e.g. after a confirmed leak).
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Cancel a webhook secret rotation

POST /api/v1/webhooks/{id}/rotation/cancel
Discard the candidate secret and keep the current canonical secret in place. Idempotent.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Complete a webhook secret rotation

POST /api/v1/webhooks/{id}/rotation/complete
Promote the candidate secret to canonical and end the dual-signing grace window. Pass force: true to skip the auto-complete eligibility check (recent deliveries verified with the new secret).
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Initiate a webhook secret rotation

POST /api/v1/webhooks/{id}/rotation/initiate
Mint a new candidate signing secret and open a grace window during which deliveries are dual-signed with the old and new secret. The plaintext secret is returned exactly once. Idempotent within the 24-hour dedup window (returns reused_existing_rotation: true).
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Test a webhook endpoint

POST /api/v1/webhooks/{id}/test
Send a test event to a registered webhook endpoint to verify connectivity and signature handling.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Fire a synthetic test event

POST /api/v1/webhooks/{id}/test-fire
Fire a synthetic event of a given type at a registered endpoint. Optionally override the sample payload or pick a variant (success | failure | minimal). Returns a stable event_id you can poll the deliveries list with for the real receiver outcome.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Clerk webhooks

POST /api/v1/webhooks/clerk

Create address-verification

POST /api/v1/webhooks/didww/address-verification/{token}
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Requeue a dead-lettered delivery

POST /api/v1/webhooks/dlq/{deliveryId}/requeue
Move a single dead-lettered delivery back into the retry queue — resets its status to pending and clears the attempt counter so the retry scheduler picks it up again.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Bulk-replay dead-lettered deliveries

POST /api/v1/webhooks/dlq/bulk-replay
Requeue up to 200 dead-lettered deliveries in one request. Each id is re-checked against the dead-letter eligibility gate (status='failed' and retries exhausted); ids that are not currently dead-lettered are reported in ineligible alongside the per-row outcomes. Responds 409 when NONE of the requested ids are in the dead-letter queue. Rows locked by a concurrent bulk attempt are skipped (reason='stale').
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Discord dlr

POST /api/v1/webhooks/dlr/discord

Dotgo dlr

POST /api/v1/webhooks/dlr/dotgo

Email dlr

POST /api/v1/webhooks/dlr/email

Create email

POST /api/v1/webhooks/dlr/email/{tenantId}
string
required

Fax dlr

POST /api/v1/webhooks/dlr/fax

Instagram dlr

POST /api/v1/webhooks/dlr/instagram

Jasmin dlr

POST /api/v1/webhooks/dlr/jasmin

Kakao dlr

POST /api/v1/webhooks/dlr/kakao

Line dlr

POST /api/v1/webhooks/dlr/line

Messenger dlr

POST /api/v1/webhooks/dlr/messenger

Sms dlr

POST /api/v1/webhooks/dlr/sms

Telegram dlr

POST /api/v1/webhooks/dlr/telegram

Telnyx dlr

POST /api/v1/webhooks/dlr/telnyx

Viber dlr

POST /api/v1/webhooks/dlr/viber

Wechat dlr

POST /api/v1/webhooks/dlr/wechat

Whatsapp dlr

POST /api/v1/webhooks/dlr/whatsapp

Zalo dlr

POST /api/v1/webhooks/dlr/zalo

Email inbound

POST /api/v1/webhooks/inbound/email

Create tenantId

POST /api/v1/webhooks/inbound/email/{tenantId}/{tenantToken}
string
required
string
required

Fax inbound

POST /api/v1/webhooks/inbound/fax

Instagram inbound

POST /api/v1/webhooks/inbound/instagram

Kakao inbound

POST /api/v1/webhooks/inbound/kakao

Line inbound

POST /api/v1/webhooks/inbound/line

Messenger inbound

POST /api/v1/webhooks/inbound/messenger

Rcs inbound

POST /api/v1/webhooks/inbound/rcs

Sms inbound

POST /api/v1/webhooks/inbound/sms

Telegram inbound

POST /api/v1/webhooks/inbound/telegram

Viber inbound

POST /api/v1/webhooks/inbound/viber

Wechat inbound

POST /api/v1/webhooks/inbound/wechat

Whatsapp inbound

POST /api/v1/webhooks/inbound/whatsapp

Zalo inbound

POST /api/v1/webhooks/inbound/zalo

Network-events webhooks

POST /api/v1/webhooks/network-events
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Events slack

POST /api/v1/webhooks/slack/events
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Tcr webhooks

POST /api/v1/webhooks/tcr
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Telnyx-events webhooks

POST /api/v1/webhooks/telnyx-events
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Number-orders telnyx

POST /api/v1/webhooks/telnyx/number-orders
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Voice-noop telnyx

POST /api/v1/webhooks/telnyx/voice-noop
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Send an ad-hoc test webhook

POST /api/v1/webhooks/test
Send a one-off test event to an arbitrary HTTPS URL without registering an endpoint. The URL is SSRF-guarded (HTTPS-only; private/loopback/link-local/CGNAT hosts rejected; DNS pinned to the validated IP). Returns the receiver’s status code, latency, and truncated response body.
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Tfv-twilio webhooks

POST /api/v1/webhooks/tfv-twilio
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Update a webhook endpoint

PUT /api/v1/webhooks/{id}
Update an existing webhook endpoint’s URL, subscribed events, active state, description, or per-endpoint delivery timeout.
string
required
string
Stripe-style idempotency token. Pass a stable, client-generated value (1-255 chars) to dedupe retries on transient timeouts. The same key+credential+path replays the original response for 24h on 2xx (5min on 4xx, 30s on 5xx). Returns 409 if a concurrent request with the same key is already in flight; replayed responses include the Idempotency-Replay: true response header.
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.

Delete a webhook endpoint

DELETE /api/v1/webhooks/{id}
Delete a webhook endpoint. Stored deliveries are removed with it; returns 204 No Content on success.
string
required
string (enum: true|false)
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.