Adding the Authorize.net Integration
To add the Authorize.net integration to your form, go to Settings > Integration Hub > Payments and click "Add" next to the Authorize.net icon.
If you do not have an Authorize.net account yet, you can sign up for one here first. After you add the integration, an Authorize.net tab should appear below the Integration Hub tab and the settings should appear.
You will need to enter your API Login ID and API Transaction Key. To find these, log into your Authorize.Net account, click on Support and then click on Account > Settings > Security Settings > API Login ID and Transaction Key.
Mapping Form Fields to the Integration Settings
Since Authorize.net is an on-form payment processor, you must have a create card field and an expiration date field on your form to submit to Authorize.net. You will also need at least one field that contains a price value.
Note: The price submitted to Authorize.net MUST be greater than 0 or the integration will fail. If you need to accept submissions with $0 as the price you'll need to add routing logic to your Authorize.net submit action.
There's plenty of optional data you can pass on to Authorize.Net as well, such as shipping, tax, card verification code, and customer information.
Authorize.net allows for single payments or Subscription (recurring) payments (Authorize.Net ARB Service sign up required). You will need to decide how often the customer is charged (Billing Cycle) and how many times (Total Occurrences).
Note: Recurring Payments DO NOT happen in real time. They are processed at around 2:00AM PST on their scheduled payment dates. Therefore the first scheduled transaction will not be sent to the customer's bank for authorization until 2:00AM PST on the start date that you specified. If you create a start date equal to the creation date, the first scheduled payment will not process until after 2:00AM the following day.
Handling Multiple Items
You can also set your form up to pass info for multiple items to Authorize.Net instead of a single item.
If you choose to map to multiple items, EACH item with a price needs to be in it's own separate field with it's own quantity field if that is applicable.
When setting up your integration, change the "Item list" to "Multiple Items" then add an item for each product you're selling on your form. Map the individual price fields and (if applicable) the associated quantity fields. If you don't map a quantity field it will default to "1".
The integration will do the math for you behind the scenes: (Item 1 Price x Item 1 Quantity) + (Item 2 Price x Item 2 Quantity) and so on...
Note: You must have at least one price field mapped in order for the integration to turn on.
After you have your mapping in place, you'll also need to adjust your security settings since you are accepting payment information on the form. SSL must be enabled under Settings > Security, and if you're storing the credit card number in the Formstack database (not recommended, but optional in the Authorize.net integration settings), you need to enable data encryption as well.
Under the Settings > Emails & Redirects tab in the After the Form is Submitted section, a Submit Action will automatically be created to "Submit to Authorize.net." You can add Routing Logic to this Submit Action if you only want to send to Authorize.net if, for example, the users chooses "credit card" instead of "check" on a "Payment Type" field you have added to your form. Click here to learn more about offering multiple payment options!
There are two servers you can use with Authorize.Net, our Live server or our Developer server. Our Live server works with both your normal Authorize.Net account's live and test modes. Our Developer server only works with an Authorize.Net sandbox/developer account, not a regular Authorize.Net account in test mode. You can use Formstack in Live mode and your normal Authorize.net account in Test mode, however.
You can choose to "Allow Submission If Integration Fails" to ensure you still receive all submitted data even if the integration failed. With this box checked, ALL submissions will be added to the database whether or not their payment was successful. This could be problematic if you only want to send Confirmation Emails to those who have successfully paid or only want to receive Notification Emails for those who have paid.
There is also a box to include an email address if the integration fails (recommended). This email will be sent by Authorize.net and will include details for why the submission failed. If you add multiple email address to this field, make sure you put them each on a separate line (no commas).
Can I Change the Endpoint to (Insert Random Authorize.Net Reseller Here)?
What method are you using to integrate with Authorize.Net?
We're using the Advanced Integration Method (AIM).
Authorize.net offers eCheck processing - Can I use the Formstack Authorize.net integration to process payments via electronic check?
Not at this time.