Docs
Sign In

Transfer cards to Stripe

Your members' saved cards can move into your own Stripe account without a single member re-entering a card. The card numbers travel between the two processors only — your old processor encrypts them and uploads them straight to Stripe. They never pass through you, and they never pass through TrainOS.

Once they land, every card is attached to a customer in the Stripe account with your name on it, and the Migration Center can pick up each member's subscription from there.

What the transfer costs

Many gym platforms — MindBody, Kicksite through its processor BaSys, and others — charge a one-time fee of $500 to $1,500 to release your members' payment data. That fee is how they keep academies from leaving.

Pay it once and it is over. This transfer is the last time anyone can charge you for your own data: afterwards the cards live in your Stripe account, you own them, and they go wherever you go.

The move itself runs in three steps.

Step 1: Ask Stripe for a data migration

Sign in to the Stripe account you connected to TrainOS, then open Stripe's request form: support.stripe.com/questions/request-a-data-migration.

Stripe confirms the form arrived and then follows up by email, usually within three business days. Everything after that happens on that email thread.

How to fill out Stripe's formThe answers that get you a card import into the right account.

What do you need help with? Data Migrations.

What type of data migration can we assist you with? Import data from a third party into a Stripe account.

Confirm your Stripe account The form shows which Stripe account you are signed in to. Answer Yes when it is the account connected to TrainOS. If it shows a different one, switch accounts — or sign out and back in — before you submit.

Which processor or third party is currently storing your payment method data? Your old provider — Mindbody, for example.

What payment types would you like to import? Cards. Check ACH as well if you bill any member from a bank account.

What Stripe ACH representation do you want to import your ACH data into? Payment Methods (pm_). This question only appears if you asked for ACH.

Then click Send email.

Step 2: Send Stripe's PGP key to your old provider

Stripe replies with the encrypted SFTP credentials your old provider needs, and the ID of the PGP key those credentials were encrypted with. Forward both to your old provider using the template below, and CC [email protected] so Stripe can follow the thread.

Paste the credentials block exactly as Stripe sent it

The formatting is part of the key. Copy the whole encrypted SFTP credentials block, including the BEGIN and END lines, and keep every line break exactly where Stripe put it — no re-wrapping, no retyping, no extra spaces. A reformatted block will not decrypt, and your export waits until a clean copy is sent.

Email template for your old providerCopy this, fill in the bracketed fields, and paste in Stripe's real credentials.

Replace everything in [square brackets], and replace the example PGP block with the real one from Stripe's email.

Hi [current provider],

Stripe has set up a secure SFTP server to receive the data and has
provided encrypted credentials for the upload. The file should be
encrypted with Stripe's PGP key
(https://docs.stripe.com/get-started/data-migrations/pan-import#migration-pgp-key)
and uploaded securely to Stripe's SFTP server. I am requesting that you
export and securely upload the following:

Customer/Member Data:
- Full name
- Email address
- Phone number
- Mailing & billing address (if available)

Payment Method Data:
- Stored credit/debit card information (card number, expiration date,
  cvv, cardholder name, billing address)
- Stored ACH/bank account information (routing number, account number,
  account holder name)

File Requirements:
- Format: JSON
- The file(s) must be encrypted with Stripe's PGP key before uploading
- Upload to Stripe's SFTP server using the encrypted credentials
  provided below

Stripe's Encrypted SFTP Credentials:
These credentials were encrypted with PGP key ID: [PGP key ID from
Stripe's email]

-----BEGIN PGP MESSAGE-----

4mbv1LpsAkNz9UQoKFGOQmm6nUEvD+CCTel3f7GnySiTGn1uBE5DHhJVCa5se8WU
7Ft0/nBietm+PrZ6yD0XDw8TGnhFuOA/qnVXj3psUY8iJXdbNSBuCp2xUxuQO/5c
u9ukXkhXYvG4Gmp8eQt0ve9nveIBitdtu/hKOdkc2DAQzzH5MNetGp9B1ga05RAX
0PzcYOwF+S3CI4MIF6Hx9bCM8J5zTE9sR2eA3kNKTKXuJFv9mjNhMqnZS4FUxKJo
OvOAntszfdArLI3+gbNw0IAgnEqc1yKOokX2LGBK4BO5Itk2q6/AH4ygqhA4CFKX
X4HkCv0yc71I2c1dKelQU0wLnlJCllLlfecdsIX1CPEdZoFbdSxsiDhbFyd7JvRb
W7eJ20qskv8v3b/DIJVtbR7vfuPXK8Ei1YdEzWgCg8qW0hjUO4+oEEcsa4WI+Vqr
5r9KSlL23CkhOguTPkVdz0XYC1mDykwKjgjl1PDNwHmErtp3GOy119kr99gytnyO
uHZmUdp9Dv8rXSPK0ojgqamjeLz9IT8sRWUSYmyRHAHxlHVdhzg1yUK5V56CDMyQ
57IwzFFJwqaE/Xr6exKIEhUOTYhYqmnG/BxR32nhT0JSH3IklhlFwm4PmKt/G2dP
qVJ5Jn4dp+SDWgdx6ZYnskXWtAm0QzYA/KbDZdr6BfBTZvuK0hhhXtzhoVcXLDxa
UkTAPgYax6dZzZwT1u2PfITUyZDpb/+mflZ2QXVQJ5uZJ/FuyBixYsw80iMca2k5
NoOg6mC4gDYfqZKt5DCcb+tZYh8AnNSLCMZoHl8kFeInYa7KO/K49NYJQpD0PIgF
xDyFEdfZgu55+pR8Mob2BaXYSN5VR22EzgERMvWzcjCCqYVcQX7ybL9hb9a7Jvrp
bQEUXoCBmAuM57MwF6pkYssqp/o4oXArUHqosId7bfL7hTATDdj4+aRqPYFUA1YA
5V1b3XCzavg+nsLvaM8Kc/U33etB
=9LeI
-----END PGP MESSAGE-----

Please decrypt these credentials using your PGP key to retrieve the
SFTP server details, then encrypt the export file(s) with Stripe's PGP
key and upload them to the server.

Thank you,
[your name]

The block above is an example, not a working key. The real one is in the email Stripe sends you.

Leaving MindBody? Migrating from MindBody covers who at MindBody handles this, what they charge, and when to send it.

Step 3: Confirm the import

Once your old processor has uploaded the export, Stripe's migration team emails you to confirm the data landed correctly. They ask for the last 4 digits of the card on file for 2 of the imported customers.

Open your Stripe dashboard, find those two customers, and reply with the last 4 digits of each card. Stripe then completes the import. Stripe typically imports data within 10 business days of receiving correct data from your previous processor.

What happens next

Your members are now customers in your own Stripe account, each with their card attached. In the Migration Center, open the Customers step and click Refresh Stripe Customers to pull them in — they arrive on their own, with no file to upload.

From there you match each Stripe customer to the right member, which is mostly automatic. See Match members to Stripe customers for how the matching works and how to attach anything left over by hand.

See also