Account Name Inquiry

A Card Verification payment is a message sent by the acquirer to the issuer, using a zero (0) amount, for confirmation that a transaction can be completed using the card.

With the Account Name Inquiry, merchants can be informed if some customer data on their side does not match card holder data on the issuer side.

Issuers in Canada, the U.K. and the U.S. are required to support Account Name Inquiry requests in account verification messages.

The following method IDs are covered in this section:

IDNameCredit/Debit State
202VisaCardVerificationAuthorisedByProvider (13)
203ECMCCardVerificationAuthorisedByProvider (13)

Payment method interaction type: Synchronous Execution (see Interaction Types).

The credit card verification payments are credit card deposits with a zero amount. Payment methods interaction and states are the same as for Card Deposits (see Card Deposits and as per flows for 3DS2). The only difference is that amount should not be sent in initiatePaymentRequest.
AuthorisedByProvider state in initiatePaymentResponse means successful card verification. See below for the result code returned on the account name inquiry.

🚧

No amount must be sent

To initiate a Card Verification payment, the amount parameter must not be sent in initiatePaymentRequest.

Redirect Integration

Account Name Inquiry has not yet been prepared for the redirect integration.

Backend2Backend Integration

In order to initiate a account name inquiry, the merchant has to send a parameter EnableAccountNameInquiry in the initiatePayment request. Alternatively the parameter can be preconfigured for the merchant so that the merchant does not need to send the parameter.

Payment detailDescription
EnableAccountNameInquiry (optional, boolean)Enable the account name inquiry feature. True or False.

The merchant should also pass the user´s first name and last name in the request. They will be added to the authorisation request only if present.

Example initiatePaymentRequest for a Account Name Inquiry:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>merchant</merchantID>
    <shopID>shop</shopID>
    <merchantTransactionID>{{$guid}}</merchantTransactionID>
    <paymentMethodID>203</paymentMethodID>
    <userID>hc_2023042719112477U</userID>
    <userData>
        <username>hc_2023042719112477U</username>
        <firstname>4FirstName</firstname>
        <lastname xsi:nil="true" />
        <languageCode xsi:nil="true" />
        <email xsi:nil="true" />
        <address xsi:nil="true" />
        <identificationNumberType xsi:nil="true" />
        <drivingLicenseNumber xsi:nil="true" />
        <drivingLicenseIssuingState xsi:nil="true" />
        <globalUserID xsi:nil="true" />
        <nationality xsi:nil="true" />
        <identificationIssuingCountry xsi:nil="true" />
    </userData>
    <userIP>127.0.0.1</userIP>
    <userSessionID>05641380-002e-4a99-b2ad-6fbca3c512ef</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescription</key>
            <value>4eb6a8dd-7b6a-4bed-b41b-834152b2639d</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescriptionLanguageCode</key>
            <value>en</value>
        </data>
        <data xsi:type="keyIntValuePair">
            <key>PaymentProviderID</key>
            <value>92</value>
        </data>
        <data xsi:type="keyBooleanValuePair">
            <key>EnableAccountNameInquiry</key>
            <value>true</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>CardNumber</key>
                <value>5204740000009518</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CardVerificationCode</key>
                <value>111</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryMonth</key>
                <value>12</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryYear</key>
                <value>2030</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>HolderName</key>
                <value>Barry Allen</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

<!--INITIATE PAYMENT RESPONSE:-->

The initiatePaymentResponse will include the following details:

Payment DetailDescription
ANIResponseCodeAccount Name Inquiry response code describing the match details (see below)

Example successful initiatePaymentResponse for a Account Name Inquiry:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>merchant</merchantID>
        <shopID>shop</shopID>
        <paymentMethod>
            <key>203</key>
            <value>ECMCCardVerification</value>
        </paymentMethod>
        <merchantTransactionID>04d9f100-4643-449c-bac0-c731de54b645</merchantTransactionID>
        <paymentID>845b0700-4387-4f3d-ab60-2dce119dbe06</paymentID>
        <userID>hc_2023042719112477U</userID>
        <paymentProvider>
            <key>92</key>
            <value>CQRUK</value>
        </paymentProvider>
        <amount currencyCode="EUR">0</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>8feda4b8-2350-4c7c-852c-d0ea21aa75a9</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2023-11-08T16:53:29.0498171Z</createdOn>
            <description>Approved or completed successfully</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>0</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>862280</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ElectronicCommerceIndicator</key>
                <value>07</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ANIResponseCode</key>
                <value>U</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>SchemeTransactionIdentifier</key>
                <value>318004</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>b9a90c61-512b-4a23-8b71-089a0658e35d</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

In order for the payment to reach the final AuthorisedByProvider state the user has to authenticate on the 3DS page via the RedirectionUrl as received in the initiatePaymentResponse. For more information about 3DS please refer to 3DS2 Information Hub.

For other response states, see the page on Card Verifications.

Account Name Inquiry response codes

VISA response codes:

ANI Response CodeSchemeDescription
EVisaFull name: match
AVisaFirst name: partial match, Last name: match
BVisaFirst name: no match, Last name: match
CVisaFirst name: match, Last name: partial match
DVisaFirst name: match, Last name: no match
FVisaFirst name: partial match, Last name: partial match
GVisaFirst name: no match, Last name: partial match
HVisaFirst name: partial match, Last name: no match
IVisaLast name: match
JVisaLast name: partial match
NVisaFirst name: no match, Last name: no match
or
Last name: no match
UVisaName match not performed

Mastercard response codes:

ANI Response CodeSchemeDescription
EMastercardFull name: match
NMastercardNo match if last name does not match regardless if first name is provided or not
PMastercardPartial match as first name is not supplied
or
Full name: partial match
UMastercardUnverified as last name is not supplied

Test data - VISA

ScenarioFirstNameLastNameANIResponseCode
Visa - Name match not performed"4FirstName""4NoCheck"U
Visa - Name match not supported"4FirstName""4NoSupp"U
Visa - Last name: match-"4LastName"I
Visa - Last name: partial match-"LastName"J
Visa - Last name: no match-"NoMatch"N
Visa - First name: no match, Last name: no match"NoMatch""NoMatch"N
Visa - Full name: match"4FirstName""4LastName"E
Visa - First name: partial match, Last name: match"FirstName""4LastName"A
Visa - First name: no match, Last name: match"NoMatch""4LastName"B
Visa - First name: match, Last name: partial match"4FirstName""LastName"C
Visa - First name: match, Last name: no match"4FirstName""NoMatch"D
Visa - First name: partial match, Last name: partial match"FirstName""LastName"F
Visa - First name: no match, Last name: partial match"NoMatch""LastName"G
Visa - First name: partial match, Last name: no match"FirstName""NoMatch"H

Test data - Mastercard

ScenarioFirstNameLastNameANIResponseCode
Mastercard - Full name: match"4FirstName""4LastName"E
Mastercard - No match if last name does not match regardless if first name is provided or not"4FirstName" or omitted"LastName"N
Mastercard - Partial match as first name is not supplied-"4LastName"P
Mastercard - Full name: partial match"NoMatch""4LastName"P
Mastercard - Unverified as last name is not supplied"4FirstName"-U