Visa CVM priority
Prioritize Online PIN or CDCVM for Visa contactless payments.
Overview
Visa CVM selection is a negotiation between the digital wallet application and the POS terminal.
It determines the Cardholder Verification Method (CVM) used to authenticate the end user.
Set the CVM priority during SDK initialization in Initialize the NFC Wallet SDK using CustomConfiguration.
Use CustomConfiguration.Builder.selectCvmOnlinePINPriority(...) to prioritize:
Online PIN
If you do not set a priority, NFC Wallet SDK uses CDCVM priority.
Based on the selected priority, NFC Wallet SDK chooses the best CVM supported by both:
the card profile (CAP)
the terminal capabilities (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).
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 POS terminal uses Terminal Transaction Qualifier (TTQ) to indicate supported capabilities.
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 (high-value transaction).
“Commonly supported” CVM
A CVM is commonly supported when it is supported by both the card profile (CAP) and the terminal (TTQ).
Visa documentation often refers to CDCVM as Device CVM.
Online PIN priority
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.
Check if
ONLINE_PINis commonly supported.If true, continue payment processing using Online PIN.
If false, continue with step 3.
Check if
Device CVMis commonly supported.If true, continue payment processing using CDCVM.
If false, continue with step 4.
Check if
SIGNATUREis 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
Check if
Device CVMis commonly supported.If true, continue with step 2.
If false, continue with step 3.
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 is not required (
TTQ Byte 2 bit 7 == 0b), proceed with the low-value transaction.If CAP does not support CDCVM, continue payment processing using
CARD_LIKE.
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.
Check if
ONLINE_PINis commonly supported.If true, continue payment processing using Online PIN.
If false, continue with step 5.
Check whether
SIGNATUREis 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?