Guide
Affiliate earnings you can actually prove.
Referral code, promotion link, QR code, audience targeting and commission ledger — how affiliates grow without guessing where earnings came from.
What an affiliate gets
After registering as AFFILIATE (physical address required), the backend returns affiliateCode, affiliatePromotionUrl, affiliateQrCodeUrl on the TrackerUser. These appear on /dashboard/affiliate and in GET /api/affiliate/referrals, /commissions, /payouts.
Promotions: quote before you send
Owners create promotions with title, message, landingUrl, channel (EMAIL|WHATSAPP|ANY), audience (ALL_SUBSCRIBERS | REGISTERED_AFFILIATES …), scheduledFor. GET /api/promotions/quote returns targetCount, bulkPrice, currency so the owner sees cost before confirming. Use POST /api/promotions to send.
Who counts as audience
ALL_SUBSCRIBERS— every subscriber contact the backend knowsREGISTERED_SUBSCRIBERS— only subscribers with accountsREGISTERED_AFFILIATES/UNREGISTERED_AFFILIATES— targeting by affiliate state
Troubleshooting
Referral not attributing
Ensure the buyer used the exact affiliateCode or affiliatePromotionUrl at registration. Codes are case-sensitive and trimmed server-side. Check the referral list in the affiliate dashboard — unlinked codes appear as unmatched contacts, not hidden fees.
Quote shows zero targetCount
Audience + channel filter matched no contacts. Try ANY channel or ALL_SUBSCRIBERS to confirm data exists before narrowing.
Related
- Worker tips & payouts — another earnings flow.
- Features map
Affiliate checklist
- • Affiliate code copied exactly (no extra spaces)
- • Promotion link tested in an incognito browser
- • QR printed clearly for in-store use
- • Commission visible before requesting payout