Klarna
This section covers the various flows offered by Klarna.
Klarna Country Availability
Note
The availability of payment methods per country depends on the merchant vertical.
Country | Currency Code | Pay Now (instruments vary by market) | Pay Later (in 30 days) | Pay in Parts (Pay in 3/4, in 0, 30 and 60 days) | Financing (6 - 36 months) |
---|---|---|---|---|---|
Sweden | SEK | ✅ | ✅ | ✅ | ✅ |
Norway | NOK | ✅ | ✅ | ✅ | ✅ |
Denmark | DKK | ✅ | ✅ | ✅ | – |
Finland | EUR | ✅ | ✅ | ✅ | ✅ |
Germany | EUR | ✅ | ✅ | ✅ | ✅ |
Austria | EUR | ✅ | ✅ | ✅ | ✅ |
Netherlands | EUR | ✅ | ✅ | ✅ | – |
United Kingdom | GBP | ✅ | ✅ | ✅ | (Opt-in process) |
Belgium | EUR | ✅ | ✅ | ✅ | – |
Switzerland | CHF | ✅ | ✅ | ✅ | – |
Italy | EUR | ✅ | ✅ | ✅ | – |
Spain | EUR | ✅ | ✅ | ✅ | – |
France | EUR | ✅ | ✅ | ✅ | – |
Portugal | EUR | ✅ | ✅ | ✅ | – |
Poland | PLN | ✅ | ✅ | ✅ | – |
Payment Method Properties
Available country codes | See table |
Processing (Presentation) currencies | See table |
Settlement currencies | See table |
Consumer currencies | See table |
Channel member tag | klarna |
Scheme name in the settlement file | Klarna |
Minimum transaction amount | Fair Financing (country and time period dependent) AT, DE: 6m=25 EUR, 12m=120 EUR, 24m=1,000 EUR, 36m=1,500 EUR FI: 6m=25 EUR, 12m=500 EUR, 24m=1,000 EUR, 36m=1,500 EUR NO: 6m=250 NOK, 12m=5,000 NOK, 24m=10,000 NOK, 36m=15,000 NOK SE: 6m=250 SEK, 12m=5,000 SEK, 24m=10,000 SEK, 36m=15,000 SEK Pay in 3 35 EUR, 25 GBP or 350 DKK Pay Later AT, DE: 0.1 EUR all other countries: 1 EUR or equivalent Pay Now 0 EUR, 0 SEK or 0 CHF |
Maximum transaction amount | Fair Financing Max limit set by Klarna Pay in 3 1000 EUR, 1000 GBP or 50,000 DKK Pay Later BE: 1,500 EUR (new users), 2,500 EUR (returning users) AT, FI, DE, NL: 5000 EUR 50,000 DKK, 75,000 NOK, 7,000 PLN, 100,000 SEK, 1,000 CHF, 600 GBP Pay Now 15,000 EUR, 150,000 SEK or 15,000 CHF |
Session timeout | 48 hours |
Refund | Full, partial and multiple partial refunds are all available. |
Refund Validity | 365 days |
Chargeback | Yes |
Integration Type | Asynchronous |
Sandbox | Scheme-hosted |
Transaction Flow
- The consumer selects to pay with Klarna in the merchant checkout.
- The merchant creates a payment request to your system.
- Your system forwards the payment request to PPRO.
- PPRO creates an order session at Klarna to create the Klarna HPP.
- After Klarna responds, PPRO forwards you the response.
- The merchant redirects the consumer to a Klarna HPP page where they continue with the payment.
- The consumer selects the Klarna payment method they prefer based on availability (country, merchant).
- After confirming the payment with one of Klarna’s payment methods (Pay now, Pay later, Financing), the consumer is redirected to the merchant’s success page.
Klarna Integration
Specific input parameters for the TRANSACTION call
Field Name | M/O/C | Type | Description |
---|---|---|---|
specin.taxamount | M | numeric | The total tax amount of the order in the currency's minor units. This information is essential to provide detailed purchase information to the consumer (e.g., on the invoice). |
specin.paymentmethodcategory | O | ascii | The payment method category: - DIRECT_DEBIT - DIRECT_BANK_TRANSFER - PAY_NOW - PAY_LATER - PAY_OVER_TIME See Klarna documentation about Payment Method Categories.If no value is set, this parameter defaults to the configuration set when PPRO boards the merchant with Klarna. |
transientin.billingaddress | O | utf-8 | The billing address. It is passed as a URL-encoded serialized JSON string (see Klarna documentation about the billing address). Make sure you follow Klarna's postal code validation rules. |
transientin.emd | O | utf-8 | Stands for "Extra Merchant Data”, a pass-through field containing additional information about the merchant and the transaction. It is passed as an URL-encoded JSON string. Corresponds to the attachment.body of the Create Payment Session call. |
transientin.hpptitle | O | utf-8 | The title of the hosted payment page, displayed in the browser’s tab. If not set, defaults to the title set in the merchant configuration provided during the boarding process. |
transientin.logourl | O | ascii | URL of the merchant’s logo to be displayed on Klarna’s hosted payment page. If not set, defaults to the logo set in the merchant configuration. |
transientin.orderitems | M | utf-8 | The items being purchased. Passed as URL-encoded serialized JSON string (see Klarna documentation about Order Lines) |
transientin.customer | O | utf-8 | Consumer information to be forwarded to Klarna as a URL-encoded serialized JSON string (see Klarna documentation about Customer data). Sending the date_of_birth field prevents Klarna from prompting it in their hosted payment page. |
transientin.purchasetype | O | ascii | The type of purchase being made. Defines, for example, the label of the button on Klarna’s hosted payment page: - BUY - RENT - BOOK - SUBSCRIBE - DOWNLOAD - ORDER - CONTINUE It can also be set in the merchant configuration. If not specified, defaults to CONTINUE . |
transientin.shippingaddress | O | utf-8 | The shipping address. Passed as URL-encoded serialized JSON string. Defaults to transientin.billingaddress Make sure you follow Klarna's postal code validation rules. |
transientin.backgroundimages | O | utf-8 | The images to be used as a background on Klarna’s payment page (the image best matching the resolution will be used). This is a pass-through field. Check Klarna’s documentation for more information about the correct format. This value can also be set in the merchant configuration. |
For standard input parameters, see Input parameters for the TRANSACTION call.
Specific output parameters for the TRANSACTION call
Field Name | Type | Description |
---|---|---|
SPECOUT.SCHEMEORDERID | ascii | The order ID that Klarna returns after the order placing an order in their system. |
SPECOUT.PROVIDERERRORCODE | ascii | The error code displayed in case of a failed TRANSACTION call. |
SPECOUT.PROVIDERERRORMESSAGE | ascii | A human-readable error message displayed in case of a failed TRANSACTION call. |
SPECOUT.BILLINGCATEGORY | ascii | The category PPRO uses for billing. PPRO generates this category to group the payment methods according to their fees and match them with the pricing/product categories Klarna uses in the partner tools. Not Klarna-provided. Possible values: - PAY_LATER - PAY_NOW - PAY_IN_PARTS - FINANCING |
SPECOUT.AUTHORIZEDPAYMENTMETHOD | ascii | The final payment method used for the transaction. This value can be different from the payment method category sent as a specin. Possible values: - invoice - fixed_amount - fixed_sum_credit - alternative_payment_method' - direct_debit - direct_bank_transfer' - Pay_later_by_card' - card - Pay_by_card - slice_it_by_card |
For standard output parameters, see Output parameters for the TRANSACTION call.
TRANSACTION call input
tag=klarna
txtype=TRANSACTION
countrycode=DE
currency=EUR
amount=40000
merchanttxid=RfxeZyceEj2v
preferredlanguage=en
login=johndoe
password=wXBrpVporFVjGO4R
contractid=JOHNDOE
channel=testchannel
merchantredirecturl=https%3A%2F%2Fmyurl.com%2Fwork%2Fppro2%2Flanding.php
notificationurl=https%3A%2F%2Fmyurl.com%2Fwork%2Fppro2%2Fnotification.php
specin.dynamicdescriptor=DynDescriptor
accountholdername=John+Doe
specin.paymentmethodcategory=PAY_LATER
specin.taxamount=3636
transientin.orderitems=%5B%7B%22name%22%3A%22BatteryPowerPack%22%2C%22quantity%22%3A1%2C%22tax_rate%22%3A1000%2C%22total_amount%22%3A10000%2C%22total_discount_amount%22%3A550%2C%22total_tax_amount%22%3A909%2C%22unit_price%22%3A10550%7D%2C%7B%22name%22%3A%22BatteryPowerPack%22%2C%22quantity%22%3A1%2C%22tax_rate%22%3A1000%2C%22total_amount%22%3A10000%2C%22total_discount_amount%22%3A550%2C%22total_tax_amount%22%3A909%2C%22unit_price%22%3A10550%7D%2C%7B%22name%22%3A%22BatteryPowerPack%22%2C%22quantity%22%3A1%2C%22tax_rate%22%3A1000%2C%22total_amount%22%3A10000%2C%22total_discount_amount%22%3A550%2C%22total_tax_amount%22%3A909%2C%22unit_price%22%3A10550%7D%2C%7B%22name%22%3A%22BatteryPowerPack%22%2C%22quantity%22%3A1%2C%22tax_rate%22%3A1000%2C%22total_amount%22%3A10000%2C%22total_discount_amount%22%3A550%2C%22total_tax_amount%22%3A909%2C%22unit_price%22%3A10550%7D%5D
transientin.billingaddress=%7B%22city%22%3A%22Munich%22%2C%22country%22%3A%22DE%22%2C%22email%22%3A%22test.customer%40mpay.int%22%2C%22phone%22%3A%2207792555555%22%2C%22region%22%3A%22Scotland%22%2C%22family_name%22%3A%22Doe%22%2C%22given_name%22%3A%22John%2BDoe%22%2C%22organization_name%22%3A%22MPGS%22%2C%22postal_code%22%3A%22EH12%2B3AB%22%2C%22street_address%22%3A%22Ocean%2BPoint%22%2C%22street_address2%22%3A%22Ocean%2BDrive%22%7D
transientin.shippingaddress=
transientin.emd=
transientin.hpptitle=
transientin.purchasetype=
transientin.logourl=
returnmode=urlencodeext
Note
For non B2B customers the organization_name field in the billingaddress is forbidden.
Please, use the value like below:
transientin.billingaddress=%7B%22city%22%3A%22Munich%22%2C%22country%22%3A%22DE%22%2C%22email%22%3A%22test.customer%40mpay.int%22%2C%22phone%22%3A%2207792555555%22%2C%22region%22%3A%22Scotland%22%2C%22family_name%22%3A%22Doe%22%2C%22given_name%22%3A%22John%2BDoe%22%2C%22postal_code%22%3A%22EH12%2B3AB%22%2C%22street_address%22%3A%22Ocean%2BPoint%22%2C%22street_address2%22%3A%22Ocean%2BDrive%22%7D
TRANSACTION call output
REQUESTSTATUS=SUCCEEDED
&STATUS=SUCCEEDED
&TXID=754422312
&ERRMSG=
&CHANNEL=testchannel
&TAG=klarna
&PAYMENTGUARANTEE=NONE
&REDIRECTSECRET=gDVEXOCBLYdj5miWcjuBF0odCE5JKcmU
&SPECOUT_AUTHORIZEDPAYMENTMETHOD=invoice
&SPECOUT_BILLINGCATEGORY=PAY_LATER
&SPECOUT_SCHEMEORDERID=b5a2be9c-14fb-29b8-943b-47052e37c1dd
Additional Information
Before you go live
- Access Klarna's Demo Store to try out Klarna payments in a country of your choice.
- Before you accept live payments, test your integration using the test details provided by Klarna.
- Make sure to use the following country-specific sample data.
- Consider Klarna's T&Cs based on your commercial agreement with PPRO.
- Follow the Klarna guidelines on how to display Klarna in the checkout.
- Ensure order lines and VAT are transmitted correctly to Klarna and displayed accurately on the Klarna pages.
- If a consumer gets rejected by Klarna, offer them another payment method but not the same Klarna method.
- Make sure you use Klarna's phone number format standards. To see the expected phone number format standards for every Klarna-supported country, go to this page.
- Stay up-to-date with the information required for every country.
Testing and integration
If you wish to give your merchants access to run a live test in the production environment, follow the recommendations below:
- Provide real consumer data: real name, personal email, personal mobile, and home and billing address. Using test data interferes with the credit/risk checks that Klarna performs on each transaction.
- Don't provide a company address as a billing address.
- Choose an item with a reasonable amount that meets Klarna's minimum requirements. Klarna can reject a request if the product is too expensive, and they do not have enough transaction history for the consumer.
- Don't perform multiple tests in a short period from the same device or IP address. Doing this will trigger velocity rule checks, which will lead to a rejected transaction due to the scheme blocking the merchant's Klarna ID.
- Klarna test data (relevant only on PPRO test) can be found at the following Klarna website.
- Redirecting the consumer: In case you get a PENDING response that contains a REDIRECTURL, redirect the consumer to that URL. Store the REDIRECTSECRET in the session or persistent storage to be able to verify the response later (see Redirect to MerchantRedirectURL - shared secret). This redirect can be performed by HTTP GET (302 redirect).
Klarna Merchant Portal Information
You'll get access to the Klarna Merchant Portal. You'll receive an activation email at the address that you provide during onboarding.
In the Klarna Merchant Portal, you'll have access to the following Klarna Apps:
- Users App: You'll get one user created when creating the account, but you can add users to the Klarna Merchant Portal and manage their permissions.
- Orders App: View and manage Klarna orders.
- Branding App: Manage how to display your brand assets on Klarna’s customer touchpoints.
- On-Site Messaging App: Manage how you communicate the different Klarna payment options to your customer.
Sending extra merchant data
Caution
The external merchant data is not the same as
orderitems
.
Merchants can, for example, enable purchasing airline tickets using Klarna. For this scenario, and others, make sure you follow Klarna's recommendations for sending extra merchant data. See this guide for details and examples of external merchant data. More API details can be found here.
Important
PPRO does not validate extra merchant data. Make sure you send the correct information.
Branding Guidelines
For information regarding branding, see the Klarna official website.
Updated about 1 month ago