The sequence

Seven steps. You can stop at any of the first six.

  1. Export your subscriptions CSV from Recharge

    In the Recharge admin, export your active subscriptions to CSV. Include customer email, line items, quantities, prices, charge frequency, next charge date, and shipping address. Leave Recharge running — customers keep billing normally there until the final step.

  2. Upload the CSV to RefillKit

    Open the migration wizard and upload the file. The Recharge preset maps Recharge’s column names automatically; you can adjust any mapping by hand. Raw card data is never part of the file and never imported.

  3. Read the validation report

    Every row is checked before anything is created: malformed dates, unknown products or variants, missing customer emails, duplicate rows, currency mismatches. Fix the flagged rows in the CSV and re-upload, or exclude them and migrate the rest.

  4. Run the dry run

    The dry run shows exactly what would be created — each contract with its products, price, frequency, and next billing date — without touching your store. Read it the way you would read a bank statement before signing.

  5. Approve and execute

    Contracts are created in a paused state, paced to stay inside Shopify’s API limits. Billing dates are preserved: a customer Recharge would have billed on the 14th will be billed by RefillKit on the 14th.

  6. Activate, then wind down Recharge

    Nothing bills until you activate. When the dry run matched reality and you are ready, activate the contracts, then cancel the corresponding subscriptions in Recharge so no customer is billed twice. We can walk this cutover with you over email.

  7. Rollback window

    Until you activate, one click removes everything the migration created. No charges were made, so there is nothing to refund and nothing to explain to customers.

Payment methods, honestly

Which cards carry over, and which customers get an email.

The validation report tells you before execution how many rows fall into each group, so the card-update email volume is never a surprise. Customers who ignore the first email are reminded on the dunning schedule when their next charge fails, and their contract follows the final action you configured.

Want the deeper reference — required columns, error messages, cutover checklist? Read the migration guide in the docs.

Check your export before you commit.

The free preflight check reads your Recharge CSV and reports what would validate, what would need fixing, and how many customers would get a card-update email.