Tokenization with Adyen is a secure way to store and reuse a customer’s payment details without keeping sensitive card data on your own systems. It replaces the actual card data with a unique, non-sensitive token that can be used for future transactions like subscriptions, one-click checkouts, or recurring payments.
How Tokenization Works in Adyen
1. Customer Provides Card Info
• During checkout or payment, the customer enters their credit/debit card details.
2. Adyen Encrypts and Processes the Payment
• Adyen securely processes the payment and, if tokenization is requested, generates a unique token (also called a recurringDetailReference).
3. Token is Returned to You
• Instead of receiving the raw card number, your system stores the token.
• This token can be safely stored in your database—it’s meaningless outside of Adyen’s system.
4. Future Transactions
• When the customer returns (e.g., for recurring billing, or one-click checkout), you use the token to initiate a transaction without re-entering card details.
• Adyen maps the token back to the actual card information and processes the payment.
Key Benefits
• PCI Compliance: Reduces your PCI DSS scope since you’re not storing card data.
• Security: Card details are encrypted and stored securely by Adyen.
• User Experience: Enables features like stored payment methods, subscriptions, and auto-renewals.
• Network Tokenization Support: Adyen also supports network tokens (from Visa, Mastercard, etc.) which offer additional security and lifecycle management.
Types of Tokenization in Adyen
Token Type Use Case Token Format
One-click tokens Stored for customer-initiated payments recurringDetailReference
Subscription tokens Used for scheduled recurring payments recurringDetailReference with contract type RECURRING
Network tokens Card-brand-issued tokens (if enabled) Managed by card networks with lifecycle support
Setup Notes
• Tokenization must be enabled in your Adyen account.
• You must set the storePaymentMethod flag to true when making a payment request.
• For recurring or subscription payments, set the shopperInteraction field to ContAuth and the recurringProcessingModel to Subscription or CardOnFile.
Example API Flow (Simplified)
Initial Payment Request:
{
"amount": { "currency": "USD", "value": 1000 },
"paymentMethod": { "type": "scheme", "encryptedCardNumber": "...", ... },
"storePaymentMethod": true,
"shopperInteraction": "Ecommerce",
"recurringProcessingModel": "CardOnFile"
}
Future Payment Using Token:
{
"amount": { "currency": "USD", "value": 1000 },
"paymentMethod": { "storedPaymentMethodId": "841599548723410C" },
"shopperInteraction": "ContAuth",
"recurringProcessingModel": "CardOnFile"
}