When integrating Klarna payments, the final authorization is a critical step when the step-up scenario occurs. This guide walks you through the creation of a transaction using the payment_token
provided by Klarna.
After the customer completes their purchase via Klarna, the Payment Request transitions to the COMPLETED
state. At this point:
payment_token
which must be secured through Klarna Webhookspayment_token
to authorize the payment within 60 minutes to finalize the transaction.payment_transaction_id
required for future transaction management.Important: If you do not authorize within 60 minutes, the transaction will be invalidated.
The below diagram shows the customer journey and Acquiring Partner workflow, illustrating:
This step is required only if the purchase was part of the payment authorization process. You can ignore this step for pure tokenization flows.
Final authorization functions the same across all integration methods. If it has already been implemented—for example, with a server-only integration for one-time payments—it can be reused without modification.
The acquiring partner must use the payment_token
to perform a second call to Klarna's Payment Authorize API.
Parameter name | Description |
---|---|
The unique identifier of the Partner account. This is used to scope the request. |
Parameter name | Description |
---|---|
Acquiring Partners use their Klarna API key to authenticate:Basic <API key> | |
The payment_token received as part of the step-up scenario. |
Parameter name | Description |
---|---|
Currency in ISO 4217 format (e.g., "USD"). | |
Represents a request to authorize a payment transaction, this object contains the following parameters:
|
Sample Request
The payment_token
must be passed in the Klarna-Payment-Token
HTTP header.
curl https://api-global.test.klarna.com/v2/accounts/{partner_account_id}/payment/authorize \
-H 'Authorization: Basic <API key>' \
-H 'Content-Type: application/json' \
-H 'Klarna-Payment-Token: krn:payment:eu1:payment-token:...' \
-d '{
"currency": "USD",
"request_payment_transaction": {
"amount": 11800,
"payment_transaction_reference": "acquiring-partner-transaction-reference-1234"
}
Upon successful authorization, the response body includes the payment_transaction_id
, which you'll use for payment transaction management actions.
The response will contain a payment_transaction_response object with the following parameters:
Parameter name | Description |
---|---|
The result parameter which specifies the outcome of the authorization.In case of a successful Authorization the result will be set to APPROVED | |
The payment_transaction object represents a single payment transaction This object is only returned if the payment_transaction_response.result is set to APPROVED The payment_transaction_id returned is necessary to manage the Payment Transaction through the Payment Transaction API. |
Sample response
{
"payment_transaction_response": {
"result": "APPROVED",
"payment_transaction": {
"payment_transaction_id": "krn:payment:eu1:transaction:6debe89e-98c0-[...]",
"payment_transaction_reference": "acquiring-partner-transaction-reference-1234",
"amount": 11800,
"currency": "USD",
"payment_funding": {...},
"payment_pricing": {...}