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, and last_name parameters of the customer object. 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_result parameter of the operation object.

Request format

There are several things you need to consider when sending a request for the payment card verification with additional cardholder name check:

  1. To initiate each verification, send a separate POST request to one of the following endpoints:
  2. Each request must contain the following parameters in the customer object:
    • 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 the true value)
  3. Additionally, any other parameters included in the specification of the endpoints mentioned above can be used.
Figure 1. Example of data from a request indicating the need for name verification
{
  "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:

  • Afull matchthe information provided in the request fully matches the information held by the issuer.
  • Bpartial matchthe information provided in the request partially matches the information held by the issuer.
  • Cno matchthe information provided in the request does not match the information held by the issuer.
  • Uimpossible 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).

Figure 2. Example of a callback with the cardholder name verification result
{
  "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.