Authorize.net - Automated Recurring Billing (ARB) & Address Verification Services (AVS) - authorize.net

I have setup Authorize.net's Automated Recurring Billing in a system I have built, which works great.
The only downfall is when someone puts in bad billing information, AVS is not checked (and it returns successful). It only creates the account, and the payment will fail at the first time it is billed, which is often the next day.
How can I catch the bad billing information before we complete the transaction?

Use AIM to process the first payment. That way you know the card is valid before setting up the subscription and can perform AVS and CVV verification. If you don't want to charge the first payment, then do an AUTH_ONLY with AIM to accomplish the same effect.

Related

ACH validation in run time

I have validated the credit card in Authorize.net using the authOnlyTransaction method. I have also the option of ACH validation but there are some problems in validating that may be because of lack of knowledge in payment domain.
I tried to use the authorize.net but i have to specify the amount first.
It does not validate all the credentials but only routing number and bank name
I have to wait 2-3 days for the verification from the bank regarding the payment.
Question is, is there any method which i can use to validate the ACH
on my webpage when user hit the verify button ? I have also tried to use the plaid but in the documentation it states that this also required some days to valid. Any kind of help would be much appreciated.
There is no way to get real time verification of a bank account through Authorize.Net. ACH works differently than credit cards and this is one of the limitations of it (the upside being lower cost associated with accepting ACH payments).
Plaid does offer account verification through an API which returns an immediate result. Plaid is not free, however.
If you provide a service or product and accept ACH payments, and don't want the risk associated waiting from verification that the account is valid or pay fees, then you should postpone allowing access to that service or shipping your good until payment clears. Otherwise, a service like Plaid is what you are looking for.

Issue with verifying cvc in gcloud

i used my uncle's credit card to signup with google cloud platform for free tier avaliance .It is not verifying cvc/ccv but it charged 50 ruppes for verification then i cancel it and it automatically redirects to project creation and a project also created.After some time it shows in upper part that your project violate our policy and giving a form documentation for verification. country-INDIA, cc-HDFC BANK
In the official documentation says this:
After signing up, you might notice a $0-1 transaction from Google, which is a pending authorization request between our billing system and the bank that issued your credit or debit card. Authorizations might be converted to local currency by your bank, and these transactions might appear as pending on your statement for up to a month. Please keep in mind they are authorization requests only, not actual charges.
That means it is not a real charge just a check.
If you have any other doubt about it, talk with your bank or contact to Google Cloud Billing Support

Transcations, API's and Designing for Failure

I have been working on an application that needs to log credit card transactions which is dependent on using an external API. Within my application, I have the concept of an invoice with a total, and a transaction that when successful credit card payment is made, deducts from this total.
This is more of a platform independent question, but I am working with Django, Python and MySQL.
My question centers mainly around the use of transactions when dealing with external API's and how to design your software to handle potential failures. Both Django and MySQL support transactions, so that in itself is not an issue, but suppose the following scenario:
Credit card submitted though the payment API
Credit card is successfully processed
This response is then logged to the database as a payment on that invoice
There is an error saving the payment to the database for one reason or another
What do you do now?
If there was not an API call involved the answer would be clear, rollback the database transaction and raise an error. But having a call to an external API complicates matters, because this is not really a way to rollback on the external API call.
I am interested if anyone has run into this issue (for credit cards, or similar types of transactions) and how they addressed the problem, or in general some approaches for software design in this case.
It's hard to manage this in software. However, if your payment gateway is calling a callback to signify that the transaction is successful, it will presumably log an error if that callback fails to complete, and you should be able to configure it to alert you in that case, perhaps by email. Then it's up to you to rectify the situation manually.

Authorize.net ARB API Integration Question

I'm integrating with Authorize.net's ARB API. Authorize.net processes their transactions at a certain time everyday, so when people create a subscription, their transaction is not real time.
I am creating a subscription based model, does their API tell me whether their CC has been processed? Or should I put a delay on the access to my site until they have processed all the ARB transactions that day.
Thanks in advance!
You should be charging their first subscription payment via the AIM API. This will give you instant feedback as to whether or not the payment was good. Assuming it was successful you then can use ARB to create their subscription by setting the start date to be the date of their next scheduled payment.
This serves two purposes:
If the card is bad you know immediately and can have the user provide a new card while they are still on your website. Once they leave your site it gets much more difficult to get them back to correct it.
You can give them instant access without worrying about whether or not their card is approved or not.
FYI, you can use Silent Post to determine the status of payments made via ARB.

recurring billing /w cvv2

I'm implementing a payment system and I'm not sure how to deal with cvv2 codes. Our service offers a two week free trial. We require the user to enter in billing information and we auth their card for $1. Two weeks later we do a separate auth & capture (we can't do a prior_auth_capture because the user can upgrade their plan during their trial). We bill them each month from then on.
How am I supposed to use the cvv2 code in our situation? We're not supposed to store the cvv2 code, so I can only use it with the auth that we initially do. Is it worthing doing this just on the auth still? I don't want the first auth to succeed (because it has the cvv2) and then prior auth + captures to fail because we don't keep it around.
Long story short I'm new at this company and I'm trying to fix their billing problems. International customers in particular are getting payments declined (some, not all). The current system doesn't pass along the name on the card to auth.net nor does it do any sort of address verification, which I suspect is what's giving international customers trouble.
I would think using cvv2 (if it'll work in our situation) and sending the actual name on the card should remedy the issue for international customers. If not then address verification would be the next thing to try? Does this make sense? Sorry if my thoughts are a bit scattered.
Thanks!
Sending the name on the card is useless as it not received nor used by the card processing companies. Also, AVS won't give anyone trouble except for the company who pays the credit card processing bills as their fees will be much higher for not doing it.
With Authorize.Net you should be using their ARB system for recurring payments. Once the subscription is established you don't have to do anything until the subscription runs out or is cancelled. This includes handling CVV and AVS issues. If you choose to use their AIM API for each and every payment then you'll have issues as you'll need to capture the CVV number for every transaction if you wish to perform CVV on those transactions. Of course, CVV is not required to process a transaction, so if you don't submit it the transaction will still go through anyway.
If international card holders are having issues it's more likely because the card is international and higher risk then then AVS or CVV issues. Those two tools are for fraud detection on your end. Not card approval by the processors.