Dedicated affiliate platforms like Rewardful, FirstPromoter, or Tapfiliate are great once you have real volume, but most of them charge a recurring fee that kicks in well before you’ve signed your first ten affiliates. If you’re a small SaaS testing whether affiliate marketing even works for you, that’s a lot of overhead for an unproven channel.
The good news: you don’t need a platform to run a legitimate, trackable affiliate program. You need a way to attribute a sale to a person, a way to record what you owe them, and a way to pay them. Stripe, a spreadsheet, and PayPal (or Wise) can cover all three. Here’s how to set it up step by step.

Quick Answer
Give each affiliate a unique Stripe promotion code (not a generic discount code) and use it as your tracking key: whenever a customer checks out with that code, the sale is attributed to that affiliate. If you don’t want to offer a discount, use a unique tracked link and pass the affiliate’s ref value into Stripe’s client_reference_id or metadata instead. Log signups, codes, and resulting payments in a shared spreadsheet, calculate commissions monthly from your Stripe dashboard or API, and pay out manually through PayPal, Wise, or bank transfer. It takes more manual work than an affiliate platform, but it’s low-cost and fully under your control.
Step-by-Step: Setting Up Tracking and Payouts
Start with attribution, since that’s the piece a platform normally handles for you. In the Stripe Dashboard (or via the API), create a coupon for the discount you want to offer. Stripe requires every coupon to have a real discount: either a percent_off greater than 0 (up to 100) or a positive amount_off with a currency. A zero-value coupon can’t be created, so pick a small but genuine discount, like 10% or a few dollars off. Then create a unique promotion code tied to that coupon for each affiliate, something memorable like ‘JANE20’, and give that code to only that affiliate. When a customer applies the code at checkout, Stripe records which promotion code was used, so you can filter later.
If you’d rather not offer any discount at all and just want attribution, skip coupons entirely and use a unique tracked link instead: give each affiliate a URL with a parameter, like yoursite.com/pricing?ref=jane, and pass that value into Stripe’s client_reference_id (a free-form string of up to 200 characters) or into the Checkout Session’s metadata when you create the session via the API. Either method, a discounted promotion code or a ref parameter passed as metadata, gives you a reliable join key between ‘this customer’ and ‘this affiliate,’ and you can mix both if some affiliates want to offer a discount and others don’t.
Next, build your tracking sheet. A Google Sheet with tabs for Affiliates (name, email, payout method, unique code, commission rate) and Sales (customer, code or ref used, plan, amount, date, commission owed, paid status) is enough for a small program. Once a month, pull your Stripe data, either manually from the dashboard filtered by promotion code, or automated with a short script against the Stripe API that reads the promotion code or metadata field, and log new sales into the sheet.
Calculate what you owe: multiply each affiliate’s attributed revenue by their commission rate (a flat percentage of the first payment, or of recurring revenue for a set number of months, are both common structures for subscription SaaS). Then pay out. PayPal’s Payouts API lets you send money to many recipients in a single batch (it’s the successor to the older PayPal Mass Pay product), so it’s a solid option if your affiliates have PayPal. Wise and manual bank transfers work too, especially for international affiliates where PayPal fees or availability are a problem. For only a handful of affiliates, paying each one manually through PayPal or Wise’s normal send-money flow is fine; you don’t need the batch API until you have real volume.
Finally, write a one-page terms doc: commission rate and duration, cookie/attribution window if you’re using links, payout schedule and minimum payout threshold, and what counts as a valid sale (e.g., excluding refunds and self-referrals). Send it to affiliates when they join so there’s no ambiguity later.
Choosing a Commission Structure That Doesn’t Break Your Margins
For subscription SaaS, the two common models are a one-time bounty (a flat dollar amount or percentage of the first payment) or recurring revenue share (a percentage of the customer’s payment for a limited window, like the first several months, or for as long as they stay subscribed). Recurring commissions are more attractive to affiliates and tend to produce more promotion effort, but they’re easier to sustain if you cap the duration rather than paying forever.
Whatever rate you pick, sanity-check it against your gross margin and typical customer lifetime, not just against what competitors advertise. A rate that looks generous but ignores churn and support costs can quietly turn your best-performing affiliates into your least profitable customers.
Keep the number of active codes small at first. A handful of engaged partners who actually promote you is worth far more than fifty people who signed up and never mentioned your product again, and it’s much easier to reconcile ten rows in a spreadsheet than five hundred.

Tips and Common Mistakes
Don’t reuse one generic discount code across all affiliates. You’ll have no way to tell whose referral drove which sale. Every affiliate needs their own unique code or link.
Remember that Stripe coupons can’t have a zero-value discount. If you want pure tracking with no discount, use the client_reference_id or metadata method instead of trying to force a $0 coupon.
Watch for self-referrals (an affiliate using their own code to get a discount) and decide upfront whether that’s allowed; exclude it explicitly in your terms if not.
Reconcile refunds and cancellations before paying out. If you pay a commission and the customer refunds within your window, deduct it from the next payout rather than trying to claw it back separately.
Set a minimum payout threshold so you’re not sending a tiny international transfer that costs more in fees than the commission itself.
As soon as manual tracking starts eating more than an hour or two a month, or you’re managing a growing roster of active affiliates, that’s the signal to move to a dedicated affiliate platform. The manual approach is meant to validate the channel cheaply, not to scale indefinitely.
Explore more: more growth strategies for SaaS.
DIY SaaS affiliate program FAQs
Do I need special software to run an affiliate program?
No. For a small program, Stripe promotion codes (or tracked links with client_reference_id), a shared spreadsheet, and PayPal or Wise for payouts are enough to track referrals and pay commissions accurately.
How do I track affiliate sales without a dedicated platform?
Give each affiliate a unique Stripe promotion code or a unique tracked link. When a customer uses that code, or you pass their ref value into client_reference_id or metadata at checkout, you can filter your Stripe dashboard (or query the API) to see exactly which sales came from which affiliate.
Can I create a Stripe coupon that tracks referrals without giving a discount?
No. Stripe requires every coupon to have either a percent_off greater than 0 or a positive amount_off, so a $0 coupon isn’t possible. If you want attribution without offering a discount, use a tracked ref link and pass it into client_reference_id or Checkout Session metadata instead.
How should I pay affiliate commissions?
For a small number of affiliates, pay manually through PayPal or Wise. Once you have more affiliates, PayPal’s Payouts API lets you send commissions to many recipients in a single batch, which saves time over paying each one individually.
When should I switch to a real affiliate platform like Rewardful or FirstPromoter?
Once manual reconciliation is taking more than an hour or two a month, or your roster of active affiliates has outgrown a simple spreadsheet, a dedicated platform usually pays for itself in time saved and more reliable tracking.
Turn Customers Into Your Growth Engine
Launch a referral program that turns happy customers into your best growth channel — with ReferralEarl. Try ReferralEarl.
Want this in your inbox? Subscribe to the free newsletter.
Photo by Radission US on Unsplash.