cancel
Showing results for 
Search instead for 
Did you mean: 

Sandbox createCustomerPaymentProfileRequest creating duplicate credit cards with different exp dates

I've been doing some testing of our process to convert existing credit cards into CIM payment profiles.

 

When duplicate credit card information (same PAN, first name, last name, zip, street, expiration date) is used, a duplicate payment profile error is generated, as documented.   However, when the expiration date is different, then a duplicate payment profile is created.   According to the "Duplicate Profile Verification" section of the documentation at http://developer.authorize.net/api/reference/features/customer_profiles.html, expiration date should not be considered when creating payment profiles.

 

Here are the requests submitted -- only the expiration date differs. [Note that I changed the last name to "Smith" as the original request had a real customer's name in there.]

 

This resulted in payent profiles 1500345142 and 1500345143 in the sandbox both attached to Customer Profile ID 1500558408.  Examining them in the sandbox again shows that only the expiration date differs.

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<createCustomerPaymentProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
    <merchantAuthentication>
[censored]
    </merchantAuthentication>
    <clientId>sdk-java-1.9.0</clientId>
    <customerProfileId>1500558408</customerProfileId>
    <paymentProfile>
        <billTo>
            <firstName>Jon</firstName>
            <lastName>Smith</lastName>
            <address>123 Street</address>
            <city>Fairbanks</city>
            <state>AK</state>
            <zip>99701</zip>
            <country>United States of America</country>
        </billTo>
        <payment>
            <creditCard>
                <cardNumber>370000000000002</cardNumber>
                <expirationDate>2017-01</expirationDate>
            </creditCard>
        </payment>
    </paymentProfile>
    <validationMode>testMode</validationMode>
</createCustomerPaymentProfileRequest>

 

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<createCustomerPaymentProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
    <merchantAuthentication>
[censored]
    </merchantAuthentication>
    <clientId>sdk-java-1.9.0</clientId>
    <customerProfileId>1500558408</customerProfileId>
    <paymentProfile>
        <billTo>
            <firstName>Jon</firstName>
            <lastName>Smith</lastName>
            <address>123 Street</address>
            <city>Fairbanks</city>
            <state>AK</state>
            <zip>99701</zip>
            <country>United States of America</country>
        </billTo>
        <payment>
            <creditCard>
                <cardNumber>370000000000002</cardNumber>
                <expirationDate>2020-02</expirationDate>
            </creditCard>
        </payment>
    </paymentProfile>
    <validationMode>testMode</validationMode>
</createCustomerPaymentProfileRequest>
mkienenb
Contributor
2 REPLIES 2

 

Hi mkienenb,

 

When creating a customer profile, the customer data is verified for duplicate check. It is important to know that when updating a profile the duplicate check does not happen. For example if you created two different profiles then update them to match, the duplicate check will not occur.

 

Thanks,

Joy

Joy
Administrator Administrator
Administrator

As you can see from the posted xml, these were two separate createCustomerPaymentProfileRequest transactions that differed only by expiration date.  Expiration date is not supposed to be a factor in duplicate profile detection.  There is no update involved.