Recurring Billing Using Chargify and Beanstream


0 min read
Steve Krueger
Each payment gateway has its own particularities in how they are setup and configured. When your technology stack has many layers, how you configure each layer to communicate with its neighbours is as critical as it can be hard to debug.
Here's a little recipe on how to configure Beanstream to work with Chargify (inspired by a Chargify / community post).
We'll be assuming that you already have a Beanstream acount.
Contact Beanstream (or First Data which uses Beanstream in Canada) and ask for Secure Payments Profiles to be enabled. Note, there may be an extra cost for this functionality on live accounts. In the Beanstream admin interface go to Configuration -> Payment Profile Configuration. In the Security Settings section, locate the API access passcode field, click on the Generate New Code button. Save the configuration by clicking the Update button at the bottom of the form. Now go to Administration -> Account Settings -> Order Settings. In the Payment Gateway section, locate the Validation Options field and ensure that either Restrict Internet Transaction Processing Types is unchecked, or if it is checked, that the Purchase or Pre-Authorization only option is selected. In the following section (Security/Authentication), check the Use username/password validation against transaction field and enter a user name and password. Save the form. Now over to Chargify. Select your site and click the Settings tab. In the Payment Gateway option, select and configure Beanstream using your merchant id as well as the user name, password and API access passcode you generated in the previous step. That's it. You should be good to roll!
Notes
In the Configuration -> Payment Profile Configuration (step 2), if you uncheck the Do not allow profile to be created with card data duplicated from an existing profile, and Do not allow profile to be created with billing information duplicated from an existing profile options, you will only be able to use each Beanstream test card once for a given customer. For testing, you will have to clear the information to use it again under Processing -> Payment Profile. Make sure that both Beanstream and Chargify are set to use the same currency! Who wants a disgruntled accountant?! If you get the following error: "Validation greater than maximum amount", be advised that, by default, Beanstream sets the maximum transaction limit on test accounts to $1000. And if you get the following error: "Duplicate match on payment information", make sure that both Do not allow profile to be created with card data duplicated from an existing profile and Do not allow profile to be created with billing information duplicated from an existing profile in Configuration -> Payment profiles configuration are unchecked!