Import subscriptions and credit card data
Overview
Migrate your subscription and customer credit card data from your or a third-party system and store it securely in the 2Checkout vault.
Availability
2Checkout Enterprise Edition accounts.
Contact 2Checkout Support directly to inquire about subscription and card migration costs.
Requirements
- PCI compliance. All entities involved in the process of migrating sensitive card information need to be PCI compliant. 2Checkout enjoys a Level 1 PCI DSS certification. Before moving forward with any data migration you need to contact 2Checkout Support directly for compliance.
- Data format. Read below for details of the PGP-encrypted CSV file structure.
- Valid import data. Filter data to migrate only active subscriptions and customers into the 2Checkout platform.
- Pre-migration checklist. Match all requirements on the pre-migration checklist.
Filter import data
To minimize the risk and rate of refunds/chargebacks, filter the import data, and communicate your customers to only migrate those who are aware that 2Checkout will process future recurring charges or manual payments.
Pre-migration checklist
eStore
- Configure the products for which you’re importing subscriptions using the 2Checkout Merchant Control Panel. Match the 2Checkout Product ID of configured items with the product ID of subscriptions you’re importing via the CSV file, or the import process will fail. Also, make sure the renewal settings are correctly configured for each product.
- Build a valid CSV file using the structure guidance described below, and include all mandatory fields.
Partner channel subscriptions
- On top of the requirements above, also configure partner details in the 2Checkout Control Panel and use their unique partner ID when importing new subscriptions.
- Merchants can see partner information at the subscription level so that they can identify this information for imported subscriptions as well.
Data format and structure
To import:
- Package the data as CSV (comma-separated values) file.
- Include the mandatory items described below on the header line and populate values where information is also required.
When importing subscriptions, you should keep in mind that the processing capacity of the browser supports about 2500 lines in the csv file, and anything more than this threshold might result in failure. Thus, we recommend that you import batches lower than 2500 lines.
Field name |
Type |
Required |
Can be empty? |
Description |
---|---|---|---|---|
LicenseUniqueId |
string (max length 250 chars) |
Yes |
Yes |
Your unique identifier for the subscription. You can use the LicenseUniqueId to map identifiers in your own system with subscription IDs in 2Checkout. |
LicenceCode |
string |
No |
Yes |
System-generated 2Checkout unique subscription reference. When first importing subscriptions into the 2Checkout system, LicenceCode is not required. |
AvangateIdProduct |
numeric |
Yes |
No |
Must match the product ID of an item configured in the 2Checkout platform. |
PurchaseDate |
datetime |
Yes |
No |
Subscription purchase date. Format: yyyy-mm-dd hh:mm:ss. Default time zone is GMT +2. |
ExpirationDate |
datetime |
Yes |
No |
Subscription expiration date. Format: yyyy-mm-dd hh:mm:ss. Default time zone is GMT +2. |
ProductName |
String (max length 155 chars) |
Yes |
No |
The product name. |
Quantity |
numeric |
Yes |
No |
2Checkout renews subscriptions using this number of units. |
FirstName |
String (max length 40 characters) |
Yes |
No |
End-user first name. |
LastName |
String (max length 40 characters) |
Yes |
No |
End-user last name. |
|
String (max length 80 characters) |
Yes |
No |
End-user email. 2Checkout uses it to send out email notifications. |
IdPartner |
string |
No |
No |
The unique ID of the partner. This field is required and cannot be empty when importing Partner channel subscriptions. |
Language |
string |
Yes |
Yes |
ISO 639-1 two-letter code. 2Checkout sends out notifications in the language you assign to the subscription. Supported languages available are the ones activated for your account. When not provided, the default value is: en. |
ProductVersion |
String (max length 50 characters) |
Yes |
Yes |
Subscription product version. |
ProductExtra |
String (max length 100 characters) |
Yes |
Yes |
Product additional information. See sales links for details. |
Company |
String (max length 50 characters) |
Yes |
Yes |
Business customer company name. |
Phone |
String (max length 40 characters) |
Yes |
Yes |
End-user phone. |
Fax |
String (max length 40 characters) |
Yes |
Yes |
End-user fax. |
Address1 |
String (max length 100 characters) |
Yes |
No |
End-user address. |
Address2 |
String (max length 100 characters) |
Yes |
Yes |
End-user address (additional). |
Zip |
String (max length 20 characters) |
Yes |
No |
End-user zip code. Required when the provided CountryCode is "US". |
City |
String (max length 30 characters) |
Yes |
No |
End-user city. |
State |
String (max length 30 characters) |
Yes |
No |
End-user state. Required when the provided CountryCode is “US” |
CountryCode |
string (max length 2 characters) |
Yes |
No |
Two-letter customer ISO country code. |
ProductOptions |
string (max length 255 characters) |
Yes |
Yes |
Product options codes separated by "//". When specified, the product options codes must match pricing options of existing pricing configurations. |
ActivationCode |
String (max length 255 characters) |
Yes |
Yes |
The delivered activation code for the product. Activation codes have to be unique. |
ExternalCustomerId |
String (max length 255 characters) |
No |
No |
The identifier for same customer using one or more subscriptions. Cannot be empty if you include the header in the file. |
RenewalPriceListCode |
string |
Yes |
No |
Use this parameter to attach a specific price list to an imported subscription. The 2Checkout system uses the price list to calculate the costs for the renewal process of the subscription. You need to assign the price list to the partner defined using IdPartner and also assign the product set using AvangateIdProduct to the price list using the RenewalPriceListCode specified. 2Checkout validates the fact that IdPartner, RenewalPriceListCode and 2CheckoutIdProduct are linked. If you do not attach a price list to a subscription, 2Checkout uses the first pricing list assigned to the partner that also contains the product with which the subscription is associated. |
CardNumber | numeric | No | No |
Format: Please do not use spaces, dashes, etc. For example, enter 4111111111111111 for this credit card number: 4111 1111 1111 1111. Add the CardNumber field to the CSV file when importing credit / debit card data along with subscriptions. Placement of the CardNumber field in the CSV file does not impact the importing process. When no credit card numbers are provided, the 2Checkout system still imports the subscription, but without payment data. Only 2Checkout can import CSVs containing card data. Cannot be empty if you include the CardNumber header in the file. |
CardExpirationDate | numeric (max length 4 chars) | No | No |
Format: MMYY. For example, enter 0414 for April 2014. Add the CardExpirationDate field to the CSV file when importing credit / debit card data along with subscriptions. Placement of the CardExpirationDate field in the CSV file does not impact the importing process. When no credit card numbers are provided, the 2Checkout system still imports the subscription, but without payment data. Only 2Checkout can import CSVs containing card data. Cannot be empty if you include the CardExpirationDate header in the file. |
Value |
numeric |
No |
No |
Subscription value. The total costs incurred by the customer through the lifecycle of the subscription before you imported the subscription into the 2Checkout system. When you provide it you must also set ValueCurrency. 2Checkout uses this information to calculate the subscription value and total customer value. 2Checkout converts values into your account’s default settlement currency using the exchange rate at the time of the import, unless ValueCurrency is the same as the default settlement currency. |
FiscalCode | string | No | Yes | Business registration number (VAT ID/ ABN/ IRD/ GST) |
Test | numeric | No | Yes | Available only for eStore subscriptions. Use 1 to import a test subscription. Exclude the parameter or set the value to 0 to import regular subscriptions. Test subscriptions enable you to try out flows like manual and auto-renewal, and upgrade. Check out the documentation for additional details. |
ValueCurrency |
String (max length 3 chars) |
No |
No |
The currency associated to the subscription value. Mandatory when you also set the Value. |
AdditionalInfo |
String (max length 255 chars) |
No |
No |
Extra information that you can attach to a subscription, such as the source of the initial purchase. |
NextRenewalPrice |
numeric |
No |
No |
The future costs that subscribers would incur when renewing subscriptions. Accompany it with NextRenewalPriceCurrency and CustomPriceBillingCyclesLeft. |
NextRenewalPriceCurrency |
String (max length 3 chars) |
No |
No |
The currency associated with the subscription next renewal price value. Mandatory when you provide NextRenewalPrice. |
CustomPriceBillingCyclesLeft |
numeric |
No |
No |
The number of billing cycles for which 2Checkout uses a custom renewal price you set up. Mandatory when you also provide NextRenewalPrice. |
SubscriptionStartDate |
datetime |
No |
No |
Subscription start date. Format: yyyy-mm-dd hh:mm:ss. Default time zone is GMT + 2. |
IdAffiliate |
numeric |
No |
Yes |
Unique affiliate identifier from the 2Checkout platform. Use the ID to commission a specific 2Checkout Network affiliate for subscription renewal charges. Possible values:
When this column is missing or its corresponding values are empty, 2Checkout does not change the affiliates attached to the subscriptions. |
LastPurchasePrice |
numeric |
No |
Yes |
Last purchase price (The amount paid by customer on last order placed for an existing subscription). |
LastPurchasePriceCurrency |
string |
No |
Yes |
Last purchase price currency. |
LastRenewalPurchaseDate | string | No | Yes | Last purchase date. |
For custom imports, contact 2Checkout.
Card data validation
The 2Checkout system handles syntax validation of card type, number, and expiration date. 2Checkout does not pre-authorize the cards during the import process. You cannot import credit/debit card info for non-recurring (lifetime) subscriptions.
Workflow
- Contact 2Checkout Support with a request to start the migration process and follow through the compliance assessment process.
- Either create or have the third-party you’re working with build the subscription data CSV file.
- Upload the file to a designated SFTP account provided by 2Checkout.
PGP encryption
You must encrypt all transfer of sensitive payment data, including when working with 2Checkout to import card information. Use the following PGP public key:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Avangate Security
mQENBFIvGacBCAC5VjxgDm17PEbs3tk5AvLafZQi2WemOW4Q4TjiqpvBFXREx2Pu
eF9xdCFUS1iemZHQEmHi1U3KHD3kXnVrR1f893Fjgi2yC7E/K9xec0jkHQRsHVCb
Qe9qtPtyQ1dVL6ORYW75CI+XW25LP8ozoSVT3oP31ZDbVQ9DpwvDUCaeajJGZo4w
a368G6HtkHuZTeb3bj14fJ5nxTfP12gV4P3fWCF1cOkFsYH/p4CYL+F0AQXHc0v5
B92opfhdbqtcr9d831utpZ9XR6tgsgTlPUNj6vxJmouEk6g691KEw019c53PyYp9
IVBM79kCisKENutSzzQWCcX6i2ECho1ojgB1ABEBAAG0Q0F2YW5nYXRlIFNlY3Vy
ZSBDYXJkIFRyYW5zZmVyIEVuY3J5cHRpb24gS2V5IDxpbmZvc2VjQGF2YW5nYXRl
LmNvbT6JARUDBRBXkMPaFGdJ8P2WfLMBAruICACsfqqGPM60tDHvIvpLJsEoqI6k
0M9Du8T5Q827c20AG7NPBVej7chPWjWYKvRDeTXms3aoUfMBJzsRsRXFGYvvwQaw
kP+RNh1QeEmKI4sY5zeGk9rTr1v22HtQej3ZDFTi7mjVCWitRLMKMDEqePwznQi/
BvVFnexLu2mbf4KiInOQk0Zvfb1fOu/qloPkr34XBrLWR7yV8JUozE3rwz0PLsB6
pMonaggYJbvwDrjaxVepByei0pLjNlgVEnuDmAkuFdZx1oPwBqLOoqPX5D9CVTjR
6YLxGbpRy1Re3i0vErXbqx5hsbzKHCm+ZdQjQEzW36MFozJULH3tMxtEVZWwuQEN
BFIvGacBCAC118s+ZEZSaLAn3jFGbqIBio7PmIrDF23gVj+FR9X4wVOtq9DVSGd8
IlOcxFbrhBRzRKKgG2tAmCFzXbx4nyf3h2ALb1zO6Iw5n6q2IfQ+NZqeO/lPDlOt
SXnubqxwwuIGHABK0XYjvzd8Jv5pxcl03hLoIRt6sFi66a0cRvpKl315t7nbFmpw
J87lzQU3laIIEqwzi2jNKe7zw1vAJrn7YxEVVaNsAxTI6ZBEYx4TtFPXLV0i6ZF+
oAQTrF3qyagR3ZRZMdB1EKBHsvmlPwr7BUML2+LVm96+G7yw5T9LIHrblEjN9mXZ
5ckcWd7Bu117DyRp48mpDab2we3fLbt/ABEBAAE=
=ZYWv
-----END PGP PUBLIC KEY BLOCK-----