Core concepts
Commission resolution
Five places a rate can come from. The most specific match wins, and the resolved source is recorded on the conversion so a disputed commission can always be explained.
1. product + affiliate group This tier, on this product
2. product (all groups) Anyone, on this product
3. affiliate override This person, on everything
4. affiliate group This tier, on everything
5. program default Everything elsePercentage vs flat
percentage— a share oforderAmountCents, rounded to whole cents.flat— a fixed CPA bounty in dollars, converted to cents. The order value is ignored entirely.
Per-product rates
A $600 compounded protocol and a $40 supplement cannot sustain the same percentage. Set a rule against a product, optionally narrowed to one affiliate group, and it applies whenever that product is reported on a conversion.
For this to work your checkout must send externalProductId. Without it there is no product to match, and resolution falls through to the group or program rate — no error, just a rate you may not have intended.
Restricted products
A product can be limited to specific affiliate tiers — a prescription protocol only licensed practitioners may promote, say. Restricted products are hidden from other affiliates' storefronts and product pickers, and rejected server-side if an id is posted directly.
2-tier commissions
With multi-tier enabled, a sale by an affiliate who has a parent_affiliate_id creates a second conversion crediting their upline. You never report it — it is derived.
- The override is a percentage of the order value, not of the seller's commission.
- It is always
percentage, even when tier 1 is a flat bounty — paying the upline the same flat bounty as the seller would be a pricing error, not an override. - A suspended or removed upline earns nothing. The tier-1 commission is unaffected.
- Clawing back the sale reverses both rows together — the upline earned on a sale that no longer exists.
Holding periods
A new conversion is pending until its holding period elapses — cover for refunds inside the return window. It then becomes eligible for approval, and only approved conversions past their hold are picked up by a payout batch.