Overview
A merchant may want to perform a zero-authorization card transaction to:
- Store card details for future use – Card schemes often insist that a zero-authorization transaction be sent before allowing card credentials to be stored for future use.
- Add a card (card registration) – A customer is sometimes required to add a card to their account so that it can be verified and used to charge the customer at a later date. For example, adding a card at the beginning of an evaluation period so it can be verified and charged at the end of the evaluation period.
- Verify a card – A merchant may want to move a potential customer to the next stage in the sales cycle by asking them to supply their card details. This allows the merchant to verify the existence of a card without charging it as well as testing the customer’s level of commitment to eventually completing the sale.
Merchants can perform zero-authorization transactions with 3D-Secure (3DS) or with non-3DS tokenization.
3DS Zero-Auth
To perform a zero-authorization transaction with 3DS, follow the instructions in 3DS Server-to-Server. When the merchant sends the initial /payments
request, specify:
amount
=0transactionType
=AuthzeroAmountReason
– Press here for possible values.
Example /payments
3DS Zero-Authorization Request
{ "processingEntityId": "<your processingEntityid>", "amount": 0, "currency": "USD", "transactionType": "Auth", "zeroAmountReason": "addCard", "paymentOption": { "card": { "store": "buyerToken", "cardHolderName": "John Smith", "cardNumber": "5101081046006034", "expirationMonth": "10", "expirationYear": "2026", "cvv": "345", "threeD": { "continueWithoutLiabilityShift": false, "fingerprintNotificationUrl": "<fingerprint notification URL>", "challengeNotificationUrl": "<challenge notification URL>", "challengeWindowSize": "01", "platformType": "02" } } }, "buyerDetails": { "buyerId": "<unique customer identifier in your system>" }, "deviceDetails": { "browser": { "acceptHeader": "Y", "colorDepth": 48, "javaEnabled": true, "javaScriptEnabled": true, "language": "en", "screenHeight": 1024, "screenWidth": 678, "timeZone": "+3", "userAgent": "Mozilla" } } }
Zero-Auth with Non-3DS Tokenization
This flow triggers non-3DS tokenization and should be used for traffic outside PSD2 regulations. To perform a non-3DS zero-authorization transaction, follow the instructions in Non-3D-Secure. When the merchant sends the /payments
request, specify:
amount
=0transactionType
=AuthzeroAmountReason
– Press here for possible values.
Example /payments
Non-3DS Zero-Authorization Request
{ "processingEntityId": "<your processingEntityId>", "amount": 0, "currency": "USD", "transactionType": "Auth", "zeroAmountReason": "addCard", "paymentOption": { "store": "buyerToken", "card": { "cardNumber": "5101081046006034", "cardHolderName": "John Smith", "expirationMonth": "10", "expirationYear": "2026", "cvv": "345" } }, "custom": { "description": "Some description" }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "buyerDetails": { "buyerId": "unique customer identifier in your system", "firstName": "John", "lastName": "Smith", "companyName": "Nuvei Corp", "dateOfBirth": "1978-01-01", "email": "[email protected]", "phone": "6175551414", "billingAddress": { "address": "22 Main Street", "zip": "02460", "city": "Boston", "countryCode": "US", "phone": "6175551414", "addressMatch": "true" }, "shippingAddress": { "sameAsBilling": "true", "address": "22 Main Street", "zip": "02460", "city": "Boston", "countryCode": "US", "phone": "6175551414" } } }
Appendix
Possible Values for zeroAmountReason
Value | Description | Notes |
---|---|---|
recurring | For when multiple transactions are submitted by the Merchant separately based on an agreement between the Merchant and the cardholder. | For example: A gym subscription in which the cardholder is charged $40 per month. Typically the first transaction is a CIT and all the rest are MITs. Each transaction has its own authorization and clearing. Charges are stopped only if the agreement between the merchant and the cardholder is terminated. |
installments | For when a single transaction is divided into multiple charges. | There is one authorization for the full amount and a clearing per installment. Charges are stopped when the full amount is charged. |
addCard | For when a cardholder adds their card to be used for future transactions. | For example: Adding a card to Uber for future rides. |
maintainCard | For when a Merchant wants to verify that an existing card is still valid. | |
accountVerification | For a verification different than those listed above. |