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 OK before 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_url via 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

StateBehavior
pausedWebhooks accepted and stored. Not forwarded. Default for new buckets.
liveWebhooks 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:

ProviderHeader
Stripestripe-signature
GitHubx-hub-signature-256
Shopifyx-shopify-hmac-sha256
Svixsvix-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