1
votes

I'm trying to do some testing on a sandbox account and having issues adding payment methods using the minimum fields according to the documentation (http://www.authorize.net/support/CIM_XML_guide.pdf), but I seem to need at least the address and ZIP. The following are two redacted versions of the XML I am sending.

This is the functional one that responds back with a good status:

<?xml version="1.0" encoding="utf-8"?>
<createCustomerPaymentProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
    <merchantAuthentication>
        <name>XXXXXXXXXXXX</name>
        <transactionKey>XXXXXXXXXXXXXXXX</transactionKey>
    </merchantAuthentication>
    <customerProfileId>XXXXXXXX</customerProfileId>
    <paymentProfile>
        <customerType>individual</customerType>
        <billTo>
            <address>123 Main Street</address>
            <zip>12345</zip>
        </billTo>
        <payment>
            <creditCard>
            <cardNumber>4007000000027</cardNumber>
            <expirationDate>2015-09</expirationDate>
            </creditCard>
        </payment>
    </paymentProfile>
    <validationMode>liveMode</validationMode>
</createCustomerPaymentProfileRequest>

But when I take away the address and ZIP fields form the payment profile section, it fails, informing me of missing fields.

<?xml version="1.0" encoding="utf-8"?>
<createCustomerPaymentProfileRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
    <merchantAuthentication>
        <name>XXXXXXXXXXXX</name>
        <transactionKey>XXXXXXXXXXXXXXXX</transactionKey>
    </merchantAuthentication>
    <customerProfileId>XXXXXXXX</customerProfileId>
    <paymentProfile>
        <customerType>individual</customerType>
        <billTo>
        </billTo>
        <payment>
            <creditCard>
                <cardNumber>4007000000027</cardNumber>
                <expirationDate>2015-09</expirationDate>
            </creditCard>
        </payment>
    </paymentProfile>
    <validationMode>liveMode</validationMode>
</createCustomerPaymentProfileRequest>

What am I missing here? Are these fields not actually optional?

2

2 Answers

1
votes

So after doing some more digging and reading it turns out that for Visa cards a $0.00 transaction requires the billTo address and zip fields. From page 14 of the CIM XML guide "For Visa transactions using $0.00, the billTo address and billTo zip fields are required."

0
votes

Check your settings to make sure you are not rejecting transactions that fail AVS. By omitting the address and zip code AVS cannot be performed and will always fail.