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 Payment (Non-3DS). 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 a ride-sharing service 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. |