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 aPOST 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.
"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.- Webhook
- AWS SQS
- AWS Kinesis
- AWS S3
- AWS EventBridge
- GCP Pub/Sub
- Azure Service Bus
- RabbitMQ
- Hookdeck
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 awhsec_ 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.34.139.110.24235.237.129.15334.24.255.163
Destination statuses
Testing a destination
Test endpoints
If you don’t have a receiver ready yet, you can still create a destination and watch events arrive. In the Console’s create flow, choose Test endpoint instead of entering your own URL. Deck provisions a disposable Hookdeck Console URL as the destination’s webhook URL, and an Inspect deliveries button on the destination opens delivered payloads in your browser. No receiver code required. The API doesn’t create test endpoints, but it recognizes them. A destination whose URL is a Hookdeck Console endpoint includes a read-onlytest_endpoint object with the inspect URL:
Sending a test event
Once a destination is active, send atest.ping event to confirm deliveries reach it. Use the Send test ping button on the destination in the Console, or call POST /v2/event-destinations/{destination_id}/test. The response reports the delivery attempt:
The test event’s
data payload is {"ok": true}. Test events are delivered once and not retried. A destination still in pending_verification can’t receive test events.
Deliveries
Each delivery is tracked independently. For webhooks, a delivery fails when the destination does not return a2xx 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.