SaaS Affiliate Commission Approval Workflow: Pending to Paid

Create a reviewable commission ledger from qualifying billing events through approval, payout and any later reversal.

Official sources checked 31 October 2026 ยท Documentation-based guide

What is a safe SaaS affiliate commission approval workflow?

Short answer: Create a pending commission only after a qualifying event, hold it through your published review period, check fraud and refund eligibility, approve it with an audit trail, and release it through a reconciled payout process. A commission that has been calculated is not necessarily approved, due or paid. Treat these as separate states rather than one editable amount.

Subscription businesses need this separation because trial conversions, recurring invoices, chargebacks, customer refunds and payout schedules do not happen at the same time. A customer may pay today and receive a partial refund next week. An affiliate may have reached the minimum payout threshold but still have a disputed referral. For selecting software that supports these controls, see our automated affiliate payouts comparison.

Define commission states and valid transitions

StateMeaningNext permitted action
CandidateA tracked conversion is being evaluatedValidate eligibility and create pending entry or reject
PendingQualifying amount recorded, but review period not completeApprove, reject or hold for investigation
ApprovedChecks passed and payable amount establishedMove to payable batch when threshold and date qualify
PayableApproved amount scheduled for settlementExecute payout or return to review if a hold is justified
PaidPayment provider confirms settlementRecord payment reference; later corrections use new entries
Reversed or adjustedEligibility or amount changed under policyRecord linked correction and future offset if necessary

These names are a recommended internal state machine, not a claim that every affiliate platform exposes identical statuses. Keep a separate reason code for rejection, duplicate conversion, self-referral, invalid payment, refunded purchase and manual compliance hold. The distinction makes support and finance reconciliation easier.

Create a commission from a qualifying business event

Define the trigger in the affiliate agreement. For a first-purchase program, it may be the first eligible paid invoice; for recurring commissions, it may be each eligible renewal; for a B2B referral program, it may be a manually approved closed-won deal. Do not confuse a click, signup, trial start, subscription activation and collected revenue.

Store the merchant/program ID, affiliate ID, internal customer ID, invoice or deal ID, currency, commissionable amount, rule version and source event ID. Use an idempotency key such as (program_id, source_transaction_id, commission_rule_id) so repeated webhook deliveries do not create extra commissions. Record the billing event timestamp separately from the commission approval timestamp.

Apply automated and manual checks before approval

Automated checks

  • Confirm that the underlying payment or deal qualifies and is not a test transaction.
  • Check affiliate status, program membership, attribution window and any self-referral restrictions.
  • Detect duplicate invoice IDs, suspicious repeated signups and previously reversed transactions.
  • Apply exclusions for tax, discounts, refunds or ineligible products as stated in the agreement.
  • Check whether the review window has elapsed and whether an open dispute requires a hold.

Manual checks

Review high-value commissions, unusual conversion spikes, disputed source ownership and compliance flags. The reviewer should see the evidence, rule version and calculation before approving. For stronger internal control, a person who edits commission rules should not be the only person approving unusually large payouts. That separation is a recommended governance practice, not a universal legal requirement.

PartnerStack's commission platform description discusses reviewing commissions before payout and consolidated partner payments. Platform features do not eliminate the need for a documented merchant policy or financial reconciliation.

Example: approval and partial refund

Suppose a partner refers a customer who pays $200 in eligible subscription revenue. The agreed commission is 20%, or $40. On payment confirmation, the system creates a $40 pending entry. After a 30-day review window with no issues, an authorized reviewer approves it. If the payout threshold is $50, the $40 remains approved but unpaid until the partner accumulates enough eligible balance.

Now suppose the customer receives a $50 approved partial refund before payout. Under a proportional reversal rule, the system records a negative $10 adjustment, leaving $30 net payable. It must not simply overwrite the original $40 entry, because finance needs to see why the balance changed. If the $40 was already paid, the same $10 adjustment becomes a recoverable offset under the agreement. Our commission clawbacks guide

Build a payout batch with reconciliation controls

  1. Freeze the approved commission snapshot at the batch cutoff date.
  2. Apply minimum thresholds, currency rules and any approved holds.
  3. Calculate the partner's net payable balance, including linked adjustments.
  4. Generate a batch ID, itemized remittance record and payment instruction.
  5. Require a second approval where the organization's risk policy calls for it.
  6. Submit the payment and record the provider's payout reference.
  7. Mark the entry paid only after the provider confirms the appropriate settlement state.
  8. Reconcile bank or provider reports to the batch total and investigate unmatched items.

Never mark a payout successful just because an API request was accepted. An accepted request can later fail. Store failure reason, retry count and idempotency key. Avoid resubmitting an uncertain payout without first checking provider status, or you could pay twice.

Keep an immutable audit trail

Record who changed a commission status, when it changed, what evidence was reviewed and which rule version applied. Corrections should append signed adjustments that reference the original commission. Retain payment confirmation IDs, exchange rates if applicable, and the finance period. Limit access to personal and banking information to authorized staff.

A useful monthly reconciliation compares eligible billed revenue, gross calculated commission, rejected commission, approved commission, outstanding payable balance, actual settled payouts and reversals. Differences should be explainable by timing, eligibility, FX or documented adjustments rather than silently written off.

Acceptance tests before enabling automatic payouts

  1. Replay the same conversion event and verify a single pending commission.
  2. Trigger a refund during review and confirm a hold or adjustment under policy.
  3. Test a self-referral, inactive affiliate and duplicate account.
  4. Attempt to approve a commission with missing billing evidence.
  5. Simulate a payout provider failure and safe retry without double payment.
  6. Test thresholds across two payout cycles.
  7. Check a currency conversion and rounding to the smallest supported unit.
  8. Export a batch and reconcile it to the underlying invoice and payment references.

Frequently asked questions

Is a pending commission guaranteed to be paid?

No. It may fail eligibility review, be reversed under the contract or remain below a payout threshold.

Should the payout run automatically as soon as a customer pays?

Only if the program deliberately accepts the refund and fraud risk. A defined review period and reconciliation are usually safer for subscription revenue.

Can a paid commission be edited?

Preserve the original paid record and create a linked correction or offset. This supports auditability and dispute resolution.

Sources and editorial disclosure

Sources reviewed 31 October 2026. State names, thresholds and numerical calculations are illustrative operating recommendations, not vendor defaults or legal/accounting advice. No hands-on platform testing is claimed.