{
  "generated_at": "2026-10-19T16:54:19.139Z",
  "brand": {
    "logo": {
      "mark_svg": "https://affitor.com/blog/logos/affitor-icon-blue-on-white.svg",
      "mark_png": "https://affitor.com/brand/affitor-icon-512.png",
      "wordmark_svg": "https://affitor.com/docs/affitor-logo.svg"
    },
    "colors": {
      "brand": "#155DFC",
      "ink": "#262626",
      "text": "#3C4257",
      "muted": "#6A7383",
      "lines": "#E3E8EE",
      "soft_bg": "#F8F9FA"
    }
  },
  "global": {
    "context_url": "https://affitor.com/changelog/context.md",
    "rules": [
      "A setup time (\"in under an hour\", \"in minutes\") or a home-page tagline (\"Pay only for results\", \"Zero upfront\"), unless the entry quotes it. Those lines belong to the home page (its hero, stats row and sections); they are not an entry's facts.",
      "That Affitor imports partners or history from another tool.",
      "PayPal payouts.",
      "Customer or partner names, logos, numbers or quotes that are not in the entry. Use the demo names in the entry's media.",
      "A comparison with another tool without the date it was checked.",
      "A URL or button label that is not in the entry or in this file."
    ]
  },
  "entries": [
    {
      "slug": "brand-onboarding-flow",
      "url": "https://affitor.com/changelog/brand-onboarding-flow",
      "date": "2026-10-18",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Set up your program in one full-screen flow",
      "description": "Creating a program opens five full-screen steps, from Business to Go live, with Save and exit on every step.",
      "points": [
        "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."
      ],
      "learn_more": "https://affitor.com/brand/new",
      "media": {
        "banner": null,
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/brand-onboarding-flow/business-light.png",
            "dark": "https://affitor.com/docs/changelog/brand-onboarding-flow/business-dark.png",
            "raw": "https://affitor.com/docs/changelog/brand-onboarding-flow/business-raw.png",
            "alt": "Step 1 of 5, Your business, with Business name, Website and Continue"
          }
        ],
        "videos": []
      },
      "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"
        }
      }
    },
    {
      "slug": "improvements-2026-10-18",
      "url": "https://affitor.com/changelog/improvements-2026-10-18",
      "date": "2026-10-18",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "api",
        "cli",
        "sdk",
        "mcp"
      ],
      "title": "Improvements and fixes, Oct 12–18",
      "description": "Simpler username rules, website suggestions for your Business details, faster partner pages, and fixes to renewals, phones and sign-up.",
      "points": [
        "Usernames are 3 to 30 lowercase letters, numbers and hyphens. Change yours once every 14 days; a name you give up is held for you for 14 days.",
        "In Program settings › Business, saving your website suggests a logo, tagline and About for you to review. Nothing is saved until you save each card.",
        "Partner pages you opened before show at once and refresh in the background, and moving between them keeps the sidebar in place.",
        "Every page that shows your attribution window shows the one tracking applies.",
        "The Payments page says why connecting Stripe failed, inside the Stripe card.",
        "Old directory links (`/list/<slug>`) open the program on the Affitor marketplace, or the marketplace when it is not listed.",
        "The tracking and CLI quickstarts in the docs have an Agent prompt tab you can copy into your coding agent.",
        "changelog.json and context.md give AI tools every changelog entry and the facts to reuse.",
        "The Customers page is retired. Commissions names the customer on each row, shows a count for each status in use, and old Customers links open it.",
        "Invoice emails drop the invoice number from the subject and show the amount due large at the top of the invoice details.",
        "Confirm and reset emails no longer show a long link under the button.",
        "Invite a brand by email from Refer a brand: add up to five addresses, preview the message, and Affitor sends your link.",
        "Program settings › Business shows your Program ID with a Copy button. It is the ID the tracking script, the API and AI agents use.",
        "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 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.",
        "A refund or chargeback on a subscription renewal now reaches the commission for that renewal.",
        "Withdraw and the invoice details form fit a phone screen.",
        "On an iPhone, the profile row at the bottom of the rail stays on screen, and tapping a field no longer zooms the page.",
        "A team invite still works when the person signs up with email, and they are not asked to pick brand or partner.",
        "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.",
        "New programs use `?via=` in partner links instead of `?aff=`. Older programs keep `?aff=`, and tracking reads both.",
        "`affitor` 0.4.5: `affitor agent setup` configures Claude Code or Cursor for your project, with a dry run and backups first, and prints the command for Codex.",
        "`affitor doctor` checks that your agent config and key are set, without starting an agent or calling the API.",
        "`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."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "integrations-and-agents",
      "url": "https://affitor.com/changelog/integrations-and-agents",
      "date": "2026-10-18",
      "type": "feature",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "mcp"
      ],
      "title": "Integrations and AI agents pages",
      "description": "Two new public pages show what Affitor connects to, Integrations with a guide for each and AI agents for connecting your AI app over MCP.",
      "points": [
        "One list: payments, frameworks and auth, AI agents and payouts, filtered by category.",
        "A page per guide: eight integrations have a page that says what they do and sets them up in three steps.",
        "AI agents: the server address, what your agent can read, and the app you use."
      ],
      "learn_more": "https://affitor.com/integrations",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/integrations-and-agents/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/integrations-and-agents/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/integrations-and-agents/integrations-light.png",
            "dark": "https://affitor.com/docs/changelog/integrations-and-agents/integrations-dark.png",
            "raw": "https://affitor.com/docs/changelog/integrations-and-agents/integrations-raw.png",
            "alt": "The Integrations page with its heading, the featured tiles, the category filter and the first row of payment integrations"
          },
          {
            "light": "https://affitor.com/docs/changelog/integrations-and-agents/stripe-light.png",
            "dark": "https://affitor.com/docs/changelog/integrations-and-agents/stripe-dark.png",
            "raw": "https://affitor.com/docs/changelog/integrations-and-agents/stripe-raw.png",
            "alt": "The Stripe integration page with Connect Stripe and Read the guide, what it does, and the three steps to connect"
          },
          {
            "light": "https://affitor.com/docs/changelog/integrations-and-agents/agents-light.png",
            "dark": "https://affitor.com/docs/changelog/integrations-and-agents/agents-dark.png",
            "raw": "https://affitor.com/docs/changelog/integrations-and-agents/agents-raw.png",
            "alt": "The AI agents page with the server address and a Copy button, and what an agent can do for brands and for partners"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "https://affitor.com/integrations lists what Affitor connects to, by category (Payments, Frameworks and auth, AI agents, Payouts).",
          "Eight integrations have their own page (Stripe, Polar, Next.js and its Clerk, Supabase and NextAuth variants, Node.js and Express, Fastify); the other tiles open their guide in the docs.",
          "https://affitor.com/agents shows the read-only MCP server at https://mcp.affitor.com/mcp, what an agent can read for brands and for partners, and how to add it to an AI app after signing in with an Affitor account.",
          "Both pages are linked from Product in the site header and from the footer."
        ],
        "ui": [
          "Integrations",
          "Connect Affitor to the tools you use",
          "Read the guide",
          "Connect Stripe",
          "AI agents",
          "Ask your AI app about your program",
          "Copy",
          "Connect an AI tool",
          "What your agent can do",
          "Choose your app"
        ],
        "avoid": [
          "Every integration having its own page (8 of 18 do; Wise has no page)",
          "An agent that can change data, record sales or move money (the server is read-only)",
          "An agent connection that is set up or verified by these pages on its own"
        ],
        "cta": {
          "label": "See integrations",
          "url": "https://affitor.com/integrations"
        }
      }
    },
    {
      "slug": "refer-program-page",
      "url": "https://affitor.com/changelog/refer-program-page",
      "date": "2026-10-18",
      "type": "feature",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "marketplace",
        "dashboard"
      ],
      "title": "A new Refer Program page, with milestones tied to paid invoices",
      "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.",
      "points": [
        "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."
      ],
      "learn_more": "https://affitor.com/marketplace/referral-program",
      "media": {
        "banner": null,
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/refer-program-page/example-light.png",
            "dark": "https://affitor.com/docs/changelog/refer-program-page/example-dark.png",
            "raw": "https://affitor.com/docs/changelog/refer-program-page/example-raw.png",
            "alt": "The Refer Program page with the Example card set to 3 brands and $25k in partner sales a month"
          },
          {
            "light": "https://affitor.com/docs/changelog/refer-program-page/link-light.png",
            "dark": "https://affitor.com/docs/changelog/refer-program-page/link-dark.png",
            "raw": "https://affitor.com/docs/changelog/refer-program-page/link-raw.png",
            "alt": "Referrals with the three reward lines, the approval note and your link with Copy"
          }
        ],
        "videos": []
      },
      "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"
        }
      }
    },
    {
      "slug": "first-results",
      "url": "https://affitor.com/changelog/first-results",
      "date": "2026-10-17",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "See your first results as they happen",
      "description": "Brands track their first partner, traffic, sale and payout on Get started; partners track their first click, commission and payout on Programs; sign-up asks brand or partner first.",
      "points": [
        "Pick your side first: sign-up asks brand or partner before the form.",
        "Brands: four first results on Get started, once the program is live.",
        "Partners: three first results on Programs, each with its date."
      ],
      "learn_more": "https://affitor.com/signup",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/first-results/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/first-results/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/first-results/signup-light.png",
            "dark": "https://affitor.com/docs/changelog/first-results/signup-dark.png",
            "raw": "https://affitor.com/docs/changelog/first-results/signup-raw.png",
            "alt": "The sign-up choice with two cards: I'm a brand and I'm a partner"
          },
          {
            "light": "https://affitor.com/docs/changelog/first-results/brand-light.png",
            "dark": "https://affitor.com/docs/changelog/first-results/brand-dark.png",
            "raw": "https://affitor.com/docs/changelog/first-results/brand-raw.png",
            "alt": "The First results card on a brand's Get started page, with the first partner joined and Share program as the next step"
          },
          {
            "light": "https://affitor.com/docs/changelog/first-results/partner-light.png",
            "dark": "https://affitor.com/docs/changelog/first-results/partner-dark.png",
            "raw": "https://affitor.com/docs/changelog/first-results/partner-raw.png",
            "alt": "The Start earning card on a partner's Programs page, with the first click reached and the first commission as the next step"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "Brands see a First results card on the Get started page of their program, with four steps (first partner joined, first traffic from a partner, first sale from a partner, first partner paid). The next step to reach has one button (Invite partners, Share program or Go to commissions), except the first sale, which has none.",
          "Once partner setup is done, partners see a Start earning card at the top of their Programs page (https://affitor.com/partner) with three steps (first click on their link, first commission, first payout).",
          "The sign-up page (https://affitor.com/signup) asks \"I'm a brand\" or \"I'm a partner\" before the form."
        ],
        "ui": [
          "First results",
          "Your first partner joined",
          "A partner sent you traffic",
          "Your first sale from a partner",
          "You paid your first partner",
          "Invite partners",
          "Share program",
          "Go to commissions",
          "Start earning",
          "Someone clicked your link",
          "You earned your first commission",
          "You got paid",
          "Hide this list",
          "I'm a brand",
          "I'm a partner"
        ],
        "avoid": [
          "First results on the Dashboard page (it is on Get started)",
          "Emails sent when a step is reached (none are sent yet)",
          "Signing in with an email code (not live)",
          "A promise that a program will reach every step"
        ],
        "cta": {
          "label": "Create your account",
          "url": "https://affitor.com/signup"
        }
      }
    },
    {
      "slug": "help-center-use-cases",
      "url": "https://affitor.com/changelog/help-center-use-cases",
      "date": "2026-10-17",
      "type": "feature",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [],
      "title": "A Help Center and use cases in the docs",
      "description": "The docs now open by job for brands or partners, with a searchable Help Center, three end-to-end use cases and a guide to connect a new Stripe account.",
      "points": [
        "By job: choose Brands or Partners, and pages are grouped by task.",
        "Help Center: search the common questions in one place.",
        "Use cases: a whole setup, with each guide in order."
      ],
      "learn_more": "https://affitor.com/docs/help",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/help-center-use-cases/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/help-center-use-cases/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/help-center-use-cases/nav-light.png",
            "dark": "https://affitor.com/docs/changelog/help-center-use-cases/nav-dark.png",
            "raw": "https://affitor.com/docs/changelog/help-center-use-cases/nav-raw.png",
            "alt": "The Affitor docs home with a Brands and Partners switch above the guides"
          },
          {
            "light": "https://affitor.com/docs/changelog/help-center-use-cases/help-light.png",
            "dark": "https://affitor.com/docs/changelog/help-center-use-cases/help-dark.png",
            "raw": "https://affitor.com/docs/changelog/help-center-use-cases/help-raw.png",
            "alt": "The Help center page with a search box, category filters and cards for short answers"
          },
          {
            "light": "https://affitor.com/docs/changelog/help-center-use-cases/use-cases-light.png",
            "dark": "https://affitor.com/docs/changelog/help-center-use-cases/use-cases-dark.png",
            "raw": "https://affitor.com/docs/changelog/help-center-use-cases/use-cases-raw.png",
            "alt": "The Use cases page with three cards, each showing its flow from a partner link to a commission"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "The Affitor docs (https://affitor.com/docs) have a Brands and Partners switch, with pages grouped by the job you want done.",
          "The Help Center at https://affitor.com/docs/help searches common questions.",
          "Use cases at https://affitor.com/docs/use-cases cover selling on Stripe, any payment provider and subscriptions, each showing the flow and linking the guides in order.",
          "Each guide and reference page has Copy for LLM and View as Markdown in its header."
        ],
        "ui": [
          "Help center",
          "Use cases",
          "Brands",
          "Partners",
          "Copy for LLM",
          "View as Markdown",
          "Connect a new Stripe account"
        ],
        "avoid": [
          "More use cases coming (not announced)",
          "Pages that moved or links that changed (no URL changed)"
        ],
        "cta": {
          "label": "Open the Help Center",
          "url": "https://affitor.com/docs/help"
        }
      }
    },
    {
      "slug": "navigation-v2",
      "url": "https://affitor.com/changelog/navigation-v2",
      "date": "2026-10-17",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "One navigation for brands and partners",
      "description": "Brands and partners share one left rail, with Chat in it, your account and inbox at the bottom, and a program menu that remembers your last program.",
      "points": [
        "One rail: the pages you use every day, with Chat among them.",
        "You at the bottom: your name opens the account menu, and the bell beside it opens your inbox.",
        "Your last program: brands switch programs from the top of the rail, and it opens the one they used last."
      ],
      "learn_more": "https://affitor.com/brand",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/navigation-v2/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/navigation-v2/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/navigation-v2/rail-light.png",
            "dark": "https://affitor.com/docs/changelog/navigation-v2/rail-dark.png",
            "raw": "https://affitor.com/docs/changelog/navigation-v2/rail-raw.png",
            "alt": "The brand left rail beside the Dashboard, from the program switcher at the top to Chat and the profile row with the bell at the bottom"
          },
          {
            "light": "https://affitor.com/docs/changelog/navigation-v2/inbox-light.png",
            "dark": "https://affitor.com/docs/changelog/navigation-v2/inbox-dark.png",
            "raw": "https://affitor.com/docs/changelog/navigation-v2/inbox-raw.png",
            "alt": "The Inbox open above the profile row, with Mark all as read"
          },
          {
            "light": "https://affitor.com/docs/changelog/navigation-v2/program-menu-light.png",
            "dark": "https://affitor.com/docs/changelog/navigation-v2/program-menu-dark.png",
            "raw": "https://affitor.com/docs/changelog/navigation-v2/program-menu-raw.png",
            "alt": "The program menu open at the top of the rail, with Program settings, Members and Billing"
          },
          {
            "light": "https://affitor.com/docs/changelog/navigation-v2/partner-link-light.png",
            "dark": "https://affitor.com/docs/changelog/navigation-v2/partner-link-dark.png",
            "raw": "https://affitor.com/docs/changelog/navigation-v2/partner-link-raw.png",
            "alt": "A partner's Programs table with a Link column and After approval for a pending program"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "Brands and partners use the same left rail in the Affitor dashboard (https://affitor.com/brand and https://affitor.com/partner).",
          "Chat is an item in the rail. The profile row at the bottom of the rail opens the account menu, and the bell next to it opens the Inbox.",
          "Brands switch programs from the program menu at the top of the rail. It opens the last program used in that browser.",
          "On the partner Programs page, a Link column shows the partner's link for each program, with a copy button."
        ],
        "ui": [
          "Chat",
          "Inbox",
          "Mark all as read",
          "Create program",
          "Program settings",
          "Members",
          "Billing",
          "Programs",
          "Link",
          "After approval"
        ],
        "avoid": [
          "Messages, the bell or the avatar in the top bar (they moved into the rail)",
          "An Archive tab in the inbox (not built)",
          "The last program following you across devices (it is remembered per browser)",
          "Listing every rail item by name (the brand rail is still changing)"
        ],
        "cta": {
          "label": "Open your dashboard",
          "url": "https://affitor.com/brand"
        }
      }
    },
    {
      "slug": "partner-payouts-wise",
      "url": "https://affitor.com/changelog/partner-payouts-wise",
      "date": "2026-10-17",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Get paid through Wise or a bank transfer",
      "description": "Partners finish a short payout setup, with a legal name, a Wise or bank account and a tax form, then withdraw any amount from $20.",
      "points": [
        "Set up once: a legal name, a payout method and a tax form, all in one card.",
        "Wise or bank: Affitor sends your money through Wise, to a Wise account or to a bank account in your name.",
        "From $20: once the card says Ready, withdraw any amount from $20."
      ],
      "learn_more": "https://affitor.com/account/payouts",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/partner-payouts-wise/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/partner-payouts-wise/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/partner-payouts-wise/setup-light.png",
            "dark": "https://affitor.com/docs/changelog/partner-payouts-wise/setup-dark.png",
            "raw": "https://affitor.com/docs/changelog/partner-payouts-wise/setup-raw.png",
            "alt": "The Get ready to be paid card with three rows: legal name, payout method and tax form"
          },
          {
            "light": "https://affitor.com/docs/changelog/partner-payouts-wise/method-light.png",
            "dark": "https://affitor.com/docs/changelog/partner-payouts-wise/method-dark.png",
            "raw": "https://affitor.com/docs/changelog/partner-payouts-wise/method-raw.png",
            "alt": "The Add payout method dialog with recipient country, currency and Wise as the type"
          },
          {
            "light": "https://affitor.com/docs/changelog/partner-payouts-wise/tax-form-light.png",
            "dark": "https://affitor.com/docs/changelog/partner-payouts-wise/tax-form-dark.png",
            "raw": "https://affitor.com/docs/changelog/partner-payouts-wise/tax-form-raw.png",
            "alt": "The tax form panel answered No, with A person · W-8BEN picked: country of tax residence, date of birth, permanent address and an optional foreign tax number"
          },
          {
            "light": "https://affitor.com/docs/changelog/partner-payouts-wise/withdraw-light.png",
            "dark": "https://affitor.com/docs/changelog/partner-payouts-wise/withdraw-dark.png",
            "raw": "https://affitor.com/docs/changelog/partner-payouts-wise/withdraw-raw.png",
            "alt": "The Withdraw page with the available amount, the $20 minimum and a prompt to finish payout setup"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "Affitor pays partners through Wise or a bank transfer. PayPal is no longer offered.",
          "Before a withdrawal, a partner finishes \"Get ready to be paid\" at https://affitor.com/account/payouts (Your account › Payouts) with a legal name, a payout method and a tax form.",
          "The tax form is a W-8BEN (a person) or W-8BEN-E (a business) signed in the app, or a W-9 declaration for US persons, which Affitor's accountant then emails to sign. Affitor never asks for an SSN or EIN.",
          "The minimum withdrawal is $20. Brands never see a partner's tax form."
        ],
        "ui": [
          "Get ready to be paid",
          "Add legal name",
          "Add payout method",
          "Fill in",
          "Sign W-8BEN",
          "Sign W-8BEN-E",
          "Declare W-9",
          "Ready",
          "Finish payout setup first",
          "Go to Payouts"
        ],
        "avoid": [
          "How fast a payout arrives, what it costs, or which countries are supported (none of these is set by this change)",
          "PayPal as a payout method",
          "A reminder before a tax form expires (no reminder is sent)",
          "Brands seeing or collecting the tax form"
        ],
        "cta": {
          "label": "Set up payouts",
          "url": "https://affitor.com/account/payouts"
        }
      }
    },
    {
      "slug": "verified-programs",
      "url": "https://affitor.com/changelog/verified-programs",
      "date": "2026-10-17",
      "type": "feature",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "Find verified programs on the marketplace",
      "description": "A blue check marks programs Affitor has verified, and the Verified only filter shows just those on the marketplace.",
      "points": [
        "Automatic: Affitor checks every listed program; nobody applies.",
        "Rechecked: a program keeps its check while its tracking, payments and invoices stay in order.",
        "Not a review: the check is about how the program runs on Affitor, not about the product."
      ],
      "learn_more": "https://affitor.com/marketplace?verified=true",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/verified-programs/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/verified-programs/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/verified-programs/filter-light.png",
            "dark": "https://affitor.com/docs/changelog/verified-programs/filter-dark.png",
            "raw": "https://affitor.com/docs/changelog/verified-programs/filter-raw.png",
            "alt": "The marketplace filtered to verified programs, with the Verified chip"
          },
          {
            "light": "https://affitor.com/docs/changelog/verified-programs/check-light.png",
            "dark": "https://affitor.com/docs/changelog/verified-programs/check-dark.png",
            "raw": "https://affitor.com/docs/changelog/verified-programs/check-raw.png",
            "alt": "A program card with the blue check and its explanation"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "On the Affitor marketplace (https://affitor.com/marketplace), a blue check after a program's name means Affitor checked its tracking, payments and invoices.",
          "The Filter menu has Verified only; the link is https://affitor.com/marketplace?verified=true.",
          "Verification is automatic and rechecked; a program cannot apply for it. It is not a review of the product."
        ],
        "ui": [
          "Verified",
          "Verified only",
          "Filter",
          "Verified by Affitor",
          "Clear",
          "Affitor checked their tracking, payments and invoices."
        ],
        "avoid": [
          "Naming the payment provider behind the check",
          "Calling it a product review or a guarantee",
          "A count of verified programs (it changes as programs are rechecked)",
          "Brands applying for the badge"
        ],
        "cta": {
          "label": "Browse verified programs",
          "url": "https://affitor.com/marketplace?verified=true"
        }
      }
    },
    {
      "slug": "your-account",
      "url": "https://affitor.com/changelog/your-account",
      "date": "2026-10-17",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Your account, one page for both sides",
      "description": "Your profile, sign-in and payout settings now live on one Your account page, opened from the account menu at the bottom of the rail.",
      "points": [
        "One menu: click your name at the bottom of the rail.",
        "One page: the gear in that menu opens Your account, whichever side you are on.",
        "Old links still work: earlier profile links open Your account."
      ],
      "learn_more": "https://affitor.com/account",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/your-account/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/your-account/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/your-account/menu-light.png",
            "dark": "https://affitor.com/docs/changelog/your-account/menu-dark.png",
            "raw": "https://affitor.com/docs/changelog/your-account/menu-raw.png",
            "alt": "The account menu open from the profile row, with a gear for Your account, Switch to partner, Refer a brand, Home page, Docs and Log out"
          },
          {
            "light": "https://affitor.com/docs/changelog/your-account/profile-light.png",
            "dark": "https://affitor.com/docs/changelog/your-account/profile-dark.png",
            "raw": "https://affitor.com/docs/changelog/your-account/profile-raw.png",
            "alt": "Your account on the Profile tab, with the avatar and the name, email, username and country fields"
          }
        ],
        "videos": []
      },
      "context": {
        "facts": [
          "Your account is one page for brands and partners at https://affitor.com/account, with Profile, Login and security, and Payouts.",
          "Clicking the profile row at the bottom of the left rail opens the account menu. The gear in that menu opens Your account.",
          "The account menu also switches between the brand and partner sides, and has Home page, Docs and Log out.",
          "Old profile links (for example /partner/profile) now open Your account."
        ],
        "ui": [
          "Your account",
          "Profile",
          "Login and security",
          "Payouts",
          "Back",
          "Switch to partner",
          "Switch to brand",
          "Home page",
          "Docs",
          "Log out",
          "Adjust your avatar"
        ],
        "avoid": [
          "The ⋯ menu as the way to Your account (the whole profile row opens the menu; Your account is the gear)",
          "Notification settings on Your account (there are none)",
          "Separate profile pages for the brand and partner sides"
        ],
        "cta": {
          "label": "Open Your account",
          "url": "https://affitor.com/account"
        }
      }
    },
    {
      "slug": "hosted-mcp-server",
      "url": "https://affitor.com/changelog/hosted-mcp-server",
      "date": "2026-10-16",
      "type": "feature",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "mcp"
      ],
      "title": "Connect Claude, ChatGPT and Cursor to Affitor",
      "description": "The hosted Affitor MCP server at mcp.affitor.com lets AI apps read your program or partner data after you sign in. No API key, read-only.",
      "points": [
        "Brands: the program and its tracker snippet, partners, applications, commissions, a commission summary and billing.",
        "Partners: your programs, links, earnings, commissions and payouts. Bank and PayPal details are never included."
      ],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/hosted-mcp-server/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/hosted-mcp-server/banner-dark.png"
        },
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "go-live-needs-payments",
      "url": "https://affitor.com/changelog/go-live-needs-payments",
      "date": "2026-10-15",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Going live now needs a payment source",
      "description": "A program can go live once it has a business, a commission and a way to count sales. A logo is no longer required.",
      "points": [
        "Business: a name and a website.",
        "Commission: what partners earn on a sale.",
        "Payments: Stripe connected, or one sale sent from your server. A test sale counts."
      ],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/go-live-needs-payments/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/go-live-needs-payments/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/go-live-needs-payments/go-live-light.png",
            "dark": "https://affitor.com/docs/changelog/go-live-needs-payments/go-live-dark.png",
            "alt": "The Go live step: Business and Commission done, Click tracking receiving clicks, Payments not connected with a Fix link, and the Go live button turned off"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "guided-program-setup",
      "url": "https://affitor.com/changelog/guided-program-setup",
      "date": "2026-10-15",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Set up a program in five steps",
      "description": "A new program now walks you through Business, Commission, Tracking, Payments and Go live, with a live preview of your program card.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/guided-program-setup/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/guided-program-setup/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/guided-program-setup/setup-light.png",
            "dark": "https://affitor.com/docs/changelog/guided-program-setup/setup-dark.png",
            "alt": "Program setup: the five steps on the left, the Business form in the middle and a preview card labeled What partners see"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "marketplace-partners-joined",
      "url": "https://affitor.com/changelog/marketplace-partners-joined",
      "date": "2026-10-15",
      "type": "feature",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "Marketplace cards show who joined, with new sort and filters",
      "description": "Each program card shows how many partners joined, with the initials of its top partners, and the marketplace has a Sort menu and a Filter menu.",
      "points": [
        "Sort: Newest, Highest commission, Most partners or Longest cookie.",
        "Filter: pick one or more commission types and categories, and a cookie window. Each choice shows as a chip you can remove, with Clear to start over.",
        "On a phone, Filter opens a sheet whose button shows how many programs match."
      ],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/marketplace-partners-joined/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/marketplace-partners-joined/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/marketplace-partners-joined/marketplace-light.png",
            "dark": "https://affitor.com/docs/changelog/marketplace-partners-joined/marketplace-dark.png",
            "alt": "Marketplace cards with partner initials and counts such as 53 partners joined, New program on cards with no partners, and the Search, Newest, Filter and Refer a brand controls above them"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "referral-invite-page",
      "url": "https://affitor.com/changelog/referral-invite-page",
      "date": "2026-10-15",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Referral links open an invite page",
      "description": "When someone opens your Refer a brand link, they see who invited them and how Affitor pricing works before they sign up.",
      "points": [],
      "learn_more": "https://affitor.com/docs/partners/referral-rewards",
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/referral-invite-page/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/referral-invite-page/banner-dark.png"
        },
        "images": [],
        "videos": []
      },
      "context": {
        "facts": [
          "The link is affitor.com/r/<username>; the username is chosen in Account › Profile.",
          "Opening it shows the Affitor home page with an invite hero at the top. The hero has a chip \"<Name> invited you\", or \"You were invited to Affitor\" when no name is known.",
          "Under the title \"Grow revenue through partners at any scale\", the hero says \"Free until partners drive $10,000, then 3.5%.\" That is this entry's pricing line.",
          "In the hero, the visitor types a work email and clicks \"Get started\" to sign up.",
          "Under the form, the hero keeps the home page's three small stats (\"<1hr\" Setup time, \"Real-time\" Tracking, \"Performance-based\" You earn first, then pay). They are not part of this entry; do not repeat them.",
          "If the link is no longer active, the hero says so, and the visitor can still create an account.",
          "If Affitor cannot look the link up at that moment, the ordinary home hero shows (chip \"AI-Native Affiliate Network\", button \"Launch your program free\"), with no invite chip.",
          "The nav bar above the hero and the sections below it (how it works, pricing, FAQ) are the normal home page. Nothing there is specific to the invite.",
          "On the sign-in page, someone who opened their Refer a brand link on this browser sees it again with \"Copy\"."
        ],
        "ui": [
          "<Name> invited you",
          "You were invited to Affitor",
          "This invite link isn’t active. You can still create an account.",
          "Grow revenue through partners at any scale",
          "Work email",
          "Get started",
          "Refer a brand",
          "Copy"
        ],
        "avoid": [
          "affitor.com/invite/<name> (the link is affitor.com/r/<username>)",
          "As the invite hero's content (valid and inactive links): the subtitle 'Launch your affiliate program in under an hour.', the buttons 'Launch your program free' or 'Launch demo', or 'Create free account' / 'Already have an account? Log in'. The invite hero's action is 'Work email' + 'Get started'.",
          "Home-page lines presented as the invite's message: 'Pay only for results' (pricing section below the hero), 'under an hour' or '<1hr' (ordinary hero subtitle, the stats row, how it works)"
        ],
        "cta": {
          "label": "How referral rewards work",
          "url": "https://affitor.com/docs/partners/referral-rewards"
        }
      }
    },
    {
      "slug": "marketplace-redesign",
      "url": "https://affitor.com/changelog/marketplace-redesign",
      "date": "2026-10-14",
      "type": "feature",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "A new marketplace to find your next program",
      "description": "The marketplace is now a grid of program cards you can search, filter by commission type and sort, and every program page shows its terms at a glance.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/marketplace-redesign/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/marketplace-redesign/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/marketplace-redesign/marketplace-light.png",
            "dark": "https://affitor.com/docs/changelog/marketplace-redesign/marketplace-dark.png",
            "alt": "The marketplace: a featured program on top, then search, type filters, a category menu, sort, and a grid of program cards"
          },
          {
            "light": "https://affitor.com/docs/changelog/marketplace-redesign/program-light.png",
            "dark": "https://affitor.com/docs/changelog/marketplace-redesign/program-dark.png",
            "alt": "A program page with commission, cookie, paid after and minimum payout tiles"
          }
        ],
        "videos": [
          {
            "light": "https://affitor.com/docs/changelog/marketplace-redesign/filter-light.mp4",
            "dark": "https://affitor.com/docs/changelog/marketplace-redesign/filter-dark.mp4",
            "poster": {
              "light": "https://affitor.com/docs/changelog/marketplace-redesign/filter-light.poster.png",
              "dark": "https://affitor.com/docs/changelog/marketplace-redesign/filter-dark.poster.png"
            },
            "alt": "Switching between All, Recurring and One-time programs"
          }
        ]
      },
      "context": null
    },
    {
      "slug": "stripe-payment-links-attribution",
      "url": "https://affitor.com/changelog/stripe-payment-links-attribution",
      "date": "2026-10-14",
      "type": "feature",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "tracking"
      ],
      "title": "Partner sales from Stripe Payment Links, Buy Buttons and Pricing Tables",
      "description": "If you sell with Stripe's no-code checkouts, partner sales are now credited automatically. Nothing to change in your checkout.",
      "points": [
        "Stripe connected to Affitor.",
        "The hosted tracker on the page that holds the checkout.",
        "First click wins. If the buyer is already a customer of another partner, they stay with that partner.",
        "A `client_reference_id` you set yourself is kept, unless it starts with `aff_`.",
        "Visitors who have not given tracking consent, when you use consent mode, are not passed to Stripe.",
        "If you record clicks yourself and set `data-affitor-clicks=\"off\"` on the tracker, it does not add the value."
      ],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/stripe-payment-links-attribution/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/stripe-payment-links-attribution/banner-dark.png"
        },
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "billing-invoices-redesign",
      "url": "https://affitor.com/changelog/billing-invoices-redesign",
      "date": "2026-10-13",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Billing that shows what you owe and what is next",
      "description": "The Billing page now shows what is due, what this week's invoice will be and where you stand against the free tier, and each invoice breaks down by partner.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/billing-invoices-redesign/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/billing-invoices-redesign/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/billing-invoices-redesign/billing-light.png",
            "dark": "https://affitor.com/docs/changelog/billing-invoices-redesign/billing-dark.png",
            "alt": "Billing: Due, This week and Platform fee cards above the invoices table, with status filters and a row menu on each invoice"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "mcp-write-tools-off",
      "url": "https://affitor.com/changelog/mcp-write-tools-off",
      "date": "2026-10-12",
      "type": "breaking",
      "audience": [
        "developers"
      ],
      "surfaces": [
        "mcp"
      ],
      "title": "MCP server records sales only when you allow it",
      "description": "From @affitor/mcp 0.2.1, the tools that record sales and refunds are off by default. Agents that record sales need AFFITOR_MCP_WRITE=1.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/mcp-write-tools-off/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/mcp-write-tools-off/banner-dark.png"
        },
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-10-11",
      "url": "https://affitor.com/changelog/improvements-2026-10-11",
      "date": "2026-10-11",
      "type": "digest",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, Oct 5–11",
      "description": "One-click commission approval, clearer refund notifications, and notification links that open the right page.",
      "points": [
        "Approving a commission takes one click.",
        "A refund notification now says what happened to your balance. If the commission was still pending, it says the commission was canceled and your balance did not change.",
        "Notification and reminder links open the right page instead of a \"page not found\"."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "withdraw-paid-commissions",
      "url": "https://affitor.com/changelog/withdraw-paid-commissions",
      "date": "2026-10-08",
      "type": "feature",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Partners withdraw commissions once the brand has paid",
      "description": "Commissions approved from Oct 9 become withdrawable when the brand pays its invoice. Partners see what is waiting, and brands no longer mark commissions as paid.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/withdraw-paid-commissions/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/withdraw-paid-commissions/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/withdraw-paid-commissions/payout-light.png",
            "dark": "https://affitor.com/docs/changelog/withdraw-paid-commissions/payout-dark.png",
            "alt": "The partner payout page: Ready to withdraw, with Awaiting brand payment underneath"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-10-04",
      "url": "https://affitor.com/changelog/improvements-2026-10-04",
      "date": "2026-10-04",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking",
        "cli"
      ],
      "title": "Improvements and fixes, Sep 28–Oct 4",
      "description": "A changelog for you and your agents, clearer answers from the tracking API, and fixes for Google sign-in and CLI-created programs.",
      "points": [
        "A changelog page, with a Markdown version for AI agents.",
        "Tracking a click on a disabled referral link answers `410 link_disabled`, so you can tell it apart from an error.",
        "Marketplace pages carry correct structured data for search engines.",
        "If you signed up with Google, you can set a first password through the emailed link.",
        "Partners auto-accepted into a program now get the approval notification.",
        "Programs created from the CLI pay the commission they were created with.",
        "We tightened sign-in, password reset and withdrawals."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "balance-owed-after-refund",
      "url": "https://affitor.com/changelog/balance-owed-after-refund",
      "date": "2026-10-02",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "See what you owe after a refund",
      "description": "When a customer refund reverses a commission you already withdrew, your payout page shows the balance owed, and it is recovered from your next commissions.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/balance-owed-after-refund/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/balance-owed-after-refund/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/balance-owed-after-refund/payout-light.png",
            "dark": "https://affitor.com/docs/changelog/balance-owed-after-refund/payout-dark.png",
            "alt": "The partner payout page with a Balance owed line under Ready to withdraw"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "browser-leads-server-side",
      "url": "https://affitor.com/changelog/browser-leads-server-side",
      "date": "2026-09-30",
      "type": "breaking",
      "audience": [
        "developers",
        "brands"
      ],
      "surfaces": [
        "tracking",
        "api"
      ],
      "title": "Send leads from your server to count them",
      "description": "A signup sent only from the browser is now recorded as provisional on older programs too. Send the lead from your server with your program API key so it counts.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/browser-leads-server-side/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/browser-leads-server-side/banner-dark.png"
        },
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "test-sales-never-invoiced",
      "url": "https://affitor.com/changelog/test-sales-never-invoiced",
      "date": "2026-09-30",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Test sales are never invoiced",
      "description": "Sales from your own tests are labeled and never billed. An invoice made only of test sales is voided automatically, and it no longer keeps your program paused.",
      "points": [
        "Test marks your own integration tests. They are never billed and never paid out.",
        "Team marks someone on your team. Their sales wait for you to approve them as real or reject them as a test order."
      ],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/test-sales-never-invoiced/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/test-sales-never-invoiced/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/test-sales-never-invoiced/test-labels-light.png",
            "dark": "https://affitor.com/docs/changelog/test-sales-never-invoiced/test-labels-dark.png",
            "alt": "Commissions table where two test sales carry a gray Test label next to approved sales"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-09-27",
      "url": "https://affitor.com/changelog/improvements-2026-09-27",
      "date": "2026-09-27",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "api"
      ],
      "title": "Improvements and fixes, Sep 21–27",
      "description": "Commission notifications that point to the exact commission, a featured carousel on the marketplace, and access fixes for workspace members.",
      "points": [
        "Commission notifications name the program and open the exact commission.",
        "The marketplace shows featured programs in a carousel.",
        "The old CLI endpoint for connecting Stripe now answers `410 Gone`. Connect Stripe from the dashboard instead.",
        "Workspace members can see the partner applications of the programs they work on.",
        "Pages opt out of browser auto-translate, so program terms stay exactly as the brand wrote them.",
        "Screenshots in the docs load again.",
        "Suspending an account now blocks every way to sign in, and API responses and error messages carry only what the caller needs."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "partner-links-on-approval",
      "url": "https://affitor.com/changelog/partner-links-on-approval",
      "date": "2026-09-24",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "Partners get their link the moment you approve them",
      "description": "Approving a partner now creates their referral link right away, every referral code has one owner, and links can use your own /r/ short link.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/partner-links-on-approval/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/partner-links-on-approval/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/partner-links-on-approval/rpath-light.png",
            "dark": "https://affitor.com/docs/changelog/partner-links-on-approval/rpath-dark.png",
            "alt": "The Short link /r/ card in Settings showing Installed, with the redirect rule and a Check /r/ button"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "api-key-rotation",
      "url": "https://affitor.com/changelog/api-key-rotation",
      "date": "2026-09-20",
      "type": "breaking",
      "audience": [
        "brands",
        "developers"
      ],
      "surfaces": [
        "api",
        "cli",
        "dashboard"
      ],
      "title": "Know when your API key must be replaced",
      "description": "If Affitor flags your program's API key for replacement, your dashboard, every API response and the CLI now tell you. After the deadline the old key is refused.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": {
          "light": "https://affitor.com/docs/changelog/api-key-rotation/banner-light.png",
          "dark": "https://affitor.com/docs/changelog/api-key-rotation/banner-dark.png"
        },
        "images": [
          {
            "light": "https://affitor.com/docs/changelog/api-key-rotation/notice-light.png",
            "dark": "https://affitor.com/docs/changelog/api-key-rotation/notice-dark.png",
            "alt": "Dashboard notice: Replace your API key, with a Replace key button"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-09-20",
      "url": "https://affitor.com/changelog/improvements-2026-09-20",
      "date": "2026-09-20",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking",
        "api"
      ],
      "title": "Improvements and fixes, Sep 14–20",
      "description": "Password reset pages, notifications that open the right place, faster pages, and fixes across commissions, chat and tracking.",
      "points": [
        "Forgot your password? The sign-in page now has forgot-password and reset-password pages, so you can get back into your account on your own.",
        "Clicking a notification opens the page it is about.",
        "Emails from Affitor now come from Affitor, with a plain-text version and a reply-to address.",
        "Program descriptions are drafted from the brand's website, with a fallback when the site cannot be read.",
        "Sign-in, marketplace and dashboard pages load faster and shift less while they load.",
        "Marketplace program pages include the commission in the page itself, and every live program is in the sitemap, so search engines and AI assistants can read your terms.",
        "`llms.txt` and the Markdown version of each public page are generated correctly for agents.",
        "The public marketplace API returns each program's `documentId` and default commission policy.",
        "The homepage links to the Marketplace from the top bar and the footer.",
        "Brands no longer see Approve and Decline on notifications for partners who already joined.",
        "One-time programs show an average sale value without \"/month\".",
        "Partners see only the commission terms that are active right now.",
        "A completed payout amount can no longer change after it is paid.",
        "Message drafts are kept, and a chat message that failed to send is recovered.",
        "Click tracking matches a partner's `?aff=` code to the right partner.",
        "No hold-extension notification for a commission worth $0.",
        "Featured programs stay featured.",
        "The brand profile explains why it could not load instead of redirecting you away.",
        "The homepage pricing states the $10,000 free tier.",
        "We tightened how chat attachments, account balances and public marketplace data are handled."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-09-13",
      "url": "https://affitor.com/changelog/improvements-2026-09-13",
      "date": "2026-09-13",
      "type": "digest",
      "audience": [
        "developers",
        "brands",
        "partners"
      ],
      "surfaces": [
        "api",
        "marketplace"
      ],
      "title": "Improvements and fixes, Sep 1–13",
      "description": "A cleaner docs feed for AI assistants, and tighter access to program and marketplace data.",
      "points": [
        "The docs feed for AI assistants is rebuilt: a compact `llms.txt` on every build, a full `llms-full.txt`, a sitemap that lists the Markdown pages, and page details at the top of every `.md` page.",
        "We tightened access to program details and public marketplace data."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-08",
      "url": "https://affitor.com/changelog/improvements-2026-08",
      "date": "2026-08-22",
      "type": "digest",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, August 2026",
      "description": "New brands can create their first program right after sign-up again.",
      "points": [
        "New brands can create their first program right after sign-up again. If creating a program fails, the error says why."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-07",
      "url": "https://affitor.com/changelog/improvements-2026-07",
      "date": "2026-07-06",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "api"
      ],
      "title": "Improvements and fixes, July 2026",
      "description": "Every docs page as Markdown for AI assistants, an About page, an end-to-end guide, and an Invite Partners button on every empty Partners page.",
      "points": [
        "Docs for AI assistants. Every docs page is available as Markdown at its URL plus `.md`.",
        "An About page with the Affitor story, and an \"Ask AI about Affitor\" row in the footer that opens your assistant with a ready question.",
        "A How to Use Affitor walkthrough and an Inviting Partners guide in the docs, and real product screenshots across the brand guides.",
        "The Partners page always offers Invite Partners when it is empty."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "blog-launch",
      "url": "https://affitor.com/changelog/blog-launch",
      "date": "2026-07-05",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [],
      "title": "Read honest affiliate-software comparisons on the new Affitor blog",
      "description": "Twelve posts comparing the tools you're actually evaluating, with every price dated \"as of\" and competitor strengths conceded up front, plus .md twins and llms.txt so your AI assistant reads the same facts you do.",
      "points": [
        "Honest comparisons. Every price is verified and labeled \"as of July 5, 2026,\" and every post concedes where a competitor is the better pick before positioning Affitor.",
        "Built for AI readers. Each post ships a markdown twin at its URL + `.md`, and the site publishes `llms.txt`, so the assistant researching tools on your behalf gets the same facts."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [
          {
            "src": "https://affitor.com/blog/covers/best-affiliate-software-saas.png",
            "alt": "Cover of the launch post comparing seven affiliate software tools for SaaS"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "invite-partners",
      "url": "https://affitor.com/changelog/invite-partners",
      "date": "2026-07-04",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Invite partners with the email already written",
      "description": "Recruit affiliates by email, CSV, or from your other programs, and send an invitation generated from your program's real terms instead of writing one from scratch.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [
          {
            "src": "https://affitor.com/docs/changelog/invite-partners/invite-compose.png",
            "alt": "Invite partners with a pre-written, terms-based email"
          }
        ],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "go-live-button",
      "url": "https://affitor.com/changelog/go-live-button",
      "date": "2026-06-27",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Go live when you are ready",
      "description": "A single Go Live button publishes your program as soon as your business profile and commission are set, and the Quick start checklist shows what is really set up.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-06",
      "url": "https://affitor.com/changelog/improvements-2026-06",
      "date": "2026-06-27",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking",
        "api",
        "sdk"
      ],
      "title": "Improvements and fixes, June 2026",
      "description": "Shorter app addresses, a calmer design, apply first and sign up after, per-program billing and notifications, refunds through the API, and the end of list.affitor.com.",
      "points": [
        "Record refunds through the tracking API, so the matching commission is reversed.",
        "Record sales from your server without connecting Stripe.",
        "Each program connects its own Stripe account.",
        "Notifications and billing are scoped per program for brands with several programs.",
        "A quick start popover in the top bar, and Billing as its own tab.",
        "A program handle field in program settings and in first-program setup.",
        "Withdraw an application from your Programs list.",
        "App addresses are shorter (`/brand/...`, `/partner/...`), and the dashboard says \"brand\" instead of \"advertiser\".",
        "Settings, forms, charts, status pills and alerts share one calmer design.",
        "Apply to a program first and sign up after: your application continues once you are in.",
        "The attribution window is one setting, and it is applied when sales settle. Chargebacks reverse commissions.",
        "Approving or rejecting a commission updates the row at once.",
        "The partner table sorts by most clicks first and remembers your sort.",
        "The SDK is published as `@affitor/sdk`, and the docs use it everywhere.",
        "list.affitor.com is retired and now opens the marketplace.",
        "Programs without a logo get a default gradient logo, and SVG logos upload.",
        "PayPal is no longer a withdrawal method.",
        "Logging out clears your session completely.",
        "Program pages no longer show default commission numbers that the brand never set.",
        "The tracking setup wizard shows the right snippet and refund guidance.",
        "Test events stay out of brand metrics.",
        "Partner chat no longer shows a message twice.",
        "We tightened access between accounts so one brand cannot read another's data."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "refer-program",
      "url": "https://affitor.com/changelog/refer-program",
      "date": "2026-06-12",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "marketplace",
        "dashboard"
      ],
      "title": "Earn by referring brands to Affitor",
      "description": "Partners promote Affitor itself through the Refer Program and earn rewards and a share of the platform fee from the brands they bring.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "docs-api-reference",
      "url": "https://affitor.com/changelog/docs-api-reference",
      "date": "2026-06-10",
      "type": "feature",
      "audience": [
        "developers",
        "partners"
      ],
      "surfaces": [
        "api",
        "sdk"
      ],
      "title": "A full API reference and integration guides",
      "description": "The docs gain an API Reference, an SDK reference, an agent integration guide, integration guides and a machine-readable OpenAPI spec.",
      "points": [
        "an SDK reference and six integration guides (Next.js on its own or with Clerk, NextAuth or Supabase, Express, and Stripe);",
        "an integration guide for AI agents, and `llms.txt` for assistants that read the docs;",
        "a For Partners section;",
        "a machine-readable OpenAPI spec."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "pricing-2026",
      "url": "https://affitor.com/changelog/pricing-2026",
      "date": "2026-06-08",
      "type": "pricing",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Free up to $10,000 in affiliate revenue, then 3.5%",
      "description": "Each program runs free until it has driven $10,000 in affiliate revenue; after that Affitor charges a 3.5% platform fee on affiliate sales.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "public-marketplace",
      "url": "https://affitor.com/changelog/public-marketplace",
      "date": "2026-06-07",
      "type": "feature",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "The marketplace is open to everyone",
      "description": "Browse every live program without an account, open its page, and apply, or go straight to your dashboard if you already joined.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "affitor-init-wizard",
      "url": "https://affitor.com/changelog/affitor-init-wizard",
      "date": "2026-05-25",
      "type": "feature",
      "audience": [
        "developers"
      ],
      "surfaces": [
        "cli",
        "sdk"
      ],
      "title": "Sign in from the CLI, and init wires tracking into Next.js",
      "description": "The CLI signs you in through the browser, and init detects Next.js, installs the SDK and adds the tracking code, asking before each install and showing a diff before it edits your layout.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-05",
      "url": "https://affitor.com/changelog/improvements-2026-05",
      "date": "2026-05-23",
      "type": "digest",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, May 2026",
      "description": "Redesigned account and invoice emails, a faster brand dashboard, and partner earnings that say what they are.",
      "points": [
        "Verification, team invite, new invoice and past-due emails share one redesigned layout. We rebuilt our emails again in September 2026.",
        "The brand dashboard opens faster: its performance chart now loads after the page appears.",
        "Customer details show one row per real sale.",
        "The Total Commissions card is now Pending Earnings, because that is what it counts.",
        "A program overview shows the offer from its commission policy.",
        "We tightened access to admin payout and settings routes."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "faster-docs-search",
      "url": "https://affitor.com/changelog/faster-docs-search",
      "date": "2026-04-25",
      "type": "feature",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [],
      "title": "Faster, less noisy docs search",
      "description": "Search now matches page titles only, so you no longer wade through paragraph snippets to find what you need.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-04",
      "url": "https://affitor.com/changelog/improvements-2026-04",
      "date": "2026-04-25",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "cli"
      ],
      "title": "Improvements and fixes, April 2026",
      "description": "Replies in messages, new program defaults, CLI pages in the docs, and a profile that saves without signing you out.",
      "points": [
        "Partners get a referral link the first time they open a program.",
        "Reply to a specific message in a conversation.",
        "The docs have CLI pages.",
        "The docs have a changelog and a billing overdue policy.",
        "The program switcher moved into the brand header.",
        "A program page shows Joined or Applied, so you cannot apply twice.",
        "Public program pages show the program's commission to visitors who are not signed in.",
        "New programs start from a recurring commission for 18 months and a 90-day cookie.",
        "Confirmations for rejecting, deleting and removing use a calmer outlined button, and deleting a partner group no longer shows an alarm box.",
        "Saving your profile no longer signs you out.",
        "Google sign-in lets you pick the account you want."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "programs-go-live-automatically",
      "url": "https://affitor.com/changelog/programs-go-live-automatically",
      "date": "2026-04-25",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking"
      ],
      "title": "Programs go live once setup is complete",
      "description": "A program went live by itself once its tracking worked end to end and appeared in the marketplace without waiting for a review. Since June 2026 you publish it with a Go Live button.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "partner-marketplace-2026",
      "url": "https://affitor.com/changelog/partner-marketplace-2026",
      "date": "2026-04-24",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "A marketplace of programs for partners",
      "description": "Partners browse programs inside Affitor, search them with typo-tolerant search, and sort by commission.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "content-lab-launch",
      "url": "https://affitor.com/changelog/content-lab-launch",
      "date": "2026-04-20",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [],
      "title": "Content Lab writes affiliate posts in one click",
      "description": "Pick a program, get a publish-ready affiliate post in one click, free for 30 posts a day.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "affitor-cli",
      "url": "https://affitor.com/changelog/affitor-cli",
      "date": "2026-04-10",
      "type": "feature",
      "audience": [
        "developers",
        "brands"
      ],
      "surfaces": [
        "cli"
      ],
      "title": "Create an affiliate program from your terminal",
      "description": "Run npx affitor init to create an affiliate program and get its tracking script and API key, then check it and send test events from your terminal.",
      "points": [
        "`status` shows your program's health and recent events, and `test` sends a test click, lead or sale."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "billing-and-invoices-2026",
      "url": "https://affitor.com/changelog/billing-and-invoices-2026",
      "date": "2026-04-08",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Billing and invoices in your dashboard",
      "description": "Brands get a Billing area with every invoice, its status, and an invoice detail page.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "partner-profile-settings",
      "url": "https://affitor.com/changelog/partner-profile-settings",
      "date": "2026-04-03",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Partner profile and security settings",
      "description": "Partners can now update their profile, avatar, payout details and password, and request a withdrawal, without contacting support.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-03",
      "url": "https://affitor.com/changelog/improvements-2026-03",
      "date": "2026-03-31",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "tracking",
        "api"
      ],
      "title": "Improvements and fixes, March 2026",
      "description": "Partner withdrawals and transaction history, team members, a hold period and cookie window per program, a redesigned brand dashboard, and a new logo.",
      "points": [
        "Payouts. Partners see a transaction history with a status timeline and can request a withdrawal of their approved balance. Since October 2026, a commission can be withdrawn once the brand has paid the invoice that covers it.",
        "Team members. Invite teammates to your workspace and manage them.",
        "Set a hold period and a cookie window per program. Partners see both on the program.",
        "A full customer refund now marks the commission reversed, and a partial refund marks it refunded. Commission filters and counts include reversed.",
        "Change your password from your profile, and show or hide your password while signing in.",
        "The tracker shares attribution across your subdomains.",
        "Move partners between groups in bulk, and share your program link from the Partners page.",
        "The brand dashboard is redesigned: trend cards, a new chart, an Action Center and a Getting Started checklist.",
        "A commission shows its fee and revenue breakdown.",
        "The docs have a 3-step integration guide and a guide to testing your integration.",
        "A new Affitor logo across the site and the docs.",
        "Customer tables can be sorted and filtered by status.",
        "Search tolerates typos on the partner customer list and marketplace, brand messages, and partner groups.",
        "Partner program pages work on phones, and link destinations are checked before saving.",
        "Server-side lead examples on the setup page use the `/api/v1/track/lead` path.",
        "Sign-in sessions are kept in secure cookies."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "affiliate-skills-v2",
      "url": "https://affitor.com/changelog/affiliate-skills-v2",
      "date": "2026-03-28",
      "type": "feature",
      "audience": [
        "developers"
      ],
      "surfaces": [
        "cli"
      ],
      "title": "47 agent skills for affiliate workflows",
      "description": "Run common affiliate workflows, from researching programs and drafting content to analyzing traffic, directly from your AI assistant.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "tracking-v2",
      "url": "https://affitor.com/changelog/tracking-v2",
      "date": "2026-03-17",
      "type": "feature",
      "audience": [
        "developers",
        "brands"
      ],
      "surfaces": [
        "tracking",
        "sdk",
        "api"
      ],
      "title": "Rebuilt tracking and SDK 2.0",
      "description": "Partner links use ?aff=, clicks, leads and sales are recorded as separate events tied by a click ID, and the SDK adds signup().",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "list-affitor-community",
      "url": "https://affitor.com/changelog/list-affitor-community",
      "date": "2026-03-15",
      "type": "feature",
      "audience": [
        "partners",
        "developers"
      ],
      "surfaces": [
        "marketplace",
        "api",
        "mcp"
      ],
      "title": "list.affitor.com, a community list of programs and agent skills",
      "description": "Browse and star affiliate programs and agent skills on a community site, and let an AI assistant search them through an API key or a Claude connector.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-02",
      "url": "https://affitor.com/changelog/improvements-2026-02",
      "date": "2026-02-28",
      "type": "digest",
      "audience": [
        "brands",
        "partners",
        "developers"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking",
        "sdk"
      ],
      "title": "Improvements and fixes, February 2026",
      "description": "A redesigned homepage, the tracker on npm, sales credited even without a cookie, partial refunds, private customer emails, and timestamps in the transcript tool.",
      "points": [
        "The tracker is on npm as `@affitor/tracker` (since replaced by `@affitor/sdk`), and calls made before it loads are queued instead of lost.",
        "When the browser cookie is missing, a sale can still be credited to the right partner by matching the customer's user ID or email.",
        "Terms of Service and Privacy Policy pages.",
        "A redesigned homepage, with how it works, the features, a dashboard preview, pricing and an FAQ.",
        "The free YouTube transcript tool was rebuilt, and transcripts now show timestamps.",
        "Partial refunds are tracked and reduce the commission in proportion to the amount refunded.",
        "Customer emails are masked in the brand's customer list.",
        "On each program page, the Balance card shows your actual balance, and commission totals include approved commissions.",
        "The Setting tab shows whether each tracking step has received events.",
        "Program pages in the directory can be read by search engines, with sharing previews. These pages now open the marketplace.",
        "A simpler 404 page with Go back and Go home buttons.",
        "Pages load faster.",
        "The docs have a sitemap and `llms.txt`.",
        "Logging out returns you to the homepage.",
        "The Categories page and the Show more button on the program list work again (both have since moved to the marketplace)."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "partner-groups",
      "url": "https://affitor.com/changelog/partner-groups",
      "date": "2026-02-27",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Partner groups with their own commissions",
      "description": "Organize partners into groups and give each group its own commission rate and duration.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "commission-review",
      "url": "https://affitor.com/changelog/commission-review",
      "date": "2026-02-24",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Approve, reject and mark commissions as paid",
      "description": "Review partner commissions in the dashboard, approve or reject them with a reason, act on many at once, and mark approved ones as paid.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "server-side-leads-2026-02",
      "url": "https://affitor.com/changelog/server-side-leads-2026-02",
      "date": "2026-02-22",
      "type": "feature",
      "audience": [
        "developers"
      ],
      "surfaces": [
        "api",
        "tracking"
      ],
      "title": "Send leads from your server with an API token",
      "description": "Create an API token in the dashboard and record leads from your backend, with a test mode to try the call first.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2026-01",
      "url": "https://affitor.com/changelog/improvements-2026-01",
      "date": "2026-01-28",
      "type": "digest",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, January 2026",
      "description": "Each program page shows only its own commissions and customers, the Setting tab has your tracking snippet ready to copy, and the chart has a Share button for your program link.",
      "points": [
        "On each program's page, partners in several programs now see only that program's commissions and customers.",
        "The Setting tab walks you through setup: copy your tracking snippet, which already includes your Program ID, then share your program link.",
        "The performance chart has a Share button that copies your program link.",
        "In the Partners list, each partner's revenue is now the total of all their conversions.",
        "A brand owner can no longer apply to their own program."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "docs-site-launch",
      "url": "https://affitor.com/changelog/docs-site-launch",
      "date": "2026-01-25",
      "type": "feature",
      "audience": [
        "developers",
        "brands"
      ],
      "surfaces": [
        "tracking",
        "api"
      ],
      "title": "A public documentation site",
      "description": "A public docs site explains how tracking works, how to onboard as a brand, how to set up Stripe and how cookies are handled.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "referral-link-qr",
      "url": "https://affitor.com/changelog/referral-link-qr",
      "date": "2026-01-23",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Edit referral links and get a QR code for each",
      "description": "Change a referral link's short name and destination page after you create it, then download or copy its QR code.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-12",
      "url": "https://affitor.com/changelog/improvements-2025-12",
      "date": "2025-12-30",
      "type": "digest",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "Improvements and fixes, December 2025",
      "description": "A redesigned program page, search and sort on partner lists, and test events kept out of your numbers.",
      "points": [
        "One account can switch between brand and partner roles.",
        "The public program page is redesigned. In program settings, you can save a draft of your changes in this browser and preview your logo before saving.",
        "Partner and application lists have search, sorting and page numbers.",
        "Test events no longer count in your performance numbers.",
        "Disconnecting Stripe takes effect right away.",
        "Until your tracking code is installed, the invite button takes you to install it first.",
        "Clearer labels for paid sign-ups and for commissions waiting for payout."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "getting-started-checklist",
      "url": "https://affitor.com/changelog/getting-started-checklist",
      "date": "2025-12-11",
      "type": "feature",
      "audience": [
        "brands"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "A Getting Started checklist for new brands",
      "description": "New brands see what is left to set up, and clear guidance when the tracking code is not installed yet.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "refer-a-brand-2025",
      "url": "https://affitor.com/changelog/refer-a-brand-2025",
      "date": "2025-12-11",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Refer brands and earn",
      "description": "Partners get a personal referral link to invite brands to Affitor, and earn $50 when a referred brand sets up its program and $150 when that brand reaches $1,000 in sales.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-11",
      "url": "https://affitor.com/changelog/improvements-2025-11",
      "date": "2025-11-20",
      "type": "digest",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, November 2025",
      "description": "A program switcher for brands, auto-accept per program, early access sign-up, and no double commission on a first subscription invoice.",
      "points": [
        "Brands with several programs switch between them from a program selector. A brand with no program yet is taken to create one.",
        "Auto-accept for partner applications is set per program.",
        "An early access sign-up on a refreshed landing page with an FAQ. That landing page has since been replaced.",
        "The first invoice of a subscription no longer pays the commission twice."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "brand-partner-messages",
      "url": "https://affitor.com/changelog/brand-partner-messages",
      "date": "2025-11-19",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Message your brands and partners in Affitor",
      "description": "Brands and partners talk in Affitor, with conversations, contacts and messages that arrive live.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-10",
      "url": "https://affitor.com/changelog/improvements-2025-10",
      "date": "2025-10-29",
      "type": "digest",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking"
      ],
      "title": "Improvements and fixes, October 2025",
      "description": "A public application form for brands, a customer status filter for brands, and commissions on every subscription renewal.",
      "points": [
        "A public application form for brands that want to run an affiliate program on Affitor.",
        "Brands can filter the customers their partners referred by status: lead, conversion or click.",
        "Commissions are now created on each subscription renewal, not only on the first payment.",
        "The revenue chart no longer breaks when there is no revenue yet."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "stripe-connect-commissions",
      "url": "https://affitor.com/changelog/stripe-connect-commissions",
      "date": "2025-10-29",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "Connect Stripe and see every commission",
      "description": "Brands connect their Stripe account so checkout sales are matched to partners, and a new Commissions screen lists each program's commissions with filters.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "affiliate-programs-for-brands",
      "url": "https://affitor.com/changelog/affiliate-programs-for-brands",
      "date": "2025-09-29",
      "type": "feature",
      "audience": [
        "brands",
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "marketplace",
        "tracking"
      ],
      "title": "Run your own affiliate program on Affitor",
      "description": "Brands create affiliate programs, partners apply and get tracked links, and clicks, sign-ups and checkout sales are attributed to the partner who sent them.",
      "points": [
        "For brands: sign up as a brand with your company email, create programs with your logo, set commission tiers with a percentage rate that can step up with the number of referrals, and auto-accept partner applications. Your dashboard sums up your programs, partners and sales.",
        "For partners: apply to a program, get a tracked referral link with a name you choose, and see the customers you referred.",
        "Tracking: add the tracking script to your site to record clicks and sign-ups. Commissions were created when buyers paid through an Affitor checkout link, which we later retired."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-08",
      "url": "https://affitor.com/changelog/improvements-2025-08",
      "date": "2025-08-29",
      "type": "digest",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "marketplace",
        "dashboard"
      ],
      "title": "Improvements and fixes, August 2025",
      "description": "Browse affiliate programs by category with counts, sorting and page numbers, faster category pages, and no more NaN referral balances.",
      "points": [
        "Browse by category. Category pages list their programs with counts, sorting and page numbers.",
        "Category pages load faster.",
        "Referral balances and earnings no longer show `NaN`."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-07",
      "url": "https://affitor.com/changelog/improvements-2025-07",
      "date": "2025-07-31",
      "type": "digest",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "Improvements and fixes, July 2025",
      "description": "Short referral links, community sign-in with your Affitor account, and redesigned program pages.",
      "points": [
        "Referral links get a short link you can share.",
        "Sign in to the Affitor community forum with your Affitor account. The forum has since closed.",
        "Free accounts see their daily allowance on the profile page.",
        "In the script assistant, save your own prompts and reuse them.",
        "Program pages are redesigned, and the program list gets a new filter bar with country and launch year filters.",
        "The plans page opens on yearly billing.",
        "Sorting by recurring commission works correctly."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "referral-program-2025",
      "url": "https://affitor.com/changelog/referral-program-2025",
      "date": "2025-07-26",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "Join the Affitor referral program",
      "description": "Get referral links for Affitor and follow your visitors, leads, conversions and commissions in one dashboard.",
      "points": [
        "Visitors, leads and conversions at a glance, with a performance chart.",
        "An activity feed of what happened with your links.",
        "A list of the commissions you earned."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "pages-with-referral-links",
      "url": "https://affitor.com/changelog/pages-with-referral-links",
      "date": "2025-07-23",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard",
        "tracking"
      ],
      "title": "Publish pages with your referral links built in",
      "description": "Write a page in a rich-text editor, add images and links, and give each page its own referral link.",
      "points": [
        "A list of your pages, to edit or delete any of them."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-06",
      "url": "https://affitor.com/changelog/improvements-2025-06",
      "date": "2025-06-20",
      "type": "digest",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, June 2025",
      "description": "A redesigned script assistant chat box, and Show more works again on video lists.",
      "points": [
        "The script assistant's chat box is redesigned.",
        "The Show more button on video lists works again."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-05",
      "url": "https://affitor.com/changelog/improvements-2025-05",
      "date": "2025-05-29",
      "type": "digest",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Improvements and fixes, May 2025",
      "description": "A Top Ads page with transcripts, Google sign-in that works from in-app browsers, and no more duplicate ads.",
      "points": [
        "Top Ads. See ads running for affiliate offers, read their transcripts, and send one to the script assistant.",
        "Google sign-in now works from links opened inside apps such as Facebook, Instagram and X: we open the page in your regular browser, and Safari is no longer blocked.",
        "Lists show a loading outline instead of a blank page.",
        "The same ad no longer appears twice in Top Ads."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "paid-plans-2025",
      "url": "https://affitor.com/changelog/paid-plans-2025",
      "date": "2025-05-18",
      "type": "pricing",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Paid plans for more research",
      "description": "Monthly, quarterly and yearly plans, paid by card through Stripe, with coupons and cancel anytime.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "improvements-2025-04",
      "url": "https://affitor.com/changelog/improvements-2025-04",
      "date": "2025-04-30",
      "type": "digest",
      "audience": [
        "partners",
        "brands"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "Improvements and fixes, April 2025",
      "description": "Google sign-in, filters you can share, traffic by country, the value of a conversion on every program, and a form to submit a program.",
      "points": [
        "Sign in with your Google account.",
        "Filter programs by industry, commission rate, one-time or lifetime commission, and payment method. Filters are saved in the page link, and one button clears them.",
        "Pick which table columns you see; Affitor remembers your choice.",
        "Program pages show traffic by country.",
        "Each program shows the average value of a conversion and its recurring commission.",
        "Ask for a short AI summary of any program from its page.",
        "Anyone could submit a program to be listed.",
        "Right-click a program to open it in a new tab."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "ai-script-assistant",
      "url": "https://affitor.com/changelog/ai-script-assistant",
      "date": "2025-04-14",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "dashboard"
      ],
      "title": "Write video scripts with an AI assistant",
      "description": "Turn the transcript of a popular video about a program into a script for your own video.",
      "points": [],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    },
    {
      "slug": "program-directory-launch",
      "url": "https://affitor.com/changelog/program-directory-launch",
      "date": "2025-03-23",
      "type": "feature",
      "audience": [
        "partners"
      ],
      "surfaces": [
        "marketplace"
      ],
      "title": "Find affiliate programs in one searchable table",
      "description": "Affitor starts as a directory of affiliate programs for creators and marketers, with search, sorting and a page for every program.",
      "points": [
        "Program pages show popular YouTube and TikTok videos about the program, its estimated monthly web traffic and its top search keywords.",
        "Works on phones, with search and navigation sized for small screens.",
        "Light and dark theme. Affitor now uses a light theme only."
      ],
      "learn_more": null,
      "media": {
        "banner": null,
        "images": [],
        "videos": []
      },
      "context": null
    }
  ]
}
