Reply
Highlighted
Member
Posts: 4
Registered: ‎05-25-2011

Get Customer Profile(CIM integration) By ID or email

[ Edited ]

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.

Highlighted
Member
Posts: 4
Registered: ‎05-25-2011

Re: Get Customer Profile(CIM integration) By ID or email

Any idea anyone? :mansad:

Highlighted
All Star
Posts: 1,072
Registered: ‎08-17-2009

Re: Get Customer Profile(CIM integration) By ID or email

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

Highlighted
Member
Posts: 1
Registered: ‎11-30-2011

Re: Get Customer Profile(CIM integration) By ID or email

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…..

Highlighted
Expert
Posts: 4,525
Registered: ‎03-08-2010

Re: Get Customer Profile(CIM integration) By ID or email

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.

Highlighted
Member
Posts: 7
Registered: ‎02-09-2013

Re: Get Customer Profile(CIM integration) By ID or email

Hi everyone,

 

 

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

 

 

Highlighted
Expert
Posts: 4,525
Registered: ‎03-08-2010

Re: Get Customer Profile(CIM integration) By ID or email

yes, it just an id.

Highlighted
Member
Posts: 1
Registered: ‎12-13-2014

Re: Get Customer Profile(CIM integration) By ID or email

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.

Highlighted
Contributor
Posts: 23
Registered: ‎01-09-2015

Re: Get Customer Profile(CIM integration) By ID or email

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?

Highlighted
Member
Posts: 4
Registered: ‎09-01-2016

Re: Get Customer Profile(CIM integration) By ID or email

[ Edited ]

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.