Define subscription affiliate credit at the payment level. State who keeps the referral, which initial and renewal payments qualify, when eligibility ends, and what refunds reverse. Keep cancellation requests separate from refunds. A subscription affiliate commission model needs an event ledger that explains each credit and adjustment, including the payments that earn nothing.
Separate referral ownership from recurring rewards
A tracking window answers whether the original referral qualifies. A recurring commission term answers how long later payments earn credit. Do not use one deadline for both without saying so.
Rewardful's campaign documentation separates referral cookies and attribution from commission settings. It supports payment-count and month-duration limits. When both apply, commissions stop when either limit is reached. Those are Rewardful mechanics, not universal affiliate rules.
Choose the reward structure before configuring tracking:
| Model | Credit rule to publish | Decision it leaves open |
|---|---|---|
| Initial payment only | Reward the first qualifying paid invoice | Does a paid trial count? |
| Recurring | Reward qualifying initial and renewal payments | Which products, changes and returning customers qualify? |
| Capped recurring | Reward payments until a count, date or money limit is reached | Does a refund restore capacity under the cap? |
A payment-count cap and a time cap behave differently. Annual prepayment is one payment unless your terms define another unit. A pause can consume a calendar-based eligibility period without producing a payment. Avoid promising "lifetime" credit unless the terms define whose lifetime, what ends it, and what happens when the program closes.
Use the attribution-window guide to decide how the first referral qualifies. Keep that decision separate from renewal eligibility.
Fill out the policy worksheet
The following is a hypothetical policy for a monthly subscription product. Its rates and limits are examples, not market benchmarks or recommended economics. Confirm that your billing and affiliate tools can represent every row before offering it.
| Decision | Hypothetical policy |
|---|---|
| Referral owner | The affiliate credited at the first qualifying purchase keeps this subscription's renewals |
| Initial reward | 20% of the first eligible paid invoice's base |
| Renewal reward | 10% of subsequent eligible paid invoice bases |
| Eligible base | Subscription product amount collected after discounts; exclude tax, delivery and unrelated items |
| Trial and failed payment | No credit for a free trial or an unsuccessful payment attempt |
| Payment cap | First 3 qualifying paid invoices, including the initial invoice |
| Time cap | Payments must succeed before the 12-month anniversary of the first qualifying payment, using UTC |
| Refunds | Recalculate the original invoice's reward on its retained eligible base; record the difference |
| Cap after refund | A refunded invoice still consumes its original payment slot |
| Cancellation | Stop future renewal credit; retain prior credit unless a separate adjustment applies |
| Reactivation | Same subscription keeps its original owner and remaining limits; a new subscription requires review and gets no automatic reset |
| Approval delay | Hold new commission for 30 days after successful payment; unresolved disputes stay on hold |
| Payout | Pay approved balances monthly under the separately published payout calendar |
Also decide how plan upgrades, prorated charges and annual prepayments use the cap. In this example, a separately paid upgrade invoice would consume a slot. If that is undesirable, define the cap by billing period instead and confirm the software can enforce it.
For an old invoice collected after cancellation, decide whether the payment remains eligible. A workable policy is to allow it only if it covers service before cancellation and still satisfies the original time and count limits. Publish that exception explicitly.
Version the policy and retain the version assigned to each referral. Rewardful says campaign edits affect existing and new referrals. Do not assume editing a dashboard preserves earlier terms. Check how to keep existing referrals on their promised rules before changing settings.
Build a ledger around billing events
Stripe's subscription webhook documentation distinguishes invoice creation, successful payment and failed payment. It also warns that an active subscription does not prove all outstanding invoices were paid. For a collected-payment policy, match credit to the qualifying payment and invoice details.
Give each ledger row these fields:
- Billing event ID, event time and received time.
- Customer reference, subscription ID, invoice ID and related refund ID.
- Affiliate ID and policy version.
- Event type, currency, eligible base, rate and commission change.
- Qualifying payment number, eligibility deadline and reason for rejection or adjustment.
- Commission status, approval date and payout reference.
Use stable internal references in the ledger. An affiliate statement can show invoice references without exposing customer contact details.
Record a failed attempt without adding a commission. If the invoice later gets paid, record one qualifying credit for that invoice. Ignore duplicate deliveries of an event. Also prevent separate notifications about the same successful payment from creating duplicate credits.
Worked subscription event ledger
All amounts below are hypothetical USD. The example assumes each invoice has one eligible subscription line, no foreign exchange, no disputed charges and no unrelated products. Eligible bases already exclude discounts, taxes and delivery.
Calculate each invoice's commission as eligible base multiplied by its applicable rate. Round each invoice result to the nearest cent, half up. For a refund, recalculate the rounded commission on the retained base and subtract the previously recorded commission. This avoids independently rounding repeated partial reversals.
| Event | Invoice | Eligible base change | Commission change | Reason |
|---|---|---|---|---|
| Feb 1: initial payment succeeds | S-01 | $80.00 | +$16.00 | Payment 1 at 20% |
| Mar 1: renewal payment fails | S-02 | $0.00 | $0.00 | Nothing collected |
| Mar 4: retry succeeds | S-02 | $100.00 | +$10.00 | Payment 2 at 10% |
| Mar 10: partial refund succeeds | S-02 | -$20.00 | -$2.00 | Retained base is $80.00; revised commission is $8.00 |
| Apr 1: renewal payment succeeds | S-03 | $120.00 | +$12.00 | Payment 3 at 10%; count cap reached |
| May 1: renewal payment succeeds | S-04 | $120.00 | $0.00 | Payment is outside the count cap |
| May 20: cancellation scheduled | None | $0.00 | $0.00 | No refund occurred |
| Jun 1: subscription ends | None | $0.00 | $0.00 | No new payment |
| Net commission recorded | All | Not a revenue total | $36.00 | $16.00 + $10.00 - $2.00 + $12.00 |
The net commission is not the amount necessarily due today. Approval delays, dispute holds and prior payouts affect the payable balance. Keep those statuses separate from the commission calculation.
Treat cancellation and refund as separate events
Stripe allows different cancellation timings and refund choices. A period-end cancellation can let already-paid service continue. Some cancellation flows also leave final invoice items to collect.
For the worksheet policy, a cancellation request alone changes no past commission. A successful partial refund changes the commission attached to that invoice. A full refund would reduce that invoice's commission to zero, without restoring its payment slot.
Append an adjustment row rather than deleting the original credit. If you already paid the affiliate, record the amount requiring resolution. Any offset against later payouts must follow the agreed terms and applicable requirements; a negative ledger entry does not establish a right to recover money. Use the returns reconciliation procedure for the review and statement workflow.
Explain the terms before the first promotion
Modash's management article recommends upfront communication and a known payout schedule. Give affiliates the reward definition, cap, refund rule and payment calendar together. Show initial and renewal credits separately on their statements.
For promotions affecting U.S. consumers, FTC staff guidance calls for clear disclosure of financial connections alongside the endorsement. Suggested plain wording for this hypothetical recurring arrangement is "I earn commissions on qualifying subscriptions and renewals through this link." Adapt placement to the format; a profile-only disclosure may be missed. This wording is an operational example, not a legal clearance.
Before launch, run the worksheet through a first payment, failed retry, partial refund, capped renewal and period-end cancellation in your actual setup. Compare every resulting ledger row with the promised policy. Resolve any mismatch before an affiliate publishes a link.



