Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Overview
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
    Overview
    Payment method integration options
    Bank debits
    Bank redirects
    Bank transfers
    Buy now, pay later
      Affirm
      Afterpay / Clearpay
      Klarna
        Accept a payment
    Credit transfers (Sources)
    Real-time payments
    Vouchers
    Wallets
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
HomePaymentsBuy now, pay laterKlarna

Accept a Klarna payment

Learn how to accept Klarna, a global buy now, pay later payment method.

Stripe automatically presents your customers payment method options by evaluating their currency, payment method restrictions, and other parameters. We recommend that you configure your payment methods from the Stripe Dashboard using the instructions in Accept a payment.

If you want to continue manually configuring the payment methods you present to your customers with Checkout, use this guide (for example, to accept payments in Subscription mode). Otherwise, migrate to the dashboard.

Klarna is a single use, immediate notification payment method that requires customers to authenticate their payment. Customers are redirected to a Klarna page, where they select among multiple payment options (immediate full payment, payment in installments, or deferred payment). When the customer accepts the terms, Klarna guarantees that the funds are available to the customer and transfers the funds to your Stripe account. The customer repays Klarna according to their selected payment option.

Before you start the integration, make sure your account is eligible for Klarna by navigating to your Dashboard payment method settings.

Determine compatibility

Supported business locations: AT, BE, DE, DK, ES, FI, GB, IE, IT, NL, NO, SE, US, FR, EE, GR, LV, LT, SK, SI

Supported currencies: eur, dkk, gbp, nok, sek, usd, czk, aud, nzd, cad, pln, chf

Presentment currencies: eur, dkk, gbp, nok, sek, usd, czk, aud, nzd, cad, pln, chf

Payment mode: Yes

Setup mode: No

Subscription mode: No

A Checkout Session must satisfy all of the following conditions to support Klarna payments:

  • Prices for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.
  • You can only use one-time line items (recurring subscription plans are not supported).

Accept a payment

Build an integration to accept a payment with Checkout before using this guide.

Use this guide to learn how to enable Klarna—it shows the differences between accepting a card payment and using Klarna.

Enable Klarna as a payment method

When creating a new Checkout Session, you need to:

  1. Add klarna to the list of payment_method_types
  2. Make sure all your line_items use the same currency.
Stripe::Checkout::Session.create({ mode: 'payment', payment_method_types: ['card'], payment_method_types: ['card', 'klarna'], line_items: [{ price_data: { currency: 'usd', # To accept `klarna`, all line items must have currency: eur, dkk, gbp, nok, sek, usd, czk, aud, nzd, cad, pln, chf currency: 'eur', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', })

Fulfill your orders

After accepting a payment, learn how to fulfill orders.

Test your integration

When testing your Checkout integration, select Klarna as the payment method and click the Pay button. In test mode, you can then simulate different outcomes within Klarna’s redirect.

Below, we have specially selected test data for the currently supported customer countries. In test mode, Klarna approves or denies a transaction based on the supplied email address.

ApprovedDenied
Emailuser-at@example.comuser-at+denied@example.com
StreetKlarna-Straße 1/2/3Klarna-Straße 1/2/3
CityHausmannstättenHausmannstätten
Postal code80718071
Phone0676 26666660676 2888888

For production testing, you can use an amount of 3500 in your local currency to test all Klarna payment options besides Financing. For example, if you want to test “Pay in 3” in Italy, you can use a transaction of 35.00 EUR.

Two-step authentication

Any six digit number is a valid two-step authentication code. Use 999999 for authentication to fail.

Repayment method

Inside the Klarna flow, you can use the following test values to try various repayment types:

TypeValue
Direct DebitDE11520513735120710131
Bank transferDemo Bank
Credit Card
  • Number: 4111 1111 1111 1111
  • CVV: 123
  • Expiration: any valid date in the future

Handle refunds and disputes

Learn more about Klarna disputes and refunds.

Was this page helpful?
Questions? Contact Sales.
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Determine compatibility
Accept a payment
Test your integration
Handle refunds and disputes
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$