What you can import
The records you can bring in, the order they go in, and how re-imports match.
The importer covers the records you need to move a business over: who your customers are, what you sell, who is subscribed, and what they have been billed.
The records you can import
| Record | What it is |
|---|---|
| Customers | Your customer accounts. |
| Products | Your catalog products (plans, add-ons, one-offs). |
| Prices | The prices for your products. |
| Products and prices | A product and its price in one file. |
| Subscriptions | Your customers' live subscriptions. |
| Customers and subscriptions | A customer and their subscription in one file. |
| Invoices | Historical invoices from your old system. |
| Payments | Historical payments that settled those invoices. |
| Credit notes | Historical credit notes. |
| Saved payment methods | Your customers' saved cards and mandates, as token references from your payment gateway. See migrating saved payment methods. |
Some records come as combined files so you can move related data together, like a customer and their subscription in one row.
Order matters
Some records depend on others. A subscription needs its customer and its price to exist first; a payment needs its invoice. The importer knows these dependencies and expects them in order, so bring in customers and the catalog before subscriptions, and invoices before the payments that settle them.
Re-importing matches on your own ids
Each record you import can carry your own external id, the id it had in your old system. When you import the same file again, the importer matches on that id instead of making a duplicate. For a row that already exists, you choose what happens: skip it, update it with the new values, or treat it as an error. This lets you re-run an import to fix or top up data without creating duplicates.
Edge cases
- Bring records in dependency order. Customers and catalog first, then subscriptions, then invoices, then payments.
- The external id is how re-imports match. Carry your old system's id on each row.
- A re-import is not automatically a duplicate. Matching on the external id means you can skip, update, or flag rows that already exist.