FILTER BY TAG

Account Verification with a Zero Amount Authorization

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

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

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Account Name Inquiry

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

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 Payment Transactions.

Country-Specific Required Fields for Account Verification with Zero Amount Authorization

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

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

Request
{ "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

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" } } }
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" }