Cardholder name verification
General information
When you perform verification of a payment card, you can also check if the spelling of the cardholder's name matches the one held by this card issuer. The ecommpay payment platform supports this capability for Mastercard and Visa cards and carries out verification via Mastercard Name Validation Service (NVS) and Visa Account Name Inquiry (ANI)—the specialised services of these card networks.
The cardholder name verification capability can be applicable in various situations. For example, you can use it before issuing payouts or when working with unusual orders, and it also allows you to assess fraud and chargeback risks. It is supported for standard card payments, Apple Pay and Google Pay payments, and payments via the Mastercard MoneySend and Visa Direct services.
Using this capability fits within the payment instrument verification workflow (details) and requires no additional action from the web service other than working with an extended set of parameters in the requests and callbacks (more details below). To enable this option, refer to your ecommpay account manager.
Special aspects and limitations
When working with the cardholder name verification, consider the following special aspects and limitations:
- Verification can be performed only when the card issuer supports integration with the service provided by the card network.
- Issuers may have different verification rules that allow only full name match or full and partial name match.
- The degree of match for cardholder name verification should be treated as reference information only. The final decision whether to accept or reject a payment based on this information lies in each case with the merchant.
- The card network charges a fee for each completed name verification attempt. No fee is charged in the case when the verification attempt has been initiated but has not been completed. For information on current name verification fees, refer to your ecommpay account manager.
- The workflow of name verification includes matching the data held by the issuer against the data specified in the request for card verification in the
first_name,middle_name, andlast_nameparameters of thecustomerobject. For each of these parameters, only the first 35 characters, excluding special characters and spaces, are verified. - The match result is sent to the web service in the final callback for the payment card verification in the
name_validation_resultparameter of theoperationobject.
Request format
There are several things you need to consider when sending a request for the payment card verification with additional cardholder name check:
- To initiate each verification, send a separate POST request to one of the following endpoints:
- when performing verification by card number—/v2/payment/card/account_verification
/v2/payment/card/account_verification(details) - when performing verification by the token that is associated with payment card details—/v2/payment/card/account_verification/token
/v2/payment/card/account_verification/token(details) - when performing verification by using the Apple Pay method—/v2/payment/applepay/account_verification
/v2/payment/applepay/account_verification(details) - when performing verification by using the Google Pay method—/v2/payment/googlepay/account_verification
/v2/payment/googlepay/account_verification(details)
- when performing verification by card number—/v2/payment/card/account_verification
- Each request must contain the following parameters in the
customerobject:first_name—customer first name (mandatory)middle_name—customer middle name or patronymic (only if it was provided by the customer)last_name—customer last name (mandatory)name_validation—flag indicating the need to verify the cardholder name (required with thetruevalue)
- Additionally, any other parameters included in the specification of the endpoints mentioned above can be used.
{
"general":{
"project_id":874,
"payment_id":"15538406111",
"signature":"1wR1YgD5PxxTIJfQ=="
},
"customer":{
"ip_address":"192.0.2.0",
"id":"customer_10",
"first_name":"John",
"middle_name": "Jr",
"last_name": "Doe",
"name_validation": true //requesting name verification
},
"payment":{
"amount":0,
"currency":"USD"
},
//specifying the payment instrument details (as in specification)
}
Callback format
The payment card verification with additional verification of the cardholder's name uses the standard format for callbacks. For more information, see Handling callbacks. In addition, the operation object in these callbacks includes the name_validation_result parameter. This parameter can have the following values:
A—full matchthe information provided in the request fully matches the information held by the issuer.B—partial matchthe information provided in the request partially matches the information held by the issuer.C—no matchthe information provided in the request does not match the information held by the issuer.U—impossible to matchthe name matching is impossible (because it is either not supported by the issuer or an error occurred).
The following is an example of a callback where the name_validation_result parameter contains the full match indicator (A).
{
"project_id":874,
"payment":{
"id":"15538406111",
"type":"account_verification",
"status":"success",
"date":"2024-09-10T13:45:59+0000",
"method":"card",
"sum":{
"amount":0,
"currency":"USD"
},
"description":"Add card"
},
"account":{
"number":"431422******0056",
"token":"844f84f3bdfaf2ddf006c96ffaddc09394c5d0e158f",
"type":"visa",
"card_holder":"JOHN DOE",
"id":8861226,
"expiry_month":"09",
"expiry_year":"2028"
},
"customer":{
"id":"customer_10",
"first_name":"John",
"middle_name":"Jr",
"last_name":"Doe"
},
"recurring":{
"id":10505,
"currency":"USD",
"valid_thru":"2025-09-30T00:00:00+0000"
},
"operation":{
"id":4314220000000056,
"type":"account verification",
"status":"success",
"date":"2024-09-10T13:45:59+0000",
"name_validation_result": "A", //match result indicator
"created_date":"2024-09-10T13:45:57+0000",
"request_id":"5cb898347e62b2c1-52dac6c8c",
"provider":{
"id":120,
"payment_id":"306449667",
"date":"2024-09-10T13:45:59+0000",
"auth_code":"188591",
"endpoint_id":120
},
"code":"0",
"message":"Success"
},
"signature":"P9g0U+eF2QWs2A=="
}
Useful links
The following articles can be useful for working with the cardholder name verification:
- Payment instrument verification—about debiting a dummy (zero) amount or authorising a specific (non-zero) amount to verify a payment instrument via Gate, including information about request and callback formats in case of card payments.
- Standard card payments—about card payments in the context of using payment methods.
- Apple Pay—about working with the Apple Pay method, including information about request and callback formats in case of payment instrument verification with this method via Gate.
- Google Pay—about working with the Google Pay method, including information about request and callback formats in case of payment instrument verification with this method via Gate.
- Using Mastercard MoneySend and Visa Direct services—about performing money transfers via specialised services by Mastercard and Visa.
- Handling callbacks—about working with callbacks to receive up-to-date information significant for processing of each payment.