** DRAFT-in-PROGRESS (includes placeholder text)**
Overview
For the purposes of verification, a comparison is made of the end-user name (as provided by the merchant) with:
- For a supported card – The cardholder name as entered by the end-user on a Nuvei hosted page.
- For a supported APM – The account holder name as returned by the APM.
Cardholder Name Verification for Cards
Nuvei supports card scheme services that verify the name a customer provides to a merchant matches the cardholder name on file with the card issuer. These services provide an additional security check during card onboarding and pre-transaction checks, when amount=0. Name verification can help reduce exposure to fraud and scams in subsequent card-not-present (CNP) transactions and in pull/push payments. For example, cardholder name verification might be performed ad-hoc by an eCommerce merchant.
The following Nuvei REST API 1.0 methods REST API methods support cardholder name verification:
/payment– For zero-authorization transactions (amount=0 andtransactionType=Auth)./authorize3D– Specifyamount=0.
Request
To perform cardholder name verification, if available, include the following in the /payment or /authorize3D request:
cardHolderNameVerificationperformNameVerification: “true“
billingAddressfirstNamemiddleNamelastName
Example /payment Zero-Auth Request (Non-3DS)
{
"sessionToken": "<sessionToken from /getSessionToken>",
"merchantId": "<your merchantId>",
"merchantSiteId": "<your merchantSiteId>",
"clientRequestId": "<unique request ID in merchant system>",
"amount": "0",
"currency": "USD",
"transactionType": "Auth",
"authenticationOnlyType": "ADDCARD",
"userTokenId": "<unique customer identifier in merchant system>",
"clientUniqueId": "<unique transaction ID in merchant system>",
"paymentOption": {
"card": {
"cardNumber": "4000027891380961",
"cardHolderName": "John Smith",
"expirationMonth": "12",
"expirationYear": "2030",
"CVV": "217"
}
},
"cardHolderNameVerification": {
"performNameVerification": "true"
},
"deviceDetails": {
"ipAddress": "<customer's IP address>"
},
"billingAddress": {
"firstName": "John",
"middleName": "Stephen",
"lastName": "Smith",
"email": "[email protected]",
"country": "US"
},
"timeStamp": "<YYYYMMDDHHmmss>",
"checksum": "<calculated checksum>"
}
Response
A response to a request includes the cardHolderNameVerification class, which contains:
nameVerificationRequestResult– Possible values:- NameVerificationPerformed
- NameVerificationNotPerformed
- NameVerificationNotSupported
nameVerificationResultfirstNameVerificationResultmiddleNameVerificationResultlastNameVerificationResult
If nameVerificationRequestResult: “NameVerificationPerformed“, the possible values for each of the VerificationResult parameters are:
- Match
- PartialMatch
- NoMatch
If nameVerificationRequestResult: “NameVerificationNotPerformed” or “NameVerificationNotSupported“, the only possible value for each of the VerificationResult parameters is Unverified.
Example /payment Zero-Auth Response (Non-3DS)
{
"internalRequestId": 1138839878,
"status": "SUCCESS",
"errCode": 0,
"reason": "",
"merchantId": "850502379161961074",
"merchantSiteId": "229708",
"version": "1.0",
"clientRequestId": "20240701145933",
"sessionToken": "e8792666-d279-4458-bbc4-87fe6e14fe58",
"orderId": "464015818",
"paymentOption": {
"userPaymentOptionId": "",
"card": {
"ccCardNumber": "4****0961",
"bin": "400002",
"last4Digits": "0961",
"ccExpMonth": "12",
"ccExpYear": "30",
"acquirerId": "19",
"cvv2Reply": "",
"avsCode": "",
"cardType": "Credit",
"cardBrand": "VISA",
"issuerBankName": "River Valley Credit Union",
"issuerCountry": "US",
"isPrepaid": "false",
"threeD": {}
}
},
"transactionStatus": "APPROVED",
"gwErrorCode": 0,
"gwExtendedErrorCode": 0,
"issuerDeclineCode": "",
"issuerDeclineReason": "",
"transactionType": "Auth",
"transactionId": "7110000000001101353",
"externalTransactionId": "",
"authCode": "111487",
"customData": "",
"fraudDetails": {
"finalDecision": "Accept",
"score": "0"
},
"cardHolderNameVerification": {
"nameVerificationRequestResult": "NameVerificationPerformed",
"nameVerificationResult": "Match",
"firstNameVerificationResult": "Match",
"middleNameVerificationResult ": "Match",
"lastNameVerificationResult": "Match"
},
"externalSchemeTransactionId": "483297487227965",
"isAFT": "False",
"isAFTOverridden": "False",
"merchantAdviceCode": ""
}
Cardholder Name Verification Results (Mastercard and Visa)
| Mastercard | |
|---|---|
| Field | Values |
| NameVerificationResult | Match Partial Match No Match Unverified |
| Visa | |
| Field | Values |
| NameVerificationRequestResult | Name match performed Name match not performed Name match not supported |
| NameVerificationResult | Match Partial match No Match |
| FirstNameVerificationResult | |
| MiddleNameVerificationResult | |
| LastNameVerificationResult | |
DMN
A direct merchant notification (DMN) for a transaction involving cardholder name verification, includes:
Direct Merchant Notifications (DMNs) for transactions involving cardholder name verification include:
cardHolderNameVerification_nameVerificationRequestResult– Possible values:- NameVerificationPerformed
- NameVerificationNotPerformed
- NameVerificationNotSupported
cardHolderNameVerification_nameVerificationResultcardHolderNameVerification_firstNameVerificationResultcardHolderNameVerification_middleNameVerificationResultcardHolderNameVerification_lastNameVerificationResult
If cardHolderNameVerification_nameVerificationRequestResult: “NameVerificationPerformed“, the possible values for each of the VerificationResult parameters are:
- Match
- PartialMatch
- NoMatch
If cardHolderNameVerification_nameVerificationRequestResult: “NameVerificationNotPerformed” or “NameVerificationNotSupported“, the only possible value for each of the VerificationResult parameters is Unverified.
Web SDK 1.0
For a WebSDK 1.0 integrated merchant to benefit from Cardholder Name Verification functionality, the merchant’s server-to-server /openOrder request must include the following block and property in order to notify the Nuvei backend that any card payment request sent during the current session must be subject to cardholder name verification as performed by Mastercard and Visa.
cardHolderNameVerification: {
performNameVerification: "true"
},
If cardholder name verification is enabled, the /clientPayment API response is enriched with an additional block from the onResult callback event.
Example of Response with onResult
{
"result": "APPROVED",
"errCode": "0",
"errorDescription": "",
"userPaymentOptionId": "215****261",
"cavv": "",
"bin": "4***34",
"cancelled": false,
"cardHolderNameVerification": {
"firstNameVerificationResult": "Match",
"lastNameVerificationResult": "Match",
"middleNameVerificationResult": "Match",
"nameVerificationRequestResult":
"NameVerificationPerformed",
"nameVerificationResult": "Match"
}, [RG1.1][RG1.2][VR1.3]
"ccCardNumber": "4****0039",
"ccExpMonth": "12",
"ccExpYear": "24",
"dsTransID": "",
"eci": "",
"last4Digits": "0039",
"mcc": "",
"transactionId": "2110000******920804",
"transactionStatus": "APPROVED",
"transactionType": "Auth",
"xid": ""
}
In the case of a mismatch /fail during the ANI verification, the responses vary depending on the card scheme performing the check.
Example Mastercard payment results with performed ANI verification
{
"result": "APPROVED",
"errCode": "0",
"errorDescription": "",
"userPaymentOptionId": "215****261",
"cavv": "",
"bin": "4***34",
"cancelled": false,
"cardHolderNameVerification": {
"firstNameVerificationResult": "NoMatch",
"lastNameVerificationResult": "NoMatch",
"middleNameVerificationResult": "NoMatch",
"nameVerificationRequestResult": "NameVerificationPerformed",
"nameVerificationResult": "NoMatch"
},
"ccCardNumber": "4****0039",
"ccExpMonth": "12",
"ccExpYear": "24",
"dsTransID": "",
"eci": "",
"last4Digits": "0039",
"mcc": "",
"transactionId": "2110000******920804",
"transactionStatus": "APPROVED",
"transactionType": "Auth",
"xid": ""
}
Example Visa payment results with performed ANI verification
{
"result": "APPROVED",
"errCode": "0",
"errorDescription": "",
"userPaymentOptionId": "215****261",
"cavv": "",
"bin": "4***34",
"cancelled": false,
"cardHolderNameVerification": {
"firstNameVerificationResult": "NoMatch",
"lastNameVerificationResult": "NoMatch",
"middleNameVerificationResult": "NoMatch",
"nameVerificationRequestResult": "NameVerificationPerformed",
"nameVerificationResult": "PartialMatch"
},
"ccCardNumber": "4****0039",
"ccExpMonth": "12",
"ccExpYear": "24",
"dsTransID": "",
"eci": "",
"last4Digits": "0039",
"mcc": "",
"transactionId": "2110000******920804",
"transactionStatus": "APPROVED",
"transactionType": "Auth",
"xid": ""
}
Payment Page (Cashier)
The Payment Page (Cashier) handles all cashier financial transactions and notifications to the gateway, to determine whether or not to call the ANI service.
Key Features and Flow
The following flow diagram provides information about key features of Cardholder Name Verification and the flow.

Transaction Logging and Reporting
Every cardholder name verification attempt and card account verification attempt is logged in detail to support traceability, auditing, and reporting requirements.
Integration and Logic
The cashier integrates with the Cardholder Name Verification service to perform cardholder name verification as part of card onboarding and pre-transaction checks. Cardholder name verification is executed as a zero-amount authorization, using the registered name of the cardholder, PAN, expiry date, and CVV2. For dual-branded cards, cardholder name verification is always performed on the primary international brand (Visa or Mastercard). By default, the cashier uses an aggregated result from the Cardholder Name Verification service for decision-making (configurable by Nuvei).
Messaging and Status Handling for the End-user
The cashier supports various player-messaging scenarios based on the outcome of cardholder name verification and the transaction status (for example: decline and verification status; approved and verification status), to ensure that the end-user receives clear feedback on the status of card verification and a transaction.
DMN
In a DMN sent to the merchant, the following fields are populated with the information received from the Cardholder Name Verification service:
cardHolderNameVerification_nameVerificationRequestResultcardHolderNameVerification_nameVerificationResultcardHolderNameVerification_firstNameVerificationResultcardHolderNameVerification_middleNameVerificationResultcardHolderNameVerification_lastNameVerificationResult
The following UPO verification parameter values should be sent within the DMN:
accountVerificationStatus = NEW, PENDING_VERIFICATION, VERIFIED, NOT_VERIFIED // value from EnumaccountVerificationMethod = "ANI" // fixed valueverificationFailureReason - "FAILED_VERIFICATION_WITH_ANI_SERVICE" // fixed value
Verification Configuration for User Payment Option (UPO) with Card Payment Method
**this section should be within Cardholder Verification … for Cards’**
This section provides information about verification configuration for UPOs, for a card payment method.
- Event for Execution – The event that initiates UPO verification.
- For ANI, the event is before processing.
- For 3DS, the event is upon processing.
- Verification Method – Uses the MasterCard/Visa service or 3D challenge.
- Action on Failed Verification – In the event of a failed verification, this is the resulting action.
- Configurable. Configuration applies to all transactions with a failed verification as per the specific verification method (for example, Mastercard/Visa service).
- Possible actions:
- None
- Decline – Default; however, must be specified in the configuration to allow the configuration to be saved.
- Refund
- Withdrawal
- UPO Verification Status on Failed Verification – In the event of a failed verification, this is the action that determines if the UPO verification option remains available.
- Configurable.
- Possible statuses:
- NotVerified – Default. ‘NotVerified’ prevents further deposit unless configured otherwise.
- Pending – For any additional transaction, account verification is not performed.
- New – In the event of a failed verification, the ‘New’ status allows for additional UPO verification attempt(s).
- Verified
| Event for Execution | Verification Method | Action on Failed Verification | UPO Verification Status on Failed Verification |
|---|---|---|---|
| Before processing | ANI (Account Name In quiry) Visa/Mastercard verify the account and return a verification status. | Decline/None |
|
| On processing | 3D Secure | Decline |
|
Account Holder Name Verification for an APM
**(move section to correct location in doc as H1)**