Adyen Recurring API
Adyen Recurring API
Adyen Recurring API manages subscription card tokens — store, look up, and reuse tokens for subsequent card-not-present payments.
Tokens are long-lived (Adyen runs account updater when cards expire)
Initial token creation requires customer-initiated transaction (CIT)
On the first payment, set storePaymentMethod=true in authorise. Adyen returns a token (recurringDetailReference). Subsequent charges use that token + shopperReference.
Uptime · 30-day window
About this API
Recurring API is the core of Adyen's subscription business. It solves two problems: (1) how to securely store cards for later charges (PCI compliance — storing cards yourself requires PCI Level 1; using an Adyen token offloads that responsibility), and (2) PSD2/SCA-compliant "recurring exception" — EU law requires 3DS on most card payments, but subscription charges qualify for an exception, provided the user authorized the initial transaction. This involves recurring type flags (user-initiated vs system-initiated), shopperReference binding, and account updater (auto-update on card expiry). Essential capability for SaaS, membership, and streaming.
What you can build
- 1SaaS monthly subscription auto-charging
- 2Membership renewals
- 3Store card on file for one-click repurchase
- 4PSD2/SCA-compliant recurring charges
Strengths & limitations
Strengths
- Tokens are long-lived (Adyen runs account updater when cards expire)
- Supports multiple recurring types (CardOnFile, Subscription, UnscheduledCardOnFile)
- Integrated with the fraud engine
Limitations
- Initial token creation requires customer-initiated transaction (CIT)
- Tokens cannot be shared across merchants
Example request
curl https://www.adyen.help/hc/en-us/community/topics/<endpoint>Getting started
On the first payment, set storePaymentMethod=true in authorise. Adyen returns a token (recurringDetailReference). Subsequent charges use that token + shopperReference.
FAQ
Will subscription charges without 3DS be declined?+
Depends on the issuing bank. Adyen auto-adds the recurring marker — most banks accept it; some still require SCA (need step-up flow).
Will tokens still work after card expiry?+
Adyen's account updater service auto-pulls the latest card number. If the issuer doesn't participate, the token becomes invalid.
Technical details
- Auth type
- unknown
- Pricing
- unknown
- Protocols
- REST
- SDKs
- java, python, javascript, php, csharp, go
- Response time
- 201 ms
- Last health check
- 5/12/2026, 7:36:32 AM
More from Adyen
Adyen Balance Control API moves funds between merchant accounts within Adyen — for centralized fund management and reconciliation.
Adyen BIN Lookup API returns card info from the first 6-8 digits of a PAN (BIN) — issuing bank, country, card type (debit/credit), product type.
Adyen Checkout API is the modern payments API for new integrations — pairs with frontend drop-in components, auto-adapting to 250+ payment methods.
Adyen Checkout Utility API provides auxiliary operations for Checkout API — originKey generation, payment methods listing, status queries.
Adyen Data Protection API handles GDPR/privacy operations — right-to-be-forgotten, PII deletion, shopper data export.
Adyen Payments API is its flagship payment-processing API — authorize, capture, and refund across cards, local payment methods, and wallets.
Adyen Payouts API moves funds from a merchant account out to external bank accounts or cards — supports multiple local clearing rails.
Adyen Test Card Service API generates test card numbers for sandbox payment testing — covers various issuer response scenarios.