# Affonso — Affiliate Software to Scale Your SaaS > Launch your SaaS affiliate program in under 15 minutes. > Starting at €15/mo — no transaction fees, fraud detection, managed payouts in 190+ currencies. ## What is Affonso? Affiliate software for SaaS. All you need to launch and manage your affiliate program, with the tools that help you find affiliates who drive revenue. ## Key Features - **Fast setup** — Go live in minutes with built-in payment integrations (Stripe, Paddle, Polar, Creem, Dodo Payments) - **Flexible commissions** — Fixed, percentage, one-time, or recurring payouts with per-product and per-affiliate overrides - **Managed payouts** — We pay your affiliates worldwide via bank wire or PayPal. One invoice per month, 190+ currencies - **Fraud protection** — Block self-referrals, detect disposable emails, flag suspicious activity automatically - **White-label affiliate portal** — Branded dashboard with real-time analytics, 14 languages, embeddable in your app - **Real-time analytics** — Track every click, conversion, and revenue attribution with deep campaign insights - **GDPR-ready tracking** — Works when users decline cookies, compatible with Cookiebot, OneTrust, and any consent platform - **Affiliate discovery** — AI-powered finder and marketplace to recruit high-quality affiliates - **Automated invoicing** — Self-billing invoices, W-8/W-9 tax form collection, compliance included - **Multi-level commissions** — Pay-per-lead, multi-tier, and custom commission structures ## For AI Agents - **REST API**: https://api.affonso.io/v1 — [Documentation](https://docs.affonso.io/api/introduction) - **OpenAPI spec**: https://api.affonso.io/openapi.json - **MCP Server**: https://api.affonso.io/mcp — [Documentation](https://docs.affonso.io/mcp/introduction) - **TypeScript SDK**: [@affonso/sdk](https://www.npmjs.com/package/@affonso/sdk) - **CLI**: [@affonso/cli](https://www.npmjs.com/package/@affonso/cli) ## OAuth 2.1 Authentication - **Authorization**: https://api.affonso.io/oauth/authorize - **Token**: https://api.affonso.io/oauth/token - **Dynamic registration**: https://api.affonso.io/oauth/register - **Discovery**: https://api.affonso.io/.well-known/oauth-authorization-server --- # Help Center ## Competitor Search — The Best Way to Start Why searching for competitor websites is the fastest way to find high-quality affiliates If you're not sure where to start with the Affiliate Finder, we recommend **searching for competitor websites** first. Here's why. ## Why competitor search works so well When you search for a competitor URL, you find websites and creators that are already writing about products like yours. These people: - **Already understand your market** — They know what your target audience cares about - **Have existing content** — They've already written reviews, comparisons, or tutorials in your space - **Are easier to convert** — They're familiar with affiliate programs in your niche and know how they work - **Have the right audience** — Their readers are already looking for products like yours This makes them the lowest-hanging fruit for your affiliate program. ## How to do it 1. Go to **Discovery** and start a **New Search** 2. Enter a competitor's website URL (e.g. `competitor.com`) 3. Browse the results — you'll see websites that mention or link to that competitor 4. Add the best matches to your **Shortlist** ## What to look for Focus on creators who: - Have written detailed reviews or comparisons (not just a passing mention) - Regularly publish content in your niche - Have an engaged audience (comments, social shares) ## Next steps Once you've built a shortlist from competitor searches, you can [find their email addresses](/help/affiliate-finder/find-email-addresses) and [start your outreach](/help/affiliate-finder/shortlist-and-outreach). **Pro tip:** Don't stop at one competitor. Run searches for 3-5 competitors to build a solid list of potential affiliates. --- ## Discovery Credits Understand how discovery and email credits work in the Affiliate Finder The Affiliate Finder uses two types of credits: **discovery credits** for searching and **email credits** for looking up contact information. ## Discovery Credits Discovery credits are used when you run a search. Each search costs 1 discovery credit. | Plan | Discovery Credits / Month | |------|--------------------------| | Free | 5 | | Launch | 15 | | Growth | 35 | | Elite | 50 | ## Email Credits Email credits are used when you look up an email address for a website. Each lookup costs 1 email credit. | Plan | Email Credits / Month | |------|----------------------| | Free | — | | Launch | — | | Growth | 50 | | Elite | 250 | ## Yearly plans On a yearly plan, you receive **all 12 months of credits upfront**. For example, Elite yearly gives you 600 discovery credits and 3,000 email credits from day one — so you can run larger campaigns right away without worrying about monthly limits. ## Good to know - **Credits reset monthly** on monthly plans — your allocation refreshes at the start of each billing cycle - **Cached results are free** — If you look up the same website again within 30 days, it won't cost a credit - **Use credits wisely** — Shortlist first, then use email lookup only on your top candidates ## Checking your balance You can see your remaining credits at the top of the Discovery page in your dashboard. --- ## Finding Email Addresses How to use the email lookup to find contact information for potential affiliates Once you've found potential affiliates, you'll need their contact information to reach out. The email lookup feature helps you find email addresses for the websites in your search results or shortlist. ## How to use it Click the **Find Email** button next to any result. The system will look up contact information for that website and show you the results. ## What you get We use a waterfall enrichment process that checks multiple data sources to find the best contact email for a website. In some cases, multiple emails may be found — the most relevant one is shown first. ## Credits Each email lookup costs **1 email credit**. Your monthly allocation depends on your plan: | Plan | Email Credits / Month | |------|----------------------| | Launch | — | | Growth | 50 | | Elite | 250 | **Yearly plans** receive all 12 months of credits upfront — so on Elite yearly you'd get 3,000 email credits right away. If you look up the same website again within 30 days, it won't cost an additional credit — you'll see the cached result. For more details on credits, see [Discovery Credits](/help/affiliate-finder/discovery-credits). ## Tips - **Use email lookup selectively** — Don't burn credits on every result. First shortlist the most promising candidates, then find their emails - **Look at the website first** — Some websites have their contact info right on their page, no credit needed --- ## How to Search for Affiliates Learn how to use the search to find affiliates that match your niche The Affiliate Finder lets you search for potential partners using keywords or competitor URLs. Here's how to get started. ## Starting a new search 1. Go to **Discovery** in the sidebar 2. Click **New Search** 3. Enter your search query — this can be keywords related to your niche (e.g. "project management tools") or a competitor's website URL 4. Review the results ## Understanding the results Each result shows you: - **Website/Creator** — The name and URL of the potential affiliate - **Niche relevance** — How closely they match your search - **Traffic & reach** — An estimate of their audience size - **Email** — Contact information (if found or after using email lookup) ## Tips for better results - **Be specific** with your keywords — "best CRM for startups" works better than just "CRM" - **Try different angles** — Search for your product category, related topics, or competitor names - **Start with competitor searches** — See the [Competitor Search](/help/affiliate-finder/competitor-search) article for why this is the best starting point ## Adding to your shortlist Found someone interesting? Click the **Add to Shortlist** button to save them. You can review and manage all your saved candidates in the [Shortlist](/help/affiliate-finder/shortlist-and-outreach). --- ## Shortlist & Outreach How to manage your shortlist and reach out to potential affiliates The shortlist is where you collect all your top affiliate candidates before reaching out to them. ## Managing your shortlist Go to **Discovery > Shortlist** to see all the candidates you've saved. From here you can: - Review your saved candidates - Find email addresses for candidates you haven't looked up yet - Remove candidates that are no longer relevant ## Exporting your shortlist When you're ready to start outreach, click **Export** to download your shortlist as a CSV file. The export includes all the information you've gathered — website, name, email address, and more. ## Starting your outreach We recommend uploading your exported CSV to a dedicated outreach tool (like Instantly, Smartlead, or similar) to automate your email campaigns. This way you can: - Send personalized emails at scale - Set up automated follow-up sequences - Track open rates and replies **Tip:** A good outreach sequence typically has 3-4 emails over 2 weeks. Keep it short, personal, and focused on why your program is a great fit for their audience. ## What makes a good outreach message - **Be personal** — Reference their content or website specifically - **Lead with value** — Explain what's in it for them (commission rates, audience fit) - **Keep it short** — Nobody reads long cold emails - **Include a clear CTA** — "Want me to set you up?" works better than a wall of information --- ## What is the Affiliate Finder? Learn how the Affiliate Finder helps you discover and recruit affiliates for your program The Affiliate Finder helps you discover potential affiliates that are a great fit for your product. Instead of waiting for affiliates to find you, you can actively search for creators, bloggers, and websites in your niche and reach out to them. ## How it works 1. **Search** — Enter keywords, competitor URLs, or niche topics to find relevant websites and creators 2. **Review** — Browse through the results and see who might be a good match 3. **Shortlist** — Save the best candidates to your shortlist 4. **Find contact info** — Use email lookup to get their contact details 5. **Reach out** — Export your shortlist and start your outreach ## Where to find it Go to **Discovery** in the left sidebar of your dashboard. From there you can start a new search or view your shortlist. ## What you need The Affiliate Finder is available on all plans. Each plan comes with a set amount of discovery credits and email credits — yearly plans receive all 12 months of credits upfront. Check the [Credits](/help/affiliate-finder/discovery-credits) article for details. --- ## Understanding Conversion Rate & Initial EPC Learn how your two most important performance metrics are calculated and what they mean for your success. # Understanding Your Key Performance Metrics Your **Conversion Rate** and **Initial EPC** are the two most important numbers for measuring affiliate success. Here's exactly how they work and what they mean for you. ## Conversion Rate: "How many clicks become customers?" ### The Simple Formula **Conversion Rate = Paying Customers ÷ Total Clicks × 100** ### Real Example ``` Monday: You get 100 clicks on your affiliate link Over the next 2 weeks: → 5 people sign up AND make their first purchase → 10 people sign up but never buy anything Result: Monday shows "Conversion Rate: 5%" ``` ### Key Points - **Only counts paying customers**, not just signups - **Appears on the day you got clicks**, even if purchases happen later - **Updates over time** as more people convert (up to 60 days typically) --- ## Initial Earn Per Click: "How much revenue per click?" ### The Simple Formula **Initial EPC = First Purchase Revenue ÷ Total Clicks** ### Real Example ``` Monday: You get 100 clicks Over the next 2 weeks: → Customer A: First purchase $50 → Customer B: First purchase $100 → Customer C: First purchase $75 → Customer A buys again: $30 (ignored for EPC) Result: Monday shows "Initial EPC: $2.25" ($225 ÷ 100 clicks) ``` ### Key Points - **Only first purchases count** - shows true referral value - **Repeat purchases ignored** - they're product value, not referral value - **Includes all clicks** - even non-buyers, so don't expect huge numbers --- ## "Why do these numbers seem different from what I expected?" ### "My conversion rate seems low" **2-5% is actually excellent!** Here's why: - ✅ **2-5%**: Outstanding performance - ✅ **1-2%**: Good, solid performance - ⚠️ **0.5-1%**: Average, room for improvement - 🔴 **<0.5%**: Needs optimization **Remember**: We only count people who actually pay, not just visitors or signups. ### "My EPC seems small" **$1-5 per click is great!** Industry benchmarks: - 🏆 **$5+**: Exceptional (usually high-ticket products) - ✅ **$2-5**: Very good performance - ✅ **$1-2**: Solid, profitable performance - ⚠️ **$0.50-1**: Average, can be improved - 🔴 **<$0.50**: Needs strategy adjustment ### "The numbers keep changing" **This is completely normal!** Both metrics update for 30-60 days because: - People take time to decide and purchase - Higher or lower value customers convert at different speeds - Your true performance emerges over time --- ## When Do These Numbers Update? ### Timeline Attribution **Both metrics appear on the day you got clicks**, regardless of when purchases happen. ``` Day 1: You share your link → 50 clicks recorded Day 3: First purchase → Conversion rate & EPC update on Day 1 Day 7: Second purchase → Both metrics update on Day 1 again Day 14: Third purchase → Both metrics update on Day 1 again ``` ### Tracking Duration We track conversions indefinitely, but most happen within: - **24 hours**: 20-30% of total conversions - **1 week**: 60-70% of total conversions - **1 month**: 90-95% of total conversions --- ## 📈 How to Improve Your Performance ### Boosting Conversion Rate 1. **Target Better Audiences** - Focus on people who actually need the product - Share in relevant communities and forums - Use educational content to pre-qualify interest 2. **Improve Your Messaging** - Be clear about product benefits - Address common objections upfront - Use social proof and testimonials 3. **Time Your Promotions** - Share when people are ready to buy (end of month, budget planning) - Follow up with interested prospects - Use limited-time offers strategically ### Boosting Initial EPC 1. **Promote Higher-Value Plans** - Focus on premium tiers when appropriate - Educate about advanced features - Target serious businesses, not hobbyists 2. **Quality Over Quantity Traffic** - 100 targeted clicks > 1000 random clicks - Focus on warm audiences who trust you - Build relationships before promoting 3. **Use Compelling Incentives** - Exclusive discounts for your audience - Bonus materials or consultations - Limited-time value adds --- ## 🔍 Troubleshooting Common Issues ### "My conversion rate is 0% but people told me they bought" **Possible causes:** - ⏳ **Too early**: Give it 1-2 weeks minimum - 🔗 **Different link used**: Customer may have used different method - ❌ **Incomplete signup**: Check if customer finished all steps - 🏷️ **Attribution issue**: They might be credited to different source ### "My numbers seem inconsistent" **This is normal because:** - Different quality of traffic on different days - Seasonal buying patterns - Various customer types convert at different rates - Market conditions and competition changes ### "When should I worry about performance?" **Give any campaign 2-4 weeks** before making big changes. Early data can be misleading. **Red flags after 1 month:** - Conversion rate consistently under 0.5% - EPC under $0.25 - No conversions at all with 200+ clicks --- ## 🎯 Pro Tips for Success ### Set Realistic Expectations - **Week 1**: Often looks low (only fast converters) - **Week 2-3**: More realistic picture emerges - **Month 2+**: True long-term performance ### Focus on Trends, Not Daily Numbers - Look at weekly and monthly patterns - Compare similar promotional efforts - Track improvement over time, not absolute perfection ### Quality Metrics vs Vanity Metrics - **Quality**: Conversion rate, EPC, customer satisfaction - **Vanity**: Total clicks, social media likes, email opens Focus on metrics that directly translate to income. --- ## 🏆 What Great Performance Looks Like ### Example: Successful Affiliate ``` Month 1: 1,000 clicks → 25 conversions → 2.5% conversion rate Average first purchase: $150 → EPC: $3.75 Monthly recurring income: $750+ ``` ### Your Growth Path 1. **Start**: Learn what works with your audience 2. **Optimize**: Improve targeting and messaging 3. **Scale**: Do more of what's working 4. **Diversify**: Try new channels and strategies **Remember**: Consistency beats perfection. Small improvements compound over time. --- _💡 **Need help optimizing your performance?** Check out our other analytics guides or contact support with specific questions about your metrics._ --- ## What are Credit-Based Commissions? Reward affiliates with product credits instead of cash payouts, perfect for SaaS platforms and loyal customers Credit-based commissions reward affiliates with product credits instead of cash payouts. This works especially well for loyal customers who naturally share your product and when you want to keep affiliates engaged with more of what they already use. ## How to Set Up Credit-Based Commissions 1. Go to your [Groups & Rewards](https://affonso.io/app/groups) settings 2. Select the affiliate group you want to add rewards to 3. Click "Add Incentive" for that group 4. Choose which products/plans trigger this incentive (monthly plans, yearly plans, one-time products, or specific products) 5. Set incentive type to "Credits" and enter the credit amount per referral 6. Configure payout conditions (lifetime, time-limited, or payment-limited) 7. Set approval settings and create the incentive **Example:** 20 credits per referral for monthly plans, with lifetime duration and immediate approval. **Alternative:** You can also set up [individual commission rates](/help/managing-affiliates/setting-individual-commission-rates) for specific affiliates instead of group-based rewards. ## What Happens After Setup Unlike cash commissions, credits can be awarded instantly after verified referrals and don't require banking details or invoices. Affiliates can redeem credits for your products, upgrades, or services either automatically through your system or manually through your team. ## Credit vs. Cash Commissions Credit rewards reduce financial burden while offering high perceived value. They work best when rewarding loyal users rather than professional marketers, and when you already have a product people love and want more of. Cash commissions remain better for creators or agencies expecting traditional payouts. --- **Ready to implement credit-based commissions?** Contact support for help setting up your credit reward system. --- ## Double-Sided Incentives with Coupon Codes Boost affiliate performance and customer conversion with discount codes that automatically apply to referred customers — using program-wide or unique affiliate coupons Double-sided incentives create a win-win situation where affiliates earn commissions while their referred customers automatically receive discount codes. This powerful feature increases both affiliate motivation and customer conversion rates by providing immediate value to every referred visitor. Affonso supports two types of coupon codes for double-sided incentives: - **Program-Wide Coupons:** A single coupon code shared across all affiliates in a program. Every referred customer sees the same discount. - **Unique Affiliate Coupons:** Individual coupon codes per affiliate. Each affiliate can have their own personalized discount code(s), enabling more targeted promotions and better tracking. You can use either type — or both together. When a customer arrives via an affiliate referral link, the Affonso tracking pixel automatically makes both the program-wide coupon and the affiliate's unique coupons available in the `affonso_data` cookie. ## Option 1: Program-Wide Coupon Program-wide coupons are the simplest way to get started. One coupon code applies to all affiliates in the program. ### Create Program-Wide Coupon 1. Navigate to your [Affiliate Program Settings](https://affonso.io/app/affiliate-program) 2. Scroll down to the **"Program-Wide Coupon Code"** section 3. Click **"Create Program Coupon"** 4. **Configure your coupon:** - **Discount Type:** Choose percentage or fixed amount - **Discount Value:** Set your discount amount (e.g., 20% or $10) - **Duration:** Select "once", "forever", or "repeating" - **Coupon Code:** Enter a memorable code (e.g., "WELCOME20") 5. Click **"Create Coupon"** to generate it across all your connected payment providers The coupon will be automatically created in Stripe, DODO, and Polar (depending on your integrations) and becomes immediately available to all customers. ### Access the Coupon in Your Checkout ```javascript // Get the program-wide discount const discount = window.Affonso.getDiscount(); if (discount) { console.log(discount.promoCode); // e.g., "WELCOME20" console.log(discount.couponId); // Payment provider coupon ID console.log(discount.amount); // e.g., 20 console.log(discount.type); // "percentage" or "fixed" } ``` ## Option 2: Unique Affiliate Coupons Unique affiliate coupons give each affiliate their own personalized discount code. This is great for influencer partnerships, brand ambassadors, or any scenario where you want affiliates to promote their own codes. ### Create Unique Coupons for Affiliates You can create unique coupon codes for individual affiliates through: - **Dashboard:** Navigate to the affiliate's profile and create a coupon code in the **"Coupon Codes"** section - **API:** Use the [Affonso API](/help/connect/api-setup) to create coupons programmatically via `POST /v1/coupons` - **Self-Service:** Enable self-service coupon creation to let affiliates create their own codes from the affiliate portal ### Access Affiliate Coupons in Your Checkout When a customer arrives via an affiliate's referral link, all of that affiliate's unique coupons are available: ```javascript // Get all unique coupons for this affiliate const coupons = window.Affonso.getAffiliateCoupons(); // Returns array if (coupons.length > 0) { const coupon = coupons[0]; // Most recently created coupon console.log(coupon.promoCode); // e.g., "JOHN20" console.log(coupon.couponId); // Payment provider coupon ID console.log(coupon.amount); // e.g., 20 console.log(coupon.type); // "percentage" or "fixed" } ``` ## Using Both Together You can combine both coupon types. A common pattern is to prefer the affiliate's unique coupon when available, and fall back to the program-wide coupon: ```javascript // Prefer affiliate's unique coupon, fall back to program-wide const affiliateCoupons = window.Affonso.getAffiliateCoupons(); const programDiscount = window.Affonso.getDiscount(); const coupon = affiliateCoupons.length > 0 ? affiliateCoupons[0] // Use affiliate's unique coupon : programDiscount; // Fall back to program-wide if (coupon) { fetch('/api/checkout', { method: 'POST', body: JSON.stringify({ couponId: coupon.couponId, // ... your other checkout data }) }); } ``` For a complete implementation guide on auto-applying coupons at checkout, see [Auto-Apply Affiliate Coupons at Checkout](/help/commission-payouts/commission/auto-apply-affiliate-coupons). ## How It Works 1. **Customer clicks affiliate link** with referral parameter (e.g., `?via=affiliate123`) 2. **Affonso tracking pixel** automatically detects the referral and fetches coupon data 3. **Coupon information is stored** in the `affonso_data` cookie — both program-wide and affiliate-specific coupons 4. **Your checkout flow** retrieves the coupon and applies it during payment 5. **Customer gets discount** while affiliate earns commission on the sale ## Access Methods You can access coupon data using these JavaScript methods: ```javascript // Get program-wide discount (one per affiliate program) const discount = window.Affonso.getDiscount(); // Returns discount object or null // Get unique affiliate coupons (all coupons for this specific affiliate) const coupons = window.Affonso.getAffiliateCoupons(); // Returns array (empty if none) // Get all data const data = window.Affonso.getData(); // Example discount/coupon object: // { // amount: 20, // type: "percentage", // maxDuration: "once", // couponId: "stripe_coupon_id", // promoCode: "WELCOME20" // } ``` --- ## How to Reject Referrals and Commissions Manage fraudulent activity, duplicate accounts, and invalid referrals by rejecting referrals and declining commissions in your affiliate program Rejecting referrals and commissions gives you full control over which sales are eligible for payouts. Whether you're dealing with duplicate accounts, policy violations, chargebacks, or other fraudulent activity, Affonso provides flexible tools to manage these situations while protecting your program integrity. > **Looking for self-referral specific guidance?** See our dedicated guide on [How to Reject a Self-Referral or Invalid Affiliate Sale](/help/faq/reject-self-referral-sales). ## Common Reasons to Reject Referrals You might need to reject referrals and commissions for several legitimate reasons: - **Duplicate accounts:** Same customer signing up multiple times to earn referral bonuses - **Policy violations:** Affiliates using prohibited marketing methods (spam, misleading ads) - **Chargebacks:** Customer disputed the charge or requested a refund - **Invalid traffic:** Bot traffic, click fraud, or cookie stuffing attempts - **Terms violations:** Any activity that breaches your program terms and conditions - **Self-referrals:** Affiliates referring themselves (see our [dedicated guide](/help/faq/reject-self-referral-sales)) ## How to Reject a Referral Rejecting a referral blocks all future commissions from that specific customer relationship. 1. Navigate to your [Referrals](https://affonso.io/app/referrals) dashboard 2. Find the referral you want to reject 3. Click the **"⋯"** dropdown in the referral row 4. Select **"Change Status"** 5. Choose **"Rejected"** from the available statuses 6. Confirm the change The referral status immediately changes to REJECTED, and any future purchases from that customer through that affiliate will no longer generate commissions. ## How to Decline Individual Commissions Sometimes you need to reject specific commissions without blocking the entire referral relationship. This is useful for chargebacks or one-time policy violations. ### Option 1: From the Referrals Dashboard 1. Open your [Referrals](https://affonso.io/app/referrals) dashboard 2. Find the referral containing the commission 3. Click the **"⋯"** dropdown 4. Select **"View Transactions"** 5. In the transaction modal, find the specific commission 6. Click the **"⋯"** dropdown for that transaction 7. Select **"Change Status"** 8. Choose **"Declined"** ### Option 2: From the Sales Dashboard 1. Navigate to your [Sales](https://affonso.io/app/sales) dashboard 2. Locate the specific sale you want to decline 3. Click the **"⋯"** dropdown for that sale 4. Select **"Change Status"** 5. Choose **"Declined"** The commission is immediately removed from pending payouts and marked as declined. The affiliate will no longer receive payment for that specific transaction. ## Understanding the Difference: Rejected vs Declined It's important to understand when to use each status: **Reject a Referral** when: - You want to block ALL future commissions from a customer - The referral relationship itself is invalid - You're dealing with fraud or serious policy violations **Decline a Commission** when: - You need to reject ONE specific transaction - There was a chargeback or refund - The referral is legitimate but this specific sale isn't eligible - You want to keep the relationship active for future purchases ## What Happens After Rejection ### When You Reject a Referral: - Status changes to REJECTED permanently - Future purchases from that customer won't generate commissions - Existing pending commissions remain unless manually declined - The referral appears as rejected in reporting and analytics - The affiliate can still promote your program to other customers ### When You Decline a Commission: - That specific commission is removed from pending payouts - Other commissions from the same referral remain unaffected - The customer can still make future purchases that generate commissions - The declined amount is excluded from all payout calculations ## Managing Past Commissions After Rejection **Important:** Rejecting a referral does NOT automatically decline existing commissions that were generated before the rejection. You must handle those separately. To clean up existing commissions after rejecting a referral: 1. Open the rejected referral's transaction history 2. Review each pending or approved commission 3. Decline any commissions that should not be paid 4. Leave legitimate commissions if they were earned before the violation This gives you granular control to handle each situation fairly while protecting your program. ## Best Practices for Managing Rejections **Act Quickly:** Review new referrals within the first 24-48 hours to catch fraudulent activity before commissions are approved or paid out. **Document Everything:** Keep internal notes about why referrals or commissions were rejected. This helps if affiliates question the decision or you need to review patterns later. **Communicate Clearly:** If you reject a legitimate affiliate's commission due to policy violations, communicate the specific issue so they can correct their approach. **Set Clear Terms:** Make your program rules explicit in your affiliate terms and conditions. Clear expectations prevent most rejection scenarios. **Monitor Patterns:** Use the [referrals dashboard](https://affonso.io/app/referrals) filters to identify suspicious patterns like multiple referrals from similar email addresses or IP addresses. **Review Regularly:** Schedule weekly reviews of new referrals and commissions to catch issues early and maintain program quality. ## Bulk Actions for Multiple Rejections If you need to reject multiple referrals or commissions at once: 1. Use the [referrals dashboard](https://affonso.io/app/referrals) filters to identify problematic entries 2. Note the specific referrals or transactions you need to reject 3. Process each rejection individually to ensure accuracy 4. Consider reaching out to support for assistance with large-scale cleanup operations --- **Need help managing complex rejection scenarios?** Contact support for personalized guidance on protecting your affiliate program from fraud and abuse. --- ## Multi-Level Commissions Reward affiliates for recruiting other affiliates with up to 3 levels of sub-affiliate commissions Multi-level commissions let you reward affiliates not just for their own sales, but also for the sales made by affiliates they recruit. When a sub-affiliate generates a sale, their parent affiliate automatically earns a commission — up to 3 levels deep. **How it works:** Affiliate A recruits Affiliate B. When Affiliate B makes a sale and earns a $100 commission, Affiliate A automatically receives a multi-level commission based on your configured rate. If Affiliate B then recruits Affiliate C, the chain continues — Affiliate A earns from Affiliate C's sales too. ## Setting Up Multi-Level Commissions 1. Go to your [Groups & Rewards](https://affonso.io/app/groups) settings 2. Select the group you want to enable multi-level commissions for 3. In the **Multi-Level Commissions** section, click **"Add Level"** 4. Choose the calculation type and set the rate 5. Optionally add Level 2 and Level 3 for deeper referral chains Levels must be added in order — you can't add Level 2 without Level 1. Removing a level automatically removes all higher levels. ## Calculation Types ### Percentage of Commission The parent earns a percentage of the sub-affiliate's commission amount. This is the default and most common setup. **Example with 10% at each level:** - Sub-affiliate earns $100 commission from a sale - Level 1 parent earns $10 (10% of $100) - Level 2 grandparent earns $1 (10% of $10) - Level 3 great-grandparent earns $0.10 (10% of $1) With this mode, commissions naturally decrease at each level since each level is a percentage of the previous level's earning. ### Percentage of Sale The parent earns a percentage of the original sale amount, regardless of the sub-affiliate's commission rate. **Example with 5% at each level on a $200 sale:** - Sub-affiliate earns their normal commission - Level 1 parent earns $10 (5% of $200) - Level 2 grandparent earns $10 (5% of $200) - Level 3 great-grandparent earns $10 (5% of $200) With this mode, every level earns the same amount since it's always based on the original sale. ## Per-Affiliate Overrides You can customize multi-level rates for individual affiliates. This is useful for top performers or partners with special agreements. 1. Go to the affiliate's detail page 2. In the Multi-Level section, add or modify rates for specific levels 3. The override takes priority over the group-level configuration Overrides follow the same level rules — no gaps allowed, and levels can't exceed the group's maximum configured level. ## How Affiliates Recruit When multi-level commissions are active, affiliates automatically see a **recruitment link** in their portal under the **Sub-Affiliates** tab. Anyone who signs up through this link becomes their sub-affiliate. Affiliates can track their recruited sub-affiliates, see their sales activity, and monitor their multi-level earnings — all from their portal dashboard. ## Manually Assigning Parent Affiliates You can also manually set up parent-child relationships: 1. Go to the affiliate's group page 2. Click on the affiliate and select **"Assign Parent"** 3. Search for the parent affiliate by name or tracking ID 4. Confirm the assignment The system prevents circular references — you can't assign an affiliate as a parent if it would create a loop in the referral chain. ## Refund Handling When a sale is refunded, multi-level commissions are handled automatically: - **Full refund:** All related multi-level earnings are set to REFUNDED - **Partial refund:** Multi-level earnings are proportionally reduced based on the refund ratio - **Declined/disputed:** All related multi-level earnings follow the same status ## Things to Know - Multi-level commissions only apply to monetary commission incentives (not credits, free months, or points) - Parent affiliates must be in ACTIVE status to receive multi-level earnings - If a parent affiliate in the chain is inactive, the chain stops at that level - Multi-level earnings inherit the same hold period and approval settings as the direct commission - Multi-level commissions are included in regular payout calculations --- **Ready to grow your affiliate network?** Visit your [Groups & Rewards](https://affonso.io/app/groups) settings to enable multi-level commissions. --- ## Set Custom Rewards for Specific Products and Plans Set up targeted incentives for specific products to optimize commission rates based on margins and strategic priorities Product-specific rewards let you create targeted incentives based on what's being sold. You can offer higher commissions for premium products, special rates for new launches, or adjust rewards based on product margins and strategic priorities. ## How to Create Product-Specific Rewards 1. Go to your [Groups & Rewards](https://affonso.io/app/groups) settings 2. Select the affiliate group you want to add rewards to 3. Click **"Add Incentive"** for that group 4. Choose **"Specific products"** as your trigger option 5. **Select or create products:** - Search for existing products in your list, OR - Click **"Create New Product"** to add a new one 6. **If creating new products:** - Enter product name (e.g. "Premium Plan") - Add Price or Plan ID from your payment processor (e.g. "price_123") - Add details (optional, e.g. "Starter Plan") - Use **"Add another price"** for multiple pricing tiers 7. **Set incentive details:** Choose Fixed Amount, Percentage, Credits, or Free Months with your desired rate 8. **Configure payout conditions** and **approval settings** 9. Create the incentive ## What Happens After Setup The reward applies only to sales of your selected products. Affiliates earn the specific commission rate you set for those products, while other products use different incentive rates or default group rates. You can create multiple product-specific incentives to build a comprehensive reward structure. ## Strategic Use Cases Use product-specific rewards to offer higher commissions for premium products with better margins, create special launch incentives for new products, provide different rates for annual vs monthly plans, or adjust rewards based on strategic business priorities like customer lifetime value. --- **Ready to create targeted rewards?** Visit your [Groups & Rewards](https://affonso.io/app/groups) settings to set up product-specific incentives. --- ## What are Groups? Organize affiliates into logical collections for easier management and tailored commission structures Groups let you organize affiliates into logical collections that share similar characteristics, commission structures, or business relationships. Instead of managing hundreds of partners individually, you can create meaningful segments with tailored incentives and streamlined management. **Default Group:** Every affiliate program starts with a default group. New affiliates are automatically assigned to this group when they join your program. The group description you write will be displayed on the affiliate portal login page. ## How to Create and Manage Groups 1. Go to your [Groups & Rewards](https://affonso.io/app/groups) settings 2. Click **"Create New Group"** to open the group creation modal 3. Enter group name, description (shown on affiliate login page), and optional custom website URL 4. Save the new group 5. Click **"Manage Partners"** on any group to add or move affiliates between groups You can search for specific affiliates and select them to move from their current group. The system will warn you when moving affiliates between groups with different commission structures. ## What Groups Enable With groups, you can set standard commission rates for similar affiliates, manage multiple partners efficiently under one structure, create clear progression paths between different group tiers, and organize partners based on performance, specialization, or market focus. Groups are flexible - you can move affiliates between groups and adjust settings as your program evolves. ## Common Group Types - Customer Referrals: Existing customers who refer others, often rewarded with account credits or service extensions rather than cash payouts. - Influencers: Content creators and social media personalities who need different commission structures due to their broad reach and content-based promotion style. - Agency Partners: Marketing agencies and consultants who bring higher-value customers and may deserve elevated commission rates. - Integration Partners: Software companies who have integrated with your platform and promote it to their user base. **Ready to create your first group?** Visit your [Groups & Rewards](https://affonso.io/app/groups) settings to set up organized commission structures. --- ## What are Incentives and Rewards? Create reusable reward templates to motivate affiliates with flexible commission structures and alternative rewards Incentives are reusable reward templates that motivate your affiliates to promote your products. Instead of setting up the same commission structure multiple times, you create it once and apply it to multiple groups or individual partners as needed. ## How to Create Incentives 1. Go to your [Groups & Rewards](https://affonso.io/app/groups) settings 2. Select the affiliate group you want to add an incentive to 3. Click **"Add Incentive"** for that group 4. **Choose products:** Select which products/plans trigger this incentive (monthly plans, yearly plans, one-time products, or specific products) 5. **Set incentive details:** - Enter incentive name (e.g. "20% recurring commission") - Choose type: Fixed Amount, Percentage, Credits, or Free Months - Set the rate/value 6. **Configure payout conditions:** Lifetime, time-limited, or payment-limited 7. **Set approval settings:** Immediate, hold period, or manual review 8. Create the incentive ## Types of Incentives Available ### Monetary Incentives - **Fixed Amount:** Set a specific amount per sale in any currency (e.g. $20 per conversion, €15 per conversion, or £10 per conversion) - **Percentage:** Commission based on a percentage of the sale value (e.g. 10% of sale) ### Non-Monetary Incentives - **Credits:** Reward with product credits (e.g. 10 credits per referral) - **Free Months:** Grant free months of your service (e.g. 1 free month per sale) - **Points:** Award points for each conversion, which can later be exchanged for benefits or perks (e.g. 100 points per referral) ## What Happens After Creation The incentive becomes active immediately and applies to new referrals that match your product criteria. You can use the same incentive template across multiple groups, modify it for different scenarios, or create individual overrides for specific affiliates. --- **Ready to create your first incentive?** Visit your [Groups & Rewards](https://affonso.io/app/groups) settings to set up reward templates. --- ## Automating Affiliate Payouts with Affonso Eliminate manual payout work with Affonso's automated system that handles invoicing, payments, and tax compliance for affiliate commissions With Managed Payouts enabled, Affonso handles the entire affiliate payment process from start to finish. No more chasing invoices, managing banking details, or worrying about tax forms — you handle one monthly invoice and we take care of everything else. 💡 **Managed Payouts are exclusively available with the Growth & Elite Plan.** ## How Managed Payouts Work When Managed Payouts are enabled, Affonso manages the end-to-end process of distributing affiliate commissions: ### 1. Monthly Invoice – Sent NET 7 In the first week of each month, we generate an invoice summarizing all approved commissions from the previous month. Only commissions that have cleared your [program-specific hold period](/help/commission-payouts/payouts/how-to-pay-affiliate-commissions) are included. The invoice is sent via Stripe or Revolut and includes a payment link, allowing you to complete payment with just one click. The invoice includes all necessary business information and documentation for your records. **Service Fee:** Each invoice includes a flat $25 service fee covering operational and compliance work for global payouts (waived for Elite Plan users). ⏱️ **Important:** We begin processing affiliate payouts only after receiving your payment, so prompt payment prevents delays for your affiliates. ### 2. Pay Affonso – We Handle the Rest You can pay the invoice using: To cover payment processing fees charged by the payment providers, a small surcharge is added to the total invoice amount: **Via Stripe** – 3.25% surcharge - Credit Card - Bank Transfer - PayPal - Other supported payment methods **Via Revolut** – 2.8% surcharge - Credit Card - Bank Transfer - Other supported payment methods **Currency Notes:** - All invoices are issued in USD - If your program operates in another currency, we convert commission amounts to USD using the exchange rate on invoice creation day - Additional currency conversion fees may apply for different billing currencies ### 3. Global Affiliate Payouts Once we receive funds, we distribute affiliate earnings via: - **Bank Wire Transfers** - **PayPal** **Important:** All affiliate payouts are made in USD. Different commission currencies are converted to USD using the exchange rate on invoice creation day. **Fees:** All fees related to receiving affiliate payouts (bank or platform fees) are the affiliate's responsibility, following industry standard practice. ### 4. Tax & Compliance Handled Affonso manages all tax and compliance tasks in the background: - Collecting required forms from affiliates - Generating proper documentation - Ensuring everything stays compliant - No paperwork or follow-ups required from you ✅ **You receive one invoice, make one payment – we handle everything else.** ### 5. High-Volume Payout Fee For more than 25 affiliates in a single month, we charge an additional $0.50 per affiliate payout beyond the first 25. ## Why Choose Managed Payouts **Benefits:** - **Time-saving:** No [manual payment processing](/help/commission-payouts/payouts/how-to-pay-affiliate-commissions) - **Compliant:** All tax and legal requirements handled - **Scalable:** Works globally with any number of affiliates - **Simple:** One monthly invoice covers everything **Perfect for:** - Growing affiliate programs - International affiliate networks - Businesses wanting to focus on growth, not payments ## Getting Started Managed Payouts are only available with the **Growth Plan**. Not on Growth yet? [Upgrade your plan](https://affonso.io/pricing) to unlock automated affiliate payments and eliminate manual payout work. --- **Questions about Managed Payouts?** Contact support to learn more about automated payment processing and Growth Plan features. --- ## How & When Affiliate Payouts Are Generated Understanding when and how Affonso automatically creates payouts based on thresholds, hold periods, and payout frequency settings Affonso automatically handles payout generation based on your program settings, ensuring affiliates get paid consistently while protecting your business from chargebacks and fraud. ## Conditions That Must Be Met For Affonso to create an open payout, all three conditions must be fulfilled: ### 1. Payout Threshold is Reached Each affiliate program has a minimum payout threshold that affiliates must earn before a payout is triggered. You can define this threshold in your program settings (typically $50-$100). **Example:** If your threshold is $50 and an affiliate has earned $45, no payout is created. Once they reach $50+ in approved commissions, the system evaluates the next payout opportunity. ### 2. Commission Hold Period Has Passed When a sale occurs through an affiliate, the commission doesn't become "approved" immediately. There's a hold period (in days) to account for potential refunds or disputes. **Example:** With a 30-day hold period, an affiliate earns a $20 commission on May 1st. This commission becomes "approved" on May 31st (assuming no refund). Only approved commissions count toward the payout threshold. ### 3. Payout Frequency Check is Triggered Once the threshold is reached with approved commissions, Affonso checks on schedule whether to create a payout based on your frequency setting: - **Weekly:** System checks every Monday - **Monthly:** System checks on the 1st of each month **Example:** If an affiliate crosses the threshold on Thursday, the system generates the open payout the following Monday (for weekly frequency). ## Where to Configure These Settings You can adjust all payout settings from your Program Details page: 1. Go to [Payout Settings](https://affonso.io/app/affiliate-program/payment-terms) in your dashboard 2. Configure your preferred options: - **Payout threshold** (minimum amount for payout) - **Commission hold period** (days to wait before approval) - **Payout frequency** (weekly or monthly) - **[Auto payout](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso)** (optional automation) ## What Happens Next Once an open payout is created: - You'll see it listed under [**Payments > Pending**](https://affonso.io/app/payments) - You can review and [send payouts manually](/help/commission-payouts/payouts/how-to-pay-affiliate-commissions) or export the data - Affiliates will see that a payment is pending and being processed ## Troubleshooting If a payout hasn't been created yet, check: - Whether the affiliate has reached the threshold - Whether their commissions are still in the hold period - When the next payout check is scheduled --- **Need help with payout settings?** Contact support for assistance with configuring your payout rules and schedules. --- ## How to Pay Affiliate Commissions This article explains how to process affiliate payouts in Affonso — from exporting commissions to marking them as paid If you're on the Launch Plan or using the Revenue Pass, affiliate payouts are handled manually by you as the program owner. Affonso helps you track, export, and manage commissions for external payment without processing payments on your behalf. 💡 **Want to automate payouts?** The Growth and Elite Plans include [managed payouts](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso) and credit note generation. ## When Payouts Are Generated Payouts in Affonso are automatically generated based on each program's payment term settings: - **Monthly payouts:** Created on the first business day of each month - **Weekly payouts:** Created on Mondays Only commissions that meet certain [payout conditions](/help/commission-payouts/payouts/how-and-when-affiliate-payouts-are-generated) will be included in a payout. ## How to Process Manual Payouts ### 1. Review Available Payouts Once a payout is generated, you'll see pending affiliate commissions in your [Payouts dashboard](https://affonso.io/app/payments). Here you can: - Review all affiliate commissions due for payment - Export payouts grouped by method (PayPal, Wise, etc.) as CSV files - View and pay each payout individually 💡 **Tip:** The CSV export is ideal for using PayPal or Wise's bulk payment tools. ### 2. Make Payments Externally After exporting, complete the actual payments through your preferred provider (PayPal, Wise, bank transfer, etc.). **Important:** Affonso does not process payments directly — you are responsible for sending funds externally. ### 3. Mark Payouts as Paid After completing external payments: 1. Return to your [Payouts dashboard](https://affonso.io/app/payments) in Affonso 2. Mark each payout as **"Paid"** This keeps your records accurate and updates the affiliate's dashboard to show payment completion. ### 4. Credit Notes (Elite Plan) If you're on the Elite Plan with this feature enabled: - Affonso automatically generates credit notes for each paid affiliate payout - Credit notes are available to both you and the affiliate for accounting purposes - Adds transparency and bookkeeping convenience for both sides ## Summary Manual payouts in Affonso provide flexibility while maintaining transparency and tracking: - **[Payouts are auto-generated](/help/commission-payouts/payouts/how-and-when-affiliate-payouts-are-generated)** based on program payment terms - **Payments must be made outside Affonso** through your preferred method - **Always mark commissions as paid** to keep records accurate - **Growth Plan users get automatic credit notes** for accounting ## Prefer Hands-Off Affiliate Payouts? Tired of exporting CSVs, handling payments manually, and dealing with tax documents? **With the Affonso Growth or Elite Plan, we handle everything:** - [Managed payouts](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso) via PayPal or Wise - One monthly invoice — we pay all affiliates on your behalf - Credit notes generated for every payout - We manage tax handling, compliance, and payout tracking All you do is approve — we take care of the rest. --- **Need help with manual payouts?** Contact our support team for assistance with export processes and payment tracking. --- ## Manually Generate Payouts Pay your affiliates exactly when you need to, not when the system decides Your finance team needs to close the books on Friday. An affiliate is asking when they'll get paid. You ran a special promotion and want to reward participants immediately. These are real situations where waiting for the automatic payout schedule doesn't work. Manual payout generation lets you pay affiliates on your timeline, not the system's. ## When You'll Use This **Closing the books**: Your accountant needs affiliate payouts processed by month-end or quarter-end, regardless of when the automatic schedule runs. **Responding to affiliate requests**: An affiliate reaches out asking about their earnings. Instead of explaining the schedule, just generate their payout and tell them it's done. **Special promotions**: You ran a holiday campaign or special event and want to reward those affiliates right away - good for motivation and relationship building. **Cleaning up small balances**: Some affiliates have $20 or $30 sitting there, below your threshold. Clear it out to simplify your books, even if they haven't hit the minimum. **One-time situations**: A departing affiliate needs their final payment. A manual adjustment needs to go out. Someone asks for an exception. Handle it in seconds. ## How to Generate Manual Payouts ### Navigate to Upcoming Payments Go to [**Payments > Upcoming**](https://affonso.io/app/payments/upcoming) in your dashboard. Click **"Generate Manual Payouts"** at the top. ### Pick Your Date Range Select the time period you want to process. The form starts with last month's dates, but you can adjust to any range - last week, last quarter, specific campaign dates, whatever you need. ### Choose Who Gets Paid - **All affiliates**: Everyone with eligible commissions in that date range - **Single affiliate**: Search for and select one specific affiliate ### Override the Minimum (Optional) Toggle this on if you want to pay affiliates who haven't reached your normal threshold. Useful for final payments or clearing small balances. ### Click Generate That's it. The system starts processing in the background. Close the window and go back to work - you'll see the results under [**Payments > Pending**](https://affonso.io/app/payments) when it's done. ## What Happens Next Once the processing completes: 1. Open payouts appear under [**Payments > Pending**](https://affonso.io/app/payments) 2. Affiliates see that payment is being processed 3. You can review, [send payments manually](/help/commission-payouts/payouts/how-to-pay-affiliate-commissions), or export for accounting The system uses the same financial logic as automatic payouts - no duplicate payments, proper invoice numbering, same accuracy you'd expect. ## Common Questions **How long does it take?** Depends on how many affiliates and transactions. A handful of affiliates? Seconds. A hundred affiliates with lots of transactions? A few minutes. Either way, it runs in the background so you don't have to wait around. **What if an affiliate doesn't have approved commissions?** They won't get a payout. Only commissions that have passed the hold period and are approved get included. Same rules as automatic payouts. **Can I generate payouts for the same date range twice?** The system won't create duplicate payouts. If commissions are already associated with an existing payout, they're skipped. **What if I need to cancel or redo it?** Once generated, you'll find the payouts under Pending. You can review them there before actually sending payments. If something's wrong, contact support - they can help sort it out. --- **Need help?** Contact support if you run into issues or have questions about your specific situation. --- ## PayPal Mass Payouts Learn how to export affiliate payouts from Affonso and process bulk payments through PayPal Mass Payments PayPal Mass Payments lets you pay multiple affiliates at once using a simple CSV file export from Affonso. This guide walks you through the entire process — from generating payouts to completing bulk payments in PayPal. ## Before You Start ### Prerequisites 1. **Pending payouts in Affonso** — Payouts are either [generated automatically](/help/commission-payouts/payouts/how-and-when-affiliate-payouts-are-generated) based on your program settings, or you can [manually generate payouts](/help/commission-payouts/payouts/manually-generate-payouts-for-custom-date-ranges) for custom date ranges. 2. **PayPal Business account** — Mass Payments (Payouts) requires a PayPal Business account with Payouts enabled. Personal accounts cannot send mass payments. 3. **Sufficient PayPal balance** — You must have enough funds in your PayPal balance to cover all payments. Mass payments can only be sent from your balance, not from a linked bank account or card. ## Step 1: Export PayPal Payouts from Affonso 1. Go to your [Payments dashboard](https://affonso.io/app/payments) 2. Select the **Pending** tab to view all open payouts 3. Click **Export** and choose **PayPal** 4. A CSV file will download containing all affiliates who have PayPal as their preferred payment method The exported file includes: - Email addresses of recipients - Payment amounts - Currency codes ## Step 2: Set Up PayPal Payouts If you haven't enabled Payouts on your PayPal Business account yet: 1. Log in to your [PayPal Business account](https://www.paypal.com) 2. Go to **Business Tools** → [Make Payments](https://www.paypal.com/mep/merchantapps/businesstools) 3. Under "Make payments", click **Payouts** 4. Complete the onboarding process to enable mass payments ## Step 3: Process the Mass Payment 1. In your PayPal account, click **Pay & Get Paid** 2. Under "Make payments", select **Payouts** 3. Upload the CSV file exported from Affonso 4. Review all recipients and payment amounts 5. Confirm and send the payments ### Important Notes - **Currency matching:** Your PayPal balance and the mass payment file must be in the same currency. If paying in multiple currencies, create separate files for each. - **Maximum recipients:** Each mass payment can include up to 5,000 individual payments. - **Fees:** PayPal charges 2% of the total transaction amount (capped at a maximum fee) for Payouts Web uploads, or a flat $0.25 per transaction via API. ## Step 4: Mark Payouts as Paid in Affonso After successfully sending payments through PayPal: 1. Return to your [Payments dashboard](https://affonso.io/app/payments) in Affonso 2. Select the payouts you just processed 3. Mark them as **Paid** This updates your records and shows affiliates that their payment has been sent. ## Troubleshooting ### "Denied" Status in PayPal If your mass payment shows as "Denied", check that: - You have sufficient funds in your PayPal balance - All email addresses in the file are valid - The currency matches your balance currency ### Recipients Without PayPal Accounts If a recipient doesn't have a PayPal account, PayPal will notify them via email to claim the payment. Unclaimed payments are automatically returned to you after 30 days. ## Prefer Hands-Off Payouts? Don't want to manage PayPal exports and payments manually? With [Managed Payouts](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso) on the Growth or Elite Plan, Affonso handles everything — you pay one invoice, and we distribute funds to all your affiliates worldwide. --- **Need help with PayPal mass payments?** Contact our support team for assistance with exports or troubleshooting. --- ## Wire Transfer Bulk Payouts Learn how to export affiliate payout data from Affonso for processing bank wire transfers For affiliates who prefer traditional bank transfers, Affonso lets you export all necessary payment details for processing wire transfers through your bank. This guide explains how to export the data and what to do next. ## Before You Start ### Prerequisites 1. **Pending payouts in Affonso** — Payouts are either [generated automatically](/help/commission-payouts/payouts/how-and-when-affiliate-payouts-are-generated) based on your program settings, or you can [manually generate payouts](/help/commission-payouts/payouts/manually-generate-payouts-for-custom-date-ranges) for custom date ranges. 2. **Business bank account** — Most banks offer batch/bulk wire transfer functionality for business accounts. Check with your bank about their specific requirements and file formats. ## Step 1: Export Wire Transfer Payouts from Affonso 1. Go to your [Payments dashboard](https://affonso.io/app/payments) 2. Select the **Pending** tab to view all open payouts 3. Click **Export** and choose **Wire Transfer** 4. A CSV file will download containing all affiliates who have bank transfer as their preferred payment method The exported file includes all necessary details: - Recipient name - Bank name - IBAN (International Bank Account Number) - SWIFT/BIC code - Payment amount - Currency ## Step 2: Process Transfers Through Your Bank Since every bank has different procedures for bulk or batch wire transfers, the exact steps will vary depending on your financial institution. Generally, you'll need to: 1. **Log in to your business banking portal** 2. **Navigate to payments or transfers** — Look for options like "Batch Payments", "Bulk Transfers", or "File Upload" 3. **Upload or import the CSV file** — Some banks may require reformatting the data to match their specific template 4. **Review all transfers** — Verify recipient details and amounts 5. **Authorize the payments** — May require additional authentication or approval ### Bank-Specific Considerations - **File format:** Some banks require specific CSV formats or even XML files. You may need to adjust the exported data to match your bank's requirements. - **Batch limits:** Banks often have limits on the number of transfers per batch or daily/monthly limits. - **Processing time:** International wire transfers typically take 1-5 business days depending on the destination country. - **Fees:** Wire transfer fees vary significantly by bank and destination. International transfers often incur higher fees than domestic ones. ## Step 3: Mark Payouts as Paid in Affonso After initiating the transfers through your bank: 1. Return to your [Payments dashboard](https://affonso.io/app/payments) in Affonso 2. Select the payouts you just processed 3. Mark them as **Paid** This updates your records and shows affiliates that their payment has been initiated. ## When to Use Wire Transfers Wire transfers are ideal when: - Affiliates don't have PayPal or Wise accounts - Large payment amounts make wire fees more economical - Affiliates prefer receiving funds directly to their bank account - Operating in regions where PayPal/Wise have limited support ## Considerations ### Fees Wire transfer fees can be significant, especially for international transfers. Consider: - Your bank's outgoing wire fee - Intermediary bank fees (for international transfers) - Recipient's bank incoming wire fee For smaller payments, [PayPal](/help/commission-payouts/payouts/paypal-mass-affiliate-payouts) or [Wise](/help/commission-payouts/payouts/wise-bulk-affiliate-payouts) may be more cost-effective. ### Currency Conversion If paying affiliates in different currencies, your bank will apply their exchange rates. These are often less favorable than services like Wise. Consider whether it's more economical to use Wise for multi-currency payments. ## Prefer Hands-Off Payouts? Don't want to manage wire transfers manually? With [Managed Payouts](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso) on the Growth or Elite Plan, Affonso handles everything — you pay one invoice, and we distribute funds to all your affiliates worldwide via PayPal or bank transfer. --- **Need help with wire transfer exports?** Contact our support team for assistance with formatting or bank-specific requirements. --- ## Wise Bulk Payouts Learn how to export affiliate payouts from Affonso and process batch payments through Wise Business Wise Batch Payments lets you pay multiple affiliates worldwide with low fees and competitive exchange rates. This guide walks you through exporting payouts from Affonso and processing them through Wise. ## Before You Start ### Prerequisites 1. **Pending payouts in Affonso** — Payouts are either [generated automatically](/help/commission-payouts/payouts/how-and-when-affiliate-payouts-are-generated) based on your program settings, or you can [manually generate payouts](/help/commission-payouts/payouts/manually-generate-payouts-for-custom-date-ranges) for custom date ranges. 2. **Wise Business account** — Batch payments are only available for Wise Business accounts. [Sign up for Wise Business](https://wise.com/business) if you haven't already. 3. **Sufficient balance** — Ensure you have enough funds in your Wise account or are ready to transfer the required amount. ## Step 1: Export Wise Payouts from Affonso 1. Go to your [Payments dashboard](https://affonso.io/app/payments) 2. Select the **Pending** tab to view all open payouts 3. Click **Export** and choose **Wise** 4. A CSV file will download containing all affiliates who have Wise as their preferred payment method The exported file is formatted for direct upload to Wise Batch Payments. ## Step 2: Upload to Wise Batch Payments 1. Log in to your [Wise Business account](https://wise.com) 2. From the **Payments** menu, select **Batch** 3. Or go directly to [wise.com/batch](https://wise.com/batch) 4. Upload your CSV file from Affonso 5. Review all transfers in your batch ## Step 3: Pay for Your Batch You can pay for your batch in two ways: ### Option A: Pay from Your Wise Account 1. Choose **Your account** as the payment method on the final step 2. The funds will be deducted directly from your Wise balance ### Option B: Pay by Bank Transfer 1. Wise will provide: - The full amount to send - Bank details for the transfer - A unique payment reference (starts with **B-**) 2. Send the bank transfer using the exact amount and reference 3. Click **I have paid** to confirm 4. Wise will process payments once funds are received **Important:** Always use your unique batch payment reference (B-ref) when sending money by bank transfer — this helps Wise complete your transfers faster. ## Step 4: Track Your Transfers Once paid, you can track all transfers in real time from your Wise account dashboard. Each recipient will receive their payment according to Wise's standard delivery times. ## Step 5: Mark Payouts as Paid in Affonso After your batch is processed: 1. Return to your [Payments dashboard](https://affonso.io/app/payments) in Affonso 2. Select the payouts you just processed 3. Mark them as **Paid** This updates your records and shows affiliates that their payment has been sent. ## Wise Fees Wise charges a fee for each transfer in your batch. The total fee is displayed before you confirm the payment. Key points: - Fees vary by currency and destination country - Check [Wise's pricing page](https://wise.com/pricing) for current rates - If you've accepted a Guaranteed Rate, ensure payment is sent before it expires — otherwise payments will use the live exchange rate ## Benefits of Wise for Affiliate Payouts - **Low fees:** Often significantly cheaper than PayPal or bank wires - **Great exchange rates:** Mid-market rates with transparent fees - **Global reach:** Send to 80+ countries - **Fast delivery:** Most transfers arrive within 1-2 business days ## Prefer Hands-Off Payouts? Don't want to manage Wise exports and batch payments manually? With [Managed Payouts](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso) on the Growth or Elite Plan, Affonso handles everything — you pay one invoice, and we distribute funds to all your affiliates worldwide. --- **Need help with Wise batch payments?** Contact our support team for assistance with exports or troubleshooting. --- ## API Integration Connect Affonso to your tools and automate your affiliate program # API Integration Want to integrate your affiliate program into your existing workflows? The Affonso API gives you full control – no manual back-and-forth. ## What You Can Do - Create, update, and retrieve affiliates - Manage referrals and commissions - Control payouts - Pull data into your CRM, dashboard, or automation tool ## Getting Started 1. Go to **Connect → API** in your dashboard 2. Click **Create Key** 3. Set a name, permissions, and expiration 4. Copy your key (it's only shown once!) Include your key in every request: ``` Authorization: Bearer sk_live_your_key_here ``` ## Permissions You control exactly what each key can do: - **Affiliates**: read, write, delete - **Referrals**: read, write, delete - **Commissions**: read, write, delete - **Payouts**: read, write, delete Create separate keys for different use cases – one for your CRM, one for Zapier, one for your custom dashboard. ## Connect Any Payment Provider Native integrations support Stripe, Paddle, Polar.sh, Creem, and Dodo Payments. But what if you use a different provider? With the API, you can track purchases and subscriptions from any payment system. Send conversion data to Affonso when a sale happens – regardless of where the payment was processed. ## Common Use Cases - **Connect any payment provider** – track sales from Gumroad, LemonSqueezy, or your custom checkout - **Sync affiliates to your CRM** when they sign up - **Build a custom reporting dashboard** with real-time data - **Automate affiliate onboarding** through your own systems - **Integrate with Zapier, Make, or n8n** for no-code workflows ## Full Documentation For endpoints, request/response examples, and advanced usage: → [docs.affonso.io](https://docs.affonso.io/) --- ## Webhooks Get real-time notifications when things happen in your affiliate program # Webhooks Stop polling for changes. Webhooks push events to your systems the moment they happen – so your tools can react instantly. ## What You Get Notified About - **Affiliate events**: new signups, profile updates, status changes - **Referral events**: new referrals, conversions - **Commission events**: created, approved, rejected - **Payout events**: initiated, completed, failed ## Setting Up Webhooks 1. Go to **Connect → Webhooks** in your dashboard 2. Click **Add Endpoint** 3. Enter your URL and select the events you want 4. Save and test your endpoint ## Security Every webhook payload is signed with HMAC-SHA256. Verify the signature to ensure requests actually come from Affonso. Failed deliveries are retried with exponential backoff. You can also replay failed events from the delivery log. ## Common Use Cases - **Slack notification** when a new affiliate joins - **CRM update** when a referral converts - **Custom email** when a payout is processed - **Analytics tracking** for every conversion ## Full Documentation For payload formats, signature verification, and event details: → [docs.affonso.io/webhooks](https://docs.affonso.io/webhooks) --- ## How can I find affiliates? Guide to Recruiting High-Quality Affiliates Finding the right affiliates can make or break your program's success. But where do you start? And more importantly, how do you find affiliates who will actually drive results? Finding the right affiliates can make or break your program's success. But where do you start? And more importantly, how do you find affiliates who will actually drive results? ## Understanding Different Types of Affiliate Programs Before diving into recruitment strategies, it's important to understand that companies use Affonso in various ways to grow through word-of-mouth marketing. The most common approaches include customer referral programs, public affiliate programs, influencer partnerships, and strategic partner marketing with complementary services. ## Start With Your Best Asset: Existing Customers Your current customers are often your most powerful advocates. Why? They already understand your product's value and can speak authentically about their experience. But timing is everything when inviting customers to become affiliates. Consider reaching out at these key moments: - Right after they initially sign up, when their excitement about your product is at its peak - After they've hit a significant milestone or success point with your product - Following a positive NPS survey response - After they renew their subscription These moments represent times when customers are most likely to be enthusiastic about promoting your product. ## Beyond Your Customer Base While existing customers form a strong foundation, there are several effective ways to expand your affiliate network. Here's how successful companies do it: ### Website Integration Don't hide your affiliate program - make it visible. Add a link in your marketing site's footer or even in the top navigation. This passive recruitment method can bring in motivated affiliates who are already interested in your industry. ### Strategic Outreach Building relationships with industry influencers takes time, but can yield significant results. Start by: - Reaching out to relevant bloggers or journalists in your industry - Searching for and connecting with top-ranked sites in your space - Engaging with influencers who align with your brand - Joining and actively participating in affiliate-focused groups on LinkedIn and Facebook ### Partnership Development Some of the most successful affiliate relationships come from complementary businesses. Consider partnering with solutions that serve your target market but don't compete directly. These partnerships can lead to powerful cross-promotion opportunities. ## Landing Your Dream Affiliates Here's something crucial to understand: your ideal affiliates rarely come to you - you need to go to them. Just like landing dream customers, recruiting top affiliates requires a proactive approach. Take time to identify what makes an ideal affiliate for your business. Look for: - Partners with an overlapping but non-competing audience - Those offering complementary products or services - Existing customers who have significant influence in your industry **Pro Tip:** Create a spreadsheet of 20-50 dream affiliates. Include their contact information, audience size, and potential reach. Then develop a personalized outreach strategy for each one. ## Building Long-Term Success Remember that building a thriving affiliate program is a marathon, not a sprint. It often takes several months for a program to gain real momentum. However, once it does, the multiplier effect can be remarkable - a single well-matched affiliate can generate numerous customers for your business. Stay patient and persistent in your recruitment efforts. Focus on building genuine relationships rather than just chasing quick wins. The most successful affiliate partnerships often start with a genuine connection and shared values. --- **Ready to start recruiting affiliates?** Our team is here to help you develop and execute your affiliate recruitment strategy. --- ## Can affiliates see customer details? Privacy protection and what information affiliates can access about their referrals **No, affiliates cannot see customer details or personal information.** Affiliates only have access to aggregated performance data like total referrals, conversion statistics, commission earnings, click tracking, and performance metrics. They cannot see customer names, email addresses, purchase details, payment information, or any personal data. This privacy protection follows GDPR and CCPA regulations while maintaining customer trust. Your customers' personal information stays private between you and them - affiliates can track their performance and earnings but cannot access individual customer details or contact information. The only exception is when an affiliate has a direct business relationship with a customer outside of your affiliate program. Even then, they still won't see purchase details or account activity through the Affonso platform. --- **Need more information about privacy and security?** Contact our team to learn more about how we protect your customer data. --- ## How do I customize my referral tracking parameters? Learn how to configure and customize the URL parameters affiliates use for tracking their referrals Affonso allows you to customize which URL parameters your affiliates can use for tracking their referrals. By default, all five standard parameters are enabled, but you can choose which ones to make available and set a default parameter that appears pre-selected in your affiliate portal. ## Available tracking parameters Affonso supports five standard referral tracking parameters: - `?atp=` - Affonso Tracking Parameter (default) - `?via=` - Common alternative parameter - `?affonso=` - Branded parameter - `?aff=` - Short form of "affiliate" - `?ref=` - Common abbreviation for "referral" All enabled parameters work identically for tracking. For example, if an affiliate's tracking ID is `john-doe`, these links would all work the same: - `https://yourdomain.com?atp=john-doe` - `https://yourdomain.com?via=john-doe` - `https://yourdomain.com?ref=john-doe` ## How to configure referral parameters 1. **Navigate to your affiliate program settings** Go to your dashboard and open your affiliate program settings. 2. **Open Referral Parameters settings** Find and click on the "Referral Parameters" section or button. 3. **Enable or disable parameters** Use the checkboxes to enable or disable specific parameters. You must keep at least one parameter enabled. 4. **Set your default parameter** Click on the "Default" badge next to your preferred parameter to set it as the default. The active default will appear with a red badge, while other enabled parameters show a gray "Default" badge that you can click. 5. **Save your changes** Click "Save Changes" to apply your configuration. ## Choosing your default parameter The default parameter is the one that will be **pre-selected** in the affiliate portal. When affiliates log in and view their tracking link, they'll see the default parameter in their link by default. Affiliates can still switch to any other enabled parameter from the dropdown in the portal, but the default parameter provides the best initial experience. ## Why enable multiple parameters? There are several benefits to enabling multiple tracking parameters: **Flexibility for affiliates** - Some affiliates may have existing tracking systems or preferences - They can choose a parameter that fits their workflow **Avoid conflicts** - If an affiliate already uses `?ref=` for another purpose, they can switch to `?via=` - Reduces friction during onboarding **Professional appearance** - The `?via=` parameter is widely recognized and trusted - The `?affonso=` parameter shows you're using a professional platform **Migration support** - If you're switching from another platform, you can enable their parameter format - Makes transition smoother for existing affiliates ## Best practices **Enable all parameters initially** - Start with all five parameters enabled to maximize flexibility - You can always disable specific parameters later if needed **Choose a clear default** - `?via=` is the most widely recognized parameter - `?atp=` is Affonso's branded parameter and works great too - Consider your brand and what affiliates might be familiar with **Communicate to affiliates** - Let your affiliates know which parameters are available - Explain that they can switch parameters in the portal if needed **Consider your existing setup** - If you're migrating from another platform, check what parameter they used - Enable that parameter to maintain compatibility with existing links ## Important notes - **All enabled parameters work identically**: There's no functional difference between parameters, only the URL format changes - **Minimum one parameter**: You must always have at least one parameter enabled - **Real-time changes**: Changes take effect immediately after saving - **Existing links remain valid**: Disabling a parameter won't break existing tracking links using that parameter, but affiliates won't be able to select it in the portal anymore ## Need help? If you have questions about configuring your referral parameters or need assistance with your affiliate program setup, please [contact our support team](mailto:hello@affonso.io). --- ## How to Disable Affiliate Links (Coupon-Only Tracking) Learn how to run a coupon-only affiliate program by disabling affiliate links while keeping coupon code tracking active Some businesses prefer to run affiliate programs using only coupon codes for tracking, without affiliate links. Affonso lets you disable affiliate links entirely while keeping coupon-based tracking fully functional. ## What Happens When You Disable Affiliate Links? When you disable affiliate links for your program: - **Affiliates will no longer see** the affiliate link section in their portal and dashboard - **Coupon codes remain fully functional** and visible to affiliates - **Existing affiliate links** will stop appearing in the UI (though technically they still track if someone has the URL) - **Affiliates can only promote** using their coupon codes This simplifies the affiliate experience when you only want to track conversions through coupons. ## When Should You Disable Affiliate Links? Consider disabling affiliate links if: - You run a **coupon-only affiliate program** (e.g., influencer discount codes) - You want to **simplify the affiliate experience** by offering only one tracking method - Your checkout process is **optimized for coupon codes** rather than URL parameters - You want to **prevent link-based promotion** and focus on coupon sharing ## How to Disable Affiliate Links 1. Navigate to **Settings → Affiliate Program** 2. Scroll to the **"Tracking Settings"** section 3. Find the **"Affiliate Links"** toggle switch 4. Click the toggle to **disable** affiliate links 5. Click **"Save Changes"** at the bottom of the page That's it! Your affiliates will immediately stop seeing affiliate links in their portal and dashboard. ## Can I Re-enable Affiliate Links Later? Yes, absolutely! You can toggle affiliate links back on at any time by following the same steps. When you re-enable them, affiliates will immediately see their referral links again. ## What If I Use Both Links and Coupons? If you want to offer both tracking methods to your affiliates, simply keep the **"Affiliate Links"** toggle enabled (this is the default). Affiliates will see both: - Their unique referral link with tracking parameters - Their coupon code (if you've set up program coupons or self-service coupons) This gives affiliates flexibility in how they promote your products. ## Important Notes - **Coupon tracking is independent**: Disabling links does not affect coupon code tracking in any way - **No data is lost**: Existing referral data and commissions remain intact - **No affiliate notification**: Affiliates are not automatically notified when you disable links - you may want to communicate this change to them - **Technical links still work**: While the UI hides the links, if an affiliate already shared a link URL, it will technically still track (though we recommend communicating the change) --- **Need help setting up a coupon-only program?** Contact our support team for guidance on configuring your affiliate program for coupon-based tracking. --- ## First-Touch vs. Last-Touch Attribution in Affiliate Tracking Understanding which affiliate gets credit when customers click multiple affiliate links before converting Attribution determines which affiliate gets credit for a conversion when a customer clicks multiple affiliate links before purchasing. Understanding this helps you set proper expectations with your affiliates and choose the right tracking approach for your business. ## How Attribution Models Work **First-Touch Attribution:** The first affiliate who brought the customer gets all credit, even if they later clicked other affiliate links. This rewards affiliates for initiating interest and works well for longer sales cycles. **Last-Touch Attribution:** The most recent affiliate before conversion gets credit, regardless of who referred first. This focuses on the final action that drove the purchase and works well for immediate conversions and promotions. ## What Affonso Uses Affonso currently uses **last-touch attribution** by default for all programs. When a customer clicks multiple affiliate links, the most recent affiliate receives the commission. **Example:** Customer visits via Affiliate A, then later returns via Affiliate B and purchases → Affiliate B gets the commission. ## Can I Change Attribution Models? Currently, attribution logic is not customizable in Affonso - all programs use last-touch attribution. We're considering adding attribution model options based on user feedback. If you'd like to see customizable attribution models, you can [vote for this feature request](https://affonso.featurebase.app/p/custom-attribution-choose-between-first-touch-and-last-touch) to help us prioritize it. --- **Have questions about your attribution setup?** Contact our support team for clarification on how tracking works for your specific program. --- ## How do I change my tracking parameter? Learn how to change your affiliate tracking ID in the Affonso portal Your tracking parameter (also called tracking ID) is the unique identifier that appears in your affiliate links, like `?via=yourname`. You can change it at any time through the affiliate portal. ## Steps to change your tracking parameter 1. **Log in to your affiliate portal** Access the affiliate portal through the link provided by the program you're promoting. 2. **Find the Advanced Settings** Below your affiliate link, click on **Advanced Settings** to expand the options. 3. **Edit your tracking ID** Click the pencil icon (✏️) next to your current tracking ID to enter edit mode. 4. **Enter your new tracking ID** Type your desired tracking ID. It can contain letters, numbers, and hyphens (a-z, A-Z, 0-9, -). 5. **Confirm the change** Click the checkmark (✓) to save. You'll see a confirmation popup warning you that: - Your old tracking ID will no longer work - You'll need to update all your existing links 6. **Update your links** After confirming, make sure to update all places where you've shared your affiliate link with the new tracking parameter. ## Important notes - **Old links stop working**: Once you change your tracking ID, any links using the old ID will no longer track your referrals. - **Allowed characters**: Your tracking ID can contain letters, numbers, and hyphens. Hyphens cannot be at the start, end, or consecutive. - **Minimum length**: Your tracking ID must be at least 4 characters long. - **Must be unique**: The tracking ID must be unique within the program. ## Alternative: Use sub-parameters instead If you want to track different campaigns or traffic sources without changing your main tracking ID, consider using [sub-parameters](/help/for-affiliates/sub-parameters) instead. Sub-parameters let you add extra tracking information to your links: - `?via=yourname&sub1=youtube` for YouTube traffic - `?via=yourname&sub1=twitter&sub2=promo` for Twitter promotions This way, you keep one consistent tracking ID while still getting detailed insights into where your conversions come from. --- ## How to Export Your Affiliate Data Your Data. Your Control. Exporting from Affonso At Affonso, transparency isn't just a buzzword. We understand that your data is crucial for your business, and you should have full control over it - whether you stay with us or decide to move on. ## Complete Data Export Service While we hope Affonso continues to be your platform of choice, we respect your right to make the best decision for your business. If you need to export your data, we'll ensure you get everything you need in a format that works for you: - **Complete affiliate database** - **All referral records** - **Payment history** - **Commission structures** - **Performance metrics** ## How to Request Your Export Simply reach out to our team at [silvestro@affonso.io](mailto:silvestro@affonso.io), and we'll prepare a comprehensive export of your data. We'll work with you to: - **Determine the best format for your needs** - **Include all relevant data fields** - **Help with understanding the exported data structure** - **Assist with migration questions if needed** No hidden processes, no unnecessary delays - just straightforward access to your business data when you need it. ## Our Promise Your success matters more than keeping you locked into any platform. That's why we make data export simple and comprehensive, ensuring you can make informed decisions about your affiliate program's future. ## Before You Go We value every customer and would love to understand if there's something we could improve. If you're considering switching platforms, let's talk first - maybe there's a solution we haven't explored yet. We are always open to feedback and ready to find ways to better serve your needs. --- **Ready to export your data?** [Contact us at silvestro@affonso.io →](mailto:silvestro@affonso.io?subject=Data%20Export%20Request) --- ## How to integrate Affonso with next-safe-action? Learn how to use Affonso affiliate tracking with next-safe-action Server Actions in Next.js. [next-safe-action](https://next-safe-action.dev/) is a popular library for type-safe Server Actions in Next.js. Here's how to integrate Affonso affiliate tracking with your Server Actions. ## Basic Server Action Integration First, make sure the Affonso tracking script is [installed in your Next.js](http://localhost:3000/help/installation-guides/frameworks/nextjs-integration) app. Then use the `affonso_referral` cookie in your Server Actions: ```typescript 'use server'; import { z } from 'zod'; import { cookies } from 'next/headers'; import { actionClient } from './safe-action'; const checkoutSchema = z.object({ email: z.string().email(), priceId: z.string(), }); export const createCheckoutAction = actionClient .inputSchema(checkoutSchema) .action(async ({ parsedInput: { email, priceId } }) => { // Extract affiliate referral cookie const cookieStore = await cookies(); // Next.js 15+ // const cookieStore = cookies(); // Next.js 13-14 const affiliateReferral = cookieStore.get('affonso_referral')?.value; // Create Stripe checkout session with affiliate data const session = await stripe.checkout.sessions.create({ customer_email: email, line_items: [{ price: priceId, quantity: 1 }], mode: 'subscription', success_url: `${process.env.NEXT_PUBLIC_APP_URL}/success`, cancel_url: `${process.env.NEXT_PUBLIC_APP_URL}/cancel`, // Pass affiliate referral as metadata metadata: affiliateReferral ? { affonso_referral: affiliateReferral } : {}, }); return { checkoutUrl: session.url }; }); ``` ## Using Middleware for Automatic Cookie Extraction You can create a middleware that automatically extracts the affiliate referral: ```typescript import { createSafeActionClient } from 'next-safe-action'; import { cookies } from 'next/headers'; export const actionClientWithAffonso = createSafeActionClient({ // Handle server errors handleServerError(e) { console.error('Action error:', e.message); return 'Something went wrong'; }, }).use(async ({ next }) => { // Extract affiliate referral in middleware const cookieStore = await cookies(); // Next.js 15+ const affiliateReferral = cookieStore.get('affonso_referral')?.value; // Pass to action context return next({ ctx: { affiliateReferral, }, }); }); ``` Then use it in your actions: ```typescript export const createCheckoutAction = actionClientWithAffonso .inputSchema(checkoutSchema) .action( async ({ parsedInput: { email, priceId }, ctx: { affiliateReferral } }) => { // affiliateReferral is now available in context const session = await stripe.checkout.sessions.create({ customer_email: email, line_items: [{ price: priceId, quantity: 1 }], mode: 'subscription', success_url: `${process.env.NEXT_PUBLIC_APP_URL}/success`, cancel_url: `${process.env.NEXT_PUBLIC_APP_URL}/cancel`, metadata: affiliateReferral ? { affonso_referral: affiliateReferral } : {}, }); return { checkoutUrl: session.url }; } ); ``` ## Frontend Usage Use the action in your React components: ```tsx 'use client'; import { useAction } from 'next-safe-action/hooks'; import { createCheckoutAction } from './actions'; export default function CheckoutForm() { const { execute, result, isExecuting } = useAction(createCheckoutAction); const handleSubmit = (formData: FormData) => { execute({ email: formData.get('email') as string, priceId: 'price_1234567890', }); }; return (
{result?.data?.checkoutUrl && (window.location.href = result.data.checkoutUrl)}
); } ``` ## Best Practices ### 1. Error Handling Always handle cases where the affiliate referral might not be present: ```typescript metadata: affiliateReferral ? { affonso_referral: affiliateReferral } : {}; ``` ### 2. Type Safety Define types for your context: ```typescript type ActionContext = { affiliateReferral?: string; }; export const actionClientWithAffonso = createSafeActionClient({ // ... config }); ``` ### 3. Logging Log affiliate referrals for debugging: ```typescript .use(async ({ next }) => { const affiliateReferral = cookieStore.get('affonso_referral')?.value; if (affiliateReferral) { console.log('Affiliate referral found:', affiliateReferral); } return next({ ctx: { affiliateReferral } }); }); ``` ## Multiple Payment Providers The same pattern works with other payment providers: ```typescript // Polar const session = await polar.checkouts.create({ // ... metadata: affiliateReferral ? { affonso_referral: affiliateReferral } : {}, }); // Dodo Payments const session = await dodo.checkout.create({ // ... metadata_affonso_referral: affiliateReferral, }); ``` This integration gives you the full power of next-safe-action's type safety while seamlessly passing affiliate referral data to your payment providers! 🚀 --- ## My website and app are on different domains. Will affiliate tracking still work? Discover how Affonso affiliate tracking works across multiple domains and what steps to take to ensure accurate referral attribution when your website and app are hosted separately. Yes – but the setup differs slightly depending on whether you're using subdomains or completely separate domains. To ensure proper affiliate tracking, you’ll need to install the Affonso tracking script on both your website and your app domain. ## Subdomains (e.g. yourwebsite.com → app.yourwebsite.com) If your site and app share the same root domain, tracking works out of the box. Just make sure the Affonso tracking script is installed on both the marketing site and the app: ```html ``` **Configuration:** - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. The tracking cookie (`affonso_referral`) is shared across all subdomains, so no extra work is needed. ## Different domains (e.g. yourwebsite.com → yourapp.com) Browsers do not share cookies across domains, so you'll need to pass the affiliate tracking info manually. When redirecting from your website to your app, forward the original affiliate tracking parameter (`?ref=abc123`, `?via=`, `?atp=`, etc.) in the URL. **Example redirect:** ```javascript const query = window.location.search; window.location.href = `https://yourapp.com/signup${query}`; ``` As long as the parameter is present in the URL on your app domain, Affonso will pick it up again and set the correct cookie there. **Important:** Be sure the tracking script is installed on both domains. --- ## Refer & Earn Earn growing recurring commissions with our tiered affiliate program - up to 30% recurring. Hey there! 👋 You're looking at a **performance-rewarding affiliate program** for promoting a cutting-edge affiliate marketing platform. Meta, right? Here's why promoting Affonso is your next big opportunity. ## Why This Is Different From Other Affiliate Programs Our platform helps SaaS companies launch and scale their affiliate programs. When you refer someone who needs this, you're not just earning commission - **you're connecting them with a solution that generates real revenue.** The result? Happy customers who stick around, generating recurring income for both them and you. ## Your Earning Potential: Tiered Commission Structure Our commission rates grow with your success: ### 🚀 Starter Tier (0+ Referrals) - **30% first month → 20% recurring commission** - 180-day cookie window - Monthly payouts ($100 minimum) ### 🎯 Advanced Tier (25+ Referrals) - **35% first month → 25% recurring commission** - +5% commission bonus on all sales - 240-day cookie window - Bi-weekly payouts ($50 minimum) ### 💎 Expert Tier (100+ Referrals) - **40% first month → 30% recurring commission** - +10% commission bonus on all sales - Weekly payouts (no minimum) - Dedicated account manager **Plus for all tiers:** - **💳 Flexible payments** via PayPal, Wise, or Wire transfer - **📈 Real-time tracking** and detailed analytics - **🎨 Marketing materials** and custom coupon codes ## What Makes Affonso Worth Promoting #### Performance-Based Growth System - **Your commission rates increase** as you prove your value - Better benefits unlock at each tier (faster payouts, lower minimums) - Built to reward serious affiliates who drive real results #### Built Specifically For SaaS - Designed from the ground up for SaaS businesses - Seamlessly integrates with major payment providers - Handles both one-time and recurring commissions automatically #### Multiple Programs Under One Roof - Companies can manage different products in one dashboard - Perfect for growing SaaS businesses, Solo Founders, and Indiemakers - Scales from startup to enterprise ## Your 3-Step Path to Recurring Income #### 1. **Get Approved Fast** - Sign up takes less than 60 seconds - Quick approval process - Start earning immediately #### 2. **Share Your Unique Link** - Get your personalized affiliate link - Access our proven marketing materials - Share with your network of entrepreneurs #### 3. **Earn Recurring Commissions** - **Growing commission rates** as you refer more customers - Real-time tracking and reporting - Regular payments with improving terms as you advance #### Who's Your Perfect Referral? Your network likely includes these ideal prospects: - **SaaS Companies** looking to scale through partnerships - **Digital Product Creators** wanting recurring revenue streams - **Solo Founders & Indiemakers** building subscription products - **Anyone selling subscription products** who wants growth #### The Numbers That Matter **Starting in the Starter Tier** - when you refer a customer on our $99/month plan: - **Month 1:** You earn $29.70 (30% commission) - **Month 2+:** You earn $19.80/month (20% recurring) **As you advance tiers**, your earnings grow significantly: - **Advanced Tier:** Up to $24.75/month recurring per customer - **Expert Tier:** Up to $29.70/month recurring per customer Just **10 successful referrals in Expert Tier** = **$2,970/month recurring income** ## Ready to Start Earning? Join hundreds of affiliates already earning recurring commissions by helping SaaS companies grow. **[Apply Now →](https://affonso.io/affiliate/apply)** _Questions? Reach out to our affiliate team - we're here to help you succeed._ --- ## How to Reject a Self-Referral or Invalid Affiliate Sale Block self-referrals and fraudulent activity by rejecting referrals and declining commissions to protect your affiliate program Self-referrals occur when affiliates sign up as customers and make purchases through their own referral links, which violates most program terms. Affonso gives you complete control to identify, block, and manage these situations to protect your program integrity. ## How to Handle Self-Referrals ### Step 1: Reject the Referral Rejecting the referral prevents all future purchases from that customer from being tracked as valid referrals. 1. Navigate to your [Referrals](https://affonso.io/app/referrals) dashboard 2. Find the suspicious referral in the list 3. Click the **"⋯"** dropdown on the right 4. Select **"Change Status"** 5. Choose **"Reject"** from the status options 6. Confirm the change ### Step 2: Decline the Commission After rejecting the referral, you need to decline the associated sale to prevent commission payout. 1. Click on the rejected referral to open the details drawer 2. Scroll down to the **Sales table** section 3. Locate the sale linked to the referral 4. Click the **"⋯"** dropdown next to the sale 5. Select **"Change Status"** 6. Choose **"Declined"** This removes the commission from your pending payouts and ensures the affiliate won't receive payment for the fraudulent sale. ### Step 3: Remove the Affiliate (Optional) If the affiliate hasn't generated any legitimate referrals and you want to terminate the partnership completely: 1. Go to your [Affiliates](https://affonso.io/app/affiliates) dashboard 2. Find the affiliate in the list 3. Click the **"⋯"** dropdown 4. Choose **"Reject Partnership"** 5. Confirm the action This permanently ends the partnership and prevents any future tracking or rewards through their referral link. ## What Happens When You Reject a Self-Referral When you reject a referral, the status changes to REJECTED in your dashboard. All future purchases from that customer will be automatically blocked from generating commissions. The declined commission is removed from pending payouts and won't be included in any future payment calculations. If you remove the affiliate entirely, their referral link becomes inactive and any visitor using it will not be tracked or attributed to your program. ## Best Practices for Preventing Self-Referrals Monitor new referrals regularly, especially from newly joined affiliates, to catch suspicious activity early. Look for matching email addresses, IP addresses, or similar customer information between the affiliate and referred customer. Set clear program terms that explicitly prohibit self-referrals and communicate these rules during affiliate onboarding. Consider implementing a manual approval process for high-value sales or new affiliates until they establish a track record of legitimate referrals. Use the [referral dashboard](https://affonso.io/app/referrals) filters to quickly identify patterns that might indicate abuse. --- **Need help managing fraudulent referrals?** Contact support for guidance on protecting your affiliate program from abuse. --- ## Postback URLs Get real-time GET notifications when referrals, sales, or commissions happen. Postback URLs send a GET request to your URL when events happen — perfect for ad networks, trackers, or automations. ## Quick Setup 1. Go to **Settings → Postback** in your affiliate portal 2. Click **Add Postback URL** 3. Pick your events, enter your URL with placeholders, save ## Events | Event | Fires when… | |-------|------------| | `referral.lead` | New referral tracked | | `referral.converted` | Referral becomes a customer | | `sale.created` | Payment recorded | | `commission.created` | Commission calculated | ## Placeholders Insert these into your URL — they get replaced with real values: | Placeholder | Example | |-------------|---------| | `{event_type}` | `commission.created` | | `{referral_id}` | `ref_abc123` | | `{tracking_id}` | `john` | | `{affiliate_id}` | `aff_xyz789` | | `{status}` | `CONVERTED` | | `{sale_amount}` | `99.00` | | `{sale_currency}` | `USD` | | `{commission_amount}` | `12.50` | | `{commission_currency}` | `USD` | | `{transaction_id}` | `txn_123` | | `{timestamp}` | `2026-03-05T10:30:45Z` | ## Example **Template:** ``` https://tracker.com/pb?event={event_type}&rid={referral_id}&amount={commission_amount} ``` **What gets sent:** ``` https://tracker.com/pb?event=commission.created&rid=ref_abc123&amount=12.50 ``` ## Testing Click **Send Test** on any saved postback URL. You'll see the HTTP status code and response time instantly. ## Limits - Max **5** postback URLs - **HTTPS** only - **10s** timeout per request - Up to **3 delivery attempts** with exponential backoff (5 s → 30 s) --- ## How to Use Sub-Parameters for Advanced Link Tracking Learn how to use sub-parameters to track multiple campaigns, traffic sources, and content with a single affiliate link. As an affiliate, you might want to track where your referrals come from - whether it's from YouTube, Twitter, a blog post, or an email campaign. Sub-parameters let you do exactly that without creating multiple affiliate links. ## What Are Sub-Parameters? Sub-parameters (sub1 through sub5) are additional tracking fields you can add to your affiliate link. They allow you to organize and analyze your traffic sources with a single tracking ID. Instead of creating separate links for each campaign, you can use one link with different sub-parameters: ``` https://example.com?via=john&sub1=youtube&sub2=review-video https://example.com?via=john&sub1=twitter&sub2=promo-post https://example.com?via=john&sub1=newsletter&sub2=weekly-digest ``` All these links use the same tracking ID (`john`), but you can see exactly which source brought each referral. ## Why Use Sub-Parameters Instead of Multiple Links? ### One Link, Unlimited Tracking With sub-parameters, you don't need to request new tracking IDs for each campaign. Your main affiliate link stays the same - you just add parameters to track different sources. ### Better Organization Sub-parameters help you organize your tracking by: - **sub1**: Traffic source (youtube, twitter, blog, email, etc.) - **sub2**: Campaign or content type (review, tutorial, promo, etc.) - **sub3**: Additional details (video-id, post-date, etc.) - **sub4 & sub5**: Any other tracking dimensions you need ### Detailed Analytics When you check your affiliate dashboard, you'll see exactly which sub-parameter combinations are driving the most conversions. This helps you focus your efforts on what works best. ## How to Set Up Sub-Parameters ### In Your Affiliate Portal 1. Go to your affiliate dashboard 2. Click on **Advanced Settings** below your affiliate link 3. Select the parameter you want to use (sub1, sub2, etc.) 4. Enter a value for that parameter 5. Copy your customized link ### Manually Adding Parameters You can also add sub-parameters directly to your link: **Basic link:** ``` https://example.com?via=yourtrackingid ``` **With one sub-parameter:** ``` https://example.com?via=yourtrackingid&sub1=youtube ``` **With multiple sub-parameters:** ``` https://example.com?via=yourtrackingid&sub1=youtube&sub2=tutorial&sub3=jan2026 ``` ## Best Practices ### Keep Values Short and Consistent Use lowercase, short identifiers: - `youtube` instead of `YouTube_Channel_123` - `twitter` instead of `X-formerly-Twitter` - `blog` instead of `my-personal-blog` ### Create a Naming Convention Decide on a consistent system. For example: | Parameter | Purpose | Example Values | |-----------|---------|----------------| | sub1 | Platform | youtube, twitter, blog, email | | sub2 | Content Type | review, tutorial, comparison | | sub3 | Campaign | summer2026, launch, holiday | ### Track What Matters You don't need to use all five parameters. Start with sub1 for your traffic source, and add more only if you need additional detail. ## Example Use Cases ### Content Creator ``` ?via=sarah&sub1=youtube&sub2=review ?via=sarah&sub1=youtube&sub2=tutorial ?via=sarah&sub1=instagram&sub2=story ``` ### Blogger ``` ?via=mike&sub1=blog&sub2=comparison-post ?via=mike&sub1=blog&sub2=sidebar-banner ?via=mike&sub1=newsletter&sub2=weekly ``` ### Social Media Marketer ``` ?via=emma&sub1=twitter&sub2=thread ?via=emma&sub1=linkedin&sub2=article ?via=emma&sub1=reddit&sub2=comment ``` ## Viewing Your Sub-Parameter Data Your affiliate dashboard shows analytics broken down by sub-parameters, so you can see: - Which traffic sources drive the most clicks - Which content types convert best - Which campaigns are performing well Use this data to double down on your best-performing strategies. --- **Pro Tip:** Instead of changing your tracking ID when you want to track a new campaign, use sub-parameters. It keeps your main link consistent while giving you all the tracking flexibility you need. --- ## Getting Started with the Affiliate Discovery Agent Set up your AI-powered affiliate discovery agent to automatically find potential partners across YouTube, Instagram, websites, and more platforms. # Start Finding Affiliates with AI The Affiliate Discovery Agent uses AI to automatically search for potential affiliate partners across multiple platforms. Instead of manually browsing through social media and websites, let our agent find relevant creators and influencers for you. ## How the Agent Works Set up your agent once, then run targeted search campaigns to discover affiliates. The AI analyzes content creators across platforms like YouTube, Instagram, Reddit, LinkedIn, and regular websites to find people discussing topics related to your product or mentioning your competitors. ### Configure Your Agent Add relevant keywords that describe your product and list your main competitors. The agent uses these to identify potential partners who already create content in your space. **Keywords examples:** "project management", "productivity software", "team collaboration" **Competitors:** List 2-3 main competitors by name and website ### Choose Your Platforms Select which platforms to search across: - **Websites** - Bloggers and content sites - **YouTube** - Video creators and reviewers - **Instagram** - Influencers and creators - **Reddit** - Community discussions - **LinkedIn** - Professional content creators - **TikTok, Facebook, X, Medium, Substack** - Additional platforms ### Start Your Search Create a search campaign by selecting your platforms. The agent will run in the background and email you when results are ready (typically 3-15 minutes). ## Understanding Credits Each search campaign consumes credits based on your keywords, competitors, and selected platforms. Here's how credits work: **Credit Calculation:** (Number of Keywords + Number of Competitors) × Number of Platforms = Total Credits **Plan Allocations:** - **Revenue Pass & Trial:** 5 credits per month - **Launch:** 15 credits/month (180 credits/year for yearly plans) - **Growth:** 35 credits/month (420 credits/year for yearly plans) - **Elite:** 50 credits/month (600 credits/year for yearly plans) **Example:** 3 keywords + 2 competitors across 4 platforms = 20 credits total ## Maximizing Your Results Start with your most important keywords and platforms. You can always run additional campaigns as you get more credits. Focus on platforms where your target audience is most active. The agent presents results with contact information, audience insights, and relevance scores to help you prioritize your outreach efforts. --- **Ready to find your first affiliates?** Go to [Affiliate Discovery Agent](https://affonso.io/app/discovery) and configure your search parameters. --- ## Connect your payment provider Learn how to connect your payment provider to automatically track purchases and calculate affiliate commissions. # Connect Your Payment Provider Connect your payment provider to automatically track purchases and calculate commissions. ## How to Connect 1. Go to **Program** → **Connect** in your [dashboard](https://affonso.io/app/affiliate-program/connect) 2. Select your payment provider (e.g Stripe, Paddle, Polar, Creem, Dodo Payments etc.) 3. Follow the setup instructions Once connected, Affonso will be notified by your payment provider about all payments, refunds, and subscription cancellations. We can then check if they came from affiliates and calculate commissions accordingly. ## Next Step After connecting your payment provider, you need to integrate Affonso tracking into your application and checkout flow to pass referral data to your payment provider. **→ [Pass referral data to your payment provider](/help/getting-started/payment-provider-guide)** --- ## The Affiliate Marketplace Get discovered by more affiliates by listing your program in the Affonso marketplace. Listing your program in the Affonso Marketplace puts it in front of every affiliate across Affonso, helping you win qualified partners without cold outreach. ## How the Marketplace Works - The marketplace is off by default; only listed programs are visible. - When you list your program, your affiliates see a **Marketplace** link in their left navigation. They can discover other programs, apply, and jump into those affiliate portals. - Affiliates from other listed programs can find your program, apply, and enter your portal just as easily—unlocking cross-promotion between programs. - Your listing shows your logo, tagline, and category so affiliates instantly understand what you offer. ## How to List Your Program 1. Open [Marketplace Settings](https://affonso.io/app/marketplace). 2. Toggle **Listed in Marketplace** on. 3. Add a clear **Tagline** that explains why affiliates should promote you. 4. Select the **Category** that best matches your business. 5. Review your **Brand Logo** (PNG/JPEG, max 2MB) to ensure it looks good in the directory. 6. Click **Save Changes**. Your affiliates will immediately see the Marketplace entry in their portal, and new partners from other programs can start applying to yours. --- Ready to get discovered by more affiliates? Turn on your marketplace listing today. --- ## Get Started in 3 Steps Set up Affonso on your website in minutes and start tracking affiliate conversions to grow your business. # Get Your Affiliate Program Running in Minutes Set up Affonso on your website in minutes to track affiliate conversions and grow your business through partnerships. Here's how to get started in 3 simple steps: ### Add Tracking Script to Your Website Paste our tracking script into your website's `` tag to start monitoring affiliate traffic and conversions: ```html ``` **Configuration:** - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist - Using Google Tag Manager? If you manage your scripts through GTM, [follow our GTM integration guide](/help/installation-guides/tag-managers/google-tag-manager-integration) instead. > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ### Installation Guides Choose your framework or platform for detailed installation instructions: #### Frameworks & Libraries
Next.js {' '} React {' '} Vue.js {' '} Nuxt.js {' '} Svelte {' '} Astro {' '} Django {' '} Laravel
#### Website Builders & No-Code
WordPress {' '} Framer Webflow {' '} Bubble {' '} Squarespace {' '} Wix {' '} Ghost {' '} Carrd {' '} Unbounce {' '} Duda {' '} Super.so {' '} Drupal {' '} TYPO3 Weebly
#### AI Code Generators
v0.dev {' '} Bolt.new {' '} Lovable Replit
#### Tag Managers
Google Tag Manager
**Don't see your platform?** Affonso works with any website that runs JavaScript. Need help? [Email us at hello@affonso.io](mailto:hello@affonso.io)
### Track User Signups (Optional but Recommended) While this step is optional, we **strongly recommend** implementing signup tracking for better insights and affiliate management. ### Implementation Add this code after your user registration logic: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: 'user@email.com', // optional externalUserId: 'user_123', // optional name: 'John Doe' // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. Use `externalUserId` to track users by your internal user ID instead of (or in addition to) their email address. **Why track signups?** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance [**📖 Learn more about signup tracking →**](/help/installation-guides/overview/signup-tracking) ### Connect Your Payment Provider [Connect your payment provider](/help/getting-started/connect-payment-provider) to automatically track purchases and calculate commissions.
--- ## Next Steps Once your basic setup is complete, take your affiliate program to the next level: - Testing Your Integration - Custom Branding - Go-live checklist - Invite Affiliates - Upload Marketing Materials - Create Affiliate Discovery Agent - Affiliate Program Best Practices --- **Need help?** [Contact our support team](mailto:hello@affonso.io) - we typically respond within 2 hours during business hours. --- ## Payment Provider Guide Learn how to pass affiliate tracking data to your payment provider for accurate commission calculation. After [connecting your payment provider](/help/getting-started/connect-payment-provider), you need to pass affiliate tracking data from your application to your payment system. This ensures that when customers make purchases, Affonso can properly attribute commissions to the right affiliates. ## Choose Your Payment Provider
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('paddle-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Paddle
### Stripe
**Checkout API** **Payment Links** {' '} **Buy Button** **Pricing Tables**
### Polar
**Checkout API** **Payment Links**
### Creem
**Checkout API** **Payment Links**
### Dodo Payments
**Checkout API** **Payment Links**
### Paddle
**Billing Checkout**
## Need Help? Don't see your payment provider or integration method? [Contact us at hello@affonso.io](mailto:hello@affonso.io) and we'll help you set it up. --- ## Bolt.new Integration Learn how to integrate Affonso affiliate tracking into applications generated by Bolt.new. Bolt.new is an AI-powered web development tool that generates complete applications from text prompts. To add Affonso tracking to your existing project, use the interactive system below. ## Choose Your Integration Method Select your payment provider, then choose your integration method to copy the AI prompt:
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('paddle-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Paddle
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
### Stripe Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-buy-button.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Buy Button
Buy Button
Embedded purchase buttons
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-pricing-tables.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Pricing Tables
Pricing Tables
Subscription pricing tables
### Polar Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
### Paddle Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/references/paddle-billing-checkout.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Billing Checkout
Billing Checkout
Paddle Billing checkout
### Dodo Payments Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
API-based checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Shareable payment URLs
### Creem Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Programmatic checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Bolt.new.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Simple payment links
## How to Use 1. **Select your payment provider** by clicking on the logo above 2. **Choose your integration method** by clicking on the method image 3. **Complete AI prompt is automatically copied** to your clipboard 4. **Paste directly in Bolt.new** - no additional editing needed! 5. **Replace `[your-program-id]`** with your actual Program ID from [your Affonso dashboard](https://affonso.io/app/affiliate-program/connect) --- ## Cursor Integration Learn how to integrate Affonso affiliate tracking into applications built with Cursor AI code editor. Cursor is an AI-powered code editor that helps you build applications faster. To add Affonso tracking to your existing Cursor project, use the interactive system below. ## Choose Your Integration Method Select your payment provider, then choose your integration method to copy the AI prompt:
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('paddle-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Paddle
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
### Stripe Integration Methods
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-buy-button.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Buy Button
Buy Button
Embedded purchase buttons
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-pricing-tables.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Pricing Tables
Pricing Tables
Subscription pricing tables
### Polar Integration Methods
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
### Paddle Integration Methods
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/references/paddle-billing-checkout.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Billing Checkout
Billing Checkout
Paddle Billing checkout
### Dodo Payments Integration Methods
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
API-based checkout
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Shareable payment URLs
### Creem Integration Methods
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Programmatic checkout
{ const prompt = 'Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'; const encodedPrompt = encodeURIComponent(prompt); const cursorUrl = `cursor://anysphere.cursor-deeplink/prompt?text=${encodedPrompt}`; window.open(cursorUrl, '_blank'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Simple payment links
## How to Use 1. **Select your payment provider** by clicking on the logo above 2. **Choose your integration method** by clicking on the method image 3. **Cursor will open automatically** with the prompt ready to use 4. **Replace `[your-program-id]`** with your actual Program ID from [your Affonso dashboard](https://affonso.io/app/affiliate-program/connect) --- ## Lovable Integration Learn how to integrate Affonso affiliate tracking into applications generated by Lovable. Lovable generates full-stack web applications with modern frameworks. To add Affonso tracking to your existing Lovable project, use the interactive system below. ## Choose Your Integration Method Select your payment provider, then choose your integration method to copy the AI prompt:
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('paddle-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Paddle
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
### Stripe Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-buy-button.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Buy Button
Buy Button
Embedded purchase buttons
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-pricing-tables.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Pricing Tables
Pricing Tables
Subscription pricing tables
### Polar Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
### Paddle Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/references/paddle-billing-checkout.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Billing Checkout
Billing Checkout
Paddle Billing checkout
### Dodo Payments Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
API-based checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Shareable payment URLs
### Creem Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Programmatic checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Lovable.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Simple payment links
## How to Use 1. **Select your payment provider** by clicking on the logo above 2. **Choose your integration method** by clicking on the method image 3. **Complete AI prompt is automatically copied** to your clipboard 4. **Paste directly in Lovable** - no additional editing needed! 5. **Replace `[your-program-id]`** with your actual Program ID from [your Affonso dashboard](https://affonso.io/app/affiliate-program/connect) --- ## Replit Integration Learn how to integrate Affonso affiliate tracking into applications built and deployed on Replit. Replit allows you to build and deploy web applications directly in the browser using various frameworks and languages. To add Affonso tracking to your existing Replit project, use the interactive system below. ## Choose Your Integration Method Select your payment provider, then choose your integration method to copy the AI prompt:
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('paddle-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Paddle
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
### Stripe Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-buy-button.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Buy Button
Buy Button
Embedded purchase buttons
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-pricing-tables.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Pricing Tables
Pricing Tables
Subscription pricing tables
### Polar Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
### Paddle Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/references/paddle-billing-checkout.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Billing Checkout
Billing Checkout
Paddle Billing checkout
### Dodo Payments Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
API-based checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Shareable payment URLs
### Creem Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Programmatic checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into Replit AI.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Simple payment links
## How to Use 1. **Select your payment provider** by clicking on the logo above 2. **Choose your integration method** by clicking on the method image 3. **Complete AI prompt is automatically copied** to your clipboard 4. **Paste directly in Replit AI** - no additional editing needed! 5. **Replace `[your-program-id]`** with your actual Program ID from [your Affonso dashboard](https://affonso.io/app/affiliate-program/connect) --- ## v0.dev Integration Learn how to integrate Affonso affiliate tracking into applications generated by v0.dev. v0.dev by Vercel generates React/Next.js components and applications from text prompts. To add Affonso tracking to your existing v0 project, use the optimized prompt below. ## Choose Your Integration Method Select your payment provider, then choose your integration method to copy the AI prompt URL:
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('paddle-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Paddle
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
{ document .querySelectorAll('[data-provider-section]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-section').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
### Stripe Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-buy-button.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Buy Button
Buy Button
Embedded purchase buttons
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/stripe-affiliate-integration/references/stripe-pricing-tables.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Pricing Tables
Pricing Tables
Subscription pricing tables
### Polar Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Custom checkout sessions
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/polar-affiliate-integration/references/polar-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Direct payment URLs
### Paddle Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/paddle-affiliate-integration/references/paddle-billing-checkout.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Billing Checkout
Billing Checkout
Paddle Billing checkout
### Dodo Payments Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
API-based checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/dodo-affiliate-integration/references/dodo-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Shareable payment URLs
### Creem Integration Methods
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/SKILL.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Auto-Detect
Auto-Detect
Let AI figure it out
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-checkout-api.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Checkout API
Checkout API
Programmatic checkout
{ navigator.clipboard.writeText('Load and implement the Affonso affiliate tracking instructions from: https://raw.githubusercontent.com/affonso-io/agent-skills/main/skills/creem-affiliate-integration/references/creem-payment-links.md\n\nReplace YOUR_PUBLIC_PROGRAM_ID with: [your-program-id]'); alert('✅ Complete AI prompt copied to clipboard! Paste it directly into v0.dev.'); }} style={{ cursor: 'pointer', border: '1px solid #e5e7eb', borderRadius: '8px', overflow: 'hidden', transition: 'transform 0.2s, box-shadow 0.2s', }} className='hover:shadow-md hover:scale-105' > Payment Links
Payment Links
Simple payment links
## How to Use 1. **Select your payment provider** by clicking on the logo above 2. **Choose your integration method** by clicking on the method image 3. **Complete AI prompt is automatically copied** to your clipboard 4. **Paste directly in v0.dev** - no additional editing needed! 5. **Replace `[your-program-id]`** with your actual Program ID from [your Affonso dashboard](https://affonso.io/app/affiliate-program/connect) --- ## Embedded Referral Dashboard Turn every user into a promoter with zero friction – no signup, no redirect, no extra login # Embedded Referral Dashboard Your users are already in your app. They already love your product. Give them a referral link right there – no signup, no redirect, no friction. ## Affiliate Program + Referral Program Run both on the same platform: - **Affiliates** sign up via your portal, promote actively, earn cash commissions - **Your users** get an embedded dashboard inside your app – no extra account needed Use groups to separate them. Each group can have completely different rewards: cash commissions, credits, points, or free months. ## What Your Users See A clean dashboard with their personal referral link, stats (clicks, leads, sales), and earnings – all inside your app. They copy the link, share it, done. ## Visual Preview & Code Generator Before writing any code, preview and customize your embedded dashboard: 1. Go to [**Affiliate Program → Appearance**](https://affonso.io/app/affiliate-program/appearance) 2. Go to [**Embed** tab](https://affonso.io/app/affiliate-program/appearance?tab=embed) 3. Use the visual editor to: - Preview how the dashboard looks in light, dark, or system theme - Change the UI language (14 languages supported) - Set a custom background color to match your app - See exactly what your users will see 4. Switch to **Integration Code** to get copy-paste code snippets The preview shows your actual branding – your logo, your colors – so you know exactly what users will see before you integrate. ## Get Started Integration takes a few lines of code. Your server generates a token, your frontend renders an iframe. → [Full integration guide](https://docs.affonso.io/api/embedded-dashboard) → [API reference](https://docs.affonso.io/api/endpoint/embed/create-token) --- ## Astro Integration Learn how to integrate Affonso affiliate tracking into your Astro application. Astro's component-based architecture and island-first approach make it ideal for adding tracking scripts through layout components that work efficiently with static generation and partial hydration. ## Add tracking script to your Astro app Astro's recommended approach is to create a layout component that includes your tracking script, which can then be reused across all your pages for consistent tracking. 1. Create or open your main layout at `src/layouts/Layout.astro` 2. Add the tracking script in the `` section 3. Use this layout across your pages: ```astro --- export interface Props { title: string; } const { title } = Astro.props; --- {title} ``` **Configuration:** - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent='true'` to the Script component above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Alternative:** Use [Astro's environment variables](https://docs.astro.build/en/guides/environment-variables/) with the `PUBLIC_` prefix to manage your Program ID dynamically. ## Testing 1. Start your Astro dev server: `npm run dev` 2. Visit `localhost:4321?atp=test` (or your configured port) 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Build and deploy: `npm run build` 5. Verify tracking in your Affonso dashboard **Note:** Astro's island architecture means client scripts run after page load, which works well with Affonso's deferred loading. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Django Integration Learn how to integrate Affonso affiliate tracking into your Django application. Django's template inheritance system makes it easy to add tracking scripts globally across your entire application using a base template that all pages extend. ## Add tracking script to your Django app Django's recommended approach is to add the tracking script to your base template, which serves as the foundation for all other templates in your application. 1. Open or create your base template at `templates/base.html` 2. Add the tracking script in the `` section 3. Ensure all your page templates extend this base template: ```html {% block title %}Your Site{% endblock %} {% block content %} {% endblock %} ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent='true'` to the Script component above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Alternative:** Store your Program ID in [`settings.py`](https://docs.djangoproject.com/en/stable/topics/settings/) and reference it in your template using `{{ settings.AFFONSO_PROGRAM_ID }}`. ## Testing 1. Start your Django server: `python manage.py runserver` 2. Visit `localhost:8000?atp=test` 3. Check browser DevTools → **Application** → **Cookies** → `affonso_referral` 4. Deploy and verify tracking in your Affonso dashboard **Note:** Make sure your `ALLOWED_HOSTS` includes your domain when deployed. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Laravel Integration Learn how to integrate Affonso affiliate tracking into your Laravel application. # Laravel Integration Laravel's Blade templating system combined with environment configuration provides a clean and maintainable way to add tracking scripts across your entire application. ## Add tracking script to your Laravel app Laravel's best practice is to add the tracking script to your main layout template and configure your Program ID through environment variables for better security and flexibility. 1. Open your main layout file at `resources/views/layouts/app.blade.php` 2. Add the tracking script in the `` section 3. Configure your Program ID in your environment file: ```html @yield('title', config('app.name'))
@yield('content')
``` > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent='true'` to the Script component above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. [Find your Program ID →](https://affonso.io/app/affiliate-program) Create a configuration file at `config/affonso.php` and add your credentials to your `.env` file following [Laravel's configuration conventions](https://laravel.com/docs/configuration). ## Testing 1. Start your Laravel server: `php artisan serve` 2. Visit `localhost:8000?atp=test` 3. Check browser DevTools → **Application** → **Cookies** → `affonso_referral` 4. Deploy and verify tracking in your Affonso dashboard **Note:** Ensure your session configuration allows cross-domain cookies if using subdomains. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Next.js Integration Learn how to integrate Affonso affiliate tracking into your Next.js application using App Router. Next.js provides built-in Script optimization that makes it easy to add tracking scripts with optimal loading performance. ## Add tracking script to your root layout Next.js App Router allows you to add scripts globally through the root layout component for consistent tracking across all pages. 1. Open your root layout file at `app/layout.tsx` (or `app/layout.jsx`) 2. Import the [Script component](https://nextjs.org/docs/app/api-reference/components/script) from `next/script` 3. In the `` section, add your Affonso tracking script: ```tsx import Script from 'next/script'; export default function RootLayout({ children, }: { children: React.ReactNode; }) { return ( {{ APP }} ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent='true'` to the Script component above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Alternative:** Configure the script via [`nuxt.config.ts`](https://nuxt.com/docs/api/nuxt-config#head) in the `app.head.script` array or create a client-side plugin. ## Testing 1. Start your development server: `npm run dev` 2. Visit `localhost:3000?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Deploy and verify tracking in your Affonso dashboard ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## React Integration Learn how to integrate Affonso affiliate tracking into your React application with React Router. React provides flexible ways to add tracking scripts, either through the useEffect hook for dynamic loading or directly in your HTML template for immediate loading. ## Add tracking script to your React app The recommended approach is to add the script dynamically in your root component using React's useEffect hook for proper cleanup and lifecycle management. 1. Open your root component file, typically `src/App.jsx` 2. Import `useEffect` from React 3. Add the script loading logic inside useEffect: ```jsx import { useEffect } from 'react'; function App() { useEffect(() => { const script = document.createElement('script'); script.async = true; script.defer = true; script.setAttribute('data-affonso', 'YOUR_PUBLIC_PROGRAM_ID'); script.setAttribute('data-cookie_duration', 'YOUR_COOKIE_DURATION'); script.src = 'https://cdn.affonso.io/js/pixel.min.js'; document.head.appendChild(script); return () => { // Cleanup on unmount if (document.head.contains(script)) { document.head.removeChild(script); } }; }, []); return
{/* Your components */}
; } export default App; ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `script.setAttribute('data-requires-consent', 'true');` to the script creation above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Alternative:** Add the script directly to your `public/index.html` file in the `` section for immediate loading. ## Testing 1. Start your development server: `npm start` 2. Visit `localhost:3000?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Deploy and verify tracking in your Affonso dashboard ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Svelte/SvelteKit Integration Learn how to integrate Affonso affiliate tracking into your Svelte or SvelteKit application. Svelte and SvelteKit offer flexible ways to add tracking scripts, with SvelteKit providing an HTML template approach and regular Svelte using component lifecycle hooks. ## Add tracking script to your Svelte app For SvelteKit, the recommended approach is to modify your `app.html` template to include the tracking script globally across all routes. 1. Open `src/app.html` in your project 2. Add the tracking script in the `` section 3. Make sure it's before the `%sveltekit.head%` placeholder: ```html %sveltekit.head%
%sveltekit.body%
``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent='true'` to the Script component above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. [Find your Program ID →](https://affonso.io/app/affiliate-program) **For regular Svelte:** Use the [`onMount` lifecycle function](https://svelte.dev/docs/svelte#onmount) in your main `App.svelte` component to add the script dynamically. ## Testing 1. Start your development server: `npm run dev` 2. Visit `localhost:5173?atp=test` (or your dev server URL) 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Deploy and verify tracking in your Affonso dashboard ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Vue.js Integration Learn how to integrate Affonso affiliate tracking into your Vue.js application. Vue.js provides multiple integration points for adding tracking scripts, with the main entry file being the most common approach for global script loading. ## Add tracking script to your Vue app The recommended method is to add the script in your main entry file where you create your Vue application instance, ensuring it loads before your app initializes. 1. Open your main entry file, typically `src/main.js` 2. Add the script creation logic before creating your Vue app 3. Mount your app as usual: ```javascript import { createApp } from 'vue'; import App from './App.vue'; // Add Affonso tracking script const script = document.createElement('script'); script.async = true; script.defer = true; script.setAttribute('data-affonso', 'YOUR_PUBLIC_PROGRAM_ID'); script.setAttribute('data-cookie_duration', 'YOUR_COOKIE_DURATION'); script.src = 'https://cdn.affonso.io/js/pixel.min.js'; document.head.appendChild(script); createApp(App).mount('#app'); ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `script.setAttribute('data-requires-consent', 'true');` to the script creation above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Alternative:** Use the [`mounted()` lifecycle hook](https://vuejs.org/guide/essentials/lifecycle.html) in your root `App.vue` component or add the script directly to your `index.html` file. ## Testing 1. Start your development server: `npm run serve` or `npm run dev` 2. Visit `localhost:8080?atp=test` (or your dev server URL) 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Deploy and verify tracking in your Affonso dashboard ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## GDPR & Cookie Consent Integration Learn how to integrate Affonso's tracking script with cookie consent software to comply with GDPR and privacy regulations. # GDPR & Cookie Consent Integration If you're using cookie consent software or need to comply with GDPR regulations, Affonso's tracking script supports a special consent mode that respects user privacy choices. ## How Consent Mode Works When consent mode is enabled, the tracking script operates in two phases: **Before Consent (Privacy-First):** - Detects affiliate parameters in the URL - **No cookies are set** until user gives consent - **No personal data collected** (no IP address, browser info, location data, etc.) **After Consent:** - Enables full affiliate tracking with user permission - Sets the `affonso_referral` cookie for attribution - Enables discount codes and enhanced functionality ## Installation Add the consent-enabled tracking script to your website's `` section: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist **This is the same script as always - just with one additional attribute:** - `data-requires-consent="true"` enables privacy-first mode - The script will wait for `window.affonsoConsentGranted()` before setting cookies - Without this attribute, the script works in standard mode (sets cookies immediately) ## Integration with Cookie Consent Software ### Popular Cookie Consent Platforms The consent mode works with all major cookie consent platforms: - **Cookiebot** - **OneTrust** - **CookieYes** - **Iubenda** - **Klaro** - **Cookie Notice** - **Termly** - **Custom consent solutions** ### Step-by-Step Integration 1. **Install the consent-enabled script** in your `` tag (see code above) 2. **Add consent callback** to your consent platform configuration 3. **Handle URL parameter propagation** with custom code (see below) 4. **Test the integration** to ensure proper functionality ### Consent Platform Configuration **Important:** Only add the consent callback function - NOT the entire script again. When a user accepts cookies, your consent software should call: ```javascript // Add this to your consent platform configuration // DO NOT add the script tag again - it's already in your window.affonsoConsentGranted(); ``` **This function must be called:** - ✅ **When user first accepts cookies** (on any page) - ✅ **On every page load** if user has already given consent - ✅ **After page navigation** if consent was previously granted **Example integrations:** #### Cookiebot ```javascript // Add this to your consent platform - NOT a new script tag window.addEventListener('CookiebotOnAccept', function() { if (Cookiebot.consent.marketing) { window.affonsoConsentGranted(); } }); // Also check on page load if consent was already given document.addEventListener('DOMContentLoaded', function() { if (typeof Cookiebot !== 'undefined' && Cookiebot.consent.marketing) { window.affonsoConsentGranted(); } }); ``` #### OneTrust ```javascript // Add this to your consent platform - NOT a new script tag function OptanonWrapper() { if (OnetrustActiveGroups.includes('C0004')) { // Marketing cookies window.affonsoConsentGranted(); } } // Also check on page load document.addEventListener('DOMContentLoaded', function() { if (typeof OnetrustActiveGroups !== 'undefined' && OnetrustActiveGroups.includes('C0004')) { window.affonsoConsentGranted(); } }); ``` #### CookieYes ```javascript // Add this to your consent platform - NOT a new script tag document.addEventListener('cookieyes_consent_update', function(event) { if (event.detail.accepted.includes('advertisement')) { window.affonsoConsentGranted(); } }); // Also check on page load if consent exists document.addEventListener('DOMContentLoaded', function() { // Check if marketing cookies are already accepted if (localStorage.getItem('cookieyes-consent')) { const consent = JSON.parse(localStorage.getItem('cookieyes-consent')); if (consent.advertisement) { window.affonsoConsentGranted(); } } }); ``` #### Custom Consent Solution ```javascript // When user clicks "Accept All" or "Accept Marketing" function handleConsentAccepted() { // Your consent logic here... // Then notify Affonso window.affonsoConsentGranted(); } // Also check on every page load if consent was already given document.addEventListener('DOMContentLoaded', function() { if (hasUserGivenConsent()) { // Your consent check function window.affonsoConsentGranted(); } }); ``` ## How URL Propagation Works **Important:** URL parameter propagation does NOT happen automatically. You need to implement this with custom code. In consent mode, the `affonso_id` parameter is added to the URL for session continuity: **What happens automatically:** ``` yoursite.com?ref=affiliate123 ↓ (Affonso script adds affonso_id) yoursite.com?ref=affiliate123&affonso_id=cm123abc456 ``` **What you need to implement:** ``` yoursite.com/pricing?affonso_id=cm123abc456 ← You must preserve this yoursite.com/features?affonso_id=cm123abc456 ← when users navigate ``` **Why this matters:** If the `affonso_id` parameter is lost during navigation, attribution won't work when the user gives consent later. ### URL Propagation Implementation You need to ensure the `affonso_id` parameter is preserved when users navigate between pages. This requires custom code on your website. **General approach:** 1. Check if `affonso_id` exists in the current URL 2. Add it to all internal navigation links 3. Preserve it during form submissions and redirects **Implementation depends on your website technology:** - Static websites: Update all `` tags with JavaScript - Single Page Applications: Handle in your router - Server-side frameworks: Add parameter to link generation ## Testing Your Integration ### 1. Test Without Consent 1. Visit your site with a test parameter: `yoursite.com?atp=test` 2. Check that **no `affonso_referral` cookie** is set 3. Verify that `affonso_id` is added to the URL for session continuity 4. Check your Affonso dashboard - you should see a minimal entry **without personal data** ### 2. Test With Consent 1. On the same page, accept cookies through your consent banner 2. Check that `affonso_referral` cookie **is now set** 3. In your Affonso dashboard, the entry should now show **complete attribution data** (IP, location, browser) ### 3. Test Navigation 1. Navigate to another page on your site 2. Verify that `affonso_id` parameter is preserved in the URL 3. If you give consent on a subpage, it should still work correctly ## Troubleshooting ### Cookie Not Set After Consent - Ensure `window.affonsoConsentGranted()` is called **after** the user accepts - Check browser DevTools Console for any JavaScript errors - Verify the consent function is called only **once per page** ### Tracking Lost Between Pages - Ensure `affonso_id` parameter is preserved in navigation for proper attribution - Check that your SPA router doesn't strip query parameters - Verify internal links include the `affonso_id` parameter when in consent mode ### Affiliate Attribution Not Working - Test the complete flow: affiliate link → consent → purchase - Check that both the script and consent integration are functioning properly - Verify your payment provider integration includes the referral data ## API Reference ### Available Functions ```javascript // Check if consent is required window.Affonso.isConsentRequired(); // returns true/false // Get current referral ID (works in both modes) window.Affonso.getReferralId(); // returns ID or null // Manually trigger consent (if needed) window.affonsoConsentGranted(); // returns Promise ## Legal Compliance This consent mode helps you comply with: - **GDPR** (General Data Protection Regulation) - **CCPA** (California Consumer Privacy Act) - **ePrivacy Directive** (Cookie Law) - **LGPD** (Brazilian General Data Protection Law) **Important:** This technical implementation helps with compliance, but you should consult with legal experts to ensure your complete setup meets all regulatory requirements. ## Next Steps After setting up consent mode: - [Connect your payment provider](/help/getting-started/connect-payment-provider) - [Test your complete affiliate flow](/help/getting-started/testing-guide) - [Set up affiliate recruitment](/help/getting-started/recruit-affiliates) **Need help?** Contact us at [hello@affonso.io](mailto:hello@affonso.io) --- ## How Affiliate Tracking Works Learn how Affonso's tracking script captures and remembers affiliate referrals to ensure accurate commission attribution. # How Affiliate Tracking Works The tracking script is the foundation of Affonso's affiliate system. It captures referral data when visitors arrive from affiliate links and ensures accurate commission attribution when they make purchases. ## Why the Script Is Essential When someone clicks an affiliate link, we need to remember where they came from. The tracking script: - Detects affiliate parameters in URLs - Generates a unique tracking identifier - Stores it securely in a cookie (`affonso_referral`) - Maintains attribution through the entire customer journey ## Installation Add this script to the `` section of every page where users might land, sign up, or make purchases: ```html ``` **Configuration:** - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ## Where to Install The script should be added to: - Your main website / marketing pages (`yourdomain.com`) - Your application (`app.yourdomain.com`) - Any subdomains users visit during their journey The script automatically syncs tracking data across all subdomains. ## How It Works Once installed, the script: 1. **Detects affiliate parameters** like `?ref=xyz` or `?via=abc` 2. **Creates a unique tracking ID** (not the raw parameter value) 3. **Stores it as `affonso_referral` cookie** 4. **Exposes it via `window.affonso_referral`** This unique ID is what you'll pass to payment providers for commission tracking. ## Critical Implementation Note **Never use URL parameters directly.** Always use the cookie value we generate. **Correct approach:** ```javascript const referralId = window.affonso_referral; ``` **Incorrect approach:** ```javascript const referralId = getUrlParam('via'); // Unreliable and inaccurate ``` We generate unique internal IDs for security and accurate attribution. URL parameters can be manipulated or lost during navigation. ## Testing Your Integration To verify the script is working: 1. Visit your site with our test affiliate parameter: `yoursite.com?atp=test` 2. Check your Affonso dashboard - you should see a new click registered 3. In your browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 4. The cookie value should be a unique ID like `cmdhq6ayf05013mlrezo8yud9` If you see both a click in your Affonso dashboard and the cookie, your tracking is working correctly. ## Next Steps After installing the tracking script: - [Connect your payment provider](/help/getting-started/connect-payment-provider) - [Pass referral data to your payment provider](/help/getting-started/payment-provider-guide) **Need help?** Contact us at [hello@affonso.io](mailto:hello@affonso.io) --- ## Signup & Lead Tracking Track user signups to attribute leads to affiliates. Support for email, external user ID, and privacy-first tracking without personal data. # Signup & Lead Tracking Signup tracking lets you attribute user registrations to affiliates. When a referred visitor signs up, the system creates a referral with status "LEAD" — visible in both your and your affiliate's dashboard. ## Why Track Signups? - **Attribution** — See which affiliates drive the most registrations - **Conversion rates** — Calculate click-to-signup and signup-to-customer ratios - **Pay Per Lead** — Reward affiliates per signup, not just per sale ([learn more](/help/faq/pay-per-lead)) - **Funnel insights** — Optimize your funnel based on affiliate performance ## Basic Usage Call `Affonso.signup()` after a successful user registration: ```javascript // Pass the user's email window.Affonso.signup('user@email.com'); ``` That's it. The system checks for an existing `affonso_referral` cookie and creates the lead if the visitor came through an affiliate link. If there's no cookie, the call is silently ignored — so you can safely call it for every signup. ## Advanced Usage: Options Object Instead of a plain email string, you can pass an options object for more control: ```javascript window.Affonso.signup({ email: 'user@email.com', // optional externalUserId: 'user_123', // optional name: 'John Doe' // optional }); ``` ### Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `email` | string | At least one of `email` or `externalUserId` | The user's email address | | `externalUserId` | string | At least one of `email` or `externalUserId` | Your internal user or customer ID | | `name` | string | No | The user's display name | ### When to Use `externalUserId` Use `externalUserId` when you want to: - **Track without email** — Privacy-first setups where you don't want to share email addresses with the affiliate system - **Match users across systems** — Pass your internal user ID so webhook events from your payment provider can be matched back to referrals via `metadata.userId` - **Use both** — Pass email *and* externalUserId for maximum flexibility ```javascript // Privacy-first: track by internal ID only window.Affonso.signup({ externalUserId: 'usr_abc123' }); // Full tracking: email + internal ID + name window.Affonso.signup({ email: user.email, externalUserId: user.id, name: user.name }); ``` ## Payment Provider Metadata When using `externalUserId`, pass the same ID in your payment provider's metadata as `userId` so Affonso can match webhook events to referrals: ```javascript // Example: Stripe Checkout const session = await stripe.checkout.sessions.create({ // ... your config metadata: { userId: 'usr_abc123' // same value as externalUserId } }); ``` This works with all supported payment providers (Stripe, Polar, Creem, Dodo, Paddle). Pass `userId` in the customer or subscription metadata field. ## Privacy Controls Program owners can control what data is stored via the affiliate program settings: - **Email tracking** — Toggle whether email addresses are stored on referrals - **Name tracking** — Toggle whether customer names are stored on referrals When email tracking is disabled, referrals are matched and tracked using `externalUserId` instead. This is ideal for privacy-conscious setups or compliance with strict data protection requirements. Configure these settings in your [Affiliate Program settings](https://affonso.io/app/affiliate-program) under "Privacy Controls". ## Best Practices - **Call for every signup** — The system only creates a lead when a valid referral cookie exists - **Place after registration** — Call after the user has successfully registered, not before - **Use double opt-in timing** — If you require email verification, call `signup()` after verification for higher-quality leads - **Non-blocking** — The function is asynchronous and won't affect your site's performance - **Deduplication** — Duplicate calls are handled automatically ## How It Works 1. Visitor clicks an affiliate link → tracking script stores `affonso_referral` cookie 2. Visitor signs up → you call `window.Affonso.signup()` 3. The function sends the signup data along with the cookie value to Affonso 4. Affonso creates a referral with status **"LEAD"** 5. The referral appears in both your and your affiliate's dashboard 6. When the user makes a purchase later, the referral status updates to **"CUSTOMER"** ## Testing 1. Visit your site with `?atp=test` to simulate an affiliate click 2. Complete your registration flow 3. Check your [Affonso dashboard](https://affonso.io/app) for the new lead 4. Verify the referral shows the correct data (email, name, or external ID) ## Troubleshooting ### Signup Not Tracking - Verify the [tracking script](/help/installation-guides/overview/how-affiliate-tracking-works) is installed on the signup page - Ensure the visitor came through an affiliate link (check for `affonso_referral` cookie) - Check the browser console for errors - Confirm you're passing at least an `email` or `externalUserId` ### Referral Shows No Email - If you're using `externalUserId` only, this is expected behavior - Check your Privacy Controls — email tracking may be disabled in your program settings --- **Need help?** [Contact our support team](mailto:hello@affonso.io) - we typically respond within 2 hours during business hours. --- ## Google Tag Manager Integration Learn how to integrate Affonso affiliate tracking using Google Tag Manager (GTM). Google Tag Manager (GTM) is a popular tag management system that allows you to deploy tracking scripts without modifying your website's code directly. This guide shows you how to add Affonso tracking through GTM. ## Add Affonso Tracking via GTM ### Step 1: Create a New Tag 1. Log in to your [Google Tag Manager account](https://tagmanager.google.com/) 2. Select your container 3. Click **Tags** in the left sidebar 4. Click **New** to create a new tag ### Step 2: Configure the Tag 1. Click **Tag Configuration** 2. Select **Custom HTML** as the tag type 3. Paste the following code: ```html ``` 4. Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) 5. Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist (e.g., `30` for 30 days) > **Why this script format?** GTM requires dynamically created scripts instead of static script tags. This code creates the Affonso tracking script programmatically, which works correctly within GTM's Custom HTML tag. ### Step 3: Set the Trigger 1. Click **Triggering** 2. Select **All Pages** to fire the tag on every page 3. Alternatively, create a custom trigger if you only want tracking on specific pages ### Step 4: Save and Publish 1. Click **Save** to save the tag 2. Click **Submit** in the top right corner 3. Add a version name (e.g., "Added Affonso affiliate tracking") 4. Click **Publish** ## GDPR/Cookie Consent Integration If you need GDPR compliance, modify the script to include the consent attribute: ```html ``` Then [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) to set up consent-based tracking. ### Using GTM's Consent Mode If you're using GTM's built-in Consent Mode, you can configure the trigger to only fire after consent is granted: 1. Go to **Triggers** and create a new trigger 2. Select **Consent Initialization - All Pages** or create a custom trigger based on your consent management platform 3. Assign this trigger to your Affonso tag instead of "All Pages" ## Testing Your Integration ### Using GTM Preview Mode 1. In GTM, click **Preview** in the top right corner 2. Enter your website URL 3. Navigate through your site and verify the Affonso tag fires 4. Check that the tag appears under "Tags Fired" on each page ### Verifying Affonso Tracking 1. Visit your website with `?atp=test` appended to the URL 2. Open browser DevTools (F12) 3. Go to **Console** and type `window.affonso_referral` 4. You should see the test referral data 5. Verify the tracking appears in your [Affonso dashboard](https://affonso.io/app/affiliate-program) ## Troubleshooting ### Tag Not Firing - Check that the trigger is set correctly (All Pages) - Verify the container is published, not just saved - Use GTM Preview mode to debug ### Script Errors - Ensure all quotes are straight quotes (`'` or `"`), not curly quotes - Check that YOUR_PUBLIC_PROGRAM_ID is replaced with your actual program ID - Verify there are no extra spaces or line breaks in the code ### Tracking Not Working - Check browser console for JavaScript errors - Verify the Affonso script is loading in the Network tab - Ensure your domain is correctly configured in Affonso dashboard ## Next Steps Once installed, connect your payment provider to track conversions and calculate commissions automatically. [Connect your payment provider](/help/getting-started/payment-provider-guide) --- ## Bubble Integration Learn how to integrate Affonso affiliate tracking into your Bubble no-code application. Bubble's no-code platform allows custom JavaScript integration through HTML elements and SEO settings, making it perfect for adding affiliate tracking to your SaaS application. ## Add tracking script to your Bubble app The recommended approach is to use Bubble's SEO/meta tags settings to add the script globally across all pages of your application. 1. Open your Bubble editor 2. Go to **Settings → SEO/Metatags** 3. In the **Script/meta tags in header** section, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 4. Click **Save** 5. Deploy your app for the changes to take effect **Alternative:** Add an **HTML element** to specific pages and paste the script code for page-specific tracking. For more details, see [Bubble's guide](https://forum.bubble.io/t/how-to-easily-add-custom-html-javascript-to-your-bubble-app/361118). ## Testing 1. Deploy your Bubble app after adding the script 2. Visit your live app with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Custom scripts only work on the live/deployed version, not in Bubble's preview mode. ## Multi-Domain Setup If you're using Bubble for your complete SaaS application, the tracking script will handle everything in one place. However, if you have a separate marketing site (e.g., `yourcompany.com`) while your Bubble app runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between domains. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Carrd Integration Learn how to integrate Affonso affiliate tracking into your Carrd landing page. Carrd's embed feature allows you to add custom HTML and JavaScript to your landing pages, making it perfect for adding affiliate tracking to your simple, effective marketing pages. ## Add tracking script to your Carrd site Carrd's recommended approach is to use an Embed element to add custom code, which ensures proper loading and compatibility with Carrd's responsive design system. 1. Open your Carrd site in the editor 2. Click the **+ (Add Element)** button 3. Select **Embed** from the element types 4. Choose **Code** as the embed type 5. Paste your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 6. Set the embed to **Head** if available, otherwise use **Body** 7. Click **Done** 8. Publish your site **Alternative:** Use the site-wide HTML Head injection feature (Pro plan required) by going to Site Settings → HTML Head. For more details, see [Carrd's official embed documentation](https://carrd.co/docs/building/embedding-custom-code). ## Testing 1. Publish your Carrd site after adding the embed 2. Visit your published site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** The embed feature requires a Carrd Pro subscription. ## Multi-Domain Setup If you're using Carrd for landing pages (e.g., `landing.yourcompany.com`) while your main application runs elsewhere (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between domains. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Drupal Integration Learn how to integrate Affonso affiliate tracking into your Drupal website. Drupal's flexible theme system and custom code capabilities make it easy to add tracking scripts globally across your entire website, ideal for enterprise organizations using Drupal for their web presence. ## Add tracking script to your Drupal site The recommended approach is to add the script to your active theme's template files, ensuring the script loads on all pages consistently. 1. Access your Drupal site files via FTP or file manager 2. Navigate to your active theme folder (usually `/themes/custom/your-theme/` or `/themes/your-theme/`) 3. Open your main template file (typically `page.html.twig` or `html.html.twig`) 4. Add the tracking script in the `` section: ```html {{ head }} ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 5. Clear Drupal's cache (Admin → Configuration → Performance → Clear all caches) **Alternative:** Use a custom module or the "Insert Flickers" module to add the script without modifying theme files. For more details, see [Drupal's theming documentation](https://www.drupal.org/docs/theming-drupal) and [template file guide](https://www.drupal.org/docs/theming-drupal/twig-in-drupal/twig-template-naming-conventions). ## Testing 1. Clear your Drupal cache after adding the script 2. Visit your Drupal site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Changes to template files require cache clearing to take effect. ## Multi-Domain Setup If you're using Drupal only for your main website (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Duda Integration Learn how to integrate Affonso affiliate tracking into your Duda website. Duda's custom code capabilities make it straightforward to add tracking scripts globally across your website, perfect for agencies and businesses using Duda's responsive website builder. ## Add tracking script to your Duda site Duda's recommended approach is to use the site-wide custom code settings, which ensures the tracking script loads on all pages of your website. 1. Open your Duda website in the **editor** 2. Click on **Settings** in the left sidebar 3. Go to **Custom Code** 4. In the **Site-wide HTML Head** section, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 5. Click **Save** 6. Publish your site for the changes to take effect **Alternative:** Use page-specific custom code by going to Page Settings → Custom Code for individual pages, though site-wide injection is preferred. For more details, see [Duda's custom code documentation](https://support.duda.co/hc/en-us/articles/26519250445079-Custom-Code). ## Testing 1. Publish your Duda site after adding the custom code 2. Visit your published site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Custom code features may require a higher-tier Duda plan. ## Multi-Domain Setup If you're using Duda only for your marketing site (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Framer Integration Learn how to integrate Affonso with your Framer website for automatic affiliate tracking through payment links. Framer creates Single Page Applications (SPAs) that require special handling for affiliate tracking. This guide shows you how to integrate Affonso with your Framer site to automatically track affiliate referrals through payment links. ## Prerequisites - Active Affonso affiliate program - Payment links from your payment provider - Access to your Framer project's custom code settings ## Step 1: Add Main Tracking Script In Framer → **Site Settings** → **General** → **Custom Code** Add this in the **End of `` tag** section: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ## Step 2: Add Payment Link Enhancement Choose your payment provider below to get the Framer-specific enhancement script:
{ document .querySelectorAll('[data-provider-code]') .forEach((el) => (el.style.display = 'none')); document.getElementById('stripe-code').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Stripe
{ document .querySelectorAll('[data-provider-code]') .forEach((el) => (el.style.display = 'none')); document.getElementById('polar-code').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Polar
{ document .querySelectorAll('[data-provider-code]') .forEach((el) => (el.style.display = 'none')); document.getElementById('creem-code').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Creem
{ document .querySelectorAll('[data-provider-code]') .forEach((el) => (el.style.display = 'none')); document.getElementById('dodo-code').style.display = 'block'; }} style={{ cursor: 'pointer', margin: 0, padding: 0, lineHeight: 0, }} > Dodo Payments
### Stripe Payment Links - Framer Script Add this to **End of `` tag** in your Framer custom code: ```html ``` ### Stripe Pricing Tables - Framer Script If you're using Stripe Pricing Tables, add this additional script: ```html ``` ### Stripe Buy Button - Framer Script If you're using Stripe Buy Buttons, add this additional script: ```html ```
### Polar Payment Links - Framer Script Add this to **End of `` tag** in your Framer custom code: ```html ```
### Creem Payment Links - Framer Script Add this to **End of `` tag** in your Framer custom code: ```html ```
### Dodo Payments Links - Framer Script Add this to **End of `` tag** in your Framer custom code: ```html ```
## Step 3: Publish Your Site Click **Publish** in Framer - your payment links will now automatically include affiliate tracking! ## Why Framer Needs Special Handling Framer creates SPAs where: - Scripts load once when site first loads - Page navigation doesn't reload scripts - Our enhancement includes `MutationObserver` for instant SPA support ## Testing 1. Create a test affiliate link in your Affonso dashboard 2. Visit your Framer site using that affiliate link 3. Navigate to a page with payment links 4. Right-click a payment link → **Copy link address** 5. Check that the link includes tracking: - **Stripe**: `client_reference_id=...` - **Polar**: `reference_id=...` - **Creem**: `metadata[affonso_referral]=...` - **Dodo**: `metadata_affonso_referral=...` **Browser Check:** Press F12 → Console → type `window.affonso_referral` (should show your referral ID) ## Performance Impact - **Without affiliate traffic**: Zero CPU usage (completely idle) - **With affiliate traffic**: ~0.1% CPU usage (event-driven only) - **Enhancement**: Happens instantly when new content loads --- ## Ghost Integration Complete guide to integrating Affonso with Ghost, including basic tracking and advanced member signup attribution Ghost's code injection feature makes it simple to add tracking scripts globally across your entire website or blog, perfect for SaaS companies using Ghost for their content marketing and knowledge base. ## Add tracking script to your Ghost site Ghost's recommended approach is to use the site-wide code injection settings, which applies the script to all pages automatically without needing to modify themes. 1. Open your Ghost Admin panel 2. Go to **Settings → Code injection** 3. In the **Site Header** section, add your tracking script: ```html ``` > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 4. Click **Save** The script will automatically appear on all pages and start tracking affiliate referrals. ## Track Member Signups (Optional) If you're using Ghost's built-in membership features and want to track when referred visitors become members, add this enhanced tracking code to your **Site Header**: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist **Note:** This enhanced tracking automatically notifies affiliates when their referrals sign up for memberships. For more details, see [Ghost's official code injection documentation](https://ghost.org/tutorials/use-code-injection-in-ghost/). ## Testing 1. Visit your Ghost site with `?atp=test` 2. Check browser DevTools → **Console** → type `window.affonso_referral` 3. Verify the script appears in your page source 4. For enhanced tracking: Test a member signup and check your Affonso dashboard 5. Check tracking in your Affonso dashboard **Note:** Code injection changes apply immediately without needing to republish. ## Multi-Domain Setup If you're using Ghost only for your blog/content (e.g., `blog.yourcompany.com`) while your main application runs elsewhere (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between domains. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Squarespace Integration Learn how to integrate Affonso affiliate tracking into your Squarespace website. Squarespace's built-in code injection feature makes it simple to add tracking scripts across your entire website, ideal for SaaS companies using Squarespace for their marketing presence. ## Add tracking script to your Squarespace site Squarespace's recommended approach is to use the site-wide code injection settings, which applies the script to every page automatically. 1. Open your Squarespace site dashboard 2. Go to **Settings → Developer Tools → Code Injection** 3. In the **Header** section, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 4. Click **Save** 5. The script will automatically appear on all pages **Alternative:** Use page-specific code injection by going to **Pages → [Specific Page] → Settings → Advanced → Page Header Code Injection** for targeted tracking. For more details, see [Squarespace's official code injection guide](https://support.squarespace.com/hc/en-us/articles/205815928-Adding-custom-code-to-your-site). ## Testing 1. Visit your Squarespace site with `?atp=test` 2. Check browser DevTools → **Console** → type `window.affonso_referral` 3. Verify the script appears in your page source 4. Check tracking in your Affonso dashboard **Note:** Code injection is available on Business plans and higher. ## Multi-Domain Setup If you're using Squarespace only for your marketing site (e.g., `yourcompany.com`) and your SaaS app runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Super.so Integration Learn how to integrate Affonso affiliate tracking into your Super.so website powered by Notion. Super.so transforms your Notion pages into fast, customizable websites, and provides custom code injection capabilities that make it easy to add affiliate tracking across your entire site. ## Add tracking script to your Super.so site Super.so's recommended approach is to use the custom code feature in your site settings, which ensures the script loads on all pages generated from your Notion content. 1. Open your Super.so dashboard 2. Go to your site's **Settings** 3. Navigate to **Code** section 4. In the **Head HTML** field, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 5. Click **Save** 6. Your site will automatically update with the tracking script **Alternative:** Use page-specific custom code by adding HTML blocks to individual Notion pages, though site-wide injection is preferred for consistent tracking. For more details, see [Super.so's help documentation](https://docs.super.so/custom-code). ## Testing 1. Visit your Super.so site with `?atp=test` 2. Check browser DevTools → **Console** → type `window.affonso_referral` 3. Verify the script appears in your page source 4. Check tracking in your Affonso dashboard **Note:** Custom code changes may take a few minutes to propagate across your site. ## Multi-Domain Setup If you're using Super.so for your documentation or blog (e.g., `docs.yourcompany.com`) while your main SaaS app runs elsewhere (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between domains. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## TYPO3 Integration Learn how to integrate Affonso affiliate tracking into your TYPO3 website. TYPO3's powerful template system and TypoScript configuration make it flexible to add tracking scripts globally across your enterprise website, perfect for organizations using TYPO3 for their web presence. ## Add tracking script to your TYPO3 site The recommended approach is to add the script via TypoScript in your site configuration, ensuring the script loads on all pages consistently across your TYPO3 installation. 1. Access your TYPO3 backend 2. Go to **Template** module 3. Select your root page template 4. Go to **Setup** field 5. Add the following TypoScript code: ``` page { headerData.999 = TEXT headerData.999.value ( ) } ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 6. Click **Save** 7. Clear all caches (Admin Tools → Flush TYPO3 and PHP Cache) **Alternative:** Add the script directly to your Fluid template files in the `` section, or use the "Additional Header Data" field in page properties. For more details, see [TYPO3's TypoScript documentation](https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/) and [template configuration guide](https://docs.typo3.org/m/typo3/tutorial-typoscript-in-45-minutes/main/en-us/). ## Testing 1. Clear TYPO3 cache after adding the TypoScript 2. Visit your TYPO3 site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** TypoScript changes require cache clearing to take effect. ## Multi-Domain Setup If you're using TYPO3 only for your main website (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Unbounce Integration Learn how to integrate Affonso affiliate tracking into your Unbounce landing pages. Unbounce's JavaScript management feature allows you to add custom tracking scripts to your landing pages, perfect for SaaS companies using Unbounce for high-converting marketing campaigns. ## Add tracking script to your Unbounce page Unbounce's recommended approach is to use the JavaScript section in the page editor, which ensures the script loads properly with Unbounce's optimized page loading system. 1. Open your landing page in the **Unbounce Builder** 2. Click on **Javascripts** in the sidebar (or **Page Properties → Javascripts**) 3. Click **Add Javascript** 4. Set the placement to **Head** 5. Add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 6. Click **Save** 7. Publish your landing page **Alternative:** Use the "Before Body End Tag" placement if you prefer the script to load after page content, or add it at the domain level for multiple pages. For more details, see [Unbounce's official JavaScript guide](https://documentation.unbounce.com/hc/en-us/articles/360035250491-Adding-Your-Custom-Scripts-Using-Script-Manager). ## Testing 1. Publish your Unbounce landing page 2. Visit your published page with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Changes to JavaScript require republishing the page to take effect. ## Multi-Domain Setup If you're using Unbounce for landing pages (e.g., `campaign.yourcompany.com`) while your main application runs elsewhere (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between domains. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Webflow Integration Learn how to integrate Affonso affiliate tracking into your Webflow website. Webflow's custom code feature makes it straightforward to add tracking scripts globally across your entire website, perfect for SaaS marketing sites that need comprehensive affiliate tracking. ## Add tracking script to your Webflow site Webflow's recommended approach is to use the site-wide custom code settings, which ensures the tracking script loads on every page of your website. 1. Open your Webflow project dashboard 2. Go to **Site Settings → Custom Code** 3. In the **Head Code** section, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 4. Click **Save Changes** 5. Publish your site for the changes to take effect **Alternative:** Add the script to individual pages via **Page Settings → Custom Code** if you only need tracking on specific pages. For more details, see [Webflow's official custom code documentation](https://help.webflow.com/hc/en-us/articles/33961332238611-Custom-code-embed). ## Testing 1. Publish your Webflow site after adding the code 2. Visit your published site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Custom code only works on published sites, not in Webflow's preview mode. ## Multi-Domain Setup If you're using Webflow only for your marketing site (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Weebly Integration Learn how to integrate Affonso affiliate tracking into your Weebly website. Weebly's HTML/CSS editor provides custom code injection capabilities that make it simple to add tracking scripts across your entire website, perfect for small businesses using Weebly's drag-and-drop builder. ## Add tracking script to your Weebly site Weebly's recommended approach is to use the Header Code feature in the site settings, which applies the script to all pages automatically. 1. Log into your Weebly account and open your site editor 2. Click **Settings** in the top menu 3. Go to **SEO** tab 4. In the **Header Code** section, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 5. Click **Save** 6. Publish your site for the changes to take effect **Alternative:** Use the Embed Code element on individual pages if you only need tracking on specific pages. For more details, see [Weebly's code editor guide](https://www.weebly.com/websites/code-editor). ## Testing 1. Publish your Weebly site after adding the header code 2. Visit your published site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Header code injection is available on Weebly paid plans. ## Multi-Domain Setup If you're using Weebly only for your marketing site (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Wix Integration Learn how to integrate Affonso affiliate tracking into your Wix website. Wix provides custom code injection capabilities that make it easy to add tracking scripts to your entire website, perfect for SaaS companies using Wix for their marketing presence. ## Add tracking script to your Wix site Wix's recommended approach is to use the site-wide custom code settings through the Wix Editor, ensuring the script loads on all pages of your website. 1. Open your Wix site in the **Wix Editor** 2. Click **Settings** in the top menu 3. Go to **Custom Code** in the settings menu 4. Click **+ Add Custom Code** 5. Set the code to load in **All Pages** and place in **Head** 6. Add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. 7. Click **Apply** 8. Publish your site for the changes to take effect **Alternative:** Add the script to specific pages only by selecting individual pages instead of "All Pages". For more details, see [Wix's official custom code guide](https://support.wix.com/en/article/wix-editor-embedding-custom-code-on-your-site). ## Testing 1. Publish your Wix site after adding the custom code 2. Visit your published site with `?atp=test` 3. Check browser DevTools → **Console** → type `window.affonso_referral` 4. Verify tracking in your Affonso dashboard **Note:** Custom code requires a Wix Premium plan and only works on the published site, not in the editor preview. ## Multi-Domain Setup If you're using Wix only for your marketing site (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## WordPress Integration Learn how to integrate Affonso affiliate tracking into your WordPress website. WordPress offers multiple ways to add tracking scripts, from theme customization to plugins, making it flexible for different user comfort levels and site setups. ## Add tracking script to your WordPress site The recommended approach is to use a plugin for safe, code-free installation that survives theme updates and doesn't require technical knowledge. 1. Install the [Insert Headers and Footers](https://wordpress.org/plugins/insert-headers-and-footers/) plugin 2. Go to **Settings → Insert Headers and Footers** 3. In the **Scripts in Header** section, add your tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Alternative:** Add the script via your theme's `functions.php` file using the `wp_head` action hook, or directly in your theme's `header.php` file. See [WordPress's official guide on adding code to header](https://wordpress.org/documentation/article/editing-wp-config-php/) for more advanced options. ## Testing 1. Visit your WordPress site with `?atp=test` 2. Check browser DevTools → **Console** → type `window.affonso_referral` 3. Verify the script appears in your page source 4. Deploy and verify tracking in your Affonso dashboard **Note:** If using caching plugins, clear your cache after installation. ## Multi-Domain Setup If you're using WordPress only for your marketing site (e.g., `yourcompany.com`) and your application runs on a subdomain (e.g., `app.yourcompany.com`), make sure to install the Affonso tracking script on **both domains**. Affonso works seamlessly across subdomains - the same affiliate cookie will be shared between `yourcompany.com` and `app.yourcompany.com`. See our [multi-domain setup guide](/help/faq/my-website-and-app-are-on-different-domains-will-affiliate) for more details on cross-domain tracking. ## Next Steps Once installed, you can access affiliate referral data and pass it to your payment provider. [Connect your payment provider →](/help/getting-started/payment-provider-guide) --- ## Creem Checkout API Learn how to pass Affonso referral data to Creem Checkout sessions for proper commission tracking. # Creem Checkout API Integration
💡 **Make sure your [Creem account](/help/getting-started/connect-payment-provider) is connected.**
Pass the `affonso_referral` cookie as metadata to your Creem Checkout session: ```typescript import { cookies } from 'next/headers'; import axios from 'axios'; // Get Affonso referral cookie (Next.js 15+) // For Next.js 13-14: const cookieStore = cookies(); (without await) const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Create checkout session with Creem const response = await axios.post( 'https://api.creem.io/v1/checkouts', { request_id: 'your-request-id', product_id: 'prod_your-product-id', // ... your existing config metadata: { affonso_referral: affonsoReferral, // Add this line }, }, { headers: { 'x-api-key': process.env.CREEM_API_KEY, }, } ); ``` ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Trigger your checkout flow locally 4. Check your **server logs/terminal** - the Creem session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 5. If the metadata appears in your logs, you're all set! **Note:** Use 100% discount codes for live testing without payments, or test locally with server logs - Creem test mode won't appear in Affonso. --- ## Creem Payment Links Learn how to automatically add Affonso referral tracking to your existing Creem Payment Links. # Creem Payment Links Integration
💡 **Make sure your [Creem account](/help/getting-started/connect-payment-provider) is connected.**
If you're using Creem Payment Links (URLs starting with `creem.io/payment`), add this enhancement script to automatically include referral tracking. ## Installation Place this script in your website's `` section, right after the main Affonso tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ## How It Works 1. **Visitor clicks affiliate link** → Affonso sets tracking cookie 2. **Enhancement script runs** → Finds all Payment Links on your page 3. **Adds referral tracking** → Appends `metadata[affonso_referral]` to each link 4. **Customer purchases** → Creem receives tracking data → Affiliate gets credited ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Inspect your Payment Links - URLs should now include `metadata[affonso_referral]=` 4. Make a test purchase to verify tracking in your Affonso dashboard **Note:** Use 100% discount codes for live testing without payments - Creem test mode won't appear in Affonso. --- ## Custom Payment Provider API Integrate Affonso with any payment provider using our REST API to track commissions manually. # Custom Payment Provider Integration This guide shows you how to integrate Affonso with **any payment provider** (Lemon Squeezy, Gumroad, Razorpay, Paystack, or others) using our REST API. This approach gives you full control over commission tracking.
**Note:** With custom integrations, you calculate and submit commission amounts manually. Commission rates configured in Affonso settings won't be applied automatically.
## Prerequisites Before starting, make sure you have: 1. **Affonso tracking script installed** on your website 2. **API key** from your [Affonso dashboard](https://affonso.io/app/settings/api-keys) --- ## Integration Overview ### Install Tracking Script Add the Affonso tracking script to your website's `` tag: ```html ``` **Configuration:** - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist This script creates a cookie named `affonso_referral` containing the referral ID when a visitor arrives via an affiliate link. [**View framework-specific installation guides →**](/help/getting-started/overview) ### Track User Signups (Optional but Recommended) Add signup tracking after user registration: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: userEmail, // optional externalUserId: userId, // optional name: userName // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. Use `externalUserId` to track users by your internal user ID instead of (or in addition to) their email address. **Why track signups?** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance ### Pass Referral ID to Your Payment Provider When creating a checkout or payment, pass the `affonso_referral` cookie value to your payment provider's metadata/custom data field. **Frontend (Client-side):** ```javascript // Get referral ID from window object or cookie const referralId = window.affonso_referral; // Pass to your payment provider createCheckout({ // ... your payment config metadata: { affonso_referral: referralId } }); ``` **Backend (Server-side):** ```typescript // Node.js / Express example const referralId = req.cookies['affonso_referral'] || ''; // Pass to your payment provider's API const checkout = await paymentProvider.createCheckout({ // ... your config metadata: { affonso_referral: referralId } }); ``` #### Provider-Specific Metadata Fields | Provider | Metadata Field | |----------|---------------| | Lemon Squeezy | `custom_data` or `checkout_data.custom` | | Gumroad | `custom_fields` | | Razorpay | `notes` | | Paystack | `metadata` | | Xendit | `metadata` | | Flutterwave | `meta` | ### Handle Webhooks & Create Commissions When your payment provider sends a webhook event (e.g., `payment.successful`, `order.completed`), follow these steps: #### 4.1 Extract the Referral ID ```typescript // Example webhook handler app.post('/webhooks/payment', async (req, res) => { const event = req.body; // Extract referral ID from metadata (adjust based on your provider) const referralId = event.data.metadata?.affonso_referral; // If no referral ID, this wasn't an affiliate sale if (!referralId) { return res.json({ received: true }); } // Continue with affiliate tracking... }); ``` #### 4.2 Update the Referral Update the referral with customer information and status: ```bash curl -X PUT "https://api.affonso.io/v1/referrals/{referralId}" \ -H "Authorization: Bearer sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "email": "customer@example.com", "customer_id": "cust_123", "status": "customer", "name": "John Doe" }' ``` **Available status values:** - `lead` - Initial click, no conversion yet - `trialing` - Customer started a trial - `customer` - Paid customer - `active` - Active subscription - `canceled` - Canceled subscription - `rejected` - Rejected referral #### 4.3 Create the Commission Create a commission record with the sale and commission amounts: ```bash curl -X POST "https://api.affonso.io/v1/commissions" \ -H "Authorization: Bearer sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "referral_id": "{referralId}", "sale_amount": 99.00, "commission_amount": 19.80, "sale_amount_currency": "USD", "commission_currency": "USD", "payment_intent_id": "pi_unique_payment_id", "is_subscription": false, "sales_status": "complete" }' ``` **Important parameters:** | Parameter | Description | |-----------|-------------| | `referral_id` | The referral ID from the metadata | | `sale_amount` | Total transaction amount (not commission) | | `commission_amount` | Commission to pay the affiliate (you calculate this) | | `payment_intent_id` | Unique payment ID to prevent duplicates | | `is_subscription` | Set `true` for recurring payments | | `sales_status` | `complete`, `trialing`, `open`, `failed`, `refunded`, `partial_refunded` | ### Handle Refunds & Updates When a refund occurs, update the commission accordingly: #### Full Refund ```bash curl -X PUT "https://api.affonso.io/v1/commissions/{commissionId}" \ -H "Authorization: Bearer sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "sale_amount": 0, "commission_amount": 0, "sales_status": "refunded" }' ``` #### Partial Refund ```bash curl -X PUT "https://api.affonso.io/v1/commissions/{commissionId}" \ -H "Authorization: Bearer sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "sale_amount": 49.50, "commission_amount": 9.90, "sales_status": "partial_refunded" }' ``` --- ## Complete Code Example Here's a full webhook handler example in Node.js/Express: ```typescript import express from 'express'; const app = express(); const AFFONSO_API_KEY = process.env.AFFONSO_API_KEY; app.post('/webhooks/payment', async (req, res) => { const event = req.body; try { // Adjust this based on your payment provider's event structure if (event.type === 'payment.completed') { const referralId = event.data.metadata?.affonso_referral; if (!referralId) { return res.json({ received: true }); } const saleAmount = event.data.amount; const commissionRate = 0.20; // 20% commission const commissionAmount = saleAmount * commissionRate; // Update referral status await fetch(`https://api.affonso.io/v1/referrals/${referralId}`, { method: 'PUT', headers: { 'Authorization': `Bearer ${AFFONSO_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ email: event.data.customer_email, customer_id: event.data.customer_id, status: 'customer' }) }); // Create commission await fetch('https://api.affonso.io/v1/commissions', { method: 'POST', headers: { 'Authorization': `Bearer ${AFFONSO_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ referral_id: referralId, sale_amount: saleAmount, commission_amount: commissionAmount, sale_amount_currency: event.data.currency || 'USD', commission_currency: event.data.currency || 'USD', payment_intent_id: event.data.payment_id, sales_status: 'complete' }) }); } // Handle refunds if (event.type === 'payment.refunded') { const commissionId = event.data.metadata?.affonso_commission_id; if (commissionId) { await fetch(`https://api.affonso.io/v1/commissions/${commissionId}`, { method: 'PUT', headers: { 'Authorization': `Bearer ${AFFONSO_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ sale_amount: 0, commission_amount: 0, sales_status: 'refunded' }) }); } } res.json({ received: true }); } catch (error) { console.error('Webhook error:', error); res.status(500).json({ error: 'Webhook processing failed' }); } }); ``` --- ## Testing Your Integration 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Complete a test purchase 4. Verify in your server logs that the referral ID is present in the webhook payload 5. Check your [Affonso dashboard](https://affonso.io/app) for the new referral and commission --- ## API Reference For complete API documentation, see: - [Referrals API](https://docs.affonso.io/api/endpoint/referrals/create) - Create and update referrals - [Commissions API](https://docs.affonso.io/api/endpoint/commissions/create) - Create and manage commissions --- **Need help?** [Contact our support team](mailto:hello@affonso.io) - we typically respond within 2 hours during business hours. --- ## Dodo Payments Checkout API Learn how to pass Affonso referral data to Dodo Payments for proper commission tracking. # Dodo Payments Checkout API Integration
💡 **Make sure your [Dodo Payments account](/help/getting-started/connect-payment-provider) is connected.**
Pass the `affonso_referral` cookie as metadata to your Dodo Payments: ```typescript import { cookies } from 'next/headers'; import DodoPayments from 'dodopayments'; // Get Affonso referral cookie (Next.js 15+) // For Next.js 13-14: const cookieStore = cookies(); (without await) const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; const client = new DodoPayments({ bearerToken: process.env.DODO_PAYMENTS_API_KEY, }); // For payments const payment = await client.payments.create({ // ... your existing config metadata: { affonso_referral: affonsoReferral, // Add this line }, }); // For subscriptions const subscription = await client.subscriptions.create({ // ... your existing config metadata: { affonso_referral: affonsoReferral, // Add this line }, }); ``` ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Trigger your checkout flow locally 4. Check your **server logs/terminal** - the Dodo session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 5. If the metadata appears in your logs, you're all set! **Note:** Use 100% discount codes for live testing without payments, or test locally with server logs - Dodo test mode won't appear in Affonso. --- ## Dodo Payment Links Learn how to automatically add Affonso referral tracking to your existing Dodo Payment Links. # Dodo Payment Links Integration
💡 **Make sure your [Dodo Payments account](/help/getting-started/connect-payment-provider) is connected.**
If you're using Dodo Payment Links (URLs starting with `checkout.dodopayments.com`), add this enhancement script to automatically include referral tracking. ## Installation Place this script in your website's `` section, right after the main Affonso tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ## How It Works 1. **Visitor clicks affiliate link** → Affonso sets tracking cookie 2. **Enhancement script runs** → Finds all Payment Links on your page 3. **Adds referral tracking** → Appends `metadata_affonso_referral` to each link 4. **Customer purchases** → Dodo receives tracking data → Affiliate gets credited ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Inspect your Payment Links - URLs should now include `metadata_affonso_referral=` 4. Make a test purchase to verify tracking in your Affonso dashboard **Note:** Use 100% discount codes for live testing without payments - Dodo test mode won't appear in Affonso. --- ## Paddle Billing Checkout Learn how to pass Affonso referral data to Paddle Billing checkout for proper commission tracking. # Paddle Billing Checkout Integration
💡 **Make sure your [Paddle account](/help/getting-started/connect-payment-provider) is connected.**
To track affiliate commissions properly, you need to include the Affonso referral ID in your Paddle checkout. The referral ID is automatically made available through our tracking script as `window.affonso_referral`. Simply include this value in your checkout's customData. **Implementation:** ```javascript Paddle.Checkout.open({ product: 12345, email: "customer@example.com", customData: { affonso_referral: window.affonso_referral }, }); ``` **Important:** This works with both Paddle.js and direct API calls. The key is to always pass the `window.affonso_referral` value through the `customData` parameter so Paddle includes it in transaction webhooks. ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Console** → type `window.affonso_referral` to see the referral ID 3. Trigger your checkout flow locally 4. Check your **server logs/terminal** - the Paddle checkout should show: ```json customData: { affonso_referral: "cmdhq6ayf..." } ``` 5. If the customData appears in your logs, you're all set! **Note:** Use 100% discount codes for live testing without payments, or test locally with server logs - Paddle sandbox mode won't appear in Affonso. ## Webhook Integration Paddle will include your `customData` in webhook events. Make sure to extract the `affonso_referral` value from the webhook payload and include it when reporting transactions to Affonso. --- ## Polar Checkout API Learn how to pass Affonso referral data to Polar Checkout sessions for proper commission tracking. # Polar Checkout API Integration
💡 **Make sure your [Polar account](/help/getting-started/connect-payment-provider) is connected.**
Pass the `affonso_referral` cookie as metadata to your Polar Checkout session: ```typescript import { cookies } from 'next/headers'; // Get Affonso referral cookie (Next.js 15+) // For Next.js 13-14: const cookieStore = cookies(); (without await) const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Create checkout session with Polar const checkout = await polar.checkouts.create({ // ... your existing config metadata: { affonso_referral: affonsoReferral, // Add this line }, }); ``` ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Trigger your checkout flow locally 4. Check your **server logs/terminal** - the Polar session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 5. If the metadata appears in your logs, you're all set! **Note:** Use 100% discount codes for live testing without payments, or test locally with server logs - Polar test mode won't appear in Affonso. --- ## Polar Payment Links Learn how to automatically add Affonso referral tracking to your existing Polar Payment Links. # Polar Payment Links Integration
💡 **Make sure your [Polar account](/help/getting-started/connect-payment-provider) is connected.**
If you're using Polar Payment Links (URLs starting with `buy.polar.sh`), add this enhancement script to automatically include referral tracking. ## Installation Place this script in your website's `` section, right after the main Affonso tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ## How It Works 1. **Visitor clicks affiliate link** → Affonso sets tracking cookie 2. **Enhancement script runs** → Finds all Payment Links on your page 3. **Adds referral tracking** → Appends `reference_id` to each link 4. **Customer purchases** → Polar receives tracking data → Affiliate gets credited ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Inspect your Payment Links - URLs should now include `reference_id=` 4. Make a test purchase to verify tracking in your Affonso dashboard **Note:** Use 100% discount codes for live testing without payments - Polar test mode won't appear in Affonso. --- ## Stripe Buy Button Learn how to add affiliate tracking to your Stripe Buy Buttons for proper commission attribution. # Stripe Buy Button Integration
💡 **Make sure your [Stripe account](/help/getting-started/connect-payment-provider) is connected.**
## Installation Add this script to your website's `` section, right after your Affonso tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. That's it! Your Buy Button will now automatically track affiliate referrals when customers make purchases. --- ## Stripe Checkout API Learn how to pass Affonso referral data to Stripe Checkout sessions for proper commission tracking. # Stripe Checkout API Integration
💡 **Make sure your [Stripe account](/help/getting-started/connect-payment-provider) is connected.**
Pass the `affonso_referral` cookie as metadata to your Stripe Checkout session: ```typescript import { cookies } from 'next/headers'; // Get Affonso referral cookie (Next.js 15+) // For Next.js 13-14: const cookieStore = cookies(); (without await) const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Add to your Stripe session const session = await stripe.checkout.sessions.create({ // ... your existing config metadata: { affonso_referral: affonsoReferral, // Add this line }, }); ``` ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Trigger your checkout flow locally 4. Check your **server logs/terminal** - the Stripe session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 5. If the metadata appears in your logs, you're all set! **Note:** Use 100% discount codes for live testing without payments, or test locally with server logs - Stripe test mode won't appear in Affonso. --- ## Stripe Payment Links Learn how to add affiliate tracking to your Stripe Payment Links for proper commission attribution. # Stripe Payment Links Integration
💡 **Make sure your [Stripe account](/help/getting-started/connect-payment-provider) is connected.**
If you're using Stripe Payment Links (URLs starting with `buy.stripe.com`), add this enhancement script to automatically include referral tracking.{' '} ## Installation Add this script to your website's `` section, right after your Affonso tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. ## How It Works 1. **Visitor clicks affiliate link** → Affonso sets tracking cookie 2. **Enhancement script runs** → Finds all Payment Links on your page 3. **Adds referral tracking** → Appends `client_reference_id` to each link 4. **Customer purchases** → Stripe receives tracking data → Affiliate gets credited ## Testing 1. Visit your site with `?atp=test` (our test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. Inspect your Payment Links - URLs should now include `client_reference_id=` 4. Make a test purchase to verify tracking in your Affonso dashboard **Note:** Use 100% discount codes for live testing without payments - Stripe test mode won't appear in Affonso. --- ## Stripe Pricing Tables Learn how to add affiliate tracking to your Stripe Pricing Tables for proper commission attribution. # Stripe Pricing Tables Integration
💡 **Make sure your [Stripe account](/help/getting-started/connect-payment-provider) is connected.**
## Installation Add this script to your website's `` section, right after your Affonso tracking script: ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. That's it! Your Pricing Table will now automatically include affiliate tracking data when customers make purchases. --- ## Creative Library – Marketing Assets for Your Affiliate Program Centralized hub for managing and distributing marketing materials to your affiliates The Creative Library lets you upload and organize marketing materials for your affiliates, ensuring consistent brand messaging while giving them professional assets that convert better than generic promotional content. ## How to Add Marketing Assets 1. Click **"Add Creative"** button in the top-right corner 2. Select the creative type (banner, logo, email template, etc.) 3. Fill in the required information: **Name and description** - Title and purpose of the asset **Category and tags** - For organization and searchability **Upload file or URL** - Asset content or link **Usage guidelines** - Instructions and restrictions 4. Save the asset ## How Affiliates Access Assets Affiliates can browse your Creative Library by category, search by keywords, and either download files directly or copy URLs/content for their promotional campaigns. All assets include usage guidelines to maintain brand consistency. ## What Happens After Setup Your affiliates get instant access to professional marketing materials, leading to better conversion rates and consistent brand representation. You can track which assets perform best and update your Creative Library based on affiliate usage and performance data. --- **Need help organizing your marketing assets?** Contact support for guidance on setting up your Creative Library. --- ## Custom Coupon Codes for Affiliates Assign unique coupon codes to affiliates for tracked discounts, even without affiliate links. Unique coupon codes let your affiliates offer discounts to their audience while automatically tracking their referrals - no affiliate links required. Affonso creates and syncs these codes directly with your payment processor, streamlining the process for both you and your partners. ## Two Ways to Create Coupon Codes ### Option 1: Self-Service (Recommended for Scale) Let affiliates create their own coupon codes while you control the discount settings. **Setting Up Self-Service Coupons:** 1. Go to your Affiliate Program settings 2. Scroll to "Advanced Settings" 3. Find "Self-Service Affiliate Coupons" and click "Configure" 4. Set your discount blueprint: - **Discount Type:** Percentage or fixed amount - **Discount Value:** The discount affiliates will offer (e.g., 20%) - **Duration:** How long the discount applies (once, forever, or multiple months) 5. Click "Enable Self-Service Coupons" **What Affiliates See:** Once enabled, affiliates will see a "Create Your Coupon Code" option in their portal. They can choose their own code (e.g., JOHNSMITH20), and it's instantly synced with your payment provider using your preset discount settings. **Note:** Each affiliate can create one coupon code per program. The code must be 3-20 characters, letters and numbers only. --- ### Option 2: Manual Assignment Manually create and assign coupon codes for individual affiliates. **Setting Up a Coupon Code Manually:** 1. Log into your Affonso admin dashboard 2. Navigate to "Partners" in the navigation 3. Locate the affiliate you want to assign a coupon code to 4. Click the "Action" dropdown button in the right column 5. Select "Manage Coupon Code" 6. Enter the desired code and set discount details (percentage or fixed amount, usage limits, subscription duration) **Note:** Each affiliate can have one coupon code at a time. --- ## What Happens After Setup The coupon code automatically syncs with your payment processor and appears in the affiliate's portal. Your partners can now share their unique code directly with their audience, offering discounts while ensuring accurate commission tracking. All conversions are tracked in your reports, whether they came from affiliate links or coupon codes. ## Supported Payment Providers Self-service and manual coupon codes work with: - Stripe - Paddle - Polar - Dodo Payments --- **Need help with coupon codes?** Contact support for guidance on setting up affiliate discounts. --- ## Inviting Affiliates to a Specific Group How to generate and share invite links that automatically assign new affiliates to a group Groups let you organize affiliates and assign different commission structures. With group invite links, new affiliates are automatically added to the right group when they sign up - no manual assignment needed. **Looking to invite individual affiliates?** See [Inviting New Affiliates](/help/managing-affiliates/inviting-new-affiliates) for email invitations with full control over name, tracking ID, and group assignment. ## How to Share a Group Invite Link 1. Go to **Affiliate Program > Groups** in your dashboard 2. Click on the group you want to invite affiliates to 3. Click the **"Share Invite Link"** button (top right) 4. Copy the link or share it directly via email/social media When affiliates sign up using this link, they're automatically assigned to that specific group. ## What the Invite Link Looks Like The invite link includes a `group` parameter that identifies which group to assign: ``` https://yourportal.affonso.io/?group=abc123-def456 ``` If you have a custom domain configured, it will use that instead: ``` https://partners.yourcompany.com/?group=abc123-def456 ``` ## Use Cases Group invite links are ideal when you have different types of partners with different commission structures: ### Influencer Partners Create an "Influencers" group with higher commission rates (e.g., 30%) and share that invite link when reaching out to content creators on YouTube, TikTok, or Instagram. ### Blog & Content Partners Set up a "Blog Partners" group with standard commissions (e.g., 20%) for bloggers, review sites, and content publishers who drive traffic through written content. ### Integration Partners Create an "Integration Partners" group for SaaS companies, agencies, or developers who integrate your product into their workflows. These partners often warrant premium commission rates due to their high-value referrals. ## What Happens When an Affiliate Signs Up 1. Affiliate clicks your group invite link 2. They're redirected to the sign-up page 3. After completing registration, they're automatically added to the specified group 4. They inherit the group's commission structure and settings ## Sharing Options The share modal gives you multiple ways to distribute your invite link: - **Copy Link** - Copy to clipboard for pasting anywhere - **Email** - Opens your email client with a pre-filled message - **Facebook, Twitter, LinkedIn** - Share directly on social media --- **Pro Tip:** Combine group invite links with [custom incentives per group](/help/commission-payouts/commission/what-are-affiliate-groups) to create tiered partner programs with different reward levels for each partner type. --- ## Inviting New Affiliates Step-by-step guide to recruiting and onboarding new affiliate partners Inviting affiliates sends them an email invitation to join your program, giving them access to their affiliate dashboard and tracking links once they accept. ## How to Invite Affiliates 1. Go to your [Affiliate Dashboard](https://affonso.io/app/affiliates) 2. Click the **"Invite Partner"** button (top right) 3. Fill out the invitation form 4. Click **"Send Invitation"** The affiliate will receive an email with an accept link to join your program. ## Invitation Form Options When inviting an affiliate, you can configure several options: ### Email (Required) The affiliate's email address where the invitation will be sent. ### Name (Optional) Pre-fill the affiliate's display name. If left empty, they'll enter it during onboarding. ### Tracking ID (Optional) Assign a custom tracking ID for the affiliate's referral links. The system checks availability in real-time. If left empty, the affiliate can choose their own during onboarding. ### Affiliate Group Select which group to assign the affiliate to. Groups determine commission rates and other settings. Choose from: - Your default group (pre-selected) - Any custom group you've created (e.g., "Influencers", "Blog Partners", "Integration Partners") [Learn more about groups and group-specific commissions](/help/commission-payouts/commission/what-are-affiliate-groups) ### Skip Onboarding When enabled, the affiliate skips the standard onboarding flow (name entry, tracking ID selection) and goes directly to their dashboard. Use this when you've already pre-filled their name and tracking ID. ## Invitation Limits **Important:** Only invite affiliates who have previously agreed to join your program. Unsolicited invitations can be considered spam. To prevent spam and ensure system stability, there are limits on how many invitations you can send: - **Monthly Limit:** 75 invitations per month - **Daily Limit:** 15 invitations per day - **Hourly Limit:** 5 invitations per hour - **Rate Limit:** 1 invitation per minute These limits apply per team and reset automatically. If you reach a limit, you'll see an error message with information about when you can send invitations again. ## What Happens When You Invite an Affiliate The affiliate receives an email invitation with an "Accept Invitation" link. Once they click it, they get access to their affiliate portal where they can generate tracking links, view performance, and access marketing materials. They become an active part of your program and can start promoting immediately. ## Alternative Methods ### Group Invite Links Share a link that automatically assigns new affiliates to a specific group when they sign up. Perfect for recruiting partners into different tiers. [Learn more about group invite links](/help/managing-affiliates/inviting-affiliates-to-groups) ### CSV Import For bulk additions without email invitations, use our [CSV import feature](/help/migration/how-do-i-import-data-into-affonso). This method adds affiliates directly without sending invitation emails. --- **Ready to grow your affiliate program?** Start reaching out to potential partners and watch your program expand with quality affiliates. --- ## Manual Referral Attribution How to manually assign customers to specific affiliates and add transactions Manual attribution lets you assign sales to specific affiliates, ensuring they get proper commission credit for their referrals. ## How to Add Manual Referrals 1. Go to your [Affiliate Dashboard](https://affonso.io/app/affiliates) 2. Find and click on the affiliate you want to credit 3. Click the **"Add Referral"** button (top right) 4. Enter customer email and optional customer ID 5. Set the referral date and customer status (Lead, Trial, Customer, etc.) 6. If customer status is "Trial", "Customer" or "Active", you can add transaction details 7. Set commission type (Fixed amount or Percentage) and value 8. Choose approval status and save **Note:** You cannot add transactions for customers with "Lead", "Canceled", or "Rejected" status. ## How to Add Transactions to Existing Referrals Sometimes you need to add additional sales or commissions to a referral that already exists — for example, when a customer makes a repeat purchase offline. 1. Go to your [Affiliate Dashboard](https://affonso.io/app/affiliates) 2. Find and click on the affiliate 3. Click on the referral you want to add a transaction to 4. Click the **"Add Transaction"** button 5. Enter the transaction amount and date 6. Set the commission (fixed amount or percentage) 7. Choose the approval status: - **Approved** — Ready for payment immediately - **Pending** — Held for a specified number of days before approval - **Manual Review** — Requires your manual approval later - **Declined** — No commission will be paid **Note:** If the referral was previously a "Lead" or "Trialing", adding a transaction automatically updates its status to "Customer". ## What Happens When You Manually Attribute The sale gets retroactively assigned to the chosen affiliate, updating their commission earnings, performance metrics, and dashboard statistics. The attribution becomes permanent in your records and will be included in their next payout. ## When You Need Manual Attribution Use manual attribution for offline referrals from phone calls or in-person recommendations, untracked social media referrals, technical issues, or cross-device conversions where tracking fails. Use manual transactions for repeat purchases made offline, upsells or add-ons not tracked by your payment processor, or adjustments to existing referral commissions. --- **Need help with complex attribution?** Contact our support team for guidance on difficult cases. --- ## Program Access Modes Control how affiliates can join your program with Public, Private, and Invite Only modes Access modes let you control how new affiliates join your program. Choose between open enrollment, manual approval, or invitation-only access depending on how much control you need. ## The Three Access Modes ### Public New affiliates sign up through your portal and are automatically approved. They get their tracking links immediately and can start promoting right away. **Best for:** Programs that want to grow quickly and are open to any affiliate. ### Private Affiliates can still sign up through your portal, but they won't receive tracking links or be able to start promoting until you manually review and approve them. This gives you full control over who represents your brand while keeping the door open for new applicants. **How it works:** 1. An affiliate signs up through your portal as usual 2. They appear in your [Affiliates Dashboard](https://affonso.io/app/affiliates) with a **Pending** status 3. You review their profile and decide whether to approve or reject them 4. Once approved, they receive their tracking links and can start promoting **Best for:** Programs that want to vet affiliates before giving them access, while still allowing anyone to apply. ### Invite Only Portal signup is disabled for new affiliates. You control exactly who joins by inviting them yourself. There are two ways to invite affiliates: **Via the Dashboard (recommended):** 1. Go to your [Affiliates Dashboard](https://affonso.io/app/affiliates) 2. Click **"Invite Partner"** 3. Fill in their details and send the invitation 4. The affiliate receives an email invitation to join your program [Learn more about inviting affiliates](/help/managing-affiliates/inviting-new-affiliates) **Via the API:** You can also create affiliates programmatically using the [Create Affiliate endpoint](https://docs.affonso.io/api/endpoint/affiliates/create). Note that affiliates created via the API do not receive an invitation email automatically — you'll need to share the portal login with them separately. In both cases, the invited affiliate can log in to the portal normally after being added. **Best for:** Exclusive programs, strategic partnerships, or when you want to hand-pick every affiliate. ## How to Change Your Access Mode 1. Go to [Affiliate Program Settings](https://affonso.io/app/affiliate-program) 2. Find the **Access Mode** section 3. Select the mode you want 4. Click **Save Changes** The change takes effect immediately. ## Plan Requirements - **Public** mode is available on all plans - **Private** and **Invite Only** modes require the **Growth** plan or higher --- **Not sure which mode to start with?** Most programs start with Public to build their affiliate base, then switch to Private once they want more control over quality. --- ## Setting Individual Commission Rates Create custom commission structures for specific affiliate partners Individual commission rates let you reward top performers with custom incentives that differ from your default group rates. This is perfect for strategic partners, high-volume affiliates, or when you want to negotiate special terms. ## How to Set Individual Commission Rates 1. Go to your [Affiliates Dashboard](https://affonso.io/app/affiliates) 2. Find and click on the specific affiliate you want to customize 3. Click **"View Details"** to access their profile 4. Scroll down to the **"Custom Incentives"** section 5. Click **"Add Override"** to create a custom incentive 6. Choose which products/plans trigger this override (all plans, monthly plans, yearly plans, one-time products, or specific products) 7. Set the incentive type (Fixed Amount, Percentage, Credits, or Free Months) and rate 8. Configure payout conditions and approval settings 9. Create the override ## What Happens After Setup The custom incentive overrides the default group incentives for that specific affiliate. They'll earn the individual rate you set instead of the standard group rate. The override appears in their Custom Incentives section and takes effect immediately for new referrals. ## When to Use Individual Rates Use individual commission rates to reward top performers with higher rates, attract strategic partners with competitive offers, negotiate special terms for high-value affiliates, or provide different rates based on the affiliate's audience quality or volume potential. --- **Need help with commission structures?** You can also set up group-based rewards for multiple affiliates at once. --- ## Rejecting Problem Affiliates How to reject affiliates for policy violations or suspicious activity Rejecting an affiliate allows you to stop their ability to generate new referrals and halt future commission payments while investigating policy violations, suspicious activity, or other concerns. ## What Happens When You Reject an Affiliate Once rejected, the affiliate immediately loses the ability to generate new attributed referrals through their tracking links. Their existing referrals remain in your system and continue to be tracked, but any future sales from those referrals are automatically recorded with 0% commission - meaning the affiliate won't receive payment for them. Their dashboard access becomes restricted, and you'll need to manually review and potentially reject any existing pending commissions. This creates a protective measure that stops both new referrals and future earnings while preserving historical data for your records. ## When Rejection Makes Sense Consider rejecting affiliates when they break your terms and conditions, show unusual traffic or conversion patterns, or when you need to investigate potentially fraudulent activity. Quality issues like poor traffic quality or brand misalignment also warrant rejection, as do serious payment disputes or commission disagreements that cannot be resolved. ## How to Reject an Affiliate 1. Go to your [Affiliate Dashboard](https://affonso.io/app/affiliates) 2. Find the specific affiliate you want to reject in the list 3. Click on their **Partnership Status** in the affiliates table 4. Select **"Rejected"** from the status options 5. Add internal notes explaining the reason for rejection ## Managing Existing Commissions After rejecting an affiliate, you'll need to manually handle their existing data: - **Review pending commissions** and mark them as rejected if appropriate - **Process any pending payouts** according to your policies - **Update commission status** for any disputed transactions ## Reactivating Rejected Affiliates If issues are resolved and you decide to reactivate the affiliate, you can change their status back to "Approved" in your [Affiliate Dashboard](https://affonso.io/app/affiliates). Simply click on their Partnership Status and select "Approved" to restore their ability to generate new referrals and earn commissions. **Remember:** Rejection stops both new referrals and future commission earnings from existing referrals. Use this carefully as it has immediate financial impact on the affiliate. --- **Need help with affiliate management?** Contact support for guidance on handling difficult situations. --- ## How do I import data into Affonso? Import Your Existing Affiliate Data to Affonso We make it easy to bring your existing affiliates and referral data with you. ## Self-Service Affiliate Import You can now import your affiliates directly through your Affonso dashboard. Go to **[Settings → Team → General](https://affonso.io/app/settings/team/general)** and use our CSV import feature. ### CSV Format Requirements **Required Columns:** - **Name:** Full name of the affiliate - **Email:** Valid email address (must be unique) - **Tracking Parameter:** 2-50 characters for their custom link token **Optional Columns:** - **PayPal Email:** For commission payments ### Format & Limits - **Maximum:** 1,000 rows, 5MB file size - **Delimiters:** Comma (`,`) or semicolon (`;`) - **Extra columns:** Will be ignored ### Example CSV Format ```csv Name,Email,Tracking Parameter,PayPal Email John Smith,john@example.com,johnsmith,payments@johnsmith.com Sarah Wilson,sarah@example.com,sarahw,sarah.wilson@gmail.com Mike Chen,mike@example.com,mikechen, ``` ## How Tracking Links Work Your Affonso affiliate links will be formatted as: ``` https://yourdomain.com/?via=xxxx ``` Where `xxxx` is the **Tracking Parameter** you specify in your CSV file. ## Payment Information Setup After importing, your affiliates can update their preferred payout methods in their affiliate dashboard: - **PayPal Email** - **Wise Email** - **Payoneer Email** - **Bitcoin Wallet** - **Ethereum Wallet** ## Automatic Migration from Other Platforms If you're switching from **Tolt** or **FirstPromoter**, you don't need to manually export and import data. Affonso has built-in migration tools that automatically import your partners, customers, and commissions — no CSV required. - **[Migrate from Tolt →](/help/migration/migrate-from-tolt-to-affonso)** — Automatically imports partners, customers, and commissions using your Tolt API key. - **[Migrate from FirstPromoter →](/help/migration/migrate-from-firstpromoter-to-affonso)** — Automatically imports promoters, referrals, and commissions using your FirstPromoter API key. Start a migration in **[Settings → Migration](https://affonso.io/app/settings/team/migration)**. ## Historical Data Import For platforms not listed above, please contact our support team. We'll work with you individually to assess what data can be migrated. **Important:** We recommend exporting and keeping your historical data from your previous platform for your own records. --- **Ready to import your affiliates?** [Go to CSV Import →](https://affonso.io/app/settings/team/general) --- ## Migrate from Dub to Affonso Complete guide to migrate your existing Dub affiliate program integration to Affonso, including Stripe setup and tracking script replacement. # Migrate from Dub If you're currently using Dub for your affiliate program and want to switch to Affonso, this guide will walk you through the migration process step by step. Dub's integration approach is a bit different from other platforms since it uses API-based conversion tracking, but the migration to Affonso is still straightforward.
💡 **Good news!** If you already have Dub integrated with Stripe, migrating to Affonso simplifies your setup. Instead of Dub's API-based lead and sale tracking, Affonso uses a simple metadata field in your payment provider - no extra API calls needed.
Ready to migrate? Let's get your affiliate program running on Affonso in just a few steps: ### Replace the Tracking Script #### Current Dub Script (Remove This) ```html ``` #### New Affonso Script (Add This) ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Where to add it:** Just like with Dub, add this script to the `` tag on every page of your website (or at least your landing pages) to ensure no referrals are missed. #### Installation Guides Need help installing the script on your specific platform? [Check out our detailed installation guides](/help/getting-started/overview#installation-guides). ### Update Referral Data Collection #### How Dub Works (Current) Dub stores a `dub_id` cookie when a visitor clicks an affiliate link and uses API-based tracking for leads and sales: ```javascript // Dub approach - reads the dub_id cookie const dubId = document.cookie .split('; ') .find(row => row.startsWith('dub_id=')) ?.split('=')[1]; ``` #### How Affonso Works (New) Affonso provides referral data in **two ways** - you can choose the approach that fits your existing setup: ##### Option 1: Client-Side (JavaScript) ```javascript // Client-side approach const referralId = window.affonso_referral || ''; ``` ##### Option 2: Server-Side (Cookie) - More Secure ```typescript // Server-side approach (recommended for security) // Next.js 15+ example import { cookies } from 'next/headers'; const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Next.js 13-14 example const cookieStore = cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Express.js example const affonsoReferral = req.cookies.affonso_referral || ''; // PHP example $affonsoReferral = $_COOKIE['affonso_referral'] ?? ''; ```
💡 **Migration Tip:** With Affonso, you no longer need separate API calls to track leads and sales. Just pass the `affonso_referral` value in your payment provider's metadata, and Affonso handles the rest automatically via webhooks.
### Update Payment Provider Integration With Dub, you had to pass `dubCustomerExternalId` and optionally `dubClickId` in your Stripe metadata. With Affonso, you simply replace these with a single `affonso_referral` field.
💡 **Connect your payment provider:** [Connect your payment provider](/help/getting-started/connect-payment-provider) to Affonso before migrating.
#### Migration Pattern (All Payment Providers) **Before (Dub):** ```javascript metadata: { dubCustomerExternalId: user.id, // ❌ Remove this dubClickId: dub_id, // ❌ Remove this } ``` **After (Affonso):** ```javascript metadata: { affonso_referral: affonsoReferral, // ✅ Add this line } ``` #### Stripe Example (Detailed) ##### Current Dub Integration ```javascript // Old Dub way - REPLACE THIS const session = await stripe.checkout.sessions.create({ customer_email: user.email, success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { dubCustomerExternalId: user.id, // ❌ Remove this }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### New Affonso Integration ```typescript // New Affonso way - USE THIS import { cookies } from 'next/headers'; // Get Affonso referral data const cookieStore = await cookies(); // Next.js 15+ const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { affonso_referral: affonsoReferral, // ✅ Add this line }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ```
💡 **Simpler setup!** With Dub, you needed to manage `dubCustomerExternalId`, `dubClickId`, and sometimes `client_reference_id`. With Affonso, a single `affonso_referral` metadata field handles everything.
#### Remove Dub Lead & Sale Tracking API Calls If you were using Dub's API to track lead and sale events, you can remove those calls entirely. Affonso tracks conversions automatically through payment provider webhooks - no extra API integration needed. ```javascript // ❌ Remove any Dub lead/sale tracking calls like these: await dub.track.lead({ ... }); await dub.track.sale({ ... }); ``` #### Integration Guides for All Payment Providers [View all payment provider integration guides →](/help/integrations)
### Optional - Track User Signups With Dub, you had to track lead events via their API. With Affonso, signup tracking is optional but **strongly recommended** for better insights. Add this code after your user registration logic: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: userEmail, // optional externalUserId: userId, // optional name: userName // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. **Benefits of signup tracking:** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance
--- ## Testing Your Migration #### 1. Test Referral Tracking 1. Visit your site with `?atp=test` (Affonso's test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. The cookie should contain a value like `cmdhq6ayf...` #### 2. Test Stripe Integration 1. Trigger your checkout flow locally with the test referral 2. Check your **server logs/terminal** - the Stripe session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 3. If the metadata appears correctly, you're all set! #### 3. Live Testing **Note:** Use 100% discount codes for live testing without actual payments, or test locally with server logs - Stripe test mode purchases won't appear in Affonso's dashboard. --- ## Migration Checklist
- [ ] **Replace tracking script** - Remove Dub analytics script, add Affonso script - [ ] **Choose referral data method** - Client-side (`window.affonso_referral`) OR server-side (cookie) - [ ] **Update payment provider metadata** - Replace `dubCustomerExternalId`/`dubClickId` with `affonso_referral` - [ ] **Remove Dub API calls** - Remove any `dub.track.lead()` or `dub.track.sale()` calls - [ ] **Connect payment provider** to Affonso dashboard (Stripe, Polar, Creem, or Dodo) - [ ] **Test referral tracking** with `?atp=test` parameter - [ ] **Test payment integration** with server logs or live testing - [ ] **Optional: Add signup tracking** for better insights - [ ] **Update affiliate links** to use new Affonso format (if needed) - [ ] **Migrate affiliate data** (contact support if needed)
--- ## Import Your Existing Affiliates Don't forget to bring your existing affiliates with you! You can easily import your affiliate data from Dub (or any other platform) using our self-service CSV import feature. **What you can import:** - Affiliate names and email addresses - Custom tracking parameters for their links - PayPal payment information - Up to 1,000 affiliates per import [📖 Learn how to import affiliate data →](/help/migration/how-do-i-import-data-into-affonso) --- ## Need Help with Migration? - **Technical Support**: [hello@affonso.io](mailto:hello@affonso.io) - We typically respond within 2 hours during business hours - **Migration Assistance**: Our team can help you migrate your existing affiliate data and test the integration - **Custom Setup**: Need help with a complex migration? We offer personalized migration support **Questions about your specific setup?** [Contact our support team](mailto:hello@affonso.io) and we'll help you migrate from Dub to Affonso smoothly! --- ## Migrate from FirstPromoter to Affonso Complete guide to migrate your existing FirstPromoter affiliate program to Affonso — import your data automatically and replace the tracking integration. # Migrate from FirstPromoter If you're currently using FirstPromoter for your affiliate program and want to switch to Affonso, this guide will walk you through the full migration — from importing your existing data to replacing the tracking integration.
💡 **Good news!** Affonso has a built-in migration tool that automatically imports your campaigns, commission rules, promoters, referrals, and commissions from FirstPromoter. The entire process takes just a few minutes.
### Import Your Existing Data Affonso can automatically import your affiliate data from FirstPromoter — no CSV exports or manual work needed. #### What you'll need - Your **FirstPromoter API Key** - Your **FirstPromoter Account ID** You'll find both in your FirstPromoter dashboard under **Settings → Integrations → API integration**. ![FirstPromoter API integration settings](/img/migration/firstpromoter-api-settings.png) #### How to start the migration 1. Go to **[Settings → Migration](https://affonso.io/app/settings/team/migration)** in your Affonso dashboard 2. Click **Migrate** next to FirstPromoter 4. Enter your API Key and Account ID 5. Click **Start Migration** The migration runs in the background — you'll see real-time progress in the dialog and receive an email when it's done. #### What data is migrated? The migration imports five types of data: - **Campaigns → Groups** — Each FirstPromoter campaign is created as an affiliate group in Affonso. The default campaign becomes the default group. Affiliates are automatically assigned to the correct group based on their campaign membership. - **Rewards → Incentives** — Commission rules (percentage or flat amount, duration, type) are imported as incentives and linked to the corresponding groups. Supported types include cash commissions, free months, credits, and points. - **Promoters** — Name, email, and payout details (PayPal, bank). Only accepted promoters with at least one referral are imported — dormant or pending promoters are skipped to keep your program clean. If a promoter has customized rewards that differ from their campaign, individual overrides are created automatically. - **Referrals** — Name, email, customer ID, and status. Linked to the correct affiliate automatically. - **Commissions** — Sale amounts, commission earnings, currency, and their status (pending, approved, paid, etc.).
💡 **Safe to re-run.** The migration is idempotent — if you run it again, existing records will be skipped. No duplicates will be created.
### Replace the Tracking Script #### Current FirstPromoter Script (Remove This) ```html ``` #### New Affonso Script (Add This) ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Where to add it:** Just like with FirstPromoter, add this script to the `` tag on every page of your website (or at least your landing pages) to ensure no referrals are missed. #### Installation Guides Need help installing the script on your specific platform? [Check out our detailed installation guides](/help/getting-started/overview#installation-guides). ### Update Referral Data Collection #### How FirstPromoter Works (Current) FirstPromoter provides referral data via a JavaScript callback and stores it in a cookie: ```javascript // FirstPromoter approach window.fpr("referral_id", function(referralId) { // use referralId }); // Or directly from the cookie const referralId = document.cookie .split('; ') .find(row => row.startsWith('_fprom_tid=')) ?.split('=')[1]; ``` #### How Affonso Works (New) Affonso provides referral data in **two ways** - you can choose the approach that fits your existing setup: ##### Option 1: Client-Side (JavaScript) - Similar to FirstPromoter ```javascript // Client-side approach (similar to FirstPromoter) const referralId = window.affonso_referral || ''; ``` ##### Option 2: Server-Side (Cookie) - More Secure ```typescript // Server-side approach (recommended for security) // Next.js 15+ example import { cookies } from 'next/headers'; const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Next.js 13-14 example const cookieStore = cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Express.js example const affonsoReferral = req.cookies.affonso_referral || ''; // PHP example $affonsoReferral = $_COOKIE['affonso_referral'] ?? ''; ```
💡 **Migration Tip:** If you're currently using FirstPromoter's callback or `_fprom_tid` cookie, you can easily switch to `window.affonso_referral` or the `affonso_referral` cookie with minimal changes. We recommend the server-side cookie approach for better security.
### Update Payment Provider Integration The core principle is simple: replace `fp_uid` with `affonso_referral` in your payment provider's metadata. This works with **all supported payment providers**.
💡 **Connect your payment provider:** [Connect your payment provider](/help/getting-started/connect-payment-provider) to Affonso before migrating.
#### Migration Pattern (All Payment Providers) **Before (FirstPromoter):** ```javascript metadata: { fp_uid: referralId, // ❌ Remove this } ``` **After (Affonso):** ```javascript metadata: { affonso_referral: affonsoReferral, // ✅ Add this line } ``` #### Stripe Example (Detailed) ##### Current FirstPromoter Integration ```javascript // Old FirstPromoter way - REPLACE THIS const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { fp_uid: referralId, // ❌ Remove this }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### New Affonso Integration ```typescript // New Affonso way - USE THIS import { cookies } from 'next/headers'; // Get Affonso referral data const cookieStore = await cookies(); // Next.js 15+ const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { affonso_referral: affonsoReferral, // ✅ Add this line }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### Integration Guides for All Payment Providers [View all payment provider integration guides →](/help/integrations)
### Optional - Track User Signups While FirstPromoter required explicit signup tracking, Affonso can work without it, but we **strongly recommend** implementing it for better insights. Add this code after your user registration logic: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: userEmail, // optional externalUserId: userId, // optional name: userName // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. **Benefits of signup tracking:** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance
--- ## Testing Your Migration #### 1. Test Referral Tracking 1. Visit your site with `?atp=test` (Affonso's test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. The cookie should contain a value like `cmdhq6ayf...` #### 2. Test Stripe Integration 1. Trigger your checkout flow locally with the test referral 2. Check your **server logs/terminal** - the Stripe session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 3. If the metadata appears correctly, you're all set! #### 3. Live Testing **Note:** Use 100% discount codes for live testing without actual payments, or test locally with server logs - Stripe test mode purchases won't appear in Affonso's dashboard. --- ## Migration Checklist
- [ ] **Import data from FirstPromoter** — Use the automatic migration tool in Settings (campaigns, rewards, promoters, referrals, commissions) - [ ] **Replace tracking script** — Remove FirstPromoter script, add Affonso script - [ ] **Choose referral data method** — Client-side (`window.affonso_referral`) OR server-side (cookie) - [ ] **Update payment provider metadata** — Change `fp_uid` to `affonso_referral` - [ ] **Connect payment provider** to Affonso dashboard (Stripe, Polar, Creem, or Dodo) - [ ] **Test referral tracking** with `?atp=test` parameter - [ ] **Test payment integration** with server logs or live testing - [ ] **Optional: Add signup tracking** for better insights
--- ## Need Help with Migration? - **Technical Support**: [hello@affonso.io](mailto:hello@affonso.io) - We typically respond within 2 hours during business hours - **Migration Assistance**: Our team can help you migrate your existing affiliate data and test the integration - **Custom Setup**: Need help with a complex migration? We offer personalized migration support **Questions about your specific setup?** [Contact our support team](mailto:hello@affonso.io) and we'll help you migrate from FirstPromoter to Affonso smoothly! --- ## Migrate from PartnerStack to Affonso Complete guide to migrate your existing PartnerStack affiliate program integration to Affonso, including Stripe setup and tracking script replacement. # Migrate from PartnerStack If you're currently using PartnerStack for your affiliate program and want to switch to Affonso, this guide will walk you through the migration process step by step. PartnerStack's integration is a bit more involved than other platforms (with separate signup tracking and payment webhooks), but migrating to Affonso actually simplifies your setup.
💡 **Good news!** Migrating from PartnerStack to Affonso simplifies your integration. Instead of managing PartnerStackJS signup events, customer keys, and separate payment webhooks, Affonso uses a single metadata field in your payment provider - no extra API calls or signup tracking code needed.
Ready to migrate? Let's get your affiliate program running on Affonso in just a few steps: ### Replace the Tracking Script #### Current PartnerStack Script (Remove This) PartnerStack uses a script that loads from `js.partnerstack.com` and initializes the `growsumo` object. Remove the PartnerStackJS snippet from your `` tag - it typically looks something like this: ```html ``` #### New Affonso Script (Add This) ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Where to add it:** Just like with PartnerStack, add this script to the `` tag on every page of your website (or at least your landing pages) to ensure no referrals are missed. #### Installation Guides Need help installing the script on your specific platform? [Check out our detailed installation guides](/help/getting-started/overview#installation-guides). ### Update Referral Data Collection #### How PartnerStack Works (Current) PartnerStack uses the `growsumo` object to collect referral data and requires an explicit signup call: ```javascript // PartnerStack approach - signup tracking required growsumo.data.name = userName; growsumo.data.email = userEmail; growsumo.data.customer_key = uniqueCustomerId; growsumo.createSignup(); ``` #### How Affonso Works (New) Affonso provides referral data in **two ways** - you can choose the approach that fits your existing setup: ##### Option 1: Client-Side (JavaScript) ```javascript // Client-side approach const referralId = window.affonso_referral || ''; ``` ##### Option 2: Server-Side (Cookie) - More Secure ```typescript // Server-side approach (recommended for security) // Next.js 15+ example import { cookies } from 'next/headers'; const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Next.js 13-14 example const cookieStore = cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Express.js example const affonsoReferral = req.cookies.affonso_referral || ''; // PHP example $affonsoReferral = $_COOKIE['affonso_referral'] ?? ''; ```
💡 **Migration Tip:** With Affonso, you don't need the `growsumo.createSignup()` call anymore. Just pass the `affonso_referral` value in your payment provider's metadata and Affonso handles the rest automatically.
### Update Payment Provider Integration With PartnerStack, you had to pass `customer_key` (and optionally `partner_key` and `product_key`) in your Stripe metadata. With Affonso, you simply replace these with a single `affonso_referral` field.
💡 **Connect your payment provider:** [Connect your payment provider](/help/getting-started/connect-payment-provider) to Affonso before migrating.
#### Migration Pattern (All Payment Providers) **Before (PartnerStack):** ```javascript metadata: { customer_key: customerId, // ❌ Remove this partner_key: partnerKey, // ❌ Remove this (if used) product_key: productId, // ❌ Remove this (if used) } ``` **After (Affonso):** ```javascript metadata: { affonso_referral: affonsoReferral, // ✅ Add this line } ``` #### Stripe Example (Detailed) ##### Current PartnerStack Integration ```javascript // Old PartnerStack way - REPLACE THIS const customer = await stripe.customers.create({ email: user.email, metadata: { customer_key: user.id, // ❌ Remove this }, }); const session = await stripe.checkout.sessions.create({ customer: customer.id, success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### New Affonso Integration ```typescript // New Affonso way - USE THIS import { cookies } from 'next/headers'; // Get Affonso referral data const cookieStore = await cookies(); // Next.js 15+ const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { affonso_referral: affonsoReferral, // ✅ Add this line }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ```
💡 **Simpler setup!** With PartnerStack, you needed to manage `customer_key`, `partner_key`, `product_key`, and a separate signup tracking flow. With Affonso, a single `affonso_referral` metadata field handles everything.
#### Remove PartnerStack Signup Tracking Code You can remove the `growsumo.createSignup()` calls from your signup flow entirely. Affonso tracks conversions automatically through payment provider webhooks. ```javascript // ❌ Remove PartnerStack signup tracking code like this: growsumo.data.name = userName; growsumo.data.email = userEmail; growsumo.data.customer_key = userId; growsumo.createSignup(); ``` #### Integration Guides for All Payment Providers [View all payment provider integration guides →](/help/integrations)
### Optional - Track User Signups With PartnerStack, signup tracking via `growsumo.createSignup()` was mandatory. With Affonso, it's optional but **strongly recommended** for better insights. Add this code after your user registration logic: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: userEmail, // optional externalUserId: userId, // optional name: userName // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. **Benefits of signup tracking:** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance
--- ## Testing Your Migration #### 1. Test Referral Tracking 1. Visit your site with `?atp=test` (Affonso's test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. The cookie should contain a value like `cmdhq6ayf...` #### 2. Test Stripe Integration 1. Trigger your checkout flow locally with the test referral 2. Check your **server logs/terminal** - the Stripe session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 3. If the metadata appears correctly, you're all set! #### 3. Live Testing **Note:** Use 100% discount codes for live testing without actual payments, or test locally with server logs - Stripe test mode purchases won't appear in Affonso's dashboard. --- ## Migration Checklist
- [ ] **Replace tracking script** - Remove PartnerStackJS snippet, add Affonso script - [ ] **Choose referral data method** - Client-side (`window.affonso_referral`) OR server-side (cookie) - [ ] **Update payment provider metadata** - Replace `customer_key`/`partner_key` with `affonso_referral` - [ ] **Remove PartnerStack signup code** - Remove `growsumo.createSignup()` calls - [ ] **Remove PartnerStack webhook** - Disconnect the PartnerStack webhook from Stripe - [ ] **Connect payment provider** to Affonso dashboard (Stripe, Polar, Creem, or Dodo) - [ ] **Test referral tracking** with `?atp=test` parameter - [ ] **Test payment integration** with server logs or live testing - [ ] **Optional: Add signup tracking** for better insights - [ ] **Update affiliate links** to use new Affonso format (if needed) - [ ] **Migrate affiliate data** (contact support if needed)
--- ## Import Your Existing Affiliates Don't forget to bring your existing affiliates with you! You can easily import your affiliate data from PartnerStack (or any other platform) using our self-service CSV import feature. **What you can import:** - Affiliate names and email addresses - Custom tracking parameters for their links - PayPal payment information - Up to 1,000 affiliates per import [📖 Learn how to import affiliate data →](/help/migration/how-do-i-import-data-into-affonso) --- ## Need Help with Migration? - **Technical Support**: [hello@affonso.io](mailto:hello@affonso.io) - We typically respond within 2 hours during business hours - **Migration Assistance**: Our team can help you migrate your existing affiliate data and test the integration - **Custom Setup**: Need help with a complex migration? We offer personalized migration support **Questions about your specific setup?** [Contact our support team](mailto:hello@affonso.io) and we'll help you migrate from PartnerStack to Affonso smoothly! --- ## Migrate from Rewardful to Affonso Complete guide to migrate your existing Rewardful affiliate program integration to Affonso, including Stripe setup and tracking script replacement. # Migrate from Rewardful If you're currently using Rewardful for your affiliate program and want to switch to Affonso, this guide will walk you through the migration process step by step. Since you already have affiliate tracking set up with Rewardful, the migration is straightforward - you just need to replace a few key components.
💡 **Good news!** If you already have Rewardful integrated with Stripe, migrating to Affonso requires only minimal code changes. Your existing affiliate program structure can remain largely the same.
Ready to migrate? Let's get your affiliate program running on Affonso in just a few steps: ### Replace the Tracking Script #### Current Rewardful Script (Remove This) ```html ``` #### New Affonso Script (Add This) ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Where to add it:** Just like with Rewardful, add this script to the `` tag on every page of your website (or at least your landing pages) to ensure no referrals are missed. #### Installation Guides Need help installing the script on your specific platform? [Check out our detailed installation guides](/help/getting-started/overview#installation-guides). ### Update Referral Data Collection #### How Rewardful Works (Current) Rewardful provides referral data via a JavaScript API and stores it in a cookie: ```javascript // Rewardful approach rewardful('ready', function() { const referralId = Rewardful.referral; }); ``` #### How Affonso Works (New) Affonso provides referral data in **two ways** - you can choose the approach that fits your existing setup: ##### Option 1: Client-Side (JavaScript) - Similar to Rewardful ```javascript // Client-side approach (similar to Rewardful) const referralId = window.affonso_referral || ''; ``` ##### Option 2: Server-Side (Cookie) - More Secure ```typescript // Server-side approach (recommended for security) // Next.js 15+ example import { cookies } from 'next/headers'; const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Next.js 13-14 example const cookieStore = cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Express.js example const affonsoReferral = req.cookies.affonso_referral || ''; // PHP example $affonsoReferral = $_COOKIE['affonso_referral'] ?? ''; ```
💡 **Migration Tip:** If you're currently using `Rewardful.referral`, you can easily switch to `window.affonso_referral` or the `affonso_referral` cookie with minimal changes. We recommend the server-side cookie approach for better security.
### Update Payment Provider Integration The core principle is simple: replace `referral` with `affonso_referral` in your payment provider's metadata. This works with **all supported payment providers**.
💡 **Connect your payment provider:** [Connect your payment provider](/help/getting-started/connect-payment-provider) to Affonso before migrating.
#### Migration Pattern (All Payment Providers) **Before (Rewardful):** ```javascript metadata: { referral: Rewardful.referral, // ❌ Remove this } ``` **After (Affonso):** ```javascript metadata: { affonso_referral: affonsoReferral, // ✅ Add this line } ``` #### Stripe Example (Detailed) ##### Current Rewardful Integration ```javascript // Old Rewardful way - REPLACE THIS rewardful('ready', function() { const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { referral: Rewardful.referral, // ❌ Remove this }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); }); ``` #### New Affonso Integration ```typescript // New Affonso way - USE THIS import { cookies } from 'next/headers'; // Get Affonso referral data const cookieStore = await cookies(); // Next.js 15+ const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { affonso_referral: affonsoReferral, // ✅ Add this line }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### Integration Guides for All Payment Providers [View all payment provider integration guides →](/help/integrations)
### Optional - Track User Signups While Rewardful required explicit signup tracking, Affonso can work without it, but we **strongly recommend** implementing it for better insights. Add this code after your user registration logic: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: userEmail, // optional externalUserId: userId, // optional name: userName // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. **Benefits of signup tracking:** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance
--- ## Testing Your Migration #### 1. Test Referral Tracking 1. Visit your site with `?atp=test` (Affonso's test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. The cookie should contain a value like `cmdhq6ayf...` #### 2. Test Stripe Integration 1. Trigger your checkout flow locally with the test referral 2. Check your **server logs/terminal** - the Stripe session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 3. If the metadata appears correctly, you're all set! #### 3. Live Testing **Note:** Use 100% discount codes for live testing without actual payments, or test locally with server logs - Stripe test mode purchases won't appear in Affonso's dashboard. --- ## Migration Checklist
- [ ] **Replace tracking script** - Remove Rewardful script, add Affonso script - [ ] **Choose referral data method** - Client-side (`window.affonso_referral`) OR server-side (cookie) - [ ] **Update payment provider metadata** - Change `referral` to `affonso_referral` - [ ] **Connect payment provider** to Affonso dashboard (Stripe, Polar, Creem, or Dodo) - [ ] **Test referral tracking** with `?atp=test` parameter - [ ] **Test payment integration** with server logs or live testing - [ ] **Optional: Add signup tracking** for better insights - [ ] **Update affiliate links** to use new Affonso format (if needed) - [ ] **Migrate affiliate data** (contact support if needed)
--- ## Import Your Existing Affiliates Don't forget to bring your existing affiliates with you! You can easily import your affiliate data from Rewardful (or any other platform) using our self-service CSV import feature. **What you can import:** - Affiliate names and email addresses - Custom tracking parameters for their links - PayPal payment information - Up to 1,000 affiliates per import [📖 Learn how to import affiliate data →](/help/migration/how-do-i-import-data-into-affonso) --- ## Need Help with Migration? - **Technical Support**: [hello@affonso.io](mailto:hello@affonso.io) - We typically respond within 2 hours during business hours - **Migration Assistance**: Our team can help you migrate your existing affiliate data and test the integration - **Custom Setup**: Need help with a complex migration? We offer personalized migration support **Questions about your specific setup?** [Contact our support team](mailto:hello@affonso.io) and we'll help you migrate from Rewardful to Affonso smoothly! --- ## Migrate from Tolt to Affonso Complete guide to migrate your existing Tolt affiliate program to Affonso — import your data automatically and replace the tracking integration. # Migrate from Tolt If you're currently using Tolt for your affiliate program and want to switch to Affonso, this guide will walk you through the full migration — from importing your existing data to replacing the tracking integration.
💡 **Good news!** Affonso has a built-in migration tool that automatically imports your partners, customers, and commissions from Tolt. The entire process takes just a few minutes.
### Import Your Existing Data Affonso can automatically import your affiliate data from Tolt — no CSV exports or manual work needed. #### What you'll need - Your **Tolt API Key** — find it in your Tolt dashboard under **Settings → Integrations** ![Tolt API Key](/img/migration/tolt-api-key.png) - Your **Tolt Program ID** — find it in your Tolt dashboard under **Program Settings → General** ![Tolt Program Settings](/img/migration/tolt-program-settings.png) #### How to start the migration 1. Go to **[Settings → Migration](https://affonso.io/app/settings/team/migration)** in your Affonso dashboard 2. Click **Migrate** next to Tolt 4. Enter your API Key and Program ID 5. Click **Start Migration** The migration runs in the background — you'll see real-time progress in the dialog and receive an email when it's done. #### What data is migrated? The migration imports three types of data: - **Partners** — Name, email, and payout details (PayPal, bank). Only active partners with at least one customer are imported. - **Customers** — Name, email, customer ID, and status. Linked to the correct affiliate automatically. - **Commissions** — Sale amounts, commission earnings, and their status (pending, approved, paid, etc.).
💡 **Safe to re-run.** The migration is idempotent — if you run it again, existing records will be skipped. No duplicates will be created.
### Replace the Tracking Script #### Current Tolt Script (Remove This) ```html ``` #### New Affonso Script (Add This) ```html ``` - Replace `YOUR_PUBLIC_PROGRAM_ID` with your program ID from the [Affonso dashboard](https://affonso.io/app/affiliate-program) - Set `YOUR_COOKIE_DURATION` to how many days the tracking should persist > **🍪 Need GDPR/Cookie Consent compliance?** Add `data-requires-consent="true"` to the script above and [follow our GDPR integration guide](/help/installation-guides/overview/gdpr-cookie-consent-integration) for privacy-first tracking. **Where to add it:** Just like with Tolt, add this script to the `` tag on every page of your website (or at least your landing pages) to ensure no referrals are missed. #### Installation Guides Need help installing the script on your specific platform? [Check out our detailed installation guides](/help/getting-started/overview#installation-guides). ### Update Referral Data Collection #### How Tolt Works (Current) Tolt provides referral data via a global JavaScript variable: ```javascript // Tolt approach const referralId = window.tolt_referral; ``` #### How Affonso Works (New) Affonso provides referral data in **two ways** - you can choose the approach that fits your existing setup: ##### Option 1: Client-Side (JavaScript) - Similar to Tolt ```javascript // Client-side approach (similar to Tolt) const referralId = window.affonso_referral || ''; ``` ##### Option 2: Server-Side (Cookie) - More Secure ```typescript // Server-side approach (recommended for security) // Next.js 15+ example import { cookies } from 'next/headers'; const cookieStore = await cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Next.js 13-14 example const cookieStore = cookies(); const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; // Express.js example const affonsoReferral = req.cookies.affonso_referral || ''; // PHP example $affonsoReferral = $_COOKIE['affonso_referral'] ?? ''; ```
💡 **Migration Tip:** If you're currently using `window.tolt_referral` client-side, you can easily switch to `window.affonso_referral` with minimal changes. However, we recommend the server-side cookie approach for better security.
### Update Payment Provider Integration The core principle is simple: replace `tolt_referral` with `affonso_referral` in your payment provider's metadata. This works with **all supported payment providers**.
💡 **Connect your payment provider:** [Connect your payment provider](/help/getting-started/connect-payment-provider) to Affonso before migrating.
#### Migration Pattern (All Payment Providers) **Before (Tolt):** ```javascript metadata: { tolt_referral: req.body.referral, // ❌ Remove this } ``` **After (Affonso):** ```javascript metadata: { affonso_referral: affonsoReferral, // ✅ Add this line } ``` #### Stripe Example (Detailed) ##### Current Tolt Integration ```javascript // Old Tolt way - REPLACE THIS const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { tolt_referral: req.body.referral, // ❌ Remove this }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### New Affonso Integration ```typescript // New Affonso way - USE THIS import { cookies } from 'next/headers'; // Get Affonso referral data const cookieStore = await cookies(); // Next.js 15+ const affonsoReferral = cookieStore.get('affonso_referral')?.value || ''; const session = await stripe.checkout.sessions.create({ success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', metadata: { affonso_referral: affonsoReferral, // ✅ Add this line }, line_items: [ {price: 'price_H5vtDq1fbrJ', quantity: 1}, ], mode: 'subscription', }); ``` #### Integration Guides for All Payment Providers [View all payment provider integration guides →](/help/integrations)
### Optional - Track User Signups While Tolt required explicit signup tracking, Affonso can work without it, but we **strongly recommend** implementing it for better insights. Add this code after your user registration logic: ```javascript // Simple: pass the user's email window.Affonso.signup(userEmail); // Advanced: pass an options object window.Affonso.signup({ email: userEmail, // optional externalUserId: userId, // optional name: userName // optional }); ``` At least one of `email` or `externalUserId` is required when using the object format. **Benefits of signup tracking:** - See which affiliates drive the most registrations - Calculate conversion rates from clicks to signups - Optimize your funnel based on affiliate performance
--- ## Testing Your Migration #### 1. Test Referral Tracking 1. Visit your site with `?atp=test` (Affonso's test affiliate parameter) 2. Check browser DevTools → **Application** → **Cookies** → look for `affonso_referral` 3. The cookie should contain a value like `cmdhq6ayf...` #### 2. Test Stripe Integration 1. Trigger your checkout flow locally with the test referral 2. Check your **server logs/terminal** - the Stripe session should show: ```json metadata: { affonso_referral: "cmdhq6ayf..." } ``` 3. If the metadata appears correctly, you're all set! #### 3. Live Testing **Note:** Use 100% discount codes for live testing without actual payments, or test locally with server logs - Stripe test mode purchases won't appear in Affonso's dashboard. --- ## Migration Checklist
- [ ] **Import data from Tolt** — Use the automatic migration tool in Settings - [ ] **Replace tracking script** — Remove Tolt script, add Affonso script - [ ] **Choose referral data method** — Client-side (`window.affonso_referral`) OR server-side (cookie) - [ ] **Update payment provider metadata** — Change `tolt_referral` to `affonso_referral` - [ ] **Connect payment provider** to Affonso dashboard (Stripe, Polar, Creem, or Dodo) - [ ] **Test referral tracking** with `?atp=test` parameter - [ ] **Test payment integration** with server logs or live testing - [ ] **Optional: Add signup tracking** for better insights
--- ## Need Help with Migration? - **Technical Support**: [hello@affonso.io](mailto:hello@affonso.io) - We typically respond within 2 hours during business hours - **Migration Assistance**: Our team can help you migrate your existing affiliate data and test the integration - **Custom Setup**: Need help with a complex migration? We offer personalized migration support **Questions about your specific setup?** [Contact our support team](mailto:hello@affonso.io) and we'll help you migrate from Tolt to Affonso smoothly! --- ## Blocked Country Detection Restrict affiliate participation based on geographic location for compliance or program requirements Some programs need to restrict affiliates from certain countries — whether for legal compliance, sanctions requirements, or business reasons. Blocked Country Detection enforces these restrictions automatically. ## How It Works When an affiliate sets or updates their country in their invoice information, Affonso checks it against your configured blocklist. If the country matches, a fraud event is created. ## Three Modes Configure this in your [Risk Center Settings](https://affonso.io/app/risk-center/settings): **Off** — No country restrictions. This is the default. **Detect** — The affiliate stays active, but a pending event is created for your review. **Block** — The affiliate is automatically rejected from the program. ## Setting It Up 1. Go to your [Risk Center Settings](https://affonso.io/app/risk-center/settings) 2. Find **Blocked Country Detection** 3. Choose your mode (Detect or Block) 4. Select the countries you want to block from the dropdown 5. Save your changes You must select at least one country when enabling this rule. ## Things to Keep in Mind - Country is based on the affiliate's invoice information, not their IP address. - The check runs when an affiliate updates their invoice details or joins the program. - In **Block** mode, the affiliate's partnership is immediately rejected — they can no longer generate referrals for that program. --- **Need help with regional compliance?** Contact support and we'll help you configure the right restrictions. --- ## Disposable Email Detection Block referrals from customers using temporary or throwaway email addresses Disposable email services (like 10minutemail, tempmail, or guerrillamail) allow anyone to create a temporary email address that expires after a short time. Affiliates can abuse these to fake signups and inflate their referral numbers. ## How It Works When a referral is created, Affonso checks the customer's email domain against a maintained list of known disposable email providers. If the domain matches, a fraud event is created. ## Three Modes Configure Disposable Email Detection in your [Risk Center Settings](https://affonso.io/app/risk-center/settings): **Off** — No detection. This is the default. **Detect** — The referral stays active, but a pending event is created for your review. **Block** — The referral is automatically rejected. Commissions are still calculated but created with a **Declined** status, so you have a full audit trail. You can manually change a Declined earning to Approved if the block was a false positive. Webhook events (`transaction.created` and `transaction.rejected`) are emitted so external systems stay in sync. ## When to Enable This Enable this if you see patterns of referrals from customers who never convert to paying users, or if you notice signups from unusual email domains. It's especially useful for programs that offer lead-based commissions where affiliates get paid per signup. ## Things to Keep in Mind - The disposable email list is regularly updated to cover new providers. - Some legitimate users do use privacy-focused email services. Consider starting with **Detect** mode to check for false positives before switching to **Block**. - Only the email domain is checked — not the full email address. --- **Questions?** Contact support for help with email-based fraud patterns. --- ## Duplicate Payout Method Detection Detect affiliates using the same payment details to identify potential multi-accounting When multiple affiliate accounts share the same payout details, it often indicates one person running several accounts to game your program. Duplicate Payout Method Detection flags these overlaps automatically. ## How It Works When an affiliate updates their payment method or invoice information, Affonso checks whether those details are already in use by another affiliate in your program. This includes payment emails, bank details, crypto wallets, and tax identifiers like VAT or Tax IDs. If a match is found, a fraud event is created linking both affiliates. ## Three Modes Configure this in your [Risk Center Settings](https://affonso.io/app/risk-center/settings): **Off** — No detection. This is the default. **Detect** — Both affiliates remain active, but a pending event is created for your review. **Block** — Both affiliates are automatically rejected from the program. ## Reviewing Flagged Events Duplicate payout events show you which two affiliates matched and which payment details overlap. You can then: - **Confirm** — Both affiliates are rejected - **Resolve** — Mark as a false positive (e.g., a business with multiple legitimate representatives) ## Things to Keep in Mind - Detection runs when affiliates update their payout or invoice details, not retroactively. - In **Block** mode, both the new and existing affiliate are rejected — review promptly if you enable this. - The comparison is normalized (case-insensitive, formatting differences ignored) to catch common evasion attempts. --- **Need help?** Contact support if you're seeing multi-accounting patterns in your program. --- ## Risk Center Overview Protect your affiliate program from fraud with automated detection and manual review tools The [Risk Center](https://affonso.io/app/risk-center) gives you automated fraud detection and a central place to review suspicious activity across your affiliate program. Instead of manually monitoring every referral and affiliate, the system flags issues for you — so you can focus on growing your program. ## What You Get - **Automated detection** for the most common types of affiliate fraud - **Three modes per rule** — turn each check off, monitor silently, or block automatically - **A review dashboard** where all flagged events are collected with full context - **Manual overrides** to confirm fraud or dismiss false positives ## Available Detection Rules Each rule can be configured independently per affiliate program in your [Risk Center Settings](https://affonso.io/app/risk-center/settings): | Rule | What It Catches | |---|---| | [Self-Referral Detection](/help/risk-center/self-referral-detection) | Affiliates referring themselves as customers | | [Disposable Email Detection](/help/risk-center/disposable-email-detection) | Signups from temporary email providers | | [Paid Traffic Detection](/help/risk-center/paid-traffic-detection) | Referrals from paid advertising sources | | [Duplicate Payout Detection](/help/risk-center/duplicate-payout-detection) | Multiple affiliate accounts sharing payment details | | [Blocked Country Detection](/help/risk-center/blocked-country-detection) | Affiliates from restricted countries | ## How Modes Work Every detection rule supports three modes: **Off** — The rule is disabled. No checks are performed. **Detect** — Suspicious activity is flagged for manual review, but no action is taken automatically. Referrals and affiliates stay active. Best for understanding your program's risk profile. **Block** — Suspicious activity is automatically blocked. Referrals are rejected or affiliates are removed. Events are still logged so you can review and override false positives. > **Tip:** Start with **Detect** for any new rule. Review events for a week or two to understand false positive rates before switching to **Block**. ## Reviewing Events All flagged events appear in your [Risk Center](https://affonso.io/app/risk-center) dashboard. Each event shows the detection type, the affiliate and referral involved, and the details that triggered the flag. For every event you can: - **Confirm** — Mark as fraud. The referral is rejected and commissions are declined. - **Resolve** — Mark as a false positive. The referral keeps its original status. --- **Need help setting up your Risk Center?** Contact support and we'll walk you through it. --- ## Paid Traffic Detection Automatically detect and manage affiliates driving referrals through paid advertising channels Some affiliates use paid ads (Google Ads, Meta, TikTok, etc.) to drive referrals — which often means you're paying commissions on traffic you're already paying for through ad spend. Paid Traffic Detection helps you identify and control this. ## How It Works Affonso analyzes incoming referral traffic for signals that indicate a paid advertising source. When a match is found, a fraud event is created in your [Risk Center](https://affonso.io/app/risk-center) so you can review it. Detection covers all major advertising platforms and uses multiple data points per referral to minimize false positives. Each event includes a confidence level (high or medium) so you can prioritize your review. ## Three Modes You can configure Paid Traffic Detection per affiliate program in your [Risk Center Settings](https://affonso.io/app/risk-center/settings): **Off** — No detection. All referrals proceed normally. This is the default. **Detect** — Referrals flagged as paid traffic are still approved and earn commissions, but a pending event is created for your review. Use this to monitor your program before taking action. **Block** — Referrals flagged as paid traffic are automatically rejected. Commissions are still calculated but created with a **Declined** status, so you have a full audit trail. You can manually change a Declined earning to Approved if the block was a false positive. A resolved event is logged for your review. ## Setting It Up 1. Go to your [Risk Center Settings](https://affonso.io/app/risk-center/settings) 2. Find **Paid Traffic Detection** 3. Set your preferred mode 4. Save your changes > **Recommended:** Start with **Detect** mode for 1–2 weeks to understand your traffic patterns before switching to **Block**. ## Reviewing Flagged Events When paid traffic is detected, you'll see events in your Risk Center with the type **Paid Traffic**. Each event shows: - The affiliate and referral involved - The confidence level of the detection - Which advertising platform was identified From there you can: - **Confirm** the event as fraud — the referral is rejected and commissions are declined - **Resolve** the event as a false positive — the referral keeps its original status ## What Affiliates See Affiliates don't see fraud events or detection details. If a referral is blocked, they'll see the referral status as rejected in their portal — the same as any other rejected referral. ## Things to Keep in Mind - Detection only applies to new referrals going forward. Existing referrals aren't retroactively checked. - In **Block** mode, `transaction.created` and `transaction.rejected` webhooks are still emitted for blocked referrals so external systems stay in sync. - If detection encounters an error, the referral proceeds normally — the system never blocks a referral due to a technical failure. - You can change modes at any time. Switching from Detect to Block won't affect previously approved referrals. --- **Questions about paid traffic in your program?** Contact support and we'll help you find the right setup. --- ## Self-Referral Detection Automatically catch affiliates who sign up as their own customers to earn commissions Self-referrals happen when an affiliate uses their own referral link to sign up as a customer and earn commissions on their own purchases. This is one of the most common forms of affiliate fraud. ## How It Works When a new referral is created, Affonso checks whether the customer's email matches any email associated with the referring affiliate — including their account email and payout method emails. If there's a match, a fraud event is created. ## Three Modes Configure Self-Referral Detection in your [Risk Center Settings](https://affonso.io/app/risk-center/settings): **Off** — No detection. **Detect** — The referral stays active and earns commissions, but a pending event is created for your review. This is the **default mode** for new programs. **Block** — The referral is automatically rejected. Commissions are still calculated but created with a **Declined** status, so you have a full audit trail. You can manually change a Declined earning to Approved if the block was a false positive. Webhook events (`transaction.created` and `transaction.rejected`) are emitted so external systems stay in sync. ## Reviewing Flagged Events Self-referral events appear in your [Risk Center](https://affonso.io/app/risk-center) with the matched email visible. From there you can confirm it as fraud (reject the referral and decline commissions) or resolve it as a false positive if the match was coincidental. ## Things to Keep in Mind - Self-referral detection is enabled in **Detect** mode by default for all new programs. - Detection compares against multiple email addresses associated with the affiliate, not just their login email. - Affiliates don't see why a referral was rejected — they only see the status change. --- **Need help?** Contact support for guidance on handling self-referral cases. --- ## Auto-Apply Affiliate Coupons at Checkout Learn how to automatically apply affiliate coupon codes during checkout When a customer arrives on your site through an affiliate referral link, Affonso automatically stores the affiliate's coupon data in the browser. This guide shows you how to retrieve that data and pass it to your payment provider so the discount is applied at checkout — without the customer having to manually enter a code. This works with both **program-wide coupons** and **unique affiliate coupons**. For an overview of both coupon types, see [Double-Sided Incentives with Coupon Codes](/help/commission-payouts/commission/double-sided-incentives). ## Step 1: Retrieve Coupon Data on the Frontend The Affonso tracking pixel provides JavaScript methods to access coupon data. Add this logic to your checkout page or checkout button handler: ```javascript function getCouponForCheckout() { // Check if Affonso is loaded if (typeof window.Affonso === 'undefined') return null; // Prefer unique affiliate coupon over program-wide coupon const affiliateCoupons = window.Affonso.getAffiliateCoupons(); if (affiliateCoupons.length > 0) { return affiliateCoupons[0]; // Most recently created coupon } // Fall back to program-wide coupon return window.Affonso.getDiscount(); } ``` Each coupon object contains: | Field | Description | Example | |-------|-------------|---------| | `couponId` | Payment provider's coupon ID | `"promo_abc123"` | | `promoCode` | Human-readable coupon code | `"JOHN20"` | | `amount` | Discount value | `20` | | `type` | `"percentage"` or `"fixed"` | `"percentage"` | | `maxDuration` | `"once"`, `"forever"`, or `"repeating"` | `"once"` | ## Step 2: Send to Your Backend Pass the `couponId` to your backend when creating the checkout session: ```javascript const coupon = getCouponForCheckout(); const response = await fetch('/api/checkout', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ priceId: 'price_xxx', couponId: coupon?.couponId || null, // ... your other checkout data }) }); const { url } = await response.json(); window.location.href = url; ``` ## Step 3: Apply in Your Payment Provider ### Stripe Pass the `couponId` as a discount when creating a Checkout Session: ```javascript const session = await stripe.checkout.sessions.create({ mode: 'subscription', // or 'payment' line_items: [{ price: priceId, quantity: 1 }], // Apply the affiliate coupon discounts: couponId ? [{ coupon: couponId }] : undefined, success_url: 'https://yoursite.com/success', cancel_url: 'https://yoursite.com/cancel', }); ``` If you use Stripe Promotion Codes instead of Coupons, you can pass `allow_promotion_codes: true` to let customers enter the code manually, or use the `promoCode` field to pre-fill it. [Stripe Checkout Session API Docs](https://docs.stripe.com/api/checkout/sessions/create) ### DODO Pass the `couponId` as `discount_id`: ```javascript const session = await fetch('https://api.dodopayments.com/checkout-sessions', { method: 'POST', headers: { 'Authorization': `Bearer ${DODO_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ product_id: productId, discount_id: couponId || undefined, // ... other fields }), }); ``` [DODO Checkout Session API Docs](https://docs.dodopayments.com/api-reference/checkout-sessions/create) ### Creem Pass the `promoCode` as `discount_code`: ```javascript const session = await fetch('https://api.creem.io/v1/checkouts', { method: 'POST', headers: { 'x-api-key': CREEM_API_KEY, 'Content-Type': 'application/json', }, body: JSON.stringify({ product_id: productId, discount_code: promoCode || undefined, // ... other fields }), }); ``` Note: Creem uses the `promoCode` (the human-readable code) instead of `couponId`. [Creem Checkout API Docs](https://docs.creem.io/api-reference/endpoint/create-checkout) ### Polar Pass the `couponId` as `discount_id`: ```javascript const checkout = await polar.checkouts.create({ productPriceId: priceId, discountId: couponId || undefined, successUrl: 'https://yoursite.com/success', }); ``` [Polar Checkout API Docs](https://docs.polar.sh) ### Paddle Pass the `couponId` as `discount_id` in the checkout items: ```javascript Paddle.Checkout.open({ items: [{ priceId: priceId, quantity: 1 }], discountId: couponId || undefined, }); ``` [Paddle Checkout API Docs](https://developer.paddle.com/build/checkout/build-overlay-checkout) ## Optional: Show the Discount Before Checkout You can display the discount to the customer before they reach checkout to increase conversion: ```javascript const coupon = getCouponForCheckout(); if (coupon) { const discountText = coupon.type === 'percentage' ? `${coupon.amount}% off` : `$${coupon.amount} off`; document.getElementById('discount-badge').textContent = `Your discount: ${discountText} with code ${coupon.promoCode}`; } ``` ## Troubleshooting **Coupon data is `null`:** - Make sure the Affonso tracking pixel is installed and loaded before your checkout code runs - Verify the customer arrived via an affiliate referral link (`?via=...` parameter) - Check that the affiliate has an active coupon (program-wide or unique) **Coupon is not applied at checkout:** - Verify the `couponId` matches a valid coupon in your payment provider - Ensure the coupon hasn't expired or exceeded its usage limit - Check that the coupon is valid for the product/price being purchased --- ## Run Your Affiliate Program with Coupon Codes Only Disable affiliate links and track conversions exclusively through coupon codes for a streamlined partner experience. Some businesses prefer to run their affiliate program using only coupon codes instead of referral links. This approach simplifies tracking, works better for certain marketing channels, and gives affiliates a clear, memorable way to share your product. ## Why Disable Affiliate Links? Running a coupon-only program offers several advantages: - **Simpler for influencers:** Affiliates can share a code verbally in videos, podcasts, or live streams without needing to drop a link - **Better for offline promotion:** Coupon codes work at events, in print materials, or anywhere links aren't practical - **Cleaner tracking:** All conversions flow through a single attribution method - **Reduced fraud risk:** Coupon codes are harder to abuse than referral links ## How to Disable Affiliate Links 1. Navigate to your [Affiliate Program Settings](https://affonso.io/app/affiliate-program) 2. Scroll to **Tracking Settings** 3. Find **Affiliate Links** and toggle the switch to **Off** 4. Save your changes ## What Happens When You Disable Links When affiliate links are disabled: - **Sign-up page:** The referral link section is hidden from new affiliate applications - **Affiliate portal:** Existing affiliates no longer see their referral link in their dashboard - **Tracking:** Only coupon code conversions are tracked and attributed to affiliates Affiliates will still have full access to their portal, performance stats, and commission information. The only change is that referral links become invisible. ## Setting Up Coupon Code Tracking Before disabling links, ensure your affiliates have a way to generate conversions: ### Option 1: Self-Service Coupons Let affiliates create their own coupon codes with your preset discount settings. This scales effortlessly as your program grows. 1. Go to **Coupon Settings** in your Affiliate Program 2. Click **Enable** under Self-Service Affiliate Coupons 3. Configure the discount type, value, and duration 4. Affiliates can now create their own codes in the portal ### Option 2: Manual Coupon Assignment Assign unique coupon codes to specific affiliates directly from your dashboard. 1. Go to [Affiliates](https://affonso.io/app/affiliates) 2. Click the action menu for an affiliate 3. Select **Manage Coupon Code** 4. Enter the code and discount details ## Best Practices **Communicate the change:** Let existing affiliates know you're switching to coupon-only tracking and ensure they have their codes ready before you disable links. **Set clear expectations:** Update your affiliate program terms to reflect the coupon-only model so new partners understand how tracking works. **Monitor performance:** After switching, check your conversion data to ensure affiliates are successfully using their coupon codes. --- **Need help transitioning to coupon-only tracking?** Contact support for guidance on migrating your affiliate program. --- # Blog ## 10 Benefits of Using Affiliate Software for SaaS *2024-11-15* # 10 Key Benefits of Using Affiliate Software for SaaS Businesses in 2024 While various marketing strategies exist, [affiliate marketing](/) has emerged as a particularly powerful approach for SaaS businesses. However, managing an affiliate program manually is virtually impossible - this is where specialized [affiliate software for SaaS](/blog/best-affiliate-software-for-saas) comes into play. Let's explore the ten most significant benefits that affiliate software brings to SaaS businesses. ## Understanding Affiliate Software in the SaaS Context Before diving into the benefits, it's important to understand that [affiliate software](/) for SaaS businesses differs from traditional affiliate tracking solutions. Modern affiliate platforms are specifically designed to handle the unique challenges of software businesses, including subscription-based pricing, multiple product offerings, and complex commission structures. These specialized solutions provide the foundation for scalable affiliate programs that drive sustainable growth. Learn how to [get started with affiliate marketing](/blog/getting-started-with-affiliate-marketing) for your SaaS business. ### 1. Automated Tracking and Attribution One of the most crucial benefits of using affiliate software is the automation of tracking and attribution processes. Modern platforms use advanced tracking methods like JavaScript integration to ensure accurate attribution of every sale. This automation eliminates the risk of missing referrals or incorrectly attributing sales, ensuring that every affiliate gets proper credit for their efforts. For SaaS businesses, this automated tracking is particularly valuable when dealing with subscription-based products. The software can track not just initial signups but also recurring payments, upgrades, and lifetime value of referred customers. This comprehensive tracking ensures fair compensation for affiliates while providing businesses with accurate performance data. ### 2. Streamlined Commission Management Managing affiliate commissions manually can quickly become a logistical nightmare, especially for SaaS businesses with recurring revenue models. Affiliate software automates this entire process, from calculating commissions to processing payments. The system can handle various commission structures, including first-month commissions, recurring commissions on subscription renewals, tiered commission rates based on performance, and custom commission rules for different products or plans. Common commission structures in modern affiliate software: - Performance-based tiered commissions - Lifetime recurring commissions - Hybrid models combining one-time and recurring payments - Custom rules for different subscription tiers This automation saves countless hours of administrative work while ensuring accuracy and timely payments to affiliates. ### 3. Centralized Program Management For SaaS businesses offering multiple products or running various affiliate programs, centralized management is invaluable. Modern affiliate software provides a unified dashboard where businesses can manage all their affiliate programs from one location. This centralization enables businesses to oversee all their affiliate activities, manage multiple programs, and maintain consistent communications from a single interface. The ability to handle everything from one dashboard significantly reduces administrative overhead and improves program efficiency. ### 4. Enhanced Affiliate Experience Successful affiliate programs depend on keeping partners engaged and motivated. Quality affiliate software provides a professional, user-friendly interface for affiliates to track their performance, access marketing materials, and manage their earnings. This enhanced experience creates an environment where affiliates can easily monitor their success, access necessary resources, and maintain motivation through clear performance visibility. The professional interface and comprehensive tools help attract and retain high-performing partners. ### 5. Fraud Prevention and Security In the digital world, fraud prevention is crucial for maintaining program integrity. Modern affiliate software includes sophisticated fraud detection systems that protect both the business and legitimate affiliates. These systems can identify suspicious patterns, prevent self-referrals, and maintain program integrity through advanced monitoring techniques. By implementing robust security measures, businesses can ensure their affiliate program remains trustworthy and sustainable. Key security features typically include: - Real-time fraud detection algorithms - IP tracking and verification - Click pattern analysis - Duplicate transaction prevention ### 6. Detailed Analytics and Reporting Data-driven decision-making is essential for SaaS businesses, and affiliate software provides comprehensive analytics and reporting capabilities. These insights enable businesses to understand which affiliates drive the most valuable customers, which products perform best with affiliate marketing, and the overall ROI of their affiliate efforts. The detailed reporting capabilities help optimize program performance and make informed strategic decisions. ### 7. Marketing Resource Management Effective affiliate marketing requires providing partners with the right promotional materials. Affiliate software simplifies this process by offering centralized creative asset management and distribution. This organized approach ensures affiliates have easy access to up-to-date marketing materials, branded content, and promotional tools. The system streamlines the entire process of creating, distributing, and tracking the performance of marketing materials. ### 8. Scalability and Growth Support As SaaS businesses grow, their affiliate programs need to scale accordingly. A quality [affiliate software for SaaS](/) provides the infrastructure needed for growth, supporting unlimited affiliate recruitment and program expansion without creating operational bottlenecks. The software's architecture ensures that as your program grows, the system can handle increased demand without compromising performance or user experience. ### 9. Integration Capabilities Modern affiliate software seamlessly integrates with essential SaaS business tools. This integration capability ensures smooth data flow between different systems and creates a cohesive operational ecosystem. The software typically connects with various payment processors like [Stripe](/stripe-affiliate-program), analytics platforms, CRM systems, and email marketing tools, creating a unified workflow that supports efficient program operation. ### 10. Cost-Effective Marketing Perhaps the most significant benefit is the cost-effectiveness of affiliate marketing when managed through specialized software. Unlike traditional advertising where costs are incurred upfront, affiliate marketing only costs money when sales are made. The software's automation and efficiency features make this even more cost-effective by reducing administrative overhead and preventing costly mistakes or fraud. ## Making the Most of Affiliate Software To maximize these benefits, businesses should carefully consider their choice of affiliate software. Key factors to evaluate include: - Integration capabilities with existing tech stack - Scalability features for future growth - Commission structure flexibility - Program management tools - Cost-effectiveness of the solution The right [affiliate software for SaaS](/blog/best-affiliate-software-for-saas) transforms partner marketing from a challenging task into a streamlined, profitable marketing channel that drives sustainable growth for your SaaS business. Explore [Affonso's pricing](/pricing) and [feature set](/affiliate-finder) to see how it can help your business grow. --- ## Affonso Alternatives in 2026: Features, Pricing & Reviews *2026-01-19* If you're running a SaaS company and researching [affiliate marketing platforms](/) for your business, there's a good chance you've come across **Affonso** — or maybe you're using it already and want to explore what else is out there. We believe in **transparency**, so instead of pretending there are no other options, here's an honest look at the **top Affonso alternatives** in 2026. We'll show what each tool does well, where it might fall short — and why **Affonso continues to be a trusted choice** for growing SaaS teams worldwide. For a comprehensive comparison, check out our guide on the [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas). --- # What Is Affiliate Software? [Affiliate software](/) helps businesses track, manage, and reward people who refer new customers — known as affiliates. These tools provide the infrastructure to run referral programs, automate commission payouts, detect fraud, and monitor performance. For SaaS companies, affiliate software is a scalable, low-risk way to grow revenue by turning happy users and partners into promoters. Learn more about [getting started with affiliate marketing](/blog/getting-started-with-affiliate-marketing). --- # What Is Affonso? Affonso is a modern affiliate software built specifically for SaaS companies. It offers automated payouts, unlimited affiliates, tools that help you find affiliates and zero transaction fees. Designed to be flexible, affordable, and easy to launch, Affonso gives startups and scaling SaaS teams full control over their affiliate program — without the complexity of bloated affiliate systems or the cost of legacy tools. --- ## 1. Affonso: Built for SaaS Growth, Not Just Affiliate Tracking Before we dive into alternatives, here's what sets **Affonso** apart: - **Starts at just $15/month** - **No transaction fees** - **Unlimited affiliates, programs & referrals** - **Integrated payouts via PayPal, Wise, Crypto & Bank transfer** - **Fraud detection, custom dashboards & automation** - **Flexible plans** including one-time payment option (Revenue Pass) - **[Affiliate discovery tools](/affiliate-finder) included** Whether you're an early-stage startup or managing $30K+ in affiliate revenue, Affonso gives you **powerful features without enterprise pricing**. Deep [Stripe integration](/stripe-affiliate-program), fast setup, and full control — all from one clean dashboard. [Explore Affonso Pricing](/pricing) --- ## 2. Rewardful ![Rewardful Screen](https://files.affonso.io/blog/rewardful-alternatives.jpeg) [Rewardful](/blog/rewardful-pricing-guide) was one of the first affiliate platforms built specifically for **Stripe-powered SaaS** businesses. #### What Rewardful Does Well: - Solid **Stripe subscription support** - Configurable cookie windows & attribution - Recurring commissions - Clean API and developer tools #### Why Users Switch to Affonso: - UI feels outdated - Manual payouts (no built-in managed payouts) - Revenue and feature limits by plan - Less flexibility in branding & fraud control **Summary:** [Rewardful](/blog/rewardful-pricing-guide) is reliable for basic use cases, but as affiliate revenue grows, users often move to **Affonso for automation, integrated payouts, and flexibility.** If you're considering switching, read our [Rewardful alternatives guide](/blog/rewardful-alternatives). --- ## 3. FirstPromoter ![FirstPromoter Screen](https://files.affonso.io/blog/firstpromoter-alternatives.jpeg) [FirstPromoter](/blog/firstpromoter-pricing-guide) has been a legacy player in SaaS affiliate tracking for years, supporting **Stripe, Paddle, and Recurly**. #### Strengths: - Advanced Stripe subscription tracking - Multi-tier commissions - Affiliate + referral + influencer campaigns #### Common Limitations: - Outdated UI - Limited branding & dashboard customization - No affiliate discovery features - Rigid plan limits **Summary:** [FirstPromoter](/blog/firstpromoter-pricing-guide) works well if you're running a basic subscription affiliate model. But for more control and modern UX, **Affonso is a natural upgrade**. Compare more options in our [FirstPromoter alternatives](/blog/firstpromoter-alternatives) article. --- ## 4. Tolt ![Tolt Screen](https://files.affonso.io/blog/tolt-alternatives.jpeg) [Tolt](/blog/tolt-pricing-guide) is a more recent Stripe-native affiliate tool aimed at **startups and indie SaaS teams**. #### Pros: - Fast setup - Clean dashboard - Managed payouts via PayPal/Wise - Stripe, Paddle, and Chargebee support #### Cons: - Limited reporting and analytics - Feature gaps at lower tiers - Rapid price increases over the past year - No built-in fraud tools or affiliate discovery **Summary:** [Tolt](/blog/tolt-pricing-guide) is startup-friendly, but Affonso brings **more value per dollar** with better fraud protection, branding, and growth tools. See all [Tolt alternatives](/blog/tolt-alternatives) if you're considering a switch. --- ## 5. PartnerStack ![PartnerStack Screen](https://files.affonso.io/blog/partnerstack-alternatives.jpeg) [PartnerStack](/blog/partnerstack-pricing-guide) is more than affiliate software — it's a **PRM (Partner Relationship Management)** system used by large B2B SaaS enterprises. #### What It Offers: - Handles affiliates, resellers, referral partners - PartnerStack marketplace - CRM integrations - Scalable automation #### But Keep in Mind: - High starting price (from $800+/mo historically) - No public pricing - Requires sales call to get started - Complex and bloated for affiliate-only needs **Summary:** [PartnerStack](/blog/partnerstack-pricing-guide) is great for enterprise partner ecosystems, but if you only need a **focused, Stripe-integrated affiliate program**, Affonso delivers more value with less complexity. --- ## 6. LinkMink One of the original tools for **recurring commissions in Stripe**, LinkMink is simple, stable — and admittedly a bit dated. #### Good For: - Basic Stripe subscription tracking - Refund-based commission removal - Lifetime/recurring commission models #### Where It Lags: - No fraud protection - Limited dashboard & UX - No custom branding or advanced incentives - No integrated payouts **Summary:** LinkMink is fine for MVPs, but **Affonso offers modern features, custom dashboards, and better scaling potential**. --- ## 7. Tapfiliate ![Tapfiliate Screen](https://files.affonso.io/blog/tapfiliate-alternatives.jpeg) Tapfiliate is a **generalist** platform for affiliate and referral marketing across SaaS, eCommerce, and more. #### Highlights: - Supports Stripe, WooCommerce, Shopify - Multi-language support - Broad campaign tools - API access #### Drawbacks: - Stripe integration is not as deep - Complex UI for simple use cases - Lacks advanced fraud tools - Payout process less streamlined **Summary:** Tapfiliate is flexible across industries, but **Affonso wins for Stripe-first SaaS companies** with cleaner automation and more focused features. --- ## 8. LeadDyno ![LeadDyno Screen](https://files.affonso.io/blog/leaddyno-alternatives.jpeg) LeadDyno is a veteran affiliate tool, one of the few featured in the **Stripe App Marketplace**. #### What It Offers: - Stripe-integrated - Works with PayPal & ACH - Affiliate dashboards - E-commerce + SaaS friendly #### Why It Feels Dated: - Limited customization - Basic reporting - Weak fraud detection - UI hasn't evolved in years **Summary:** LeadDyno is a simple way to start, but most growing SaaS teams outgrow it. **Affonso gives you future-proof scalability** and a modern experience. --- ## 9. TrackDesk ![TrackDesk Screen](https://files.affonso.io/blog/trackdesk-alternatives.jpeg) A newcomer in the space, TrackDesk is designed to be **affordable and easy to use**, especially for non-technical founders. #### Pros: - Stripe integration - Quick setup - Zapier support - Anti-fraud tools #### Limitations: - Limited analytics - Fewer payout options - Less customization - No affiliate discovery **Summary:** TrackDesk is a promising low-cost entry, but **Affonso offers more control, automation, and partner growth tools** for serious SaaS companies. --- #### Why Affonso Stands Out — Even Among the Best There are solid tools out there — no question. But **Affonso was built to fill the gaps left by all of them**, combining: ✓ Deep [Stripe-native automation](/stripe-affiliate-program) ✓ No transaction fees ✓ Modern UI and reporting ✓ [Flexible plans](/pricing) — from $15/mo to one-time payments ✓ Built-in [affiliate discovery](/affiliate-finder) ✓ Custom branding, tracking, and fraud prevention ✓ Full automation of payouts, emails, and partner flows Whether you're early-stage or scaling up, **Affonso gives you everything you need — and nothing you don't.** Read about the [10 benefits of using affiliate software](/blog/10-benefits-of-using-affiliate-software) to see how it transforms your growth. --- ## Final Thoughts Looking at alternatives to Affonso? That's smart. Comparing options helps you make confident, long-term decisions. But if you're a **SaaS team using Stripe**, and you want: - Clear pricing - Fast setup - Full feature access - Real support - And no paywalls as you grow... Then [Affonso](https://affonso.io) might not just be an alternative — it might be your next competitive edge. --- ## TL;DR – Top Affonso Alternatives (2026) | Tool | Best For | Key Limitations | | --- | --- | --- | | **Affonso** | SaaS Businesses | No Chargebee integration| | **Rewardful** | Stripe subscriptions | Outdated UI, manual payouts | | **FirstPromoter** | Multi-tier commissions | Rigid plans, outdated dashboards | | **Tolt** | Startup-friendly affiliate setup | Limited analytics, pricing volatility | | **PartnerStack** | Large partner ecosystems | Expensive, complex, overkill for SaaS | | **LinkMink** | Simple Stripe integration | No fraud tools, outdated experience | | **Tapfiliate** | Cross-platform businesses | Not Stripe-focused, complex UI | | **LeadDyno** | Quick Stripe setup | Weak customization, outdated dashboard | | **TrackDesk** | Non-technical users | Limited analytics and payouts | **Affonso**: The best balance of price, features, and Stripe-native automation — built for SaaS. --- ## Ready to try Affonso? Start your [free 14-day trial](https://affonso.io/auth/signup) now or explore our [pricing](/pricing) and see which plan fits your team best. --- ## Affonso Pricing in 2026: Is It Worth It? *2026-01-19* Affiliate marketing is one of the most cost-effective growth channels for SaaS companies — but choosing the right platform can be frustrating. **Confusing pricing, hidden fees, limited features** — sound familiar? **Meet Affonso**: a modern, developer-friendly [affiliate platform](/) that's **fair, transparent, and affordable** — whether you're just launching or scaling past $30K/month in affiliate revenue. Compare it with other [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) solutions. This article breaks down our pricing structure as of **October 21, 2026**, what you get in each plan, and how we stack up against other players in the space. --- ## Affonso Pricing Overview ###### (As of Sept 17, 2026) | Plan | Monthly Cost | Revenue Limit from Affiliates | Notes | | --- | --- | --- | --- | | **Launch** | $15/month | Up to $1,000/month | Great for early-stage SaaS | | **Growth** | $39/month | Up to $10,000/month | Built for scaling startups | | **Elite** | $99/month | Up to $30,000/month | For advanced affiliate teams | | **Enterprise** | $149/month | Over $30,000/month | Enterprise solution | All plans include a **14-day free trial.** --- ## What's Included at Every Level We believe in delivering full value at every stage — not holding key features hostage behind expensive upgrades. ### Launch – $15/month - Unlimited affiliates & referrals - Custom commission logic - Self-referral fraud protection - Coupon code tracking - Custom branding - Manual payouts via PayPal, Wise & more - Email notifications - Human support - Migration from other tools - 180 affiliate discovery credits per year - **Zero transaction fees** > 💡 Ideal for early-stage SaaS teams validating their affiliate strategy. Learn more about [getting started with affiliate marketing](/blog/getting-started-with-affiliate-marketing). --- ### Growth – $39/month - Everything in Launch, plus: - Private programs - Custom domain - Managed payouts - Remove "Powered by Affonso" - Up to 5 team members - Personalized onboarding & migration - Double-sided incentives - 420 affiliate discovery credits/year > 🔥 Best for growing SaaS companies ready to scale fast with automation. --- ### Elite – $99/month - Everything in Growth, plus: - Unlimited team members - Unlimited affiliate groups - Unlimited affiliate incentives - Custom email sender - Collect W-8/W-9 tax forms - Affiliate invoices - Dedicated success manager - 600 affiliate discovery credits/year > Built for serious SaaS operators scaling with global affiliate teams. --- ## Why We Built Affonso This Way We talked to dozens of SaaS founders before building Affonso. They all had the same complaints about the existing tools: - **[PartnerStack](/blog/partnerstack-pricing-guide)**: No public pricing, required demos, enterprise contracts, and fees up to 15% on payouts. - **[Tolt.io](/blog/tolt-pricing-guide)**: Price doubled in less than 12 months. Free plan removed. Features locked behind $199+/mo plans. - **[Rewardful](/blog/rewardful-pricing-guide)**: Entry-level plans feel limited. Revenue caps and key features hidden in higher tiers. - **[FirstPromoter](/blog/firstpromoter-pricing-guide)**: Reliable, but stuck in 2018 — few product updates, and rigid plan structure. We decided to flip the script: - Simple pricing - Transparent feature access - No hidden fees - Start affordably — grow confidently --- ## Where Affonso Shines - Built **exclusively for SaaS** — works out of the box with [Stripe](/stripe-affiliate-program), Paddle, and more - **No transaction fees**, ever - **[Unique Affiliate Finder](/affiliate-finder)** that helps you grow your partner base - **Fully white-labeled**, even at mid-tier - **Modern UI** with flexible tracking logic - **Human support**, not bots - Easy migration from [Tolt](/blog/how-to-cancel-tolt-affiliate-software-subscription), [Rewardful](/blog/how-to-cancel-rewardful-affiliate-software-subscription), [FirstPromoter](/blog/how-to-cancel-firstpromoter-affiliate-software), and others --- ## Try Affonso Free for 14 Days We get it — switching platforms isn't a decision you take lightly. That's why **Affonso provides a free trial**, so you can test everything yourself. Discover the [10 benefits of using affiliate software](/blog/10-benefits-of-using-affiliate-software) for your SaaS business. [Start your free trial](https://affonso.io/auth/signup) --- ## 📊 TL;DR – Affonso Pricing Breakdown | Plan | Price | Revenue Limit | Best For | | --- | --- | --- | --- | | **Launch** | $15/month | $1,000/month | Early-stage SaaS teams | | **Growth** | $39/month | $10,000/month | Scaling startups | | **Elite** | $99/month | $30,000/month | Advanced teams | | **Enterprise** | $149/month | Over $30,000/month | Enterprise SaaS | All plans: - No transaction fees - Affiliate tracking & automation - Full access, no feature gates - Affiliate discovery credits included --- **Need help migrating or have questions?** We're here — just reach out via hello@affonso.io or chat. Let your affiliates love your product as much as your users do 💙 **→ [Try Affonso today](https://affonso.io/help/migration/migrate-from-tolt-to-affonso)** --- ## Best Affiliate Software for SaaS in 2026: Features, Pricing & Reviews *2026-01-19* Looking for the **best affiliate software for SaaS** in 2026? This comprehensive guide compares the top 10 platforms including **Affonso, PartnerStack, Impact, Tapfiliate, Rewardful, FirstPromoter, Tolt**, and more. We break down features, pricing, integrations, and ideal use cases to help you choose the right affiliate management solution for your SaaS business. Affiliate marketing has evolved into one of the most cost-effective and scalable growth strategies for SaaS companies. As customer acquisition costs rise and organic reach becomes harder to sustain, affiliate programs offer a powerful way to turn loyal users, influencers, and partners into revenue-driving brand advocates. But running an affiliate program manually isn't scalable. That's where [affiliate software](/) steps in. Streamlining everything from tracking to payouts and partner management. In this guide, we explore the **top 10 [affiliate software for SaaS](https://affonso.io) in 2026**, breaking down features, pricing, and ideal use cases to help you find the perfect fit for your business. ## What Is Affiliate Software for SaaS? Affiliate software is a platform that helps businesses create, manage, and scale their affiliate marketing programs. It automates key processes such as: - Tracking affiliate links and referral performance - Managing and calculating commissions - Creating partner dashboards and onboarding workflows - Reporting on sales, clicks, and traffic sources - Integrating with other tools like CRMs, payment gateways, and email marketing software Unlike traditional marketing tools, [affiliate management software](/) is specifically designed to build and nurture performance-based partnerships, ensuring you only pay for actual results. If you're just getting started, check out our guide on [getting started with affiliate marketing](/blog/getting-started-with-affiliate-marketing). ## Why Affiliate Software Is Essential for SaaS Companies SaaS companies face unique challenges when it comes to affiliate marketing: - **Subscription Revenue Tracking**: Many SaaS businesses rely on monthly or annual recurring revenue (MRR/ARR), making it critical to track and reward recurring customer payments (not just the first sale). - **Scalable Growth**: Affiliate programs allow SaaS brands to expand their reach without inflating their paid advertising budgets. - **Automation Is Key**: From onboarding new partners to issuing commissions, automation through affiliate software saves hours of manual work. - **Data-Driven Insights**: Robust analytics help identify your most valuable partners and optimize campaigns based on performance. - **Integration with SaaS Ecosystem**: Affiliate software often plug directly into popular platforms like [Stripe](/stripe-affiliate-program), Paddle, Mailchimp, and more. Ensuring your affiliate program fits seamlessly into your tech stack. To understand the full value proposition, read about the [10 benefits of using affiliate software](/blog/10-benefits-of-using-affiliate-software). ## Key Features to Look For in Affiliate Software for SaaS Not all affiliate software is built equally. Especially when it comes to SaaS use cases. Here are the top features to prioritize: #### Recurring Commission Support SaaS businesses often use subscription models. The right affiliate software should support recurring commissions for every billing cycle, not just one-time rewards. #### Deep Integrations Look for platforms that offer built-in integrations with tools like: - Stripe, Paddle, Polar.sh, Creem, Chargebee (for billing) - HubSpot, Salesforce (for CRM) - MailChimp (for email marketing) - Zapier (for automation) #### Real-Time Analytics & Fraud Detection Accurate tracking and real-time data dashboards allow you to monitor performance and prevent fraudulent clicks or sales. #### White-Label or Branded Partner Portals Give affiliates a seamless, on-brand experience with customizable portals and dashboards. #### Managed Payouts Automated commission payouts save time and reduce human error. Some platforms even fully manage affiliate payments for you, handling taxes, thresholds, and schedules. #### API Access & Webhooks Advanced users may need API access or webhooks to connect affiliate data with custom tools or internal systems. #### Partner Onboarding Automation Streamline the sign-up, approval, and welcome process for new affiliates to reduce friction and get partners promoting faster. #### Affiliate Marketplace An integrated affiliate marketplace allows potential affiliates to discover your program without you having to do outreach. This increases program visibility and attracts active marketers. #### Affiliate Finder Built-in affiliate discovery engines to help you find top-performing affiliates in your niche. Great for scaling faster, though not essential. # 1. Affonso ![Affonso Screen](https://files.affonso.io/blog/affonso-affiliate-software-for-saas.jpeg) [Affonso](/) is built specifically for SaaS businesses looking to launch and scale affiliate programs without the complexity and cost of general‑purpose affiliate tools. From the moment you integrate with your payment provider to running recurring commissions, fraud protection, affiliate discovery and full payout handling. Affonso handles the heavy lifting so you can focus on growth. Here's how it stands out: - Works natively with major SaaS billing platforms for accurate affiliate tracking across the customer lifecycle. - Automates payment processing, compliance, and affiliate management so you focus on growth instead of operations. - Includes partner‑recruitment tools (marketplace, discovery) so you don't just manage affiliates, you find and onboard them. - Designed with pricing and transparency in mind, making it accessible to SaaS teams of all sizes. All of this makes Affonso an excellent choice for SaaS teams that want more than "just affiliate tracking", they want an engine that grows with them. #### Key Features **1. Setup in minutes** ![Affonso Screen](https://files.affonso.io/blog/affiliate-program-settings.jpeg) Affonso is built to integrate directly with major payment processor and MoR. With just a few clicks, you can connect your Stripe, Paddle, Polar, Creem or Dodo Payments account and immediately begin tracking affiliate‑driven conversions, one-time purchases, subscription upgrades, downgrades and refunds. This means you avoid lengthy development work or custom webhooks. The affiliate program is connected to your subscription stack out of the box. **2. Managed Payouts** One of the most time‑intensive parts of running a SaaS affiliate program is managing payouts — invoices, currencies, tax forms, compliance, many affiliate platforms leave you with manual work. Affonso takes this off your plate by handling affiliate payments globally for you. You send one payment to Affonso, and they distribute commissions to your affiliates via multiple payout rails (e.g., PayPal or Wire Transfer). They handle multiple currencies, invoices and tax compliance. The result: less manual admin, fewer errors, faster and more reliable payouts — which increases affiliate satisfaction and drives loyalty. **3. Affiliate Finder** ![Affonso Screen](https://files.affonso.io/blog/affiliate-finder-by-affonso.jpeg) Rather than waiting for affiliates to find your program or manually prospecting one by one, Affonso offers an built‑in "[Affiliate Discovery Agent](/affiliate-finder)". This feature helps you identify, evaluate and recruit potential top‑performing affiliates in your niche and spy your comeptitors affiliates. By surfacing high‑quality partners (who already promote SaaS) you accelerate growth. You spend less time sourcing, outreach becomes more targeted, and your program can scale faster. It gives you proactive partner acquisition instead of purely reactive. **4. Affiliate Marketplace** In addition to you recruiting affiliates, Affonso makes your program discoverable in their own marketplace of affiliate partners. That means your SaaS affiliate program shows up to affiliates browsing actively for new programs to join. This creates an inbound channel for affiliate acquisition. You get partner applications, interest and traffic without solely relying on outbound recruitment. For a growing SaaS program, that added visibility can reduce acquisition cost for affiliates and grow your partner pipeline faster. **5. Fraud Detection** For SaaS affiliate programs, paying out for fraudulent or low‑quality referrals can erode margins fast. Affonso includes fraud detection mechanisms like preventing self‑referrals. By reducing abuse and ensuring only genuine affiliate‑driven conversions count, you maintain program integrity, protect your ARR, and strengthen trust with real affiliates who value fair tracking and payout. **6. GDPR Compliance** Operating globally — especially in Europe — means your affiliate program must comply with data‑privacy and cookie‑consent regulations. Affonso supports GDPR‑friendly tracking flows, consent management, and integrates with your affiliate tracking so you can remain compliant while still capturing referrals and conversions. This ensures your SaaS business isn't exposed to regulatory risk from the affiliate side and helps maintain affiliate trust by showing your compliance credentials. **7. Custom Commission Rules** ![Affonso Screen](https://files.affonso.io/blog/affonso-custom-affiliate-commissions.jpeg) Not all affiliates or SaaS offerings are equal. You might want a different commission for annual plans vs monthly, or for upgrades vs new sign‑ups, or a higher rate for top tier affiliates. Affonso delivers full flexibility. You can set commission rules per product, plan type (monthly/annual), affiliate group or individual affiliate. You can choose one‑time or recurring commissions, combine fixed + percentage models, and tailor logic to your business model. This means you align affiliate incentives closely with your SaaS revenue goals and LTV rather than using one‑size‑fits‑all. **8. Human Support** Too many affiliate software platforms provide only chatbots or large help‑centres and leave you to figure it out. With Affonso you get real human support: onboarding assistance, live video calls if needed, and timely responses. For SaaS teams especially when you're scaling your affiliate program, having a partner who can walk you through setup, troubleshoot workflows or help optimise your program is a major advantage over tools where you're left on your own. #### Pros & Cons Here's a balanced view of what Affonso does well — and where you should still check your requirements. **Pros** - Built specifically for SaaS (subscription, upgrades, refunds, one-time payments) - Rapid setup with native integrations (Stripe, Paddle, etc) - Automated payouts and global compliance — huge time‑saver - Affiliate discovery + marketplace built in — helps scale recruitment - Strong fraud detection and custom commission logic - Human support and modern UX - **[Transparent pricing](/pricing)** model and no hidden revenue cuts **Cons** - If you use exotic payment processors beyond those supported, you'll want to verify compatibility - Very feature‑rich — some simpler programs might only need a subset of the tools, so overhead may feel slightly large #### Conclusion for SaaS startups If you're a SaaS company serious about leverage affiliate marketing as a growth channel — especially where recurring revenue, subscription upgrades, partner recruitment and global payouts matter — Affonso offers a purpose‑built solution that covers all major pain points. From setup to payouts, from discovery to compliance, it's engineered for growth. When you compare it to more generic affiliate tools (or ones built for e‑commerce rather than SaaS), you'll notice that Affonso brings the specialized features you need without requiring a workaround or expensive customisation. --- ## 2. PartnerStack ![PartnerStack Screen](https://files.affonso.io/blog/partnerstack-alternatives.jpeg) [PartnerStack](/blog/partnerstack-pricing-guide) is widely known as a heavyweight in the affiliate and partner marketing space, designed for high-growth SaaS companies that manage more than just affiliates. It shines particularly when you need to run layered programs — think affiliates, resellers, referral partners — all under one roof. For teams running complex or multi-touch partner ecosystems, PartnerStack delivers robust automation and a partner marketplace to scale fast. However, for companies focused purely on affiliate marketing, it might feel heavy and unnecessarily complex. **Key Features** - Built-in partner marketplace to recruit affiliates and agencies - Multi-channel partner support (affiliates, resellers, referrals) - Workflow automation for onboarding, tracking, and payouts - Integrates with Stripe and CRM systems - Commission tracking and payment automation **Pros** - Great for large SaaS businesses with multi-tier partner programs - Access to a large pool of potential partners via marketplace - Strong automation and scalability **Cons** - [High price point](https://affonso.io/blog/partnerstack-pricing-guide) (typically starts at $800+/month) - Requires demo and onboarding — no instant setup - May be overkill if you only need affiliate management --- ## 3. Impact ![Impact Screen](https://files.affonso.io/blog/impact-alternatives.jpeg) Impact.com is a global partnership automation platform that helps businesses manage all kinds of partners — from affiliates and influencers to B2B agencies. It's an enterprise-class system built for data-rich performance marketing at scale. You'll find sophisticated features like cross-device attribution, fraud prevention, and a polished marketplace to find top affiliates. That said, it has a steeper learning curve and cost, which might not suit smaller SaaS teams focused purely on affiliate strategies. **Key Features** - Enterprise-grade tracking and multi-device attribution - Customizable commission logic and event triggers - Built-in fraud protection and compliance tools - Global partner marketplace - CRM and Stripe integration **Pros** - Great for advanced, multi-channel performance marketing - Deep reporting and tracking granularity - Strong fraud and compliance suite **Cons** - Higher complexity and onboarding friction - Requires larger budgets and internal resources - More than needed for simple SaaS affiliate use cases --- ## 4. Tapfiliate ![Tapfiliate Screen](https://files.affonso.io/blog/tapfiliate-alternatives.jpeg) Tapfiliate is a versatile affiliate and referral marketing platform with a strong international focus. It supports multiple languages, integrates with various platforms like Stripe, WooCommerce, and Shopify, and gives developers flexibility through its API. Tapfiliate is a great option for businesses operating in multiple markets or using different payment stacks. For SaaS-only companies that rely heavily on Stripe, however, the experience might not be as tightly optimized as niche tools built specifically for SaaS workflows. **Key Features** - Multi-language affiliate dashboards - Recurring commission tracking - Broad integration support (SaaS, e-commerce, digital products) - Customizable campaign settings - API for custom workflows **Pros** - Strong for international programs - Flexible campaign design - Developer-friendly **Cons** - Stripe integration not as seamless as SaaS-first tools - Dashboard can feel cluttered for SaaS-only use cases - Basic fraud protection --- ## 5. Rewardful ![Rewardful Screen](https://files.affonso.io/blog/rewardful-alternatives.jpeg) [Rewardful](/blog/rewardful-pricing-guide) made its name by being one of the first Stripe-native affiliate platforms designed for SaaS companies. It simplifies affiliate and referral tracking with strong Stripe event handling and recurring commission logic. While it's still a solid option, the pace of development has slowed, and many growing SaaS teams feel limited by its rigid interface, lack of modern design, and minimal automation around affiliate payments. **Key Features** - Deep integration with Stripe and Paddle - Supports recurring and lifetime commissions - Attribution flexibility (first- or last-click) - API and JS snippet for developer customization - Basic fraud filters for coupon abuse **Pros** - Simple and reliable for early-stage SaaS - Excellent Stripe billing event tracking - Easy to set up and use **Cons** - Outdated interface - No built-in payout automation - Limited customization for branding or workflows --- ## 6. FirstPromoter ![FirstPromoter Screen](https://files.affonso.io/blog/firstpromoter-alternatives.jpeg) [FirstPromoter](/blog/firstpromoter-pricing-guide) is a long-standing affiliate platform tailored for subscription-based businesses. It integrates closely with Stripe, Paddle, and Recurly, and has earned a reputation for stability when managing recurring commissions. However, its interface hasn't aged gracefully, and its limited customization can frustrate growing teams that need more control or scalability. **Key Features** - Recurring, lifetime, and multi-tier commissions - Referral, influencer, and partner campaign support - Stripe, Paddle, and Recurly integrations - Tracks upgrades, downgrades, cancellations, and refunds - Supports basic fraud checks **Pros** - Strong automation for recurring SaaS billing - Works across multiple campaign types - Proven track record **Cons** - Dated user interface - Limited partner branding options - No affiliate discovery or marketplace --- ## 7. Tolt ![Tolt Screen](https://files.affonso.io/blog/tolt-alternatives.jpeg) [Tolt](/blog/tolt-pricing-guide) is one of the newer affiliate tools made specifically for Stripe-powered SaaS startups. Its biggest selling point is its plug-and-play simplicity and friendly pricing, making it a great fit for small teams looking to get started quickly. While it covers the basics well, more advanced reporting and fraud detection features are still missing. **Key Features** - Instant setup with Stripe, Paddle, and Chargebee - Branded affiliate dashboards - Automated payouts via PayPal/Wise - Simplified fraud detection **Pros** - Fast to set up and easy to use - Clean UI with startup-ready tools - Budget-friendly for early SaaS teams **Cons** - Basic analytics and limited reporting - No affiliate marketplace - Limited scalability for large teams --- ## 8. LinkMink LinkMink is one of the original players in the Stripe affiliate tracking space. It offers a no-frills, reliable way to manage recurring commissions and refund logic. While dependable, it hasn't evolved as quickly as newer tools and may feel limiting for companies seeking modern UX, branding options, or deeper automation. **Key Features** - Recurring commission tracking - Refund-adjusted payouts - Stripe integration - Easy onboarding **Pros** - Reliable for tracking recurring payments - Minimal setup and clean logic - Good for MVP-stage SaaS tools **Cons** - Outdated interface and design - No automated payouts - Weak fraud prevention and partner management --- ## 9. LeadDyno ![LeadDyno Screen](https://files.affonso.io/blog/leaddyno-alternatives.jpeg) LeadDyno is another legacy tool still active in the affiliate space, known for its broad integrations and appearance in the Stripe App Marketplace. It offers basic automation and dashboards, but its features and interface feel behind the curve when compared to newer tools built for SaaS growth. **Key Features** - Affiliate tracking through Stripe and e-commerce platforms - Basic automation for payouts and tracking - Available through the Stripe App Marketplace - Dashboard for affiliate earnings and referral links **Pros** - Easy to install - Familiar in SaaS circles - Offers core functionality for small businesses **Cons** - Limited reporting and fraud detection - Dated UI and UX - Few branding or customization options --- ## 10. TrackDesk ![TrackDesk Screen](https://files.affonso.io/blog/trackdesk-alternatives.jpeg) TrackDesk is a newer tool focused on making affiliate marketing easy for non-technical SaaS founders. It's one of the fastest tools to set up with Stripe and offers anti-fraud protection and Zapier integration. While great for startups, it still lacks some of the advanced reporting and customization features of more mature platforms. **Key Features** - One-click Stripe onboarding - Affiliate lifecycle tracking - Bot and fraud detection - Zapier integration for automation **Pros** - Super quick setup - Built-in fraud prevention - Affordable for small SaaS teams **Cons** - Lacks depth in reporting - Payout options are limited - Fewer options for scaling larger programs --- ## How to Choose the Right Affiliate Software for Your SaaS Business With so many affiliate software platforms available, choosing the right one for your SaaS business requires clarity on your goals and an understanding of your specific needs. Here's a step-by-step guide to help you make the right decision: #### 1. Define Your Program Goals Are you focused on customer acquisition, brand awareness, or increasing recurring revenue? Your primary goals will determine the must-have features, such as recurring commissions or API flexibility. #### 2. Evaluate Integration Requirements Check whether the software integrates seamlessly with your payment processor (like Stripe or Paddle), CRM (like HubSpot or Salesforce), and marketing stack. The more automated the workflow, the more scalable your affiliate program. #### 3. Consider Scalability and Partner Management If you plan to scale your program rapidly, **you'll need features like** **affiliate finders, marketplaces**, and automation tools for onboarding, communication, and payouts. #### 4. Prioritize Automation and Ease of Use Time is money, especially in SaaS. Look for intuitive dashboards, auto-approvals, scheduled payouts, and automated tracking so your team can focus on growth rather than admin. #### 5. Check Payout Methods and Policies Managed payouts are a huge time-saver, especially when handled by the platform. Review how commissions are calculated, the frequency of payouts, minimum thresholds, and support for international affiliates. #### 6. Look for Affiliate Discovery Tools If you're starting from scratch, having access to an affiliate marketplace or discovery engine can accelerate your partner recruitment efforts. #### 7. Explore Pricing and Trial Options Pricing models vary. Some tools charge flat monthly fees, others take a percentage of revenue or offer tiered pricing. Many offer free trials, so test usability and fit before committing. --- ## FAQs **What is the best affiliate software for SaaS startups?** The best [affiliate software for SaaS](/) startups typically includes a free plan or affordable tier, offers recurring commission tracking, and integrates easily with Stripe, Paddle or Polar. **[Affonso's pricing](/pricing)** is designed specifically for startups with plans starting at just €15/month. For deeper platform comparisons, check out our [Rewardful alternatives](/blog/rewardful-alternatives), [FirstPromoter alternatives](/blog/firstpromoter-alternatives), and [Tolt alternatives](/blog/tolt-alternatives) guides. **Can affiliate software handle recurring commissions for SaaS subscriptions?** Yes, many affiliate platforms are built specifically for recurring revenue models. They allow you to pay affiliates based on subscription renewals, upgrades, or ongoing usage. **How much does affiliate software for SaaS companies typically cost?** Pricing ranges from $15/month to several hundred per month, depending on features, scale, and managed services. Some charge commission on payouts; others offer flat-fee pricing. **Is there any free affiliate software for SaaS?** Some tools offer free trials or limited free plans ideal for testing. However, fully free affiliate software is rare for SaaS due to the complexity of recurring revenue tracking and "free" tools often charge percentage fees that cost you more over time. --- ## Top 6 FirstPromoter Alternatives in 2026: Features, Pricing & Reviews *2026-01-19* Looking for **FirstPromoter alternatives** in 2026? While FirstPromoter has been a trusted name for SaaS affiliate tracking since 2017, many teams are seeking platforms with modern interfaces, more flexible pricing, better fraud protection, and stronger automation. This guide compares the **top FirstPromoter alternatives** including **Affonso, Rewardful, Tolt, Tapfiliate**, and more. **FirstPromoter** has been a staple in the affiliate marketing space for SaaS companies since 2017. With strong Stripe integration and recurring commission support, it's helped thousands of teams launch referral programs. But in 2026, the [affiliate software](/) landscape has changed — and so have the needs of modern SaaS teams. Whether you're outgrowing FirstPromoter or looking for a more flexible, modern solution, this guide covers the **top [FirstPromoter alternatives](/blog/firstpromoter-pricing-guide)**, their pros and cons, and why **Affonso** has become a popular choice for fast-moving, growth-oriented SaaS businesses. For a broader comparison, see our guide on the [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas). --- ## Feature Comparison: FirstPromoter vs Alternatives | Feature | Affonso | FirstPromoter | Rewardful | Tolt | |---------|---------|---------------|-----------|------| | Starting Price | €15/mo | $49/mo | $49/mo | $29/mo | | Transaction Fees | ❌ None | ❌ None | ❌ None | ❌ None | | Recurring Commissions | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | | Multi-Processor Support | ✅ Stripe, Paddle, Polar, Creem, Dodo | ✅ Stripe, Paddle, Recurly | ✅ Stripe | ✅ Stripe, Paddle, Chargebee | | Managed Payouts | ✅ Yes (global) | ⚠️ Limited | ❌ Manual | ⚠️ Limited | | Fraud Detection | ✅ Self-referral blocking | ⚠️ Basic | ⚠️ Basic | ⚠️ Basic | | Affiliate Marketplace | ✅ Yes | ❌ No | ❌ No | ⚠️ Limited | | Affiliate Finder | ✅ AI-powered | ❌ No | ❌ No | ❌ No | | Setup Time | ~15 min | ~45 min | ~30 min | ~20 min | | Best For | SaaS startups | Complex billing scenarios | Stripe-only simple programs | Early-stage SaaS | --- ### What Is Affiliate Software? [Affiliate software](/) enables SaaS companies to track referrals, manage commissions, automate payouts, and scale partner programs. The right tool simplifies the entire process — from signup to payout — while protecting against fraud and offering flexibility as your business grows. Learn more in our [getting started guide](/blog/getting-started-with-affiliate-marketing). --- ### What Is FirstPromoter? [FirstPromoter](/blog/firstpromoter-pricing-guide) is an affiliate platform built for subscription businesses. It integrates with Stripe, Paddle, and Recurly, offering recurring and lifetime commission support, multi-tiered referrals, and customizable attribution models. It's reliable and accurate — but for many teams in 2026, its **dated interface, rigid plan structure, and limited customization** are starting to show their age. --- ## 1. Affonso – The Modern FirstPromoter Alternative [**Affonso**](https://affonso.io/) was built to address many of the limitations SaaS teams face with FirstPromoter. It offers deep Stripe integration, but layers on a modern UI, more flexible pricing, and stronger fraud protection — all without transaction fees or paywalls. ### Why Teams Choose Affonso: - Starts at **€15/month**, with **no transaction fees** - Unlimited affiliates and referrals - [Stripe](/stripe-affiliate-program), Paddle & WooCommerce support - Integrated payouts via PayPal, Wise, crypto & bank - Self-referral fraud detection included - Custom dashboards and commission logic - [Affiliate discovery credits](/affiliate-finder) on all plans - One-time payment option (**Revenue Pass**) for early-stage teams See **[Affonso Pricing](/pricing)** or [start your free trial](https://affonso.io/auth/signup) --- ## 2. Rewardful ![Rewardful Screen](https://files.affonso.io/blog/rewardful-alternatives.jpeg) [Rewardful](https://affonso.io/blog/rewardful-pricing-guide) is another legacy tool built for Stripe. It supports recurring commissions and provides a simple interface for affiliate management. ### Pros: - Stripe-native setup - Recurring and lifetime commissions - Attribution control and API access ### Limitations: - Manual payouts only - UI feels dated - Branding and reporting are limited - No affiliate discovery or payout automation **Summary:** Rewardful is simple, but lacks the flexibility and automation Affonso offers — especially when scaling. For deeper comparisons, explore our [Rewardful alternatives](/blog/rewardful-alternatives), [Tolt alternatives](/blog/tolt-alternatives), and [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) guides. --- ## 3. Tolt ![Tolt Screen](https://files.affonso.io/blog/tolt-alternatives.jpeg) [Tolt](/blog/tolt-pricing-guide) is a more recent affiliate tool, aimed at startups using Stripe, Paddle, or Chargebee. ### Pros: - Fast setup - Clean dashboard - Branded affiliate portals - Managed payouts supported ### Limitations: - Key features locked to higher plans - Rapid price increases over time - Limited analytics and logic customization **Summary:** Tolt is startup-friendly, but Affonso offers better long-term value and control. See all [Tolt alternatives](/blog/tolt-alternatives) or check out our complete comparison in the [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) guide. --- ## 4. Tapfiliate ![Tapfiliate Screen](https://files.affonso.io/blog/tapfiliate-alternatives.jpeg) Tapfiliate is a broader affiliate and referral platform that works across e-commerce and SaaS, including Stripe support. ### Pros: - Multi-platform support - Developer API - Multi-language affiliate portals ### Limitations: - Stripe support not as deep - Interface not optimized for SaaS - Less automation around payouts **Summary:** Tapfiliate is flexible, but Affonso is **more focused and powerful for SaaS-first companies.** --- ## 5. PartnerStack ![PartnerStack Screen](https://files.affonso.io/blog/partnerstack-alternatives.jpeg) PartnerStack is a large-scale partner management tool for B2B SaaS companies with affiliate, referral, and reseller channels. ### Pros: - Supports multiple partner types - Built-in partner marketplace - Onboarding and commission automation ### Limitations: - Custom pricing only (historically starts at $800/month) - Complex setup - Requires demo and sales contact - Affiliate-only features are not the focus **Summary:** Great for enterprise ecosystems. But Affonso is better suited for **lean SaaS teams focused on affiliate growth.** --- ## 6. TrackDesk ![TrackDesk Screen](https://files.affonso.io/blog/trackdesk-alternatives.jpeg) TrackDesk is a newer, lightweight affiliate tool that integrates with Stripe and focuses on ease of use. ### Pros: - Quick setup - Affordable pricing - Fraud protection - Zapier integration ### Limitations: - Limited analytics and reporting - Fewer customization options - Still maturing as a platform **Summary:** TrackDesk is great for early experimentation, but **Affonso offers more robust tools and automation for serious SaaS teams.** --- ## Why SaaS Teams Are Switching from FirstPromoter to Affonso FirstPromoter still does a great job of tracking Stripe events and managing basic commissions. But today's teams want more: - More **customization** - Better **branding and dashboards** - Smarter **fraud detection** - **Integrated payouts** instead of manual exports - Clear, fair [pricing](/pricing) — without plan-based limitations **Affonso delivers all that — in a faster, leaner, more modern platform.** If you're considering canceling FirstPromoter, read our guide on [how to cancel FirstPromoter](/blog/how-to-cancel-firstpromoter-affiliate-software). --- ## Final Thoughts If you're using FirstPromoter and wondering whether it's time to switch to a [modern affiliate platform](/), the answer depends on where you're going — not where you started. Affonso was built for modern SaaS teams that need **automation, flexibility, and control** — without having to commit to enterprise pricing or outdated UX. From early-stage startups to growing SaaS businesses, **Affonso provides the tools to build an affiliate engine that actually scales.** Start [your free trial](https://affonso.io/auth/signup) or visit [Affonso](https://affonso.io/) --- ## TL;DR – Best FirstPromoter Alternatives in 2026 | Tool | Key Strength | Where It Falls Short | | --- | --- | --- | | **Affonso** | Stripe-native, modern, scalable | More automation, better UX | | **Rewardful** | Simple Stripe integration | Manual payouts, limited flexibility | | **Tolt** | Clean UI, fast setup | High pricing, limited analytics | | **Tapfiliate** | Multi-platform support | Not optimized for SaaS | | **PartnerStack** | Ecosystem & resellers | Expensive and complex | | **TrackDesk** | Easy to use, Stripe-friendly | Limited depth, still maturing | --- ## FirstPromoter Pricing in 2026: Is It Worth It? *2026-01-19* **FirstPromoter** has been around since 2017, serving as one of the earliest dedicated affiliate tools for SaaS companies. It earned trust early with transparent pricing and functional flexibility. But in 2026, that landscape has changed. While FirstPromoter still works, its pricing model, feature set, and UX haven't evolved as quickly as many newer competitors. If you're thinking about affiliate software for your SaaS business this year, here's what you need to know. --- ## FirstPromoter's Pricing Journey (2017 → 2026) FirstPromoter's pricing started off simple. But over time, plans have remained relatively static while the expectations of growing SaaS teams have evolved. ### 2017–2019 - Starter: $49/mo – up to $5,000 from affiliates - Business: $99/mo – up to $15,000 - Enterprise: $149+ – above $15,000 Despite minor tweaks, these pricing tiers have mostly remained unchanged over the years. That's unusual in a SaaS world where competitors are iterating quickly. --- ## FirstPromoter Pricing in 2026 | Plan | Revenue Cap | Price | Notable Limitations | | --- | --- | --- | --- | | **Starter** | Up to $5,000/month | $49/month | 2 campaigns, 1,000 promoters | | **Business** | Up to $15,000/month | $99/month | Most features unlocked | | **Enterprise** | $15,000+/month | $149+/month | Requires contact for full access | All plans include **0% transaction fees** and a **14-day free trial**. --- ## What You Get at Each Tier ### Starter – $49/month - Max $5K/month from affiliates - 2 campaigns - Max 1,000 promoters - Coupon & link tracking - Referral dashboard - PayPal payouts - Unlimited team members - No multi-site or advanced payout support --- ### Business – $99/month - Max $15K/month revenue - Unlimited campaigns & promoters - Multi-site support - Wise & bank payouts - Multi-tier commissions (MLM) - Tax form collection (W-9/W-8BEN) - Custom email server --- ### Enterprise – $149+/month - Custom plan for larger programs - Custom CSS/JS - Remove "Powered by" - Dedicated support - Still no public pricing or limits → Feature-rich, but **requires demo and negotiation**, and lacks transparency. --- ## Where FirstPromoter Shines - **Tried-and-tested** tool with years of stability - Solid integrations for SaaS (Stripe, PayPal, Wise) - Offers multi-tier/MLM options for advanced workflows - Tax handling and payout invoicing (for EU/US) - No transaction fees on any plan - Supports unlimited team members even on Starter FirstPromoter can handle complex affiliate logic if you're willing to pay for it — and don't mind a more traditional UI. --- ## Where It Falls Short - **Pricing has barely evolved** since 2018 — despite market changes - **Campaign limits** (2 max on Starter) block flexibility - **1,000 promoter cap** on Starter tier is unusually low - UI feels dated compared to modern platforms - No visible product innovation or roadmap updates - **Enterprise plan lacks public pricing or transparency** In 2026, growth-focused SaaS companies often need more **agility**, **automation**, and **open pricing** from their [affiliate program software](/). FirstPromoter's static tiers make it harder to scale smoothly. --- ## A More Modern Alternative: Affonso If you're looking for a flexible, transparent, and fast-evolving platform, [**Affonso**](https://affonso.io) was built for modern SaaS teams — without outdated caps or confusing pricing. ### Why Affonso? - **Plans start at just $15/month** - **Up to $30,000/mo revenue** on a $99 plan - **No campaign, affiliate, or team member limits** on Growth & Elite - **Built-in fraud detection & custom tracking logic** - **Affiliate discovery agent credits** included - **Modern UI + live support** (even on entry-level plans) - **Transparent pricing, no hidden upsells** [Affonso](https://affonso.io) gives you everything you need to launch and scale your affiliate program — without waiting on demos or outgrowing outdated tiers. --- ## Final Thoughts FirstPromoter helped shape the [affiliate tracking platform](/) space for SaaS back in 2017. But in 2026, its pricing structure and user experience feel increasingly outdated. If you just need a reliable legacy tool, it can still work. But if you want to move fast, scale efficiently, and avoid old-school limitations, [**Affonso**](https://affonso.io) delivers more flexibility and better value at every stage of growth. --- ## TL;DR – FirstPromoter Pricing Overview (2026) | Plan | Revenue Cap | Price | Key Notes | | --- | --- | --- | --- | | **Starter** | $5,000/month | $49/mo | 2 campaigns, 1,000 promoters, limited scalability | | **Business** | $15,000/month | $99/mo | Most features unlocked, still capped revenue | | **Enterprise** | $15,000+/month | $149+/mo | Custom pricing, must contact sales | --- ## Getting Started with Affiliate Marketing for SaaS *2024-11-13* ## Introduction [Affiliate marketing](/) has become one of the most powerful growth channels for SaaS companies. In this guide, we'll walk you through everything you need to know to get started with your own affiliate program. Learn more about the [10 benefits of using affiliate software](/blog/10-benefits-of-using-affiliate-software) for your business. ## Why Affiliate Marketing? Affiliate marketing offers several unique advantages for SaaS companies: - **Cost-effective**: You only pay for actual results - **Scalable**: Affiliates can reach audiences you might never access - **Trust-building**: Recommendations from trusted sources convert better - **Lower CAC**: Typically results in a lower customer acquisition cost If you're considering which platform to use, check out our guide to the [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas). ## Setting Up Your Program ### 1. Define Your Commission Structure The first step is to determine how you'll compensate your affiliates. Common models include: - **Recurring commissions**: Pay affiliates a percentage of every subscription payment - **One-time payments**: Pay a fixed amount per customer - **Hybrid models**: Combine upfront and recurring payments ### 2. Choose Your Tracking Method Accurate tracking is crucial for a successful affiliate program. A dedicated [affiliate program management](/) tool helps you track: - Click-throughs from affiliate links - Sign-ups attributed to affiliates - Conversions and revenue - Commission payouts ### 3. Create Affiliate Resources Your affiliates need resources to promote your product effectively: 1. **Marketing materials**: Banners, logos, and graphics 2. **Product information**: Feature lists, pricing details, screenshots 3. **Email templates**: Pre-written promotional emails 4. **Best practices**: Tips for successful promotion ## Best Practices for Success ### Build Relationships Don't just recruit affiliates and forget about them. Build genuine relationships: - Regular communication through newsletters - One-on-one calls with top performers - Private community or Slack channel - Recognition and rewards for achievements ### Optimize Your Conversion Funnel Make it easy for referred visitors to convert: - Clear value proposition on landing pages - Streamlined signup process - Special offers for referred customers - Fast onboarding experience ### Monitor and Analyze Track key metrics to improve your program: | Metric | What to Track | Why It Matters | |--------|--------------|----------------| | Conversion Rate | % of clicks that become customers | Shows landing page effectiveness | | EPC | Earnings per click | Indicates program profitability | | Cookie Duration | How long tracking lasts | Affects affiliate motivation | | Payout Rate | % of commission paid | Ensures timely payments | ## Common Pitfalls to Avoid ### 1. Setting Commissions Too Low If your commission rate isn't attractive, top affiliates will promote competitors instead. Research your market and offer competitive rates. ### 2. Neglecting Communication Affiliates who feel ignored will stop promoting you. Keep them engaged with regular updates, tips, and support. ### 3. Complex Terms and Conditions Make your program terms simple and clear. Confusion leads to distrust and lower participation. ## Getting Started with Affonso If you're ready to launch your affiliate program, [Affonso](/) makes it simple: 1. Sign up and connect your [Stripe account](/stripe-affiliate-program) 2. Set your commission structure 3. Invite your first affiliates 4. Track everything in one dashboard Our platform handles all the complexity of tracking, attribution, and payouts, so you can focus on growing your program. Check out our [pricing](/pricing) to find the right plan for your needs. ## Conclusion Starting an affiliate program doesn't have to be complicated. With the right structure, tools, and approach, you can create a powerful new growth channel for your SaaS business. Ready to get started? [Try Affonso free for 14 days](https://affonso.io) and launch your affiliate program today. --- *Have questions about affiliate marketing? [Contact our team](mailto:hello@affonso.io) and we'll help you get started.* --- ## How to Cancel Your FirstPromoter Subscription *2025-06-05* Deciding to cancel your **FirstPromoter** subscription? Whether you're cutting costs, simplifying tools, or switching platforms, this guide gives you a clear path. Learn how to cancel, what to consider before doing so, and how to ensure a clean exit from your affiliate program. ## Why Cancel FirstPromoter? Built for SaaS companies, FirstPromoter offers robust affiliate tracking, detailed rewards, branded dashboards, coupon-links, fraud protections, and Stripe-based automation — and it handles auto-payouts via invoices to simplify things. Still, businesses sometimes choose to cancel due to: - **Non-refundable subscriptions** – plans are month-to-month or annual, with no refunds for unused time. - **14-day trial only** – you must cancel within 14 days to avoid charges. - **No self-serve cancel button** – cancellations require navigating billing settings, live chat, or email. - **Manual billing** – while auto-payouts help, the backend can feel clunky compared to fully integrated tools. If you're aiming for simplicity, lower costs, or a more self-serve experience, this guide is for you. ## How to Cancel Your FirstPromoter Subscription ![FirstPromoter Screen](https://files.affonso.io/blog/firstpromoter-alternatives.jpeg) Here are your cancellation options: ### 1. Via Website 1. Log in at **firstpromoter.com** 2. Go to **Account > Billing** 3. Look for the cancel option — usually labeled **"Cancel subscription"** 4. Confirm the cancellation 5. Your account stays active until the end of the current billing period; payments stop afterward. ### 2. Via Live Chat - Access **live chat** within the dashboard and request cancellation. ### 3. Via Email Write to **support@firstpromoter.com** with a message like: > "Please cancel my FirstPromoter subscription. My account email is [your email]." According to their Terms, this method is also valid for cancellation. ## Keep in Mind Before You Cancel - **No refunds** for partial months or after trial. - The platform will remain accessible until your current period ends. - **Export key data**: promoters, links, commissions, settings—especially if you're switching tools. - **Disconnect billing integrations** (Stripe, Paddle) to stop tracking or charges. - **Communicate with affiliates**: give them notice and share migration details if needed. ## What Happens After Cancellation? Once canceled: - No further charges or auto-renewal errors. - Affiliates won't earn after the end date. - The account may remain accessible for historical data. - Your customer should receive confirmation via email or on-screen. ## Looking for a Smarter Alternative? Try Affonso If you're moving on from FirstPromoter, it's the perfect moment to rethink what you really need from an affiliate platform. **Affonso** was built with SaaS founders, WordPress developers, and indie teams in mind — giving you power, flexibility, and automation without unnecessary complexity. ### Why Users Choose Affonso After FirstPromoter | Feature | FirstPromoter | **Affonso** | | --- | --- | --- | | Stripe Integration | ✅ Yes | ✅ Yes | | Auto-Payouts | ✅ Included in Enterprise Plan ($149) | ✅ Included in Growth Plan ($39) | | Affiliate Finder | ❌ | ✅ | | Affiliate Marketplace | ❌ | ✅ | | Affiliate Invoicing | ✅ (with custom setup) | ✅ Fully automated | | Multi-Program Support | 🔶 Available on higher plans | ✅ Included from the start | | Portal Branding | ✅ Basic options | ✅ Full white-label support | | Integration Options | Stripe, Paddle, Chargebee | ✅ Stripe, Paddle, Polar.sh, Creem.io, Dodo Payments| | Payout Methods | PayPal, Bank Transfer (manual) | ✅ PayPal, Wise, Crypto, and more | | Cancel Flexibility | Support-based | ✅ Self-service | ### Why People Switch from FirstPromoter to Affonso | Features | FirstPromoter $49 plan | **Affonso** $15 plan | | --- | --- | --- | | Automated affiliate payouts | ❌ | ✅ | | Affiliates | Limited to 1000 | Unlimited | | Private affiliate program | ❌ | ✅ | | Affiliate Finder | ❌ | ✅ | | Monthly subscriptions | starts at $49 | starts at $15 | --- ### What Affonso Offers - Fast, webhook-based integration with multiple payment providers - Custom commission rules and tier structures - Branded affiliate portals with real-time analytics - Self-referral protection and fraud controls - Multiple payout options — including crypto - Scalable setup for businesses with multiple products or brands ### Ready to switch? If you're done with manual workarounds and want an affiliate system that just works — explore [**Affonso.io**](https://affonso.io/). Built for performance, designed for scale. --- ## How to Cancel Your PromoteKit Subscription *2025-06-04* Looking to cancel your **PromoteKit** subscription? Whether you're scaling back, reducing costs, or switching to a more flexible platform, this guide walks you through the cancellation process step-by-step. Plus, we'll introduce a smarter alternative. ## Why Some Users Move Away from PromoteKit PromoteKit is a strong Stripe-native affiliate tool with a free plan, flexible tracking (links, coupons, subscriptions or one-time payments), fraud protection, and branded portals. Still, depending on your needs, you might encounter some limitations: - **Limited payout options** – While PayPal and Wise are supported, invoice generation for affiliate commissions isn't available. - **No auto-payouts** – All commission payouts must be handled manually. - **Support availability** – Some users required contacting their Stripe partner for custom support needs. - **Scaling plans** – Beyond the free tier (3 referrals), growth plans are fixed at $39/month for revenues up to $10k/month. If you want more automation, invoice handling, or scalable payout options, it may be time to explore alternatives. ## How to Cancel PromoteKit ![Promotekit Screen](https://files.affonso.io/blog/promotekit-screenshot.jpeg) PromoteKit doesn't offer a one-click cancel link on the website—users typically manage billing via Stripe. Here's how to do it: ### 1. Cancel via Stripe Dashboard If the app was connected via Stripe, removal must be done through your Stripe dashboard: - Log into **Stripe** - Navigate to **Connected Apps**, find **PromoteKit** - Click **"Disconnect"** or **"Revoke Access"** ### 2. Remove Billing Authorization If PromoteKit charged your card directly, there will be a recurring payment method listed: - Go to **Customers > Subscriptions** in Stripe - Find the PromoteKit subscription and choose **Cancel subscription** ### 3. Email PromoteKit Support If you're unsure how the app was connected or want confirmation, email: **support@promotekit.com** Include your business email and a polite request: > "Please cancel my PromoteKit subscription and confirm removal." If needed, support may direct you to Stripe settings or billing settings in your account. ## Before You Cancel: A Few Tips - **Save your data** – Export affiliate lists, commissions, links. - **Stop payout obligations** – Schedule pending payouts before deletion. - **Remove webhooks or scripts** – Ensure no broken links remain on your site after cancellation. ## Looking for an Alternative? Meet Affonso Cancelling PromoteKit is one thing — choosing the right next step is what counts. **Affonso** offers flexible affiliate management tailored to SaaS, indie makers, and agencies: ### Affonso Highlights - **Multiple Integrations** – Native support for Stripe, Polar.sh, and Creem.io. - **Auto-Payouts** – Automated payments via PayPal, Wise, or crypto with growth plans. - **Invoicing for Affiliates** – Generates payouts with invoices included. - **Multi-Program Support** – Manage several affiliate programs in a single account. - **Branded Portals** – Full control over domain and design. - **Advanced Safeguards** – Detects self-referrals and protects program integrity. ## Final Thoughts - **Cancelling PromoteKit** is done via Stripe disconnect or support request — easy once you know where to look. - **Looking for more automation, payout options, and invoicing?** Affonso provides it all in one lean, scalable platform. ### Ready to Upgrade? Discover [**Affonso.io**](https://affonso.io/) — automate your affiliate workflow, pay affiliates effortlessly, and scale without limits. No manual billing. No complex setup. Just smart affiliate management designed for you. --- ## How to Cancel Your Rewardful.com Subscription *2025-06-08* If you're looking to cancel your Rewardful subscription, this guide will walk you through the process clearly and efficiently — whether you're switching tools, simplifying your stack, or cutting costs. We'll not only show you how to cancel in a few simple steps but also introduce you to **Affonso** — a powerful, flexible, and more cost-effective alternative built specifically for SaaS teams and digital product creators. ## Why People Cancel Rewardful Rewardful has been around for a while, especially for Stripe-based SaaS companies. It's popular because it's plug-and-play and handles affiliate tracking out of the box. But here's what we hear from founders and creators who end up canceling: - "It only works with Stripe and Paddle. I need more flexibility." - "$49/month feels like a lot for the features I actually use." - "I'm running multiple products but need to pay more just to add more affiliate programs." - "I need crypto payouts — Rewardful doesn't support that." - "I want more control over my affiliate dashboard branding." - "I dont want do make all affiliate payments manually." Sound familiar? You're not alone. Let's cancel this thing. ## How to Cancel Rewardful Subscription ![Rewardful Screen](https://files.affonso.io/blog/rewardful-alternatives.jpeg) ### Option 1: Cancel from Your Dashboard If you're on a paid plan, Rewardful lets you cancel directly from your account. **Here's how:** 1. **Log in** to your Rewardful dashboard 2. Click your profile icon (usually top-right) 3. Go to **Billing** 4. Hit **"Cancel Plan"** or **"Turn off auto-renewal"** 5. Follow the confirmation prompts 6. Done Your subscription will stay active until the end of your current billing cycle — so you won't lose access right away. ### Option 2: Cancel via Email Not seeing the cancel button? You can also email: hello@rewardful.com Just write something like: > "Hi, please cancel my Rewardful subscription. My account email is [your email]." They'll typically respond within 1–2 business days. ## Heads-Up Before You Cancel Here are some quick reminders to avoid issues: **No partial refunds** – If you cancel mid-cycle, you won't get a refund for unused time. **Backup your affiliate data** – Especially if you want to move to another platform. **Disconnect webhooks** – If you've set up Rewardful on Stripe, disconnect those after canceling. **Let affiliates know** – If they're active, give them a heads-up that you're switching platforms. ## What Happens After You Cancel? - Your account stays active until the end of the billing period. - After that, your affiliate links stop working. - Any unpaid commissions may be void if not paid out before closure. - If you had recurring affiliate payments running, make sure to stop those manually via Stripe or Paddle. ## Now What? Try a Smarter Alternative: Affonso Alright — you've canceled Rewardful. But now you need a replacement that does more… for less. Meet **Affonso** — the affiliate platform built for SaaS teams, WordPress developers, and indie makers who want powerful tools without the enterprise bloat. Here's why it's: ### Why People Switch from Rewardful to Affonso | Features | Rewardful $49 plan | **Affonso** $15 plan | | --- | --- | --- | | Automated affiliate payouts | ❌ | ✅ | | Multiple affiliate link parameters | ❌ | ✅ | | Affiliate Finder | ❌ | ✅ | | Affiliate Marketplace | ❌ | ✅ | | Affiliate Portal | ❌ Generic Affiliate Portal | ✅ Fully branded affiliate portal | | Affiliate payouts via Wire transfer | ❌ | ✅ | | Invoice creation for affiliate payouts | ❌ | ✅ | | Monthly subscriptions | starts at $49 | starts at $15 | --- ## Final Thoughts: Don't Just Cancel — Upgrade Rewardful is fine. But if you're here, you're probably ready for something leaner, simpler, and easier on your wallet. Affonso lets you: - Launch affiliate programs in minutes - Track sales with Stripe, Polar.sh, or Creem.io - Offer flexible commissions - Automate payouts via PayPal, Wise, or Crypto - Brand your affiliate portal - Scale as you grow — without switching platforms every 6 months ### Ready to Make the Switch? Check out [**Affonso.io**](https://affonso.io/) and try the one-time deal. No subscriptions. No stress. Just smart affiliate marketing for modern SaaS. --- ## How to Cancel Your Tolt.io Subscription *2025-06-09* If you're considering canceling your **Tolt.io subscription**, you're likely re-evaluating your affiliate marketing stack. Maybe you've hit limitations. Maybe the cost doesn't justify the value anymore. Or perhaps you're just ready for a more flexible platform tailored to how modern SaaS companies grow. Whatever the reason — this guide walks you through exactly how to cancel your Tolt.io subscription, step by step. And once you're done, we'll show you a smarter, more scalable alternative. ## Why People Cancel Tolt Tolt is a capable affiliate marketing platform, especially for SaaS companies using Stripe. It offers detailed tracking, flexible commission rules, and integrations that work well in many cases. But over time, some users decide to move on — and here's what they often cite: - **Rising costs** – Tolt has increased its pricing more than once, which can add up, especially for smaller teams or early-stage businesses. - **Auto-payouts gated behind higher plans** – Automatic affiliate payouts are only available on plans starting at $99/month, which may not be feasible for everyone. - **No invoice generation for commissions** – Affiliates don't receive invoices for payouts, which can create extra admin work or friction with international partners. - **Support responsiveness varies** – Some users have noted delays or limited availability when reaching out for help, especially on lower-tier plans. - **Limited scalability for lean teams** – While the platform offers strong functionality, the cost-to-feature ratio becomes harder to justify if you're not using all the advanced tools. If these points resonate with your experience, you're not alone — many SaaS founders are now looking for solutions that offer more flexibility at a more predictable price point. If any of those pain points sound familiar, you're not alone. ## How to Cancel Your Tolt.io Subscription ![Tolt Screen](https://files.affonso.io/blog/tolt-alternatives.jpeg) Fortunately, canceling Tolt is pretty straightforward. You've got two main options: ### Option 1: Cancel via Dashboard 1. **Log in** to your Tolt account 2. Navigate to your **Billing** or **Account Settings** 3. Find the subscription section 4. Click **"Cancel Subscription"** or **disable auto-renewal** 5. Confirm the cancellation in the prompt Your subscription remains active until the end of the current billing period. After that, you won't be charged further and access will be restricted. ### Option 2: Contact Support If you don't see a cancel button or prefer a direct route, contact Tolt via: **support@tolt.io** Or use the **live chat** option in your dashboard. Just include your account email and a short message like: > "Hi, I'd like to cancel my Tolt subscription. Please confirm the cancellation." ## Before You Cancel: Things to Know - **No refunds** for unused time in a billing cycle - Your affiliate links and portals will stop working after cancellation - Unpaid commissions should be resolved before closing the account - If you've integrated webhooks with Stripe or Paddle, remember to disconnect them - Back up any affiliate or partner data you want to keep ## Now What? Try Affonso – A Better Alternative for SaaS Canceling Tolt is one thing — replacing it with something better is where the real opportunity lies. **Affonso** is a modern affiliate platform designed specifically for SaaS companies, app developers, and WordPress creators. It's fast to set up, easy to manage, and built with the flexibility you need as your business grows. ### Why Users Choose Affonso After Tolt | Feature | Tolt| **Affonso** | | --- | --- | --- | | Auto-Payouts | ✅ Included in Growth Plan ($99) | ✅ Included in Growth Plan ($39) | | Affiliate Finder | ❌ | ✅ | | Affiliate Marketplace | ❌ | ✅ | | Integration Options | Stripe, Paddle, Chargebee | ✅ Stripe, Paddle, Polar.sh, Creem.io, Dodo Payments| | Payout Methods | PayPal, Bank Transfer (manual) | ✅ PayPal, Wise, Crypto, and more | | Cancel Flexibility | Support-based | ✅ Self-service | --- ### Benefits of Using Affonso - **Multiple integrations**: Track and manage affiliates from Stripe, Paddle, Polar.sh, Creem.io, and Dodo Payments - **Custom commission rules**: Tailor payout logic to your sales strategy - **Dedicated affiliate portals**: Let affiliates monitor their performance and access marketing assets - **Global payouts**: Send payments via PayPal, Wise, or even crypto - **One-click setup**: Get running in minutes with clear docs and webhook-based tracking - **Built-in protections**: Prevent abuse and fraud with self-referral detection and clean attribution --- ## Final Thoughts Canceling Tolt is simple — log in, manage your settings, and you're done. But what matters more is what comes next. If you're looking for more flexibility, better integration options, and a cost-effective structure that scales with you — **Affonso** is the better way forward. It's built for SaaS founders, indie developers, and agencies who want powerful affiliate tools without complexity or vendor lock-in. --- ### Ready to Switch? Check out [**Affonso.io**](https://affonso.io/) and see how easy it is to build a smarter affiliate system that actually fits your workflow. --- ## How to Find Your Stripe Account ID *2025-10-02* If you're working with Stripe, whether you're building a SaaS app, integrating subscriptions, or just managing payouts, you'll almost certainly need your **Stripe account ID** at some point. It's the unique identifier that looks like this: `acct_123abc456xyz`, and it's used across the Stripe API and dashboard when working with connected accounts, webhooks, and platform integrations. So, where exactly do you find it? --- ## Where to Find Your Stripe Account ID To find your Stripe account ID: 1. **Log in to your Stripe Dashboard** at [dashboard.stripe.com](https://dashboard.stripe.com/) 2. Go to **Settings** (click the gear icon in the top-right corner) 3. Click on **"Personal details"** under the **Personal settings** section 4. Scroll down to the **"Accounts" section** and click on your organization name to show all your Accounts and their IDs. (it starts with `acct_`) Here's a direct link to get there faster: [https://dashboard.stripe.com/settings/account](https://dashboard.stripe.com/settings/account) Once you're there, just copy the ID. It's usually needed when working with APIs, support, or integrating Stripe Connect features. --- ## What Does the Stripe Account ID Look Like? Your Stripe account ID always starts with `acct_` followed by a long string of random characters. For example: `acct_123abc456xyz` This ID is **not** your login email or business name. It's a unique technical identifier used behind the scenes. --- ## Need the Platform's Stripe Account ID? If you're using **Stripe Connect** and need the **platform's Stripe account ID** for operations like transfers or destination charges, you can usually retrieve it programmatically: ```python import stripe stripe.api_key = "sk_live_..." account = stripe.Account.retrieve() print(account.id) ``` This will return your **current authenticated Stripe account ID**, which is helpful if you're working with both platform and connected accounts. --- ## Final Notes Your Stripe account ID is essential when you're: - Setting up OAuth connections - Creating transfers or payouts via the API - Configuring webhooks for specific connected accounts - Contacting Stripe support for technical issues It's a small detail, but having quick access to it will save you time. --- ## Top Lemon Squeezy Alternatives for SaaS in 2026: What to Use Instead *2026-01-19* Lemon Squeezy quickly became a favorite in the SaaS world thanks to its beautiful interface, built-in subscription billing, and all-in-one Merchant of Record (MoR) functionality. It made launching and scaling a global SaaS product easier than ever, especially for indie developers and small teams who wanted to skip the tax headaches and complex integrations. But in July 2024, something big happened, **Stripe acquired Lemon Squeezy**. While the platform still operates independently for now, the future is less certain. Some teams worry about pricing changes, vendor lock-in, or tighter integration with Stripe's ecosystem. Others just prefer to avoid being tied too closely to one of the industry giants. If you're considering a move, or simply exploring what else is out there, this guide covers the top Lemon Squeezy alternatives for SaaS businesses in 2026. We'll look at each platform's strengths, how they compare to Lemon Squeezy, and why they might be a better fit depending on your growth goals. --- ## What is Lemon Squeezy? Lemon Squeezy is a Merchant of Record platform that handles payments, global taxes, compliance, and customer billing for SaaS and digital product companies. It's known for its elegant UI, built-in affiliate tracking, subscription billing, license key delivery, and no-code integrations. Its pricing is set at 5% plus $0.50 per transaction, with an additional 1.5% for international payments. While that's fairly standard in the MoR space, it does add up, especially for higher-volume businesses. Since the **Stripe acquisition on July 26, 2024**, the Lemon Squeezy roadmap has become a question mark. Will the brand remain separate? Will Stripe's MoR beta eventually absorb Lemon Squeezy into a broader product suite? Those uncertainties are exactly why some SaaS teams are now looking for alternatives. --- ## Paddle Paddle is one of the closest like-for-like alternatives to Lemon Squeezy and has long been a leader in the MoR space. It handles global tax compliance, chargebacks, and payment processing while also offering subscription billing and localized checkout for international users. Its pricing is transparent, 5% plus $0.50 per transaction, with no added fees for global sales. Paddle integrates natively with [**Affonso**](https://affonso.io/integrations), allowing SaaS companies to easily set up and manage affiliate programs. That's a big plus if your business relies on partner-driven growth. Paddle is especially appealing to teams that want enterprise-level MoR functionality without giving up control or predictability in pricing. --- ## Polar Polar is a developer-friendly MoR platform that delivers flexibility without compromising on compliance. Like Lemon Squeezy, it offers subscription support, global tax handling, and seamless checkout experiences, but it also gives developers access to a clean, well-documented API, plus webhook support. Its pricing starts at 4% plus $0.40 per transaction, with small fees for subscriptions and international transactions. Polar also integrates with [**Affonso**](https://affonso.io/polar-affiliate-program) for a native affiliate solution, giving SaaS companies the tools they need to scale through referrals and partnerships. If you loved Lemon Squeezy's simplicity but want something more customizable, Polar is a serious contender. --- ## Creem Creem combines modern design with serious MoR functionality. It supports everything from subscriptions and wallets to real-time customer analytics and compliance reporting—all within a beautifully designed interface. Its pricing is 3.9% plus $0.40 per transaction. SEPA payouts are free for EU businesses, and there's wide support for payment methods like UPI, PayPal, Apple Pay, and iDEAL. Creem also uses [**Affonso**](https://affonso.io/creem-affiliate-program) for affiliate tracking, giving SaaS founders a ready-to-go marketing stack. For European SaaS teams or anyone who appreciates great UX alongside full MoR coverage, Creem is a fantastic Lemon Squeezy alternative. --- ## Dodo Payments Dodo Payments offers a creator-first experience with global payment coverage, subscriptions, and digital delivery features built-in. It's a full MoR provider with a growing customer base among SaaS startups that prioritize flexibility and international readiness. Pricing starts at 4% plus $0.40 per transaction, with 1.5% for non-US transactions and 0.5% for recurring payments. Payouts are available in USD, USDC, INR, and more. DodoPayments also integrates with [**Affonso**](https://affonso.io/dodo-affiliate-program), making it easy to set up affiliate marketing campaigns without relying on external tracking tools. For early-stage SaaS teams aiming for international growth, DodoPayments is a flexible, full-featured alternative. --- ## Stripe Stripe, the new parent company of Lemon Squeezy, is a dominant force in global payments. It offers unmatched flexibility, deep developer tooling, and an ecosystem of integrations. The big news? In 2026, **Stripe announced the private beta of its own Merchant of Record solution**, aiming to compete with Paddle and the very product it acquired. The pricing for MoR through Stripe is expected to include an additional **3.5% fee on top of standard transaction fees**, which pushes it toward the higher end of the market. Still, for technical teams that want maximum control and are already integrated into the Stripe ecosystem, this MoR beta could become a powerful option, especially since Stripe also supports [**Affonso**](https://affonso.io/stripe-affiliate-program) for affiliate tracking. That said, if you're not already committed to Stripe, it might be worth considering more transparent and specialized MoR platforms instead. --- ## Gumroad Gumroad is a simple, creator-first MoR platform that supports subscriptions, global VAT, and customer management. It's not as feature-rich as Lemon Squeezy or Paddle, but it gets the job done with minimal setup or technical requirements. It charges 10% plus $0.50 per transaction, plus Stripe or PayPal processing fees, so it's not the cheapest. But it includes affiliate tracking, product delivery, and tax handling out of the box, making it great for solo developers or smaller SaaS tools. If you're prioritizing ease over customization, Gumroad is a hands-off alternative to Lemon Squeezy. --- ## Payhip Payhip is another affordable alternative that doesn't offer MoR, but it does handle VAT, subscriptions, and digital delivery. It has a built-in affiliate system and offers a free plan (5% per sale) and two paid tiers ($29/month and $99/month) that reduce the transaction fee to 2% or 0%. While it doesn't include full tax or compliance handling like Paddle or Polar, Payhip is a great option for SaaS businesses with simpler needs or those who want to keep costs low while validating a product. --- ## BagelPay BagelPay is a newer MoR player with a focus on international payments, subscriptions, and transparent pricing. It charges 5% plus $0.50 per transaction but doesn't add extra fees for subscriptions or most international payouts. Although affiliate support isn't included yet, BagelPay does offer wide payment method coverage (UPI, SEPA, PayPal, Google Pay) and localized checkout flows. It's a strong alternative for SaaS teams operating in global markets, especially across India and Southeast Asia. --- ## Mollie Mollie isn't a MoR, but for SaaS companies based in Europe, it's a great option for collecting payments with support for all major EU-focused methods like SEPA, iDEAL, and Bancontact. You'll need to handle tax compliance and subscription logic yourself, but Mollie's API is developer-friendly, and its pricing is competitive. If Lemon Squeezy's acquisition made you nervous and you're looking for a lightweight EU-native solution, Mollie might be the right pick. --- ## Final Thoughts Lemon Squeezy raised the bar for what a modern SaaS billing solution could look like, and its acquisition by Stripe only confirms how valuable MoR platforms have become. But with that acquisition also comes uncertainty. If you're looking to regain control, reduce fees, or explore tools with more transparency and flexibility, the time to explore alternatives is now. Whether it's **Paddle for enterprise-grade MoR**, **Polar for developer control**, or **Creem for clean design and EU payouts**, there's no shortage of strong Lemon Squeezy alternatives in 2026. And if affiliate marketing is part of your growth strategy, most of these tools, including Stripe, Paddle, Polar, Creem, and DodoPayments, integrate natively with [**Affonso**](https://affonso.io/integrations), offering a complete marketing and billing stack out of the box. --- ## Best Open Source Affiliate Software for SaaS *2024-12-23* # The Truth About Open Source Affiliate Software for SaaS in 2026 The allure of open source affiliate software is undeniable, especially for SaaS companies looking to launch their first affiliate program. As the landscape of affiliate marketing evolves in 2024, many business owners find themselves drawn to the promise of free, customizable solutions. But here's what nobody is talking about: the real impact these choices have on your SaaS growth trajectory. After years of working with hundreds of SaaS companies, we've witnessed firsthand how the wrong choice in affiliate software can stall growth at crucial scaling moments. The open source landscape has changed dramatically, and it's time for an honest conversation about what this means for your business. ## A Shrinking Open Source Landscape The reality of open source affiliate software in 2026 might surprise you. While dozens of options existed just a few years ago, the field has narrowed significantly. Today, Raider stands as perhaps the only viable open source option for SaaS companies. This consolidation isn't coincidental - it reflects the growing complexity of modern affiliate marketing requirements and the challenges of maintaining robust, secure systems without commercial backing. Raider offers a self-hosted solution with customization capabilities, but it comes with a catch that many SaaS founders discover too late: the implementation complexity can drain valuable development resources that could be better spent on your core product. The technical debt accumulates silently until it demands attention at the worst possible moment - usually when your affiliate program starts gaining real traction. ## The Hidden Complexity of Self-Hosted Solutions When evaluating open source affiliate software, many SaaS companies focus solely on the upfront cost savings. This surface-level analysis misses the deeper operational implications of managing a self-hosted affiliate system. Your development team becomes responsible for security patches, server maintenance, and custom feature development. Each hour spent maintaining affiliate infrastructure is an hour not spent improving your core SaaS product. The challenge compounds as your affiliate program grows. What starts as a simple tracking system quickly needs to evolve into a sophisticated platform handling complex commission structures, multiple tiers of affiliates, and integration with various payment processors. These requirements often emerge gradually, creating a constant drain on development resources that could be directing their energy toward your product's competitive advantage. ## Why Modern SaaS Companies Are Shifting Away from Open Source The trend we're seeing is clear: successful SaaS companies are increasingly choosing purpose-built affiliate solutions over open source alternatives. This shift isn't driven by marketing or sales pressure - it's a practical response to the real challenges of scaling an affiliate program in today's market. The modern SaaS affiliate program needs a reliable [SaaS affiliate tracking solution](/) that can handle recurring commissions, complex attribution models, and seamless integration with existing tech stacks. Think about the fundamental nature of SaaS businesses. Your success depends on delivering reliable, scalable solutions to your customers while maintaining focus on your core value proposition. Every hour spent managing infrastructure is a distraction from that mission. This reality becomes particularly acute when dealing with affiliate programs, where reliability and accuracy directly impact your relationships with partners who drive growth. ## The Future of Affiliate Marketing for SaaS The affiliate marketing landscape is evolving rapidly, and today's solutions need to do more than just track clicks and conversions. Modern affiliate programs require sophisticated fraud prevention, automated commission calculations for recurring revenue, and seamless integration with other systems. These requirements aren't nice-to-haves - they're essential for running a competitive program that attracts and retains high-performing affiliates. Open source solutions, while admirable in their flexibility, struggle to keep pace with these evolving needs. The community-driven development model excels at solving specific technical challenges but often falls short when addressing the complex, interconnected requirements of modern SaaS affiliate programs. This limitation becomes particularly apparent when dealing with recurring revenue models and multi-tier commission structures common in SaaS. ## Making the Strategic Choice for Your SaaS Business The decision between open source and purpose-built [affiliate marketing software for SaaS](/) isn't just about features or initial costs - it's about strategic alignment with your business goals. Your affiliate program should accelerate growth, not create technical debt. It should empower your partners, not burden your development team. Most importantly, it should scale seamlessly as your business grows. At Affonso, we've built our platform specifically for SaaS companies because we understand these unique challenges. Our experience shows that the most successful SaaS affiliate programs focus on partner relationships and program optimization, not infrastructure management. The future of SaaS affiliate marketing belongs to companies that can move quickly, adapt to changing market conditions, and focus on growth rather than infrastructure. Whether you're just starting your affiliate program or looking to scale an existing one, the key is choosing a foundation that supports your long-term success. The open source path, while appealing at first glance, often leads to technical debt and missed opportunities that become apparent only when it's most costly to change course. Ready to build an affiliate program that scales with your SaaS business? Let's talk about how Affonso can help you achieve your growth goals without the technical overhead. --- ## Top Paddle Alternatives for SaaS in 2026: Payment Platforms Compared *2026-01-19* Paddle has become one of the most well-known payment platforms for SaaS businesses—especially those expanding internationally. Its all-in-one Merchant of Record model handles taxes, compliance, and billing, making it a plug-and-play solution for global growth. But as good as it is, Paddle isn't the perfect fit for everyone. Some teams want more control. Others need lower fees, faster payouts, or different integrations. And while Paddle does a lot well, there's growing competition from newer platforms that are just as powerful—sometimes even more flexible or better suited to specific business models. If you're exploring alternatives to Paddle in 2026, you're in the right place. In this guide, we'll walk through the best Paddle alternatives for SaaS companies, breaking down what makes each one unique—and where they might be a better fit for your business. --- ## Stripe [Stripe](https://stripe.com) is one of the most developer-friendly payment platforms in the world, and for many SaaS companies, it's the default starting point. With a flexible API, real-time analytics, and global support, Stripe gives full control over the billing experience. The biggest downside? Until now, Stripe didn't offer MoR functionality. But in 2026, Stripe has finally rolled out a **private beta for its own MoR service**, set to charge an **additional 3.5% on top of regular fees**. That means full MoR coverage could soon be a part of Stripe's ecosystem—but at a premium. What makes Stripe even more powerful now is its integration with [**Affonso**](https://affonso.io/stripe-affiliate-program), allowing SaaS businesses to run native affiliate programs with deep tracking, partner attribution, and flexible commission rules. If you're a dev-first team and want to keep control while preparing for MoR capabilities in the near future, Stripe may actually be worth keeping—or coming back to. --- ## Lemon Squeezy [Lemon Squeezy](https://www.lemonsqueezy.com/) offers a sleek, all-in-one MoR solution tailor-made for SaaS, digital products, and creators. It includes subscriptions, license key management, tax handling, and a built-in affiliate system—making it a strong Paddle alternative from both a feature and user experience standpoint. In a major twist, **Stripe acquired Lemon Squeezy on July 26, 2024**, signaling its intention to double down on the MoR market. While Lemon Squeezy remains an independent product for now, future integrations or pricing shifts could follow. Its pricing sits at 5% plus $0.50 per transaction, with an additional 1.5% for international payments. For many SaaS startups, the ease of use and all-in-one structure is worth every penny. Plus, affiliate marketing is a breeze thanks to native tracking and commission tools. --- ## Polar [Polar](https://polar.sh/) is a developer-focused MoR platform built for SaaS from the ground up. It combines API-level flexibility with the legal protection of a full MoR. Recurring payments, subscription management, fraud handling, and chargebacks—it's all covered. Like Paddle, Polar uses [**Affonso**](https://affonso.io/polar-affiliate-program) for its affiliate infrastructure, allowing teams to set up and scale performance-based sales without relying on clunky third-party tools. Pricing is 4% plus $0.40 per transaction, with modest add-ons for recurring payments and international fees. If you're building a SaaS product with a dev-heavy team and want to move fast while staying compliant globally, Polar is a solid Paddle alternative. --- ## Creem [Creem](https://www.creem.io/) brings design and performance together in a MoR solution built with SaaS businesses in mind. It offers subscriptions, wallet support, customer analytics, and international tax handling—all wrapped in a beautiful, intuitive UI. Its pricing model starts at 3.9% plus $0.40, with free SEPA payouts for EU-based users, making it a great choice for European SaaS teams. It supports a wide range of payment methods including UPI, PayPal, iDEAL, and Apple Pay. Creem also partners with [**Affonso**](https://affonso.io/creem-affiliate-program) to deliver native affiliate tracking—giving SaaS marketers the tools they need to grow through referrals and partnerships. If you care about UX and want a modern MoR setup with strong EU coverage, Creem is a strong alternative to Paddle. --- ## Dodo Payments [Dodo Payments](https://dodopayments.com/) is a creator-first MoR platform with growing appeal in the SaaS world. It supports subscriptions, digital product delivery, global payments, and offers a clean, customizable checkout experience. Pricing is 4% plus $0.40, with an added 1.5% for international transactions and 0.5% for subscription payments. Payouts are also optimized for both US and international businesses—including options like USDC. DodoPayments relies on [**Affonso**](https://affonso.io/dodo-affiliate-program) for its affiliate infrastructure, giving SaaS teams an easy way to roll out referral and partner campaigns without needing to build anything custom. If you're a SaaS company selling globally with a lean team, and want built-in tools for marketing and compliance, DodoPayments is a practical, full-featured alternative to Paddle. --- ## Gumroad [Gumroad](https://gumroad.com/) may have started as a platform for digital artists, but today it's a full-fledged MoR solution suitable for small SaaS products, indie tools, and creators with recurring revenue. Its pricing is on the higher end—10% plus $0.50 per transaction, plus payment processing fees—but there are no monthly charges or complex setup steps. Gumroad handles global VAT, customer communication, refunds, and more. It also includes built-in affiliate tools and customer management features. For SaaS founders looking for a simple, zero-code payment solution with all the MoR benefits, Gumroad might be just enough without being overwhelming. --- ## Payhip [Payhip](https://payhip.com/) doesn't offer MoR functionality, but it's still a solid Stripe alternative for SaaS founders who want to keep things lightweight. The free plan charges 5% per transaction, while its Plus ($29/mo) and Pro ($99/mo) plans reduce fees to 2% and 0% respectively. It includes storefronts, membership tools, affiliate tracking, and VAT handling—making it a surprisingly robust option for info products, micro-SaaS, or early-stage tools. If Paddle feels too heavy and you don't mind managing taxes yourself, Payhip can be a good stepping stone. --- ## BagelPay [BagelPay](https://bagelpay.io/) is a lesser-known MoR platform that focuses on transparent pricing and global payouts. It supports major payment methods like UPI, SEPA, PayPal, and Apple Pay. With a flat 5% plus $0.50 fee per transaction, and no added cost for subscriptions or most international payouts, it keeps pricing predictable. While affiliate tracking isn't built-in yet, its MoR foundation makes it strong for international SaaS businesses. If you're looking for a Paddle alternative with global reach and minimal overhead, BagelPay is worth checking out—especially for SaaS companies in India or Southeast Asia. --- ## Mollie [Mollie](https://www.mollie.com/) isn't a MoR, but it's one of Europe's best-known payment processors. With strong support for local methods like iDEAL, SEPA, and Bancontact, it's perfect for SaaS businesses serving customers across the EU. Its APIs are clean, the pricing is transparent, and payouts are fast. You'll still need to handle your own taxes and compliance, but if you're not ready for a full MoR model and need something lighter than Paddle, Mollie is a solid option. --- ## TL;DR Paddle offers a powerful, all-in-one solution for SaaS companies—but it's not the only game in town. In 2026, the field is wide open, with Stripe entering the MoR race, Lemon Squeezy refining its experience, and platforms like Polar, Creem, and DodoPayments offering equally robust alternatives—with flexible pricing and built-in affiliate support through **Affonso**. Whether you need deep API access, a modern UI, or the simplest way to go global, there's a Paddle alternative out there that fits your stack and your stage. If you're running a SaaS and relying on affiliate marketing to grow, don't miss the opportunity to explore platforms that integrate natively with **Affonso**, giving you a head start with seamless tracking and partner management. (Link to your Affonso affiliate landing page here.) --- ## PartnerStack Pricing in 2026: Is It Worth It? *2026-01-19* PartnerStack is often considered the "enterprise standard" for B2B partner programs. With over 100,000 active partners in its marketplace, it positions itself as the platform of choice for complex partnership ecosystems. But here's the catch: > PartnerStack removed public pricing years ago — and that's usually not a good sign. In this article, we break down what we know about PartnerStack pricing, how it's changed, what you get for your money, and whether it still delivers value in 2026. --- ## A Quick Look at PartnerStack's Pricing History Unlike most modern SaaS tools, **PartnerStack hides its pricing** behind demo forms and sales calls. But early snapshots reveal just how expensive it has always been. ### 2019 Pricing (Publicly Listed) | Plan | Starting Price | Notes | | --- | --- | --- | | **SMB** | $800/mo + fees | For single-tier programs | | **Essentials** | $1,500/mo + fees | Out-of-the-box functionality | | **Enterprise** | Custom pricing | Complex integrations, CRMs, multi-partner types | In addition to the **monthly base cost**, PartnerStack charged an **additional fee on partner commissions**, typically between **3–15%** depending on volume and plan. --- ### 2020–2026: No More Public Pricing From 2020 onward, PartnerStack removed all pricing details from its website. The messaging shifted to: > "We work with every customer to create a plan tailor-made for their business." In practice, this means **you must speak to sales** to get even a ballpark quote — and for many startups, that's a red flag. --- ## What You Get with PartnerStack in 2026 Although pricing is hidden, all plans currently include: - Access to **PartnerStack Marketplace** (100K+ active partners) - **Automated partner payments** via self-serve withdrawals - **Link-based attribution** and partner analytics - **Onboarding automation** with content journeys - Ticket, email, or phone support depending on plan Enterprise plans offer: - CRM-to-CRM integrations - Partner tiers and groups - White-label options - Custom integrations - Full reseller & multi-channel support But again — **none of these come with transparent pricing**. --- ## Where PartnerStack Shines - **Large B2B partner ecosystem** baked into the platform - **Marketplace exposure** for scaling fast - Strong tools for **resellers, affiliates, and referral partners** - **Robust automation** for onboarding and partner journeys - Handles **compliance and payouts** across currencies PartnerStack is ideal for **large, mature companies** running multi-channel programs — especially when budget isn't a concern. --- ## Where PartnerStack Falls Short - **No public pricing** = no transparency - **High base cost ($1500+/mo)** - **Additional commission fees (3–15%)** - **Requires sales calls to even get started** - **Overkill for most SaaS startups or mid-sized teams** - **Complexity adds friction**, especially for simple affiliate use cases > Many reviews on Capterra cite PartnerStack as "very expensive", with slow support and limited flexibility for non-enterprise needs. If you're early-stage or lean — you're likely **paying for features you don't need**. --- ## A Better Alternative: Affonso If you want the power of a modern partner platform **without enterprise bloat**, [**Affonso](https://affonso.io)** is built exactly for you. - **Transparent pricing from $15/mo** — no hidden fees - **No commission fees** ever - **Unlimited affiliates and referrals** - **Managed payouts via PayPal, Wise, and more** - **Custom commission flows** and tracking logic - **Built-in affiliate discovery tools** (included credits) - **No "Powered by" branding on Growth plan and up** [Affonso](https://affonso.io) delivers everything most B2B teams need — **without sales calls or budget approvals.** --- ## Final Thoughts PartnerStack has its place — especially for global enterprise programs with reseller networks and CRM integrations. But if you're a **growth-stage SaaS company** looking to build an affiliate or partner program, **PartnerStack is often too expensive, too opaque, and too complex** for what you actually need. [**Affonso**](https://affonso.io) gives you the tools you need to scale — without locking features behind demos and percentage-based fees. --- ## TL;DR – What We Know About PartnerStack Pricing (2026) | Plan | Starting Price | Fees on Commissions | Public Pricing? | Notes | | --- | --- | --- | --- | --- | | **SMB** | $800+/mo | 3–15% | ❌ Removed | For basic partner programs | | **Essentials** | $1,500+/mo | 3–15% | ❌ Removed | Includes referral + reseller tools | | **Enterprise** | Custom | Likely lower % | ❌ Removed | Custom integrations, CRMs, full support | **Compared to Affonso:** | Plan | Monthly Price | Revenue Limit | Commission Fees | Public Pricing | | --- | --- | --- | --- | --- | | **Launch** | $15/mo | $1,000/mo | 0% | ✅ Yes | | **Growth** | $39/mo | $10,000/mo | 0% | ✅ Yes | | **Elite** | $99/mo | $30,000/mo | 0% | ✅ Yes | | **Revenue Pass** | $99 (one-time) | Until $10K earned | 0% | ✅ Yes | --- ## Best Rewardful Alternatives in 2026: Features, Pricing & Reviews *2026-01-19* Looking for **Rewardful alternatives** in 2026? If you're running a SaaS business with a Stripe-based affiliate program, you've probably considered or used Rewardful. While Rewardful pioneered Stripe-native affiliate tracking, many teams are now seeking platforms with better fraud detection, flexible commission logic, integrated payouts, and modern dashboards. This guide compares the **top Rewardful alternatives** including **Affonso, FirstPromoter, Tolt, PartnerStack**, and more. Affiliate marketing is one of the most effective and scalable growth channels for SaaS businesses — but only if you're using the right tools. **Rewardful** has long been a go-to solution for Stripe-based startups. It's simple, Stripe-native, and reliable. But in 2026, many SaaS teams are looking for more — better fraud detection, more flexible commission logic, integrated payouts, and modern dashboards. If you're searching for the best **[Rewardful alternatives](/blog/rewardful-pricing-guide)**, this guide compares the top platforms on the market today — and why **Affonso** has become the first choice for modern, growth-focused SaaS companies. For a broader overview, check out our [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) guide. --- ## Feature Comparison: Rewardful vs Alternatives | Feature | Affonso | Rewardful | FirstPromoter | Tolt | |---------|---------|-----------|---------------|------| | Starting Price | €15/mo | $49/mo | $49/mo | $29/mo | | Transaction Fees | ❌ None | ❌ None | ❌ None | ❌ None | | Recurring Commissions | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | | Multi-Processor Support | ✅ Stripe, Paddle, Polar, Creem, Dodo | ✅ Stripe | ✅ Stripe, Paddle, Recurly | ✅ Stripe, Paddle, Chargebee | | Managed Payouts | ✅ Yes (global) | ❌ Manual | ⚠️ Limited | ⚠️ Limited | | Fraud Detection | ✅ Self-referral blocking | ⚠️ Basic | ⚠️ Basic | ⚠️ Basic | | Affiliate Marketplace | ✅ Yes | ❌ No | ❌ No | ⚠️ Limited | | Affiliate Finder | ✅ AI-powered | ❌ No | ❌ No | ❌ No | | Setup Time | ~15 min | ~30 min | ~45 min | ~20 min | | Best For | SaaS startups | Stripe-only simple programs | Complex billing scenarios | Early-stage SaaS | --- ### What Is Affiliate Software? [Affiliate software](/) enables companies to run, track, and scale partner programs. It automates referral tracking, calculates commissions, prevents fraud, and handles payouts — allowing you to turn customers, influencers, and partners into scalable acquisition channels. Learn the fundamentals in our [getting started with affiliate marketing](/blog/getting-started-with-affiliate-marketing) guide. --- ### What Is Rewardful? Rewardful is a Stripe-focused affiliate tool launched in 2017. It quickly became popular among SaaS startups for its simplicity, recurring commission support, and clean developer API. However, its interface, feature set, and plan flexibility haven't evolved much — which is why many teams outgrow it. --- ## 1. Affonso – A Modern Alternative Built for SaaS ![Affonso Screen](https://files.affonso.io/blog/affonso-affiliate-software-for-saas.jpeg) [**Affonso**](/) is designed for SaaS teams who want more control, better automation, and no hidden fees. With **[Stripe-native tracking](/stripe-affiliate-program)**, customizable logic, automated payouts, and a beautiful dashboard, Affonso delivers everything Rewardful offers — and more. #### What Makes Affonso Different: - **Starts at just €15/month** - **No transaction fees, ever** - **Unlimited affiliates & referrals** - **Integrated payouts via PayPal, Wise, Crypto, and more** - **Fraud detection** built-in - **Custom branding & dashboards** - **[Affiliate discovery tools](/affiliate-finder)** included - **Revenue Pass** (one-time payment, no subscription) See **[Affonso Pricing](/pricing)** or start your [14-day free trial](https://affonso.io/auth/signup) --- ## 2. FirstPromoter ![FirstPromoter Screen](https://files.affonso.io/blog/firstpromoter-alternatives.jpeg) [**FirstPromoter**](/blog/firstpromoter-alternatives) supports Stripe, Paddle, and Recurly. It's reliable and handles complex billing events well, including upgrades, refunds, and cancellations. #### Pros: - Deep billing automation - Multi-tier and lifetime commissions - Referral + influencer support #### Cons: - Outdated dashboard - Limited branding options - No affiliate discovery or payout automation **Summary:** Great if you're focused on tracking recurring subscriptions, but Affonso offers a **cleaner experience and more automation** at a [lower price point](/pricing). For a deeper dive, explore our [FirstPromoter alternatives](/blog/firstpromoter-alternatives) and [Tolt alternatives](/blog/tolt-alternatives) guides, or see the full [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) comparison. --- ## 3. Tolt ![Tolt Screen](https://files.affonso.io/blog/tolt-alternatives.jpeg) [**Tolt**](/blog/tolt-alternatives) is a newer Stripe-focused affiliate platform with fast setup and startup-friendly pricing — though prices have increased rapidly over time. #### Pros: - Easy to get started - Branded affiliate portals - Supports Stripe, Paddle, Chargebee #### Cons: - Limited reporting - Fewer customization options - No advanced fraud prevention **Summary:** Good for early-stage SaaS, but Affonso offers **more long-term value** and better control for scaling teams. Read our full [Tolt alternatives](/blog/tolt-alternatives) comparison. If you need to cancel, see our guide on [how to cancel Rewardful](/blog/how-to-cancel-rewardful-affiliate-software-subscription). --- ## 4. PartnerStack ![PartnerStack Screen](https://files.affonso.io/blog/partnerstack-alternatives.jpeg) [PartnerStack](/blog/partnerstack-pricing-guide) is an enterprise-grade PRM platform that handles affiliate, reseller, and referral partnerships. #### Pros: - Built-in partner marketplace - Multi-partner-type support - Scalable automation #### Cons: - High cost (historically $800–$1,500/mo+) - No transparent pricing - Overkill for simple affiliate needs - Requires demo to start **Summary:** Ideal for enterprises with layered partner programs. If you're focused on **SaaS affiliate growth**, Affonso is leaner, faster, and more cost-effective. --- ## 5. Tapfiliate ![Tapfiliate Screen](https://files.affonso.io/blog/tapfiliate-alternatives.jpeg) Tapfiliate is a multi-platform affiliate tool with Stripe support and global campaign features. #### Pros: - Broad integration range - Multi-language affiliate portals - Developer-friendly API #### Cons: - Stripe integration not as deep - Cluttered UI for SaaS use cases - Limited fraud tools **Summary:** Great if you manage affiliates across different platforms. But for **Stripe-first SaaS**, Affonso is purpose-built and more intuitive. --- ## 6. LinkMink LinkMink is one of the oldest Stripe affiliate tools — simple and dependable but showing its age. #### Pros: - Solid Stripe tracking - Recurring commission support - Automatic refund logic #### Cons: - Basic interface - No fraud prevention - No payout automation **Summary:** LinkMink is fine for MVPs. But teams that scale often switch to **Affonso for modern UX, better tools, and no limits**. --- ## 7. LeadDyno ![LeadDyno Screen](https://files.affonso.io/blog/leaddyno-alternatives.jpeg) LeadDyno integrates with Stripe and several e-commerce platforms, and is available in the Stripe App Marketplace. #### Pros: - Easy to set up - Basic automation - Stripe compatibility #### Cons: - Outdated dashboard - Limited reporting & branding - Weak fraud prevention **Summary:** Good for small businesses, but Affonso offers a **cleaner dashboard, stronger feature set, and better long-term scalability**. --- ## 8. TrackDesk ![TrackDesk Screen](https://files.affonso.io/blog/trackdesk-alternatives.jpeg) TrackDesk is a newer option focused on affordability and fast onboarding — suitable for non-technical users. #### Pros: - One-click Stripe integration - Anti-fraud tools - Zapier support #### Cons: - Less mature reporting - Fewer payout options - Limited branding **Summary:** Promising for beginners, but Affonso brings **enterprise-grade tools without the enterprise price.** --- ## Why More SaaS Teams Choose Affonso Over Rewardful While Rewardful helped define the space early on, its **stagnant product development and limited flexibility** make it harder to recommend in 2026. Affonso delivers everything Rewardful does — and adds: ✓ Modern dashboard ✓ Managed payouts ✓ No transaction fees ✓ Full branding control ✓ [Affiliate growth tools](/affiliate-finder) ✓ Clean [pricing from €15/month](/pricing) > No sales calls. No surprises. Just everything you need to grow your SaaS affiliate program with confidence. Learn about the [10 benefits of using affiliate software](/blog/10-benefits-of-using-affiliate-software) for your business. --- ## Final Thoughts There's nothing wrong with exploring Rewardful alternatives — especially if your program is growing or your needs have evolved. The key is to choose a [SaaS affiliate platform](/) that scales with you — not against you. With deep Stripe integration, full automation, flexible pricing, and unlimited affiliate support, **[Affonso](https://affonso.io/) is built for the next generation of SaaS growth.** --- ## TL;DR – Top Rewardful Alternatives in 2026 | Tool | Strengths | Limitations | | --- | --- | --- | | [**Affonso**](https://affonso.io/) | Modern, Stripe-native, no fees | Most complete for SaaS growth | | **FirstPromoter** | Subscription tracking | Rigid, dated UI | | **Tolt** | Fast setup, clean UI | Price hikes, limited analytics | | **PartnerStack** | Ecosystem & reseller tools | Expensive, complex setup | | **Tapfiliate** | Multi-platform support | Not focused on SaaS | | **LinkMink** | Reliable basics | Lacks modern features | | **LeadDyno** | Easy to start | Limited reporting & UX | | **TrackDesk** | Affordable & simple | Less mature overall | --- ## Rewardful Pricing in 2026: Is It Worth It? *2026-01-19* **Rewardful** has long been a popular choice for SaaS affiliate and referral management. Launched in 2017 as a bootstrapped product, it built a strong early reputation for being developer-friendly and affordable. But since its **acquisition by saas.group** in 2021, many founders have started asking: > "Is Rewardful still the lean, modern affiliate tool it once was — or is it showing signs of legacy bloat?" In this breakdown, we'll explore Rewardful's **pricing evolution**, current value, and what to consider if you're evaluating [affiliate tracking software](/) in 2026. ## From Bootstrapped to Acquired: What Changed After 2021? Rewardful was acquired by **saas.group**, a private equity-style operator that buys profitable SaaS businesses and runs them under its growing portfolio. While Rewardful hasn't publicly changed branding or core features, **its pricing has shifted multiple times**, and some users report that **product velocity has slowed**. As with many PE-owned SaaS tools, long-term alignment with user needs can become a concern. > saas.group owns over 15 SaaS products. That sounds efficient, but divided attention often leads to slower support and less innovation. ## Rewardful Pricing History: More Restrictions, Higher Expectations Rewardful has gone through several pricing iterations since 2020. Here's how things have changed over time: ### May 2020 - **Performance Plan**: $29/mo + 9% transaction fee - **Starter**: $49/mo, up to $1,000 affiliate revenue - **Growth**: $79/mo, up to $10,000 - **Enterprise**: $299+, unlimited revenue At the time, Rewardful was **competitive for startups**. Plans were transparent, and the product was lean. --- ### 2021–2022: Quiet Price Increases - Starter capped at $5,000 affiliate revenue - Growth plan capped at $15,000 - Performance plan remained at $29/mo + 9% - Features like **Affiliate Finder credits** were introduced (then removed) During this time, Rewardful remained functional — but pricing tiers began to feel tighter, especially for growing SaaS companies. --- ### 2023–2026: Current Pricing (As of September 2026) | Plan | Revenue Limit | Monthly Price | Key Notes | | --- | --- | --- | --- | | **Starter** | Up to $7,500/mo | $49 | 1 campaign only, 2 team members | | **Growth** | Up to $15,000/mo | $99 | Unlimited campaigns & team, branded portal | | **Enterprise** | Over $15,000/mo | $149+ (custom) | Dedicated support, demo required | | **Performance** | Unlimited revenue | $29 + 9% fee | Pay-as-you-grow, but expensive at scale | > ✅ All plans include a 14-day free trial > > > ❌ Many growth features now require at least **$99/month** or more > ## What You Actually Get — And What You Don't ### Starter – $49/mo - Max $7,500 affiliate revenue - 1 campaign - 2 team members - Payout via PayPal or Wise - Basic fraud detection - Coupon tracking & attribution → **Good for** testing the waters, but very limited beyond the basics. --- ### Growth – $99/mo - Max $15,000 revenue - Unlimited team & campaigns - Branded affiliate portal - Custom scripts & rewards - Private campaigns → Better for scaling, but capped revenue and no dedicated support. --- ### Enterprise – $149+/mo - Revenue above $15K - Phone support + Success Manager - One-click PayPal payouts - No public feature differences vs. Growth → Custom pricing starts low, but can scale quickly depending on usage. --- ## Where Rewardful Shines - **Simple, Stripe-native setup** for SaaS teams - **Clean interface** with quick onboarding - Reliable integrations with payout providers like PayPal & Wise - Includes fraud detection and coupon tracking - Developer-friendly API Rewardful is a solid option if you're just getting started or running a very straightforward affiliate program. --- ## Where Rewardful Falls Short - **Starter plan limited to 1 campaign** and 2 team members - **Revenue caps on every plan** — scale = pay more - **Growth features locked behind $99+** - **Little visible innovation since 2021 acquisition** - **No free plan** — testing is only possible with a time-limited trial - **Lacks flexibility** around commission logic and advanced workflows For modern SaaS companies growing fast, Rewardful can start to feel rigid and outdated compared to a purpose-built [SaaS affiliate management tool](/) — especially as **feature needs grow but plan limits stay fixed**. --- ## A Better Alternative: Affonso If you're outgrowing Rewardful — or want more flexibility from the start — [**Affonso**](https://affonso.io) is a smarter alternative built for fast-moving SaaS companies. ### Why Teams Choose Affonso: - **Fair, scalable pricing** - **Powerful automation without the enterprise bloat** - **Built-in flexibility without hidden paywalls** - **Modern UI that doesn't require tutorials** You get **enterprise-grade features** at startup-friendly pricing — without hitting artificial walls as you grow. --- ## Final Thoughts Rewardful still delivers on the basics. But in 2026, it's harder to justify its pricing and limits — especially when faster, more flexible options exist. For small teams testing affiliate marketing, it's okay but pricey! And if you're aiming to grow your program or want more control, **Rewardful's current model feels increasingly outdated**. If you're looking for a **modern alternative with better value**, check out [**Affonso**](https://affonso.io) — built for modern SaaS teams that don't want to compromise. --- ## TL;DR – Rewardful Pricing Summary (2026) | Plan | Affiliate Revenue Cap | Monthly Price | Key Notes | | --- | --- | --- | --- | | **Starter** | $7,500/month | $49/mo | 1 campaign, 2 team members, limited growth | | **Growth** | $15,000/month | $99/mo | Unlimited campaigns, branding features | | **Enterprise** | $15,000+/month | $149+/mo | Dedicated support, requires demo | --- ## Top Stripe Alternatives in 2026: Compare the Best Payment Platforms *2026-01-19* Stripe has long been the go-to payments infrastructure for SaaS companies, prized for its flexibility, developer tools, and wide range of supported payment methods. But as the SaaS ecosystem matures, so do the needs of its players. Stripe's core offering, while powerful, isn't always the best fit—especially for global compliance, tax handling, or native subscription and [affiliate solutions](/). Interestingly, Stripe recently announced the **private beta of its own Merchant of Record (MoR) service**, signaling that it, too, is adapting to the growing demand for all-in-one solutions. While not yet publicly available, early reports suggest a 3.5% fee will be added on top of existing fees for this MoR service—something to keep in mind as you evaluate alternatives. Compare payment platforms with [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) integration options. Meanwhile, a number of platforms are already offering strong MoR support, global tax compliance, built-in affiliate tools, and more. Whether you're looking for full-featured SaaS billing, clean APIs, or out-of-the-box international readiness, there's no shortage of Stripe alternatives worth considering in 2026. # What is Stripe? ![Rewardful Screen](https://files.affonso.io/blog/stripe-screen.jpeg) Stripe is a payment processor and billing platform built with developers in mind. It lets businesses accept payments using credit cards, Apple Pay, Google Pay, and local methods like SEPA and iDEAL. Its appeal lies in the API flexibility, deep integrations, and solid documentation that make it easy to embed into any SaaS stack. But Stripe is not (yet) a public Merchant of Record. That means SaaS businesses must handle taxes, VAT, fraud, and compliance themselves—a task that becomes significantly harder when selling across borders. While the company has now entered MoR private beta, the 3.5% additional fee and limited access make it more of a "coming soon" solution than something SaaS teams can count on today. # Stripe Alternatives That Founders Should Know in 2026 ## Polar ![Rewardful Screen](https://files.affonso.io/blog/polar-screen.jpeg) [Polar](https://polar.sh/?via=affonso) is one of the most developer-centric Stripe alternatives on the market and offers full MoR capabilities, including tax compliance and global payments. Designed for SaaS teams that still want full control over their stack, Polar comes with a clean API, webhook support, and native subscription billing. What's especially compelling about Polar is its support for affiliate marketing through a direct integration with [**Affonso**](https://affonso.io/polar-affiliate-program), a verified partner providing a robust, native affiliate solution. This makes it ideal for SaaS platforms that rely on performance marketing or partner programs for growth. With a base fee of 4% plus 40 cents per transaction, and small add-ons for subscriptions and international sales, Polar delivers the power of Stripe with the safety net of MoR support—no extra work needed on your part. ## Paddle ![Rewardful Screen](https://files.affonso.io/blog/paddle-screen.jpeg) [Paddle](http://paddle.com/?via=affonso) has become a heavyweight in the MoR space, especially for SaaS companies scaling internationally. It takes care of taxes, chargebacks, compliance, and payment infrastructure, letting you focus on your product and customers. Paddle supports subscriptions, multiple currencies, and various global payment methods out of the box. It also integrates natively with [**Affonso**](https://affonso.io/integrations) for affiliate tracking, making it a go-to solution for SaaS businesses that need end-to-end sales infrastructure, from billing to partner payouts. Pricing is flat at 5% plus 50 cents per transaction, with no hidden fees for international transactions. If you're launching or growing a SaaS business and want to avoid building your own compliance and billing logic, Paddle is one of the strongest Stripe alternatives on the table. ## Creem ![Rewardful Screen](https://files.affonso.io/blog/creem-screen.jpeg) [Creem](http://creem.io/?via=affonso) brings a fresh design perspective to the MoR space, pairing a modern interface with powerful SaaS-friendly features like subscriptions, wallets, and global tax handling. With fees starting at 3.9% plus 40 cents per transaction—and SEPA payouts free for EU-based companies—it's especially attractive for teams in Europe. It supports all major payment methods, including UPI, iDEAL, and Bancontact, and gives teams access to real-time analytics and a sleek user dashboard. Like Polar and Paddle, Creem also uses [**Affonso**](https://affonso.io/creem-affiliate-program) for its affiliate solution, allowing seamless setup and tracking for SaaS companies that rely on partner marketing. Creem is a smart pick if you're looking for a Stripe alternative with strong design, full MoR support, and a user-friendly experience from start to finish. ## Dodo Payments ![Rewardful Screen](https://files.affonso.io/blog/dodopayments-screen.jpeg) [Dodo Payments](http://dodopayments.com/?via=affonso) blends creator-first design with SaaS functionality, offering a full MoR solution, subscription management, digital delivery, and global payment support. Pricing is competitive, starting at 4% plus 40 cents per transaction, with an added 1.5% for non-US payments and 0.5% for recurring billing. DodoPayments works globally, with support for SEPA, iDEAL, PayPal, Apple Pay, and even USDC payouts. Its affiliate tracking is also powered by [**Affonso**](https://affonso.io/dodo-affiliate-program), giving SaaS teams a ready-made solution for performance-based growth. This is a great option for growing SaaS startups looking to simplify international sales without sacrificing flexibility or customization. ## Lemon Squeezy ![Rewardful Screen](https://files.affonso.io/blog/lemonsqueezy-screen.jpeg) [Lemon Squeezy](https://lemonsqueezy.com/?via=affonso) offers one of the most polished payment experiences in the MoR category, with all the bells and whistles a SaaS business might need—subscriptions, license key generation, VAT handling, digital downloads, and built-in analytics. Notably, **Lemon Squeezy was acquired by Stripe on July 26, 2024**, signaling Stripe's intention to accelerate its presence in the MoR space. While the platform remains separate for now, it's worth keeping an eye on how integration may affect pricing and control in the future. With fees at 5% plus 50 cents per transaction, and 1.5% for non-US payments, Lemon Squeezy is a strong Stripe alternative for SaaS teams that want beauty, power, and peace of mind in a single platform. It also offers native affiliate tracking as part of its feature set—perfect for marketing-driven businesses. ## Mollie ![Rewardful Screen](https://files.affonso.io/blog/mollie-screen.jpeg) Mollie is a non-MoR payment processor with strong support for European SaaS companies. It's often chosen for its localized payment options like SEPA, iDEAL, and Bancontact, and for its transparent pricing structure. While you'll need to handle taxes and compliance yourself, Mollie offers a user-friendly API and fast onboarding, making it a great option for businesses targeting the EU market that don't require full MoR coverage. ## BagelPay ![Rewardful Screen](https://files.affonso.io/blog/bagelpay-screen.jpeg) BagelPay is a newer MoR platform focused on global payouts and simple fee structures. It charges 5% plus 50 cents per transaction, but waives most fees for domestic and international payouts. It supports subscription billing without extra charges and handles payments across cards, PayPal, Apple Pay, UPI, and more. While it doesn't currently offer affiliate tracking, BagelPay is a strong option for SaaS businesses operating in emerging markets or those prioritizing fast, reliable payouts over advanced customization. ## Payhip ![Rewardful Screen](https://files.affonso.io/blog/payhip-screen.jpeg) Payhip isn't a MoR, but it does provide valuable SaaS-friendly tools like storefronts, memberships, course delivery, and VAT compliance. It offers a free plan where you only pay 5% per transaction, or you can upgrade to a $29 or $99 monthly plan to lower that fee. Payhip supports affiliate tracking natively and is great for micro-SaaS, info product businesses, or educational platforms that don't yet need full MoR support but want a Stripe alternative that handles the basics with ease. ## Gumroad ![Rewardful Screen](https://files.affonso.io/blog/gumroad-screen.jpeg) Gumroad started as a marketplace for creatives, but over time it has grown into a reliable MoR solution for solo developers, digital product sellers, and small SaaS projects. With a base fee of 10% plus 50 cents per transaction (plus standard Stripe or PayPal processing fees), it's more expensive than others—but that price includes everything from tax handling to customer support. What Gumroad lacks in flexibility, it makes up for in simplicity. It has a built-in affiliate program, customer dashboards, and zero monthly fees. If you're a small SaaS founder looking for the easiest possible setup without touching code, Gumroad is worth a look. ## Stripe Let's circle back to Stripe itself. It's still one of the most flexible and scalable payment platforms out there. Developers love the API, the real-time analytics, the integrations—it's an engineering dream. Now, with its **MoR beta officially announced**, Stripe seems ready to enter the next phase. The catch? The MoR service comes with an **additional 3.5% fee on top of existing fees**, and it's still only available to select users. That puts it on the expensive side and makes it less accessible—at least for now. If you're building a custom stack and want full control, Stripe still works. And with its integration with **[Affonso](/stripe-affiliate-program)** for affiliate tracking, it's also a good fit for marketing-heavy SaaS models. But if you're looking for an all-in-one, ready-now MoR solution, one of the other platforms above might serve you better. --- ## Wrapping It All Up SaaS businesses today have more choice than ever when it comes to handling payments, subscriptions, tax compliance, and affiliate growth. Stripe has been the gold standard, but with its MoR offering still in limited beta and high fees looming, many companies are taking a second look. From **developer-first platforms like Polar**, to **enterprise-ready options like [Paddle](/blog/paddle-alternatives-for-saas)**, and **design-forward tools like Creem or Lemon Squeezy**, there's a Stripe alternative that fits nearly every SaaS use case. And for those prioritizing growth via affiliates, remember that [**Affonso**](/) is a verified partner offering native affiliate solutions for Polar, Paddle, Creem, DodoPayments, and even Stripe itself. You can explore more on their [affiliate solutions page](/stripe-affiliate-program). Choosing your payment provider isn't just about processing transactions. It's about finding a partner that matches your growth model, handles your compliance, and doesn't slow you down. In 2026, there's no reason to settle. --- ## Top 6 Tolt Alternatives in 2026: Features, Pricing & Reviews *2026-01-19* Looking for **Tolt alternatives** in 2026? While Tolt entered the affiliate software market with a modern interface and fast Stripe integration, many SaaS teams are now seeking more flexibility, better pricing, and advanced features. This guide compares the **top Tolt alternatives** including **Affonso, FirstPromoter, Rewardful, Tapfiliate**, and more to help you find the right solution. **Tolt.io** entered the [affiliate software](/) space with a modern UI, a focus on Stripe-based SaaS, and a promise of fast setup. In 2023, it gained attention from the startup world — but with rapid price increases and limited plan flexibility, many teams are now evaluating **Tolt alternatives** in 2026. In this guide, we review the top platforms SaaS teams are switching to, how they compare to Tolt, and why **Affonso** is leading the way for companies that want a flexible, reliable, and affordable [affiliate solution](/blog/best-affiliate-software-for-saas). --- ## Feature Comparison: Tolt vs Alternatives | Feature | Affonso | Tolt | FirstPromoter | Rewardful | |---------|---------|------|---------------|-----------| | Starting Price | €15/mo | $29/mo | $49/mo | $49/mo | | Transaction Fees | ❌ None | ❌ None | ❌ None | ❌ None | | Recurring Commissions | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | | Multi-Processor Support | ✅ Stripe, Paddle, Polar, Creem, Dodo | ✅ Stripe, Paddle, Chargebee | ✅ Stripe, Paddle, Recurly | ✅ Stripe | | Managed Payouts | ✅ Yes (global) | ⚠️ Limited | ⚠️ Limited | ❌ Manual | | Fraud Detection | ✅ Self-referral blocking | ⚠️ Basic | ⚠️ Basic | ⚠️ Basic | | Affiliate Marketplace | ✅ Yes | ⚠️ Limited | ❌ No | ❌ No | | Affiliate Finder | ✅ AI-powered | ❌ No | ❌ No | ❌ No | | Setup Time | ~15 min | ~20 min | ~45 min | ~30 min | | Best For | SaaS startups | Early-stage SaaS | Complex billing scenarios | Stripe-only simple programs | --- ### What Is Affiliate Software? [Affiliate software](/) helps businesses track referrals, manage commissions, prevent fraud, and pay out partners. For SaaS companies, it's one of the most effective growth channels — as long as the underlying tools are scalable, automated, and easy to manage. Read about the [10 benefits of using affiliate software](/blog/10-benefits-of-using-affiliate-software) for your business. --- ### What Is Tolt.io? [Tolt](/blog/tolt-pricing-guide) is a Stripe-focused affiliate platform that launched in 2023. It offers fast setup, a polished dashboard, branded affiliate portals, and automated payouts via PayPal and Wise. It's popular among early-stage startups for its simplicity. However, Tolt has **increased prices multiple times** within two years, removed its free plan, and now limits access to key features based on revenue tiers. Many SaaS teams now find it **too restrictive or too expensive** as they scale. If you're considering canceling, see our guide on [how to cancel Tolt](/blog/how-to-cancel-tolt-affiliate-software-subscription). --- ## 1. Affonso – A Scalable, Stripe-Native Alternative to Tolt [**Affonso**](https://affonso.io/) was built for SaaS companies that need affiliate infrastructure they can rely on — without running into pricing walls, hidden limits, or missing functionality. ### What Makes Affonso Different: - Starts at **€15/month**, with **no transaction fees** - Unlimited affiliates and referrals on all plans - Native support for [Stripe](/stripe-affiliate-program), [Polar](/polar-affiliate-program), [Creem](/creem-affiliate-program) & [Dodo Payments](/dodo-affiliate-program) - Built-in **fraud detection**, custom branding, and flexible commission logic - Payouts via PayPal, Wise, Crypto, and more - Includes **[affiliate discovery credits](/affiliate-finder)** to grow your program - One-time payment option (**Revenue Pass**) available Whether you're running a side project or scaling your affiliate program beyond $30,000/month in revenue — [**Affonso**](/blog/affonso-affiliate-software-pricing-guide) offers unmatched flexibility at a fair price. **[Explore Affonso Pricing](/pricing)** or discover how our **[AI-powered affiliate finder](/affiliate-finder)** can help you recruit top partners faster. --- ## 2. FirstPromoter ![FirstPromoter Screen](https://files.affonso.io/blog/firstpromoter-alternatives.jpeg) A long-standing tool in SaaS affiliate marketing, [FirstPromoter](/blog/firstpromoter-pricing-guide) supports Stripe, Paddle, and Recurly, with automation around subscription events. ### Pros: - Recurring and lifetime commission support - Handles cancellations, upgrades, downgrades, and refunds - Multi-tier programs supported ### Limitations: - Dated UI and reporting - No integrated payouts (manual exports required) - Custom branding options are limited **Summary:** A reliable option, but Affonso offers a **cleaner experience and more automation**, especially for growing programs. For more insights, check out our [FirstPromoter alternatives](/blog/firstpromoter-alternatives), [Rewardful alternatives](/blog/rewardful-alternatives), and [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) guides. --- ## 3. Rewardful ![Rewardful Screen](https://files.affonso.io/blog/rewardful-alternatives.jpeg) [Rewardful](https://affonso.io/blog/rewardful-pricing-guide) is known for its early Stripe integration and simplicity, making it a common first choice for new SaaS companies. ### Pros: - Recurring commission support - First- and last-touch attribution - Basic fraud protection and developer-friendly API ### Limitations: - Payouts are manual - UI feels outdated - No affiliate discovery features - Limited plan flexibility **Summary:** Rewardful is functional but hasn't evolved much. **Affonso matches its core strengths and adds more control, automation, and growth tools.** Compare more in our [Rewardful alternatives](/blog/rewardful-alternatives) guide. --- ## 4. Tapfiliate ![Tapfiliate Screen](https://files.affonso.io/blog/tapfiliate-alternatives.jpeg) Tapfiliate supports a wide range of platforms beyond Stripe, including Shopify, WooCommerce, and e-commerce setups. ### Pros: - Multi-language affiliate portals - Custom scripts and email workflows - Cross-platform integrations ### Limitations: - Stripe support is not as deep - General-purpose tool (not SaaS-specific) - Reporting and setup can feel complex for SaaS use cases **Summary:** Versatile for multi-channel businesses, but for **SaaS + Stripe-first teams**, Affonso is more purpose-built and easier to scale. --- ## 5. PartnerStack ![PartnerStack Screen](https://files.affonso.io/blog/partnerstack-alternatives.jpeg) PartnerStack is an enterprise-level partner management platform built for B2B SaaS companies with complex reseller and partner structures. ### Pros: - Manages affiliates, resellers, and referral partners - Built-in partner marketplace - Automates partner onboarding and payouts ### Limitations: - High pricing (starts around $800/month) - Requires sales contact - Complex onboarding - Not focused solely on affiliate needs **Summary:** Best for large partner ecosystems. For focused affiliate growth, **Affonso offers a cleaner, more agile solution**. --- ## 6. TrackDesk ![TrackDesk Screen](https://files.affonso.io/blog/trackdesk-alternatives.jpeg) TrackDesk is a newer affiliate platform focused on affordability and ease of use, particularly for non-technical founders. ### Pros: - Quick Stripe integration - Zapier support - Bot detection and basic fraud protection ### Limitations: - Limited reporting - Fewer payout methods - Basic customization only - Still building core features **Summary:** Good for testing ideas. For teams ready to grow, **Affonso offers better structure, deeper automation, and broader integrations.** --- ## Why Affonso Replaces Tolt for Many SaaS Teams Tolt made a strong entrance into the market. But as teams grow, they often find themselves **bumping up against revenue caps, gated features, and increasing monthly costs.** Affonso provides a clearer path: - Transparent [pricing](/pricing) with no surprises - Full feature access at every tier - Better fraud tools and payout flexibility - Support for complex commission logic - [Affiliate discovery](/affiliate-finder) included Affonso is designed to grow with your team — **not limit it**. For additional context, explore the [best affiliate software for SaaS](/blog/best-affiliate-software-for-saas) guide. --- ## Final Thoughts Tolt is still a solid choice for SaaS founders who need a clean, quick setup and a Stripe-friendly platform. But if you're scaling your affiliate program, value cost transparency, and want more control over branding, logic, and growth — an [affiliate management platform](/) like **Affonso is a strong alternative.** With unmatched flexibility, automation, and pricing that works for startups and scale-ups alike, **Affonso has become the go-to affiliate platform for SaaS teams that expect more from their tools.** [Start your 14-day free trial](https://affonso.io/auth/signup) or explore [Affonso](https://affonso.io/) --- ## TL;DR – Best Tolt Alternatives in 2026 | Tool | Key Strength | Limitations Compared to Affonso | | --- | --- | --- | | **Affonso** | Stripe-native, modern, scalable | No custom email sender | | **FirstPromoter** | Recurring commission logic | Outdated UI, limited branding | | **Rewardful** | Simple Stripe integration | Manual payouts, limited customization | | **Tapfiliate** | Multi-platform support | Less focused on SaaS | | **PartnerStack** | Reseller + referral features | Expensive, complex, overkill for SaaS | | **TrackDesk** | Affordable and simple | Limited reporting, basic features | --- ## Tolt.io Pricing in 2026: Is It Worth It? *2026-01-19* Tolt.io has grown rapidly over the last two years — both in product features and pricing. But with the removal of its free plan and steady price increases, many SaaS startups and affiliate marketers are asking: **is Tolt.io still worth the cost in 2026?** Especially when more affordable [affiliate software solution](/) options exist. This article breaks down their current pricing, plan limits, and features — and introduces a more agile alternative worth considering. --- ## Tolt.io Keeps Increasing Prices Since early 2023, **Tolt has changed its pricing structure four times**, consistently increasing costs while tightening limits for lower tiers. ### January 2023 Pricing - **Free** – Up to $1,000 earned: **$0/mo** - **Growth** – Up to $1,500/mo earned: **$20/mo** - **Pro** – Up to $5,000/mo earned: **$50/mo** - **Unlimited** – $5,001+: **$100/mo** At this point, small projects could still start for free. ### April 2023 Pricing - Free plan **removed** completely - **Starter** – Up to $2,500/mo: **$29/mo** - **Growth** – Up to $7,500/mo: **$49/mo** - **Pro** – Up to $20,000/mo: **$99/mo** - **Enterprise** – Custom: **Contact sales** This shift signaled Tolt was no longer targeting bootstrapped founders. ### December 2023 Pricing - **Basic** – Up to $10,000/mo: **$49/mo** - **Growth** – Up to $20,000/mo: **$99/mo** - **Pro** – Up to $50,000/mo: **$199/mo** - **Enterprise** – Custom: **Contact sales** Prices doubled (or more) in under 12 months, while limits increased modestly. ### January 2026 Pricing — Yet Another Price Hike - **Basic** – Up to $10,000/mo: **$69/mo** *(was $49)* - **Growth** – Up to $20,000/mo: **$99/mo** - **Pro** – Up to $50,000/mo: **$199/mo** - **Enterprise** – Custom: **Contact sales** **And it happened again.** In January 2026, Tolt raised prices once more. The Basic plan jumped from $49 to $69 — a **40% increase** with no additional features. That's now **four price increases** since early 2023. If you're keeping track: what started as a **free plan** in 2023 now costs **$69/month** just to get started. And there's no indication the increases will stop here. Tolt now firmly positions itself in the **mid-to-enterprise segment**, with no low-cost entry point for bootstrapped founders or small teams. --- ## What You Get at Each Tier in 2026 Below is a high-level breakdown of Tolt.io's current plans and what you get at each price point. ### Basic – $69/month - **Up to $10,000/mo earned from affiliates** - Unlimited affiliates & referrals - Manual payouts only - 2 programs / 3 partner groups / 3 team members - Branded portal + custom domain - Email notifications - Double-sided rewards (coupons) - **No auto payouts or customizable emails** → **Best for** small affiliate programs — if you're okay with doing things manually. --- ### Growth – $99/month - **Up to $20,000/mo earned** - All Basic features, plus: - Auto payouts (via PayPal, Wise, crypto, local bank) - Invoice generation - Tax compliance (W-9/W-8 & 1099s) - 5 programs, partner groups, team members - Custom email notifications → **Better suited for** growing programs, but still limited on scale and branding control. --- ### Pro – $199/month - **Up to $50,000/mo earned** - Everything in Growth, plus: - Unlimited everything (programs, groups, flows) - Custom payout methods - Dedicated Slack channel - **No "powered by Tolt" branding** - Full white-label control → **Ideal for** high-revenue programs with complex commission flows — if you're okay with the cost. --- ## Is Tolt.io Worth the Cost in 2026? It depends on your affiliate revenue, team size, and payout complexity. ### Where Tolt Shines - Solid automation for payouts and tax compliance - White-label support at higher tiers - Reliable infrastructure for large affiliate teams - Smooth onboarding and partner management UX If your affiliate program already generates 5+ figures in revenue monthly, Tolt can offer solid operational value — but only once you're on **Growth or Pro**. --- ### Where Tolt Falls Short - **Rapid price increases** signal more hikes coming - **Important features like auto payouts only start at $99/month** - **Limited team & program flexibility** unless you're on the most expensive plan - **No customizable emails** unless you pay at least $99/month - **Branded with "Powered by Tolt"** on lower tiers You're effectively paying more — even as your affiliate revenue grows. That's a dealbreaker for many SaaS teams. --- ## A VC-Backed Future: Expect Even More Price Increases In October 2023, Tolt announced they had joined the **LAUNCH Accelerator**, signaling external funding and ambitious scaling. That's great for platform innovation — but it also means **more pricing updates are almost guaranteed**. We've already seen the pattern: four price increases in under two years. With VC pressure to grow revenue, this trend is unlikely to stop. If you lock in current rates today, there's no guarantee they won't change your plan terms tomorrow. Tolt has shown they're willing to raise prices aggressively — and existing customers are not immune. --- ## Looking for a Leaner, Modern Alternative? If you're running a growing affiliate program and need: - **Fair, scalable pricing** - **Powerful automation without the enterprise bloat** - **Built-in flexibility without hidden paywalls** - **Modern UI that doesn't require tutorials** Then it might be time to look at [**Affonso**](https://affonso.io) — a smart, lightweight alternative to Tolt built for **modern SaaS teams**. --- ## Final Thoughts Tolt.io has evolved into a capable affiliate platform for mature operations. But its **pricing, paywall-heavy features, and limited entry tiers** make it harder to recommend for smaller, agile teams. If you're looking for **better value, more flexibility, and lower complexity**, [**Affonso**](https://affonso.io) might be the better fit for your affiliate strategy in 2026. --- ### TL;DR – Tolt.io Pricing Breakdown | Plan | Max Affiliate Revenue | Monthly Cost | Key Features | | --- | --- | --- | --- | | **Basic** | $10,000/mo | $69/mo | Manual payouts, limited flows | | **Growth** | $20,000/mo | $99/mo | Auto payouts, tax compliance | | **Pro** | $50,000/mo | $199/mo | Unlimited everything, Slack, no branding | | **Enterprise** | $50,001+ | Custom | Custom limits + support | --- # Changelog ## New: Program Access Modes — Public, Private & Invite-Only (16.04.2026) Control exactly who can join your affiliate program with the new **Access Modes**. Replace the old auto-approve toggle with three clear options: - **Public** — Anyone can sign up and is automatically approved - **Private** — Anyone can apply, but you approve each affiliate manually - **Invite-Only** — Only affiliates you explicitly invite can join We also made several portal improvements: - **[NEW]** Three access modes for granular program enrollment control - **[IMPROVED]** Disabled affiliate links are now hidden in the portal instead of shown as inactive - **[IMPROVED]** Onboarding adapts automatically when affiliate links are disabled - **[FIXED]** Missing European countries added to the invoice address dropdown - **[FIXED]** Notification labels corrected and translated to English --- ## New: Manually Add Transactions to Referrals (14.12.2025) You can now manually add sales & commissions to existing referrals directly from the referral details view — giving you full control over commission tracking. ## Why I Added This Sometimes sales happen outside your payment processor, or you need to credit an affiliate for a deal closed offline. This feature lets you record those transactions manually while keeping your commission data accurate. ## How It Works - Open any referral's transaction details - Click "Add Transaction" - Enter the transaction amount and date - Set the commission (fixed amount or percentage) - Choose the approval status: - **Approved** — Ready for payment immediately - **Pending** — Held for a specified number of days - **Manual Review** — Requires your approval - **Declined** — No commission paid The referral status automatically updates to "Customer" if it was previously "Lead" or "Trialing". Simple, flexible, and keeps your affiliate program running smoothly. --- ## New: Add Your Own Terms, Privacy Policy & Contact Info (12.05.2025) You can now set your own Terms of Service, Privacy Policy, and a Contact Email for your affiliate program — all visible to your affiliates at signup, login, and in their dashboard. ## Why I Added This Affiliate programs often come with specific legal or support requirements. This update gives you full control over the information your affiliates see and agree to — making your program feel more trustworthy and aligned with your business. ## How It Works - Go to your program settings - Add links to your Terms and Privacy Policy - Optionally set a dedicated contact email - Affiliates will see this information: - During signup - Every time they log in - Permanently in their dashboard It’s simple, clear, and gives your program a more professional edge. --- ## New: Advanced Affiliate Filters (16.01.2026) Find exactly the affiliates you're looking for with our new advanced filtering system. Filter by performance metrics, source, group, promo codes, and more — all with shareable URLs. ## Why I Added This As your affiliate program grows, scrolling through hundreds of affiliates to find specific partners becomes tedious. You needed a way to quickly segment your affiliates by performance, source, or any combination of criteria. ## What's New **Performance Filters** - Filter affiliates by visitors, leads, referrals, revenue, or commission using greater-than or less-than operators. Find your top performers or identify affiliates who need attention. **Source & Group Filters** - Narrow down by how affiliates joined (Portal, Marketplace, Invitation, Import, API, Embed) or by their assigned group. Perfect for analyzing different acquisition channels. **Promo Code Filter** - Quickly find affiliates with or without assigned coupon codes. Click the code badge to manage their codes directly. **Shareable URLs** - Every filter combination updates the URL. Share filtered views with your team or bookmark your most-used searches. **Persistent Preferences** - Your filters are saved per team in localStorage. Come back tomorrow and pick up right where you left off. ## Built for: - **Performance Analysis:** Find top earners or affiliates below certain thresholds - **Segment Management:** Focus on specific groups or acquisition sources - **Coupon Campaigns:** Identify affiliates without codes for your next promotion - **Team Collaboration:** Share filtered views via URL with teammates ## How It Works Click the Filter button next to search. Expand any section, set your criteria, and hit Apply. Active filters appear as removable pills below the toolbar. The filter count badge shows how many filters are active at a glance. ## 🚀 Live Now Available in your [Affiliates dashboard](https://affonso.io/app/affiliates) — start filtering today. --- ## New: Affiliate Discovery Agent — AI-Powered Prospecting Built In (20.06.2025) Finding great affiliates just got way easier. The new **Affiliate Discovery Agent** takes over the entire prospecting process. It analyzes your product and website, generates a tailored program description, recommends keywords and relevant competitors, and then scans the internet to find high-potential partners. We’ve just launched the **Affiliate Discovery Agent** — a fully automated AI tool that helps you discover ideal affiliate partners without spending hours on manual research. ## Here’s how it works: 1. **AI-Powered Setup** The agent reviews your site and builds a custom outreach profile — including a suggested program description, target keywords, and relevant competitor brands. 2. **Multi-Channel Search** Choose where to look: Websites, YouTube, Reddit, Instagram, TikTok, LinkedIn, Facebook, X (Twitter), Medium, Substack 3. **Automated Scraping & Filtering** The agent crawls your selected channels, extracts relevant content, and uses AI to filter out low-quality or off-topic results. What’s left is a curated list of creators, businesses, and influencers already talking about your niche. 4. **Qualified Leads for Partnerships** You’ll get a clean list of potential affiliates — content where your keywords or competitors are already being mentioned. Perfect targets for outreach and partnership. 5. **Build Your Prospect Shortlist** Every matched result can be added to a dedicated shortlist. Use this space to organize and manage your outreach — track statuses like New, Contacted, Negotiation, Won, or Lost. Think of it as a lightweight CRM built just for affiliate recruiting. 6. **Export Your Leads** Easily export your entire shortlist or filter by status to download only the leads you need — perfect for managing outreach externally or syncing with your workflow. It’s built to help you grow faster without spending hours on research — based on real content and aligned interests. 👉 Try it now: https://affonso.io/app/discovery This is just the beginning. The Discovery Agent will keep evolving with more filtering, outreach tools, and smart prioritization. Let us know what you think! --- ## Affiliate Finder 2.0: Improved Performance & Quality (03.09.2025) I'm excited to announce a major update to the Affiliate Finder that transforms how you discover and connect with potential affiliate partners. After months of development, I've rebuilt the entire discovery engine from the ground up. ### Lightning-Fast Campaign Processing The most noticeable improvement is speed. Campaign processing is now significantly faster, with most campaigns completing in just minutes. This means you can run multiple discovery campaigns throughout the day and get actionable results almost immediately. Whether you're discovering opportunities across multiple industries or running campaigns for different programs, the system now handles everything smoothly without slowdowns. ### Superior Data Quality Through AI I've completely reimagined how the system filters and presents affiliate opportunities to you. The enhanced AI now: - **Automatically removes irrelevant results** that don't match your business model or target audience - **Eliminates low-quality opportunities** with poor engagement or suspicious metrics - **Provides relevance scoring** to help you prioritize the most promising partnerships - **Cleans up duplicate entries** so you see unique opportunities only Instead of sifting through thousands of potential matches, you now see a curated selection of high-quality opportunities that are genuinely worth your time to pursue. ### Enterprise-Grade Reliability Campaign reliability has been a key focus area. The new system is built to be rock-solid: - **Campaigns complete successfully** every time, even for large searches - **Multiple campaigns can run simultaneously** without interfering with each other - **Automatic problem recovery** handles any issues seamlessly in the background ### Looking Forward This update represents my commitment to making affiliate discovery not just faster, but genuinely more effective. By combining speed improvements with quality enhancements, I've created a system that helps you find better partners in less time. I'm excited to see how these improvements accelerate your affiliate program growth and look forward to your feedback as you explore the enhanced platform. --- ## 🛡️ Self-Referral Fraud Detection (11.02.2025) I've added an important security feature to protect your affiliate program from self-referral fraud, saving you from paying unearned commissions. ## What's New: - **Automatic Detection:** The system now automatically identifies and flags potential self-referrals - **Dashboard Alerts:** Suspicious referrals are highlighted in your dashboard for easy review - **Action Controls:** Take appropriate actions directly from the dashboard: - Reject specific referrals to prevent commission payments - Block affiliates engaging in fraudulent behavior - Review detailed evidence before making decisions ## Why I Added This: Self-referrals can significantly impact your program's ROI and undermine its integrity. This feature helps maintain a fair program where commissions are earned honestly, not through exploiting the system. ## How It Works: The detection system uses multiple data points to identify when affiliates are likely referring themselves. You maintain full control over the final decision, with clear information to guide your actions. --- ## New: Affiliate Impersonation (12.07.2025) Experience your affiliate program from your partners' perspective with the new affiliate impersonation feature. Team administrators can now securely log in as any of their active affiliates to see exactly what they see in their dashboard. **Perfect for support and onboarding** - quickly troubleshoot issues, guide new affiliates through their dashboard, or test new features from the affiliate's viewpoint. Simply click the impersonate option next to any affiliate in your management interface. **Secure token-based system** generates a temporary 5-minute access link that redirects you to the affiliate's dashboard under their subdomain. All impersonation activities are automatically logged for security and audit purposes. **Seamless experience switching** allows you to easily return to your admin view when finished. This feature helps you provide better support and ensures your affiliate experience is always optimized from their perspective. No more guessing what affiliates see - experience it firsthand and provide the best possible support for your affiliate partners. --- ## 🔐 Login Security: OTP Resend Feature (26.03.2025) I've added a simple feature that lets users request a new One-Time Password (OTP) during the login process if the original code wasn't received or has expired. ## What's New: - Resend OTP: Added a "Resend Code" button on the login verification screen - For All Users: Available to both program owner and affiliates ## Why I Added This: Email delays happen. This update ensures you can always access your account even if an OTP email is delayed or missed. --- ## Affiliate Onboarding: Country Field Added (08.01.2025) I've added a country step to affiliate onboarding so program owners instantly see where affiliates operate and can manage eligibility with clarity. ## What's New: - Country selection during onboarding - Flag badge shown across list and details views ## Why I Added This: Clear country visibility helps owners understand affiliate origins at a glance and, where needed, limit participation to specific regions—without awkward manual checks. --- ## Clearer Affiliate Payouts (27.11.2025) The affiliate dashboard now makes payouts easier to understand. Payout tables and a dedicated drawer lay out amounts, statuses, and methods in one place, reducing back-and-forth with your partners. We also aligned payout methods with WiseTag support, so affiliates see exactly how and when they’ll be paid. More clarity, fewer surprises, and quicker answers when payout questions come in. --- ## API: Your Affiliate Program, Everywhere (18.12.2025) You can now connect your affiliate program to any tool you already use. Zapier, Make, n8n, or your own backend – you decide how the data flows. Create API keys with granular permissions, set expiration dates, and manage affiliates, referrals, commissions, and payouts programmatically. Full control, zero manual work. Whether you're syncing data to your CRM, building a custom dashboard, or automating onboarding flows – the API has you covered. **Use any payment provider:** Native integrations cover Stripe, Paddle, Polar.sh, Creem, and Dodo Payments. But with the API, you can connect any payment provider you use – track purchases, subscriptions, and commissions from anywhere. → Full documentation at [docs.affonso.io](https://docs.affonso.io/) --- ## New: Bulk Affiliate Import (03.07.2025) Quickly migrate your entire affiliate network into Affonso — without breaking links or burning relationships. ## Why I Added This Switching platforms used to mean rebuilding everything from scratch: re-adding affiliates manually, regenerating tracking links, and frustrating your partners in the process. I’ve felt that pain myself. So I fixed it. ## How It Works - Export your affiliate list from your current platform - Upload your CSV via drag & drop or file picker - We auto-detect the delimiter (comma or semicolon) and validate everything in real-time - Preview exactly what will happen — rows with errors are clearly marked - Hit import — duplicates are skipped automatically, and new affiliates are invited instantly You’ll get a full summary before anything goes live. Each imported affiliate keeps their original tracking parameters, so their links keep working as-is. ## Built for: - **Platform Migration:** Move over from other affiliate tools in minutes - **Bulk Onboarding:** Add new affiliates after a campaign or event - **Agency Use:** Set up clients fast using existing affiliate rosters - **Smooth Transitions:** Avoid affiliate headaches by keeping their links intact ## 🚀 Live Now You’ll find the importer in your Organization tab → “[Import Affiliates](https://affonso.io/app/settings/team/general)”. --- ## Discovery: Manage Multiple Opportunities at Once (09.01.2026) Stop clicking through opportunities one by one. Select multiple search results and add them to your shortlist or remove them in a single action. Whether you're processing a large discovery search or cleaning up your results – work through your list faster and get to outreach sooner. --- ## Bulk Payouts: Pay All Your Affiliates in Minutes (14.01.2026) Stop paying affiliates one by one. Now you can pay everyone at once — through PayPal, Wise, or bank transfer. ## What's New Affonso now generates ready-to-use files for the bulk payment features of PayPal, Wise, and your bank. Select your pending payouts, choose your payment method, and pay dozens (or hundreds) of affiliates in a single batch. - **PayPal Mass Payments:** Pay all your PayPal affiliates in one go using PayPal's Payouts feature - **Wise Batch Payments:** Send money worldwide with low fees and great exchange rates — all affiliates in one transfer - **Bank Wire Transfers:** Process all bank transfer payouts through your bank's bulk payment system ## Why This Matters Before, paying 50 affiliates meant 50 individual transactions. Now it's one. Whether you're running a small program or scaling to hundreds of partners — bulk payouts save you hours every month and reduce the chance of errors. ## How It Works 1. Open [Payments](https://affonso.io/app/payments) → **Pending** tab 2. Click **Export** and select PayPal, Wise, or Wire 3. Upload to your payment provider and confirm 4. Done — mark as paid in Affonso The whole process takes minutes, not hours. ## Learn More We've written detailed guides for each payment method: - [PayPal Mass Payouts](/help/commission-payouts/payouts/paypal-mass-affiliate-payouts) - [Wise Bulk Payouts](/help/commission-payouts/payouts/wise-bulk-affiliate-payouts) - [Wire Transfer Bulk Payouts](/help/commission-payouts/payouts/wire-transfer-bulk-affiliate-payouts) ## Want Us to Handle It? With [Managed Payouts](/help/commission-payouts/payouts/automating-affiliate-payouts-with-affonso) on Growth or Elite, you don't lift a finger — pay one invoice, we pay all your affiliates worldwide. --- ## Complete Commission System Redesign (05.08.2025) Managing affiliate commissions just got dramatically simpler while becoming infinitely more powerful. ## What's New #### Smart Commission Priority The system automatically knows who gets what: - Affiliates get their custom rates first - Everyone else follows their group settings - No conflicts, no confusion, no manual overrides **Real scenario:** Your best affiliate negotiated 45% commission? Set it once and every sale automatically calculates correctly, even when your default rate is 25%. #### Flexible Commission Rules Set different commission rates for different scenarios: - Annual subscriptions get higher commissions (because they're more valuable) - Monthly plans get standard rates - Specific premium products get custom rates - Everything else follows your default **Business impact:** Encourage affiliates to push your annual plans by offering 40% commission vs 25% for monthly - automatically applied based on what customers choose. #### Global Currency Made Simple Running an international business shouldn't mean commission chaos. Set your payout currency once (like USD) and every commission gets automatically converted - no matter if customers pay in Euros, Pounds, or Canadian Dollars. **Example:** Customer in Germany pays €100, affiliate sees a clean $110 sale in their dashboard. Your accounting stays simple, affiliates know exactly what they're earning. #### Affiliate Groups That Actually Work Stop managing dozens of affiliates individually. Create groups with shared commission rates: - Premium Partners: 35% commission across all products - Standard Affiliates: 25% commission - New Partners: 20% commission with easy upgrade path Add new affiliates to the right group and they instantly get the correct commission structure. Change a group's rate and everyone in it updates automatically. #### Available now in your dashboard. Questions about setting up custom commission structures? Check the help docs or reach out to support. --- ## Coupon Management Improvements (10.01.2026) Two major improvements to coupon management: Full Creem support and product restrictions across all payment providers. ## Creem Coupon Management Program administrators can now create and manage discount codes for affiliates when using Creem: - **Affiliate Coupon Codes:** Create percentage or fixed-amount discount codes for specific affiliates - **Program-Wide Coupons:** Set up coupon codes that apply to the entire affiliate program - **Self-Service Blueprints:** Enable affiliates to create their own coupon codes based on your predefined rules - **Flexible Duration:** Support for one-time, recurring, or forever discount durations ## Product Restrictions for All Providers You can now restrict coupon codes to specific products across all supported payment processors: - **Stripe:** Restrict to products using `prod_xxx` IDs - **Paddle:** Restrict to products (`pro_xxx`) or prices (`pri_xxx`) - **Polar:** Restrict to products using UUID format - **DODO:** Restrict to products using product IDs - **Creem:** Product IDs are required for all discounts This allows for more targeted discount campaigns, ensuring coupons only apply to specific products in your catalog rather than your entire product lineup. --- ## Creative Library 2.0 - A Complete Transformation (21.08.2025) We've completely reimagined how affiliate programs manage and distribute marketing assets. The new Creative Library isn't just an update—it's a fundamental rethinking of how creative assets should work in modern affiliate marketing. ### What drove this change? Our users told us the old creative system felt scattered and overwhelming. Program managers struggled to organize assets, while affiliates couldn't find what they needed quickly. We listened. ### The transformation includes: #### 🏗️ Complete architectural redesign - Modern, intuitive interface that feels natural to use - Grouped asset organization that makes sense at first glance - Clean, minimalist cards that focus on what matters #### 📁 Smart categorization system - **6 thoughtfully designed categories:** Brand Assets, Banners & Graphics, Product Images, Videos, Content Templates, and Documents - Each category has its own icon and subcategories for precise organization - Assets are automatically sorted with "Other" always appearing last #### ✨ Intelligent form experience - Dynamic forms that adapt based on the creative type you select - No more overwhelming forms with irrelevant fields - Smart validation ensures you only see what you need #### 🔧 Powerful asset management - Edit any creative asset without starting over - Form state management that remembers your changes - Seamless switching between create and edit modes #### 📱 Affiliate-first dashboard - Affiliates get the same beautiful, organized experience - One-click download functionality for any asset - Quick actions overlay for instant access to copy/download options #### 📋 Rich metadata support - Tags for cross-category discovery - Dimensions and technical specifications - Usage notes and restrictions to guide proper use - Everything affiliates need to promote effectively #### 📖 Comprehensive documentation - Complete guide covering every aspect of the Creative Library - Best practices for both program managers and affiliates - Technical specifications and troubleshooting help ### The result A Creative Library that doesn't just store assets. It empowers your entire affiliate ecosystem to perform better. Program managers can organize and maintain assets effortlessly, while affiliates can find and use the perfect creative materials in seconds. This isn't just an improvement. It's the foundation for how modern affiliate programs should manage their creative assets. --- ## Credit-Based Rewards Are Here! (20.06.2025) You can now offer credits as a commission type – right alongside fixed and percentage payouts. Perfect if you want to reward users with: - free months of your SaaS - store credit or upgrades - access to premium content or in-app perks Credits are ideal when your partners aren’t professional affiliates but existing users who love your product and want to share it. This gives you more flexibility, lower cash flow impact, and tighter user retention – especially for early-stage SaaS and digital products. Set it up under your [group & incentives settings](https://affonso.io/app/groups), define how many credits are earned per referral, and communicate what those credits are worth. 📖 Learn more about credit-based commissions Let us know what creative use cases you come up with! --- ## 🔌 New Integration: Creem (24.12.2024) I'm excited to announce our newest integration with Creem! This addition expands our payment processor support for SaaS companies. Creem.io has been gaining popularity as a flexible payment solution in the software industry. Now you can use Creem for your payments while managing your affiliate program through Affonso. ## How To Get Started: 1. Connect your Creem account using your API key 2. Set up the Creem webhook to receive real-time payment notifications 3. Add our lightweight tracking script to your website 4. Pass referral data to Creem during checkout 5. Start inviting affiliates to promote your products For step-by-step instructions, see our [Creem integration documentation](https://affonso.io/help/integrations/creem/creem-checkout-api). This integration allows for seamless tracking across your marketing site and application domains, with full support for signup tracking to give you deeper insights into your affiliate funnel. --- ## New: Custom Affiliate Onboarding Forms (22.04.2025) I've added a highly-requested feature that gives program owners more control over their affiliate approval process. You can now create custom onboarding questionnaires for your affiliates. ## What's New: - Create a custom set of questions that new affiliates must complete after registration - Design your own onboarding flow to gather the specific information your program needs - Review detailed responses in each affiliate's profile - Make better-informed decisions about which affiliates to approve ## How It Works: When a new affiliate registers and logs in for the first time, they'll be presented with your custom onboarding form before they can access their dashboard. Their responses are stored in their profile, giving you valuable insights about their marketing methods, audience, and expectations. ## Why I Added This: Many program owners have asked for better ways to screen potential affiliates and ensure they're a good fit before approving them. This feature helps you make smarter decisions about who represents your brand, while also setting clear expectations with affiliates from day one. To set up your custom onboarding form, visit the Program Settings section in your dashboard or click here. --- ## Customize Portal Texts in 14 Languages (17.12.2025) You can now customize the text content shown on your affiliate portal login page — in all 14 supported languages. Perfect for tailoring messaging to your brand voice or specific audience. ## How It Works - Go to **Appearance** settings - Click **Configure** under Custom Texts - Edit the text for any language you want to customize - Languages you don't customize will use the default translation Each language is independent — if you only customize English, German users will still see the German default. No extra work required. ## What You Can Customize - **Join Program Text** — The description shown to affiliates when they sign up More customizable texts coming soon. --- ## New: Daily Activity Email Reports (13.04.2025) I've added a new feature that keeps everyone informed about their affiliate program performance. Now both program owners and affiliates receive a daily email summary of the last 24 hours of activity. ## For Affiliates: The daily email shows: - Total commissions generated in the last 24 hours - Number of new sales attributed to your links ![Email Report screenshot](https://files.affonso.io/changelog/Email_Report.gif) ## For Program Owners: Your daily summary includes: - Total sales generated through affiliates in the last 24 hours - Individual affiliate performance breakdown ![Email Report screenshot](https://files.affonso.io/changelog/Email_Report_2.gif) This automated reporting keeps everyone in the loop without requiring constant dashboard checks. Affiliates stay motivated by seeing their daily results, while program owners maintain clear visibility into their program's performance. The emails are sent automatically once per day and require no configuration - they're ready to use right away! --- ## Improved: Confirmation Dialogs for Dangerous Actions (18.04.2026) Dangerous actions now require you to type a confirmation before proceeding. - **[FIXED]** Affiliate referral counts now include all converted referrals, not just trialing customers - **[FIXED]** Stripe currency handling corrected for TWD, HUF, and ISK --- ## Improved: Dashboard Analytics & Fraud Monitoring (21.04.2026) The dashboard analytics are now faster and more reliable, and we've added better fraud monitoring across the platform. - **[IMPROVED]** Dashboard analytics cached and optimized — charts and stats load up to 3x faster - **[IMPROVED]** Fraud detection now logs all checks for full transparency and auditability - **[FIXED]** Portal form data no longer lost when switching between tabs - **[FIXED]** VAT validation re-triggers automatically when you change your country - **[FIXED]** Creative library displays correctly in the affiliate portal - **[FIXED]** Dashboard 12-month date range no longer causes errors --- ## New: Disconnect Stripe Account (13.04.2026) You can now disconnect your Stripe account directly from the settings page — no support ticket needed. - **[NEW]** Disconnect Stripe from your program settings at any time - **[NEW]** Paddle added to the payment provider setup guide - **[FIXED]** Variable commission rates now display correctly in the affiliate portal --- ## DODO Payments: Coupon Management for Partners (27.07.2025) Program administrators can now create and manage discount codes for their affiliates directly through Affonso. ## What's New: - **Create Affiliate Discount Codes:** Program admins can generate percentage-based discount codes for specific affiliates - **Usage Limits:** Set unlimited or limited-use coupons - **Automatic Referral Tracking:** Track referrals automatically when customers use affiliate coupon codes - **Centralized Management:** Unified interface for managing all affiliate discount codes in one place ## How it Works: 1. Program administrators create discount codes and assign them to affiliates 2. Affiliates share their unique discount codes with customers 3. Customers apply codes during DODO checkout 4. Referrals are automatically tracked and attributed to the correct affiliate 5. Commissions are calculated based on your program rules This gives program administrators full control over coupon-based affiliate marketing while enabling seamless referral tracking without manual attribution. --- ## 🔌 New Integration: Dodo Payments (29.05.2025) I'm excited to share that Affonso now integrates with Dodo Payments, making it even easier for fast-moving indie tools, startups, and modern checkout experiences to launch an affiliate program. Dodo is gaining traction as a flexible and developer-friendly payment platform, and now you can combine it with Affonso's powerful referral tracking and commission system. ## How To Get Started: - Connect your Dodo account by adding your API key - Set up the webhook to enable automated tracking - Add our lightweight tracking script to your website - Start tracking referrals and paying affiliates For full instructions, check out the [step-by-step integration guide here](https://affonso.io/help/integrations/dodo/dodo-checkout-api). This is part of our broader plan to support more payment providers in 2025. Let me know which platform you’d like to see next! --- ## Embed Customization: Show What Matters (25.01.2026) More control over your embedded referral dashboard — show affiliates exactly the information they need, nothing more. ## Card Visibility Controls Not every metric makes sense for every program. Now you can toggle which cards appear in your embedded dashboard: - Hide signup counts if you track conversions instead - Show only earnings if that's what motivates your referrers - Keep the interface clean and focused Your embed, your rules. ## Better Referral Parameter Experience We redesigned the referral parameters modal to make creating and managing tracking parameters easier: - **Cleaner interface** for adding custom parameters - **Built-in FAQ** answers common questions right where you need them - **Smarter defaults** so the right parameter is always active Affiliates can now set up tracking for different campaigns without guessing how things work. --- ## Embedded Dashboard: Turn Every User Into a Promoter (08.01.2026) Your customers already love your product. Now they can share it with one click – without leaving your app, without creating an account, without any friction. Embed a referral dashboard directly into your product. Every user gets their own link instantly. They share it, you track it, they earn rewards. That's it. ## Affiliate Program + Referral Program Until now, Affonso was your affiliate program infrastructure – for professional marketers who sign up to your portal, promote actively, and earn cash commissions. Now you get both. Keep your affiliate program running as usual. And add a referral program for your existing users – embedded right inside your app. ## Two Programs, One Platform Use groups to separate them: - **Affiliates** → Default group with cash commissions for professional promoters - **Referrers** → Dedicated group for your users – assign them automatically via the embed Each group can have completely different rewards. Cash commissions for affiliates. Credits, points, or free months for your users. Or cash for both – you decide. ## Zero Friction for Your Users No redirect. No separate portal. No password to remember. Your users see their link, stats, and earnings right where they already are – inside your app. ## Visual Preview & Code Generator Customize and preview your embedded dashboard before writing any code. In **Affiliate Program → Appearance → Embed**, you can: - Toggle between light, dark, and system themes - Select from 14 supported languages - Set a custom background color - See a live preview with your actual branding - Copy ready-to-use code snippets The preview updates instantly as you change settings – so you know exactly what your users will see. → [How to integrate](https://docs.affonso.io/api/embedded-dashboard) --- ## External User ID & Privacy Controls (24.02.2026) Track referrals by your internal user ID instead of email — and control exactly what personal data Affonso stores. ## External User ID `Affonso.signup()` now accepts an options object with `externalUserId`, `email`, and `name`. You no longer need to pass an email address to track leads. ```javascript // Track by internal user ID — no email required window.Affonso.signup({ externalUserId: 'usr_abc123' }); // Or combine with email and name window.Affonso.signup({ email: 'user@example.com', externalUserId: 'usr_abc123', name: 'Jane Doe' }); ``` Pass the same ID as `userId` in your payment provider's metadata so webhook events automatically match back to referrals. Works with Stripe, Polar, Creem, Dodo, and Paddle. The classic email-only format still works exactly as before — no changes needed for existing integrations. ## Privacy Controls New toggles in your affiliate program settings let you control what data is stored: - **Email tracking** — Disable to stop storing customer email addresses on referrals - **Name tracking** — Disable to stop storing customer names on referrals When email tracking is disabled, referrals are matched using `externalUserId` instead. Ideal for privacy-conscious setups or strict data protection requirements. Find these settings in **Affiliate Program → Privacy Controls**. ## Learn More - [Signup & Lead Tracking Guide](/help/installation-guides/overview/signup-tracking) — Full documentation with framework examples and best practices --- ## New: Live Chat Support & AI Agent Readiness (23.04.2026) We've replaced our old feedback widget with **Fernand** — a proper live chat so you can reach us instantly from anywhere in the app. We've also made Affonso ready for the age of AI agents: - **[NEW]** Live chat support available directly inside the dashboard - **[NEW]** AI agent discovery endpoints — agents can now find and understand your affiliate program - **[NEW]** OAuth discovery and WebMCP support for agent-to-agent integrations - **[NEW]** Markdown content negotiation for AI-friendly responses --- ## New: Migrate from FirstPromoter (19.04.2026) Moving away from FirstPromoter? Affonso now supports a full migration of your affiliate data. - **[NEW]** Import affiliates, campaigns, rewards, and contacts from FirstPromoter - **[NEW]** Campaign-to-group mapping preserves your existing structure - **[NEW]** Reward rules are automatically converted to Affonso incentives --- ## New: Full Program Management via API (06.04.2026) You can now manage your entire affiliate program through the API. This release introduces endpoints for all core program settings, including program info, payment terms, tracking settings, restrictions, groups, creatives, notification settings, portal configuration, and fraud rules. All endpoints support both read and update operations, giving you full control over your setup without needing to use the dashboard. This also unlocks the ability to integrate affiliate program management directly into your own admin interface and automate changes programmatically. Check out the full [API documentation](https://docs.affonso.io) for details on all available endpoints. --- ## Direct Group Invite Links: Recruit Affiliates into Specific Groups (21.12.2025) Recruiting affiliates for different partner tiers just got a lot easier. You can now generate and share invite links that automatically assign new affiliates to a specific group when they sign up. ## Why This Matters Before, you had to manually move affiliates into groups after they joined. Now, you can share a group-specific link and new partners are automatically placed in the right group with the correct commission structure from day one. This is perfect for: - **Influencer partners** who get higher commission rates (e.g., 30%) - **Blog & content partners** with standard commissions for written content - **Integration partners** like SaaS companies or developers with premium rates - **Affiliate networks** where each network gets their own tracking group ## How It Works 1. Navigate to any group in your dashboard 2. Click **"Share Invite Link"** 3. Copy the link or share it via email/social media The link looks like this: ``` https://yourportal.affonso.io/?group=abc123 ``` When affiliates sign up through this link, they're automatically added to that group and inherit its commission settings. ## Share Anywhere The new share modal makes it easy to distribute your invite link: - Copy to clipboard with one click - Send via email with a pre-filled message - Share directly on Facebook, Twitter, or LinkedIn [Learn more about group invite links](/help/managing-affiliates/inviting-affiliates-to-groups) --- ## New: Invite Affiliates by Email – Straight From Your Dashboard (09.05.2025) You can now invite affiliates directly from your dashboard using just their email address. No signup link sharing, no manual follow-ups. ## Why I Added This Sometimes the best affiliates are the ones you already know. Instead of waiting for them to find your signup page, you can now send a personal invite in seconds. Plus: quite a few users asked for this. It makes onboarding hand-picked affiliates way easier — especially when you're just getting your program off the ground. ## How It Works 1. Go to your affiliate program dashboard 2. Click “Invite affiliate” 3. Enter the affiliate’s email address and hit send 4. They’ll instantly receive a branded invitation email with a unique link 5. When they click it, they’ll go through your onboarding flow. 6. Set up their personal tracking ID Done – they’re in and ready to promote --- ## New: Manual Payout Generation (18.11.2025) Pay your affiliates exactly when you need to - no more waiting for automatic schedules or rigid payment cycles. Generate payouts on-demand for any time period, perfect for closing books at quarter-end, rewarding top performers immediately, or handling special payment requests. Running a holiday promotion and want to pay affiliates right after? Done. Need to settle accounts for a specific month for accounting purposes? Easy. Want to pay out one affiliate who's asking about their earnings? Takes seconds. Override minimum thresholds when the situation calls for it - whether you're making a final payment to a departing affiliate, settling small balances to clean up your books, or making good-will payments for special circumstances. Your program, your rules. Everything runs in the background so you can keep working. Click generate, close the window, and come back when it's done. This is about giving you control over your cash flow and affiliate relationships, not being locked into rigid automated schedules when business needs change. --- ## New: Manual Referral & Commission Creation (25.07.2025) You can now create referrals and commissions manually for your affiliates directly from the dashboard. This powerful new feature bridges the gap between online tracking and offline sales, ensuring no referral goes uncredited. Perfect for offline sales, phone orders, and retroactive credits - simply navigate to your affiliates section and click "Add Referral" next to any affiliate. The intuitive form lets you record customer details, transaction amounts, and set custom commission structures. Flexible commission settings allow you to choose between fixed amounts or percentage-based commissions that automatically calculate from the transaction value. You can also control when commissions become payable with approval workflows including immediate payment, hold periods, or manual review. Built-in safeguards prevent duplicate referrals by email and customer ID, while manual entries are automatically tagged for easy identification in your reports. The system integrates seamlessly with all supported payment processors including Stripe, Polar, Creem, and Dodo Payments. Enhanced user experience includes a custom date picker, real-time form validation, and dynamic currency display based on your team settings. All amounts are properly stored in your configured currency with full decimal input support. This update ensures your affiliate program captures every referral, whether they come through tracking links or real-world interactions, giving you complete control over your commission management. --- ## New: Manually Attribute Leads to Partners (09.06.2025) You can now manually assign leads to affiliates by email — ideal for edge cases where cookie tracking falls short. Let’s say a user signs up on a different device, clears their cookies, or registers without clicking an affiliate link. Normally, that referral would be lost. But now, you can manually link that user’s email to the correct affiliate, ensuring future **purchases are tracked** properly. Once assigned, any future payment tied to that email will automatically credit the affiliate — even across devices or browsers. ### How it works: - Go to the **Affiliates** tab: https://affonso.io/app/affiliate - Click **“View Details”** on the relevant affiliate - Use the **"Add Lead"** option to enter the user's email Perfect for when someone signs up without a referral cookie, but you still want to give credit where it's due. --- ## Affiliate Dashboard now in 14 Languages (01.12.2025) Affiliates can use the dashboard in their own language—14 options, one click to switch. Onboarding feels familiar, support questions drop, and partners stay focused on their numbers. Available languages: Arabic, German, English, Spanish, French, Italian, Portuguese, Dutch, Polish, Turkish, Japanese, Korean, Russian, and Chinese. --- ## Multi-Level Commissions (14.02.2026) Your affiliates can now earn commissions from the sales of affiliates they recruit — up to 3 levels deep. ## Why Multi-Level Growing an affiliate program is hard when only you can recruit. Multi-level commissions turn your existing affiliates into recruiters. They share a recruitment link, new affiliates sign up under them, and every sale in the chain earns commissions upward. Your program grows organically without extra effort from your team. ## How It Works Configure multi-level rates per group in Groups & Rewards. Two calculation modes: - **% of Commission:** Parent earns a percentage of their sub-affiliate's commission. Commissions naturally decrease at each level. - **% of Sale:** Parent earns a percentage of the original sale amount. Every level earns the same. **Real scenario:** You set 10% on Level 1. Your affiliate Sarah recruits Tom. When Tom closes a $500 sale and earns $50 commission, Sarah automatically earns $5. No manual work, no spreadsheets. ## What Affiliates See Affiliates with multi-level enabled see a new **Sub-Affiliates** tab in their portal with: - A recruitment link to share - List of recruited sub-affiliates with their sales activity - Multi-level earnings history and stats ## Admin Controls - Set rates per group with per-affiliate overrides for special partners - Manually assign parent-child relationships from the admin dashboard - Refunds automatically cascade — full refunds set ML earnings to refunded, partial refunds reduce them proportionally #### Available now on Growth, Elite, and Advanced plans. Check the [help article](/help/commission-payouts/commission/multi-level-commissions) for detailed setup instructions. --- ## New: Multi-Provider Coupon Support (15.04.2026) Coupons now work seamlessly across all your connected payment providers. If you use multiple payment processors (Stripe, Creem, Polar, Dodo, Paddle), you can now create a single coupon that maps to the correct code on each provider. No more managing separate coupons per platform. - **[NEW]** Link one affiliate coupon to multiple payment providers at once - **[NEW]** Affiliates are redirected back to their original page after portal login - **[IMPROVED]** Marketing pages load faster with reduced client-side JavaScript - **[IMPROVED]** SEO improvements across all marketing pages --- ## New: Multiple Coupons Per Affiliate (05.04.2026) Affiliates can now have more than one coupon code — giving you and your partners much more flexibility with promotions. ## Why This Matters Until now, each affiliate was limited to a single coupon code. That made it hard to run seasonal promotions, A/B test different discount strategies, or offer product-specific codes alongside a general one. Now affiliates can hold multiple coupon codes simultaneously, each with its own discount settings. ## What's New - **Multiple Codes Per Affiliate:** Assign as many coupon codes as needed — no more one-code limit - **Independent Settings:** Each code can have its own discount type, value, duration, and product restrictions - **Full Provider Support:** Works across Stripe, Paddle, Polar, Dodo Payments, and Creem --- ## Connect Multiple Payment Providers to One Program (13.01.2026) Running different products on different payment systems? You can now connect Stripe, Paddle, Polar, Creem, and Dodo to the same affiliate program – and track all sales in one place. ## Why This Matters Before, each affiliate program could only connect to one payment provider. If you sold products through Stripe and Paddle, you needed two separate programs. Now you can connect all your payment providers to a single program. Your affiliates get one link, one dashboard, one payout – regardless of where sales come from. ## How It Works 1. Go to your affiliate program settings 2. Connect each payment provider you use 3. Done – sales from all providers are tracked automatically Each provider runs independently. Adding or removing one doesn't affect the others. Your existing connections stay exactly as they are. --- ## New: Enhanced Affiliate Detail View (02.04.2025) I've completely redesigned the affiliate detail view to give program owners deeper insights and better management capabilities for each affiliate. ## What's New: - **Comprehensive Profile Information:** Easily access signup date, email, and affiliate link - **Coupon Management:** Create and manage custom coupon codes directly from the affiliate profile - **Performance Snapshot:** View key metrics at a glance - earnings, conversion rates, gross and net revenue - **Visual Analytics:** Track performance trends with intuitive charts for referrals and conversions - **Customer Details:** See complete information about every customer referred by the affiliate - **Commission Management:** Review all commission entries with their current status - **Payment History:** Access full payment records and payout information ## Why This Matters: Having comprehensive affiliate data in one place is essential for running an effective affiliate program. This redesigned view puts all the critical data at your fingertips so you can better understand individual affiliate performance and manage your relationships more effectively. The enhanced view also makes it easier to identify your top performers and spot potential issues before they impact your program. This update is live for all users - just click on any affiliate in your dashboard to experience the improved interface. --- ## New: Paddle Integration (02.10.2025) We now support Paddle natively as a payment processor for affiliate programs. Program owners can easily connect their Paddle account to start tracking affiliate sales, commissions, and referrals directly through their existing Paddle setup without any complex configuration. The integration automatically handles subscription tracking, one-time purchases, refunds, and commission calculations. Affiliates get credited for sales made through discount codes or referral links, with full support for trial periods, subscription renewals, and partial refunds, making it seamless to run affiliate programs alongside Paddle's billing system. --- ## Pay Per Lead (CPL) Incentives (28.01.2026) Reward affiliates for signups, not just sales. Add a fixed bonus per lead on top of your regular commissions — so affiliates stay motivated even when conversions take time. ## Why Add CPL Products with free trials or longer sales cycles can frustrate affiliates. They bring traffic, users sign up, but commissions only come weeks later when someone finally upgrades. CPL bridges that gap: affiliates see earnings immediately, you get more volume at the top of your funnel. ## How It Works Create an incentive with **"Signups (Pay Per Lead)"** as trigger. Set a fixed amount — $1, $5, whatever fits your margins. Affiliates earn that bonus for every signup, plus their normal commission when the sale happens later. No extra integration. If you're already tracking signups, CPL works automatically. ## Setup **Groups → Incentives → Add Incentive** 2. Select **"Signups (Pay Per Lead)** 3. Set amount per lead 4. Assign to a group --- ## Payment Terms & Tracking Page Improvements (26.01.2026) Cleaner payment management and better visibility into what's happening with your affiliate program. ## Payment Terms Made Clear Set and display your payment terms so affiliates always know when to expect payouts. No more support questions about payment schedules — the information is right there in their portal. ## Improved Tracking Page We've cleaned up the tracking interface to make it easier to see what's working: - **Faster loading** for programs with lots of activity - **Cleaner layout** that highlights the important metrics - **Better mobile experience** for checking stats on the go Small improvements that add up to a smoother daily workflow for both you and your affiliates. --- ## Improved: App-Wide Performance Overhaul (20.04.2026) We've made Affonso significantly faster across the board. This update includes performance improvements to nearly every part of the app — from the dashboard to individual affiliate and referral pages. - **[IMPROVED]** Dashboard, affiliates, referrals, and sales pages all load noticeably faster - **[IMPROVED]** Loading skeletons added so you see instant feedback while data loads - **[IMPROVED]** Database queries optimized --- ## 🔌 New Integration: Polar.sh (07.03.2025) I'm thrilled to announce our newest payment integration with Polar.sh! This highly-requested integration opens up powerful new opportunities for SaaS companies, WordPress sellers, and desktop application developers. [Polar.sh](https://affonso.io/polar-affiliate-program) has become an increasingly popular payment solution in the software industry. With this integration, you can now leverage Polar's powerful checkout experience while running a full-featured affiliate program through Affonso. ## How To Get Started: 1. Connect your Polar account using an API token 2. Set up the webhook connection (takes just minutes!) 3. Add our lightweight tracking script to your website 4. Start inviting affiliates to promote your products For step-by-step instructions, [check out our complete integration documentation here](https://affonso.io/help/integrations/polar/polar-checkout-api). This is just the beginning of our expansion plans for 2025. Stay tuned for more exciting integrations coming soon! --- ## Better Portal Referrals & Sales Flow (05.12.2025) Your affiliates now get faster, clearer referral and sales views. Both tables load only what’s needed with real pagination, so large lists stay snappy and totals stay accurate across pages. Clicking a customer in referrals jumps straight to the sales tab with that customer pre-filtered, keeping context while exploring performance. Sorting works across all data, not just the visible page, so leaders stay on top even as you browse. Loading states now mirror the full table height, reducing layout shifts and giving a clear signal while data arrives. Overall, navigating affiliate earnings is quicker, cleaner, and more focused on the outcome: understanding what’s driving revenue. --- ## Postback URLs for Affiliates (05.03.2026) Affiliates can now set up postback URLs directly from their portal — no code, no complex webhook setup. Just a URL with placeholders that gets called via GET when events happen. ## What's included: - **4 event types:** `referral.lead`, `referral.converted`, `sale.created`, `commission.created` - **Dynamic placeholders:** Insert `{commission_amount}`, `{tracking_id}`, `{sale_amount}`, and more into your URL — they get replaced with real values at fire time - **Instant testing:** Hit "Send Test" on any saved postback to verify it works before going live - **Up to 5 URLs per affiliate:** Each with its own event triggers ## Perfect for: - Custom tracking systems and spreadsheets - Zapier/Make/n8n webhooks for automations - Affiliates who want real-time notifications without polling Setup takes 30 seconds: **Settings → Postback** in the affiliate portal. → Full documentation at [Postback URLs](/help/for-affiliates/postback-urls) --- ## Pre-Login Affiliate Dashboard Enhancement (21.11.2024) We've completely revamped our pre-login affiliate dashboard with a modern, user-friendly interface. The new design provides a streamlined entry point for potential affiliates, featuring a clean sign-in process with magic link authentication. ## Transparent Program Information Before logging in, visitors can now explore all available affiliate programs in detail. Each program listing includes comprehensive information about commission structures, payout terms, and program benefits, helping partners make informed decisions. ## Brand Customization Portal owners can now fully customize their affiliate landing page with brand colors and logos, creating a cohesive experience that matches their corporate identity. --- ## New Feature: Program-Wide Coupon Codes (11.09.2025) Double-sided incentives are here! Create program-wide discount codes that automatically apply to all customers arriving through affiliate referral links. This creates a powerful win-win scenario where affiliates are more motivated to promote because customers get instant value, while your conversion rates increase thanks to automatic discounts. Affiliates earn commissions while customers save money, creating positive network effects for your program. Getting Started: Set up program-wide coupons in your [Affiliate Program Settings](https://affonso.io/app/affiliate-program) and integrate the discount logic with your checkout flow using our simple API. [Complete Setup Guide →](https://affonso.io/help/commission-payouts/commission/double-sided-incentives) --- ## New: Email Finder (10.04.2026) Find your affiliates' contact emails directly inside Affonso. The new **Email Finder** lets you discover email addresses for your affiliate prospects — powered by a credit-based system so you only pay for what you use. - **[NEW]** Find affiliate emails with one click from the discovery or affiliate list - **[NEW]** Bulk email lookups for processing multiple affiliates at once - **[NEW]** SDK and CLI now available in pricing plans --- ## New: QR Code Generation for Affiliate Links (16.01.2026) Your affiliates can now generate and download QR codes for their referral links — perfect for offline marketing like business cards, flyers, or event banners. ## Why I Added This Affiliates don't just promote online. Many share their links at conferences, meetups, or through printed materials. Copying a long URL onto a business card isn't practical. A QR code solves this instantly. ## What's New **One-Click QR Download** - A new QR code button sits next to the copy button in both the Partner Portal and Embedded Dashboard. Click it, and a high-resolution PNG downloads immediately. **All Parameters Included** - The QR code captures the complete affiliate link including tracking ID, custom parameters (sub1-sub5), and any deep link settings. Whatever your affiliate configured, the QR code reflects it. **Clean Tooltips** - Hover over either button to see what it does. Small, unobtrusive, and consistent across Portal and Embed. ## Built for: - **Event Marketing:** Affiliates at trade shows or conferences can display their QR code on banners or handouts - **Print Materials:** Business cards, brochures, and flyers can include scannable referral links - **Influencers:** YouTubers and podcasters can show QR codes on screen for easy mobile access - **Retail Partners:** Physical stores can display QR codes at checkout or on receipts ## How It Works Navigate to your referral link section. You'll see a QR code icon next to the copy button. Click it to instantly download a 512x512 PNG named with your tracking ID. The code works with all standard QR scanners. ## Live Now Available in your [Partner Portal](https://affonso.io/portal) and Embedded Dashboard — start generating QR codes today. --- ## New: Self-Service Affiliate Coupons (22.12.2025) Let your affiliates create their own personalized coupon codes — with discount settings you control. ## Why I Added This Managing coupon codes for every affiliate manually doesn't scale. You want to give affiliates the flexibility to choose their own codes, but you need to control the discount terms. Now you can do both. ## How It Works ### For Program Owners: 1. Go to your Affiliate Program settings 2. Find "Self-Service Affiliate Coupons" in Advanced Settings 3. Click "Configure" and set your discount blueprint: - Discount type (percentage or fixed amount) - Discount value - Duration (once, forever, or multiple months) 4. Save — affiliates can now create their own codes ### For Affiliates: 1. Log into the affiliate portal 2. Click "Create Your Coupon Code" 3. Enter your preferred code (e.g., JOHNSMITH20) 4. Done — the code is instantly synced with the payment provider You define the discount. They choose the code. Everyone wins. ## Built for: - **Scaling Programs:** Stop manually creating codes for every affiliate - **Brand Consistency:** Affiliates get personalized codes while you control the discount - **Faster Onboarding:** New affiliates can start promoting immediately - **All Major Providers:** Works with Stripe, Paddle, Polar, and DODO ## Live Now Configure your coupon blueprint in Affiliate Program → Advanced Settings → "Self-Service Affiliate Coupons". --- ## Smarter Global Payouts & Invoice Management (23.01.2026) Your affiliates can now receive payments through their local banking systems, and managing invoices for payouts just got dramatically easier. ## Pay Affiliates Their Way We added **country-specific payment methods** so affiliates get paid through the systems they actually use: - **US affiliates** can choose ACH transfers (checking or savings accounts) - **EU affiliates** see SEPA/IBAN fields automatically - **International affiliates** get the right wire transfer fields for their country The system adapts based on the affiliate's location — no more confusion about which fields to fill in, and fewer failed payments due to incorrect bank details. ## Professional Invoice Handling Managing invoices for affiliate payouts is now built in: - **Self-billing invoices** generate automatically with proper VAT calculations - **Upload and review** invoices from affiliates who provide their own - **EU VAT verification** validates tax IDs instantly - **Centralized storage** keeps all invoice files in one place Whether you handle invoicing yourself or require affiliates to submit their own, the workflow is clear and trackable. No more email chains or lost documents. ## Custom Affiliate Links by Group You can now set **custom website URLs for specific affiliate groups**. Perfect when you're running multiple brands or need white-label affiliate links that match different storefronts. Affiliates in those groups automatically get links with the custom URL — their QR codes, tracking links, everything updates to match. ## More Control Over Tracking New **toggle to disable affiliate links entirely** if you prefer running your program with coupon codes only. Give affiliates just coupons, or just links, or both. Your call. --- ## 🏷️ Custom Coupon Codes for Stripe Users (05.01.2025) I've added a new feature that allows you to create custom coupon codes for your affiliates directly within Affonso when using Stripe as your payment processor. ## What's New: - **Custom Coupon Creation:** Create personalized coupon codes for each affiliate directly in Affonso - **Automatic Stripe Integration:** Coupon codes are instantly synced to your Stripe account - **Link-Free Promotions:** Affiliates can now be identified by their unique coupon code - no affiliate links required - **Win-Win Solution:** Your customers get discounts while affiliates still earn their commissions ## How It Works: 1. Create a unique coupon code for an affiliate in Affonso 2. The coupon is automatically created in your Stripe account 3. When customers use the coupon during checkout, the system identifies the affiliate 4. Commissions are tracked and credited correctly without needing a traditional affiliate link This feature gives your affiliates more flexibility in how they promote your products, especially in situations where direct links aren't practical (podcasts, videos, offline events). --- ## Tax Form Collection: Stay Compliant, Pay with Confidence (05.01.2026) Collecting tax forms from affiliates before payouts is now built into Affonso. Required for US compliance, useful for anyone who wants complete records. ## Why This Matters If you pay US-based affiliates more than $600 per year, you need their W-9 form. Non-US affiliates may need W-8BEN forms. Tracking who submitted what — and chasing missing forms — has always been a headache. Now it happens automatically. ## How It Works Enable tax form requirements in your program settings (available on Elite). When an affiliate's earnings approach the threshold, they see a clear prompt to upload their tax form. Until it's submitted, payouts are held. - **W-9** for US affiliates reaching the $600 threshold - **W-8BEN** for international affiliates when needed - **Automatic holds** until forms are on file - **Clear messaging** so affiliates know exactly what's needed No more spreadsheets to track form status. No more surprise compliance issues at tax time. ## For Your Affiliates Affiliates see helpful guidance about which form they need and why. The upload process is straightforward. --- ## Team Member Management: Collaborate Without Confusion (27.01.2026) Invite your team to manage your affiliate program together — with the right access levels for each person. ## Add Team Members in Seconds Go to Settings → Team Members and invite colleagues by email. They'll get access to help manage affiliates, review payouts, or handle support — whatever you need. ## Smoother Onboarding We've also improved the experience when new team members accept invitations: - **Clearer next steps** so people know exactly where to go - **Better validation** that catches errors before they cause problems - **Faster setup** to get everyone productive quickly Whether you're a solo founder adding your first VA or a growing team splitting responsibilities — adding help is now friction-free. --- ## New: Migrate from Tolt & Reset Program Data (17.04.2026) Switching from Tolt? We've built a dedicated migration flow that imports your affiliates, referrals, and commissions — right from your Affonso settings. We also added new tools for managing your program: - **[NEW]** One-click Tolt migration with real-time progress tracking - **[NEW]** Reset Program Data action in the danger zone to start fresh - **[IMPROVED]** Toggle switches replaced with clearer button groups across program settings - **[IMPROVED]** Help center articles updated with better navigation --- ## Total Signups Card: See Your Full Impact (24.01.2026) Affiliates can now see their total signups at a glance — not just conversions. ## The Full Picture Conversions matter, but they're only part of the story. Now your affiliates see exactly how many people clicked their link and signed up — even if they haven't converted to paying customers yet. This visibility helps affiliates understand: - **Their reach** — how many people they're actually bringing in - **Conversion potential** — signups today become customers tomorrow - **Campaign effectiveness** — which efforts drive the most interest More transparency means more motivated affiliates who can optimize their promotion strategy. --- ## Webhooks for Affiliate Events (10.12.2025) You can now deliver real-time affiliate events to your own systems via webhooks. Program owners get a dashboard to create endpoints, choose events, rotate secrets, view delivery logs, and replay failed deliveries. Payloads are HMAC-SHA256 signed, include retries with exponential backoff, and can be tested immediately after setup. Learn how to configure and verify signatures in the Help Center: [Webhooks overview](/help/connect/webhooks/webhooks) and [Affiliate webhook events](/help/connect/webhooks). --- ## Webhooks: Real-Time Updates, Zero Polling (18.12.2025) Stop checking for changes – let Affonso tell you when something happens. Webhooks push events to your systems the moment they occur. New affiliate signed up? Referral converted? Payout triggered? Your tools know instantly. No delays, no missed events, no wasted API calls. Set up endpoints, pick the events you care about, and let your workflows react in real-time. HMAC-SHA256 signed payloads keep everything secure. → Full documentation at [docs.affonso.io/webhooks](https://docs.affonso.io/webhooks) --- ## New: WeChat & AliPay Now Available for Affiliate Payouts (07.05.2025) You can now offer **WeChat** and **AliPay** as payout options for your affiliates. ## Why I Added This If you're working with affiliates in Asia, PayPal and Wise might not always be ideal. These new options make it easier to pay affiliates in China using the platforms they already trust. ## How It Works Head to your program settings and enable one or both options under “Payout Methods.” Affiliates will see them in their portal right away. ---