to type of paymentOverview of deviationsPayment Type | Countries | Currency |
---|
B2C | B2B | Invoice | DanmarkInvoice ("Pay later") | - Austria
- Denmark
- Finland
- Germany
|
FinlandThe AustriaSweden
| - Euro
- Danish crowns
Norwegian crowns Swedish
|
yes | no | Installment | - Danmark
- Germany
- Finland
- The Netherlands
- Norway
- Austria
- Sweden
| - Euro
- Danish crowns
Norwegian crowns Swedish crowns
| yes | no |
|
Installments ("Slice it") |
Direct Debit ("Pay now") |
UI Text Box |
---|
|
B2B transactions are currently only supported in Finland, Germany, Norway and Sweden. |
UI Text Box |
---|
|
- Klarna requires more specific customer data - depending on country of customer
- Status "PENDING" has to be processed
- for API-response "PENDING" implementation of API-version 3.11 or higher is required
- for TransactionStatus "pending" implementation of notify-version 7.6 or higher is required
- Request "capture" has to use parameter "capturemode"
- Request "debit" has to use parameter "settleaccount"
- add_paydata and workorderid have to be used for update of shopping cart
|
clearingtype | financingtype |
|
---|
fnc | Klarna payment types are handled as a financing payment |
financingtype | KLS | Klarna Installment |
financingtype | KLV | Klarna Invoice |
Klarna Checkout is divided in 3 steps.
- creating a new session via our server api
- optional: updating the session
- token-handling via klarna checkout .js
- finalizing the checkout ((pre-)authorization) via our server api
In the first step you need KIS | Klarna "Slice It" (Installments) |
fnc
| KIV | Klarna "Pay Later" (Invoice) |
fnc | KDD | Klarna "Pay Now" (Direct Debit) |
fnc | KBT | Klarna "Pay Now" (Direct Bank Transfer) |
Enabling your customers to pay via Klarna requires you to integrate the Klarna payment method into your checkout process. In order to get an overview of the relationship and interaction on your checkout please see the following diagram. (This diagram is adopted from the official Klarna documentation: Klarna Docs - Offering Klarna payment methods to your customers)
Image Added
Establishing Klarna Checkout is a 3 step process.
UI Steps |
---|
UI Step |
---|
The first step is to setup a new checkout session |
|
. You can do so genericpamynetgenericpayment-request to our server |
|
api Please make sure to send This step is a pre-condition for loading the Klarna widget. Please make sure to send the customer data within this request as |
|
they're it is needed to initiate a new session. |
|
<< Link zu genericpayment >> update sessionIf the customer leaves the checkout page and |
|
comes back laterreturns at a later point in time, you can update the created session and change for example the address data. |
|
<< Link zu genericpayment >>-handling via Klarna WidgetFinalizing the checkout ((pre-)authorization) via our server apiPart of the response is a client token. This token needs to be passed to the Klarna Widget. This Widget sends the client token together with the selected payment method (e.g. "Klarna Pay Later") to Klarna to get a authorization token. |
|
<< Link zu Widget Beschreibung >>
UI Step |
---|
In the last step, you need to send the authorization token received by Klarna widget as part of the (pre-)authorization request to our server api. |
|
<< Link zu preauth / auth >> |
Please note: there are parameter requirements for follow up requests like capture or refund listed below. |
Anchor |
---|
authorization | authorization | |
API parameter | Required | Comments |
---|
firstname | + | Mandatory - and can not be substituted by usage of company |
lastname | + | Mandatory - and can not be substituted by usage of company |
street | + | Mandatory - full address is required and must match the shipping-address |
zip | + | Mandatory - full address is required and must match the shipping-address |
city | + | Mandatory - full address is required and must match the shipping-address |
country | + | Mandatory - full address is required and must match the shipping-address |
addressaddition | + | Mandatory for NL |
shipping-address | - | Shipping-address parameters should not be used at all. If shipping-address is used it must be the same as the invoice address ! |
gender | o | Mandatory for Germany, Netherlands and Austria |
ip | + | Mandatory |
email | + | Mandatory |
telephonenumber | + | Mandatory |
birthday | o | Mandatory for Germany, Netherlands and Austria |
personalid | o | Mandatory for Sweden, Finland, Denmark and Norway |
it[n], id[n], pr[n], no[n], de[n], va[n] | + | The complete shopping cart must be specified. |
add_paydata[klsid] | o | Mandatory for Klarna Installment (KLS): Campaign code |
|
API parameter | Required | Comments |
---|
add_paydata[workorderid] | + | Klarna Invoice: Workorder ID, used for update calls |
add_paydata[reservation_txid] | + | Klarna Invoice: Reservation ID, used for update calls |
|
API parameter | Required | Comments |
---|
capturemode | + | Parameter capturemode is mandatory to indicate whether this capture will be the last one. |
settleaccount | + | Parameter settleaccount is mandatory to indicate whether a refund to the customer should be initiated. |
|
API parameter | Required | Comments |
---|
clearing_instructionnote | o | - A URL pointing to a PDF of the invoice. (If invoice by post or by e-mail isn’t activated.)
- The URL is valid for 30 days.
- This feature has to be requested.
|
|
API parameter | Required | Comments |
---|
settleaccount | + | Parameter settleaccount is mandatory to indicate whether a refund to the customer should be initiated. |
To update an order, you need to send a genericpayment-request with action=update. The call needs to provide the new list of items representing the complete shopping cart.
UI Text Box |
---|
|
- An update is only possible as long as the preauthorization is not captured completly.
- Don’t send the difference/changes, instead you need to send the complete new item list
- The amount can’t be higher as the amount of the preauthorization. A lower amount is allowed.
|
|
API parameter | Required | Comments |
---|
add_paydata[action] | + | Fixed value "update" |
add_paydata[reservation_txid] | + | Referencing the reservation (received from authorization.response -> add_paydata[reservation_txid]) |
workorderid | + | Referencing the reservation (received from authorization.response -> add_paydata[workorderid]) |
country | + | amount | + | currency | + | financingtype | + | Fixed value "KLV" |
it[n], id[n], pr[n], no[n], de[n], va[n] | + | The complete shopping cart is mandatory |
|
API parameter | Required | Comments |
---|
status | + | APPROVED / ERROR |
APPROVED | workorderid | + | ERROR | errorcode | + | errormessage | + | customermessage | + | |
API parameter | Required | Format | Comments |
---|
add_paydata[action] | + | Default | Fixed value "start_session" |
add_paydata[session_id] | o | Default | Fixed value "start_session" |
add_paydata[merchant_data] | - | BASE 64 String | "EMD" - Extra Merchant Data - means that integration with any such package depends on (i) merchant’s offering and (ii) merchant’s technical possibilities. It is not to be interpreted in such a way that EMD is not required at all. |
firstname | + | AN..50 | Mandatory - and can not be substituted by usage of company |
lastname | + | Mandatory - and can not be substituted by usage of company | street | + | Mandatory - full address is required and must match the shipping-address | zip | + | Mandatory - full address is required and must match the shipping-address | city | + | Mandatory - full address is required and must match the shipping-address | country | + | Mandatory - full address is required and must match the shipping-address | addressaddition | + | Mandatory for NL | shipping-address | - | Shipping-address parameters should not be used at all. If shipping-address is used it must be the same as the invoice address ! | gender | o | Mandatory for Germany, Netherlands and Austria | ip | + | Mandatory | email | + | Mandatory | telephonenumber | + | Mandatory | birthday | o | Mandatory for Germany, Netherlands and Austria | add_paydata[last_four_ssn] | - | Last four digits for customer social security number. | add_paydata[organization_entity_type] | - | Only relevant for B2B transactions. | personalid | o | Mandatory for Sweden, Finland, Denmark and Norway | it[n], id[n], pr[n], no[n], de[n], va[n] | + | The complete shopping cart must be specified. | add_paydata[klsid] | o | Mandatory for Klarna Installment (KLS): Campaign code |