Webhooks · Drop-in

Webhooks as a service, built for SaaS products.

Stop maintaining the retry loop, the signing code, and the customer-facing log UI. Pushrail handles outbound webhooks end to end (signing, retries, replay, DLQ, observability) so you can ship the feature your customers actually asked for.

Live deliveries
order.paid→ acme-prod (webhook)202 · 38ms
user.signup→ bigquery (events)OK · 112ms
subscription.updated→ s3 (archive)queued
invoice.sent→ acme-prod (webhook)retry 2/5
order.refunded→ snowflakeOK · 89ms
Last hour14,827 delivered · 99.97% success

What ships in the box

Every primitive teams rebuild from scratch the first time, and the second time.

HMAC signing

Per-destination secrets, timestamped signatures, replay-attack protection, verified with one header.

Retries with backoff

Exponential backoff with jitter. Transient failures retry automatically. Permanent failures don't.

Replay

Re-run a single failure, a time window, or every event that hit a destination, without re-emitting from your service.

Dead-letter queue

Anything that exhausts retries lands in a DLQ you and your customers can inspect, fix, and replay.

Customer-visible log UI

Embed the delivery log inside your dashboard. Your customers see what failed without filing a ticket.

Idempotency keys

Producers can send the same event twice safely, duplicates are surfaced, not stored twice.

One ingest. Reliable delivery.

Send an event once. Pushrail signs, retries, and logs every delivery attempt.

Event ingestioncurl
POST /v1/events
Authorization: Bearer pk_live_8K2x…
Content-Type: application/json
{
"eventType": "order.paid",
"occurredAt": "2026-05-15T12:34:56Z",
"source": "checkout-service",
"customerExternalId": "acme-corp",
"payload": {
"orderId": "ord_8K2x",
"amount": 4900
}
}
202 Accepted38ms · evt_2x9K7n…
Sub-100ms acknowledgmentAsync processing

POST /v1/events accepts the canonical event shape, eventType, occurredAt, payload, customerExternalId. Pushrail acks in under 100ms and routes the rest off the hot path.

Your customers register their webhook URL through your dashboard (or through the embedded portal). Pushrail signs every request with their secret, retries on transient failure, and keeps a per-attempt audit trail.

Failed deliveries don't disappear: they sit in a per-destination queue you (and your customer) can replay.

Replay anything

Pick a destination, a time window, or a single failed delivery. Pushrail re-sends with the exact payload your customer would have seen.

Replay window145 failures selected
12:0013:0014:0015:0016:0017:0018:00

Your customers will ask for more than HTTP

Webhooks are step one. Pushrail also delivers to warehouses, queues, object storage, databases, and analytics, same ingest, same routing, same reliability primitives.

The first webhook customer asks for a JSON POST. The fifteenth asks for an S3 dump. The fiftieth asks for a BigQuery stream. Build the platform once.

Browse destinations →

Add reliable webhooks to your product

Sandbox is open. No credit card.