Solved

Authorize.NET timeout when creating a subscription

Posted on 2014-04-28
1
452 Views
Last Modified: 2014-05-29
We created a payment process using Authorize.NET integration method. We downloaded the PHP library from authorize.net to handle passing transactions and receiving errors/transaction codes.

The process is two fold: create a direct sale transaction for the initial month, then create a recurring subscription for each month following. We were instructed to do it this way by Authorize.net instead of just creating a subscription that starts immediately because subscriptions were not processed immediately on their end, but instead many hours later. What we found was that if the card info was bad (address, etc), we would not find out right away (subscription is created and not processed for awhile, even if set to start today), which in the case of users subscribing online is a problem. We were advised to create an initial transaction for the first month to get immediate verification the transaction will go through, and then create a subscription for subsequent months.

Normally, there is no problem. However, every once in a while, the subscription fails, even though there is no problem with the card. The direct sale always goes through, then the system follows this up by creating a subscription and there is no response from Authorize.net. I have tweaked the system to run the subscription code in a loop for up to 25 attempts to create a subscription, but the subscription always fails. We then login manually to the authorize.net site and create the subscription ourselves, without any issue.

Originally this problem occurred when we processed several transactions quickly, but lately it happens randomly when no transaction has been processed for an entire day. However, we always process the direct sale and then immediately after create the subscription. So far authorize.net has no solution for us as they claim in these instances that no request to create a subscription is coming through.

I have logs generated by the system showing the creation of the subscription request and attempting to pass it to authorize.net, the requests are the same when everything works and when the subscription request fails.

I am currently thinking that the creation of the direct sale immediately followed by the subscription could be the problem. I know there are checks in place to prevent duplicate transactions, there may be checks against many transactions in sequence at once. In our case, we're doing a direct sale and as quickly as the server can process, another transaction to create the subscription. Perhaps a block on their end is preventing the subsequent subscription. That is why I changed the code to attempt for up to 25 times to create the subscription, but that isn't helping. I can change the code to wait a period of time in between attempts, but we do no want users waiting long periods of time to get their successful confirmation. Also it would be good to know that this is the problem before any further changes are introduced.

Any ideas on what can be going wrong, what we can show to authorize.net to get them to resolve the problem? It's a hindrance to the automation of our subscription system. If there is something amiss with the system on our end, I would like to get it resolved.

Thank you for any help you can provide.
0
Comment
Question by:dageyra
1 Comment
 
LVL 29

Accepted Solution

by:
coreybryant earned 500 total points
ID: 40089737
I am currently thinking that the creation of the direct sale immediately followed by the subscription could be the problem. I know there are checks in place to prevent duplicate transactions, there may be checks against many transactions in sequence at once. In our case, we're doing a direct sale and as quickly as the server can process, another transaction to create the subscription.
To one extent, the issuing banks do not like subscriptions because they are not authorized technically by the consumer - meaning the consumer does not hit "Submit" or "Authorize" for February's subscription.  
We were instructed to do it this way by Authorize.net instead of just creating a subscription that starts immediately because subscriptions were not processed immediately on their end, but instead many hours later. What we found was that if the card info was bad (address, etc), we would not find out right away (subscription is created and not processed for awhile, even if set to start today), which in the case of users subscribing online is a problem. We were advised to create an initial transaction for the first month to get immediate verification the transaction will go through, and then create a subscription for subsequent months.
It sounds like the transaction succeeds, and a subscription transaction should not take a few hours.  And when you read on, you have a chance of that 2nd transaction failing.
And if you have Verified By Visa (VBV) or MasterCard Secure Code (MSC),
(I have not checked out some of this information in awhile, but I did call Visa / MasterCard about it six months ago.  And I will try to condense this some from my blog). If you are paying for VBV / MSC , the Visa transactions are protected from but that is it - well actually the 2nd one since the customer hits the "Submit" button, but if they stay for a year, you could be responsible for some chargebacks (what does it tell the customer since he / she has to hit submit twice?) :
Chargeback Reason Code 41 - Cancelled Recurring Transaction (The reason is simple - VBV / MSC require the cardholder's authentication.  And authentication is only done on the initial charge.  All recurring charges are usually completed by the electronic payment gateway and therefore, no cardholder authorization.)
Chargeback Reason Code 57 - Fraudulent Multiple Transactions
Chargeback Reason Code 72 - No Authorization
Chargeback Reason Code75 - Cardholder Does Not Recognize Transaction
With a MasterCard transaction, you are only protected if the consumer is enrolled.   If the credit card is Visa, and the cardholder is not enrolled in VBV, you can still be protected (as long as the transaction is not 41 or 75.  However, if the cardholder is in the United States with a MasterCard and not enrolled, you are not protected.  The MasterCard cardholder in the United States has to be enrolled for you to be protected. But if the cardholder is in another country, you are protected.

Some companies charge for this service, and some do not. Some charge for AVS (very old method of seeing if the credit card is the owner - when you have an address that does not match the shipping address, that should bring up a flag.

As far as finding out if the transaction fails hours later - that does not make sense.  For the most part, the customer enters the transaction, hits the electronic payment gateway, to the merchant, to the acquiring bank, the card network (Visa, MasterCard, etc) and then to the issuing bank for a confirmed or denied transaction. (I bet you did not think so many entities were involved :) )  Then the process goes back.  First Data tried to cut out the card networks for awhile if it had a relationship with both the issuing and acquiring bank - thus cutting out the card networks their piece of pie.

A couple of things - when you do two transactions, you are being charged for two transactions.  Now if you do a transaction for maybe $100.00, the consumer knows he has that money and that money is held for you until you run a batch.  Usually, if you don't process transactions daily, your transactions might be downgraded to non-qualified, so instead of being charge $2.09, you might be charged $3.09 (plus those transaction fees and maybe AVS fees - twice, since you ran the card twice).  Most issuing banks will hold that money for three business days.   (Debit) cards are sometimes held up to five days, which could really make that cardholder unhappy.  So if that merchant knows he has $100.00 and he expects to be charged $100.00, he does it (just curious what do your terms say about that).  Now sometimes the issuing bank might approve the transaction if the merchant has $90.00 left, but he is probably going to get an over the limit fee.

I would think that recurring billing (I think that charge for it, some do not) - would be used.  How are you charging each month? I always recommend my merchants to send out an email about one week to remind them.  But don't "remind"  them, let them know that you are grateful for their business.  If it is a magazine, maybe give then a couple of TOCs.  If it is software,  maybe put some of their stats or if you are adding something and you need beta testers, put that in there, and maybe offer them 50% of.  But you get  the idea - just don't say you are getting ready to be charged.  You might put in there that if your CC has changed, you can easily update it.
Any ideas on what can be going wrong, what we can show to authorize.net to get them to resolve the problem? It's a hindrance to the automation of our subscription system
Call Authorize.net again - they should know what the issue is.  And if they cannot answer, call again.  If they cannot answer, speak to a supervisor.  I can call a corporation 4 times and get 5 different answers.   If they cannot answer it, consider finding out what other gateways are available to you.   Also consider talking to the supervisor during the first call and find out why it takes several hours to get an answer and the issue with the two transactions.  That second transaction doesn't make sense.  Is it going into their recurring database? Why can't it go into the database the first time? That is usually what happens.  I have not read their book in awhile since I am focused on one gateway now.

Quantum Gateway / LinkPoint (First Data Global Gateway) know what the reason is.  I have conferenced merchants when I was selling  Linkpoint but I switched to another company / gateway because there is no monthly minimum.  First Data was charging $15.00 - $25.00 monthly fee, LinkPoint Gateway ($15.00 - $45.00 - so if the merchant doesn't process anything, he can be charged $70.00, Batch fees, ACH fees  These fee are made up by the agents - like the LinkPoint Gateway is $10.00 so anything over that, the agent gets.  With the other one, $8.00 a month, free gateway, recurring billing, MaxMind, VBV/MSC, and DialVerify.  I have seen it that when the merchant was ready to start, something happened, so they waived his $8.00 fee.

With just a little more, when you get a merchant account, try not to get into a year.  Sometimes they might offer you some deal, but if you are being over charged, and quit the lease, the merchant company can put you on the Terminated Merchant File (TMF) or now known as Member Alert To Control High Risk (MATCH).  A lot of chargebacks can put you on this list, or if you tell the processor that you are selling office products online but they find out it is a MLM scheme.   It is difficult to get a merchant account if you get on this list.  Sometimes if you move into a new office and the previous tenants got placed on the MATCH list, you will have to prove you are the one that did not have the account. Sometimes, if you closed your merchant account and some chargebacks came back, they can put you on the list.  Your first step is to always call them to see what is needed.  If a processor see you on this list, they usually will deny you, but some will want a deposit, while others will want a higher discount rate.  If you think you were put on this list for very wrong reasons, you can get a lawyer, but those that practice this type of law are very expensive.  Usually it can take a couple of days before the processor finds out, and you might have the account.  That is why I do not care for those that say "approved in 24 hours"

For most providers, $30,000 a month is the magic number.  If you think you might do $10,000, always add more.  Your business could take off and the provider might think you are doing something illegal and suspend you.  On the app, they usually ask you what your highest ticket might be.  Also be careful with this, talk to your agent and I also recommend calling the merchant account provider.  The agent is selling you a merchant account and you are $$$s him / her.  You are also money to the agent, but it is their money they are giving you.  For example, if you say $30,000 - you are basically asking to borrow that - a couple of examples:
I know a lot of people don't this about this, but let's say you put down $750 as your largest transaction that day.  Before batching, call your processor and let them know.  Get a name / employee ID number.  Don't call your agent, he can't help you - he / she would want a referral, they do not have access to your account.

Same goes with you going over your limit.  Most processors document you called and appreciate it (don't forget a name of employee ID).  If your monthly processing seems to be going up, call them and see what they need.  If you don't have any chargebacks (or just a couple), most will not matter.

Also, before hitting the gateway, add the Luhn's or Mod 10 algorithm - this will check to see if the credit card is correct (as far as numbers).  
There are a lot of codes out there, but checking the card to make sure it is Mod 10 could save you a transaction fee.
It is kind of like this: 4211 6880 3434 4563
The credit card number is reversed to: 3654 4343 0886 1124
1+(0)+3+(12)+2+(10)+5+(2)+0+(16)+8+(12)+1+(2)+2+(8) - the first number 3 is multiplied by 1 (3), the second number by 2 (12), the third by 1 (5), and so forth
Now the two digit numbers (like 12) are added together (4)
Now you get the sum together - 70.  Since this number is divided by 10, it is a correct credit card number
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Are you using email marketing software? If not, you're missing out on effortless marketing and the reaching of desired conversion rates through email marketing software.
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
Any person in technology especially those working for big companies should at least know about the basics of web accessibility. Believe it or not there are even laws in place that require businesses to provide such means for the disabled and aging p…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now