cancel
Showing results for 
Search instead for 
Did you mean: 

Retrieve Credit Card Type of Payment Profile using CIM

Hi, 

 

For our own accounting purposes, it is necessary for us to know the type of card that was used for each transaction on our site. However, I cannot find any way to retrieve the credit card type of an associated customer payment profile using CIM. 

 

Is there a way to get this information without having to create a lookup table in our database to store it locally every time a payment profile is created or updated?

 

Thanks in advance for your help.

djdestasio11
Member
20 REPLIES 20

The first digit(s) of the number will tell you which kind of card it is.

 

3 = Amex

4 = Visa

5 = MasterCard

6011 = Discover Card

 

If you want a more comprehensive list see Wikipedia.


-------------------------------------------------------------------------------------------------------------------------------------------
John Conde :: Certified Authorize.Net Developer (Brainyminds) :: Official Authorize.Net Blogger

NEW! Handling Authorize.Net's Webhooks with PHP

Integrate Every Authorize.Net JSON API with One PHP Class (Sample code included)

Tutorials for integrating Authorize.Net with PHP: AIM, ARB, CIM, Silent Post
All About Authorize.Net's Silent Post
stymiee
Expert
Expert

Okay, I did know that. However, I wasn't aware that I could get the entire card number back from CIM unmasked after the profile has been created in order to view the first digits of the card.

 

How do I accomplish this?

 

Thanks

I don't know where you heard that but it's not true. You cannot get the unmasked number back from CIM or any other API.


-------------------------------------------------------------------------------------------------------------------------------------------
John Conde :: Certified Authorize.Net Developer (Brainyminds) :: Official Authorize.Net Blogger

NEW! Handling Authorize.Net's Webhooks with PHP

Integrate Every Authorize.Net JSON API with One PHP Class (Sample code included)

Tutorials for integrating Authorize.Net with PHP: AIM, ARB, CIM, Silent Post
All About Authorize.Net's Silent Post

Exactly my point... which is why the suggested solution of using the first digits of the card to determine the type doesn't work. 

 

My question was -- is there a way with the APIs to determine the type of card that belongs to a payment profile WITHOUT having to keep a local lookup table that associates each payment profile to a given credit card type when the profile is created -- that seems rather absurd. 

 

We are able to recognize the card type when a new payment profile is created without an issue. What we need is a way to charge a profile that already exists and associate a card type to our local transaction record. Since we don't keep numbers locally and there is no way to get the unmasked credit card -- the only way to make this work that I know of is to create the aforementioned lookup table. 

 

My question is, is there an easier way to via the APIs to get the credit card type of an existing payment profile. We don't care about the number -- in fact, the whole point of us using Authorize.net is that we don't want to know it after it's been created. 

 

We have two distinct merchant accounts and it matters to us what type of card is used for the transaction so that we can match correctly match the transaction to the merchant account. 

 

Make sense?

I ran into this need/problem recently as well. here's what I've found from poking around.

 

the cim webservice wsdl ( https://api.authorize.net/soap/v1/Service.asmx?wsdl ) indicates you should be able to get the cardType from the credit card info (CreditCardMaskedType) nested in the response to the GetCustomerPaymentProfile call.  unfortunately, this doesn't seem to produce any information.

 

if you need to get card types for specific transactions, you should be able to get that info from the directResponse/AIM response to a CreateCustomerProfileTransaction, if you want to store it at the time of transaction.  Alternatively, you can use the new Transaction Details API ( http://www.authorize.net/support/CP/helpfiles/Account/Settings/Security_Settings/transaction_details... ), once you've enabled it on your account.  the response to GetTransactionDetails has a CreditCardMaskedType nested inside it, that is indeed populated with the cardType.  So, that would allow for retrieval after-the-fact, if that suits your needs.

 

for a little more detail:

- for a GetTransactionDetails call, cardtype will be in response.transaction.payment.creditCard.cardType

- for GetCustomerPaymentProfile, it will be in response.paymentProfile.payment.creditCard.cardType

 

If I am understanding correctly - you have more than one merchant account for card payments - does that mean you have more than one auth.net account? If not can one auth.net account map to more than on merchant account? I always presumed that you could only use one auth.net account with one merchant account. This is very interesting....

 

Even beyond that - is it possible to use accounts stored on one CIM (using one set of keys) on a different auth.net payment account (ie. a different set of keys) - I had always presumed CIM profiles needed to be used on the same account they were created....

 

TSdotNet
Trusted Contributor

The card type is returned in the 52nd field of the delimited direct response returned with any createCustomerProfileTransactionResponse.

 

There isn't a method, that I am aware of, of obtaining the card type of a payment profile without storing it locally on your end or processing a transaction and receiving the response that includes this data.

 

 

Thank you,

 

Elaine

Elaine
Trusted Contributor
Trusted Contributor

I am curious as to why the CardType information shows up for CreateCustomerProfileTransaction, but does not show up in GetCustomerPaymentProfile ?

I'd love to hear an answer for this as well, since the property is there - but is always returned as null.