Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions content/changelog/brand-onboarding-flow.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: Set up your program in one full-screen flow
date: 2026-10-18
type: feature
audience: [brands]
surfaces: [dashboard]
description: Creating a program opens five full-screen steps, from Business to Go live, with Save and exit on every step.
context:
facts:
- "Creating a program on Affitor opens a full-screen setup at https://affitor.com/brand/new with five steps in this order: Business, Commission, Tracking, Payments, Go live."
- "Each step shows Step n of 5, a progress bar and a Save and exit button."
- "Business asks for two things: a business name and a website. Continue creates the program and opens Commission."
- "Tracking and Payments have one Continue button that works while the check is still pending; it does not mark the step done."
- "A program that is already live has no setup; its setup links open the matching Program settings page."
ui: ["Step 1 of 5", "Your business", "Business name", "Website", "Continue", "Save and exit", "Back", "Commission", "Install tracking", "Payments", "Go live", "Create a program"]
avoid:
- "Saying setup copies settings, a logo or partners from another program"
- "Saying Continue on Tracking or Payments marks them done or skips the Go live checks"
- "A setup time such as five minutes"
- "A Skip button (there is none)"
cta: { label: "Create a program", url: "https://affitor.com/brand/new" }
---

Set up a new program in one full-screen flow, one step at a time, at [affitor.com/brand/new](https://affitor.com/brand/new).

Until today, creating a program started on a separate form that also asked for a program handle, and the setup steps after it sat next to a step list and, on a wide screen, a preview of what partners see, with a Skip for now button on Tracking and Payments. Now every step is one screen in the same flow.

## How it works

- **Five steps**: Business, Commission, Tracking, Payments and Go live, each with **Step n of 5** and a progress bar.
- **Two fields to start**: Business asks only for a business name and a website.
- **Leave any time**: **Save and exit** is on every step.

## Start with your business

Enter your business name and website, then click **Continue**. Affitor creates the program and opens Commission for it. If you already run a program, Business starts with its name and website; change them for the new one.

<Media src="/docs/changelog/brand-onboarding-flow/business.png" alt="Step 1 of 5, Your business, with Business name, Website and Continue" />

## Keep going, or come back later

Commission, Tracking and Payments each have **Back** and **Continue**. On Tracking and Payments, **Continue** works while Affitor is still checking; the step is not marked done until the check passes. Go live still checks that everything is in place before your program goes live.

**Save and exit** saves your progress and opens the program's dashboard. On Business, it creates the program from the two fields; with both fields empty, it leaves without creating one.

## Where to change it later

Once a program is live, it has no setup: each step is its page in Program settings, and old setup links open that page.

## Conclusion

Setting up a program is now one guided flow from Business to Go live. [Learn more by creating a program](https://affitor.com/brand/new), and write to support@affitor.com with any question.
16 changes: 15 additions & 1 deletion content/changelog/improvements-2026-10-18.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Improvements and fixes, Oct 12–18
date: 2026-10-18
type: digest
audience: [brands, partners, developers]
surfaces: [dashboard, cli, sdk]
surfaces: [dashboard, marketplace, api, cli, sdk, mcp]
description: Simpler username rules, website suggestions for your Business details, faster partner pages, and fixes to renewals, phones and sign-up.
---

Expand All @@ -27,6 +27,11 @@ description: Simpler username rules, website suggestions for your Business detai
- Program settings › Payments shows two cards, Stripe and Server API, each with its own status. Either one counts for Payments when you go live.
- A partner invite to a program listed on the marketplace shows the commission, how long it pays and the attribution window before the partner signs in.
- Team members with the Member role no longer see Invite member, Resend invite or Regenerate on the API keys page. Owners keep them.
- On the API keys page, a new key comes with a **Copy key** button, Regenerate confirms in a dialog that names the key it stops, and an expired key tells Owners to update `AFFITOR_API_KEY`.
- [affitor.com/switch](https://affitor.com/switch) shows how to move from another affiliate tool: connect payments, test tracking, then invite your partners by CSV. Partners get new links.
- Finished steps on Get started and most success tags use Affitor blue instead of green.
- On Account › Payouts, the Get ready to be paid list no longer repeats the Add payout method button. The Legal name and Payout method rows jump to their cards on the page.
- Marketplace programs without an uploaded logo can show their website's icon instead of initials. An uploaded logo always wins.

### Fixed

Expand All @@ -37,6 +42,9 @@ description: Simpler username rules, website suggestions for your Business detai
- Signing up with email keeps the name you typed.
- A renamed Refer a brand link still credits the brands who sign up through it.
- Program pages show their whole About, with no Read more.
- The invoice number in the How to pay part of invoice emails stays on one line on a phone.
- Paying an Affitor invoice by card stays in the invoice currency, with no conversion to a local currency at checkout.
- In Partner › Programs, a program's dashboard shows the same logo as your Programs list instead of an initial, and Copy buttons line up for short and long links.

### For developers

Expand All @@ -46,3 +54,9 @@ description: Simpler username rules, website suggestions for your Business detai
- `affitor onboard` leaves your Stripe webhook alone when Stripe is connected in Affitor, so sales are not counted twice.
- `@affitor/sdk` 2.1.3 marks its React entry `"use client"`, so it imports cleanly in the Next.js App Router.
- `affitor status` and `affitor test` run with an API key alone, with no project config.
- Stripe invoices now record their sale from `invoice.paid` as well as `invoice.payment_succeeded`, once per invoice. An invoice already refunded, even partly, when Affitor records it adds no sale.
- A Stripe invoice paid with several payments, or by a payment that also pays other invoices, does not record a sale on its own.
- `POST /api/v1/track/refund` with an empty Bearer token returns 401 `Empty Bearer token`.
- `affitor` 0.4.6: `affitor agent setup --program-id <id>` gives each coding agent its own restricted key, separate from your live key. Run `affitor login` first; only program Owners can create keys.
- MCP tools describe every input: what it means, where it comes from and what leaving it out does. `list_my_payouts` says bank or Wise.
- `@affitor/recipes` 0.1.1: the Stripe sale and renewal snippets skip a checkout with no Affitor customer key instead of failing the webhook.
53 changes: 53 additions & 0 deletions content/changelog/refer-program-page.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: A new Refer Program page, with milestones tied to paid invoices
date: 2026-10-18
type: feature
audience: [partners, brands]
surfaces: [marketplace, dashboard]
description: The Refer Program page shows an example of what a referral can earn, and the $50 and $350 milestones now follow paid invoices, checked in a review.
context:
facts:
- "The Affitor Refer Program page is https://affitor.com/marketplace/referral-program. Get your link opens Referrals when you are signed in, or sign-up when you are not."
- "The page has an Example card: pick Brands you bring and Partner sales per brand, a month ($5k, $25k or $50k) to see what the three rewards could add up to."
- "The rewards for referring a brand are $50 after the brand pays its first fee invoice, $350 at $10k in paid sales with paid Affitor invoices and paid partners, and 15% of its Affitor fees for 12 months."
- "Each reward is held for 30 days. The $50 and $350 are then reviewed one by one before they reach your balance; the 15% releases on its own after its hold."
- "Refer a partner shows Soon. It has no published terms yet."
ui: ["Affitor Refer Program", "Get your link", "Refer a brand", "Refer a partner", "Soon", "Example", "Brands you bring", "Partner sales per brand, a month", "How it works", "Why refer", "Who it is for", "Questions", "Referrals", "Your link", "Copy", "Invite via email", "M1 and M2 require admin approval after the hold.", "Program terms"]
avoid:
- "Presenting the Example total as a promise or an average; it is an example the reader sets"
- "Saying the $50 comes when a brand goes live (that was the earlier wording)"
- "Saying the review or the paid-invoice check is automatic"
- "Amounts or terms for referring partners"
- "Partner or program counts shown on the page (they change)"
cta: { label: "Get your link", url: "https://affitor.com/marketplace/referral-program" }
---

See what a referral can earn and get your link on the new [Refer Program page](https://affitor.com/marketplace/referral-program).

Until today, the page listed the three rewards, a link and the terms. The $50 came when a referred brand's program went live, the $350 at $10,000 in tracked sales, and both reached your balance when their hold ended. Now the page shows a worked example, and the terms tie both milestones to paid invoices: each one is reviewed against those payments before it reaches your balance.

## How it works

- **Example**: set how many brands you bring and their monthly partner sales to see the three rewards add up.
- **Paid milestones**: $50 after the brand pays its first fee invoice; $350 at $10k in paid sales, with paid Affitor invoices and paid partners.
- **Reviewed release**: after the 30-day hold, the $50 and $350 are reviewed one by one. The 15% releases on its own.

## See what a referral could earn

The **Example** card starts at 3 brands and $25k in partner sales a month. Change either one and each reward line updates. Below it, the page explains how it works, why to refer, who it is for, and answers common questions.

<Media src="/docs/changelog/refer-program-page/example.png" alt="The Refer Program page with the Example card set to 3 brands and $25k in partner sales a month" />

## Get your link

Click **Get your link**. Signed in, it opens **Referrals**; otherwise you sign up first. Referrals shows your link with **Copy** and **Invite via email**, the same three rewards, and a note that the milestones are approved after the hold.

<Media src="/docs/changelog/refer-program-page/link.png" alt="Referrals with the three reward lines, the approval note and your link with Copy" />

## Where to read the rules

The [Refer Program terms](https://affitor.com/legal/refer-program) are the rules. **Refer a partner** shows **Soon** until its terms are published.

## Conclusion

The Refer Program page now shows what a referral can earn, and its milestones are reviewed against paid invoices before release. [Learn more about referral rewards](https://affitor.com/docs/partners/referral-rewards), and write to support@affitor.com with any question.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading