Getting Started

Building Blocks

Subscription Features

Custom Fields

Localization

Invoices

Credits

Order Management

Billing Features

Taxes

Payment Methods

Direct Debit Payments

Configuring Gateways

Revenue Recovery

Checkout

Self-Serve Portal

Notifications

Reports and Analytics

Data Privacy & Security

Fraud Management

Migration

Other Features

Developers

Third Party Integrations

Adyen 

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.js in your checkout to handle 3DS transactions. For more information, take a look at how to integrate Chargebee.js in your checkout  and support 3DS flows.

Introduction 

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 (from around the globe like Alipay, Apple Pay and PayPal) and e-banking options. Check out Adyen's payment methods page   for more.

    • Chargebee supports Alipay, UnionPay, WeChat pay and Card based payments.
  • 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. There are the list of currencies  supported by WeChat Pay via Adyen.

  • 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.

Note
  • 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)
No

For more info, contact support@chargebee.com 
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.)
Yes
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)
Yes
4 Chargebee.js + Adyen gateway In this method, the card details are captured and tokenized on your side by Chargebee.js and the token is sent to Chargebee. Low
(card details are tokenized by Chargebee)
Yes

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

Important:

Adyen's Client-side Encryption and Hosted Payment Pages are not the recommended modes of integration with Chargebee, as they are empowered via the legacy version of Adyen.js, which is now deprecated. You can shift 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 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: Unique to your Adyen account, this code is displayed at the top of the Adyen dashboard (make sure this is an active Account Code in Adyen)
    • Username: As it appears in Settings > Users in your Adyen account
    • Password: The password used to sign into your Adyen account
    • Public Key: Enter your client-side encryption public key.
    • API Key: Under Settings > Users > Select the web service user > API Key you can find the API Key.
    • Notification Authentication Username: This is the username you will have to use later to allow your Adyen account to communicate with your Chargebee site
    • Notification Authentication Password: This is the password you will have to use later to allow your Adyen account to communicate with your Chargebee site
    • Notification URL: Once you've entered all the data and saved the configuration, you will see a new field namely, Notification URL, on the configuration page, which you'll need to configure in your Adyen account

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
"
Note
  • Merchants need to contact Adyen Support to enable RECURRING_CONTRACT notifications on their accounts to charge customers on a recurring basis.
  • Kindly login to your Adyen account and disable the Recurring Details API URL and Response to get the Authorization and the Recurring Details webhook.

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

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.
Note
  • 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.

Important:

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

  • 3DS payments for Adyen in Chargebee are supported via Chargebee.js integration. Hence, start by integrating Chargebee.js  in your checkout. After that, initialize 3DS helper JS  and create Chargebee's PaymentIntent object  at your server. Pursue that by following the steps below based on the type of Adyen integration you have on your checkout.

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 3DS helper JS . Chargebee.js will take 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 or Chargebee.js sends your customer's background data and tries for 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 support@chargebee.com .

d)Chargebee.js + Adyen gateway:

Chargebee.js takes full responsibility of tokenizing the card details and performing 3DS verification when necessary. All you need to do is integrate Chargebee.js  in your checkout.

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.js will take 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.

c)Chargebee.js + Adyen gateway:

  • Chargebee.js takes full responsibility 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 integrate Chargebee.js  in your checkout.

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.
  • Have Chargebee.js' handleCardPayment function as the callback function.
  • 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 uses the card's Reference ID to retrieve the payment method and charge the customer.

c)Chargebee.js + Adyen gateway:

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

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

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.

Limitations 

  • ‘Collect Invoice On Update Payment Method' is not supported for Adyen
  • Dunning is supported only for card payments. For other payment methods, if a transaction fails, the invoice will be moved to Not Paid state
  • WeChat Pay and Alipay via Adyen are not accepted to make payments for plans with a trial period

FAQ 

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. Ex: Card payment method have a larger refund window than Alipay. 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.

Note

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.

Note

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?
Loading…