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. Can be empty only if you supplied the LicenseUniqueId. 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: 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). Note: When provided, it must be accompanied by LastPurchasePriceCurrency. |
LastPurchasePriceCurrency | String | No | Yes | Last purchase price currency. Note: Mandatory when LastPurchasePrice is provided. |
LastRenewalPurchaseDate | String | No | Yes | Last purchase date. |
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-----
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
=Y5Ea
-----END PGP PUBLIC KEY BLOCK-----