Connect Stripe webhooks to Relin

Use this when Stripe sends billing, checkout, payment, subscription, or Connect events into your product. Relin receives the events, verifies Stripe signatures, records every delivery attempt, and alerts when expected Stripe lifecycle events do not arrive.

What you need

Relin access

Owner or admin access to the Relin workspace where events should land.

Stripe access

Developer or administrator access in the Stripe account you are configuring.

Mode choice

Use separate Relin sources for Stripe test mode and live mode.

1. Create the Stripe source in Relin

  1. In Relin, open Developer → Inbound.
  2. Click Add source.
  3. Select the Stripe tile.
  4. Name the source so the mode is obvious, such as Stripe test or Stripe live.
  5. Save the source and copy the ingest URL. You will paste this URL into Stripe.
Relin source picker with the Stripe source selected
Select Stripe from the source picker, then name the source for the Stripe mode you are configuring.

Add source

Pick the Stripe tile, name the source, then save.

Vendor: Stripe
Source name: Stripe test

Ingest URL

Copy the full URL and paste it into Stripe.

https://relin.app/ingest/.../...

2. Create the webhook endpoint in Stripe

  1. Open the Stripe Dashboard and switch to the correct mode: Test mode or Live mode.
  2. Go to DevelopersWebhooks. Stripe also exposes this under WorkbenchWebhooks in newer dashboards.
  3. Click Create an event destination or Add endpoint.
  4. Choose events from Your account. For Connect platforms, choose Connected accounts only when you are configuring the platform-level Connect webhook.
  5. Paste the Relin ingest URL into the endpoint URL field.
  6. Select the event types your app depends on, then save the endpoint.

Endpoint URL

Paste the Relin ingest URL as the endpoint destination.

Events

Select the Stripe events your application handles.

Signing secret

Reveal the whsec_ value after the endpoint is saved.

Recommended Stripe events

Start with the events your application already handles. If you are unsure, these groups cover the common billing and payment lifecycles Relin can monitor well.

Billing

invoice.finalized
invoice.paid
invoice.payment_failed
customer.subscription.created
customer.subscription.updated
customer.subscription.deleted

Checkout + payments

checkout.session.completed
payment_intent.succeeded
payment_intent.payment_failed
charge.succeeded
charge.failed
charge.refunded

3. Copy the Stripe signing secret into Relin

  1. In Stripe, open the endpoint you just created.
  2. Find Signing secret and click Reveal.
  3. Copy the value that starts with whsec_.
  4. Return to the Relin source settings page and paste it into Signing secret.
  5. Save the source.

Important: Stripe uses a different signing secret for each endpoint and mode. Do not reuse a live-mode secret on a test-mode Relin source.

Relin source created panel with a masked ingest URL
After the source is created, copy the ingest URL before leaving the page. The token is shown once.

4. Send a test event

  1. In Stripe, open the webhook endpoint.
  2. Use Send test event, or trigger a test event with the Stripe CLI.
  3. Choose an event type subscribed by the endpoint, such as payment_intent.succeeded or invoice.paid.
  4. Send the event.
stripe trigger payment_intent.succeeded

5. Confirm it worked in Relin

  1. Open the Relin Events view.
  2. Filter to the Stripe source you created.
  3. Open the newest event.
  4. Confirm the signature status is verified.
  5. If you already added a destination, confirm the delivery attempt returned the status your endpoint expects.

Stripe Connect platforms

If your product uses Stripe Connect, use Relin's Stripe connection controls on the source settings page. Relin receives Connect events through one platform-level webhook and matches each event to the connected account. Individual connected accounts do not need their own Relin webhook endpoint.

Troubleshooting

  • No event in Relin: confirm the Stripe endpoint URL exactly matches the Relin ingest URL, including the token at the end.
  • Signature failed: re-copy the endpoint's whsec_ secret from the same Stripe mode and endpoint.
  • Stripe reports a non-2xx response: open the matching Relin event and inspect the delivery attempt. Stripe delivery to Relin and Relin delivery to your app are separate checks.
  • Expected invoice events are missing: make sure the endpoint subscribes to both start and terminal lifecycle events, such as invoice.finalized and invoice.paid.

Next