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.
Operation | Requirement | Notes |
---|---|---|
Refund payment capture | Retain the payment_capture_id | This 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 transaction | Include line_items in the request | This 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:
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.
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.
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 name | When |
---|---|
payment.transaction.refunded | To track successful refund initiations ensuring debugging any discrepancies. |