Skip to main content
Accept Klarna payments with Adyen as the payment service provider (PSP). The customer selects a Klarna option, confirms the purchase on a Klarna page and returns to your site.

Supported workflows

Klarna payment method codes

Adyen offers three Klarna products, and Payrails treats each one as its own payment method. Send the code for the product the customer selects. Payrails doesn’t route the generic klarna code to Adyen. Adyen filters the Klarna products by amount and country, so lookup can return only some of them for a given basket. Klarna Pay Over Time has a minimum amount that depends on the market.

Before you begin

Complete these steps before you send your first Klarna payment through Adyen:
  1. Set up an Adyen integration in your workspace. Follow the Adyen integration setup guide if you don’t have one yet.
  2. Ask Adyen to enable the Klarna products you need on your Adyen merchant account, for the countries you sell in.
  3. In the Payrails Portal, go to Settings → Integrations, open your Adyen integration, select Klarna Pay Later, Klarna Pay Now or Klarna Pay Over Time under Payment methods, and save.
  4. Add each Klarna product as a payment option in your workflow.

Request fields for Adyen

Send these fields in the authorize request, in addition to the standard authorize fields. Payrails checks Required fields and returns an error when one is missing. Fields required by the PSP pass the Payrails checks but the PSP can decline the payment without them.

Authorize a Klarna payment

Call authorize a payment with klarnaPayLater, klarnaPayNow or klarnaPayOverTime as the paymentMethodCode. The response includes the redirect to Klarna.
Authorize request
This example saves the instrument. Leave out storeInstrument and paymentInstrumentData for a one-off payment. After the customer confirms the purchase, Klarna returns them to your success or error URL. Confirm the result through webhook notifications or the execution status before you fulfill the order.

How Adyen handles Klarna

  • With delayed capture, Payrails sends the payment to Adyen as a pre-authorization. When Adyen captures it depends on the Klarna capture setting of your Adyen merchant account. With instant capture, Payrails asks Adyen to capture straight away.
  • Payrails doesn’t restrict the currency. Use a currency Klarna supports for the customer’s country, or Adyen declines the payment.
  • To save the instrument, set storeInstrument to true on the payment composition. Adyen returns a recurring reference, and Payrails stores it as a PSP token.
  • For an MIT, send the stored PSP token, keep the same Klarna code as the paymentMethodCode, and use Subscription or Unscheduled as the processing type. Payrails rejects CardOnFile and any MIT without a stored token. The basket fields in the preceding table are still required, and the payment completes without a redirect.
Last modified on October 2, 2026