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
| Type | Identifier | Description |
|---|---|---|
| Webhook | webhook | HTTP endpoint that receives POST requests with Standard Webhooks signatures |
| AWS SQS | aws_sqs | Amazon Simple Queue Service queue |
| AWS Kinesis | aws_kinesis | Amazon Kinesis Data Stream |
| AWS S3 | aws_s3 | Amazon S3 bucket (events stored as JSON objects) |
| GCP Pub/Sub | gcp_pubsub | Google Cloud Pub/Sub topic |
| Azure Service Bus | azure_servicebus | Azure Service Bus queue or topic |
| RabbitMQ | rabbitmq | AMQP-compatible message broker exchange |
| Hookdeck | hookdeck | Hookdeck Event Gateway for routing, filtering, and transforming events |
Creating a destination
To create a destination, send aPOST to /v2/event-destinations with the destination type, its type-specific config and credentials, and the events you want to receive.
"events": ["*"] to subscribe to everything.
Destination configuration reference
Each destination type requires specific configuration fields and credentials.- Webhook
- AWS SQS
- AWS Kinesis
- AWS S3
- GCP Pub/Sub
- Azure Service Bus
- RabbitMQ
- Hookdeck
Delivers events as HTTP
Credentials
POST requests to a URL endpoint. Signed using the Standard Webhooks specification.Config| Field | Type | Required | Description |
|---|---|---|---|
config.url | string | Yes | The HTTPS endpoint URL |
config.custom_headers | string | No | JSON object of additional headers to include on every request |
| Field | Type | Required | Description |
|---|---|---|---|
credentials.secret | string | No | Signing secret (whsec_ prefix). Auto-generated if not provided. |
Verifying webhook signatures
Deck uses the Standard Webhooks specification for webhook signatures. Every delivery includes headers for verification, and awhsec_ signing secret is generated automatically when you create a webhook destination. You can retrieve it from the Dashboard.
Headers sent with each delivery
| Header | Description |
|---|---|
webhook-id | Unique event identifier |
webhook-timestamp | Unix timestamp of when the delivery was sent |
webhook-signature | Base64-encoded HMAC-SHA256 signature in v1,<signature> format |
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.Destination statuses
| Status | Meaning |
|---|---|
pending_verification | Deck is waiting for a successful response from your endpoint |
active | Receiving deliveries |
inactive | Disabled by you or by repeated delivery failures |
Deliveries
Each delivery is tracked independently. A delivery fails when the destination does not acknowledge within 5 seconds. Failed deliveries retry up to 3 times with exponential backoff. If all attempts fail, the destination is set toinactive.
Delivery statuses
| Status | Meaning |
|---|---|
success | Delivered and acknowledged |
failure | All retry attempts exhausted |
skipped | Destination was inactive at time of send |
