Account Name Validation (ANV)

Account Name Validation (ANV) is a feature that allows merchants to verify the cardholder's name against the name on file with the card issuer before or during a transaction.

This feature is supported for Visa, Mastercard, and AMEX.


📘

Supported integrations

You can use ANV with:

  1. Direct card integration: /payment_authorize and /payment_preauthorize
  2. Direct Apple Pay / Google Pay: /applepay_initand /googlepay_init
  3. Hosted Payment page (Card / Apple Pay / Google Pay): /init

There are two distinct ways to integrate Account Name Validation: Standalone Mode and Embedded Mode.

Standalone Mode

In Standalone Mode, you perform a name check with 0 amount transaction and payabl. returns name_validation_results parameter in syncronous server response or to webhook to your notification URL.

For transactions above 0 amount, name_validation_results parameter will not be returned in our response.


Standalone Mode

  1. Mastercard and VISA

    • You must pass the cardholder_name parameter.
    • The payment request must be 0.
  2. AMEX

    • You must pass the cardholder_name parameter.
    • The payment request must be 0.
    • Billing Address Required: You must provide the complete billing address. If any of the following parameters are missing, the name validation will not execute for AMEX, and the validation result parameter will not be sent in our response:
      • street (string max. 100 characters. Street of the customer's address.)
      • zip (string max. 10 characters. The customer's postal code)
      • city (string max. 40 characters. The customer's city)
      • country (string 3-character ISO 3166-1)

API request example:

Request example:

https://sandbox.payabl.com/pay/backoffice/payment_authorize?merchantid=gateway_test_3d&payment_method=1&currency=EUR&[email protected]&cvc_code=123&amount=10&orderid=125Test&language=en&customerip=127.0.0.1&ccn=4297016519240436&exp_month=01&exp_year=2040&firstname=AVS&lastnamt=Test&notification_url=https://webhook.site/04cc056a-9e86-4b6a-b0b8-2e52f2e39c71&street=202%20Second%20Avenue&zip=13115&country=USA&city=New%20York&state=New%20York%20City&cardholder_name=payabl%20Test&signature=accce3cfc42d11b34a003859eff7108e1fb2dc59

Response example:

transactionid=216976335&transid=216976335&status=0&errormessage=&errmsg=&amount=0&price=0&currency=EUR&orderid=125Test&avs_result=none&user_id=2114859&transaction_identifier=921681094258735&name_validation_results=MATCH

Embedded Mode

In Embedded Mode, the name check is performed synchronously with standard financial transactions (amounts greater than 0). The transaction will be automatically blocked or allowed to proceed based on the strictness rules configured for your account.

If the transaction amount is 0, we will simply return the name_validation_results parameter without blocking the request.


Account setup

Your Embedded Mode configuration is critical and applies account-wide, you cannot selectively apply blocking rules to only specific transactions.

  • Please review the possible validation results in the section below and communicate your desired strictness level to your Client Relations Manager
  • Example: If your account is configured to strictly require a "MATCH", payabl. will automatically block any transaction where the name_validation_results return a PARTIAL_MATCH, NO_MATCH, NAME_MATCH_NOT_PERFORMED or NAME_MATCH_NOT_SUPPORTED

  1. Mastercard and VISA

    • You must pass the cardholder_name parameter.
    • The payment request amount must be greater than 0.
  2. AMEX

    • You must pass the cardholder_name parameter.
    • The payment request amount must be greater than 0.
    • Billing Address Required: You must provide the complete billing address. If any of the following parameters are missing, the name validation will not execute for AMEX, and the validation result parameter will not be sent in our response:
      • street (string max. 100 characters. Street of the customer's address.)
      • zip (string max. 10 characters. The customer's postal code)
      • city (string max. 40 characters. The customer's city)
      • country (string 3-character ISO 3166-1)

API request example:

The below is for account setup to accept only "MATCH" results.

Request example:

https://sandbox.payabl.com/pay/backoffice/payment_authorize?merchantid=gateway_test_3d&payment_method=1&currency=EUR&[email protected]&cvc_code=123&amount=0.01&orderid=125Test&language=en&customerip=127.0.0.1&ccn=4297016519240436&exp_month=01&exp_year=2040&firstname=AVS&lastnamt=Test&notification_url=https://webhook.site/04cc056a-9e86-4b6a-b0b8-2e52f2e39c71&street=202%20Second%20Avenue&zip=13115&country=USA&city=New%20York&state=New%20York%20City&cardholder_name=payabl%20Test&signature=accce3cfc42d11b34a003859eff7108e1fb2dc59

Response example for success scenario:

orderid=payabl.+Test&type=order&cardholder=PAYABL+TEST&security=c1e12151e97c04554690f4f5b36f6487d5bd2e97&errormessage=&currency=EUR&payment_method=1&amount=0.01&name_validation_results=MATCH&errorcode=0&transactionid=446509171&type=capture

Response example for blocked scenario:

&orderid=payabl.+Test&type=order&cardholder=PAYABL+TEST&security=c1e12151e97c04554690f4f5b36f6487d5bd2e97&errormessage=Name+validation+result+does+not+match+with+minimum+requirement&currency=EUR&payment_method=1&amount=0.01&name_validation_results=NO_MATCH&errorcode=-6187&transactionid=446509171&type=order

Possible name validation results

Name validation resultsDescription
MATCHThe issuer checked and there is a full match.
PARTIAL_MATCHThe issuer checked and the name is close but not exact (e.g., small typo, missing characters, missing middle name).
NO_MATCHThe issuer checked and the name doesn't match the account holder.
NAME_MATCH_NOT_PERFORMEDThe issuer supports the check, but it wasn't done for this request.
NAME_MATCH_NOT_SUPPORTEDThe issuer or network doesn't support account name inquiry for this card.

Sandbox testing

Currently Sandbox testing is not available.


🚧

Please contact your Client Relations Manager to enable ANV for your account.


Did this page help you?