How to start an affiliate program for your SaaS
A practical step-by-step guide to launching an affiliate program for a SaaS — picking commission shape, tracking the right thing, setting payout terms partners actually trust, and getting the first ten partners live without burning a quarter on it.
There are two ways a SaaS starts an affiliate program. The slow way: someone proposes “we should have one,” a quarter goes by, a tool gets evaluated, a contract gets signed, six weeks of implementation happens, and the program is “launching soon” for another two months. The fast way: it’s live next week and the first commission is paid the week after.
This is a guide to the fast way. The order matters; do these steps in a different order and you’ll spend a quarter you didn’t need to.
We’ll use OpenPartner as the example tool because we built it and we know it cold. The steps generalize.
Step 1 — Decide the commission shape before you pick a tool
The single most important decision happens before you’ve logged into any platform. You need to know three things:
- Recurring or one-time. Most SaaS programs are recurring revenue share. One-time CPA bounties are simpler, but they’re worse at retaining partners after the initial push because there’s no tail.
- Percentage or flat amount. Percentage scales with plan size, which partners like for selling up-market. Flat is easier to understand and easier to budget.
- How long the recurring lasts. 12 months is the SaaS default. Lifetime is the retention magnet. First month is the cheap option that partners notice.
The honest shape for most SaaS doing $10K–$200K MRR: 20%–30% recurring for 12 months, or 50% for the first 3 months and 20% thereafter. That gives partners real money on month one and a meaningful tail. Less than 15% recurring is below the threshold serious creators bother with.
If you want to do more than one shape — e.g., a first-sale bonus plus a recurring percentage — make sure your platform supports compound rules. (OpenPartner does; many don’t.)
Step 2 — Decide what you actually pay on
The second most common mistake: paying on metrics you can’t trust. Pick one of these:
- Pay on conversion (signup, trial start). Cheapest, fastest, easiest to game.
- Pay on first paid invoice. The sweet spot for most SaaS. Aligns partner incentive with real revenue.
- Pay on recurring invoice. Highest fidelity. Requires Stripe-grade billing integration; pays the partner every month the customer pays you.
We recommend starting on first paid invoice with recurring rev share — i.e., the partner gets paid when the customer first pays you, and again every month the customer renews, for as long as your commission term lasts. That’s the model the SDK and Stripe webhook wiring in OpenPartner is built around.
Step 3 — Decide the cookie window and attribution model
Set these on purpose, not by accepting the platform default. The defaults across the industry are bad for partners and you’ll attract less of them with bad defaults.
- Cookie window: 60 days is below average. 90 days is competitive. 120 days is a reason to pick your program. Less than 30 days is hostile.
- Attribution model: Last-click is the default everywhere. First-click rewards top of funnel and discourages partners from competing with your brand search. Linear and position-based split credit across multiple touches. Pick last-click 60-90 days unless you have a specific reason to do otherwise.
OpenPartner stores the raw click and event stream and re-derives attribution — so you can change your mind later and re-run history. Many platforms don’t, which means once you pick, you’re stuck.
Step 4 — Stand up the platform
This is the part that’s supposed to be the whole project but actually takes the least time if the previous three decisions are made.
With OpenPartner, three integration paths:
- Server SDK. You install
@openpartner/sdk, callop.identify()when a user signs up, andop.track()on conversion events. The SDK handles the cookie, the click stitch, and the event POST. ~30 minutes. - Outbound webhooks. You point Stripe (or your billing system) webhooks at the OpenPartner ingest endpoint. No code in your app at all. ~15 minutes.
- Partner postbacks. For affiliate networks that send S2S postbacks to you, point them at OpenPartner. Useful if you’re consolidating an existing program.
For brand-new programs, the SDK path is the cleanest. For SaaS that already runs Stripe Checkout end-to-end, the webhook path is faster.
After install: log in, create your first campaign (the commission shape from Step 1), set the cookie window, and you have a tracking link.
Step 5 — Configure payouts before you have anyone to pay
This is the step that almost everyone skips and pays for later. You need:
- A payout rail. Stripe Connect Standard accounts is what we recommend; partners own their own Stripe account, you facilitate transfers, you stay out of money-transmission licensing.
- A payout threshold. $25–$50 is friendly. $100+ feels like the platform is holding partner money. $250+ is hostile.
- A payout cadence. Monthly is standard. Net-15 (paid within 15 days of period close) is what serious creators look for.
- A holdback period. Most programs hold commissions for 30–60 days to cover refunds. Be explicit about this in your program terms.
If your partners can’t see, in their dashboard, exactly when they’ll be paid and how much, they will not trust you. Treat the payout transparency surface as part of the product, not a back-office concern.
Step 6 — Write the program page
A program page is the landing page where prospective partners apply or sign up. It should answer four questions in plain language:
- What is the commission? (“30% recurring for 12 months on every paid plan.”)
- What’s the cookie window? (“90 days.”)
- What are the payout terms? (“Monthly via Stripe Connect. $50 threshold. 30-day refund holdback.”)
- Who’s a fit? (“SaaS founders, ops content creators, sales-leaders’ newsletters.”)
If you can’t answer those four in two paragraphs, your program isn’t ready. If you can, ship the page and move on.
Step 7 — Get the first ten partners
The most common reason new programs fail is not the program itself — it’s that the brand launches the program, posts about it once on social, and waits. Here’s what actually works:
- Existing customers first. Email your top 50 customers and ask if they’d be open to a partner relationship. Conversion rate on this is unreasonably high; they already like the product.
- Existing inbound recommenders. Search your inbox and your support tickets for people who’ve said “I’d recommend you to…” or “I’m telling everyone about…” Send them an invite.
- Three to five creators in your category whose audience you respect. Cold-pitch with a personalized note and a partner link pre-generated. Specific is better than blast.
- Marketplace listing. If your platform has one — OpenPartner has the Network — list your program. The traffic is creators actively looking for programs in your category.
The longer-form version of this is in How to recruit affiliates for your SaaS.
Step 8 — Watch the first month, then leave it alone
In month one you’re watching for two things:
- Are clicks turning into signups? If not, the partners you recruited have the wrong audience or the program page isn’t converting. Fix the program page first; it’s cheaper.
- Are signups turning into paying customers? If yes — pay the commissions and write the partners a thank-you note. If no — you may have an attribution problem (a cross-device gap, a Safari ITP issue, or wires crossed in the SDK install). Check the click → identity → event chain in the OpenPartner admin.
After month one, you’ll want to be running this program with as little ongoing operational load as possible. The right shape is: program runs itself, you ship a monthly partner newsletter, you respond to partner support, you review fraud queue weekly. Total time: 1–2 hours a week.
What to skip in v1
Resist the urge to ship any of these on day one. They’re nice; they’re not the difference between a program that works and one that doesn’t.
- Tiered commission ladders (“more sales = higher rate”)
- Custom landing pages per partner
- Branded creator portal
- Multi-currency payouts
- Manual creative-asset approvals
Add them when partners ask for them. Day one is the commission, the link, the conversion event, and the payout. That’s it.
A timeline that actually fits a quarter
Done seriously, this is a two-week project, not a quarter:
- Week 1, Monday–Wednesday: Decisions 1–3 (commission shape, what you pay on, attribution).
- Week 1, Thursday–Friday: Install the platform, set up the first campaign, test the tracking end-to-end with a colleague.
- Week 2, Monday–Tuesday: Stand up payouts. Write the program page. Draft the partner application.
- Week 2, Wednesday–Friday: Reach out to the first 10–20 prospective partners. Onboard them.
By the end of week three you have a program with real partners running real campaigns.
If you’re using OpenPartner
The fastest path is:
- Sign up on Revshare — no monthly fee, 3% platform cut on commissions paid
- Install the server SDK or point Stripe webhooks at the ingest endpoint
- Configure your first campaign in the admin
- List on the OpenPartner Network to surface to creators looking for programs
If you’d rather self-host, the Docker Compose template runs the whole stack on a single box.