Visa Token Account Verification (VTAV)
Overview
For merchant processing tokenized transactions, PXP offers support for Visa Token Account Verification.
Merchants can utilize CVV2 validation, address verification and account name inquiry with VTAV when the cryptogram is obtained prior to the authorization. Payments failing these checks will not undergo authorization.
VTAV functionality will be available shortly on PXP acquiring and may be available also on other acquirers on request. This is available only for acquirers supporting tokenization.
Prior activation necessaryThe checks will only be performed if they have been enabled by PXP for your merchant.
See the following section for examples.
Backend2Backend Integration
When a payment is declined due to the result of one of the VTAV checks, PXP will move the payment to state ValidationFailed.
In addition, VISA returns an actionCode value. The initiatePaymentResponse will include the paymentDetail values VTAVResponseCode and VTAVResponseMessage.
Response overview
Depending on which VTAV checks (CVC, AVS, ANI) the merchant has requested, and which payment details and payment state details the merchant has chosen to receive, the following information may be returned either in the initiatePaymentResponse or in a handlePaymentStateChangedNotification
Payment stops in ValidationFailed state
When a payment stops in the ValidationFailed state due to VTAV check results, the following payment state details may be returned (provided that the relevant VTAV check was performed and payment state detail notification is enabled): AVSResponseCode AVSResponseMessage CVCResponse
Additionally, the following payment details may be returned (provided that the relevant VTAV check was performed and payment detail notification is enabled): AVSCheckStatus CVCCheckStatus ANIResponseCode
Payment reaches AuthorisedByProvider or RefusedByProvider state
When a payment reaches the AuthorisedByProvider or RefusedByProvider state after the corresponding VTAV checks, and no CVC or AVS checks are performed during authorisation, only the following payment details will be returned (provided that the relevant VTAV check was performed and payment detail notification is enabled): AVSCheckStatus CVCCheckStatus ANIResponseCode
If CVC and AVS checks are performed during authorisation (either following a prior VTAV check or without any VTAV check), the following payment state details may be returned (provided that payment state detail notification is enabled): AVSResponseCode AVSResponseMessage CVCResponse
Action code response
On the following actionCode values the payment will not be blocked:
VTAVResponseCode | VTAVResponseMessage |
|---|---|
85 | No reason to decline |
00 | Approve |
10 | Partial approval |
11 | Approved (VIP) |
On any other actionCode value, the payment will be blocked, but the check result codes for AVS, CVC and ANI can still be returned.
| VTAVResponseCode (actionCode) | VTAVResponseMessage |
|---|---|
| N7 | Decline for CVV2 failure |
| 45 |
Code and message (below)Please note the following fields indicating the **actionCode **and it´s description in the response below.
- VTAVResponseCode being "85"
- VTAVResponseMessage being "No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return"
Sample initiatePaymentResponse with AuthorisedByProvider state and VTAVResponseCode (actionCode) being "85":
<initiatePaymentResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment
xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>VTAV_All3ChecksEnabledShop</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>VTAV-76959e3c-b8c5-4018-8d3b-2b6ba298ad0c</merchantTransactionID>
<paymentID>915cbae1-74b2-411f-8a84-ce7ffb38fb1c</paymentID>
<userID>VTAV_User</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="USD">12.12</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>f6ec3747-16d8-4818-ab42-8f9719499288</id>
<definition>
<key>13</key>
<value>AuthorisedByProvider</value>
</definition>
<createdOn>2025-11-21T15:17:22.1428817Z</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>182946</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">8.05</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ElectronicCommerceIndicator</key>
<value>07</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseCode</key>
<value>85</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseMessage</key>
<value>No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AuthorizationMID</key>
<value>2234567890</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>CardAcceptorNameLocation</key>
<value>B2BTestMerchant London GB</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>SchemeTransactionIdentifier</key>
<value>939441567812128</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>23605450</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8736f347-6604-4de9-922d-ed1f1e2ed8ec</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Credit</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>FastFunds</key>
<value>false</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>IssuerName</key>
<value/>
</detail>
</details>
</paymentAccount>
</payment>
</initiatePaymentResponse>
Sample initiatePaymentResponse with AuthorisedByProvider state and VTAVResponseCode (actionCode) being "00":
Code and message (below)Please note the following fields indicating the actionCode and it´s description in the response below.
- VTAVResponseCode being "00"
- VTAVResponseMessage being "Approved and completed successfully"
<initiatePaymentResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment
xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>VTAV_All3ChecksEnabledShop</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>VTAV-641cb802-9b55-43ec-9019-00ca13d22c5c</merchantTransactionID>
<paymentID>8c07433e-5215-45d4-9b6c-157c8b4a9a28</paymentID>
<userID>VTAV_User</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="USD">12.12</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>73b8bd57-6bef-48ac-bdc3-adbbca2c3dd1</id>
<definition>
<key>13</key>
<value>AuthorisedByProvider</value>
</definition>
<createdOn>2025-11-21T15:20:22.3789017Z</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>667087</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">8.05</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ElectronicCommerceIndicator</key>
<value>07</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseCode</key>
<value>00</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseMessage</key>
<value>Approved and completed successfully</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AuthorizationMID</key>
<value>2234567890</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>CardAcceptorNameLocation</key>
<value>B2BTestMerchant London GB</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>SchemeTransactionIdentifier</key>
<value>123958589344346</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>23605452</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8736f347-6604-4de9-922d-ed1f1e2ed8ec</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Credit</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>FastFunds</key>
<value>false</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>IssuerName</key>
<value/>
</detail>
</details>
</paymentAccount>
</payment>
</initiatePaymentResponse>
Sample initiatePaymentResponse with ValidationFailed state and VTAVResponseCode being "N7":
Code and message (below)Please note the following fields indicating the actionCode and it´s description in the response below.
- VTAVResponseCode being "N7"
- VTAVResponseMessage being "Decline for CVV2 failure"
In this case, the state will always be ValidationFailed.
In addition, the details CVCResponse and/or AVSResponseCode and/or ANIResponseCode will be saved and will be included in the initiatePaymentResponse.
<initiatePaymentResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>VTAV_All3ChecksEnabledShop</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>VTAV-56ad8029-b269-4235-9e04-84a895476e13</merchantTransactionID>
<paymentID>9b1fa97b-1349-406f-bda8-0c1913bfdeae</paymentID>
<userID>VTAV_User</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="USD">12.12</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>58e17233-f4a0-44f0-88f5-7eda9dfea3da</id>
<definition>
<key>225</key>
<value>ValidationFailed</value>
</definition>
<createdOn>2025-11-19T11:34:26.1552685Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>AVSResponseCode</key>
<value>Y</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AVSResponseMessage</key>
<value>Exact match</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>CVCResponse</key>
<value>Matched</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">8.05</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ElectronicCommerceIndicator</key>
<value>07</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseCode</key>
<value>N7</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseMessage</key>
<value>Decline for CVV2 failure</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ANIResponseCode</key>
<value>E</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>23583560</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8736f347-6604-4de9-922d-ed1f1e2ed8ec</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Credit</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>FastFunds</key>
<value>false</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>IssuerName</key>
<value/>
</detail>
</details>
</paymentAccount>
</payment>
</initiatePaymentResponse>Sample initiatePaymentResponse with ValidationFailed state and VTAVResponseCode being "46":
Code and message (below)Please note the following fields indicating the actionCode and it´s description in the response below.
- VTAVResponseCode being "46"
- VTAVResponseMessage being "Closed account"
In this case, the state will always be ValidationFailed.
In addition, the details CVCResponse and/or AVSResponseCode and/or ANIResponseCode will be saved and will be included in the initiatePaymentResponse.
CVC, ANI and AVS response values
CVC validation is declined
The response below include the detail CVCResponse set to NotMatched.
It also includes VTAVResponseCode being 85.
As the CVCResponse is NotMatched, the payment is moved to state ValidationFailed is set (default policy is applied). For the mapping of CVC codes see further below.
Example initiatePaymentResponse:
<initiatePaymentResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment
xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>VTAV_CVCOnlyEnabledShop</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>VTAV-16f2b7ab-23db-45ad-aacf-71372d56a041</merchantTransactionID>
<paymentID>9f86339b-1ab3-4c39-909d-6e9af1a7a171</paymentID>
<userID>VTAV_User</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="USD">12.12</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>9c750511-6469-4806-93be-54c8a830e6c4</id>
<definition>
<key>225</key>
<value>ValidationFailed</value>
</definition>
<createdOn>2025-10-13T09:55:59.2114609Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>CVCResponse</key>
<value>NotMatched</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">9.11</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ElectronicCommerceIndicator</key>
<value>07</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseCode</key>
<value>85</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseMessage</key>
<value>No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>UserConsentForStoredAccount</key>
<value>true</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>23391218</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8736f347-6604-4de9-922d-ed1f1e2ed8ec</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Credit</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>FastFunds</key>
<value>false</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>IssuerName</key>
<value/>
</detail>
</details>
</paymentAccount>
</payment>
</initiatePaymentResponse>
AVS validation is declined
The response below include the details for an AVS check and a CVC check and also VTAVResponseCode (actionCode)
- The AVS check has the result AVSResponseCode set to U and AVSResponseMessage set to Data not checked.
- The CVC check has the result CVCResponse being Matched.
- The **actionCode **is 85.
The AVS check result is identified as failed and therefor the payment is moved to ValidationFailed state.
For the mapping of CVS and AVS codes see further below.
Example initiatePaymentResponse:
<initiatePaymentResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment
xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>VTAV_AVSCVCEnabledShop</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>VTAV-66ee2df5-256c-4f32-9584-e818552ef3db</merchantTransactionID>
<paymentID>8b53f75a-4e20-435e-aac0-26ba5fe737f6</paymentID>
<userID>VTAV_User</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="USD">12.12</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>dde0569e-3d01-441e-b010-3f59e5b0bcc3</id>
<definition>
<key>225</key>
<value>ValidationFailed</value>
</definition>
<createdOn>2025-10-13T09:56:09.1108578Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>AVSResponseCode</key>
<value>U</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AVSResponseMessage</key>
<value>Data not checked</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>CVCResponse</key>
<value>Matched</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">9.11</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ElectronicCommerceIndicator</key>
<value>07</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseCode</key>
<value>85</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseMessage</key>
<value>No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>UserConsentForStoredAccount</key>
<value>true</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>23391219</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8736f347-6604-4de9-922d-ed1f1e2ed8ec</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Credit</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>FastFunds</key>
<value>false</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>IssuerName</key>
<value/>
</detail>
</details>
</paymentAccount>
</payment>
</initiatePaymentResponse>AVS validation is declined
The response below include the details for an AVS check only (besides the actionCode response). The CVC verification was not requested.
- The AVS check has the result AVSResponseCode set to U and AVSResponseMessage set to Data not checked.
- The actionCode value is 85.
Due to a pre-configured policy the payment is moved to state ValidationFailed.
For the mapping of AVS codes see further below.
Example initiatePaymentResponse:
<initiatePaymentResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment
xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>VTAV_AVSANIEnabledShop</shopID>
<paymentMethod>
<key>2</key>
<value>VISA Deposit</value>
</paymentMethod>
<merchantTransactionID>VTAV-6cc8e352-db2d-41e9-8512-727632fbbd11</merchantTransactionID>
<paymentID>e3ad4dc3-9677-42e1-8738-c417f906c75c</paymentID>
<userID>VTAV_User</userID>
<paymentProvider>
<key>92</key>
<value>CQRUK</value>
</paymentProvider>
<amount currencyCode="USD">12.12</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>65dad68f-13aa-45d0-a8c7-09cbd3497379</id>
<definition>
<key>225</key>
<value>ValidationFailed</value>
</definition>
<createdOn>2025-10-13T09:56:25.0063292Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>AVSResponseCode</key>
<value>U</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AVSResponseMessage</key>
<value>Data not checked</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">9.11</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ElectronicCommerceIndicator</key>
<value>07</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseCode</key>
<value>85</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>VTAVResponseMessage</key>
<value>No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>UserConsentForStoredAccount</key>
<value>true</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ANIResponseCode</key>
<value>P</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>23391220</value>
</detail>
</paymentDetails>
<paymentAccount>
<paymentAccountID>8736f347-6604-4de9-922d-ed1f1e2ed8ec</paymentAccountID>
<details>
<detail xsi:type="keyStringValuePair">
<key>IssuerCountry</key>
<value>AT</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>AccountFundingSource</key>
<value>Credit</value>
</detail>
<detail xsi:type="keyBooleanValuePair">
<key>FastFunds</key>
<value>false</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>IssuerName</key>
<value/>
</detail>
</details>
</paymentAccount>
</payment>
</initiatePaymentResponse>ANI validation failed
The ANI response code is passed in the paymentDetail field.
<detail xsi:type="keyStringValuePair">
<key>ANIResponseCode</key>
<value>E</value>
</detail>Mock Testing
In order to test Visa Deposit payments being moved to ValidationFailed state, the merchant should include the following details in the header of the initiatePaymentRequest:
Detail | Value | Description |
|---|---|---|
x-pxp-scenario-id | A random GUID value | Generate a random GUID |
x-pxp-scenario-actions | CardVerification2Result=M& | Note: not all value need to be passed. Please pass at least the ActionCode value and either the CardVerification2Result value and/or the AddressVerificationResult and/or the remaining values for the ANI check. |
Mapping values - CVC Check
The following values can be returned on the CVC check:
Value | Mapping | Description |
|---|---|---|
M | Matched | CVV2 Match. The issuer was able to verify the CVV2 value provided by the merchant. |
N | NotMatched | CVV2 No Match. The issuer was not able to verify the CVV2 value provided by the merchant. |
P | CVCNotCheckedByIssuer | Not processed. The issuer was unable to verify the CVV2 value provided by the merchant. |
S | CVCNotSuppliedByShopper | The issuer was unable to perform CVV2 verification. |
U | CVSNotCheckedByIssuer | The issuer does not participate in CVV2 service or there is a technical issue in the communication between Visa and the issuer or the issuer is unavailable. |
On the default configuration, only value N (NotMatched) results in the payment being moved to ValidationFailed. On all other values, the payment will proceed to authorization.
A different policy may be assigned on request.
Mapping values - AVS Check
The following values can be returned on the AVS check:
| Value | Description |
|---|---|
| Y | Full match |
| A | Partial match (street address only) |
| Z | Partial match (postal/zip only) |
| N | No match |
| U | Unable to verify / data not checked |
| R | Indeterminate Outcome (Retry) / System unavailable |
For the AVS policies see here.
Mapping values - ANI Check
For Account Name Inquiry codes see here.
On testing, the appropriate values have to be passed in the fields accountNameRequestResult (AN Request), accountNameMatchDecision (aN Match), lastNameAccountMatchDecision (LN Match) and firstNameAccountMatchDecision (FN Match).
The character "-" indicates not present.
| aN Request | aN Match | LN Match | FN Match | ANI code | Description |
|---|---|---|---|---|---|
| 1 | - | - | - | U | Name match not performed |
| 2 | - | - | - | X | Name match not supported |
| 0 | 1 (Match) | - | - | E | Exact name match |
| 0 | 50 (Partial) | - | - | P | Partial name match |
| 0 | 99 (No Match) | - | - | N | No data match |
| 0 | Any value or not present | 1 (Match) | 1 (Match) | E | Exact name match |
| 0 | Any value or not present | 1 (Match) | 50 (Partial) | A | FN partial match, LN matches |
| 0 | Any value or not present | 1 (Match) | 99 (No Match) | B | FN no match, LN matches |
| 0 | Any value or not present | 50 (Partial) | 1 (Match) | C | FN matches, LN partial match |
| 0 | Any value or not present | 99 (No Match) | 1 (Match) | D | FN matches, LN no match |
| 0 | Any value or not present | 50 (Partial) | 50 (Partial) | F | FN partial match, LN partial match |
| 0 | Any value or not present | 50 (Partial) | 99 (No Match) | G | FN no match, LN partial match |
| 0 | Any value or not present | 99 (No Match) | 50 (Partial) | H | FN partial match, LN no match |
| 0 | Any value or not present | 1 (Match) | - | I | FN not available, LN match |
| 0 | Any value or not present | 50 (Partial) | - | J | FN not available, LN partial match |
| 0 | Any value or not present | - | 1 (Match) | K | FN matches, LN not available |
| 0 | Any value or not present | - | 50 (Partial) | L | FN partial match, LN not available |
| 0 | Any value or not present | 99 (No Match) | 99 (No Match) | N | No data matches |
| 0 | Any value or not present | 99 (No Match) | - | N | No data matches |
| 0 | Any value or not present | - | 99 (No Match) | N | No data matches |
Updated 6 days ago
