Should a failed Stripe subscription payment earn affiliate commission?
Short answer: No, not when your affiliate agreement pays a share of collected subscription revenue. When Stripe reports invoice.payment_failed, put the related commission in a non-payable hold state. A retry may recover the same invoice later; only a verified eligible invoice.paid outcome should make that invoice eligible for approval. Preserve the original affiliate attribution, but never count a failed attempt as a new sale.
This is a recommended financial control, not a claim that Stripe itself manages affiliate commissions. Stripe handles billing events; your affiliate platform or internal ledger applies program rules. For the wider state machine, read our SaaS affiliate commission approval workflow.
Stripe events and the correct commission response
| Billing signal | What it means | Recommended commission response |
|---|---|---|
invoice.created | An invoice exists, but collection is not confirmed | Do not pay; create a provisional record only if needed |
invoice.payment_failed | One payment attempt failed | Hold the invoice's commission and record the attempt |
invoice.payment_action_required | Customer action may be required | Keep the commission held and notify the relevant operations team |
invoice.paid | The invoice has been paid | Reconcile the invoice and enter the documented approval period |
charge.refunded or dispute | Previously collected money may be reversed | Apply a linked adjustment or clawback under your policy |
Stripe's subscription webhook documentation distinguishes invoice payment events from subscription status changes. A subscription becoming active, past due or canceled is not by itself a substitute for an invoice-level commission calculation. Some billing integrations also handle zero-amount invoices; decide whether a zero-revenue invoice is commissionable before coding the rule.
A failed payment and a scheduled subscription cancellation are separate states. For the cancellation event sequence and recurring commission cutoff, see our Stripe subscription cancellation and affiliate commission cutoff guide.
How Smart Retries affect affiliate accounting
Stripe's revenue recovery documentation describes automatic retry scheduling. Retry timing and the eventual subscription state depend on account configuration, payment method and decline reason. A hard decline may require a new payment method before a charge can succeed. Do not hardcode a universal retry count or assume the next attempt is guaranteed.
Each retry belongs to the underlying invoice. Store its stable invoice ID, customer ID, subscription ID, currency, attempt count and most recent payment status. Do not generate one affiliate reward per retry. If an invoice.updated event arrives after invoice.paid, reconcile the latest authoritative invoice state instead of blindly overwriting the settled result with an older event.
Implement a payment-failure commission hold
- Map the referral: store the affiliate-to-customer relationship when attribution is established. Use your program's cookie, referral or contract rules rather than relying on invoice metadata alone.
- Choose the revenue trigger: define whether the commission is based on each eligible paid invoice, first paid invoice or another qualifying milestone.
- Record immutable identifiers: key the commission candidate by program, source invoice and commission rule version. Make event processing idempotent.
- Hold failures: on a failed collection, mark the invoice's candidate as held or unqualified, never paid. Keep the reason and timestamp.
- Handle recovery: on payment confirmation, fetch or reconcile the invoice's paid amount, discount and currency, then calculate one commission candidate.
- Apply review: keep the amount pending for the published refund, dispute and fraud-review period. A recovered invoice is not necessarily immediately payable.
- Reconcile reversals: record credit notes, refunds and disputes as linked adjustments. Preserve the original audit trail rather than editing historical payouts silently.
- Communicate status: show affiliates clear distinctions between tracked, held, approved and paid earnings.
For plan upgrades and invoice changes, see Stripe subscription plan change attribution. That guide focuses on changing plan values; this one focuses specifically on failed collections and recovery.
Worked example: a recovered renewal
Suppose a referred customer has a $120 monthly subscription and the affiliate earns 20% of eligible collected revenue. The renewal invoice fails on 3 November. The potential $24 reward stays held. Stripe retries on 6 November and the same $120 invoice is paid. The ledger now contains one $24 candidate, not two rewards for the two payment attempts. If your program has a 30-day review period, the candidate remains pending until the stated conditions are met.
If the customer later receives a $30 partial refund and the agreement defines commissions on net collected revenue, the revised eligible base is $90 and the final reward would be $18. That $6 difference must be recorded as an adjustment if the original $24 was already approved or paid. These figures are illustrative policy math, not Stripe pricing or a vendor default.
Engineering and finance acceptance checklist
- Replay the same failed-payment event twice and confirm only one hold record exists.
- Process payment success before an older failure event and confirm the settled state is not rolled back.
- Test hard declines, customer authentication, manual collection and an exhausted retry schedule.
- Verify invoice currency, tax exclusions, discounts and credit notes against the commission agreement.
- Test recovery after the next calendar month without attributing the renewal to a new partner.
- Confirm affiliates cannot withdraw a held amount, even if it appears in estimated earnings.
- Compare the affiliate ledger with the Stripe invoice ledger at month-end.
Frequently asked questions
Does invoice.payment_failed mean the subscription is permanently canceled?
No. Stripe may retry collection or request a new payment method. The final subscription outcome depends on the configured recovery process.
Should a successful retry reset the referral cookie?
Normally not. A recovered invoice belongs to an existing customer relationship. Follow the attribution terms established for that customer.
Can an affiliate earn commission on a failed invoice?
Only if your written program explicitly rewards something other than collected revenue, such as an approved qualified lead. Do not label that payment a share of collected subscription revenue.
Sources and editorial disclosure
Primary sources: Stripe subscription webhooks and Stripe payment retries. Documentation reviewed 1 November 2026. The commission controls, calculations and test scenarios are editorial recommendations, not claims of firsthand implementation or financial advice.