linkrunway.
Implementation guide

Revenue. With receipts.

Connect Stripe payments to the journey that brought them in.

Get started
Two professionals reviewing data charts in an office with a pink wall
The essentials

Create a Stripe revenue connection in LinkRunway, register its webhook URL in Stripe, and subscribe to successful PaymentIntents and refund updates. Attach consented attribution metadata from your authenticated server.

Before you begin.

  • A Stripe account and permission to manage webhooks
  • A publicly reachable HTTPS LinkRunway API
  • Workspace owner access

Connect the source of truth.

Open Stripe revenue → Connect Stripe. Enter the account ID and select Test or Live. Copy the displayed endpoint URL into a new Stripe Workbench webhook destination. Paste its signing secret back into LinkRunway and save the connection.

  • Subscribe to payment_intent.succeeded, refund.created, and refund.updated.
  • Match the Stripe destination mode to the LinkRunway connection.
  • Save the connection before sending a test delivery. The endpoint only accepts signed deliveries from an enabled connection.

Give the payment its context.

Set these metadata values on the PaymentIntent from your authenticated server after attribution consent. With Stripe Checkout, use payment_intent_data.metadata for payment-mode sessions. Metadata on a Checkout Session alone is not enough.

Server-side PaymentIntent metadata
metadata: {
  linkrunway_customer_id: authenticatedUser.id,
  linkrunway_click_token: savedClickToken,
  linkrunway_consent: 'true',
  linkrunway_event_type: 'PURCHASE'
}

Keep recurring payments consistent.

Each paid PaymentIntent becomes one revenue event. Set linkrunway_event_type to SUBSCRIPTION to classify it accordingly. For renewals, maintain the same customer ID through your server integration; do not assume subscription or invoice metadata automatically appears on the PaymentIntent.

Watch the delivery arrive.

Send a Stripe test event and refresh Payment deliveries. TEST means the signature and supported payload were accepted without affecting revenue. A live delivery moves from PENDING to APPLIED when the worker reconciles it.

  • Use a dedicated test connection before accepting live traffic.
  • Test repeated payment notifications and a partial refund.
  • Keep WORKERS_ENABLED on in the app API deployment.
  • Do not also report the same Stripe payment through a manual event with a different ID.

Let refunds close the loop.

Succeeded refund events reference their original PaymentIntent. Out-of-order deliveries wait and retry. The ledger preserves the payment, applies the partial refund once, and adjusts any related commission. Failed reconciliation remains visible for review and retry.

Find the missing connection.

401 from the webhook receiver

Check the signing secret, raw request body, server clock, account, and test/live mode.

A delivery stays PENDING

Check the app API worker, connection status, and whether the original payment has arrived. Workers skip suspended workspaces.

A paid invoice does not appear

This connector handles PaymentIntent-backed payments, not offline settlements, legacy charges without PaymentIntents, or disputes.

Platform references.

Reviewed October 10, 2026 · LinkRunway documentation

A little clarity

Good questions.
Clear answers.

Which Stripe events are supported?

payment_intent.succeeded, refund.created, and refund.updated. Only succeeded refunds with a PaymentIntent reference are reconciled. Legacy charges without PaymentIntents, disputes, and offline invoice settlements are outside this connector.

Do Checkout Session events create another payment?

No. PaymentIntent is the canonical payment object. Checkout and invoice notifications do not independently create revenue, preventing duplicate counting of the same payment.

Can I rotate the signing secret?

Yes. Save the same account ID and mode with the new secret. The endpoint and deduplication history stay in place. Coordinate the change with Stripe’s secret rotation window.

See the platform
Your next chapter

Let’s see where
a little link takes you.

Start for free Explore pricing