Integrate the Payment Dispute API to manage disputes programmatically—receive real-time notifications, submit evidence, and track outcomes through the complete lifecycle.
Using Klarna's API, Partners can seamlessly upload evidence, respond to disputes, submit appeals for arbitration decisions, and retrieve detailed information on each dispute.
Webhooks keep Partners informed in real time by notifying key dispute-related events as they occur. This integration empowers Partners to handle disputes efficiently, ensure timely responses, and maintain full visibility throughout the dispute lifecycle.
Klarna webhooks allow you to receive real-time notifications about dispute activities. This proactive communication enables you to respond swiftly to any dispute-related events, minimizing the risk of delayed responses or escalations. As soon as you receive a notification, evaluate the information and prepare to take the necessary actions, whether it’s gathering evidence, reviewing the dispute, or preparing a response. Dispute webhooks are categorized into two main types: state changes and updates.
Enablement of webhooks allows for:
Immediate awareness of dispute events.
Reduced response times.
Proactive management of disputes before deadline expires.
Subscribe to webhook events:
payment.dispute.state-change - Dispute state transitions (INITIATED, REPRESENTMENT, PRE_ARBITRATION, ARBITRATION, CLOSED)
payment.dispute.updated - Details updated without state change (deadline extended, amount adjusted)
Contact your Klarna technical point of contact to enable webhook subscriptions for your integration.
State change webhooks notify Merchants of transitions between dispute states as part of the dispute lifecycle. payment.dispute.state-change, tracks transitions between dispute states below:
Accept the loss of the dispute when the dispute is in INITIATED or PRE_ARBITRATION state. The dispute will transition to state CLOSED with outcome LOST.
Upload a Merchant evidence attachment using multipart/form-data. The response returns a payment_dispute_attachment_id that you can reference when using the respond endpoint. Supported file type: PDF. Maximum file size is 7MB.
Request Body
file : The file to upload as binary data. This field is required and must contain the actual file content. Supported file type is: PDF (.pdf). Maximum file size is 7MB.
filename : Optional filename for the uploaded attachment. If not provided, the original filename from the uploaded file will be used. If provided, the file extension must match the extension of the uploaded file. Maximum length is 1000 characters (excluding the file extension)
Use this endpoint to submit Merchant information by providing a document containing all relevant information when the dispute is in INITIATED state.
Optionally, include partner_proposed_refund_amount to propose a partial refund while providing evidence for why the remaining amount should not be refunded. The dispute will transition to state REPRESENTMENT for Klarna review after submission.
Request Body
Attachments - List of evidence files provided by the Merchant to support the dispute response. Merchant can upload one or more files.
additional_information - Any free text you wish to provide alongside your attachments when responding to a representment request. Klarna will review this information alongside your attachments when evaluating your representment case.
partner_proposed_refund_amount - The amount, in minor currency units, that the Merchant proposes to refund instead of the whole dispute amount. This is in the settlement currency. Must be less than the full disputed amount.
Replace {payment_dispute_id} with the ID of the payment dispute.
Insert your actual Klarna API basic authorization string.
Replace "payment_dispute_attachment_id" with the actual attachment/file ID from Klarna’s file upload API.
Edit "description", "additional_information", and "partner_proposed_refund_amount" (amount in minor currency units) as appropriate.
Ensure "attachments" is a non-empty array with at least one attachment object
Omit optional keys (description, additional_information, partner_proposed_refund_amount) if not used.
Response
JSON
1
2
3
4
5
6
7
8
9
10
{
"state": "REPRESENTMENT",
"created_at": "2024-03-16T09:45:00Z",
"additional_information": "The order was successfully delivered on March 15, 2024. Please see attached proof of delivery documentation with customer signature.",
"attachments": [
{
"payment_dispute_attachment_id": "krn:payment:eu1:dispute:123456789:attachment:1",
"description": "Proof of delivery documentation"
}
]
Use this endpoint to submit an appeal for a preliminary dispute decision by providing a summary of the reasons why the decision is considered incorrect when the dispute is in PRE_ARBITRATION state. The dispute will transition to state ARBITRATION while Klarna will review the appeal information.
Request Body
additional_information : Detailed explanation of why the preliminary decision is considered incorrect. Klarna will review this information when reconsidering the preliminary decision during the arbitration phase.
CONSOLE
1
2
3
4
5
6
7
8
curl -X POST \
"https://api.klarna.com/v4/payment/disputes/{payment_dispute_id}/appeal" \
-H "Authorization: Basic {klarna_live_api_****}" \
-H "Content-Type: application/json" \
-d '{
"additional_information": "We believe the preliminary decision is incorrect because we have proof of delivery with customer signature. The tracking shows the package was delivered and signed for by the customer on the expected date."
}'
Note
Replace {payment_dispute_id} with the dispute ID.
Replace {klarna_live_api_****} with your actual Klarna API credentials (base64 encoded).
Replace the text for additional_information with your detailed explanation for the appeal.
Response
JSON
1
2
3
4
5
6
{
"state": "ARBITRATION",
"created_at": "2020-05-09T09:32:18Z",
"additional_information": "We believe the preliminary decision is incorrect because we have proof of delivery with customer signature. The tracking shows the package was delivered and signed for by the customer on the expected date."
}
Download an attachment file associated with the dispute. This can be either a partner-submitted evidence attachment or a customer-provided evidence attachment. If the attachment_id does not belong to the specified dispute_id, a 404 error will be returned.
Replace {payment_dispute_attachment_id} with the attachment ID you wish to download.
Replace {klarna_live_api_****} with your Klarna API credentials (base64 encoded).
Replace output_filename.ext with the name you want to save the downloaded file as (e.g., evidence.pdf).
Consult listDisputes endpoint for a complete description of the request body parameters.
Merchants who handle disputes through their own dashboard or platform are required to integrate with Klarna’s dispute webhooks and API. This integration ensures a seamless dispute management experience with Klarna, consistent with other payment methods. By adopting these best practices, Merchants can safeguard their finances, resolve cases efficiently, and maintain strong, trust-based customer relationships. Effective dispute management also reduces chargebacks and enhances customer loyalty.
Alternate dispute solution
For Merchants who do not have a built-in dispute management flow or Merchant-facing dashboard, access to Klarna’s Merchant Portal may be provided. This enables direct handling of disputes through Klarna’s interface.
Even in these cases, integrating Klarna’s dispute webhooks is recommended. This gives Merchants real-time visibility into potential risks and outstanding dispute cases.
Best Practices for Integrating Your Disputes Infrastructure with Klarna
Integrate response capabilities: Ensure your dispute management system is integrated with Klarna’s Dispute API and webhooks, allowing direct submission of responses from your platform.
Submit evidence and responses: Merchants should upload all relevant documentation—such as shipping receipts, tracking numbers, and customer communications—directly through their own system. This information is then transmitted to Klarna for review.
Monitor submission status: Track the status of all submitted evidence to confirm successful delivery and receipt by Klarna, ensuring nothing is missed and timelines are met.
By enabling Merchants to manage disputes within their own existing systems, the overall process is streamlined, increasing the likelihood of timely, well-supported dispute resolution.