SaaS Referral Programs: How They Work and What Real Ones Pay
How a SaaS referral program works: credit or cash, two-sided rewards, where the invite lives, 7 real programs checked in 2026, and tracking to paid.
Muzahid Maruf, Founder
On this page
- 01What each SaaS referral program pays, and when
- 02Credit, cash or a gift card
- 03One-sided or two-sided rewards
- 04Where the invite lives in the product
- 05How a SaaS referral program differs from an affiliate program
- 06Tracking a referral from signup to paid subscription
- 07Abuse, tax and disclosure
- 08Referral software or your own build
- 09Running a SaaS referral program in TrackRev
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
A SaaS referral program pays an existing customer when someone they send becomes a paying subscriber. The reward is usually account credit, sometimes a gift card or cash, and the friend often gets a discount or a longer trial.
The trigger sets the cost: Airtable pays $10 when an invited person signs up and verifies an email, while DigitalOcean pays $25 only after the friend has spent $25.
6 of the 7 programs checked for this guide wait until money moves, so the product has to know which signup became which subscription.
The referrer's identity must survive 4 hand-offs: the click, the signup, the checkout and the first paid invoice.
Key takeaways
- 6 of the 7 SaaS referral programs checked in October 2026 pay only after the friend's money moves. Airtable pays $10 at a verified signup and lets credit lapse after 90 days on the Free plan.
- On a $59 plan at an 80% gross margin, a $25 credit is earned back in 0.5 months of gross profit and a 25% share for 12 months in 3.75 months.
- A Stripe subscription with a trial creates an immediate invoice for an amount of 0. Reward the first invoice with an amount paid above 0, then hold the reward for your refund window, such as FreshBooks' 60 days or Fathom's 30.
- Referral credit in Stripe is a negative customer balance transaction, -2500 for $25.00. It reduces only the next invoice, and posting an opposite transaction is the only way to undo it.
- The 5 flat-reward programs checked pay $10 to $1,000 once. Affiliate programs pay recurring cash, 20% for 12 months at the B2B SaaS median across 564 programs. FreshBooks and Pipedrive run both.
- TrackRev runs credit and cash referral programs from Starter at $39 a month, with the commission hold set per program from 0 to 180 days and defaulting to 0.
What each SaaS referral program pays, and when
| Company | Referrer earns | Friend gets | Reward fires when |
|---|---|---|---|
| Airtable | $10 in credit per accepted invite | Nothing on the credits page | Invitee signs up, or accepts a collaborator invite, and verifies an email |
| DigitalOcean | $25 in credits | Access to the products; no credit listed | Friend reaches $25 in billings |
| FreshBooks | $100 account credit (limited-time offer) | 90% off the first 90 days | Friend has been a paying subscriber for 60 days |
| Pipedrive | $100 gift card, Amazon or PayPal; paying customers only | 30-day trial instead of 14 days | Friend's payments to Pipedrive pass $100 |
| Gusto | $300, $400, $500, $700 or $1,000 gift card, set by how many people you referred before | $100 | Friend signs up and pays its first payroll invoice |
| Fathom Analytics | 25% recurring commission, taken as account credit ($20 minimum) or a Wise payout ($200 minimum) | $10 off the first invoice | Each payment, after a 30-day clearing period |
| Railway | 15% of invoices for the first 12 months | $20 in Railway credits, a free month of Pro | Friend becomes a Railway customer |
Terms from each company's own referral page, help article or program terms, October 2026. Fathom and Railway call theirs partner and affiliate programs.
Airtable is the exception and has the smallest reward, $10 for a verified signup.
The rest scale the reward to how late the trigger fires: $25 at $25 of billings (DigitalOcean), $100 after 60 paid days (FreshBooks) or $100 of payments (Pipedrive), and $300 to $1,000 after the first paid payroll invoice (Gusto).
A trigger on signup costs more per customer. With 100 referred signups and 20 who pay, those 20 carry the reward paid for all 100.
| Trigger | Reward | Signups | Paying at 20% | Total reward cost | Cost per paying customer |
|---|---|---|---|---|---|
| Verified signup | $10 | 100 | 20 | $1,000 | $50 |
| First payment above $0 | $25 | 100 | 20 | $500 | $25 |
Hypothetical: 100 referred signups, 20% of whom become paying customers.
How the programs limit their exposure
| Company | Expiry or claim window | Who does not count |
|---|---|---|
| Airtable | Credit expires after 90 days on Free, 1 year on Team | Existing accounts, unverified emails and anyone who already accepted another invitation for credit; Business and Enterprise accounts cannot earn |
| FreshBooks | Credit issues 60 days after the upgrade, never expires, and cannot be refunded or transferred | Referrals sharing a cookie, IP address, email address or customer ID with the referrer |
| Pipedrive | 12 months to claim after manual approval | A 2nd account at the same company, or accounts made to claim the reward |
| Gusto | Gift card expires after 6 months; sent up to 30 days after the invoice is paid | Accounts closed before the bonus is issued |
| Fathom Analytics | 30-day attribution cookie; commissions clear after 30 days | Partners without an active subscription |
Same sources, October 2026, plus FreshBooks and Pipedrive program terms. DigitalOcean lists no expiry or cap.
Credit, cash or a gift card
Credit needs no payout rails and only has value to a referrer who stays.
Product usage is the cheapest reward when you have spare capacity, and Dropbox pays in storage: 500 MB per referral on Basic up to 16 GB, 1 GB on Plus, Family and Professional up to 32 GB, plus 500 MB for the friend.
I would default to credit and offer cash only to referrers who would never use it, because cash adds admin.
Gusto's cards come through Tremendous, which asks anyone earning $600 or more in a calendar year for a W-9 for a 1099-NEC. Pipedrive validates each referral by hand.
Fathom lets a referrer pick account credit from $20 or a Wise transfer from $200.
What the reward costs on a $59 plan
Take a $59 monthly plan at an 80% gross margin, which leaves $47.20 of gross profit a month per paying customer. Each reward divided by that figure gives the months of gross profit needed to earn it back.
| Reward | Given up per referred customer | Months of gross profit to earn it back |
|---|---|---|
| $25 credit after the first paid invoice | $25.00 | 0.5 |
| $59 credit, one free month | $59.00 | 1.25 |
| $100 gift card after $100 paid | $100.00 | 2.1 |
| 25% of revenue for 12 months, $14.75 a month | $177.00 | 3.75 |
Hypothetical $59 a month plan at an 80% gross margin, for a customer who stays at least 12 months.
Credit never leaves the bank, but it is still revenue you do not collect, so count it as cost. A customer who leaves after 2 invoices costs $29.50 under the commission row.
The 25% share takes 31.25% of gross profit, because it is computed on the $59 price while gross profit is $47.20.
Granting credit in Stripe
In Stripe Billing, credit is a negative customer balance transaction, in cents.
Per the invoice balance documentation, it applies to the next invoice finalized for that customer, up to the invoice total, in a matching currency, so a $25 credit against a $59 invoice leaves $34 due.
A transaction's amount cannot be changed and the transaction cannot be deleted, so undoing 1 credit means posting an opposite one.
# Negative amounts are credits. The idempotency key stops a webhook retry paying twice.curl https://api.stripe.com/v1/customers/<<REFERRER_CUSTOMER_ID>>/balance_transactions \ -u "<<YOUR_SECRET_KEY>>:" \ -H "Idempotency-Key: referral-ref_8841" \ -d amount=-2500 \ -d currency=usd \ -d description="Referral credit for invoice in_1PxExample" \ -d "metadata[referral_id]=ref_8841"One-sided or two-sided rewards
5 of the 7 programs also reward the friend, and the offers run from free to expensive. Airtable's credits page and DigitalOcean's referral page list nothing for the friend beyond access.
| Friend reward | Seen at | Cost on a $59 monthly plan |
|---|---|---|
| 30-day trial instead of 14 | Pipedrive | $0 in cash; the first invoice arrives 16 days later |
| $10 off the first invoice | Fathom Analytics | $10.00 |
| $20 in credits | Railway | $20.00 |
| $100 reward | Gusto | $100.00 |
| 90% off the first 90 days | FreshBooks | $159.30 (3 months at $53.10 off) |
Hypothetical $59 plan billed monthly; the friend offers are as each company publishes them.
The friend's reward gives the link a reason to be used. Pipedrive pays nothing when a friend signs up directly instead of through the link, and its help page says the link cannot be applied after the account exists.
A longer trial does that job at no cash cost, so I would start there. On the referrer's side, Gusto sets the reward by past referral count: $300, $400, $500, $700 or $1,000.
Where the invite lives in the product
Pipedrive puts "Referral program" in the top-right account menu, with a link, email invites and 3 social share options. Its tab tracks 4 statuses: invites sent, invitees signed up, companies subscribed and rewards in progress.
Gusto lists Referrals in the top menu, or "Refer & earn" in the left menu, and adds a Refer option to its mobile app.
Railway puts a Refer button in the dashboard, and Airtable pays $10 for each new collaborator who accepts a share invite.
A referrer waiting 60 days on a FreshBooks credit needs the status tab more than the share button.
I would show 1 prompt, once, right after a win such as the first exported report, and leave the menu entry for everyone else. A modal at signup asks for a favor before the user has anything to recommend.
How a SaaS referral program differs from an affiliate program
FreshBooks runs both. Customers get a $100 account credit 60 days after the friend upgrades; affiliates apply through PartnerStack, are reviewed and earn up to $200 per sale, per its affiliate page.
Pipedrive draws the same line: its referral program is for paying customers, and affiliates go to a separate partner program.
| Attribute | Customer referral program | Affiliate program |
|---|---|---|
| Who promotes | Paying customers, as at Pipedrive | Creators, publishers and consultants; FreshBooks reviews each PartnerStack application |
| Typical reward | A flat $10 to $1,000 once, as in 5 of the 7 programs above | A recurring share; the B2B SaaS median is 20% for 12 months across 564 programs, and only 3% of programs pay flat dollars, $45 at the median |
| Attribution window | The link must be used at signup, as at Pipedrive | 60 days is the median, used by 41% of programs |
| Reach limit | Your customer count and whom they know | The partners you can recruit and activate |
| Common abuse | A 2nd account made to claim the reward | Coupon sites and bidding on your brand name |
Benchmark figures from TrackRev's affiliate benchmark tables, Q2 2026, compiled from public Impact, PartnerStack and Awin research.
The line blurs when a customer earns a share of every payment. Fathom pays 25% recurring to paying customers only, and Railway's affiliate program gives the friend $20 and the referrer 15% of 12 months of invoices.
Choose by who you want to reach: your customers' contacts, or readers already comparing tools. The guide to creating an affiliate program covers the second.
Capture the referrer at signup
Land the visitor on a URL such as yourapp.com/?ref=user_2093, store the value in a first-party cookie, and copy it onto the new user's row in the signup handler.
Pipedrive's help page says a link cannot be applied after the account exists, and Airtable disqualifies an invitee who already has an account.
Fathom Analytics uses a 30-day cookie, and 60 days is the most common affiliate setting, used by 41% of programs.
A "How did you hear about us?" field is the fallback: Fathom counts a signup whose answer matches a phrase a partner registered.
Carry it through checkout
Send 3 references to Stripe Checkout. The client_reference_id field, up to 200 characters, ties the Checkout Session to the friend's user id in your system. Session metadata records the referrer for that session.
The subscription_data metadata sets the referrer on the subscription, and each invoice then carries an immutable snapshot of it. Without that last field, renewal invoices carry no referrer. See Stripe metadata attribution setup.
curl https://api.stripe.com/v1/checkout/sessions \ -u "<<YOUR_SECRET_KEY>>:" \ -d mode=subscription \ -d "line_items[0][price]=<<PRICE_ID>>" \ -d "line_items[0][quantity]=1" \ -d "subscription_data[trial_period_days]=14" \ -d client_reference_id=user_4417 \ -d "metadata[referrer]=user_2093" \ -d "subscription_data[metadata][referrer]=user_2093" \ -d success_url="https://example.com/welcome"Fire the reward on a paid invoice
Stripe's free trial documentation says a subscription with a trial still creates an immediate invoice, but the amount is 0.
A 14-day trial that starts June 1 produces a 0 invoice on June 1 and the first $59 charge on June 15, so a handler that treats the first invoice as the first payment would reward the referrer 14 days early.
Check that amount_paid is above 0, record 1 reward per referred customer, and set a pay-on date after your refund window. A daily job then grants each reward on its pay-on date, after rechecking the invoice for a refund.
Stripe's subscription webhook guide describes invoice.paid as sent when an invoice is successfully paid.
export async function onInvoicePaid(invoice: Stripe.Invoice) { const referrer = invoice.parent?.subscription_details?.metadata?.referrer; if (!referrer || invoice.amount_paid === 0) return; // trial invoices are 0 const customer = invoice.customer as string; if (await db.rewards.exists({ referredCustomer: customer })) return; // one reward each await db.rewards.insert({ referrer, referredCustomer: customer, invoiceId: invoice.id, status: "pending", payOn: addDays(new Date(), 30), // your refund window });}Reverse it when the money goes back
Pipedrive pays nothing if the friend cancels or downgrades before reaching $100 in payments, so on a $59 plan a friend who stops after 1 payment ($59) earns nothing and one who stops after 2 ($118) clears the bar.
FreshBooks needs the friend to still be a paying account on day 60. Mirror that: listen for charge.refunded and charge.dispute.created, void a reward not yet granted, and post an opposite balance transaction for 1 already issued.
Refund clawbacks covers the edge cases.
Abuse, tax and disclosure
FreshBooks compares cookie, IP address, email address and customer ID, and Pipedrive allows 1 reward per company. A paid-invoice trigger plus a hold through the refund window catches most of the rest, and preventing self-referral fraud covers the signals.
Referrers who post their link publicly need a disclosure.
The Federal Trade Commission's Endorsement Guides Q&A, covering guides revised in 2023, says a connection a significant minority of consumers would not expect should be disclosed clearly and conspicuously, and its examples include commission links and discount codes.
Pipedrive's terms go further and forbid publishing referral codes where search engines can index them. FTC, GDPR and consent rules for affiliates covers the rest.
Referral software or your own build
A credit-only build on Stripe has 6 parts: a code table, the signup stamp, checkout metadata, a webhook handler, a daily pay-on job and a status page.
Tools earn their price at cash payouts, tax forms, refunds across billing systems and a second program for affiliates.
When you compare SaaS referral software, ask whether it delivers credit or only cash, and whether it holds a reward through your refund window.
Running a SaaS referral program in TrackRev
TrackRev's referral campaigns and affiliate program run as programs in 1 workspace. A non-cash program pays credit in a unit you name, such as free_days or ai_credits, with separate amounts for free and paid users.
Per the credit documentation, a connector for Supabase, Postgres, MongoDB or Airtable writes it into your database, or a signed webhook you handle yourself, so the Stripe call above could sit inside that handler.
Grants stay earned but undelivered until a connector exists, and refunds or self-referral blocks revoke them.
The dashboard embed adds a Refer & Earn page to your app from 1 script tag. It enrolls each signed-in user on first view and shows their link, clicks, signups, purchases and rewards.
With 1 setting turned on, credit earners can switch to cash commissions and keep the credit already earned.
<script async src="https://app.trackrev.io/embed.js" data-key="pk_live_xxxxxxxx" data-user-id="user_123" data-user-email="jane@acme.com" data-user-tier="paid" data-mount="#refer-earn"></script>Cash commission is tracked against paid invoices synced from Stripe, Polar, Lemon Squeezy or Paddle, and reversed on a refund or dispute.
The hold runs from 0 to 180 days per program and defaults to 0, so set it to your refund window. You pay from a PayPal or Wise CSV export and mark each payout paid.
Billing outside those 4 systems reports purchases through an API call. If all you need is a Stripe credit for a few dozen customers, the handler above does the job without another subscription.
| Plan | Price | Commission tracked a month | Workspaces |
|---|---|---|---|
| Free | $0 | Programs locked; 50 links and 1,000 tracked events | 1 |
| Starter | $39 a month | $10,000 | 1 |
| Growth | $99 a month | $100,000 | Unlimited |
| Scale | $199 a month | Unlimited | Unlimited |
From TrackRev's pricing. Annual billing pays for 9 months and gives 12.
Found this useful? Share it.
Frequently asked questions
- It is a rule set that rewards current customers when someone they introduce becomes a paying subscriber: who can refer, what each side gets, which event releases the reward and when it can be reversed. A $25 credit after the friend's first $25 of billings is a complete program.
- Hold it to the payback period you accept for paid channels. On a $29 plan at an 80% gross margin, a customer yields $23.20 of gross profit a month, so a $50 reward takes 2.2 months to earn back and a $75 reward takes 3.2.
- Credit suits customers who keep paying: a $25 credit covers 42% of a $59 invoice and needs no payout rails. Cash or gift cards suit referrers who would not use credit, at the price of tax paperwork: Gusto collects a W-9 once rewards reach $600 in a year, and thresholds change, so check the current one.
- Yes, if the reward waits for the paid upgrade. At a 5% free-to-paid rate, a $10 reward per signup costs $200 per paying customer, 8 times a $25 reward paid on the first payment. Count free signups as progress and pay on the upgrade.
- After the friend's first real payment clears and your refund window has passed. With a 14-day window, an invoice paid on June 12 becomes payable on June 26, and a refund before then cancels the reward.
- Yes. Pass the referrer in 2 metadata fields, listen for invoice.paid, and post a negative balance transaction such as -2500 for $25. You build or buy the ledger, payouts, fraud checks and a status page for referrers.
- Yes, and FreshBooks and Pipedrive each run 2 programs. Keep the terms separate so nobody collects twice on 1 signup, and give each program its own link so reports stay clean. In TrackRev both are programs in 1 workspace.
- A cookie cannot follow a person across 2 devices, so offer a code typed at signup or checkout, plus a how-did-you-hear field. Decide which one wins when a code and a link disagree, and confirm the friend is a new account.

Written by
Founder, TrackRev.io & Contant.io
Muzahid Maruf is the founder of TrackRev.io and Contant.io. He writes about marketing attribution, link tracking, and revenue analytics for SaaS teams.
Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth
Stop guessing where your revenue comes from.
Set up TrackRev in about five minutes. The free plan covers 1,000 events a month, no card needed.
Start free