Overview
For the purposes of verification, a comparison is made of the end-user name as per the following cases:
- For ‘Visa Account Name Inquiry’ and ‘Mastercard Name Validation Service’ – The end-user name provided by the customer is compared with the cardholder’s name held by the issuer.
- For non-Mastercard-Visa cardholder name verification – The end-user name provided by the merchant is compared with the cardholder name entered by the end-user on a Nuvei hosted page.
- For a supported APM – The end-user name (first name, middle name, and last name) provided by the merchant is compared with the account holder name returned by the APM.
The cardholder name verification feature is natively integrated into the Nuvei Cashier (Payment Page) platform and can be applied before, during, or after transaction processing depending on merchant configuration and payment method capabilities.
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.
Integrations
REST API 1.0
Methods
The following Nuvei REST API 1.0 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:NameVerificationPerformedNameVerificationNotPerformedNameVerificationNotSupported
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 | ||
|---|---|---|
| Execution Result | Matching Result | Note |
| Match | Successful Matched | |
| Partial Match | Successful Matched / Failed Match | |
| No Match | Failed Match | |
| Unverified | Failed Match | UPO verification remains in New status. |
| System Error | Failed Match | UPO verification remains in New status. |
| Visa | ||
|---|---|---|
| Execution Result | Matching Result | Note |
| 00: Name match performed | Match – Successful Matched Partial match – Successful Matched / Failed Match No Match – Failed Match | |
| 01: Name match not performed | not performed – Failed Match | UPO verification remains in New status. |
| 02: Name match not supported | not performed – Failed Match | UPO verification remains in New status. |
| System error | not performed – Failed Match | UPO verification remains in New status. |
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 Cardholder Name 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 Cardholder Name Verification
{
"result": "APPROVED",
"errCode": "0",
"errorDescription": "",
"userPaymentOptionId": "215****261",
"cavv": "",
"bin": "4***34",
"cancelled": false,
"cardHolderNameVerification": {
"firstNameVerificationResult": "NoMatch",
"lastNameVerificationResult": "Match",
"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": ""
}
Simply Connect 1.0
A merchant enables the cardholder name verification for cards functionality in a server-to-server /openOrder request by including the following block and property:
cardHolderNameVerification: {
performNameVerification: "true"
},
The Nuvei back-end is notified that any card payment request sent during the current session must be subject to the verification performed by Visa and Mastercard. If enabled, the /clientPayment API response is enriched with an additional block which contains results from of the onResult callback event.
Example with onResult response
{
"result": "APPROVED",
"errCode": "0",
"errorDescription": "",
"userPaymentOptionId": "21*****261",
"cavv": "",
"bin": "4***34",
"cancelled": false,
"cardHolderNameVerification": {
"firstNameVerificationResult": "Match",
"lastNameVerificationResult": "Match",
"middleNameVerificationResult": "Match",
"nameVerificationRequestResult":
"NameVerificationPerformed",
"nameVerificationResult": "Match"
},
"ccCardNumber": "4****0039",
"ccExpMonth": "12",
"ccExpYear": "24",
"dsTransID": "",
"eci": "",
"last4Digits": "0039",
"mcc": "",
"transactionId": "21100000******20804",
"transactionStatus": "APPROVED",
"transactionType": "Auth",
"xid": ""
}
Example of MasterCard payment results with cardholder name verification performed
{
"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 of Visa payment results with cardholder name verification performed
{
"result": "APPROVED",
"errCode": "0",
"errorDescription": "",
"userPaymentOptionId": "215****261",
"cavv": "",
"bin": "4***34",
"cancelled": false,
"cardHolderNameVerification": {
"firstNameVerificationResult": "NoMatch",
"lastNameVerificationResult": "Match",
"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 process the transaction.
Direct Merchant Notification (DMN)
A direct merchant notification (DMN) for a transaction involving cardholder name verification includes:
cardHolderNameVerification_nameVerificationRequestResult– Possible values:NameVerificationPerformedNameVerificationNotPerformedNameVerificationNotSupported
cardHolderNameVerification_nameVerificationResultcardHolderNameVerification_firstNameVerificationResultcardHolderNameVerification_middleNameVerificationResultcardHolderNameVerification_lastNameVerificationResult
If cardHolderNameVerification_nameVerificationRequestResult: "NameVerificationPerformed", the possible values for each of the VerificationResult parameters are:
MatchPartialMatchNoMatch
If cardHolderNameVerification_nameVerificationRequestResult: "NameVerificationNotPerformed" or "NameVerificationNotSupported", the only possible value for each of the VerificationResult parameters is Unverified.
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.
Verification Configuration for User Payment Option (UPO) with Card Payment Method
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 Inquiry) Visa/Mastercard verify the account and return a verification status. | Decline/None |
|
| On processing | 3D Secure | Decline |
|
Account Holder Name Verification for APMs
Payment Page (Cashier)
The Payment Page (Cashier) handles all cashier financial transactions and notifications to the gateway, to determine whether or not to process the transaction.