On This Page
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsAccount 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.
- Set this value to0.
- processingInformation.authorizationOptions.cardVerificationIndicator
- Set the value totrue.
Related Information
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
Related Information
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
Related Information
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" }