Getting Started

Product Catalog



Invoices, Credit Notes, and Quotes



Site Configuration

Data Privacy & Security

Data Operations

Reports and Analytics



If you are using Adyen.js as your checkout solution and need to be SCA-compliant under the European PSD2 regulation, you may have to additionally integrate Chargebee's 3DS Helper in your checkout to handle 3DS transactions. For more information, take a look at how to integrate 3DS Helper  and support 3DS flows.


Adyen   is a payment solution that processes payments via 250+ payment methods, over 140 currencies from all over the world.

Choosing Adyen 

Here are a few things to consider before you choose Adyen to be your payment solution:

  • Countries Supported: You don't have to be domiciled in a particular region to use Adyen. No matter where you are based, Adyen allows you to accept payments from around the world.

  • Business Type: Adyen does not support certain business types due to legal reasons. Check out Adyen's Restricted and Prohibited List   for more.

  • Payment Methods: Adyen supports over 250 payment methods, including card networks (like Visa, MasterCard, Discover, American Express and Interac), online wallets and e-banking options. Check out Adyen's payment methods page   for more.

    • iDeal, Bancontact, SEPA and Sofort are supported.
  • Pricing: While Adyen does levy a setup fee, the gateway operates on a tiered pricing model (the more your transactions, the less the fee per transaction). More on Adyen's pricing   here.

  • Data Portability: Adyen supports data portability. If you ever decide to switch away from Adyen, exporting your data to another service will be easy. You are the owner of your data.

  • Currency Support: Adyen supports over 140 currencies. Find the complete list of currencies   here.

  • Payment Processing: Adyen processes payment asynchronously. This means that there is a delay between the time that Chargebee makes a payment request and the time that Adyen responds with the result of the request.

  • Adyen processes payments in an asynchronous manner, which means there will be a delay in response from Adyen
  • Collect Invoice On Update Payment Method is not supported for Adyen

Types of Accounts 

Adyen supports two types of accounts - a Test account and a Live account. They are similar in every regard except that a Test account processes dummy transactions and a Live account processes real transactions.

You can make use of the Test account to test end to end transactions (find more details   here).

Your Live Account is created once you have applied and have been approved for a merchant account with Adyen. You can accept payments only when you have a Live account.

Integration Options 

Chargebee supports integrating with your Adyen test and live accounts. Here are the integration options:

# Methodology Description PCI Requirements 3DS supported?
1 Chargebee API + Adyen Gateway In this method, collecting card information should be handled at your end passed on to Chargebee via the API. Chargebee will route this card information directly to Adyen. High
(card information will be collected by you directly, you will have to take care of PCI Compliance requirements)

For more info, contact [email protected] 
2 Chargebee Hosted Pages + Adyen Gateway In this method, the card information of the customers are collected by Chargebee's secure hosted pages and directly passed on to Adyen. Low
(Your PCI compliance requirements are greatly reduced because of Chargebee's hosted pages. As a merchant using Chargebee's hosted pages, all you have to do is submit a Self Assessment Questionnaire to stay compliant.)
3 Adyen.js + Chargebee API In this method, the card details are captured and tokenized on your side by Adyen's javascript library and the token is sent to Chargebee. Low
(card details are tokenized by Adyen)

If you're impacted by SCA and need to perform 3DS while using Adyen, check out the 3DS support we provide for Adyen integration.


Adyen's Client-side Encryption and Hosted Payment Pages are not the recommended modes of integration with Chargebee, as they are empowered via the now-deprecated legacy version of Adyen.js. You can move to the latest version of Adyen.js and continue using Adyen's services in Chargebee.

Prerequisites (to be completed in Adyen) 

You should set the following in Adyen before you begin configuring in Chargebee

1. Setup Roles/Privileges in Adyen

  • Ensure that you have enabled Checkout webservice role in your Adyen account.
  • Ensure that your ‘Adyen Webservice user' has the following roles enabled
    • API PCI Payments Role
    • Merchant PAL Webservice Role
    • Merchant Recurring Role
      If you are going to use Chargebee API + Adyen.js (Easy Encryption), you also need to enable the API Client side Encryption Payments Role in addition to the above mentioned roles.

2. Enter ‘Capture Delay'

The time between the authorisation of a payment and the capture of a payment is called the Capture Delay. Chargebee requires the Capture Delay to be set to Manual in Adyen.
To configure Capture Delay, Navigate to Settings > Merchant Settings > Capture Delay and select the Manual option.

Configuration in Chargebee 

To configure Adyen with Chargebee, you would require an Adyen Account. Follow these steps to connect your Adyen Account with Chargebee:

  • Step 1: Go to Settings > Configure Chargebee > Payment Gateways and click Add a Gateway. Select Adyen.

  • Step 2: Enter the following information.

    • Merchant Account Code: This code is unique to your Adyen account. It is displayed at the top of the Adyen dashboard (make sure this is an active Account Code in Adyen.)

    • Username: Enter the Username as it appears in Account > Users in your Adyen account. Ensure that you enter the username of Webservice User type.

    • Password: Enter the password that is set for the username. To access the password, select the Username and select the Password under Authentication section. You can generate a new password by clicking Generate Password. Please do note that the newly generated password will be saved only when you click Save Generated Password.

    • Public Key: Enter your client-side encryption public key.

    • API Key: Under Account > Users > Select the web service user > API Key you can find the API Key.

    • Checkout API Live URL Prefix: You can find the prefix under Account > API URLS > Checkout API in your Adyen account. For example, if your Live URL is, then your LIVE URL prefix is 1797a841fbb37ca7-AdyenDemo. This step is optional when configuring Adyen in the Test Site.

    • Notification Authentication Username and Password: Enter the Adyen Username and password using which your Adyen account communicates with your Chargebee site. The username and password that you provide here needs to be updated in Adyen when configuring Webhooks.

Once you have configured the settings, click Connect. The Notification URL dialog box opens. Copy the notification URL and proceed with adding the URL in Adyen (explained in the next section.)

Once you have completed this, click Done.

The next section will walk you through the settings you need to configure in your Adyen account.

Configuration in Adyen 

To complete the configuration, you have to configure the Notification settings in Adyen.

Navigate to Server Communication > Standard Notification > Add in your Adyen account and enter the following information:

  • URL field: Enter your Notification URL (generated in Chargebee)
    The Notification URL should be added in Adyen to ensure that every time an event is triggered in Adyen is notified to Chargebee
  • Enable the Active option
  • Set the Service Version to 1
  • Method should be JSON
  • Enter the Notification Authentication Username and Password as entered on the Adyen configuration page in your Chargebee site
  • You need to contact Adyen Support to enable RECURRING_CONTRACT notifications on your account to charge customers on a recurring basis.

The Adyen Card workflow on Chargebee 

For a payment to go through, it is necessary to make the First Name and Last Name mandatory during check out.

To do that:

  • Click Settings > Configure Chargebee > Checkout & Self-Serve Portal > Fields > Payments.
  • Enable First Name and Last Name in that section.
  • Click Publish

In case you want to enable any field in card address, then please make sure that you enable all the fields of card address. Selectively enabling a card address field will cause transactions to fail.

Given below is a workflow on what happens when a payment is attempted:

  • When a card is added and a payment is initiated, a Payment Due invoice with a payment initiated tag is created on Chargebee.
  • Chargebee will then wait for a webhook from Adyen to notify the status of the payment. This is because unlike normal payments, Adyen processes payments in an asynchronous manner. Therefore, Chargebee will have to wait for the webhook from Adyen to know the status of the payment.
  • Once Chargebee receives the webhook it will mark the invoice accordingly. For successful payments the invoice will be marked as ‘Paid' and for unsuccessful payments, it will go into Dunning if it is enabled and the final action set in the Dunning Settings will take place.
  • When you add a card for the first time and the payment fails, the status of the payment method will be marked as Invalid and the whole process of adding a card must be repeated once again.

3DS Implementation for Card Payments 

Check with your gateway whether 3DS is enabled for your account. If not, enable it at your gateway and then in Chargebee. Also, make sure you complete the SCA checklist in Chargebee before accepting 3DS payments. This is to ensure that you can recover failed payments easily, without compromising on your revenue.


  • Make sure you're on the latest version of Adyen.js as the older version(Client-side Encryption) is not 3DS-compatible.

  • If you are using Chargebee Checkout, ensure that you enable the Address fields under Payments. To do so, navigate to Settings > Configure Chargebee > Checkout and Self Serve Portal > Fields > Payments > Address Fields.

  • Address fields should also be necessarily filled for 3DS payments to go through Adyen. The mandatory fields to be filled are,

    • Address line 1
    • Address line 2
    • State
    • Zipcode
    • Country
    • City

1) For new cards with immediate payment 

The implementation for respective integrations given here are for 3DS payments which involve a new card and immediate charge.

a)Adyen.js + Chargebee APIs:

  • Tokenize the card details using Adyen.js.
  • Pass the token to handleCardPayment  function of Chargebee's 3DS helper JS . Chargebee takes care of completing 3DS flow for the transaction.
  • Pass the PaymentIntent id to payment_intent[id] parameter of Chargebee's APIs to perform the necessary operation.

b)Chargebee Hosted pages + Adyen gateway:

Chargebee's Hosted pages (In-app checkout, Single Page checkout, Portal) take care of tokenizing the card details and performing 3DS verification if needed.

All you need to do is complete configuring 3DS in your Chargebee site.

c)Chargebee APIs + Adyen gateway:

Sending raw card details to Chargebee is not a recommended way to carry out 3DS transactions. The reason being: Gateway JS sends your customer's background data and attempts a 3DS frictionless flow, which is typically not possible when you send raw card details directly to Chargebee.

We recommend you to go with gateway JS + Chargebee API option, as your payment approval rate would be better with this approach. For more information, reach out to [email protected] .

d)Hosted Components and Fields + Adyen gateway:

Using the authorizewith3ds  method, you can initiate a 3DS transaction through Adyen gateway.

2) For new cards without immediate payment 

The implementation for respective integrations given here are for 3DS authorization which involves a new card without an immediate charge.

a)Adyen.js + Chargebee APIs:

Pass a minimum amount(say 1$) and perform 3DS authorization for it. The stored card can then be tapped for payment in the future.

  • Tokenize the card details using Adyen.js.
  • Initialize the minimum amount in PaymentIntent object.
  • Pass the token to handleCardPayment function of 3DS helper JS. Chargebee takes care of completing 3DS authorization.
  • Pass the PaymentIntent id to payment_intent[id] parameter of Chargebee's APIs to perform the necessary operation.

The amount authorized is automatically released to the customer on 3DS flow completion.

b)Chargebee Hosted pages + Adyen gateway:

  • Chargebee's Hosted pages(In-app checkout, Single page checkout, Portal) take care of tokenizing the card details and performing 3DS authorization for a minimum amount.
  • The amount authorized is automatically released to the customer on 3DS flow completion.

All you need to do is complete configuring 3DS in your Chargebee site.

3) For stored cards 

The implementation for respective integrations given here are for 3DS payments made using a stored card.

a)Adyen.js + Chargebee APIs:

  • Retrieve the card's Reference ID and pass it to Chargebee's Payment Intent API.
  • Create 3DS helper's handleCardPayment function as the callback function.
  • Pass the PaymentIntent id to payment_intent[id] parameter of Chargebee's APIs to perform the necessary operation.

Refer to our 3DS helper documentation to know more on charging a stored card via 3DS flow .

b)Chargebee Hosted pages + Adyen gateway:

Chargebee uses the card's Reference ID to retrieve the payment method and charge the customer.

Handling 3DS Fallback 

Fallback flow comes into play when 3DS verification attempt fails for stored cards, due to the customer being offline. The invoice would then get into dunning and the customer would be followed up for payment, based on your remainder email configuration. Enable 3DS and dunning email configuration in Chargebee to take care of Fallback flow.

Automated Account Updater 

This integration supports automated account update for cards.

Payment failures and recovery are the most difficult aspects of recurring billing businesses due to the sheer complexities involved. In most cases, payment failures occur as a result of an expired or updated card. Chargebee supports an automated account update for Adyen. Each time there is an update to the customer's card number, expiry, or Customer Verification Value (CVV), the details are updated in Chargebee (in real-time) with the help of card networks and the Adyen gateway. This helps avoid any manual efforts for your customers and more importantly avoid payments failing due to outdated card information.


  • ‘Collect Invoice On Update Payment Method' is not supported for Adyen


How long does it take for funds to reach my bank account?

A transaction goes through different statuses before reaching your account. Payment method type also plays a major role when it comes to settlement time. You can refer Adyen's Merchant Manual  for more info.

When can I perform a refund for a transaction?

It is not possible to initiate a refund for an In-Progress transaction. You need to wait for the transaction to transition to Success state to initiate a refund.

Is there any time after which I cannot perform a refund?

Refund period varies with the payment method type in case of Adyen. You can contact Adyen's Support Channel  for more info.

How is dunning handled when Adyen is configured?

For every recurring invoice, dunning is carried over using the setting configured in Chargebee's Settings > Configure Chargebee > Dunning for Online Payments/Dunning for Offline Payments. Unlike normal payments, Adyen processes payments in asynchronous manner, the dunning is initiated only after the transaction has transitioned to Failure state.

Removing payment from an invoice during the dunning period:
If you remove an in-progress transaction from an invoice in dunning, then dunning will be stopped.


Dunning is supported only for card payments. For other payment methods, if a transaction fails, the invoice will be moved to Not Paid state

How is Payment Method Status managed in Adyen?

Adyen's API is totally asynchronous, Chargebee makes a request to Adyen and Adyen responds with the result of the action.

When you add/update a payment method by passing either the payment details or checkout parameters, the payment method will move to Pending Verification state, and will move to either Valid or Invalid state based on whether the authorization was successful or not.


Only payment methods in Valid state can be used for future payments.


How is Transaction Status managed in Adyen?

When you initiate a payment/refund, the transaction will be verified in Adyen. Transaction status will move to in-progress state when verification begins, and will transition to either Success or Failure state based on the notification received from Adyen.


Why should ‘Capture Delay' be set as ‘Manual' in Adyen?

Payment processing with Adyen occurs in two steps:

  • First, the payment is authorised - Adyen contacts the customer's financial institution, the payment method is validated and funds are set aside for the payment
  • Second, the payment is captured - Adyen sends a request to the financial institution to go ahead and charge the payment method

The advantage of setting the Capture Delay to Manual is that your customer won't be charged twice in the case of an authorization timeout.

How Chargebee can help in leveraging Adyen's RevenueProtect Engine?

Chargebee will send the shopper reference and billing address to Adyen as part of every transaction request. This helps you leverage the following RevenueProtect rules:

Was this article helpful?