cancel
Showing results for 
Search instead for 
Did you mean: 

Unique billing address using CIM and authorize.net SDK

We use authorize.net for our AIM transactions and we are trying to implement CIM transactions as well.  

We are using the following authorize.net sdk:

https://github.com/AuthorizeNet/sdk-php

 

To create a payment profile we are using the following function:

createCustomerPaymentProfile

The function can be seen in the following url:

https://github.com/AuthorizeNet/sdk-php/blob/master/lib/AuthorizeNetCIM.php

 

The CIM modules are created without issue with the correct information and I'm able to access them in sandbox.authorize.net

 

The problem that we are having is that I can create multiple CIM profiles with the same expiration date, same Credit Card number and different billing addresses.  However, we want to make sure that the billing address is unique for each Credit Card number.  When I try to create a Credit card with the same billing address, same credit card number but different expiration date then I get a 'duplicate card' error message (which is good).  However, I would like to get the same error message if I try to create a Credit card with the a different billing address and the same credit card number and expiration date.

 

Looking at the pdf below,

http://www.authorize.net/content/dam/authorize/documents/CIM_XML_guide.pdf

It states that the billing address should be unique and that a duplicate error message should be displayed if a new CIM is created with the same Credit card and expiration but different billing address.

 

How can I make it so that the billing address is unique and a new Credit card is not created with the same Credit card number and expiration date?

 

Thank you

Felipe

Felipe
Member
4 ACCEPTED SOLUTIONS

Accepted Solutions

 

Hi Felipe,

 

A duplicate transaction error will occur when one of the fields mentioned here is matching. We do not have any API functionality that will automatically let you achieve what you are trying to do. This is something you will need to track on your end and do the necessary actions.

 

Thanks,

Joy

View solution in original post

Joy
Administrator Administrator
Administrator

Thank you Joy for your reply.

Just one more question that hopefully you can answer as well.  I'm trying to use the following function to validate CIM profiles on creation:

validateCustomerPaymentProfile

This works great for expiration dates, however for billing addresses it does not.  From my understanding a credit card is associated with a billing address.  If the billing address does not match what is associated with the card then there should be an error message.  However, (in production mode) I can create a CIM profile with an incorrect billing address and validateCustomerPaymentProfile function does not give out an error about the billing address being incorrect.  

 

I'm using the following guide to implement this functionality:

http://www.authorize.net/content/dam/authorize/documents/CIM_XML_guide.pdf

Starts at the end of page 19:

liveMode—This value is the default setting. liveMode generates a transaction to the processor in the amount of $0.01 or $0.00. If successful, the transaction is immediately voided. Visa authorization transactions are changing from $0.01 to $0.00 for Note Parameters required for individual API calls are in addition to the authentication parameters required for all API calls.  All other credit card types use $0.01. Standard gateway and merchant account fees may apply to the authorization transactions. For Visa transactions using $0.00, the billTo address and billTo zip fields are required.

 

This states that the billTo and zip fields are required however it does not say if they have to be correct.  

 

I validating billing address against the card information something that validateCustomerPaymentProfile does not do?

 

Thank you

Felipe

View solution in original post

@Felipe, are you testing in the sandbox or using a production gateway account?  The sandbox does not validate addresses as it does not actually connect to a processor.

 

Richard

View solution in original post

Richard,

Thank you for the reply.  We decided not to validate billing addresses untill after auth transaction.  Apparently validating billing addresses can cause huge frustation to customers sometimes

 

thanks again

Felipe

View solution in original post

4 REPLIES 4

 

Hi Felipe,

 

A duplicate transaction error will occur when one of the fields mentioned here is matching. We do not have any API functionality that will automatically let you achieve what you are trying to do. This is something you will need to track on your end and do the necessary actions.

 

Thanks,

Joy

Joy
Administrator Administrator
Administrator

Thank you Joy for your reply.

Just one more question that hopefully you can answer as well.  I'm trying to use the following function to validate CIM profiles on creation:

validateCustomerPaymentProfile

This works great for expiration dates, however for billing addresses it does not.  From my understanding a credit card is associated with a billing address.  If the billing address does not match what is associated with the card then there should be an error message.  However, (in production mode) I can create a CIM profile with an incorrect billing address and validateCustomerPaymentProfile function does not give out an error about the billing address being incorrect.  

 

I'm using the following guide to implement this functionality:

http://www.authorize.net/content/dam/authorize/documents/CIM_XML_guide.pdf

Starts at the end of page 19:

liveMode—This value is the default setting. liveMode generates a transaction to the processor in the amount of $0.01 or $0.00. If successful, the transaction is immediately voided. Visa authorization transactions are changing from $0.01 to $0.00 for Note Parameters required for individual API calls are in addition to the authentication parameters required for all API calls.  All other credit card types use $0.01. Standard gateway and merchant account fees may apply to the authorization transactions. For Visa transactions using $0.00, the billTo address and billTo zip fields are required.

 

This states that the billTo and zip fields are required however it does not say if they have to be correct.  

 

I validating billing address against the card information something that validateCustomerPaymentProfile does not do?

 

Thank you

Felipe

@Felipe, are you testing in the sandbox or using a production gateway account?  The sandbox does not validate addresses as it does not actually connect to a processor.

 

Richard

Richard,

Thank you for the reply.  We decided not to validate billing addresses untill after auth transaction.  Apparently validating billing addresses can cause huge frustation to customers sometimes

 

thanks again

Felipe