Skip to main content

Event destinations

A destination defines where events are delivered. Deck supports multiple destination types so you can receive events wherever your infrastructure already lives.

Supported destination types

Creating a destination

To create a destination, send a POST to /v2/event-destinations with the destination type, a type-specific object (keyed by the type name) containing both config fields and credentials, and the events you want to receive.
Use "events": ["*"] to subscribe to everything. Credential fields go inside the type-keyed object alongside config fields. There is no separate top-level credentials block.

Destination configuration reference

Each destination type requires specific configuration fields and credentials.
Delivers events as HTTP POST requests to a URL endpoint. Signed using the Standard Webhooks specification.

Verifying webhook signatures

Deck uses the Standard Webhooks specification for webhook signatures. Every delivery includes headers for verification. To verify signatures, provide a whsec_ signing secret when you create the webhook destination. The secret is stored securely and cannot be retrieved afterward, so save it somewhere safe at creation time.

Headers sent with each delivery

Verification

Use the official Standard Webhooks SDK to verify signatures. SDKs are available for JavaScript, Python, Go, Ruby, Java, Rust, and more.

Secret rotation

When you rotate your signing secret, Deck keeps the previous secret valid for 24 hours. During this window, verify against both secrets so you can roll over without downtime.

Static IP addresses

Webhook deliveries come from a fixed set of static IP addresses. If your endpoint sits behind a firewall or IP allowlist, add these addresses so deliveries aren’t blocked.
  • 136.107.35.242
  • 34.86.136.110
  • 136.107.63.48
Static delivery IPs apply to webhook destinations only. Cloud destinations such as SQS, Pub/Sub, and Service Bus authenticate with their native credentials.

Destination statuses

Deliveries

Each delivery is tracked independently. For webhooks, a delivery fails when the destination does not return a 2xx response within 5 seconds. Failed deliveries are retried up to 10 times with exponential backoff (base 2, starting at 30 seconds). Persistent failures don’t auto-disable a destination. List failed deliveries with GET /v2/event-destinations/{id}/event-deliveries?status=failure to inspect them.

Delivery statuses