menu
How to Migrate Customer Data from PayPal to Stripe: Everything You Need to Know
How to Migrate Customer Data from PayPal to Stripe: Everything You Need to Know
This article covers in detail how to migrate customer data from PayPal to Stripe using Stripe's resources as well as custom logic. Baremetrics customer, Sync with Connex, shared with us how they accomplished the migration.

This article covers in detail how to migrate customer data from PayPal to Stripe using Stripe's resources as well as custom logic. Baremetrics customer, Sync with Connex, shared with us how they accomplished the migration.

Joseph Anderson is the Founder and CEO of Sync with Connex, a SaaS company that automates data entry between QuickBooks and online e-commerce channels. After using PayPal for payment processing for 10 years, he decided to switch to Stripe’s platform. 

He decided to migrate from PayPal to Stripe because PayPal’s software and data reporting were insufficient for Sync with Connex’s needs. With Stripe, Joseph gained developer-friendly features and the ability to integrate with third-party applications like Baremetrics for smarter analytics. 

In this guide, he explains how Sync with Connex successfully handled a full PayPal to Stripe migration, including the code he used to edit specific subscription information, create subscriptions, and update customers after they had been imported to Stripe. 

Overview: How did Sync with Connex do it?

Although Stripe and PayPal are both payment gateways, they are very different tools. The attributes of a customer in Stripe are different from how they’re organized in PayPal.

Because of this, Sync with Connex completed the migration by the following process: 

  1. First, Sync with Connex worked with Stripe’s migration team to import PayPal customer data into Stripe using a spreadsheet prepared by PayPal. PayPal sent Stripe the customer information and Stripe imported the data. The spreadsheet included customer name, email, and credit card information. 
  2. Some user accounts were marked as active, instead of cancelled.
  3. Some users had incorrect plan levels associated with their account.
  4. Some Sync with Connex accounts were incorrectly associated with their PayPal accounts.

This article will explain exactly how Sync with Connex accomplished these steps, starting with important learnings to be aware of before getting started. 


5 Key Points to Know before Migrating from PayPal to Stripe 

As Sync with Connex migrated from PayPal to Stripe, they overcame a number of challenges to get their existing customer data to fit into Stripe’s environment.

1. You must use the Stripe API to import subscription information, legacy pricing, and contact info.

Joseph recommends creating a spreadsheet, then writing code to import the spreadsheet to Stripe.

Subscription Information 

 If your business offers different products with different subscription tiers, you will be able to see which product each customer is signed up for, but not the subscription tier. 

Rather, you must edit your Stripe accounts by manually importing a spreadsheet of RP numbers (this is what PayPal calls customer IDs), their new Stripe Price ID, the member since date, the next payment date, and payment frequency (monthly / yearly).

Legacy Pricing 

Some Sync with Connex users have legacy pricing. The logic Sync with Connex used said that “If the “member since date” was prior to 6/1/2019, then choose the legacy Price ID. Otherwise, use the new Price ID.” When you make your spreadsheet to import, ensure the price ID is accurate for legacy users. Stripe allows the same product to contain multiple price points.

Billing and Shipping Addresses

To add billing details, you must manually import them using a spreadsheet of RP numbers, phone, email and billing address. 

To create this spreadsheet, head to PayPal Manager. Go to Reports and generate a Custom Report. Make sure to include all of the fields you need. The “Comment 2” field contains the RP number. 


2. You will need to create Stripe Price IDs.

If you don’t have Price IDs in Stripe, you will need to create them. This means creating new Price IDs that match with your existing PayPal products. 

Sync with Connex did this by creating specific codes, which they call SKUs, for each product. Using SKUs made it easier to map these products to Stripe Price IDs, as Connex’s product names have changed over the years. Then, they wrote code to match these SKUs to a list in Stripe. 

After exporting the SKUs from PayPal into a spreadsheet, Sync with Connex created a Meta field called SKU. Then, their custom code mapped the PayPal SKU information into new Stripe Price IDs via the Stripe Price ID SKU meta field. 

For more information on how to map PayPal fields to Stripe, keep reading. To see their code, you can find it towards the end of this article. 

3. PayPal can export a customer’s credit card information, but miscommunications can have major consequences. 

To import credit card information from PayPal to Stripe, you can easily export to Stripe via customers’ PayPal profile ID. However, this can be difficult to do accurately at scale. 

In Sync with Connex’s experience, during the migration a miscommunication caused Stripe to receive transaction IDs when they should have received PayPal Profile IDs. This was a problem because transaction IDs would not have properly recognized the differences in payment schedules for Sync with Connex customers; some customers pay monthly, whereas others pay annually. 

This miscommunication resulted in a 2-week delay.

4. Deactivating a customer pre-migration will erase their customer history.

If you deactivate a customer in PayPal before migrating everything to Stripe, not only will their information not appear in Stripe, you won’t be able to reactivate their profile in the future. 

5. Stripe allows you to import subscriptions and customer data one at a time.

As a workaround, you can use parallel programming to import them in batches.