Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configure Visa CVM priority

Overview

Visa CVM processing is a negotiation between the digital wallet application and the terminal. It determines which CVM (Cardholder Verification Method) is used to authenticate the end user for a transaction.

Set the CVM priority during SDK initialization by configuring VISA_ONLINEPIN_PRIORITY in your PLIST file. For details, see Configure PLIST file.

Based on this priority, the NFC Wallet SDK selects the best CVM supported by both:

  • the digital card profile (CAP)

  • the terminal (TTQ)

Inputs used for CVM selection

CAP (card capabilities)

The supported CVMs per AID for a Visa contactless profile are defined by Card Additional Processes (CAP):

Bit mapping
Description

Byte 3 bit 8

1b: Online PIN is supported for domestic transactions.

Byte 3 bit 7

1b: Online PIN is supported for international transactions.

Byte 3 bit 5

1b: Signature is supported.

Byte 3 bit 4

1b: CDCVM is supported.

TTQ (terminal capabilities)

The terminal uses Terminal Transaction Qualifier (TTQ) to indicate what it supports. The bit values are defined as follows:

Bit mapping
Description

Byte 1 bit 3

1b: Online PIN is supported.

Byte 1 bit 2

1b: Signature is supported.

Byte 3 bit 7

1b: CDCVM is supported.

Byte 2 bit 7

1b: CVM is required. (HVT)

“Commonly supported” CVM

A CVM is commonly supported when it is supported by both the card profile (CAP) and the terminal (TTQ).

Online PIN priority

  1. Check whether CVM is required (TTQ Byte 2 bit 7 == 1b).

    • If false, proceed as a low-value transaction.

    • If true, continue with step 2.

  2. Check if ONLINE_PIN is commonly supported.

    • If true, continue payment processing using Online PIN.

    • If false, continue with step 3.

  3. Check if Device CVM is commonly supported.

    • If true, continue payment processing using CDCVM.

    • If false, continue with step 4.

  4. Check if SIGNATURE is commonly supported.

    • If true, continue payment processing using signature.

    • If false, no commonly supported CVM exists. The terminal may require POS verification or reject the transaction.

CDCVM priority

  1. Check if Device CVM is commonly supported.

    • If true, continue with step 2.

    • If false, continue with step 3.

  2. Check if CAP supports CDCVM and if CVM is required (TTQ Byte 2 bit 7 == 1b).

    • If true, proceed to authenticate the high-value transaction.

    • If CAP supports CDCVM but CVM not required (TTQ Byte 2 bit 7 == 0b), proceed with the low-value transaction.

    • If CAP does not support CDCVM, continue with the payment processing using the CARD_LIKE.

  3. Check whether CVM is required (TTQ Byte 2 bit 7 == 1b).

    • If false, proceed as a low-value transaction.

    • If true, continue with step 4.

  4. Check if ONLINE_PIN is commonly supported.

    • If true, continue payment processing using Online PIN.

    • If false, continue with step 5.

  5. Check whether SIGNATURE is commonly supported.

    • If true, continue payment processing using signature.

    • If false, no commonly supported CVM exists. The terminal may require POS verification or reject the transaction.

Last updated

Was this helpful?