Heads up! We’ve retired this plugin in favor of a new Authorize.Net plugin with the latest features.
Please check out our WooCommerce Authorize.Net plugin.
Overview
↑ Back to topPlease note: This plugin requires that you have an SSL certificate installed and active on your site. Not sure which Authorize.Net gateway is right for you? Check out the Authorize.Net Extension Comparison Guide.
Installation
↑ Back to top- Download the extension from your dashboard
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
- Click Install Now, and then Activate
- Go to WooCommerce > Settings > Checkout > Authorize.Net and read the next section to learn how to setup and configure the plugin.
Requirements
↑ Back to top- An Authorize.Net account
- PHP 5.3+ (You can see this under WooCommerce > Status)
Setup and Configuration
↑ Back to topObtain Credentials from Authorize.Net
You need to have an active gateway account with Authorize.Net and follow the following steps to get your API credentials.- Go to Authorize.Net
- Click on “Account Login” on the top-right
- Enter your Login ID and Password then press Log In
- From your home page, click on the Account Menu
- In the left hand menu Account section click on “Settings”
- In the Security Settings section click on “API Login and Transaction Key”
- Your API Login ID will be displayed on this page, which will be copied and entered in the extension settings:
- To create a new Transaction Key, answer the security question at the bottom of the page, check the “Disable Old transaction Key(s)” checkbox and press Submit.
- Your new Transaction Key will be displayed on the next page – copy this transaction key, and enter it along with the API Login on the extension settings page:





Extension Settings
↑ Back to top
- Enable / Disable – This will enable the gateway to be used by customers to checkout.
- Title – This is the text shown for the payment during checkout and on the Order Received page.
- Description – This is the text shown under the title during checkout. Limited HTML is allowed. If you enable test mode, this section will also display a notice along with test credit card numbers.
- Card Verification (CSC) – Enable this to require customers to enter their CVV / CV2 (Card Security Code) when checking out. This can be useful if you have requirements in your Authorize.Net account for CV2 verification.
- Transaction Type – This controls how transactions are submitted to Authorize.Net. You may choose either “Charge” or “Authorization”. If you select “Authorization”, you must manually capture and settle payments in your Authorize.Net control panel or on the WooCommerce orders screen after the transaction has been submitted. This defaults to “Charge”.
- Charge Virtual-Only Orders – (Shown if Transaction Type is set to “Authorization”) Enable this to force charges on order containing only virtual items so they’re captured immediately instead of authorized (for example, to grant download access right away)
- Capture Paid Orders – (Shown if Transaction Type is set to “Authorization”) Enable this to automatically attempt to capture transactions when orders change to a paid status.
- Accepted Cards – This controls the card logos that display during checkout. This is purely cosmetic and has no affect on the cards actually accepted by your merchant account.
- Detailed Decline Messages – Enable to display detailed messages to customers to provide reasoning for declines when possible instead of a generic error message.
- Debug Mode – Enable this is you are having issues correctly processing transactions. You can either log API requests / responses directly to the checkout / thank you page, save them to the WooCommerce Error Log (found under WooCommerce > System Status > Logs) or both. All debugging messages are cleaned of sensitive information before display, but as a best practice, please do not enable this unless you are having issues with the plugin.
- Environment – Switch between “Test” and “Production” credentials. Enable “Test” to send transactions to your Authorize.Net Test Account. Note: This is not the “test mode” that is listed under your Authorize.Net account. This is an entirely separate sandbox environment that requires a separate login. You can sign up for a test account here. Once you have done this, you can enter a separate API Login ID and API Transaction Key for your test account. Do not place your Test Account (or regular account) into “Test Mode” within the Authorize.Net control panel as transactions will not process at all if that mode is set.
Connection Settings
- Share connection settings – Enabling this will allow you to use connection / authentication settings between the credit card and eCheck gateways. If this is enabled, you’ll have to enter your Authorize.Net API Login ID and API Transaction Key under the eCheck settings.
- API Login ID – This is the API Login ID for your Authorize.Net account (Test or Production). Follow the steps above to get this.
- API Transaction Key – This is the API Transaction Key for your Authorize.Net account (Test or Production). Follow the steps above to get this.
- Accept.js – Enable this to use Accept.js to send card information directly to Authorize.Net and minimize PCI compliance scope.
- Client Key – If Accept.js is enabled, enter the Client Key generated for your account. Follow the instructions below to generate a client key.
eCheck Settings
↑ Back to top
- Enabled – This will enable the eCheck gateway to be used by customers to checkout. IMPORTANT – You must have eChecks enabled on your Authorize.Net account for this to function correctly. Follow the process below under eCheck Issues to get eChecks setup and enabled.
- Title – This is the text shown for the eCheck gateway during checkout and on the Order Received page. This defaults to “eCheck”.
- Description – This is the text shown under the title during checkout. Limited HTML is allowed. If you enable test mode, this section will also display a notice along with a test bank account number.
- Environment – Switch between “Test” and “Production” credentials. Enable “Test” to send transactions to your Authorize.Net Test Account. Note: This is not the “test mode” that is listed under your account. This is an entirely separate sandbox environment that requires a separate login. You can sign up for a test account here. Once you have done this, you can enter a separate API Login ID and API Transaction Key for your test account. Do not place your Test Account (or regular account) into “Test Mode” within the Authorize.Net control panel as transactions will not process at all if that mode is set.
- Share connection settings – Enabling this will allow you to use connection/authentication settings between the credit card and eCheck gateways. If this is disabled, you’ll have to enter a new Authorize.Net API Login ID and API Transaction Key for eCheck transactions.
- Debug Mode – Enable this is you are having issues correctly processing transactions. You can either log API requests / responses directly to the checkout / thank you page, save them to the WooCommerce Error Log, or both. All debugging messages are cleaned of sensitive information before display, but as a best practice, please do not enable this unless you are having issues with the plugin..
Merchant Usage
↑ Back to topPlease note that Authorize.Net Emulation only supports basic payment processing features. It does not support the advanced features like capturing charges and refunds listed below, as these are only available for the AIM plugin mode.
Capture Charges from WooCommerce Order Admin
↑ Back to topAutomatic Refund Support
↑ Back to topVoid Transaction Support
↑ Back to topAuthorize.Net Emulation
↑ Back to top

Extension Settings
↑ Back to top- Enable / Disable – This will enable the gateway to be used by customers to checkout.
- Title – This is the text shown for the payment during checkout and on the Order Received page.
- Description – This is the text shown under the title during checkout. Limited HTML is allowed. If you enable test mode, this section will also display a notice along with test credit card numbers.
- Card Verification (CSC) – Enable this to require customers to enter their CVV / CV2 (Card Security Code) when checking out. This can be useful if you have requirements in your Authorize.Net account for CV2 verification.
- Transaction Type – This controls how transactions are submitted to Authorize.Net. You may choose either “Charge” or “Authorization”. If you select “Authorization”, you must manually capture and settle payments in your Authorize.Net control panel or on the WooCommerce orders screen after the transaction has been submitted. This defaults to “Charge”.
- Accepted Cards – This controls the card logos that display during checkout. This is purely cosmetic and has no affect on the cards actually accepted by your merchant account.
- Debug Mode – Enable this is you are having issues correctly processing transactions. You can either log API requests / responses directly to the checkout / thank you page, save them to the WooCommerce Error Log (found under WooCommerce > System Status > Logs) or both. All debugging messages are cleaned of sensitive information before display, but as a best practice, please do not enable this unless you are having issues with the plugin.
- Environment – Switch between “Test” and “Production” credentials. Enable “Test” to send transactions to your Authorize.Net Test Account. Note: This is not the “test mode” that is listed under your Authorize.Net account. This is an entirely separate sandbox environment that requires a separate login. You can sign up for a test account here. Once you have done this, you can enter a separate API Login ID and API Transaction Key for your test account. Do not place your Test Account (or regular account) into “Test Mode” within the Authorize.Net control panel as transactions will not process at all if that mode is set.
- Payment Gateway URL – The Gateway URL for the Authorize.Net gateway processor. Optionally, this URL can be changed to a different processor that allows Authorize.Net emulation.
- API Login – This is the API Login for your Authorize.Net account (Test or Production). Follow the steps above to get this. If you’re using this gateway for Authorize.Net emulation, then this will be the API Login provided to you by your payment processor.
- Transaction Key – This is the API Transaction Key for your Authorize.Net account (Test or Production). Follow the steps above to get this. If you’re using this gateway for Authorize.Net emulation, then this will be the API Transaction Key provided to you by your payment processor.
Other Information
↑ Back to topeCheck Support
If you have enabled eChecks on your Authorize.Net account and within the plugin settings, customers will have the option to pay via Credit Card or eCheck. eCheck requires the customer to enter their bank routing number and bank account number. The billing first and last name entered during checkout is used as the Name on Account.Accept.js Support
↑ Back to top- Log into your Authorize.Net Account and go to Account > Settings.
- Click on “Manage Public Key” in the “Security Settings” section.
- If you already have generated a Client Key, you can copy it. If not, generate a new key by answering your security question and clicking “Submit” to generate the new key.
- Copy your new Client Key and paste it into the plugin settings.
Enhanced Checkout Form
↑ Back to top
Detailed Decline Messages
↑ Back to topApple Pay
↑ Back to topTroubleshooting
↑ Back to topXMLHttpRequest cannot load https://jstest.authorize.net/v1/AcceptCore.js. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://youstore.com' is therefore not allowed access.This is expected by Authorize.Net and does not indicate a problem (transactions will process perfectly fine and are secure), annoying as it may be, which you can see here:
Right now I can tell you that the CORS warning “cannot load” is actually correct behaviour in that it’s alerting the fact that the page cannot call our core js library only the Accept.js library. So that will not impact functionality (we are nonetheless looking at ways to stop the browser doing this).
Authorize.Net Error Codes
↑ Back to topResponse Code = 4
will be approved, but can be cancelled manually in the WooCommerce admin and Authorize.Net Merchant Area area later if they fail review.
Be sure to have “Partial Authorization” turned off in your Authorize.Net Merchant Area. This will restrict orders with with Response Code = 4
and Response Code = 295
from being approved. “Allow Partial Payments” is off by default, but to verify it is off, follow these steps:
- Login to your Authorize.Net Merchant Area
- Press “Account” in the top toolbar
- Under the “Transaction Format Settings” area click on “Partial Authorization”
- Verify “Allow Partial Payments” is not checked
Required Field Errors
↑ Back to top(E00027) - The transaction was unsuccessful. Error Code: 33 - [Field Name] is required.
, your Authorize.Net account is likely setup to require a field that our plugin cannot send. These errors can occur on orders, refunds, and void transactions.

- Login to your Authorize.Net Account.
- Go to Account > Payment Form > Form Fields.
- Uncheck the Required boxes for all fields.
- Click Submit.
eCheck Issues
↑ Back to top[Code 246] - This eCheck.Net type is not allowed
. To get this setup, follow these steps:
- Set up an eTicket and ask for the ‘WEB’ eCheck type to be enabled (be sure you are an account owner and know your gateway ID).
- WEB transactions are usually enabled within 2 business days, but there is a funding hold automatically placed on your account — you can take funds in, but not get them out, until you pass another security check with the underwriting department.
- To expedite the process, call them on the phone and they will check out your website while on the line with you. They will look to make sure you have a valid SSL on cart/checkout, and prominently placed terms of use and privacy policy pages.
- Once you meet those requirements, the funding hold should be removed.
Refund Issues
↑ Back to topOops, you cannot partially void this order. Please use the full order amount.This means that you’re trying to perform a partial refund, but the charge has not been settled (typically when you try to refund within a day of the purchase). The plugin tries to void this order since the funds have not been transferred (to cancel the order instead of refunding it), but Authorize.Net does not permit partial voids. Please wait until the charge has settled (about one day after the charge was made) to refund this transaction.
Authorize.Net Test Credentials
↑ Back to topFrequently Asked Questions
↑ Back to topQ: Can I accept subscriptions for Authorize.Net using ARB with the AIM extension? A: At this time, accepting subscriptions using ARB with Authorize.Net AIM is not possible. Implementing ARB support is not optimal, as notifications for failed subscription payments are not reliable and this issue could cause significant problems for stores using this method. We recommend that you check out the Authorize.Net CIM extension for Subscriptions support instead.
Q: Can I process automatic refunds with eChecks or Emulation? A: Unfortunately this is not possible with eChecks or with Authorize.Net Emulation. Refunds can automatically be processed from WooCommerce with a credit card purchase via AIM, but not for an eCheck purchase.
Q: My customers get email receipts from WooCommerce and Authorize.Net. How do I get rid of Authorize.Net receipts? A: The plugin cannot disable these for you, but you can disable these emails in your Authorize.Net account — click here for instructions.
Q: How do I capture a higher amount than what is authorized (like a restaurant)? A: Authorize.Net (along with most any eCommerce payment processors) cannot do this with card-not-present transactions (which is what online payments are). Captures can only be up to the value of what’s authorized: “As soon as the product is shipped, the merchant can capture an amount up to the amount of the authorization.” When gas stations and restaurants do this, they’re using a particular POS system that gives them a certification to capture a certain percentage over the authorized amount. This isn’t available with eCommerce systems to be able to capture amounts higher than what’s authorized, so this is not possible on your WooCommerce site.
Q: Authorize.Net supports Apple Pay for web payments. Can I use this in my store? A: This plugin does not support Apple Pay by default, as the set up process to use Apple Pay with Authorize.Net is not possible for most merchants to complete independently. If you work with a developer, please review the setup tips and requirements here, as the plugin does have tools developers can use to enable Apple Pay.