Affiliate software with a Stripe integration: what to check before you pick one
"Integrates with Stripe" means very different things in affiliate software: how the partner's click reaches Stripe, which payments get recorded, what happens on a refund, and who touches the money. Here's how the main tools do it in 2026, and the questions that separate them.
If you bill with Stripe, you’ll want affiliate software that reads your Stripe account, so a partner is credited for every payment and renewal, with commissions adjusted for refunds, without anyone copying numbers between systems. The SaaS affiliate tools in this post all list Stripe on their integrations pages. Under that one logo, the integrations work very differently.
This post explains what Stripe affiliate tracking has to do, the places where it quietly loses sales, and how the main tools approach it in 2026. We build OpenPartner, which has its own Stripe App, currently in beta, so weigh that section accordingly. Competitor details come from each vendor’s docs, checked in October 2026, and are listed at the end.
What the integration has to do
A Stripe integration for affiliate software has four jobs. Check all four, not just the first.
1. Connect to your Stripe account
The tool needs to see your payments. There are three ways to connect:
- OAuth or a Stripe App. You click Connect, pick your Stripe account, and approve a list of permissions on Stripe’s own screen. Stripe Apps also appear in your Stripe Dashboard under installed apps, and the permissions are listed one by one, so you can see exactly what the tool can read and write, and revoke it in Stripe.
- An API key. You paste a restricted key into the tool. It works, but you’re trusting the tool to store a key that can read your account.
- Webhooks you set up. You add the tool’s URL as a webhook endpoint in Stripe and pick the events. The tool only sees what you send it.
Ask whether the tool can write anything to your Stripe account, and what for. Creating coupons and promotion codes for partners needs write access to those objects. Ask what else it can change, such as customers or subscriptions, and why.
2. Get the partner’s click into Stripe
This is where sales can go missing. Stripe never sees your website, so it doesn’t know which partner sent a buyer unless something tells it. The common ways:
client_reference_idon Checkout. A script on your site reads the partner’s click id and adds it to Stripe Payment Links, Pricing Tables and Buy Buttons, or your server adds it when it creates a Checkout Session. Stripe stores it on the completed session, and the tool reads it back.- Customer metadata. Your server writes the partner’s id or click id onto the Stripe Customer when it creates them. Every later invoice for that customer can be traced back to it.
- Promotion codes. A customer types a partner’s code at checkout, and the tool credits the partner whose code it is. No click needed.
Ask which of these the tool supports, and which matches how your customers pay. If you use Payment Links, does the tool add the click to them automatically? If you create Checkout Sessions yourself, what’s the one line you have to add? If you create customers outside Checkout, how does the tool find out which partner they came from?
3. Record every payment, not just the first
For a subscription, the first payment is a fraction of what the partner will earn. The integration should record renewals, upgrades and one-off invoices for a referred customer, for as long as your commission rules pay on them, without the customer ever seeing a partner link again.
Ask what happens to the 13th invoice. Ask about invoices you create by hand, and about customers who upgrade from monthly to yearly.
4. Handle refunds and disputes
A refund in Stripe should reverse the commission on that payment. A partial refund should reduce it in proportion, not wipe it out. A refund after the partner was paid can’t reverse anything; it should record what the partner owes back. A dispute shouldn’t reverse anything until it’s lost, because you might win it.
Ask what each tool does with a partial refund, a refund after payout, and a lost dispute. Many tools document the first case and say nothing about the other two.
Two more things to check
- Customer discounts. If your program gives referred customers a discount, can the tool create the coupon and each partner’s promotion code in your Stripe account? Otherwise you’ll make them by hand, one per partner.
- Payouts. Some tools pay partners for you, often through Stripe Connect, PayPal or a payments partner, and charge a fee for it. Others work out what’s owed and leave the payment to you. Neither is wrong, but they cost different amounts and put different companies in the money flow.
How the main tools do it
Here’s how ten affiliate tools describe their Stripe integration in their own docs, as of October 2026. “Not documented” means we looked and the vendor’s public docs don’t say.
| Tool | Connects as | Partial refund | Creates promo codes | Pays partners for you |
|---|---|---|---|---|
| Rewardful | Stripe App | Commission recalculated | Yes | Optional, 3% |
| Tolt | Stripe App | Whole commission reversed | Yes | Optional, 2% |
| FirstPromoter | Stripe App | Not documented | Yes | Enterprise 2 and up |
| PromoteKit | Stripe App | Not documented | Yes | Optional, via Stripe Connect |
| Partnero | Stripe App, OAuth or API key | Commission recalculated | Yes, synced both ways | Optional, 7% |
| Dub Partners | Stripe App | Edit it yourself | Yes | Yes, 5% to 8% |
| Endorsely | Stripe App | Not documented | Not documented | PayPal file |
| Affonso | Connect (not a listed app) | Commission reduced | Yes | Optional, from Growth |
| Tapfiliate | API key and webhook | Commission lowered | No | Through your own Trolley account |
| Cello | A webhook you create | Not documented | No, you create them | Yes, by PayPal |
Rewardful
A listed Stripe App. Rewardful is retiring its older Stripe Connect link, and asks customers
still on it to install the app. Its script passes the referral to Checkout as
client_reference_id, adds it to Payment Links, Pricing Tables and Buy Buttons, or your server
puts it in the Stripe customer’s metadata. Commissions follow every charge and invoice for a
referred customer, and are recalculated on full and partial refunds; its help center doesn’t
cover disputes. It can create a Stripe promotion code per affiliate from your coupon. You pay
partners from PayPal or Wise files, or turn on Managed Payouts (3%, processed by Tipalti). On
Paddle, it supports Paddle Classic only. From $49/month.
Tolt
A listed Stripe App with read-only access, except for coupons and promotion codes. Your server
copies the referral into metadata (tolt_referral) on Checkout, and its script adds
client_reference_id to Payment Links, Pricing Tables and Buy Buttons. It records paid charges,
renewals included. Any refund, even a partial one, reverses the whole commission, and a refund
on a paid commission creates a negative one. It can create partner coupons in Stripe, and pays
partners for you for a 2% fee. Also works with Paddle and Chargebee. From $99/month.
FirstPromoter
A listed Stripe App, installed from the FirstPromoter dashboard. Checkout takes its tracking id
as client_reference_id, and it has scripts for Payment Links and Pricing Tables. It reads paid
invoices and charges, and treats both refunds and new disputes as refunds; its docs don’t say
whether a partial refund reduces or reverses the commission. It creates Stripe promotion codes
for affiliates’ tracking codes. It supports Paddle, Chargebee, Recurly and Braintree too, and
can pay affiliates from your own Stripe balance through Stripe Connect. From $49/month.
PromoteKit
A listed Stripe App, built for Stripe only. Your server sends the referral as metadata
(promotekit_referral), and a script handles Payment Links. Its FAQ says refunds adjust the
commission automatically; its docs don’t describe partial refunds. It generates a promo code per
affiliate from a coupon you create. Payouts are PayPal or Wise files, or one-click payouts
through Stripe Connect Express, with a 5% fee if you fund them by bank or 8% by card. Pro is
$29/month billed yearly ($39 monthly), for up to $10,000 a month in affiliate revenue, and
there’s a free plan for your first three referrals.
Partnero
A listed Stripe App; you can also connect by OAuth or an API key. Its script tags Payment Links, Pricing Tables and Buy Buttons, or your signup flow creates the referred customer by API. A full refund withdraws the commission and a partial one recalculates it. Coupons sync both ways between Partnero and Stripe. Payouts are PayPal or Wise, or managed payouts for a 7% fee. Also supports Paddle and Chargebee. From $49/month billed annually ($59 monthly).
Dub Partners
A listed Stripe App, connected to your Dub workspace by OAuth, on the Business plan or above.
Your checkout passes your user id as metadata (dubCustomerExternalId), or a Payment Link gets
Dub’s click id as client_reference_id. It reads first purchases and paid invoices. A refund
marks an unpaid commission refunded automatically; a partial refund is a manual edit, and a
commission already paid can’t be refunded, so Dub suggests a holding period or a clawback. It can
create the Stripe coupon and partner codes for you. Dub pays partners itself, for 5% of payouts
funded by ACH or 8% by card (3% and 6% on Enterprise). From $90/month.
Endorsely
A listed Stripe App with a free plan for up to $1,000 a month in affiliate revenue. Its script
exposes the referral id, which your server passes as metadata (endorsely_referral), and it
adds client_reference_id to links and Pricing Tables. Its homepage says renewals, upgrades and refunds are tracked; its technical docs
don’t describe refunds. Payouts are a PayPal mass-pay file. Pro is $39/month and Scale
$99/month.
Affonso
Connected from its dashboard, not a listed Stripe App. Your server sends the referral as
metadata (affonso_referral), and its script adds client_reference_id to Payment Links and
Pricing Tables. Its help center says a refund can lower or cancel the commission, and a dispute
marks it Disputed. It creates coupons in Stripe. Payouts are PayPal, Wise or wire files, or
Managed Payouts from the Growth plan for a flat fee per invoice plus a surcharge. It also
supports Paddle Billing, Polar, Creem and Dodo Payments. From $15/month billed yearly.
Tapfiliate
Not a Stripe App, and its two descriptions differ: its help center pairs a JavaScript call on your thank-you page (with the Stripe charge id) with a “Connect Stripe” step for recurring commissions, while its marketing page describes a restricted API key and a webhook. Once connected, a full refund or an opened or lost dispute disapproves the commission, and a partial refund lowers it. It doesn’t create coupons: you make the code in Stripe and add it to the affiliate. Automated payouts run through your own Trolley account, from the Scale plan. From $89/month.
Cello
Cello is customer-referral software rather than an affiliate tool, and connects through a webhook you set up in Stripe. Your app puts Cello’s referral code and your user id on the Stripe customer. A refund cancels a reward that hasn’t been paid yet. You create any discount coupons yourself. Cello pays referrers itself, mainly by PayPal.
Also with Stripe Apps
PartnerStack and impact.com both have listed Stripe Apps for their affiliate products. PartnerStack matches customers by Stripe customer metadata or email, and replaces a partially refunded transaction with the net amount. Both pay partners for you, on annual contracts.
How OpenPartner does it
On hosted plans, Admin → Integrations → Connect Stripe installs the OpenPartner Stripe App on your own Stripe account. It’s in beta: it’s in Stripe’s external test while Stripe reviews it for the Stripe App Marketplace. It installs on live accounts and records real payments today. Taking the four jobs in order:
- Connection. You approve the app’s permissions on Stripe’s install screen. It can read the payment objects it records, and its only write access is to coupons and promotion codes. It can’t charge a customer, refund, create a payout or change a subscription.
- The click. Integrations asks how your customers pay and shows the one step that fits. A
partner link can go straight to a Payment Link with
client_reference_id={click_id}on the end. For Payment Links, Pricing Tables or Buy Buttons on your site, one script tag adds the click to them. If your server creates Checkout Sessions, it’s the same script plus one line. If you create Stripe customers outside Checkout, you put your own user id in their metadata, the same id your app passes toidentifyat signup. - Payments. Checkout and Payment Link purchases, invoices and renewals for referred customers are recorded as they’re paid, and your commission rules decide what each one pays.
- Refunds and disputes. A refund, full or partial, reverses or reduces the commissions on that payment. If the commission was already paid, a clawback is recorded and taken off the partner’s next payout you send. One exception: a Stripe payment that covered several invoices, or part of one, is recorded but reverses nothing, because Stripe doesn’t say which invoice was refunded; you report that refund through the API with the amount. A dispute is recorded and reverses nothing; if you lose it, you report the chargeback by API.
Partner promotion codes are created in your Stripe for you when the program offers referred customers a discount, and a purchase that uses one credits that partner. Payouts stay with you: OpenPartner works out what each partner is owed and prepares payment files. You pay by PayPal, bank transfer or your own method, and mark the payout paid. It never holds the money and charges no payout fee.
Not on Stripe? Your server reports the same events through the API, so Paddle, Chargebee or your own billing work too. Self-hosting? Your instance uses your own Stripe key and webhooks instead of the app. The full setup is in the Stripe App docs.
Revshare is 3% of partner-attributed revenue with no monthly fee, and Flex is $49 a month plus 1.5%. Each conversion is billed the larger of that rate and 10% of the partner’s commission (5% on Flex). See pricing.
A test to run on any trial
Before you invite a partner, run this in Stripe test mode where the tool supports it (some, like Affonso, work in live mode only, so follow each vendor’s own testing advice):
- Click a test partner’s link and buy through your real checkout.
- Pay a second invoice for the same customer, as a renewal would.
- Refund half of the second invoice.
- Buy once more using the partner’s promotion code, without clicking a link.
You should see three credited payments, the second one reduced by half, and no manual steps. If any of those needed a spreadsheet, a support ticket or a custom webhook, you’ve found the limits of that integration.
Sources
Checked on October 23, 2026.
- Stripe App Marketplace: app listings
- Rewardful: switching to the Stripe App, how Rewardful uses your Stripe account, server-side Checkout, promotion codes, Managed Payouts, Paddle, pricing
- Tolt: Stripe integration, Payment Links, partner coupons, pricing
- FirstPromoter: Stripe events, Stripe Checkout, coupon codes, Stripe payouts, pricing
- PromoteKit: Stripe API, Stripe payouts, FAQ, pricing
- Partnero: Stripe integration, Stripe page, pricing
- Dub: Stripe integration, refunds, partner payouts, pricing
- Endorsely: Stripe integration, pricing
- Affonso: connecting a payment provider, refunds and disputes, Managed Payouts, pricing
- Tapfiliate: Stripe help article, Stripe page, refunds, Trolley
- Cello: Stripe webhook, discounts, FAQ
- PartnerStack: Stripe payment tracking. impact.com: Stripe App guide