Card Verifications

A Card Verification payment - or in Card Scheme terms, an Account Status Inquiry (ASI) - 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.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

Reversal State

202

VisaCardVerification

AuthorisedByProvider (13)

203

ECMCCardVerification

AuthorisedByProvider (13)

215

MaestroCardVerification

AuthorisedByProvider (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 Card Deposits with 3DS). The only difference is that amount should not be sent in getRedirectDataRequest or initiatePaymentRequest.
AuthorisedByProvider state in initiatePaymentResponse means successful card verification. Any other final state means that card verification is unsuccessful.

🚧

No amount must be sent

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

📘

CVC and AVS for Card Verifications

The CVC and AVS features can also be used with payment methods Visa Card Verification (202) and ECMC Card Verification (203). For payment method Maestro Card Verification (215) the CVC is optional, and AVS can not be used since Maestro requires 3-D Secure. No Capture or Cancel actions can be performed on card verification deposits.

Redirect Integration

There are no specific steps for initiating Card Verifications with Redirect Integration. Refer to Initiate New Payment (Redirect) for the standard steps.

Backend2Backend Integration

Example initiatePaymentRequest for a Visa Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <merchantTransactionID>YourTransactionID</merchantTransactionID>
    <paymentMethodID>202</paymentMethodID>
    <userID>fd4a9cef-1f87-48de-878e-9400a3</userID>
    <userData>
        <username>fd4a9cef-1f87-48de-878e-9400a3</username>
    </userData>
    <userIP>127.0.0.1</userIP>
    <userSessionID>f9c2915a-1a40-42c2-8244-61723d8882ae</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescription</key>
            <value>b73e37b1-e9c5-451f-898c-cbbe9ec7e64e</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescriptionLanguageCode</key>
            <value>en</value>
        </data>
        <data xsi:type="keyIntValuePair">
            <key>PaymentProviderID</key>
            <value>140</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>CardNumber</key>
                <value>4111110000000211</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>HolderName</key>
                <value>c23f4b7c-584e-4ee5-919e-c3902020bc0c</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryMonth</key>
                <value>6</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryYear</key>
                <value>2018</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>CardVerificationCode</key>
                <value>424</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example successful initiatePaymentResponse for a Visa Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>202</key>
            <value>VisaCardVerification</value>
        </paymentMethod>
        <merchantTransactionID>YourTransactionID</merchantTransactionID>
        <paymentID>9fcf8d45-584b-4e64-9c8e-f194b662e859</paymentID>
        <userID>fd4a9cef-1f87-48de-878e-9400a3</userID>
        <paymentProvider>
            <key>140</key>
            <value>Elavon</value>
        </paymentProvider>
        <amount currencyCode="BRL">0</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>c5411448-3975-4f4b-87a1-cec837dbda6f</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2015-04-23T15:21:54.9357789Z</createdOn>
            <description>1: Authorized (capture pending), CVV/CVC check status:Matched.</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>AA</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Transaction Approved</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ApprovalCode</key>
                    <value>265789</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="BRL">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>3148265789</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>9790</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>b21a37fb-df3f-438f-be20-8a8a6f349b6b</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>issuerCountry</key>
                    <value>AT</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>fundingSource</key>
                    <value>Credit</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example refused initiatePaymentResponse for a Visa Card Verification because amount parameter was sent.

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>202</key>
            <value>VisaCardVerification</value>
        </paymentMethod>
        <merchantTransactionID>YourTransactionID</merchantTransactionID>
        <paymentID>076fd569-b4b8-48cf-b39b-f9530b573100</paymentID>
        <userID>a0e9d833-675d-42ba-a009-651758</userID>
        <paymentProvider>
            <key>140</key>
            <value>Elavon</value>
        </paymentProvider>
        <amount currencyCode="BRL">0</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>cc7d74d5-287f-4b0c-8901-45dd5fde7f1b</id>
            <definition>
                <key>100</key>
                <value>RefusedByProvider</value>
            </definition>
            <createdOn>2015-04-23T15:39:17.2185789Z</createdOn>
            <description>3: Not Authorized (authorization declined)</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>2000</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonMessage</key>
                    <value>IncorrectUserPaymentAccount</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>ND</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Transaction Declined</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="BRL">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>3571717789</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>9803</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>4e18f45e-27b8-4657-8245-23463d234b63</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>issuerCountry</key>
                    <value>AT</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>fundingSource</key>
                    <value>Credit</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example Communication Error initiatePaymentResponse for a Visa Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>202</key>
            <value>VisaCardVerification</value>
        </paymentMethod>
        <merchantTransactionID>YourTransactionID</merchantTransactionID>
        <paymentID>dc390ba8-45cf-4ce3-952e-7cf831b811f5</paymentID>
        <userID>e82df999-4f26-4c71-8374-f467ae</userID>
        <paymentProvider>
            <key>140</key>
            <value>Elavon</value>
        </paymentProvider>
        <amount currencyCode="BRL">0</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>89fc349a-1cd4-48a1-a490-7225889d4df6</id>
            <definition>
                <key>336</key>
                <value>AuthoriseCommunicationErrorOccurred</value>
            </definition>
            <createdOn>2015-04-23T15:43:38.360962Z</createdOn>
            <description>A communication error occurred during authorisation process.</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="BRL">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>9808</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>7523a857-30ec-494c-9262-25522168ace7</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>issuerCountry</key>
                    <value>AT</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>fundingSource</key>
                    <value>Credit</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example initiatePaymentRequest for a Mastercard Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <merchantTransactionID>YourTransactionID</merchantTransactionID>
        <paymentMethodID>203</paymentMethodID>
        <userID>fd4a9cef-1f87-48de-878e-9400a3</userID>
        <userData>
            <username>fd4a9cef-1f87-48de-878e-9400a3</username>
        </userData>
        <userIP>127.0.0.1</userIP>
        <userSessionID>a2ec0267-de92-4b1d-82ec-9aed929d8a91</userSessionID>
        <creationTypeID>1</creationTypeID>
        <specificPaymentData>
            <data xsi:type="keyStringValuePair">
                <key>PaymentDescription</key>
                <value>b16942a4-50f1-4844-b131-dabeab8fdd72</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>PaymentDescriptionLanguageCode</key>
                <value>en</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>AVSCountry</key>
                <value>GB</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>AVSStreetAddress</key>
                <value>123 London Rd</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>AVSPostCode</key>
                <value>CH488AQ</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>AVSPolicy</key>
                <value>1</value>
            </data>
            <data xsi:type="keyBooleanValuePair">
                <key>PerformAVS</key>
                <value>true</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>PaymentProviderID</key>
                <value>92</value>
            </data>
        </specificPaymentData>
        <paymentAccount>
            <specificPaymentAccountData>
                <data xsi:type="keyStringValuePair">
                    <key>CardNumber</key>
                    <value>5301250070000191</value>
                </data>
                <data xsi:type="keyStringValuePair">
                    <key>HolderName</key>
                    <value>TestUser</value>
                </data>
                <data xsi:type="keyIntValuePair">
                    <key>ExpiryMonth</key>
                    <value>6</value>
                </data>
                <data xsi:type="keyIntValuePair">
                    <key>ExpiryYear</key>
                    <value>2018</value>
                </data>
                <data xsi:type="keyStringValuePair">
                    <key>CardVerificationCode</key>
                    <value>424</value>
                </data>
            </specificPaymentAccountData>
        </paymentAccount>
    </initiatePaymentRequest>

Example successful initiatePaymentResponse for a Mastercard Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>203</key>
            <value>ECMCCardVerification</value>
        </paymentMethod>
        <merchantTransactionID>YourTransactionID</merchantTransactionID>
        <paymentID>ca98f012-e488-4b26-9d17-ec3c28f44f32</paymentID>
        <userID>fd4a9cef-1f87-48de-878e-9400a3</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>91e94f6b-b97d-4155-bbbc-0a417549352c</id>
            <definition>
                <key>13</key>
                <value>AuthorisedByProvider</value>
            </definition>
            <createdOn>2015-04-23T15:48:59.798962Z</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>250679</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>AccountBalanceCurrencyCode</key>
                <value>EUR</value>
            </detail>
            <detail xsi:type="keyDecimalValuePair">
                <key>AccountBalanceAmount</key>
                <value>150.01</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>3060752</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>469b7061-fdcd-46da-b8ed-2147fdbe4037</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>issuerCountry</key>
                    <value>GB</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>fundingSource</key>
                    <value>Credit</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example initiatePaymentRequest for a Maestro Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <merchantTransactionID>YourTransactionID</merchantTransactionID>
    <paymentMethodID>215</paymentMethodID>
    <userID>fd4a9cef-1f87-48de-878e-9400a3</userID>
    <userData>
        <username>UserName</username>
    </userData>
    <userIP>127.0.0.1</userIP>
    <userSessionID>6f6ee56d-19ad-4ae7-af4e-2b32fee468c2</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescription</key>
            <value>The payment description</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PaymentDescriptionLanguageCode</key>
            <value>en</value>
        </data>

        <data xsi:type="keyBooleanValuePair">
            <key>IsThreeDSecureRequired</key>
                <value>true</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>PaymentProviderID</key>
                <value>92</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>CardNumber</key>
                <value>5641820680164584</value>
            </data>
            <data xsi:type="keyStringValuePair">
                <key>HolderName</key>
                <value>TestUser</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryMonth</key>
                <value>6</value>
            </data>
            <data xsi:type="keyIntValuePair">
                <key>ExpiryYear</key>
                <value>2018</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example successful initiatePaymentResponse for a Maestro Card Verification:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>215</key>
            <value>MaestroCardVerification</value>
        </paymentMethod>
        <merchantTransactionID>YourTransactionID</merchantTransactionID>
        <paymentID>79c5feb0-d724-49f4-89c0-3d275b0e20da</paymentID>
        <userID>UserName</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>91e94f6b-b97d-4155-bbbc-0a417549352c</id>
            <definition>
                <key>287</key>
                <value>RedirectDataCreated</value>
            </definition>
            <createdOn>2016-03-16T14:23:31.7970546Z</createdOn>
            <description>An actual link to 3DSecure authenitication page</description>
            <paymentStateDetails>
            <detail xsi:type="keyStringValuePair">
                <key>RedirectionUrl</key>
                <value>An actual link to 3DSecure authenitication page</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>PostDataPaReq</key>
                <value>PostData for 3DSecure authenitication page</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>PostDataMD</key>
                <value>PostData for 3DSecure authenitication page</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>PostDataKeys</key>
                <value>PaReq,MD</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>PaymentStateReasonID</key>
                <value>1</value>
            </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>193471</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>245ecd02-4ea1-4558-9f33-a89eb58339f5</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

In order for the payment to reach the final AuthorizedByProvider 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 Card Deposits with 3DS.

Notifications