Connect your Stripe

Authorize Partli to read your existing Stripe account so we attribute paid checkouts automatically.

You don't create a new Stripe account

This is OAuth into the Stripe account you already have, the same way “Sign in with Google” works. You don't do KYC. You don't re-enter bank details. You don't create anything new. You sign in to your existing account, click Authorize, and that's it.

Setup (~30 seconds)

  1. In Partli, open your workspace's Settings → Billing integrations (or the Connect your billing step on the dashboard checklist).
  2. Click Connect Stripe. Only the person who created the workspace can do this.
  3. You're redirected to Stripe. If you have multiple accounts, pick the one that processes your payments.
  4. Stripe asks you to authorize Partli. Click Authorize access. Partli only reads checkout, invoice, refund and dispute events, and creates partner promotion codes if you turn on customer discounts.
  5. You're redirected back to Partli. Connection done.

What we do with the access

We listen for two events on your account:

  • checkout.session.completed — every time a Stripe Checkout closes successfully.
  • invoice.paid — every time a subscription invoice is paid (covers recurring billing too).

For each, we look for a Partli click ID: the Checkout Session's client_reference_id (set by partli.js, or by you when you create sessions server-side) or metadata.partli_click_id. For subscriptions we read it from the Checkout Session that created the subscription, so the first invoice and every renewal are credited without extra code. With no click ID, we check whether the coupon applied belongs to a partner. If neither matches, the event is ignored and your direct sales are never touched.

What we actually do with the access

Stripe's OAuth scope is broad by default (read_write) — that means our access token could technically write to your account, but we never do. We only listen for two webhook events (checkout.session.completed, invoice.paid) on connected accounts. We don't create charges, refunds, customers, or modify anything else. Disconnect any time from Account → Integrations to revoke access.

vs. Stripe Connect Express (your partners)

Confusingly, Stripe markets several different things under the “Connect” name. These are not the same:

Who does itWhat it isWhy
You (the merchant)Connect OAuth (this page)Authorize Partli to read your existing Stripe account's events. Optional but recommended.
Your partnersConnect Express onboardingCreate a Stripe-managed account so we can transfer payouts to them. Required if you want them to be paid via Stripe.

You authorize once and never think about it again. Your partners onboard once each, the first time they receive a payout (~3 minutes per partner).

Disconnecting

Same place: Settings → Billing integrations → Disconnect. We revoke the OAuth grant on Stripe's side and stop listening to events from your account. Existing commissions are unaffected.

Troubleshooting

  • Connected but no sales appear: check that your Stripe Checkout buttons run AFTER our partli.js snippet loads. The snippet has to be in <head> for it to wrap Stripe.js calls.
  • Unrelated sales appearing as commissions: shouldn't happen — we ignore events without a client_reference_id we recognise. If you see it, check the tracking diagnostic page.
  • OAuth callback errors: usually means the redirect URI isn't registered on Partli's Stripe Connect platform settings. Email us.