Payments

Connect Klarna

Your application calls one EchoRelay URL. When Klarna changes its API, you update the mapping, not your application.

How Klarna signs requests

An API key in the Authorization header, written as Basic followed by the key.

Can you connect it today?

Yes. Add an API-key-in-a-header credential with the header name Authorization and the value Basic, a space, then your API key.

A sample mapping

Your application sends the first request below. The mapping turns it into the body of POST /payments/v1/sessions, shown second.

Your request

{
    "country": "SE",
    "currency": "SEK",
    "locale": "sv-SE",
    "total": 10000,
    "lines": [
        {
            "name": "T-shirt",
            "quantity": 1,
            "unitPrice": 10000,
            "total": 10000
        }
    ]
}

What Klarna receives

{
    "purchase_country": "SE",
    "purchase_currency": "SEK",
    "locale": "sv-SE",
    "order_amount": 10000,
    "order_lines": [
        {
            "name": "T-shirt",
            "quantity": 1,
            "unit_price": 10000,
            "total_amount": 10000
        }
    ]
}

The mapping

{
    "$schema": "https://schemas.echorelay.dev/transform/mapping/v1.json",
    "root": {
        "type": "object",
        "id": "root",
        "properties": {
            "purchase_country": {
                "type": "field",
                "id": "country",
                "path": "country"
            },
            "purchase_currency": {
                "type": "field",
                "id": "currency",
                "path": "currency"
            },
            "locale": {
                "type": "field",
                "id": "locale",
                "path": "locale"
            },
            "order_amount": {
                "type": "field",
                "id": "amount",
                "path": "total"
            },
            "order_lines": {
                "type": "arrayMap",
                "id": "lines",
                "source": {
                    "type": "field",
                    "id": "line-list",
                    "path": "lines"
                },
                "element": {
                    "type": "object",
                    "id": "line",
                    "properties": {
                        "name": {
                            "type": "field",
                            "id": "line-name",
                            "path": "name"
                        },
                        "quantity": {
                            "type": "field",
                            "id": "line-quantity",
                            "path": "quantity"
                        },
                        "unit_price": {
                            "type": "field",
                            "id": "line-unit-price",
                            "path": "unitPrice"
                        },
                        "total_amount": {
                            "type": "field",
                            "id": "line-total",
                            "path": "total"
                        }
                    }
                }
            }
        }
    }
}

The grammar, the answer mapping and the dry run are in the mapping docs.

What you bring

This is not a ready-made connector. You bring a sample request or Klarna’s OpenAPI document, you or your agent write the mapping, and we run the integration you define.

Klarna facts on this page were read 2026-10-29 from Klarna API authentication, Klarna Payments API reference. Another service? Check it here.

Connect everything. Deploy nothing.

No credit card required.