Stripe recurring credit card migration

This guide walks you through the process of migrating Stripe recurring credit card payment data to FinDock.

Before you begin

You need to have FinDock installed and configured with the Stripe package. Make sure all configuration changes have been deployed to ensure control field picklists are up to date.

For an overview of the basic setup, you can check out our quick start.

Migration overview

The migration process is as follows:

  1. Check state of recurring subscriptions in Stripe.
  2. Cancel subscriptions (recurring credit card payments) in Stripe.
  3. Export subscription data from Stripe.
  4. Import subscription data to Salesforce.
  5. Set up payment collection in FinDock.
  6. Test migrated data.

Step 1 - Check subscriptions

Before starting the migration, you check the state of your current Stripe recurring payments. They could be in one of three states. We'll walk you through what to do based on the state.

Subscriptions managed by third party

Subscriptions are managed by a third party CRM or other system that sends the request for payment to Stripe at certain intervals, usually monthly. The payment data itself is stored in Stripe.

Subscriptions managed by Stripe

Subscriptions are managed by Stripe and appear in the subscriptions section in your Stripe Dashboard.

Stripe subscriptions

Subscriptions managed by another PSP

You intend to use Stripe, but you haven’t yet migrated subscriptions from your other payment service provider.

Step 2 - Cancel subscriptions

The cancellation process differs depending on who manages the subscriptions.

Cancel subscriptions managed by third party

Contact the third party and agree a date to end subscriptions and disconnect them from Stripe. Stripe does not support multiple connections over the API.

Cancel subscriptions managed by Stripe

From your Stripe dashboard, cancel your subscriptions for a certain date and make sure this end date lines up with the date you intend to start collecting payments through FinDock.

Cancel subscriptions in Stripe

It’s also possible to cancel subscriptions in bulk using the API more info can be found in this Stripe article.

Cancel subscriptions managed by another PSP

Reach out to your current credit card processor and Stripe about the process of importing and cancelling these subscriptions. Stripe can help with the process of migrating to Stripe.

Step 3 - Export data from Stripe

Once you’ve established a plan for canceling your subscriptions and agreed a date when FinDock processes can take over, you are ready to export the data you need.

For example, you may have decided that in 10 days time your third party and/or Stripe stops managing your subscriptions. So, you now need to get the necessary data from Stripe and migrate that data into Salesforce.

You can export the data as a JSON, or you can use the built-in Export Function from Stripe. The best place to export and ensure you get all the data you need is from the Customers section.

Customers in Stripe dashboard

Once you’ve selected your time period, click the Custom button shown in the screenshot below.

Custom export

Then select the columns you need to export. The most important are Customer ID, Card ID and Card Fingerprint. You might also find others useful, such as Customer Email, to help you filter the exported data.

Custom export column selection

    You export your recurring payments so you have a list of the customer IDs that you know are your Stripe subscriptions. Then you can use these IDs to sort your Customer export and filter out customers who only made one-off payments or other payments that don't need migrating. You’ll also find this info useful when updating the Day of the Month field on recurring payments in Salesforce. If your subscription is managed by a third party, ask how to filter out data so you only get your currently active recurring payment customers.

Step 4 - Import data to Salesforce

To collect recurring payments, your data import needs to include values for at least the following objects. The import must also occur in this order:

  1. Contact and/or Account
  2. Payment Profile
  3. Mandate
  4. Recurring Payment (RP) or Recurring Donation (RD)

Below is a table of the key fields and data mapping.

Target ObjectTarget FieldPSP dataComments
Contactphstr__Stripe_Customer_Id__cStripe Customer IdSpecific field for Stripe, e.g. cus_1234absced
Mandatecpm__Reference__cStripe Customer IdSpecific field for Stripe, e.g. cus_1234absced
Mandatephstr__Payment_Method_Id__cStripe Payment Method IdSpecific field for Stripe, e.g. pm_123sdf3dsf3 or card_123w213sf
Payment Profilephstr__Fingerprint__cFingerprintSpecific field for Stripe
Recurring Donation (RD) or Payment (RP)npsp4hub__Payment_Method__c (RD) cpm__Payment_Method__c (RP)Credit CardPicklist field
Recurring Donation (RD) or Payment (RP)npsp4hub__Payment_Processor__c (RD) cpm__Payment_Processor__c (RP)PaymentHub-StripePicklist field
Recurring Donation (RD) or Payment (RP)npsp4hub__Target__c (RD) cpm__Target__c (RP)Stripe target nameThis value will be deployed to Picklist after you add your Stripe target and name it
Recurring Donation (RD) or Payment (RP)npsp4hub__Payment_Profile__c (RD) cpm__Payment_Profile__c (RP)Mandate IDYou’ll create this during the data import
Recurring Donation (RD) or Payment (RP)npsp4hub__Mandate__c (RD) cpm__Mandate__c (RP)Mandate IDYou’ll create this during the data import

We created an example Stripe export and migration template containing so you can see where the data should reside. The different objects are separated by tabs you can click at the bottom.

Stripe migration template

The template is designed for a Salesforce NPSP migration. For non-NPSP migrations, you can simply change the Recurring Donation object to Recurring Payment. You also need to ensure you map the above fields to FinDock installments (this is handled automatically with the FinDock NPSP connector)

Step 5 - Set up payment collection

Once your data is migrated you need to set up recurring payment schedules. These automatically create payment schedules at an interval you choose. For recurring credit card payments, you probably need to create a schedule that runs daily, since it’s likely collections occur on multiple different days in the month.

Once created, you can auto-collect payments if you want to fully automate payment schedule runs.

Step 6 - Test migrated payments

You should try running a test payment schedule with auto run off so you can just generate and remove any installments you don’t want before processing.

You can create a payment schedule with status Scheduled. Procced on the schedule with starting the Generate step, and then remove all the installments you don’t want to process (just edit the payment schedule lookup field on the installment to unlink them).

Then, to test your data, start the process step and check the Stripe Dashboard for new payments or check for errors on the installment(s) linked to the Payment Schedule record.

Was this page helpful?