Authorize.net is one of the payment gateways that are supported by us. When you're running a business, and are using Billsby to handle automatic payments, you may come across some invoices that are marked as unpaid, meaning that the scheduled payment was unsuccessful for whatever reason. As a business owner, you'll want to know what happened, and what you need to do to chase up the payment.
The first thing you'll want to do is to check the logs of your payment. For a scheduled payment that failed, you'll have access to this log via the invoice itself! If you head to Customers > The profile of the customer who had a failed payment > Invoices you can see a history of all the invoices that the customer has, and they'll be marked with the relevant status - look for the one that is unpaid and click on it's Linked transactions, then click on the resultant arrow facing right to view the log.
Or navigate to Logs > Transactions to view a history of all your company transactions, including those from a new customer having issues signing up. Once you've found the individual transaction you want to see, click on the '>' arrow to view the log.
This will open the transaction log's details in a menu from the right-hand side of the screen, where you'll be able to see all of the information we have received about the transaction from your payment gateway.
To find out more on the reason why the payment failed or declined, click on the Payment gateway response code section to open it. You will be shown the error code and any additional details we've received.
This article will go through some of the most common reasons for failure, and how you can help resolve them!
E00007: Authorize.net Identification details are not correct
In this scenario, it means that the information provided to Billsby to integrate your Authorize.net account are either outdated or were inputted correctly. You'll want to keep a note of your API login ID, and your Transaction Key, as these are the 2 pieces of information that we need. If you've already connected your Authorize.net account, but added another software using a new transaction key, then the one you have in Billsby will be outdated. Either way, if you receive this error, all you need to do is re-integrate your gateway! You can do so by following these steps:
Navigate to Settings > Configuration > Payment Gateways:
Press the + button on your chosen payment gateway
Fill in the relevant details and press Add New Gateway (Rename the new payment gateway as New Payment Gateway)
Make sure to save changes.
Navigate to Settings > Configuration > Currencies
Assign the currency to the new payment gateway
Go back to the payment gateway page and delete the old payment gateway
E00008: Authorize.net account is inactive
In this scenario, it means that for some reason your Authorize.net account is not eligible to be taking payments. You would need to reach out to Authorize.net directly for advice and resolution as they will have a good understanding of why this happened.
E00009: Using a live Authorize.net account in Test Mode is not permitted
In this scenario, your Authorize.net has been marked as being in "Test Mode", which means you won't be able to process payments - all you need to do here is change the status of your authorize.net account back to Live Mode in your Account > Settings > Test mode menu.
If you're unsure how to do this, Authorize.net has some documentation on it here, or you can reach out to the team at Authorize.net and they'll be able to point you in the right direction.
E00014: Authorize.net form fields being marked as required
In this scenario, you'll receive an error that states ''one of the required fields was not present". What this means is that within your fraud settings in Authorize.net, where you configure your payment form requirements, a direct requirement of that field is being required, but not obtained at checkout. Billsby has our own set of required fields that are pre-done in the checkout, and these don't intertwine with Authorize.net's settings, so here you just need to disable all the fields marked as required after going to Account > Settings > Payment form > Form fields in your Authorize.net account.
E00027: Authorize.net fraud detection suite
Sometimes, Authorize.net's fraud settings collide with Billsby's, resulting in transactions being declined incorrectly. To resolve this issue, please follow these steps:
Check for fraud alert emails from Authorize.net
Review your fraud settings in your Fraud Detection Suite
Disable any fraud detection suite controls that you do not require:
This will help stop any additional fraud settings stopping a transaction. Any further fraud detection issues should be taken up with Authorize.net directly as they'll understand why it happened.
I00001 - '2' : Transaction was declined
This is one of the most common decline codes - but it doesn't mean there's anything wrong with your set-up like previous errors. In this scenario, the customer's card-issuing bank declined the transaction for some unknown reason to us or Authorize.net. You'll want to get the customer to contact their bank for further resolution.
I00001 - '27' : Address mismatch
You may get the error that the billing address isn't correct. It's important to note that the address you or the customer provides to Billsby must be the Billing Address assigned to the card - This may mean that the customer's card is registered at a separate address, and as such when you're re-entering the address you'll want to use that address rather than the one the customer is currently living at. Additionally, it could mean the address has been entered incorrectly on certain lines.
I00001 - '34' : VITAL identification numbers are incorrect
In this scenario, you'll be told to talk to your merchant service provider. This is your merchant account that you linked up to your Authorize.net account. You'll want to contact both the merchant account and Authorize.net in order to make sure the correct information is being passed over.
I00001 - '38' : Global Payments System Identification Numbers are incorrect
This means that the merchant probably wasn't set up correctly at the processor, in this case Global Payments. You'll need to contact your MSP, which is the institution where you got your merchant account from, or you can reach out to Authorize.net directly. Explain the error to them and they should be able to figure out what wasn't set up properly.
I00001 - '252' or '253' Held for review by the merchant
If you've noticed an invoice is displayed as ‘Paid’ and the transaction is displayed as ‘Success’ in Billsby but it is declined in your Authorize.net, check the Payment gateway response for the transaction for error '252' or '253', these responses indicate the payment has been approved and processed by Authorize.net, however it has been held for manual review by you - the merchant.
What does 'Held for Review' mean?
Simply put, ‘Held for Review’ means that the transaction must be manually reviewed by you before it can be settled, so you'll need to manually update the status of each transaction that’s held for review in your Authorize.net account.
When is a transaction ‘Held for Review’?
Being able to manually review payments can help you identify potentially fraudulent transactions. Using Authorize.net’s Advanced Fraud Detection Suite you can set up rule-based transaction filters to flag transactions that could be fraudulent.
There are several different filters that you can enable/disable in your Tools > Fraud Detection Suite such as Hourly Velocity Filter, Transaction IP Velocity Filter, Enhanced AVS handling filter, Enhanced CCV Handling and more
For each configured and enabled filter, a Filter Action can be performed if the criteria you've configured for it is met. There are four filter actions you can choose from when configuring your filter settings:
Process as normal and report filter(s) triggered - When this action is selected, transactions that trigger this filter are processed as normal, but are also reported in the Merchant Interface as triggering this filter.
Authorize and hold for review - When this action is selected, transactions that trigger this filter are sent for authorization, and upon successful authorization are placed in the Authorized/Pending Review state. Once in Authorized/Pending Review, you will have 30 days to manually review and either approve or void the transaction. If no action is taken in the 30-day period, the transaction will expire.
Do not authorize, but hold for review - When this action is selected, transactions that trigger this filter are placed in the Pending Review state prior to being sent for authorization. Once in Pending Review, you will have 5 days to manually review and either approve or decline the transaction. Once you approve the transaction, it is sent for authorization. If no action is taken in the 5-day period, the transaction will expire.
Decline the transaction - When this action is selected, transactions that trigger the filter will be declined automatically prior to authorization. This is the most severe action the user can take for a transaction.
Note: In the event that a transaction triggers more than one filter, and each filter is configured with a different action, the most severe filter action will be applied to the transaction. For example, you might configure filter A to decline all triggered transactions, and filter B to authorize but hold all triggered transactions. If a transaction triggers both filters A and B, it will be declined rather than authorized and held for review.
You can read more on Authorize.net's Fraud Detection Suite in their documentation
Transactions are only held for review when either the ‘Authorize and hold for review’ or the ‘Do not authorize, but hold for review ‘ Filter Actions are selected to occur when the criteria are met. For example:
If you enabled the Transaction IP Velocity Threshold filter and configured it to only allow 10 transactions from the same IP address per hour, then set the Filter Action to '‘Do not authorize, but hold for review’. If more than 10 customer transactions from the same IP address occurred in an hour, the next one would trigger the filter action and the transaction would be held for review.
Why are transactions that are ‘Held for Review’ in Authorize.net marked as ‘Paid’ in Billsby?
We cannot do callbacks after we've received an initial response from the gateway. The initial response from Authorize.net, in this case, is that they have ‘accepted’ the transaction so in Billsby the transaction status will be marked as ''succeeded'' and we will mark the invoice as 'Paid'.
We have plans to implement a feature that would give the user the ability to manually review invoices and transactions in Billsby in a coming update but ultimately we’re unable to know whether the user decided to approve or reject a transaction that was held for review without callbacks. You can add a vote for this feature to be implemented here and you'll automatically be updated on its progress.
How can I prevent transactions from being held for review?
You can prevent transactions from being held for review by changing the Filter Action on ALL of your enabled Fraud Detection Suite Filters to either ‘Process as normal and report triggered filter(s)' or ‘Decline the transaction’. or disabling the filters entirely.
Please keep in mind that 'Process as normal and report triggered filter(s)' will only report the event to you, all transactions that meet the filter criteria will be automatically approved whereas ‘Decline the transaction’ will automatically decline all transactions that meet the filter criteria.
To do this, follow the following steps:
Navigate to Tools > Fraud Detection Suite in your Authoirze.net account and disable any fraud detection filters or settings you do not require.
Then navigate to the settings of any enabled fraud detection filters you do require and review its configuration, ensuring you've set the correct criteria for the filter.
Scroll down to the Filter Actions and select either the ‘‘Process as normal and report filer(s) triggered’’ or the ‘‘Decline the transaction’’ option depending on which is most suitable for your business's fraud prevention requirements.
Finally, click the 'Save' button. Remember you'll need to change the Filter action for every Fraud detection filter you have enabled in your Authorize.net account.
For any existing transactions that are 'Paid' in Billsby but still 'Held for review' in authorize.net, you should manually approve the transaction in your authorize.net account if possible. For any existing transactions that are 'Paid in Billsby but 'Declined' in Authorize.net, you'll need to attempt to re-capture the payment within your Authorize.net account or reconcile directly with the customer to avoid any further impact on your reporting in Billsby.
Unfortunately, we won't be able to alter the status of an invoice or transaction in Billsby if it's been held for review in authorize.net
Invoices marked as ‘Paid’ in Billsby but ‘Voided’ in Authorize.net
In Authorize.net after a transaction has been successfully accepted and the payment captured, it must wait to be settled. Authorize.net has several statuses that one of their transactions can hold before it is finally marked as ‘Settled’ such as ‘Captured/Pending Settlement’ (This can take up to 24 hours.)
During that period, the transaction status can be manually set as ‘Voided’ in Authorize.net, stopping it from being fully settled. Since we cannot get callbacks to know whether the transaction is ultimately ‘Settled’ the invoice will always be marked as ‘Paid’ in Billsby. Transactions with the ‘Voided’ status have been voided and will never be sent for settlement. No further action can be taken for a voided transaction.
Alternatively, if you've refunded an invoice in Billsby before the payment reached the final ‘Settled’ status in Authorize.net, you may notice the status of the transaction has been updated to ‘Voided’ in Authorize.net.
In Billsby, we create a separate credit note for refunded payments and we'll mark both the original invoice and new credit note as 'Paid' if they've been successfully processed.
Authorize.net updates the existing 'transaction' status rather than creating a new one for refunds. When payment hasn’t been settled, the customer has been charged but the funds have not been received by you yet, so there might not be a balance to ‘refund’ the customer. Rather than waiting for the transaction to settle and then be marked as 'refunded' in Authorize.net, the transaction status may be updated to 'Voided' instead.
You can find more details on all of Authorize.net’s transaction statuses and what they mean in their documentation
Other issues
In the event that none of these errors match your error, please refer to Authorize.net's Reason codes documentation. Simply type the error code you've received into the Search bar to find additional information on why your payment might have failed.
You can also reach out directly to Authorize.net's support team, who will be able to help you resolve any issues with your account.
If you need more help with interpreting your transaction log, please get in contact with our Support team with:
The last 4 digits of the card
The last name of the customer on the card
The ZIP code
And our team can help you figure out what's going on and how to resolve it!