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 necessary

The 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
(actionCode)

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
N7Decline 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&
AddressVerificationResult=Y&
AccountNameRequestResult=00&
AccountNameMatchDecision=01&
LastNameAccountMatchDecision=N%2fA&
FirstNameAccountMatchDecision=N%2fA&
ActionCode=N7

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.
This value may be removed by VISA.

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.
This value may be removed by VISA.

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:

ValueDescription
YFull match
APartial match (street address only)
ZPartial match (postal/zip only)
NNo match
UUnable to verify / data not checked
RIndeterminate 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 RequestaN MatchLN MatchFN MatchANI codeDescription
1---UName match not performed
2---XName match not supported
01 (Match)--EExact name match
050 (Partial)--PPartial name match
099 (No Match)--NNo data match
0Any value or not present1 (Match)1 (Match)EExact name match
0Any value or not present1 (Match)50 (Partial)AFN partial match, LN matches
0Any value or not present1 (Match)99 (No Match)BFN no match, LN matches
0Any value or not present50 (Partial)1 (Match)CFN matches, LN partial match
0Any value or not present99 (No Match)1 (Match)DFN matches, LN no match
0Any value or not present50 (Partial)50 (Partial)FFN partial match, LN partial match
0Any value or not present50 (Partial)99 (No Match)GFN no match, LN partial match
0Any value or not present99 (No Match)50 (Partial)HFN partial match, LN no match
0Any value or not present1 (Match)-IFN not available, LN match
0Any value or not present50 (Partial)-JFN not available, LN partial match
0Any value or not present-1 (Match)KFN matches, LN not available
0Any value or not present-50 (Partial)LFN partial match, LN not available
0Any value or not present99 (No Match)99 (No Match)NNo data matches
0Any value or not present99 (No Match)-NNo data matches
0Any value or not present-99 (No Match)NNo data matches