We’ve helped companies, such as Engine Yard, complete the migration process from Zuora to Chargify.
The process is outlined below:
Engine Yard wanted to move from Zuora to Chargify, making use of the Authorize.net gateway. Because Zuora has its own credit card vault, Engine Yard’s customer credit card data was stored in Zuora’s card vault rather than in a third-party payment gateway.
Zuora was not able to provide the data directly to the payment gateway, as Authorize.net does not typically perform imports from other vaults. While other gateways may be able to receive the file directly from Zuora and tokenize the cards, Authorize.net requires the merchant to use their CIM (Customer Information Manager) API to import the card numbers.
This left Engine Yard with the following options:
Receive the credit card information directly from Zuora, use the Authorize.net CIM API to tokenize the cards, and then use the tokens to perform an import into Chargify. Because credit card data can only be handled by a Level 1 PCI Compliant entity, this option would raise Engine Yard’s PCI compliance needs.
Receive the credit card information directly from Zuora and perform the import into Chargify. This option also raises Engine Yard’s PCI compliance needs, as they would still be handling/storing the full credit card numbers.
Import the subscriptions into Chargify without a credit card number and require all existing customers to re-enter their credit card information in Chargify.
Allow Chargify to receive the credit card information from Zuora on their behalf, and import it directly into Chargify. This option doesn’t increase PCI compliance needs for Engine Yard, since the full credit card information is being sent directly to Chargify, a Level 1 PCI Compliant entity.
Engine Yard chose Option 4: to have Zuora send the card data directly to Chargify.
Having Chargify import the subscriptions saved Engine Yard the time and hassle of having to go through a PCI audit OR asking all of Engine Yard’s customers to update their credit card information.
Chargify has secure SFTP servers set up and ready to receive credit card information from legacy system vaults. The information that Zuora exports is simply a CSV file with full credit card numbers and an internal Zuora ID. All other subscriber information (name, address, credit card expiration, etc.) needed to be exported from Zuora separately by Engine Yard.
- Engine Yard was able to compile all information related to the subscriber (with the exception of the credit card number), and generate a second file in the required Chargify CSV format.
- Each subscriber in the Zuora file that contained the credit card information also had the internal Zuora ID number.
- A custom script was developed to merge the Zuora credit card file with Engine Yard subscriber file using the internal Zuora ID found within both files.
- After merging the files, the subscribers were ready to be imported into Chargify.
- When importing via CSV, it is recommended to limit each import to 100 subscribers. A second script was developed to split the merged file into separate 100 line files while preserving the column names in the header line.
- Once the files included 100 subscribers each and formatted correctly, Chargify began the process of importing subscribers.
- During the import, any errors or issues were noted and tracked. Any subscriptions that were not successfully created initially were either corrected, if possible, or provided as a list to Engine Yard for reference.
Approximately 1,750 subscribers were imported into Chargify. The total cost of the import for Engine Yard was $2,393.
Development, testing, and executing the custom scripts was done at a rate of $499/hr with a total of 1.5 hours of work. The CSV import, data correction, and import retries was done at a rate of $299/hr with a total of 5.5 hours of work.
Total project cost was kept relatively low because Engine Yard compiled their customer and subscription data in the Chargify CSV Import format, leaving Chargify to merge the credit card file with the properly formatted CSV file for import.