CSV import template

The ten columns of the Chargezen subscription CSV, how to fill each one, and what every import error message means and how to fix it.

Last updated: 2026-10-18

Use a CSV to bring subscriptions from any app that can export them. Open Subscriptions → Import → CSV import and choose Download a CSV templateto get a file with the header row already filled in.

Import a CSV

1

Prepare your CSV

One contract per row, header row first (it's skipped). Keep the columns in the order below. Save the spreadsheet as .csv.

2

Upload

Choose Choose a CSV or drop the file. The page counts the rows it will check and how many rows without an email it will skip.

3

Start import

Choose Start import. Every row is checked before anything is created.

4

Watch contracts arrive

When the file passes, the import is queued and new contracts appear under Contracts as they're created.

Columns, in order

#ColumnWhat to put in it
1Customer emailThe email of an existing Shopify customer.
2Payment method (shopify_payment or stripe)shopify_payment charges the payment method saved in Shopify. stripe moves the customer's default Stripe payment method into Shopify first.
3Next billing date (YYYY-MM-DD)The first date Chargezen charges. It can't be in the past.
4Recurring delivery anchor date (YYYY-MM-DD; prepaid weekly/monthly/yearly only)Sets the delivery weekday, day of month or month and day for prepaid plans. Leave blank to keep the plan's schedule.
5Shipping feeCharged on every recurring order. 0 or more.
6Variant IDThe Shopify variant ID of the product.
7QuantityA whole number greater than zero.
8Current priceThe price per item the customer pays now. 0 or more.
9Selling plan IDThe numeric ID of a Chargezen plan with the Contract import channel on.
10CurrencyA currency code such as USD or CAD.
Prepaid anchor dates

Column 4 changes the recurring delivery schedule of prepaid weekly, monthly and yearly plans. If you reuse an older CSV, check column 4 before importing. The first delivery still depends on Shopify's billing and cutoff timing.

Error messages

If any row fails, nothing is imported. The page says "Nothing was imported. Fix these rows and upload the file again." and lists each problem as "Row N: …".

MessageHow to fix it
Enter a valid customer email.Column 1 is empty or isn't an email address.
Choose Shopify Payments or Stripe.Column 2 must be shopify_payment or stripe.
Enter a valid first billing date (YYYY-MM-DD) that is not in the past.Fix the date format in column 3, or move it to tomorrow or later.
Enter a valid recurring fulfillment anchor date (YYYY-MM-DD) on or after the first billing date.Column 4 is earlier than column 3 or in the wrong format.
Enter a non-negative shipping fee.Column 5 is below zero or not a number.
Enter a Shopify variant ID.Column 6 is empty.
Enter a whole-number quantity greater than zero.Column 7 is zero, negative or has decimals.
Enter a non-negative current price.Column 8 is below zero or not a number.
Enter a Shopify selling plan ID.Column 9 is empty.
This selling plan isn't available for contract import.Turn on the Contract import channel on that plan, or use another plan's ID.
Choose a supported currency.Column 10 isn't a recognized currency code.

Troubleshooting

"File type must be .csv"

Save the spreadsheet as CSV (comma separated) and upload it again.

"No rows with a customer email found"

Each row needs a customer email in column 1, and the first row is treated as the header. Check that your data starts on row 2.

The file passed but a contract never appeared

Contracts are created in the background. A row is turned down later if the email isn't a Shopify customer, or if that customer already has a contract. Stripe rows wait until the customer's Stripe payment method is confirmed in Shopify.

Where do I find a selling plan ID?

Use the numeric ID of a selling plan in a Chargezen plan with Contract import on. Chargezen adds the Shopify prefix for you.

Was this page helpful?

Need more help? Contact support