Overview
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.
REST API 1.0
Methods
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": ""
}
**ADD ADDITIONAL CONTENT FROM SHARED DOC**
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