Connect Stripe webhooks to Relin

Relin receives Stripe webhooks, verifies signatures, stores payloads, and delivers them to your endpoints with retries, alerts, and replay.

Open the Stripe dashboard

Before you start

  • Create a Relin workspace and sign in.
  • Have admin access to the Stripe account where you'll configure the webhook.
  • Decide which events you want to capture, or start with "all events" if you're exploring.

Setup steps

  1. In Relin, open your workspace and click New source. Pick the Stripe tile.
  2. Copy the ingest URL Relin shows. This URL is shown once, so store it.
  3. Create a Stripe webhook endpoint.
  4. Send events to the Relin source URL.
  5. Paste the endpoint signing secret here.
  6. Save and send a test event from Stripe. Confirm Relin received it in your workspace.

Signing secret: Paste the webhook signing secret from the Stripe endpoint.

What Relin does next

  • Verifies the signature on every incoming event and records the status (verified, failed, unchecked).
  • Stores the payload so you can replay or inspect it later, bounded by your workspace retention window.
  • Delivers the event to every destination you've connected to this source, with retries and per-destination rate limits.
  • Surfaces lifecycle gaps (for vendors with known lifecycles) as anomalies you can triage from the dashboard.

Test it

The fastest check is the events view in your workspace. After you send a test event from Stripe, it appears within a second or two. Click into the event to see the raw payload, signature status, and the delivery attempts to your destinations.

You can also use the REST API or the MCP tools to inspect the stream programmatically.

Stripe-specific notes

  • Stripe has separate test-mode and live-mode webhook endpoints. Create one Relin source per Stripe mode, and use matching sk_test_ or sk_live_ secrets; mixing modes will produce cryptic signature errors.
  • For Stripe Connect platforms, Relin runs a platform-level Connect webhook. You only need to connect your Stripe OAuth once; individual connected accounts do not each need their own webhook.
  • Subscribe to invoice and payment_intent events together. Relin's lifecycle gap rules pair invoice.finalized with invoice.paid so missing terminal events surface as anomalies.

Troubleshooting

  • Signature status is failed: the signing secret doesn't match. Re-copy it from Stripe and update the Relin source.
  • Signature status is unchecked: no signing secret is configured on the source yet. Paste the secret on the source settings page.
  • No events arriving: check that the ingest URL in Stripe matches the URL Relin shows, including the token segment at the end.
  • Events arrive but destinations fail: open the delivery attempts tab on the event detail page. Each attempt shows the response body, status, and timing.

Next