Final authorization

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:

  • Klarna returns a payment_token which must be secured through Klarna Webhooks
  • You must use this payment_token to authorize the payment within 60 minutes to finalize the transaction.
  • Successful authorization will generate a 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:

  • The handoff from Klarna to the Partner after purchase.
  • The sequence from receiving the payment token to finalizing the payment​.

The acquiring partner must use the payment_token to perform a second call to Klarna's Payment Authorize APIAPI.

Request parameters

Path
Parameter nameDescription

partner_account_idAPI

The unique identifier of the Partner account. This is used to scope the request.
Header
Parameter nameDescription

AuthorizationAPI

Acquiring Partners use their Klarna API key to authenticate:
Basic <API key>

Klarna-Payment-TokenAPI

The payment_token received as part of the step-up scenario.
Body
Parameter nameDescription

currencyAPI

Currency in ISO 4217 format (e.g., "USD").

request_payment_transactionAPI

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​.

SHELL
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 endpoint is idempotent, so repeated requests with the same token return the same result, ensuring safe retries​.

Response parameters

The response will contain a payment_transaction_responseAPI object with the following parameters:

Body
Parameter nameDescription

resultAPI

The result parameter which specifies the outcome of the authorization.
In case of a successful Authorization the result will be set to APPROVED

payment_transactionAPI

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_idAPI  returned is necessary to manage the Payment Transaction through the Payment Transaction APIAPI.

Sample response

JSON
{
  "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": {...}