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 (AFTs/OCTs). For example, cardholder name verification might be performed ad-hoc by an eCommerce merchant.
To enable cardholder name verification for a merchant, contact Nuvei’s Integration Team.
Implementation
REST API Methods
These Nuvei REST API methods support cardholder name verification:
/payment– For Zero-Authorization transactions (amount=0 andtransactionType=Auth)./authorize3D– Specifyamount=0.
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>"
}
Responses
Responses to these requests include the cardHolderNameVerification class, which contains:
nameVerificationRequestResult– Possible values:- NameVerificationPerformed
- NameVerificationNotPerformed
- NameVerificationNotSupported
nameVerificationResultfirstNameVerificationResultmiddleNameVerificationResultlastNameVerificationResult
If nameVerificationRequestResult: “NameVerificationPerformed“, the possible values for each of the four VerificationResult parameters are:
- Match
- PartialMatch
- NoMatch
If nameVerificationRequestResult: “NameVerificationNotPerformed” or “NameVerificationNotSupported“, the only possible value for each of the four 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": ""
}
DMNs
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 four VerificationResult parameters are:
- Match
- PartialMatch
- NoMatch
If cardHolderNameVerification_nameVerificationRequestResult: “NameVerificationNotPerformed” or “NameVerificationNotSupported“, the only possible value for each of the four VerificationResult parameters is Unverified.