Klarna via Adyen
This feature is currently a Private Beta release. Contact Chargebee Support to enable Klarna via Adyen for your live and test sites.
Klarna is a popular Buy Now, Pay Later (BNPL) payment method that lets customers receive their purchase first and pay for it later, typically within a set number of days after Klarna sends the invoice.
With Chargebee, you can configure and process Klarna payments through the Adyen payment gateway for both one-time payments and recurring subscriptions. Klarna via Adyen uses a redirect-based flow: the customer authorizes the payment on Klarna and is returned to your application, and Adyen confirms the final status asynchronously through webhooks.
Supported countries and currencies
Klarna via Adyen supports the following countries and currencies:
| Country | Currency |
|---|---|
| Austria | EUR |
| Belgium | EUR |
| Denmark | DKK |
| Finland | EUR |
| Germany | EUR |
| Greece | EUR |
| Netherlands | EUR |
| Norway | NOK |
| Sweden | SEK |
| Switzerland | CHF |
| United Kingdom | GBP |
| United States | USD |
Klarna approves a payment only when the country of the billing address matches the country and currency sent in the request. A mismatch can lead to the payment being refused.
Key features
- One-time and recurring — accept Klarna for one-time invoices and for subscription renewals after the first customer-present authorization.
- Redirect-based authorization — the customer authorizes on Klarna and returns to your application; Adyen confirms the final status asynchronously through webhooks.
- Stored payment method token — Chargebee stores the Klarna payment method against the shopper reference, and Adyen returns a stored payment method token for future merchant-initiated charges.
- No separate mandate — Adyen Klarna does not use a mandate token. The shopper reference and the stored payment method token authorize future charges.
- First invoice required — Klarna always requires a first payable, non-zero invoice.
Where you can use Klarna
Klarna behaves differently across Chargebee surfaces because each flow supports a different part of the subscription lifecycle. The following table summarizes where customers can use Klarna and how it is saved.
| Surface | Add new Klarna | Use saved Klarna | Saved for later use | Recurring renewals |
|---|---|---|---|---|
| Checkout | Yes | Yes | Yes | Automatic |
| Customer portal | No | Yes (reuse a saved Klarna) | No | Automatic |
| Pay Now or Collect Now | Yes (one-time only) | Yes (single subscription invoice only) | No | Not applicable |
| Renewals | Not applicable | Uses the stored payment method token and shopper reference | Not applicable | Automatic |
Note
Customer portal — customers can reuse a Klarna payment method that is already saved, but they can't add a brand-new Klarna payment method in the portal.
Prerequisites
To accept Klarna payments, meet the following conditions:
- You have the Adyen payment gateway configured in Chargebee, with webhooks enabled. Webhooks are mandatory because Klarna and Adyen confirm the payment status asynchronously.
- Klarna is added as a payment method in your Adyen Customer Area. Learn more.
- At least one supported currency — USD, CHF, DKK, EUR, GBP, NOK, or SEK — is enabled for your Chargebee account.
- For recurring subscriptions, tokenization (recurring payments) for Klarna is enabled on your Adyen merchant account. If it is not, log in to the Adyen Customer Area, then go to Support > Submit a ticket.
Integration options
You can integrate Klarna via Adyen using the following methods:
| Integration method | Description |
|---|---|
| Chargebee Hosted Pages (in-app checkout) | Accept Klarna payments using Chargebee's in-app hosted checkout with minimal integration effort. |
| Chargebee Hosted Pages (full-page checkout) | Accept Klarna payments using Chargebee's full-page hosted checkout. |
| Chargebee.js | Embed Klarna as a payment method in your custom checkout using Chargebee.js. |
| API (Permanent Token and Payment Intent) | Process Klarna payments using Chargebee APIs for a fully custom checkout and payment flow. |
Supported tokens
This integration supports the following set of tokens:
| Token | Description | Format and Sample |
|---|---|---|
| Permanent Token | A permanent token is the payment method ID available at the gateway. For Klarna via Adyen, Chargebee stores the payment method against the shopper reference, and Adyen returns a stored payment method token used for future charges. | Format: payment_method[reference_id] Sample: shopper_reference_id/recurring_detail_reference_id |
| Chargebee Payment Intent ID | This is the Payment Intent ID returned after a successful authorization process using Chargebee.js. | Format: payment_intent[id] |
Configure Klarna via Adyen in Chargebee
Follow these steps to configure Klarna via Adyen in your Chargebee site:
- Log in to the Chargebee app.
- Go to Settings > Configure Chargebee > Payment Gateways.
- Select the relevant Adyen instance from the list.
- Enable Klarna.

- Click Apply to save your changes.
Configure Smart Routing
After you enable the payment method, follow these steps to configure Smart Routing for it:
- Go to Settings > Configure Chargebee > Payment Gateways.
- Click Manage Rules under Smart Routing.

- Under the For Klarna section, select your Adyen instance from the Choose a payment gateway dropdown, and then click Save.

Note
You can display Klarna via Adyen as a payment method through in-app checkout, or access it through Chargebee APIs.
Configuring webhooks
Klarna via Adyen confirms payment status asynchronously. Configure Adyen webhooks in Chargebee before you accept live Klarna payments. Follow the webhook setup steps on the Adyen payment gateway page.
Checkout flow
When a customer selects Klarna in Chargebee's checkout, the payment flow is as follows:
- Click Proceed to Checkout to start a purchase.
- Select Klarna as the payment method on the payment details page.

- Review the order details, and then click Pay & Subscribe.

- Confirm the payment details, and then authorize the payment with Klarna.

- After authorization, the customer is returned to your application. Adyen sends the authorization webhook to Chargebee, which confirms the payment and updates the transaction.
Recurring payments
Klarna via Adyen supports recurring payments through a stored payment method token. When a customer authorizes a Klarna payment for a subscription, Chargebee stores the payment method against the shopper reference, and Adyen returns a stored payment method token that Chargebee saves for future charges. Adyen Klarna does not use a separate mandate — the shopper reference and the stored token authorize future charges. Klarna always requires a first payable, non-zero invoice.
After Klarna is set up during checkout, renewals are processed automatically:
- Renewals are charged on the subscription's due date without any customer action, using the stored payment method token as a merchant-initiated transaction.
- No redirect or reauthorization is required after the first customer-present payment.
- If a customer has multiple subscriptions paid with Klarna, each renews on its own schedule using the stored payment method token and shopper reference.
Recurring payment restrictions
Confirm the following before you offer Klarna for subscriptions:
- Klarna variant — This integration uses Klarna's Pay later payment method. Klarna Pay Now is a separate payment method in Chargebee with its own configuration. See Klarna Pay Now via Adyen.
- Regions — Recurring Klarna payments are limited to the countries in Supported countries and currencies. Adyen enables Klarna recurring payments by default in the United States only; for the other supported countries, request it in the Adyen Customer Area under Support > Submit a ticket before go-live.
- First payment — You can't save Klarna as a payment method on its own. The first charge must be a customer-present payment for a non-zero invoice, which is what tokenizes the payment method for later renewals.
- Billing frequency — Chargebee doesn't restrict the subscription's billing frequency for Klarna. Each subscription renews on its own billing schedule using the stored payment method token.
Choosing a Klarna payment option
With Klarna via Adyen, the customer receives the purchase first and pays Klarna later. When the customer is redirected to Klarna, Klarna presents the applicable terms based on the customer's eligibility, region, and transaction details. Chargebee and Adyen don't control these terms, and they can't be previewed before the customer completes payment.
After authorization, Klarna sends the payment instructions to the customer, who pays Klarna directly (for example, through the Klarna app or website) according to the terms agreed with Klarna.
Review subscription details
To review a subscription or confirm a payment status:
- In your Chargebee site, select Subscriptions from the left navigation pane.
- Select the relevant Subscription ID to open its details.
- In Payment Method Details, confirm the Klarna payment method used for the subscription.
- Select the Transactions tab to view the processed payment.

Testing
Sandbox testing
Test Klarna on your Chargebee test site with the Adyen test environment. Chargebee doesn't issue Klarna test credentials. In test mode, the redirect takes the customer to the Klarna playground, where the outcome is determined by the shopper details entered on the Klarna page, not by the transaction amount.
Follow these steps to run a sandbox test:
- Confirm that Klarna is enabled in your Adyen test account and in your Chargebee test site, and that Adyen webhooks point to your test site.
- Start a checkout in a supported currency, with a billing address in the country you want to test.
- On the Klarna page, enter the sample email address and phone number that Klarna publishes for that country. See Klarna sample customer data for the per-country shopper details, including name, address, postal code, and date of birth.
- When Klarna asks for a one-time password (OTP), enter any six-digit number other than
999999.
The email address you enter selects the scenario, where xx is the two-letter country code:
| Scenario | Email address pattern |
|---|---|
| Approved purchase | customer+xx@klarna.com |
| Declined purchase | customer+xx+denied@klarna.com |
| New Klarna user sign-up | customer+xx+new_user@klarna.com |
Keep the following points in mind while testing:
- Sample data is country-specific. The billing address country, the currency, and the sample shopper details must all belong to the same country, or Klarna refuses the payment.
- The declined purchase email (
customer+xx+denied@klarna.com) may not produce a decline in some markets, including Sweden and Norway. If the payment is not declined, contact Klarna merchant support. - The redirect flow is the same in test and live. Only the destination differs — the Klarna playground in test, and Klarna in live. In both modes, Adyen confirms the final status through a webhook, so a test isn't complete until Chargebee receives it.
Production testing
Before going live:
- Ensure Klarna is enabled in your Adyen Customer Area and in Chargebee.
- Verify webhook configuration is complete (mandatory for payment status updates).
- Confirm tokenization (recurring payments) is enabled on your Adyen merchant account if you plan to use Klarna for subscriptions.
- Perform end-to-end testing for a one-time payment and a recurring subscription renewal.
Reconciliation
For financial reconciliation between Chargebee and Adyen:
- Use the Chargebee transaction field id_at_gateway, which maps to the pspReference in Adyen.
Follow these steps to reconcile transactions:
- Retrieve the id_at_gateway value from the Chargebee transaction details.
- Locate the corresponding pspReference in Adyen reports for Klarna transactions.
- Match transactions using this reference to ensure financial consistency.
Limitations and important points
Keep the following limitations in mind when offering Klarna via Adyen:
- Klarna via Adyen currently supports the USD, CHF, DKK, EUR, GBP, NOK, and SEK currencies. Klarna approves a payment only when the country of the billing address matches the country and currency sent in the request; a mismatch can lead to the payment being refused.
- Klarna via Adyen uses a redirect-based flow. The customer is redirected to Klarna to authorize the payment and is then returned to your application, and Adyen confirms the final status asynchronously.
- Klarna requires valid line items whose total matches the transaction amount, and each line item must include a description.
- Adyen Klarna does not use a separate mandate token. The shopper reference and the stored payment method token authorize recurring charges.
- Customers can't add a new Klarna payment method from the customer portal. They can only reuse a Klarna payment method that is already saved.
- In Pay Now or Collect Now, Klarna is available as a one-time payment method only and isn't saved for future use. A saved Klarna appears only when paying a single subscription invoice.
- This integration doesn't work in in-app browsers.
Was this article helpful?