Download OpenAPI specification:Download
The Disputes API offers Klarna partners and merchants an easy way to handle customer disputes.
Use the available endpoints to:
Klarna merchants consuming Disputes API are authenticated via the OAuth 2.0 protocol.
Before you get started, please make sure you understand the disputes process.
YYYY-MM-DDTHH:mm:ss.sssZ
. Please note it includes ms.It's also important to note that the following fields are referred to by different names in the Order Management API:
payment_transaction_id
is referred as order_id
purchase_reference
is referred as merchant_reference
payment_capture_reference
is referred as capture_id
Self onboarding for merchants. Partners cannot self onboard through this API
Merchant successfully onboarded or was onboarded already
Merchant has a partner relation. Enroll is not permitted
Self onboarding for Partners. Onboard a Partner to this API given their oAuth client ID. Merchants cannot self onboard through this API
Partner successfully onboarded or was onboarded already
Self onboard to the API
{- "client_id": "abcdefghijklmnop1234567890"
}
Retrieve a list of Disputes, segregated by a variety of filter parameters
A paginated list of authorized disputes
Bad Request, there was an error in the input of the request. The request can not be retried without modifications.
Unauthorized, the request was not authorized.
Forbidden, insufficient privileges to perform the requested operation on the resource.
Not Found, the requested resource was not found.
Too Many Requests, the request was rate limited.
Internal Server Error, there was an unexpected error in the API.
{- "disputes": [
- {
- "payment_dispute_id": "krn:payment:eu1:dispute:return:340985272172547",
- "payment_transaction_id": "krn:mood-eu:order:78c12d82-9bba-46e7-a5c2-8b2bddee05f1",
- "payment_capture_id": "krn:mood-eu:capture:1fa05735-58d7-4e78-9f33-62370eeea86b",
- "dispute_reason": "RETURN_NOT_REFUNDED",
- "dispute_details": {
- "dispute_amount": 699,
- "currency": "SEK",
- "created_by": "CUSTOMER"
}, - "config": {
- "payment_dispute_config_id": "krn:payment:eu1:dispute:340985272172547:config:1",
- "total_merchant_evidence_requests": 5
}, - "created_at": "2024-08-21T12:32:37.464Z",
- "updated_at": "2024-08-21T12:32:37.464Z",
- "state": "PRE_ARBITRATION"
}, - {
- "payment_dispute_id": "krn:payment:eu1:dispute:return:340985272172512",
- "payment_transaction_id": "krn:mood-eu:order:78c12d82-9bba-46e7-a5c2-8b2bddee05f2",
- "payment_capture_id": "krn:mood-eu:capture:1fa05735-58d7-4e78-9f33-62370eeea86ψ",
- "dispute_reason": "RETURN_NOT_REFUNDED",
- "dispute_details": {
- "dispute_amount": 699,
- "currency": "SEK",
- "created_by": "CUSTOMER"
}, - "config": {
- "payment_dispute_config_id": "krn:payment:eu1:dispute:340985272172547:config:1",
- "total_merchant_evidence_requests": 5
}, - "created_at": "2024-08-21T12:32:37.464Z",
- "updated_at": "2024-08-21T12:32:37.464Z",
- "state": "ARBITRATION_PENDING",
- "previous_state": "PRE_ARBITRATION"
}, - {
- "payment_dispute_id": "krn:payment:eu1:dispute:products-not-received:256947",
- "dispute_reason": "PRODUCTS_NOT_RECEIVED",
- "state": "MERCHANT_EVIDENCE_PENDING",
- "previous_state": "ARBITRATION_PENDING",
- "state_context": {
- "evidence_request_type": "PRODUCTS_NOT_RECEIVED",
- "evidence_response_deadline_at": "2020-05-22T00:00:00Z"
}, - "payment_transaction_id": "krn:mood-eu:order:7c44f3be-84de-4ae9-b4e1-a44e54ee4051",
- "purchase_reference": "f420e0e1-971b-417a-8ece-2626387eff36",
- "payment_product_instance_id": "krn:partner:product:payment:ad71bc48-8a07-4919-a2c1-103dba3fc918",
- "dispute_details": {
- "dispute_amount": 39900,
- "currency": "EUR",
- "created_by": "CUSTOMER"
}, - "merchant_evidence": [
- {
- "payment_dispute_merchant_evidence_id": "krn:payment:eu1:dispute:256947:merchant-evidence:1",
- "request": {
- "created_at": "2020-05-08T08:32:14Z",
- "state": "EVIDENCE_REQUESTED",
- "comment": "Consumer claimed products were not received"
}, - "response": {
- "created_at": "2020-05-09T09:32:18Z",
- "additional_information": "Additional free text information",
- "attachments": [
- {
- "payment_dispute_attachment_id": "krn:payment:eu1:dispute:256947:attachment:1",
- "description": "Shipment confirmation"
}
], - "details": {
- "tracking_availability": "TRACKING_AVAILABLE",
- "tracking_number": "JCYPE32JAAR4",
- "shipping_carrier": "DHL",
- "estimated_delivery_date": "2020-04-10",
- "delivery_method": "BY_POST_OR_MAIL",
- "have_you_resolved_the_dispute_with_the_customer": "YES_WILL_REFUND_THE_CUSTOMER_THROUGH_KLARNA",
- "proof_of_delivery_attachments": [
- {
- "payment_dispute_attachment_id": "krn:payment:eu1:dispute:256947:attachment:1",
- "description": "Shipment confirmation"
}
]
}
}
}
], - "config": {
- "payment_dispute_config_id": "krn:payment:eu1:dispute:256947:config:1",
- "total_merchant_evidence_requests": 5
}, - "created_at": "2020-04-15T08:31:00Z",
- "updated_at": "2020-05-09T08:31:00Z",
- "arbitration_started_at": "2020-05-08T00:00:00Z"
}, - {
- "payment_dispute_id": "krn:payment:eu1:dispute:return:368894981419012",
- "payment_transaction_id": "krn:mood-eu:order:c77abae2-65a1-4dc1-8c4a-414c80a77b2c",
- "payment_capture_id": "krn:mood-eu:capture:b768783d-cf0b-4f48-b013-46a317b07c19",
- "dispute_reason": "RETURN_NOT_REFUNDED",
- "dispute_details": {
- "dispute_amount": 6158,
- "currency": "SEK",
- "line_items": [
- {
- "name": "Söt Plast Table",
- "quantity": 3,
- "unit_price": 1776
}, - {
- "name": "Tålig Granit Dator",
- "quantity": 10,
- "unit_price": 83
}
], - "created_by": "CUSTOMER"
}, - "merchant_evidence": [
- {
- "payment_dispute_merchant_evidence_id": "krn:payment:eu1:dispute:368894981419012:merchant-evidence:1",
- "remaining_merchant_evidence_requests": 4,
- "current_merchant_evidence_requests": 1,
- "request": {
- "state": "EVIDENCE_RECEIVED",
- "previous_state": "EVIDENCE_REQUESTED",
- "comment": "Information provided by the customer:\nDate customer contacted store: 2024-11-08\nContact method: Email or Text\nStore response according to customer: Store agrees to assist with the customer's problem\nType of concern: Söt Plast Table - Customer received a damaged or defected item, Tålig Granit Dator - Customer received a damaged or defected item",
- "created_at": "2024-11-29T09:24:05.651Z"
}, - "response": {
- "created_at": "2024-12-05T08:35:20.896Z"
}
}
], - "config": {
- "payment_dispute_config_id": "krn:payment:eu1:dispute:368894981419012:config:1",
- "total_merchant_evidence_requests": 5
}, - "created_at": "2024-11-08T09:17:31.324Z",
- "updated_at": "2024-12-05T08:35:39.415Z",
- "state": "ARBITRATION_PENDING",
- "previous_state": "MERCHANT_EVIDENCE_PENDING",
- "arbitration_started_at": "2024-11-29T09:17:35.426Z",
- "state_context": {
- "state_reason": "EVIDENCE_RESPONSE_RECEIVED"
}
}, - {
- "payment_dispute_id": "krn:payment:eu1:dispute:return:340985272172512",
- "payment_transaction_id": "krn:mood-eu:order:78c12d82-9bba-46e7-a5c2-8b2bddee05f2",
- "payment_capture_id": "krn:mood-eu:capture:1fa05735-58d7-4e78-9f33-62370eeea86ψ",
- "dispute_reason": "RETURN_NOT_REFUNDED",
- "dispute_details": {
- "dispute_amount": 699,
- "currency": "SEK",
- "created_by": "CUSTOMER"
}, - "config": {
- "payment_dispute_config_id": "krn:payment:eu1:dispute:340985272172547:config:1",
- "total_merchant_evidence_requests": 5
}, - "merchant_evidence": [
- {
- "payment_dispute_merchant_evidence_id": "krn:payment:eu1:dispute:340985272172547:merchant-evidence:1",
- "remaining_merchant_evidence_requests": 4,
- "current_merchant_evidence_requests": 1,
- "request": {
- "state": "EVIDENCE_RECEIVED",
- "previous_state": "EVIDENCE_REQUESTED",
- "comment": "Evidence received",
- "created_at": "2024-11-29T09:24:05.651Z"
}, - "response": {
- "created_at": "2024-12-05T08:35:20.896Z"
}
}
], - "created_at": "2024-08-21T12:32:37.464Z",
- "updated_at": "2024-08-21T12:32:37.464Z",
- "state": "ARBITRATION_APPEAL_WINDOW_OPEN",
- "previous_state": "ARBITRATION_PENDING",
- "state_context": {
- "appeal": {
- "state": "APPEAL_UNDER_REVIEW",
- "created_at": "2024-08-21T12:32:37.464Z"
}
}
}, - {
- "payment_dispute_id": "krn:payment:eu1:dispute:return:377701184671754",
- "payment_transaction_id": "krn:mood-eu:order:7c44f3be-84de-4ae9-b4e1-a44e54ee4051",
- "payment_capture_id": "krn:mood-eu:capture:d1396e69-6467-4256-b9a7-1b3887db7c20",
- "dispute_reason": "RETURN_NOT_REFUNDED",
- "dispute_details": {
- "dispute_amount": 12300,
- "currency": "GBP",
- "created_by": "KLARNA_AGENT"
}, - "merchant_evidence": [
- {
- "payment_dispute_merchant_evidence_id": "krn:payment:eu1:dispute:377701184671754:merchant-evidence:1",
- "remaining_merchant_evidence_requests": 4,
- "current_merchant_evidence_requests": 1,
- "request": {
- "state": "EVIDENCE_RECEIVED",
- "previous_state": "EVIDENCE_REQUESTED",
- "comment": "Evidence received",
- "created_at": "2024-12-03T06:34:57.679Z"
}, - "response": {
- "created_at": "2024-12-03T06:37:12.299Z"
}
}
], - "config": {
- "payment_dispute_config_id": "krn:payment:eu1:dispute:377701184671754:config:1",
- "total_merchant_evidence_requests": 5
}, - "created_at": "2024-09-03T06:30:03.289Z",
- "updated_at": "2025-02-27T12:30:05.787Z",
- "arbitration_started_at": "2024-12-03T06:33:52.095Z",
- "state": "CLOSED",
- "previous_state": "ARBITRATION_PENDING",
- "state_context": {
- "arbitration_outcome": "LOST",
- "arbitration_outcome_detailed": "MERCHANT_DID_NOT_REPLY_TO_DISPUTE_REQUEST",
- "dispute_chargeback": {
- "chargeback_amount": 16700,
- "currency": "GBP"
}, - "dispute_fee": {
- "fee_amount": 1000,
- "currency": "GBP"
}, - "closed_at": "2024-12-12T12:12:51.375Z"
}
}
], - "pagination": {
- "count": 6,
- "last_item": "b040893b9e02f6445b205ae2102e3e9e1d0aa9035e61cdebde39b5c230a7bc5a",
- "total": 10
}
}
Fetch a fully detailed version of a Dispute, including all the associated requests and responses.
Complete dispute with all requests and responses
Bad Request, there was an error in the input of the request. The request can not be retried without modifications.
Unauthorized, the request was not authorized.
Not Found, the requested resource was not found.
Too Many Requests, the request was rate limited.
Internal Server Error, there was an unexpected error in the API.
{- "payment_dispute_id": "krn:payment:eu1:dispute:faulty-products:266091",
- "dispute_reason": "PRODUCTS_FAULTY",
- "state": "ARBITRATION_PENDING",
- "previous_state": "MERCHANT_EVIDENCE_PENDING",
- "payment_transaction_id": "krn:payment:eu1:authorization:6debe89e-98c0-486e-b7a5-08a4f6df94b0",
- "payment_capture_reference": "partner-capture-reference-1234",
- "purchase_reference": "f420e0e1-971b-417a-8ece-2626387eff36",
- "payment_product_instance_id": "krn:partner:product:payment:ad71bc48-8a07-4919-a2c1-103dba3fc918",
- "dispute_details": {
- "line_items": [
- {
- "name": "Product-1",
- "product_type": "PHYSICAL_ITEM",
- "quantity": 3,
- "unit_price": 100,
}
], - "dispute_amount": 39900,
- "currency": "EUR",
- "created_by": "CUSTOMER"
}, - "merchant_evidence": [
- {
- "payment_dispute_merchant_evidence_id": "krn:payment:eu1:dispute:256947:merchant-evidence:1",
- "request": {
- "created_at": "2020-05-08T08:32:14Z",
- "state": "EVIDENCE_RECEIVED",
- "previous_state": "EVIDENCE_REQUESTED",
- "comment": "Consumer claimed delivered products were faulty"
}, - "response": {
- "created_at": "2020-05-09T09:32:18Z",
- "additional_information": "Additional free text information",
- "attachments": [
- {
- "payment_dispute_attachment_id": "krn:payment:eu1:dispute:266091:attachment:1",
- "description": "Refund confirmation"
}
], - "details": {
- "have_you_resolved_the_dispute_with_the_customer": "YES_WILL_REFUND_THE_CUSTOMER_THROUGH_KLARNA"
}
}
}
], - "config": {
- "payment_dispute_payment_dispute_payment_dispute_config_id": "krn:payment:eu1:dispute:266091:config:1",
- "total_merchant_evidence_requests": 5
}, - "created_at": "2020-04-15T08:31:00Z",
- "updated_at": "2020-05-09T08:31:00Z",
- "arbitration_started_at": "2020-05-08T00:00:00Z"
}
A payment dispute has just been submitted to Klarna.
{- "metadata": {
- "event_type": "payment.dispute.state-change.pre-arbitration",
- "event_id": "d9f9b1a0-5b1a-4b0e-9b0a-9e9b1a0d5b1a",
- "event_version": "v2",
- "occurred_at": "2020-04-15T08:31:01Z",
- "correlation_id": "2d1557e8-17c3-466c-924a-bbc3e91c2a02"
}, - "payload": {
- "payment_dispute_id": "krn:payment:eu1:dispute:return:266091",
- "payment_transaction_id": "krn:payment:eu1:authorization:6debe89e-98c0-486e-b7a5-08a4f6df94b0",
- "state": "PRE_ARBITRATION",
- "payment_capture_reference": "partner-capture-reference-1234",
- "dispute_reason": "RETURN_NOT_REFUNDED",
- "dispute_details": {
- "dispute_amount": 39900,
- "currency": "EUR",
- "created_by": "CUSTOMER"
}, - "config": {
- "payment_dispute_payment_dispute_config_id": "krn:payment:eu1:dispute:256947:config:1",
- "total_merchant_evidence_requests": 5
}, - "updated_at": "2020-04-15T08:31:00Z",
- "created_at": "2020-04-15T08:31:00Z"
}
}
Accept the loss of a dispute, which will be closed with the chargeback activation
Loss was accepted successfully
Bad Request, there was an error in the input of the request. The request can not be retried without modifications.
Unauthorized, the request was not authorized.
Not Found, the requested resource was not found.
The dispute is not in a state where the loss can be accepted. Read the error details for further information.
Too Many Requests, the request was rate limited.
Internal Server Error, there was an unexpected error in the API.
{- "error_id": "5a3f6b9c-9b3b-4b7e-8f9d-9b9a4b9a4b9a",
- "error_type": "INPUT_ERROR",
- "error_code": "INVALID_CONTENT_TYPE",
- "error_message": "The received input is not valid JSON.\nUnterminated string at 19 [character 20 line 1].\n"
}
Uploads merchant attachment to be linked to a dispute response. File size limit is 7MB.
Attachment uploaded successfully
Bad Request, there was an error in the input of the request. The request can not be retried without modifications.
Unauthorized, the request was not authorized.
Forbidden, insufficient privileges to perform the requested operation on the resource.
Not Found, the requested resource was not found.
Too Many Requests, the request was rate limited.
Internal Server Error, there was an unexpected error in the API.
{- "payment_dispute_attachment_id": "krn:payment:eu1:dispute:256947:attachment:3"
}
Respond to merchant evidence request.
Response to add to request
Merchant response to a dispute where the customer claims that the products were faulty
Dispute's evidence request response was submitted successfully
Bad Request, there was an error in the input of the request. The request can not be retried without modifications.
Unauthorized, the request was not authorized.
Forbidden, insufficient privileges to perform the requested operation on the resource.
Not Found, the requested resource was not found.
The dispute is not in a state where a response can be submitted.
Too Many Requests, the request was rate limited.
Internal Server Error, there was an unexpected error in the API.
Responding to an evidence request with request type 'RETURN_NOT_REFUNDED'
{- "additional_information": "Additional free text information",
- "created_at": "2020-05-08T08:32:14Z",
- "attachments": [
- {
- "payment_dispute_attachment_id": "krn:payment:eu1:dispute:256947:attachment:1",
- "description": "Optional attachment"
}
], - "details": {
- "did_you_receive_the_return": "YES_WILL_REFUND_THE_CUSTOMER_THROUGH_KLARNA"
}
}
{- "response_id": "krn:payment:eu1:dispute:266092:request:1:response:1",
- "created_at": "2020-05-09T09:32:18Z",
- "additional_information": "Additional free text information",
- "attachments": [
- {
- "payment_dispute_attachment_id": "krn:payment:eu1:dispute:266092:attachment:1",
- "description": "Additional attachment"
}
], - "details": {
- "did_you_receive_the_return": "YES_WILL_REFUND_THE_CUSTOMER_THROUGH_KLARNA"
}
}
Downloads either a merchant attachment linked to a response or the customer evidence attachment linked to a request.
Attachment was downloaded successfully
Bad Request, there was an error in the input of the request. The request can not be retried without modifications.
Unauthorized, the request was not authorized.
Forbidden, insufficient privileges to perform the requested operation on the resource.
Not Found, the requested resource was not found.
Internal Server Error, there was an unexpected error in the API.
{- "error_id": "5a3f6b9c-9b3b-4b7e-8f9d-9b9a4b9a4b9a",
- "error_type": "INPUT_ERROR",
- "error_code": "INVALID_CONTENT_TYPE",
- "error_message": "The received input is not valid JSON.\nUnterminated string at 19 [character 20 line 1].\n"
}