Showing results for 
Search instead for 
Did you mean: 

CIM createCustomerPaymentProfileRequest duplicate entries problem

Accoring to the CIM guide at PAGE 105 under "Duplicate Profile Verification",  when adding a new payment profile using "createCustomerPaymentProfileRequest", if the payment profile information is the same as a payment profile already in the customer profile, "then the payment gateway will return an error that contains the ID of the already-created profile." As far as I've been able to test, it does not work like the documentation states at all. All I receive back is "Error E00039 A duplicate customer payment profile already exists.", but I do not receive the crucial payment ID of the existing matching profile.


I absolutely need to get this existing payment id returned as there is no other way for me to compare newly entered CC info to a customer's existing profile because all CC info is masked out. (Customers do not [yet] store profiles in my system, but on certain recurring delivery orders, I first bill using AIM for the 1st transaction, then store their info in a CIM profile for subsequent transactions. If a customer returns and starts another recurring delivery order, they enter their CC info again, it will be billed via AIM, then go to CIM. If the payment already exists, I want to use the existing payment ID. If not, create a new payment profile.)




Okay nevermind. I can just pass an orderid as the merchandid or other autoincremented counter. D'oh!

Hey Augie,


Thanks for the heads up. It does appear that our documentation needs to be updated. Right now, using CIM, you can only get the error code with the duplicate ID for createCustomerProfileRequest, not createCustomerPaymentProfileRequest or createCustomerShippingAddressRequest. I'll send that on to documentation to get the corrected.


I'm also forwarding a request to product to let them know you all would like to receive the duplicate ID for payment profiles and shipping addresses as well. In the meantime though, it looks like Steve and Jacob have given you some really useful info to help out. Thanks much everyone!



Hi Augie


>> (I'm working with an off the shelf e-commerce system and I'd have to do quite a lot of recoding

>> to implement stored payment profiles/management so I'll save that task for later.)


AHA! So you're facing THAT can of worms... yes... been there, done that way too many times...  Not necessarily with payment gateways, though too many of those too....


>>It seems to me the only way I can possibly proceed with this is to dig in a spend a large

>>amount of time trying to add customer payment profile management to the e-commerce system.


Pretty much, looks like.....


I'm with you, I usually loathe trying to integrate into other peoples programs almost as much as they hate integrating into mine.  The biggest problem is figuring out where things are, seems like. Especially when global variables are.... well, no need to get started on that subject. :-)


OK Augie, keep plugging away, it sounds like the folks at authnet have noted the problem, hopefully we can get a change on this behavior sometime soon...






That will be great, thanks Mimi.


The Customer Profile dup message, "A duplicate record with id %d already exists.", is parsable but I would preferr to have customerProfileId be the duplicate number instead of zero. The same for the address and payment profile errors.


I would know it isn't a new ID because the resultCode is Error, and the MessagesTypeMessage code is E00039.

New to CIM as of today - and immediately ran up against this very irritating issue - which is incredibly easy to fix and a tremendous pain to work around.


At least in the case of duplicate payment profile detection you can go through all the profiles (from GetCustomerProfile) and check these fields to find the one that corresponds to your new profile. Fortunately in the implementation guide they tell you which fields are the 'primary key' of a payment method :


Just check these fields to find the dupe. If there are more than 1 records found then error out (this will be the case if two cards end in the same 4 digits at the same address - which hopefully is very unlikely).


customerProfileId, cardNumber, accountNumber, routingNumber, billToFirstName, billToLastName, billToAddress, and billToZip

This is very irritating. It's been 2 years since it is reported, there is still no fix.



Hey Mimi,


Did you have any update or any solution regarding this issue, As we are facing some critical issue in our design due to this. Also is there any way of to get the CustomerPaymentProfileExType ??


Please reply back ASAP.


Thanks & Regards,


I also find it very irritating, cause it's possible for user to create multiple PaymentProfiles with the same credit card number  and some different keyFields, so that finally it's even not possible to figure out, what PaymentProfile is being actually duplicated. It's 2013 now, and still no solution to this issue... Why?

As someone who just hit this problem today, it's a little annoying to see Authorize.NET has ignored a simple request for years now. I guess I'll loop through the last 4 and hope for the best?

Regular Contributor

facing this same issue as well, seems like something that could be easily fixed?