Catch Overview
Solenoid Catch is a webhook buffering API that queues incoming webhooks and replays them on demand — no messages lost during downtime.
Catch sits between webhook senders (Stripe, GitHub, Shopify, Svix) and your application. It accepts every webhook instantly with 200 OK, stores the payload, verifies the signature, and forwards or replays events when you are ready.
What makes Catch different
- Always-on ingestion. Returns
200 OKbefore processing. Your uptime does not affect webhook acceptance. - Signature verification built in. Stripe, GitHub, Shopify, and Svix verified automatically via header detection.
- Replay on demand. Replay one event or bulk-replay after an outage.
- Pause and resume. Paused buckets store events without forwarding. Live buckets forward automatically.
Capabilities
- Accept and store any JSON webhook payload
- Auto-detect provider from signature headers
- Verify HMAC-SHA256 signatures with timing-safe comparison
- Forward events to a configurable
target_urlvia queue consumer - Replay individual events or filter and bulk-replay
- Tier-based retention (24 hours to 90 days)
- Rate limiting with automatic panic mode protection
Bucket states
| State | Behavior |
|---|---|
paused | Webhooks accepted and stored. Not forwarded. Default for new buckets. |
live | Webhooks accepted, stored, and forwarded to target_url automatically. |
Set state via PATCH /v1/catch/buckets/:bucket_id with {"state": "live"} or {"state": "paused"}.
Provider detection
Catch auto-detects providers from request headers:
| Provider | Header |
|---|---|
| Stripe | stripe-signature |
| GitHub | x-hub-signature-256 |
| Shopify | x-shopify-hmac-sha256 |
| Svix | svix-signature / svix-id / svix-timestamp |
Webhooks from unknown providers are accepted without verification.
Use cases
- Development testing. Capture production webhooks and replay to localhost.
- Deployment protection. Pause buckets during deploys so webhooks queue with zero loss.
- Incident recovery. Replay all missed webhooks after an outage.
- Multi-environment fan-out. Route the same webhooks to staging and production.
Pricing and rate limits
Webhook ingestion costs 1 credit per event. Successful replays cost 1 credit. Failed replays and bucket management are free. See the API Reference for the full breakdown.
See Pricing for tier details.
See Rate Limits for per-minute limits and panic mode.
Next steps
- Quick Start — Create your first bucket and capture webhooks
- API Reference — Full endpoint documentation