Klarna Docs - Refund payment transactions and allocation
Refund payment transactions and allocation

Process refunds efficiently with Klarna by selecting the appropriate refund method, adhering to operational limits, and leveraging webhooks for real-time tracking.

There are two options available for processing refunds for a transaction that support different integration patterns used by partners. Each of these options has specific requirements and recommendations that enable optimal integration to provide the best post-purchase experience for customers.

Klarna supports a maximum of 200 refunds and 500 total operations on any given transaction. Exceeding this restriction will result in a 403 response.

OperationRequirementNotes
Refund payment captureRetain the payment_capture_idThis operation simplifies integration for partners that do not have line_items in their integration. Retaining the payment_capture_id and sending it helps Klarna to allocate refund amounts to correct captures.
Refund payment transactionInclude line_items in the requestThis operation requires including line_items in the request and is necessary for Klarna to be able to do  proper refund allocation.

The effects of refunds on all involved parties are illustrated in the diagram below:

flowchart LR A([Customer]) --> |Returns item| B(Partner) B --> |Processes refund| C(Acquiring Partner) C --> |Process refund| D(Klarna) D --> |Issue Refund| A D --> |Settlement triggered| C

This operation is used to initiate the refund process when customers return items they've purchased. Refunds in this case are allocated to the correct captures through the payment_capture_id that is sent to initiate the operation.

null

Consult the API reference for a complete description of the request body parameters.

In this scenario refunds are allocated to the correct captures through the payment_transaction_id and line_items that are sent to initiate the operation.  In the case of a transaction with multiple captures, it is crucial for Klarna to receive line_items details to allow proper allocation to the corresponding capture.

null

Consult the API reference for a complete description of the request body parameters.

Every successful payment refund operation will trigger a payment transaction refund webhook to which you can subscribe to:

Event nameWhen
payment.transaction.refundedTo track successful refund initiations ensuring debugging any discrepancies.