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 is available 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.

On a CVC check, the following codes may be returned on the CVCResponse value:

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.
Deprecated/legacy codes that still may appear in practice.

U

CVCNotCheckedByIssuer

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.
Deprecated/legacy codes that still may appear in practice.

Per default policy, 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.

In addition, an actionCode value maybe returned in initiatePaymentResponse with paymentDetail VTAVResponseCode and VTAVResponseMessage.

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>

Response overview

Depending on which VTAV checks (CVC, AVS, ANI) the merchant has requested, when a payment is blocked, it will stop in ValidationFailed state and the following values may be returned in the initiatePaymentResponse or in a handlePaymentStateChangedNotification:

  • CVCResponse
  • AVSResponseCode and AVSResponseMessage
  • ANIResponseCode

A payment reaching AuthorisedByProvider or RefusedByProvider state after the corresponding VTAV checks, may include these payment details as well (AVSCheckStatus, CVCCheckStatus, ANIResponseCode).

Action code

Optionally the action code may be considered for blocking a payment.
On the following values a 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
46Closed account

Sample initiatePaymentResponse with AuthorisedByProvider state, VTAVResponseCode (actionCode) being "85", VTAVResponseMessage being "No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return":

<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, VTAVResponseCode (actionCode) 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, VTAVResponseCode being "N7" and VTAVResponseMessage being "Decline for CVV2 failure":


<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, VTAVResponseCode being "46" and VTAVResponseMessage being "Closed account":

CVC, ANI and AVS response values

CVC validation is declined

The response below include the detail CVCResponse set to NotMatched and also VTAVResponseCode being 85. Due to the CVCResponse value, the payment is moved to state ValidationFailed .

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

CVV2 should be on the card.
The issuer was unable to perform CVV2 verification.
This value may be removed by VISA.

U

CVVNotCheckedByIssuer

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