Skip to main content

How to connect Stripe to Shopify to migrate existing subscriptions

How to migrate existing subscriptions, and payment methods from Stripe to Shopify with the new version of PayWhirl for Shopify.

Ryan P. avatar
Written by Ryan P.
Updated this week

This guide walks you through connecting your Stripe account to Shopify. This way, existing customer payment methods saved in Stripe can be used with PayWhirl for Shopify.

Requirements

  • Your customers’ payment methods must be stored in Stripe.

  • Export of customers from Stripe.

  • Export of active subscriptions from your previous platform (optional but recommended if you want us to bulk-create them).

  • Shopify Payments is connected as your primary gateway in Shopify.

  • Card tokens were saved using Stripe’s Payment Intents API or Charges API.

  • Stripe connected as a secondary gateway in Shopify (see steps below).


Step 1: Import customers into Shopify (names, email, addresses)

Use Shopify’s native CSV import on the Customers page to load basic customer records (name, email, addresses).
Detailed instructions: https://help.shopify.com/en/manual/customers/import-export-customers


Step 2: Connect Stripe to your Shopify store (secondary gateway)

Stripe no longer appears as a stand-alone gateway in Shopify settings. Use the direct link below to connect Stripe as a secondary subscription gateway (required for token migration).

Link format - replace {shop} with your store handle:
https://admin.shopify.com/store/{shop}/settings/payments/third-party-providers/39813121?secondarySubscriptionGateway=true

Example:


If your store is my-coffee-co, go to:


https://admin.shopify.com/store/my-coffee-co/settings/payments/third-party-providers/39813121?secondarySubscriptionGateway=true

Notes

  • You must be the store owner or have permission to manage Payments settings.

  • Payment methods imported to Shopify will continue charging via Stripe. Keep Stripe connected and in good standing after migration.

  • Any new cards saved by customers after migration will be vaulted under Shopify Payments.


Step 3: Export payment data from Stripe

Export a CSV with the following identifiers for each customer you plan to migrate:

  • email

  • stripe_customer_id

  • stripe_payment_method_id (e.g., pm_xxx or card_xxx)

Please ensure your column headers exactly match the names above before sending to our team.

Tip: If stripe_payment_method_id is blank in your export, the payment method may not be set as Default in Stripe. Set a default payment method in Stripe first, then re-export.


Step 4: Send your CSV to PayWhirl

Email team@paywhirl.com or contact us via live chat and attach your CSV. We’ll process the import so Shopify can vault the Stripe tokens against your Shopify customers (matched by email imported in Step 1).

Verifying the import

We don’t access your Stripe data directly—our process sends the IDs to Shopify to vault. Occasionally, a token can vault but fail later on charge. We highly recommend testing a few live charges to confirm everything works end-to-end.


Migrating/creating subscriptions

After payment methods are imported, you can re-create (or create new) subscriptions for customers using PayWhirl’s Create Subscription tool, preserving billing schedules and products.


Important implications of using Stripe + Shopify Payments together

  • New cards saved after you switch to Shopify Payments are vaulted and charged by Shopify Payments.

  • Existing subscribers whose tokens were imported will continue to be charged via Stripe unless they update their card in Shopify (in which case the new card will vault under Shopify Payments).

  • There is no automated way to “move” existing tokens from Stripe to Shopify Payments—keeping Stripe connected as a secondary gateway ensures continuity.


Troubleshooting tips

  • Billing ZIP code required: Shopify validates tokens and requires a billing ZIP/postcode; update missing ZIPs in Stripe before import.

  • Supported methods: Import is certified for credit cards; other payment types stored in Stripe (e.g., bank accounts) typically won’t import. Tokens should look like pm_... or card_....

  • Include only active methods: Limit your CSV to payment methods actually tied to subscriptions; extra tokens can be added later.


Need a sample file?

[Download Sample Import File] (CSV with headers: email, stripe_customer_id, stripe_payment_method_id).


Questions?
We’re here to help at team@paywhirl.com or via in-app chat.

— The PayWhirl Team

Did this answer your question?