> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supercycle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate from Stripe

> Import your Stripe customers and their vaulted payment methods into Shopify and Supercycle

<Info>
  **Import from Stripe** isn't on by default. Contact support from the app to have it turned on for your store.
</Info>

Migrating from Stripe brings your customers and their vaulted payment methods into Shopify, so Supercycle can keep billing subscriptions and memberships without customers re-entering card details. You export a CSV from Stripe and import it in Supercycle.

Before you start, complete the [requirements for every migration](/documentation/configuration/migrations/overview#requirements-for-every-migration) and make sure you can export customer data from your Stripe dashboard.

***

## Export customers from Stripe

<Steps>
  <Step title="Open Customers in Stripe">
    Go to **Customers** in your Stripe dashboard.
  </Step>

  <Step title="Export the customer data">
    Select **Export** and download a CSV of your customer records.
  </Step>

  <Step title="Prepare the CSV">
    Make sure the CSV has these columns:

    | Column    | Description                                        | Required |
    | --------- | -------------------------------------------------- | -------- |
    | `id`      | The Stripe customer ID, for example `cus_xxx`      | Yes      |
    | `email`   | The customer's email address                       | Yes      |
    | `name`    | The customer's full name                           | Yes      |
    | `card_id` | The Stripe payment method ID, for example `pm_xxx` | No       |
  </Step>
</Steps>

***

## Import customers to Supercycle

<Steps>
  <Step title="Open the import">
    On <Icon icon="shopify" iconType="solid" /> **[Settings](https://admin.shopify.com/apps/supercycle/settings)**, open **Migrations** and select **Import from Stripe**.
  </Step>

  <Step title="Upload the CSV">
    Upload the CSV you exported from Stripe.
  </Step>

  <Step title="Check the column mapping">
    Supercycle detects and maps the columns. Check that `id` maps to **Stripe ID**, `email` to **Email**, `name` to **Name**, and `card_id` to **Card ID**.
  </Step>

  <Step title="Preview and import">
    Review the preview, then select **Import**.
  </Step>
</Steps>

***

## How it works

For each row in the CSV, Supercycle:

* **Finds or creates the Shopify customer** by email address. If a customer with that email already exists, Supercycle uses it rather than creating a duplicate.
* **Links the Stripe payment method** to the Shopify customer through Shopify's remote payment method API.
* **Stores the payment method** for future billing.

Once the import completes, the customers appear in your Shopify admin and in Supercycle, their payment methods are available for subscription and membership billing, and you can create subscriptions or memberships for them.

***

## Stripe migration troubleshooting

<AccordionGroup>
  <Accordion title="The import fails with multiple Shopify customers were found">
    **Why it happens.** You have duplicate customer records in Shopify with the same email address.

    **How to fix it.** Merge or remove the duplicates before retrying.

    <Steps>
      <Step title="Find the duplicates">
        On <Icon icon="shopify" iconType="solid" /> **[Customers](https://admin.shopify.com/customers)**, search for the email address.
      </Step>

      <Step title="Merge or delete the duplicates">
        Keep one customer record and merge or delete the others.
      </Step>

      <Step title="Retry the import">
        Run the Stripe import again.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="A payment method from Stripe doesn't link to the customer">
    **Why it happens.** The `card_id` in your CSV is a legacy card token, starting with `card_`, instead of a payment method ID, starting with `pm_`.

    **How to fix it.** Convert the legacy card tokens to payment methods in Stripe before importing.

    <Steps>
      <Step title="Find the legacy tokens">
        Check the CSV for `card_id` values starting with `card_`.
      </Step>

      <Step title="Convert them in Stripe">
        Convert the legacy card tokens to payment methods with the Stripe API or dashboard.
      </Step>

      <Step title="Update the CSV">
        Replace the `card_` values with the new `pm_` payment method IDs.
      </Step>

      <Step title="Retry the import">
        Upload the updated CSV and run the import again.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>
