Reply
Highlighted
Contributor
Posts: 11
Registered: ‎11-17-2012

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

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

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

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

This seems like a gaping hole in the CIM implementation that still exists 4 years later.

 

Seems like a fairly common usage pattern to allow Customers to use existing saved cards or enter new card details.

With the current CIM implementation if the Customer enters a new card that happens to already exist we as developers are out of luck.

Seems to be there is no 100% guaranteed way to find the existing payment profile other than looping through them and comparing the last 4 of the card number and hoping it isnt' likely they have two cards with same last 4.

Is there a way to file an official bug request with the development team?

 

 

Highlighted
Member
Posts: 5
Registered: ‎01-13-2015

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

[ Edited ]

What a shame for authorize.net.

4 years and no update ?

 

Highlighted
Member
Posts: 1
Registered: ‎08-23-2015

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

B"H

 

As of now, it seems the API currently DOES return the Payment Profile ID. 

See below:

<?xml version="1.0" encoding="utf-8"?>
<createCustomerPaymentProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
   <messages>
      <resultCode>Error</resultCode>
      <message>
         <code>E00039</code>
         <text>A duplicate customer payment profile already exists.</text>
      </message>
   </messages>
   <customerProfileId>36723225</customerProfileId>
   <customerPaymentProfileId>34783893</customerPaymentProfileId>
</createCustomerPaymentProfileResponse>

 

Highlighted
Member
Posts: 1
Registered: ‎03-28-2016

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

There is no profile ID in my response. Is it because I use sandbox?

 

<?xml version="1.0" encoding="utf-8"?>
<createCustomerProfileResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<messages>
<resultCode>Error</resultCode>
<message><code>E00039</code>
<text>A duplicate record with ID 40093076 already exists.</text>
</message>
</messages>
<customerPaymentProfileIdList />
<customerShippingAddressIdList />
<validationDirectResponseList />
</createCustomerProfileResponse>

Highlighted
Member
Posts: 2
Registered: ‎06-29-2017

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

This is rediculous! Why have a sandbox if it doesn't work? Zero support and they claim to have award winning customer service. I followed the examples and all I get is this in the sandbox:

 

{
"customerProfileId": null,
"customerPaymentProfileIdList": [],
"customerShippingAddressIdList": [],
"validationDirectResponseList": [],
"refId": null,
"messages": {
"resultCode": 1,
"message": [
{
"code": "E00039",
"text": "A duplicate record already exists.",
"PropertyChanged": null
}
],
"PropertyChanged": null
},
"sessionToken": null,
"PropertyChanged": null
}

Highlighted
Member
Posts: 2
Registered: ‎06-29-2017

Re: CIM createCustomerPaymentProfileRequest duplicate entries problem

Okay, I figured out that the home address and customer office address cannot be the same or you'll get the: 

 

"code": "E00039",
"text": "A duplicate record already exists.",

 

I guess Authorize.Net doesn't take into account that some people have a home office?

 

List<customerAddressType> addressInfoList = new List<customerAddressType>();
customerAddressType homeAddress = new customerAddressType();
homeAddress.address = address;
homeAddress.city = city;
homeAddress.zip = zip;


customerAddressType officeAddress = new customerAddressType();
officeAddress.address = address;
officeAddress.city = city;
officeAddress.zip = " zip;