Outline
When migrating from another CRM or Gateway you will need to get in contact with the CRM/Gateway that you are running the billings through to let them know that you will be migrating your customers to a new CRM. Let them know that you will need the card numbers and/or rebill tokens to validate our rebill requests (dependent on how the gateway operates).
Once you receive the data from the gateway, you will need to adjust their file so that it contains the headers and data that the CheckoutChamp import is expecting to see. Follow the instructions below to determine which files/data you will need to prepare.
Please be aware that the merchantId, campaignId, and productId are all required values on the Transactions file, and these values are found within your CheckoutChamp CRM. The merchantId is the ID found on the gateway list, the campaignId is the ID found on the campaign list, and the productId is the ID found on the offers/upsells INSIDE the campaign.
When you are ready with the file (or you can do this sooner), please place a request to our migration team as that is the team who will pull in the data. They are also a great resource if you have any questions about the files.
When it has been determined that the file is ready, my team will send SFTP credentials for the data to be posted into – where then we will pull it from the SFTP and into CheckoutChamp. When the data has been pulled into CheckoutChamp we will request that you look at the imported customers to ensure everything is looking as it should. We will also ask for you to Force Bill a few customers (force the next rebill) so we can confirm that the transaction reaches the gateway properly. It is typically suggested to do a smaller sample file first – and then we can proceed with uploading the rest after it is confirmed that the sample upload was successful.
Once it has been confirmed that everything is looking good on the imports, and after coordinating with you to ensure the billings in the old CRM/Gateway have been stopped – the last step is for the migration team to enable those migrated customers so that they get picked up on the rebill task moving forward.
Instructions
Legacy Data must be imported into CheckoutChamp via .csv formatted import files.
CheckoutChamp staff will provide support and guidance on creating the file, however, CheckoutChamp staff will not be responsible for manipulating data or modifying files. The accuracy of the data provided in the import files is 100% the responsibility of the CheckoutChamp client. Any request to modify data that was imported as defined in the import files , may result in a billable fee.
It is absolutely critical that the file format provided matches in terms of:
Data Type - The data type must match to the specifications defined below. If data format does not meet the specifications, the import will fail.
Required - Required fields must be provided in the file. If they are not provided, the import will fail.
Some Common data things to look for:
1. .csv file format is required
2. dateCreated field needs to be format: (YYYY-MM-DD HH:MM:SS)
3. isActiveRecurring column needs to be defined if providing an active account and specifying the next bill date
4. responseType can only be one of these two options: SUCCESS or DECLINE (Exact case and exact spelling)
5. responseText can only be one of these two options: SUCCESS or DECLINE (Exact case and exact spelling)
6. billShipSame column needs to be defined.
Below are the formats for the 3 possible files involved in the process:
Transactions*
Customer Notes
Additional Customer Details
*Required
Depending on the information you intend to retain, you may choose to import customer notes and additional customer details.
- Transactions - The transactions file is the most important file. This holds information on all the individual transactions that have been issued against customer cards. It also contains data related to recurring continuity and upcoming billing dates as well was tracking numbers related to order shipments.
Field Definitions:
Col | Name | Type | Required | Description |
---|---|---|---|---|
A | customerId | varchar(20) | Y | Your internal customer id for this customer |
B | orderId | varchar(20) | Y | Your internal order id for the order associated with this transaction |
C | dateCreated | datetime (YYYY-MM-DD HH:MM:SS) | Y | The timestamp of the transaction |
D | campaignId | integer | Y | The CheckoutChamp campaignId that indicates which campaign to import this order into. |
E | productId | integer | Y | The CheckoutChamp campaign productId that indicates which product within the campaign, the transaction was for. (Found on the campaign page) |
F | isActiveRecurring | bit | Y | Whether this transaction was made on a currently active continuity product |
G | nextBillDate | date (YYYY-MM-DD) | Y - IF isActiveRecurring=1 | The next scheduled billing date for the active continuity product |
H | paySource | ENUM (CREDITCARD, CHECK, or PREPAID) | Y | How the customer paid for the product |
I | cardNumber | integer (max 19) | Y - IF paySource=CREDITCARD | Full credit card number used for payment |
J | cardExpiryMonth | integer (MM) | Y - IF paySource=CREDITCARD | Month in which the card expires (must include leading zeros) |
K | cardExpiryYear | integer (YYYY) | Y - IF paySource=CREDITCARD | Year in which the card expires (must be 4 digits) |
L | achRoutingNumber | integer | Y - IF paySource=CHECK | Routing number of the customer's bank |
M | achAccountNumber | integer | Y - IF paySource=CHECK | Account number of the customer's bank account |
N | achAccountType | ENUM | Y - IF paySource=CHECK | Bank Account Type |
O | merchantId | integer | Y | CheckoutChamp Id for the merchant account the transaction was billed against |
P | merchantTxnId | varchar(30) | Y | transactionId returned by the merchant processor |
Q | txnType | ENUM (SALE, AUTHORIZE, CAPTURE, REFUND) | Y | The type of transaction |
R | subTotal | decimal | Y | product price before shipping and taxes applied |
S | shipTotal | decimal | Y | shipping charged for the order |
T | salesTax | decimal | Y | sales tax charged for the order |
U | totalAmount | decimal | Y | Sum of salesTax / subTotal / shipTotal (Must add up correctly) |
V | responseType | ENUM (SUCCESS or DECLINE) | Y | Result of the transaction, was it successful? |
W | responseText | ENUM (SUCCESS or DECLINE) | Y | Any additional response information returned by the processor |
X | authCode | varchar(20) | N | Authorization Code returned by the processor |
Y | parentTxnId | varchar(30) | Y - IF txnType=REFUND or txnType=CAPTURE | The parent transaction against which a refund or capture transaction was run |
Z | firstName | varchar(30) | Y | Customer's first name |
AA | lastName | varchar(30) | Y | Customer's last name |
AB | address1 | varchar(30) | Y | Billing Address Line 1 |
AC | address2 | varchar(30) | N | Billing Address Line 2 |
AD | city | varchar(30) | Y | Billing Address City |
AE | state | varchar(30) | Y - IF country=US or country=CA | Billing Address State |
AF | country | char(2) | Y | Billing Address Country |
AG | postalCode | varchar(20) | Y | Billing Address Postal Code |
AH | phoneNumber | numeric (no dashes or parentheses) | Y - IF emailAddress is not present | Primary Phone number of customer. |
AI | homePhone | numeric (no dashes or parentheses) | N | Home telephone number |
AJ | cellPhone | numeric (no dashes or parentheses) | N | Cellphone number |
AK | workPhone | numeric (no dashes or parentheses) | N | Work telephone number |
AL | emailAddress | emailAddress (must be valid format) | Y - IF phoneNumber is not present | Customer's email address. |
AM | billShipSame | bit | Y | Whether or not the shipping address is the same as the billing address |
AN | shipFirstName | varchar(30) | N | Shipping First Name |
AO | shipLastName | varchar(30) | N | Shipping Last Name |
AP | shipAddress1 | varchar(30) | Y - If billShipSame=0 | Shipping Address Line 1 |
AQ | shipAddress2 | varchar(30) | N | Shipping Address Line 2 |
AR | shipCity | varchar(30) | Y - If billShipSame=0 | Shipping Address City |
AS | shipState | varchar(30) | Y - If country=US or country=CA | Shipping Address State |
AT | shipCountry | char(2) | Y - If billShipSame=0 | Shipping Address Country |
AU | shipPostalCode | varchar(20) | Y - If billShipSame=0 | Shipping Address Postal Code |
AV | affId | varchar(20) | N | CheckoutChamp affId |
AW | subAffId | varchar(20) | N | Sub affiliate id associated with order |
AX | shipDate | date (YYYY-MM-DD) | N | Date on which the order was shipped |
AY | shipCarrier | varchar(20) (ex. USPS, FedEx, etc) | N | Carrier responsible for shipment |
AZ | shipMethod | varchar(20) | N | Carrier's shipment method (ex. Express, 3-day Ground, etc) |
BA | trackingNumber | varchar(20) | N | Order Tracking # assigned by the carrier |
BB | isChargedback | Boolean('0' or '1') | N | Indicates that the specific transaction has been charged back by the card holder. |
BC | chargebackTotal | Decimal (xx.xx format) | Y-if isChargedback | The amount of the chargeback. |
BD | chargebackDate | Date (YYYY-MM-DD) | Y-if isChargedback | The date on which the chargeback was issued. |
BE | chargebackReasonCode | varchar(10) | Y-if isChargedback | Card issuer's chargeback code. |
BF | externalToken | varchar(50) | N | A token identifying the customer payment source at the 3rd party gateway. This is commonly used to run existing rebills when the full card numbers are unavailable and when gateway-supported. -note: if provided, cardNumber column may be masked with either x's or asterisks. |
BG | quantity | integer | N | The quantity of the product. If not provided or not greater than 0, then it will be set to 1. |
BH | variantDetailId | integer | N | The CheckoutChamp variantDetailId that indicates which variant of the product the transaction was for. (Found on the product page). The variant must exist on the CheckoutChamp product. |
BI | password | varchar(30) | N | Membership password for a third-party site |
BJ | companyName | varchar(50) | N | Customers company |
BK | cancellationDate | date (YYYY-MM-DD) | Y - IF status of order is CANCELLED | The date the product was cancelled |
*NOTE: The final file should be a .csv file. We highly recommend quoting all cells to avoid formatting issues with strings that contain commas or quotation marks. Pay extra attention to the Card Number field as spreadsheet files have a bad habit of truncating card numbers to 15 significant digits.
- Customer Notes - The Customer Notes file contains exactly that -- notes on customer service actions that affect customer orders.
Field Definitions:
Col | Name | Type | Required | Description |
---|---|---|---|---|
A | customerId | varchar(20) | Y | Your internal customer id for this customer. |
B | dateCreated | datetime (YYYY-MM-DD HH:MM:SS) | Y | the date the note was taken |
C | agentName | varchar(20) | N | Name of the individual customer service agent. |
D | noteText | varchar(500) | Y | The note itself |
- Additional Customer Details - So you store as much information about every customer as possible? We do too! This file is for all the additional information you collect on customers, such as custom fields, club memberships and website username / passwords.
Field Definitions:
Col | Name | Type | Required | Description |
---|---|---|---|---|
A | customerId | varchar(20) | Y | Your internal customer id for this customer. |
B | loginId | varchar(30) | N | loginId or username for a third-party site |
C | password | varchar(30) | N | password for a third-party site |
D | custom1 | varchar(50) | N | standard custom field 1 |
E | custom2 | varchar(50) | N | standard custom field 2 |
F | custom3 | varchar(50) | N | standard custom field 3 |
G | custom4 | varchar(50) | N | standard custom field 4 |
H | custom5 | varchar(50) | N | standard custom field 5 |
Providing the files to CheckoutChamp :
Since these files contain credit card numbers and bank account numbers, they cannot be transferred over email. Your CheckoutChamp Legacy Import Specialist will provide you with a secure sftp account to which to can post the files. Once your files are transferred to the CheckoutChamp SFTP site, the CheckoutChamp team will work with you to import your data.
PGP Key found here
Some processors might have a form to fill out to request the data export from their system over to CheckoutChamp.