# Migrating Payments Data Learn what's required to migrate your data from another payment provider over to Finix. Transmitting payment details of any kind requires extra PCI considerations. Finix has several resources available to take on those PCI considerations and help platforms bring their customer’s payment details over to Finix from any payment provider. ## Migration Overview To migrate your platform’s tokenized payment data to Finix, you’ll need to: 1. [Reach out to Finix](#step-1-reach-out-to-finix) and let us know you’d like to migrate tokens and payment data from your original payment provider. 2. [Reach out and notify the original processor](#step-2-notify-your-original-processor) that you’d like to migrate your tokens and payment data to Finix. 3. [Finix will work with you and the original processor](#step-3-finix-receives-encrypted-pans) to receive the encrypted Primary Account Numbers (PANs) and other payment details. Once received, Finix will work with you to import the tokens and other payment details into your Finix account. 4. [When the import process is complete](#step-4-finix-completes-importing-your-tokens), Finix will follow up with a file that contains the new Finix payment tokens and how they map to the tokens of the original processor. ## Step 1: Reach Out to Finix Reach out to Finix and let us know you’d like to migrate payment data from your original provider into Finix. You can reach out to your Finix point of contact or the [Finix support team](mailto:support@finix.com). Once the migration request is made, Finix will begin making the needed technical preparations. ## Step 2: Notify Your Original Processor Reach out to the original processor and let them know you’d like to migrate your tokens to Finix. These requests can often be submitted through your original provider's support channels. Include Finix on the request to keep us in the loop. Reaching out helps give the processor permission to begin working on the migration with Finix. In your request, ask the original processor to provide the encrypted tokens and other payment details in the following file format: | Token Provider | Input Format | | --- | --- | | Adyen | CSV | | Auth.net | CSV | | BBMS (Blackbaud Merchant Services) | TXT (tab separated) | | Bluepay | CSV | | Braintree | CSV | | Celero | CSV | | CSG Forte | CSV | | Heartland | CSV | | NMI | CSV | | Payrix | CSV | | Qualpay | CSV | | Spreedly | CSV | | Square | CSV | | Stripe | JSON, CSV | | WePay | CSV | If your processor isn’t listed, ask them for a sample file or supported formats. Then share that information with your Finix contact or the Finix Support Team, and we’ll work with you to import your tokens. ## Step 3: Finix Receives Encrypted PANs Finix will work with you and the original processor to receive the encrypted Primary Account Numbers (PANs) and other payment details. The original processor will need to use a PGP key provided by Finix to encrypt data before transmitting it to Finix. See [Finix PGP Key](/guides/business/security-and-compliance/pgp-key/) for Finix's PGP key. - Some processors have policies that limit where they can transmit tokenized data. In these cases, you may need to communicate with the processor directly to ensure Finix receives the required data. - If requested, Finix's most recent PCI DSS Attestation of Compliance (AoC) [is available](/guides/managing-operations/security-compliance) by request under a signed non-disclosure agreement with Finix. It can take anywhere from a few days to several weeks for your original processor to transfer your payment data to Finix, so be sure to accommodate this transition time in your migration plan. ## Step 4: Finix Completes Importing Your Tokens When Finix receives the file from the original processor, we’ll begin decrypting the data in a PCI-compliant environment and importing the tokens. If there's any reason the data can't be used, we'll outline what's wrong and work with you and the original processor to resolve the issue. Account Updater enabled by default on imported tokens To ensure a smooth customer experience, Finix will automatically enable [Account Updater](/guides/after-the-payment/account-updater) on imported tokens. ## CSV Output When the import is complete, Finix will reach out with a CSV that contains the new Finix payment tokens and how they map to the tokens of the original processor. The import process maps the originals processor’s token IDs to new Finix token IDs, identities, and custom fields. You can then use the newly created `Payment Instruments` and other data in your Finix integration. ### CSV Fields | Field | Description | Example | | --- | --- | --- | | `card_brand` | Brand of the payment card. | `Visa` | | `customer_email` | Customer's email address saved with the original payment provider. | `customer@example.com` | | `error_msg` | Returned when there’s an issue locating an account. Use the details in `error_msg` to reach out to the cardholder and confirm their payment information. After confirmingonfirming, [create a `Payment Instrument`](/api/payment-instruments/createpaymentinstrument) with the updated details. | `null`, `Account not found` | | `expiration_month` | Payment card's expiration month. | `12` | | `expiration_year` | Payment card's 4-digit expiration year. | `2026` | | `external_customer_id` | Unique ID (from your original provider) to reference a specific customer and their saved payment details. | `cus_abc123def456` | | `external_token_id` | Token ID from your original provider that identifies the customer’s tokenized payment details. | `token-abc123` | | `finix_application_id` | ID of the `Application` linked to the Finix `Payment Instrument`. | `APdoThHn4jjYUSxQf76txAgg` | | `finix_identity_id` | ID of the `Identity` linked to the Finix `Payment Instrument`. | `IDcV3F1FzHB5cT9DoGZLJ39Q` | | `finix_instrument_id` | ID of the Finix `Payment Instrument` created from the tokenized payment data. | `PI8uU6wfi6hqBoWmzm9L4F2b` | | `import_reference_number` | Unique ID generated by Finix to reference a specific import. | `221014_TESTIMPORTHERE007` | | `instrument_last_four` | Last four digits of the payment card. | `4242` | | `is_expired` | Indicates whether the payment card is expired. When `true`, it means the card is expired and cannot be used. Use the [Account Updater](/guides/after-the-payment/account-updater) to get updated information. | `true`, `false` | | `successful` | Indicates if a Finix `Payment Instrument` was created successfully using the tokenized payment data. When `false`, it indicates Finix couldn’t create a `Payment Instrument`. Review the details in `external_customer_id` and try creating a [`Payment Instrument`](/api/payment-instruments/createpaymentinstrument) directly using Finix's API. | `true`, `false` | ### CSV Example The CSV will look like this: ```csv Example Payment Migration CSV import_reference_number,finix_instrument_id,finix_identity_id,finix_application_id,successful,external_customer_id,external_token_id,customer_email,instrument_last_four,card_brand,expiration_month,expiration_year,error_msg,is_expired 221014_TESTIMPORTHERE007,PImch9imuQDLamPY1LCRmpsG,IDouBD8vwBFEjV5HvmyWsw2A,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def456,expiredTokenID,jenny.rosen@example.com,4242,UNKNOWN,1,2020,,true 221014_TESTIMPORTHERE007,PIm1QR8aF2a3NH8cmPgQ5x2o,IDrHeCSZ4ss4f2HjuKFaGqiM,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def459,card_edf214abc789,johnny.rosen@example.com,4242,UNKNOWN,1,2024,,false 221014_TESTIMPORTHERE007,PIwi2m5TRh26ZVBXA4DLmSZM,IDrHeCSZ4ss4f2HjuKFaGqiM,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def459,card_123,johnny.rosen@example.com,4242,UNKNOWN,1,2024,,false 221014_TESTIMPORTHERE007,PI85kuV5ySHF4GUDLC9wden7,IDrHeCSZ4ss4f2HjuKFaGqiM,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def459,card_456,johnny.rosen@example.com,4242,UNKNOWN,1,2024,,false 221014_TESTIMPORTHERE007,PI6mfsXjJfHK9z89NNmoZWS1,IDrHeCSZ4ss4f2HjuKFaGqiM,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def459,card_edf214abd789,johnny.rosen@example.com,4242,UNKNOWN,1,2024,,false 221014_TESTIMPORTHERE007,PIrmDHqhYuW1gQXSVV3CxB8H,IDrHeCSZ4ss4f2HjuKFaGqiM,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def459,card_edf214abc789,johnny.rosen@example.com,4242,UNKNOWN,1,2024,,false 221014_TESTIMPORTHERE007,PI4UNNgggfwqZ4eqpHCZHqat,IDrHeCSZ4ss4f2HjuKFaGqiM,APaPLggMvZ6bYCLhbr65MUZ9,True,cus_abc123def459,card_nodatafound,johnny.rosen@example.com,4242,UNKNOWN,1,2024,,false 221014_TESTIMPORTHERE007,,IDouBD8vwBFEjV5HvmyWsw2A,APaPLggMvZ6bYCLhbr65MUZ9,False,cus_abc123def456,badTokenID,jenny.rosen@example.com,,,1,2024,Not a valid card number,false ``` With the CSV, you can make the necessary changes to get customers started processing payments on Finix. [Finix’s support team](/guides/getting-started/support-at-finix/) is also available to help guide you through the migration process and help make the changes that need to get made to your platform.