Account Verification with a Zero Amount Authorization {#payments-processing-basic-zero-auth-intro}
==================================================================================================

Account verification with zero amount authorization is a standard e-commerce practice where you send a zero amount transaction to verify a card is valid and whether the card is lost or stolen. You cannot capture a zero amount authorization.  
Most card networks refer to card account validation as zero amount authorization (ZAA). These card networks have their own names for the service:

* Discover Zero Dollar Authorization
* Visa Account Verification

{#payments-processing-basic-zero-auth-intro_ul_j3f_tsl_qhc}

Processor-Specific Information
------------------------------

`Visa Platform Connect`
:
AVS and CVN are supported.
:
Card types: Mastercard, Visa
:
Supported for Internet, MOTO, and card-present transactions. Do not try to perform a zero amount authorization for a recurring payment, installment payment, or payer authorization transaction.

Endpoint {#payments-processing-basic-zero-auth-intro_d7e16}
-----------------------------------------------------------

**Production:** `POST ``https://api.cybersource.com``/pts/v2/payments`{#payments-processing-basic-zero-auth-intro_d7e25}  
**Test:** `POST ``https://apitest.cybersource.com``/pts/v2/payments`{#payments-processing-basic-zero-auth-intro_d7e35}

Account Name Inquiry {#payments-processing-zero-auth-ani-intro}
===============================================================

Account name inquiry (ANI) verifies that the cardholder's name matches the name on their issuer bank account. ANI verifications run automatically during a zero amount authorization before payment authorizations or full financial transactions, including account funding transactions (AFTs) and original credit transactions (OCTs). You can initiate an ANI during account setup, periodically, or on demand. Use the match results to decide whether to proceed, retry, or flag for fraud checks. Pre-transaction ANI verification reduces fraud risk, especially in AFT and OCT transactions.  
ANI is automatically enabled for your account. To disable ANI at the transaction level, include processingInformation.cardVerification.checkANI in the authorization request and set the value to `N`.  
Supported card types are Mastercard and Visa.  
The response includes the full name match results in these fields:

* processorInformation.electronicVerificationResults.code

* processorInformation.merchantAdvice.nameMatch  
  For each name field you send in the request, the response includes the match result codes in these fields:

* processorInformation.electronicVerificationResults.firstName

* processorInformation.electronicVerificationResults.firstNameRaw

* processorInformation.electronicVerificationResults.lastName

* processorInformation.electronicVerificationResults.lastNameRaw

* processorInformation.electronicVerificationResults.middleName

* processorInformation.electronicVerificationResults.middleNameRaw

Controlling ANI Results
-----------------------

By default, an ANI zero amount authorization will not be declined. You can change this behavior by including the processingInformation.authorizationOptions.declineAniFlags request field to specify a list of ANI result codes from the response that will tell the system to decline the authorization.

Required Fields for Account Verification with Zero Amount Authorization {#payments-processing-basic-zero-auth-required}
=======================================================================================================================

> IMPORTANT  
> When relaxed requirements for address data and the expiration date are being used, not all fields in this list are required. It is your responsibility to determine whether your account is enabled to use this feature and which fields are required. For details about relaxed requirements, see [Relaxed Requirements for Address Data and Expiration Date in a Payment](/docs/cybs/en-us/payments/developer/ctv/rest/payments/payments-relax-reqs.md "").

[orderInformation.amountDetails.currency](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-amount-details-currency.md "")

[orderInformation.amountDetails.totalAmount](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-amount-details-total-amount.md "")
:
Set this value to `0`.

[orderInformation.billTo.address1](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-address1.md "")
:

[orderInformation.billTo.administrativeArea](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-admin-area.md "")
:

[orderInformation.billTo.country](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-company-country.md "")
:

[orderInformation.billTo.email](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-email.md "")
:

[orderInformation.billTo.firstName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-first-name.md "")
:

[orderInformation.billTo.lastName](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-last-name.md "")
:

[orderInformation.billTo.locality](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-locality.md "")
:

[orderInformation.billTo.postalCode](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/order-info-aa/order-info-bill-to-postal-code.md "")
:

[paymentInformation.card.expirationMonth](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-exp-mo.md "")
:

[paymentInformation.card.expirationYear](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-exp-year.md "")
:

[paymentInformation.card.number](https://developer.cybersource.com/docs/cybs/en-us/api-fields/reference/all/rest/api-fields/payment-info-aa/payment-info-card-number.md "")
:

processingInformation.authorizationOptions.cardVerificationIndicator
:
Set the value to `true`.

Country-Specific Required Fields for Account Verification with Zero Amount Authorization {#payments-processing-basic-zero-auth-required-country}
================================================================================================================================================

Use these country-specific required fields to process a zero amount authorization.

Argentina
---------

merchantInformation.taxId
:
Required for Mastercard transactions.

merchantInformation.transactionLocalDateTime
:
Required in Argentina when the time zone is not included in your account. Otherwise, this field is optional.

Brazil
------

paymentInformation.card.sourceAccountType
:
Required for combo card transactions.

paymentInformation.card.sourceAccountTypeDetails
:
Required for combo card line-of-credit and prepaid-card transactions.

Saudi Arabia
------------

processingInformation.authorizationOptions.transactionMode
:

Taiwan
------

paymentInformation.card.hashedNumber
:

Optional Fields for Account Name Inquiry {#payemnts-processing-ani-opt-fields}
==============================================================================

orderInformation.billTo.middleName
:

processingInformation.authorizationOptions.declineAniFlags
:
Possible values separated by a space:

    * `Y`: Match
    * `O`: Partial match
    * `N`: No match
    * `U`: Unverified
    * `R`: Retry

processingInformation.authorizationOptions.checkANI
:
Possible values:

    * `Y`: Include account name inquiry
    * `N`: Skip account name inquiry

REST Example: Account Verification with a Zero Amount Authorization {#payments-processing-basic-zero-auth-ex-rest}
==================================================================================================================

Request

```keyword
{
  "orderInformation" : {
    "billTo" : {
      "country" : "US",
      "lastName" : "Kim",
      "address1" : "201 S. Division St.",
      "postalCode" : "48104-2201",
      "locality" : "Ann Arbor",
      "administrativeArea" : "MI",
      "firstName" : "Kyong-Jin",
      "email" : "test@cybs.com"
    },
    "amountDetails" : {
      "totalAmount" : "0.00",
      "currency" : "usd"
    }
  },
  "paymentInformation" : {
    "card" : {
      "expirationYear" : "2031",
      "number" : "4111111111111111",
      "expirationMonth" : "12"
    }
  }
}
```

Response to a Successful Request

```
{
  "_links" : {
    "authReversal" : {
      "method" : "POST",
      "href" : "/pts/v2/payments/6461731521426399003473/reversals"
    },
    "self" : {
      "method" : "GET",
      "href" : "/pts/v2/payments/6461731521426399003473"
    },
    "capture" : {
      "method" : "POST",
      "href" : "/pts/v2/payments/6461731521426399003473/captures"
    }
  },
  "clientReferenceInformation" : {
    "code" : "1646173152047"
  },
  "id" : "6461731521426399003473",
  "orderInformation" : {
    "amountDetails" : {
      "authorizedAmount" : "0",
      "currency" : "usd"
    }
  },
  "paymentAccountInformation" : {
    "card" : {
      "type" : "001"
    }
  },
  "paymentInformation" : {
    "tokenizedCard" : {
      "type" : "001"
    },
    "card" : {
      "type" : "001"
    }
  },
  "processorInformation" : {
    "systemTraceAuditNumber" : "862481",
    "approvalCode" : "831000",
    "merchantAdvice" : {
      "code" : "01",
      "codeRaw" : "M001"
    },
    "responseDetails" : "ABC",
    "networkTransactionId" : "016153570198200",
    "consumerAuthenticationResponse" : {
      "code" : "2",
      "codeRaw" : "2"
    },
    "transactionId" : "016153570198200",
    "responseCode" : "00",
    "avs" : {
      "code" : "Y",
      "codeRaw" : "Y"
    }
  },
  "reconciliationId" : "6461731521426399003473",
  "status" : "AUTHORIZED",
  "submitTimeUtc" : "2022-03-01T22:19:12Z"
}
```

REST Example: Account Verification with Account Name Inquiry {#payments-porcesing-zero-auth-ani-ex-rest}
========================================================================================================

Request  
This example includes optional fields.

```
{
  "clientReferenceInformation": {
    "code": "TC50171_3"
  },
  "paymentInformation": {
    "card": {
      "number": "4111111111111111",
      "expirationMonth": "12",
      "expirationYear": "2031",
      "securityCode": "501"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "0.00",
      "currency": "USD"
    },
    "billTo": {
      "firstName": "John",
      "lastName": "Doe",
      "address1": "1 Market St",
      "locality": "san francisco",
      "administrativeArea": "CA",
      "postalCode": "94105",
      "country": "US",
      "email": "test@cybs.com",
      "phoneNumber": "4158880000"
    }
  }
}
```

{#payments-porcesing-zero-auth-ani-ex-rest_codeblock_qw1_2cj_nhc}  
Response to a Successful Request

```
{
  "_links": {
    "authReversal": {
      "method": "POST",
      "href": "/pts/v2/payments/7664012361876450803814/reversals"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/payments/7664012361876450803814"
    },
    "capture": {
      "method": "POST",
      "href": "/pts/v2/payments/7664012361876450803814/captures"
    }
  },
  "clientReferenceInformation": {
    "code": "TC50171_3"
  },
  "id": "7664012361876450803814",
  "orderInformation": {
    "amountDetails": {
      "authorizedAmount": "0.00",
      "currency": "USD"
    }
  },
  "paymentAccountInformation": {
    "card": {
      "type": "001"
    }
  },
  "paymentInformation": {
    "tokenizedCard": {
      "type": "001"
    },
    "card": {
      "type": "001"
    }
  },
  "processorInformation": {
    "systemTraceAuditNumber": "065281",
    "electronicVerificationResults": {
      "lastName": "Y",
      "firstName": "Y",
      "code": "Y",
      "middleNameRaw": "01",
      "firstNameRaw": "01",
      "lastNameRaw": "01",
      "codeRaw": "01",
      "middleName": "Y"
    },
    "merchantNumber": "123456789012",
    "approvalCode": "831000",
    "cardVerification": {
      "resultCodeRaw": "M",
      "resultCode": "M"
    },
    "merchantAdvice": {
      "code": "01",
      "codeRaw": "M001",
      "nameMatch": "00"
    },
    "networkTransactionId": "016153570198200",
    "retrievalReferenceNumber": "535611065281",
    "consumerAuthenticationResponse": {
      "code": "2",
      "codeRaw": "2"
    },
    "transactionId": "016153570198200",
    "responseCode": "00",
    "avs": {
      "code": "Y",
      "codeRaw": "Y"
    }
  },
  "reconciliationId": "7664012361876450803814",
  "status": "AUTHORIZED",
  "submitTimeUtc": "2025-12-22T11:00:36Z"
}
```

