The Settlements API is the recommended approach for managing large volumes of Settlement reports. For a complete overview of all available report formats (JSON, CSV, and PDF), delivery channels, and column definitions, see
Settlement report types.
Steps for reconciliation:
List settlements: Use the List Settlements request to retrieve a list of settlements over a specific period. You can filter results by time frame, currency, or acquiring entity. The response includes sufficient information to match a payment to its associated settlement report.
Retrieve settlement report: Use the
Get settlement details
to get detailed information about a specific settlement, including the total settlement amount and amounts per transaction type.
Transaction-level reconciliation: Use the
List settlement transactions
request to retrieve transaction-level details for more granular reconciliation.
Extract key data: Review key transaction data such as capture amounts, fees, and VAT.
Get payout details: Use the
Get Payout status
to obtain details about a specific payout, including the payout amount, currency and status.
Compare totals: Ensure totals for captures, refunds, fees, and chargebacks match your internal data. For each line in the settlement file, amount reflects the base amount and tax_amount is listed separately. Both are deducted from the statement. For example, if a fee line shows a amount of -20 and a tax_amount of -4, the total deduction from the statement will be 24.
Validate VAT: Use the
tax_amount field to ensure VAT is calculated correctly.
If CSV format is preferred, steps 2 and 3 can be replaced with a call to the
Get Settlement Report
endpoint.
More information on the requests involved in settlements, and the data contained within the detailed settlement file are available in the
API Reference
.
SFTP
Klarna-hosted SFTP is an alternative option for handling Settlement reporting if Klarna's Settlements API and webhooks cannot be used. You may still subscribe to the
Settlement Report Created webhook to receive notifications when Settlement reports become available in the SFTP.
Setting up your Klarna SFTP
Using your Klarna API credentials (
Account credentials), you may generate SFTP credentials. These credentials include a username and password, which must be stored securely by you.
Klarna's SFTP does not support alternative authentication strategies such as Oauth at this time.
The Klarna SFTP details are:
| Production | Test |
|---|
| Address | merchants.sftp.klarna.com | sftp.playground.klarna.net |
| IP* | 18.200.222.131 34.252.46.31 52.210.39.241
| 52.213.194.133 52.215.64.82 54.154.80.99
|
| Protocol | SFTP | SFTP |
| Port | 4001 | 4001 |
*If your security infrastructure requires allowlisting, you must allowlist all listed IPs.
Retrieving Settlement Reports from Klarna SFTP
If you have multiple Acquiring Partner Accounts (i.e. you maintain multiple acquiring entities), you can access all reports tied to the same Partner Account ID from one directory, regardless of the specific acquiring entity.
SFTP file contents and formatting
Every Settlement Report in the SFTP follows a specific file-naming convention:
<file_name_prefix><payment_reference_prefix><payment_reference><currency>_<timestamp>.<format>
| Element | Description |
|---|
file_name_prefix | Optional. See “Settlement report file name prefix". |
payment_reference_prefix | Optional. See “Payment reference prefix (payouts) |
payment_reference | Klarna-generated payment reference. |
currency | ISO 4217 code (for example, SEK, EUR, USD). |
timestamp | UTC timestamp of report generation (start of day, for example 20251015Z) |
format | Report export format (for example, csv). |
Examples:
With both prefixes: ACME_ABCD123456789_SEK_20251015Z.csv
With only a payment reference prefix:ABCD123456789_SEK_20251015Z.csv
Settlement report filename prefix
Partners can request an optional file name prefix for settlement reports.
Validation rules:
Maximum length: 200 characters.
Allowed characters: uppercase and lowercase English letters (A–Z, a–z), digits (0–9), underscore (_), and hyphen (-).
Example validation pattern: ^[A-Za-z0-9_-]{1,200}$
Placement: When configured, the prefix is prepended to the settlement report file name as shown in the file name format above.
Content and formatting
All data contained within the SFTP file will mirror the .csv output of the following API request:
The example provided in the API documentation is the source of truth for structure, formatting, field names, and content of the Settlement Report delivered via SFTP.
Handling failed SFTP settlement file uploads
In the exceedingly rare case that Settlement files fail to upload to the SFTP, Klarna requeues the file for manual intervention. These failures are handled within your contractual SLA with Klarna.
Settlement webhooks
You may choose to receive immediate notifications when certain settlement events occur. The structure of the payload will vary based on the event type, however the metadata will always follow the structure documented in the Configure Klarna Webhook section.
All Settlement webhooks contain these data points:
| Parameter | Definition |
|---|
settlement_id | The unique identifier of a settlement. |
settlement_amount | Total amount of this settlement. |
currency | The currency of the transaction. |
payment_acquiring_account_id | Unique account identifier assigned by Klarna to the Acquiring Account. |
payment_acquiring_account_reference | Reference for the Acquiring Account. |
When a settlement is done, the first webhook will probably be the settlement.payout.processed, shortly followed by settlement.report.created and settlement.report.uploaded-to-sftp. A day or so later, the payout status webhook will be sent.
Settlement report generation webhooks
| Use case | When | Additional payload | Event name |
| Settlement Report available on API | When the Settlement data has been processed and is available in any format in the API. | links (links to reports) | settlement.report.created |
| Settlement Report sent to SFTP | When the settlement reports have been uploaded to the SFTP | | settlement.report.uploaded-to-sftp |
Settlement payout webhooks
In addition to the common data points shared by all settlement webhooks, the payout webhooks also contain:
| Parameter | Definition |
|---|
payout_id | The unique identifier of a payout. |
paid_out_at | The date when Klarna initiated the payout. It usually takes one banking day until the funds are credited to your bank account. |
payout_bank_account_reference | A reference to the bank account to which the payout is done. |
payment_reference | The payment reference used for the payout, will be shown on the bank account statement. |
Settlement payouts generation webhooks
| Use case | When | Additional payload | Event name |
| Settlement payout processed | The payout has been processed by Klarna and will shortly be executed. | | settlement.payout.processed |
| Settlement payout confirmed | The payout confirmed by our banking partner. Note that in rare cases an intermediary or the recipient’s bank may still reject it. If that happens, it will be marked failed and we’ll send a failure webhook. | | settlement.payout.confirmed |
| Settlement payout failed | The payout failed. See status_reason for the specific cause. | status (status reasons) | settlement.payout.failed |
Settlement report content
For a detailed breakdown of all report formats (JSON, CSV, PDF), column definitions, CSV formatting conventions, and transaction types, see
Settlement report types.