Create a discount code in Stripe, map it to a partner once in our dashboard, and you're live. The code rides inside Stripe's own payload — on the first payment and on every renewal — so commissions are credited without an SDK, a deploy, or a cookie an ad blocker can eat.
Stripe · RevenueCat · Adapty — web and mobile in one ledger. We track the commissions; you keep the money and pay partners yourself.
Three ways in. Start at the top.
A discount code
A referral link
“How did you hear about us?”
All three land in the same ledger.
The usual route is cold outreach and a flat fee paid before anyone knows whether the post sells. Here you publish the program once, creators apply to you, and they are paid out of revenue they actually brought in.
Set your commission rate and terms, then list the program in the PolyReach catalogue. It takes one setup and stays live.
Creators browsing the catalogue see your terms and apply if their audience fits. No DMs, no chasing, no negotiating a fee first.
You read every application and decide. Approve the creators whose audience matches your product and ignore the rest.
Each creator gets a link or code. Sales are attributed through your Stripe, RevenueCat or Adapty webhooks, pointed at PolyReach.
Commissions sit on a refund hold, then become payable. You pay a share of money that already arrived, never a fee upfront.
and it compounds
A partner who earns keeps posting, and because the terms stay public, the next creator can find the program without an introduction.
You hunt for creators in DMs and most of them never reply.
You agree a flat fee before anyone knows whether the post sells anything.
The post goes out and nobody can say what it actually earned.
Creators find your program in the catalogue and apply to you.
They earn only from payments that actually happen, so there is no fee upfront.
Every commission traces back to the exact payment that caused it.
Say a founder of a calorie-tracking app lists a program with a clear rate. Fitness and meal-prep creators apply, because their audience already tracks food every day. The founder approves three. Each one earns only from the subscriptions their own audience starts, and every commission is tied to that payment.
Publishing a program costs nothing. You only owe a commission once a customer has paid you.
List your programAttribution
Ordered by how little you have to build. They stack — ship the first one this afternoon and add the others whenever you feel like it.
Create a promotion code in Stripe — TOMEK20, 20% off — and map it to a partner once in the PolyReach dashboard. Stripe names the code in the payload itself, so every payment it touches is attributed. No SDK, no deploy, no code review, no waiting on an engineer.
Credited on the first charge and on every renewal invoice after it
Can't be lost to a cleared cookie, an ad blocker or a second device
The format an influencer audience already understands: “use TOMEK20 for 20% off”
Map the code whenever you like — sales that arrived before you mapped it are back-credited automatically.
The partner shares their link. One script tag on your site remembers it in a first-party cookie on your own domain, and one line drops it into the Stripe Checkout Session metadata.
No dependencies, no build step, exactly one cookie
First attribution wins — a later link never overwrites the first
The click is counted before the redirect, so you can see which links work
The question you should be asking anyway. On the web it's one call from the same snippet; in a mobile app it sets a single RevenueCat or Adapty subscriber attribute, after which every purchase, renewal and refund webhook carries the answer.
No deep links and no fingerprinting — safe for App Store review
Doubles as acquisition analytics, even with zero partners
Set once at signup; a renewal two years later still credits the same partner
On mobile the survey is the path — Apple has no discount-code field in the subscription purchase flow. App Store offer codes can still be mapped to a partner as an extra deterministic signal.

Whichever path a sale arrives on, it lands in the same ledger, credited to the same partner, in the currency it was actually paid in.
The same thing, in money
The whole mechanic with real arithmetic. The rate and the hold are yours to set — these are the defaults we suggest.
Tomek shares TOMEK20
His audience gets 20% off. He has a code to say out loud, not a tracking link to explain.
Someone subscribes
A $10.00/mo plan with the code applied: Stripe charges $8.00 and names the promotion code in the invoice.
Tomek earns $2.40
30% of the $8.00 you actually collected — commission is calculated on what was paid, never on list price.
And $2.40 again next month
The renewal invoice carries the same discount, so every payment keeps crediting him for as long as that customer stays.
Held for 30 days
If the customer refunds inside the window, a clawback mirroring the original entry nets it to zero — the money was never payable in the first place.
You pay, we record
Bank transfer, PayPal, whatever you already use. Click “Mark as paid” and both sides see the same history.
Defaults we suggest: 30% commission and a 30-day hold. The hold is set per program; the rate can be overridden for an individual partner.
From a partner’s recommendation to money in their pocket — with both sides reading the exact same numbers.
A customer arrives through a partner
They use the partner’s discount code, click their link, or name them in your “how did you hear about us?” step.
They subscribe
$8.00/mo
Monthly subscription
They subscribe the way anyone else does — the attribution is already attached to the payment.
Webhook lands in PolyReach
Your billing
PolyReach
purchase · renewal · refund
Your billing platform already reports every purchase, renewal and refund — PolyReach just listens.
Ledger books the commission
+ commission on every payment
Every payment adds the partner’s % — automatically, with a refund hold and clawbacks if the money goes back.
Partner sees it instantly
+$2.40
e-mail + live dashboard
Their private dashboard updates live and an e-mail says exactly how much they just earned.
You pay partners directly and click “Mark as paid” — PolyReach keeps the math honest for both sides, and never touches the money.
Connect once. PolyReach listens to the purchase, renewal and refund events your billing platform already sends — nothing changes about your checkout, and nothing changes about how you get paid.
Stripe
LiveWeb and SaaS. Discount code, referral link or survey pick — all three land in the same ledger, and signed webhooks cover renewals, refunds and disputes.
RevenueCat
LiveApp Store and Google Play subscriptions. Your app sets one subscriber attribute at signup and every webhook carries it from then on.
Adapty
BetaThe second mobile path. Same purchase / renewal / refund model as RevenueCat, so it slots straight into the same ledger.
A paywall tool doesn't need an integration of its own — it owns the UI, not the billing. If your paywall sits on top of RevenueCat, the purchase events we listen to are already being sent, so commissions are tracked without touching the paywall at all.
Set it up once. Use one side, or both.
Affiliate program
Recurring commission for as long as the customer keeps paying — not a one-off shoutout. Attribution comes out of the billing webhooks you already emit, and on Stripe it can be a discount code you never write a line of code for. You pay partners directly and click “Mark as paid” — we never touch the money.
Attribution analytics
Don't want to pay anyone yet? The same one-tap survey works as pure analytics: see what share of new users came from TikTok, Google, the App Store or a friend — right inside your onboarding, with zero extra SDKs. Turn on commissions later when you're ready.
No affiliate program required — attribution stats work on their own.
Tool #2 — Attribution analytics
The same one-tap onboarding question doubles as clean acquisition analytics. No extra SDKs, no fingerprinting — just an honest breakdown of every new subscriber's source, right inside your app.
Works with zero paid partners — pure analytics from day one
Creators, the App Store, Google, word-of-mouth — one view
Flip on commissions later without touching your code again
New subscribers by source
Creators (partners)
41%
TikTok
24%
Google / Search
17%
App Store browse
12%
Friend / word of mouth
6%
Live example — your real numbers appear as users onboard.
Not because they don't want ambassadors — because of what stands in the way.
An SDK, a tracking script, a redirect domain, a release. So it goes on the roadmap behind everything that ships revenue this quarter, and the ambassador who offered to promote you gets a “soon”.
Stripe Connect means KYC, SCA, disputes and platform liability — enormous overhead for paying four creators a few hundred a month.
Ad blockers, tracking prevention, a cleared browser, a purchase finished on another device. Every one of them quietly breaks attribution, and the partner is the one who notices.
“How much do you owe me?” shouldn't be answered with a screenshot. And when a refund lands, you either eat the loss or claw it back by hand — both are awkward conversations.
Short answers — each of them enforced in code, not in a support reply.
The refund arrives on the same webhook and writes a negative entry mirroring the original commission — never an amount read off the refund payload. It inherits the original's hold date, so the pair nets to zero in the same bucket instead of leaving you chasing a partner for money back.
Reversed the same way. A Stripe dispute only ever names the payment intent, while the commission is keyed on the invoice — so every event stores both ids and a reversal matches on either. Without that, a subscription chargeback would cost you the sale and still leave you owing the commission.
No. Every commission is derived from an event your provider sent, and the event list shows each one: the provider's own event type, the amount, the currency, the partner it credited and the signal that attributed it. Balances are summed from the ledger every time — there's no stored counter that can drift.
Currencies are never added together. A partner earning in EUR and USD sees two balances rather than one wrong number, and zero-decimal currencies are formatted as what they are — ¥3,000 is not ¥30.
Both, in one ledger. Stripe covers web and SaaS, RevenueCat covers the App Store and Google Play, Adapty is the second mobile path. A founder with an app and a web plan gets one partner list and one balance per currency.
Whenever you decide. PolyReach works out what's payable once the hold has passed, you send the money however you already send money, and you click “Mark as paid”. No KYC, no Stripe Connect, no platform liability — PolyReach never touches the funds.
We run this on ourselves
We pay 30% of every subscription payment, recurring, for as long as the customer stays — the rate we suggest to you, on the same ledger, with the same 30-day hold. It's listed on our partner marketplace, and you can apply to it.
The same Stripe path we hand you — our own program is how we test it
The same ledger, holds and clawbacks your partners would be paid from
The same portal link your creators would open
If we wouldn't run our own commissions through it, we wouldn't ask you to.
Three steps. None of them touches your app's code.
Name it, pick your billing platform, set the commission rate and the refund hold. We suggest 30% recurring and 30 days — the terms we run our own program on.
Into Stripe, RevenueCat or Adapty. It's a settings screen in your billing dashboard — the only integration step there is, and it needs no SDK, no release and no code review.
Paste the promotion code's Stripe URL next to the partner and send them their private portal link. The next discounted sale attributes itself — and so does every renewal after it.
For the discount-code path, no. You create a promotion code in Stripe, map it to a partner in PolyReach, and every payment that code touches is attributed — renewals included. Outside PolyReach you only touch settings screens: you create the promotion code in Stripe and paste one webhook URL back into it. No SDK, no deploy, no code review. Referral links and the “how did you hear about us?” question are optional extras on top: a script tag and one line at checkout.
Both reverse automatically. A refund writes a negative entry mirroring the original commission and inheriting its hold date, so the two net out. A Stripe dispute is matched on the payment intent as well as the invoice id, because a dispute object never carries the invoice — without that, a subscription chargeback would reverse nothing. Commissions also sit in a hold window (30 days by default) before they become payable, so most refunds settle before any money is owed.
No — by design. PolyReach is the attribution and ledger layer: it computes exactly what you owe each partner after holds and clawbacks. You pay by bank transfer, PayPal or anything else, then click “Mark as paid”. No KYC, no Stripe Connect, no platform liability, and no money of yours sitting in someone else's account.
Yes, in the same ledger. Mobile runs on RevenueCat (App Store and Google Play) or Adapty: your app asks who referred the user, sets one subscriber attribute, and every purchase, renewal and refund webhook carries it from then on. No deep links, no fingerprinting, safe for App Store review. Apple has no discount-code field in the purchase flow, so on mobile the survey is the reliable path — App Store offer codes can be mapped to a partner as an extra deterministic signal.
Every commission is derived from an event your billing provider sent, and you can see each event: the provider's own event type, the amount, the currency, the partner it credited and the signal that attributed it. Balances are summed from the ledger rather than stored, currencies are never mixed, and sandbox events are flagged and kept out of real balances. Your partner reads the same figures you do, from the same rows.
A private magic-link portal: pending, payable and paid balances per currency, how many subscribers they've been credited with, the individual commission and clawback entries, payout history, and your promo brief with any assets you uploaded. Read-only, no sign-up, no customer data — and you can revoke or regenerate the link at any time.
Yes. PolyReach's own ambassador program runs on PolyReach — 30% of every subscription payment, recurring, with the same 30-day hold every founder gets. It's listed on our partner marketplace, which is also where your program can be listed if you'd like creators to find you.
Yes. A Stripe Checkout in payment mode is priced, attributed by discount code or referral link, and clawed back on refund exactly like a subscription payment — the partner just earns once per sale instead of on renewals. Set “What this program sells” to one-time purchases and every partner-facing surface (the marketplace listing, the partner portal, the e-mails) says so honestly instead of promising renewals that can never happen.
© 2026 PolyReach. All rights reserved.
contact@polyreach.app