B2B SaaS affiliate programs for long sales cycles
How to run a B2B SaaS affiliate program when deals take months and close through sales: windows, lead vs revenue commission, annual invoices and holds.
A B2B SaaS affiliate program has to survive two things a self-serve program never sees: deals that take longer than the referral cookie lasts, and deals that close through a salesperson and an invoice rather than a checkout page. If a partner introduces a buyer on day 0 and the contract is signed on day 90, a 60-day cookie has already expired, and the person who pays is often not the person who clicked. The fix is to attach the partner to the lead or account at first contact, pay on paid invoices rather than signatures, and set the hold period to match your refund terms. On an illustrative $12,000 annual deal, 15% of first-year revenue pays the partner $1,800, once, after the annual invoice is paid and the hold has passed.
Why standard affiliate terms break in B2B SaaS
Most affiliate defaults were designed for a buyer who reads a review, clicks, starts a trial and pays with a card within a few weeks. A sales-assisted B2B deal breaks almost every assumption in that sentence.
- The cycle is longer than the window. A demo, a security review, procurement and legal can take a quarter. A 30 or 60 day cookie cannot cover it.
- The clicker is not the payer. A team lead reads the partner's post and books a demo. Finance pays the invoice from a different laptop months later. Browser-based tracking sees two unrelated people.
- There is no checkout. Sales sends a quote, the buyer accepts it, and an invoice goes out with payment terms. The referral id that a checkout page would carry never gets passed.
- Payment is late and lumpy. An annual prepaid invoice on net 30 terms means the first money arrives a month after signature, and all of year one arrives at once.
- Sales has its own compensation. A rep who closes a partner-sourced deal expects quota credit. If the partner program and the sales plan disagree about who sourced the deal, one of them will lose trust.
None of this means affiliates do not work for B2B. Consultants, agencies, newsletter writers and practitioners with a following often send the best-fit leads a B2B company gets. It means the program has to be built around the lead and the invoice, not the cookie.
How long should the referral window be for a long sales cycle?
Start from your own data rather than a convention. Pull closed-won deals from the last year and measure the days from first meaningful contact (demo request, trial start, first reply) to signature. Set the window at or above the 75th percentile, so three in four deals close inside it. If your median deal takes 70 days and the 75th percentile is 110, a 120-day window is defensible; 60 days is not.
A longer window alone does not solve the clicker-versus-payer problem, though. The more robust approach is to convert the cookie into a record at the first form the buyer fills in. When a buyer books a demo or starts a trial while a referral cookie is present, store the partner on that lead or account. From then on, attribution follows the account, not the browser.
| Approach | What carries attribution | Works when | Fails when |
|---|---|---|---|
| Cookie only, 60 days | The referral cookie in the browser that clicked | Self-serve trial converts within 60 days on the same browser | Deal takes 90 days, or finance pays from another device |
| Cookie only, 120 to 180 days | Same cookie, longer life | Same person and browser, slower decision | The payer is a different person; cookies cleared |
| Cookie converted to a lead record | Partner stored on the lead or account at the demo or trial form | Sales-assisted deals of any length | The buyer never touches a tracked form |
| Partner deal registration | Partner submits the account name, brand accepts it | Agency and consultant partners who introduce by email | Registration is not checked against open pipeline |
Then carry that record into billing. If the subscription is created by a Stripe Checkout Session, pass the referral id as client_reference_id, which Stripe describes as a string to reconcile the session with your internal systems [3]. If sales creates the subscription from an accepted quote, the referral has to be attached to the Stripe customer by a person or by your CRM sync, because there is no checkout to carry it. Write down who does that step, and check it in the deal desk review before the first invoice goes out.
Lead-based vs revenue-based commission
B2B programs choose between paying for leads, paying for revenue, or a mix. The choice is about who carries the risk of a long cycle and a low close rate.
- Revenue-based: a percentage of paid invoices, for the first year or for a set number of months. The partner carries the risk that the deal stalls; you pay only for money received. This is the cleanest model and the one partners can verify from invoice rows.
- Lead-based: a fixed fee per qualified lead or per held meeting. The partner is paid in weeks, not months, which matters to a consultant who will not wait a quarter. You carry the risk that leads do not close, and you need a written definition of "qualified" that the partner can check.
- Hybrid: a small fee per qualified meeting plus a lower revenue share on close. It rewards the introduction quickly and the outcome properly.
A lead fee only works with a tight definition. "Sales-qualified" should mean specific things a partner can see: company size within your range, a buyer with budget authority on the call, the meeting actually held, and the account not already in your pipeline. Pay after the meeting is held, cap the number of paid leads per partner per month, and say so on the program page.
Worked example: commission on a $12,000 annual deal
Take an illustrative deal: $12,000 a year, signed on an annual contract, invoiced up front. Assume an illustrative 20% of sales-qualified leads from partners close. Here is what four common structures cost per closed deal and when the partner sees the money.
| Structure | Arithmetic | Partner earns per closed deal | When the partner is paid |
|---|---|---|---|
| 20% of first-year revenue | $12,000 × 20% | $2,400 | After the annual invoice is paid and the hold passes |
| 15% of first-year revenue | $12,000 × 15% | $1,800 | Same |
| 15% year one, 10% renewal year | $1,800 + ($12,000 × 10%) | $3,000 over two years, if it renews | $1,800 in year one, $1,200 after the renewal invoice |
| $250 per qualified lead + 10% on close | ($250 ÷ 0.20) + ($12,000 × 10%) | $2,450 in total cost per closed deal ($1,250 of it in lead fees spread over five leads) | Lead fees within weeks; $1,200 after the invoice |
The hybrid row is the one to study. A partner who sends five qualified leads earns $1,250 within weeks even if only one closes, then another $1,200 when it does. You pay $2,450 per closed deal, which is close to the 20% revenue share, but the partner sees cash early and the risk is shared. If your close rate is lower than 20%, the lead fee becomes expensive quickly: at 10%, the same $250 fee costs $2,500 per closed deal before the revenue share.
Compare every option with what a closed deal costs you through other channels. If an outbound sales development rep costs you more than $2,450 in salary and tools per closed $12,000 deal, any of these structures is cheap. If it costs less, choose the revenue-only options.
Annual contracts, prepaid invoices and net terms
B2B deals are usually invoiced rather than charged to a card. In Stripe, an invoice can be sent with collection_method set to send_invoice, which emails the customer so they can pay, and then requires days_until_due or a due date [1]. Stripe Quotes, once accepted, generate a subscription, a subscription schedule or an invoice [2]. Either way, the event that matters for commission is the invoice being paid, not the quote being accepted and not the contract being signed.
How you bill the same $12,000 changes the commission schedule but not the year-one total, as long as the customer stays.
| Billing schedule | Invoices in year one | Commission per invoice at 15% | Year-one commission | Risk to you |
|---|---|---|---|---|
| Annual prepaid | 1 × $12,000 | $1,800 | $1,800 | A large single payout; a refund after payout leaves a large negative balance |
| Quarterly | 4 × $3,000 | $450 | $1,800 | Moderate; each quarter is paid only if the customer pays |
| Monthly | 12 × $1,000 | $150 | $1,800 | Lowest; commission tracks cash closely |
Write the duration in invoices or months from the first paid invoice, and say how multi-year prepayment is treated. A buyer who prepays three years, $36,000, should not usually earn the partner 15% of $36,000 on day one. A clear rule is "commission on the first 12 months of contract value, then on renewal invoices for N months if your terms include renewals". Seat expansions billed as additional invoices inside the commission period earn commission like any other invoice.
How long should the commission hold period be?
The hold is the time between an invoice being paid and the commission becoming payable. Its job is to absorb refunds and cancellations before money goes to the partner. Match it to your contract terms, not to a default.
| Contract terms | Suggested hold | Why |
|---|---|---|
| Annual commitment, no refunds | 30 days | Covers payment failures and early disputes; later disputes become negative rows |
| 30-day money-back guarantee | 30 days from payment (60 if refunds take long to process) | The refund window plus time for the refund to be processed |
| Cancel for convenience in the first 60 days | 60 days | The cancellation right is the real refund window |
| Paid pilot that converts to annual | Pay on the annual invoice, not the pilot | The pilot is not the deal; the annual invoice is |
| Net 30 invoice by bank transfer | Hold starts when the invoice is paid, not when it is sent | Unpaid invoices never create payable commission |
No hold removes all risk. Stripe notes that card networks typically allow cardholders to dispute within 120 days of the original payment, sometimes longer [4], and refunds can be full or partial [5]. A hold of 120 days would make partners wait four months for every payment, which is worse for the program than the risk it removes. Instead, keep the hold matched to your refund terms and treat later refunds and disputes as negative rows that offset the partner's future earnings.
How to attribute deals closed by your sales team
Partner programs in sales-led companies fail most often on one question: did the partner source this deal, or was it already ours? Decide the rules before the first dispute.
- Define sourced. A deal is partner-sourced if the partner's introduction, tracked form or accepted registration came before any open opportunity for that account in your CRM.
- Check registrations against the pipeline within two business days. If the account is already in an active opportunity, decline the registration and say why.
- Give registrations a life. A registration is valid for, say, 120 days and extends automatically while an opportunity is open.
- Do not make sales and partners compete. The rep gets normal quota credit on a partner-sourced deal; the partner commission comes from the partner budget. Reps who lose credit to partners stop accepting partner leads.
- Decide whether to pay for influence. Some programs pay a smaller, fixed amount when a partner helped an existing opportunity close, for example by joining a call. If you do, define it as narrowly as sourced.
Put the outcome of each decision on the partner's record: registered, accepted, opportunity open, closed-won, invoice paid, commission held, commission payable. A partner who can see the status of their introduction will wait patiently for 120 days. A partner who hears nothing for 120 days will assume the worst.
What to put on a B2B partner program page
- Commission: 15% of paid invoices for the first 12 months of the contract.
- Lead fee, if any: $250 per qualified meeting held, with the definition of qualified and the monthly cap.
- Referral window: 120 days from first click, and permanent once the lead is registered or recorded on a form.
- Registration: how to register an account, how fast you respond, how long a registration lasts.
- Hold: 30 days after the invoice is paid (or your matched period).
- Multi-year prepayment: commission on the first 12 months of contract value.
- Refunds and disputes: deducted from future earnings.
How RelayWonder fits a sales-assisted program
RelayWonder calculates commission per paid Stripe invoice, first payment and renewals, with refunds and disputes recorded as negative rows in an append-only ledger. Program defaults are a 60-day referral window and a 30-day hold, which you would lengthen to match a longer cycle and your refund terms. Checkout passes the referral id to Stripe as client_reference_id; for deals created by sales from a quote, you still need to make sure the referred customer is linked to the partner before the first invoice. Commission rules are tied to paid invoices (a first-payment bounty or percentage plus recurring commission), so a per-meeting lead fee would be handled outside those rules.
What to do this week
- Export last year's closed-won deals and compute the 75th percentile of days from first contact to signature.
- Set your referral window at or above that number.
- Find the first form a referred buyer fills in and make sure the partner is stored on the lead or account at that moment.
- Write down who links the partner to the Stripe customer when sales creates a subscription from a quote.
- Match your hold period to your actual refund and cancellation terms.
- Write the sourced definition and registration rules, and agree them with your head of sales before you publish.
FAQ
How long should a B2B SaaS affiliate referral window be?
Measure the days from first contact to signature on last year's closed-won deals and set the window at or above the 75th percentile. If that number is 110 days, a 120-day window is reasonable and a 60-day window will miss many deals. Store the partner on the lead record at the first form so attribution no longer depends on the cookie.
Should a B2B affiliate program pay per lead or per sale?
Revenue-based commission is cleanest because you only pay on paid invoices. A per-lead fee pays partners sooner but only works with a strict written definition of qualified and a monthly cap. A hybrid, such as $250 per qualified meeting plus 10% on close, costs about $2,450 per closed $12,000 deal at a 20% close rate.
How much commission does a partner earn on a $12,000 annual deal?
At 15% of first-year revenue the partner earns $1,800, paid once after the annual invoice is paid and the hold passes. At 20% it is $2,400. Billing quarterly or monthly changes the timing to $450 or $150 per invoice but not the year-one total if the customer stays.
When should commission be paid on an invoiced B2B deal?
When the invoice is paid, not when the contract is signed or the quote accepted. Stripe invoices sent with send_invoice have payment terms set by days_until_due or a due date, so cash can arrive 30 days or more after signature. The hold period should start from payment.
How long should the commission hold be for annual contracts?
Match it to your refund terms: about 30 days for no-refund annual contracts, 30 days for a 30-day guarantee, and 60 days if customers can cancel in the first 60 days (RelayWonder offers 14, 30 or 60 days per program). Card disputes can arrive up to about 120 days after payment, so handle late ones as negative rows rather than holding every payout for four months.
How do you stop partner and sales team conflicts over who sourced a deal?
Define sourced as a partner introduction or accepted registration that came before any open opportunity for that account. Check registrations against the pipeline within two business days. Give the rep normal quota credit on partner-sourced deals so sales has no reason to resist partner leads.
Sources
- Stripe documentation: Send customer emails (invoicing) · collection_method send_invoice and the requirement to set days_until_due or due_date. Checked October 2026.
- Stripe documentation: How quotes work · Accepted quotes generate an invoice, subscription or subscription schedule. Checked October 2026.
- Stripe API reference: Create a Checkout Session · client_reference_id used to reconcile a session with internal systems. Checked October 2026.
- Stripe documentation: How disputes work · Card networks typically allow disputes within 120 days of the original payment. Checked October 2026.
- Stripe documentation: Refund and cancel payments · Full and partial refunds of a payment. Checked October 2026.