Introduction
Multi-Brand lets you run several brands under one verified business. Each brand has its own name, logo, statement descriptor, and URL. Your payout account, fees, and KYC stay shared at the business level, while each product, payment link, subscription, invoice, and transaction is filed under a specific brand. Use brands to test a new niche, run a localized site, or separate B2B and B2C product lines without opening another business account. A brand that needs its own legal entity, KYC, or payout account needs a separate business instead. See Managing Multiple Businesses.Merchant Dashboard Flow
1
Open Settings → Business
Go to Settings → Business. The Brands Under [Your Business] panel lists your Primary Brand and any Secondary Brands.

2
Click the + Button
In the Brands panel, click the + button in the top-right corner to open the new brand form.
3
Fill In the Brand Details
Complete the following fields:
- Brand Name (required): At least 2 characters, and different from the names of your other brands.
- Support Email: The address customers use to contact support for this brand.
- Brand Description (required): At least 10 characters. Describe the brand, its products, and what makes it distinct.
- Brand Logo: Represents the brand on checkout, invoices, and payment links. Accepted formats are PNG, JPEG, GIF, WebP, ICO, and SVG. Any other format is rejected with a
422error.
... menu and select Edit.4
Select the Brand on Products
When you create a product, choose its brand in the Brand field.
5
Find the Brand ID in Transactions
Transactions and subscriptions show a Brand ID, so you can tell which brand each one belongs to.
Additional Points
- No payout changes: Funds, payout cycles, and fees stay at the business level and flow to the business wallet and your bank account.
- Brand ID on webhooks: Payment, subscription, refund, license key, credit ledger entry, credit balance low, entitlement grant, dunning attempt, and abandoned checkout payloads include a
brand_id, so you can attribute each event to a brand. When an entity has no brand of its own,brand_idis the business’s primary brand. Dispute payloads carry nobrand_id, so use theirpayment_idto find the brand on the payment. Payout payloads are business-level and carry nobrand_id. - Suspensions: If a brand is suspended, it can’t take new payments, checkout sessions, or subscriptions. Other brands under the same business keep transacting.
- Invoices: Each invoice shows the name and logo of the brand the payment belongs to.
- Storefront, license keys, discount codes, payout settings, and other business-level features work the same as with a single brand.
Archiving a Brand
Archive a brand you no longer sell under. Archiving retires the brand and moves its products, live subscriptions, and product collections to another brand of the same business in one step.Archive a Brand from the Dashboard
1
Open the Brand's Actions Menu
Go to Settings → Business. In the Brands Under [Your Business] panel, open the 
... menu next to the secondary brand and select Archive. The primary brand has no Archive option.
2
Confirm the Archive
Read the warning and select Continue.

3
Choose the Brand That Takes Over
In Move products to, select the brand that receives the products, live subscriptions, and collections. The primary brand is the default. Select Move & Archive to move the records and archive the brand in one action.

4
Check the Result
The confirmation names the brand that received the records.
The archived brand leaves the Brands panel. When the business has no other secondary brand, the Secondary Brands group disappears with it.


What Happens When You Archive
You choose a target brand to take over from the brand you archive. The dashboard always asks for one, and the API takes it asmove_products_to. In one atomic action, Dodo Payments:
- Moves every product to the target brand.
- Moves every live subscription to the target brand, so renewals bill under it.
- Moves every product collection to the target brand.
- Archives and disables the original brand.
The primary brand can’t be archived, and the API rejects the request with
CANNOT_ARCHIVE_PRIMARY_BRAND. It is the brand your business falls back to, so at least one brand always remains.An Archived Brand Is Read-Only
The API rejects every change to an archived brand and every new record under it:
Archived brands are hidden from brand pickers, so you can’t assign new records to them. They stay available as analytics filters, which keeps your per-brand reporting complete for the period the brand was trading. See Analytics.
Archiving Through the API
To archive a brand, call the archive endpoint with the brand you are retiring and the brand that takes over:moved_to_brand_id is null when you archive without a target.
403 for the primary brand, 404 for an unknown brand, 409 for a brand that is already archived, and 422 for a missing or invalid move_products_to target.
To list brands including the archived ones, set include_archived on the list endpoint. Archived brands are excluded by default. Every brand carries an archived_at field, which is null while the brand is active.
cURL