cancel
Showing results for 
Search instead for 
Did you mean: 

Get Customer Profile(CIM integration) By ID or email

Hello all,

 

I want to fetch the details or Auth.Net Customer Profile ID. But I am unable to find any method in API which allows me to fetch this detail using email or by any customer specific parameter.

 

All I know is the function getCustomerProfileIdsRequest() but this returns all the Customers' details which is extremely time consuming process when running applications online. I just checked getCustomerProfileRequest() but this requires profile ID which we have not saved in our Database so we cannot use it later.

 

My requirement is to fetch the Auth.Net CIM profile & payment profile for that specific customer only who has logged in and tries to make a payment.

 

Please suggest.

hinatabassum
Member
9 REPLIES 9

Any idea anyone? :mansad:

hinatabassum
Member

Hi there,

 

There is currently no way to retrieve a profile through the API without the profile ID. It's best to store the profile IDs that are created somewhere on your own systems so that you can easily refer to them later if needed. As you already noted, you can use getCustomerProfileIdsRequest, but that will return all of your IDs.

 

You can, however, search for a profile by email address through the CIM interface in the Merchant Interface. To do so, log in at https://account.authorize.net and click Customer Information Manager from the main menu on the left. Then enter the email address you wish to search for, select Email from the dropdown and click Search. Any profiles associated with that email address will display in the search results.

 

Thanks,

 

Michelle

Developer Community Manager

Michelle
All Star

Hi,

 

Initially I have implemented AIM payment method but my client reported that it is holding credit card, transaction amount. And he suggested that USE CIM…

 

Now I have implemented CIM XML but he is reported that it is still holding the amount against a person’s credit card.

 

He spoke to Authorize.net and they said we can program it to authorize for only $1, ($0 for Visa). That way, it only holds only $1 or $0 on a person’s card; yet still validates that a valid card is being used.

 

Authorize.net cannot tell us how to do it, but they said it’s possible.

 

Can someone help me to fix this issue…..

squreshi
Member

It sound like you are doing the createCustomerProfileTransactionRequest.

All you need is when you create or update an customer payment profile, set validationMode to livemode, so it will validate the cc# with a authorize only transaction with the $.01 or $0.

Then when you are ready to charge the full amount, do the createCustomerProfileTransactionRequest.

Hi everyone,

 

 

According to PCI Compliance Can we Store "Profile_Id" and "Payment_ProfieId" on our database?

 

 

yes, it just an id.

This is, frankly, unbelievable.

 

While an intelligent system will store the association between local ID and customer profile ID in its database, this precludes an effective or efficient mode of error recovery-- for example, if there is a power failure (or a database crash, or a webserver crash, or a network failure, or a hardware failure) at the data centre between when the user was created remotely and the ID was stored locally.

 

This means that the only way to recover an orphaned client ID is:

 

1. By manually looking up the ID in the CIM interface. This is not an acceptable solution because it is not automatable.

 

2. By retrieving ALL customer profile IDs, excluding ones for which a record exists locally in the DB, and individually querying the non-excluded set, individually, from the remote system, comparing the information in each to the local username which one is attempting to recover. Not only is this approach costly in both time and computing resources, but it is unnecessarily complex, and therefore, unnecessarily error-prone.

 

Due to the extreme expense of this operation, this means that it is impossible to defensively code against the possibility of failures as a rolling recovery measure; the code must either have a path which is specifically triggered by detection of candidate failures (which is a heuristic, and thus error-prone process-- great, now we're compounding one error-prone process with another!), or the rocovery must be done by hand.

 

Prior this point I might have recommended this API; I can't do that with so glaring an omission, though obviously I'll continue to implement it for customers who specifically require it. It's merely a stupid omission, and not an outright dangerous one.

I also need this feature as we are combining CIM and DPM. It would be wonderful if we can get details of customerProfileId with just CustomerId. I am not at all conviced to either store the CustomerProfileId (PCIDSS Compliance) in the database or go through all ProfileIds (time consuming). It has been many years since the first post, so I am just curious to explore other possibilities.

 

Is there any plan of introducing this API in near future?

FYI, if you call

CreateCustomerProfile(new CustomerProfileType(){ email = "Same Email", merchantCustomerId = "Same ID" }); 

 you'll get an error giving you back the ID: A duplicate reccrd with ID XXXX already exists.