Klarna offers two ways to refund a Payment Transaction, supporting different integration patterns. Each has specific requirements and recommendations to enable optimal integration and provide the best post-purchase experience for customers.
Integration requirement
Klarna supports a maximum of 200 refunds and 500 total actions on any given Payment Transaction. Exceeding this restriction will result in a
403 response. See
Limitations for the full action limits.
| Action | Requirement | Notes |
|---|
refundPaymentCapture | Retain the payment_capture_id | Simplifies integration when the Partner does not track line_items. Sending the payment_capture_id lets Klarna allocate the refund amount to the correct capture. |
refundPaymentTransaction | Include line_items in the request | Required when Klarna needs to allocate the refund across multiple captures based on the items being refunded. |
The effects of a refund are illustrated in the diagram below:
flowchart LR
A([Customer]) --> |Returns item| B(Partner)
B --> |Processes refund| D(Klarna)
D --> |Issues refund| A
D --> |Settlement triggered| B
Additional payment context
Send additional data points when refunding transactions by using klarna_network_data to ensure consistent customer and transaction context throughout the payment flow.
Refund using a capture ID
Use
refundPaymentCapture
to initiate the refund process when customers return items they have purchased. The refund is allocated to the correct capture through the
payment_capture_id provided in the request.
Use
refundPaymentTransaction
when Klarna should allocate the refund across captures based on the items being refunded. The refund is matched to the correct captures using the
payment_transaction_id and the
line_items provided in the request.
For Payment Transactions involving multiple captures, detailed line_items information is essential to ensure each refund is matched to the corresponding capture. This is particularly critical in the context of disputes: if line_items are missing or incomplete, refunds may be misallocated, which can prevent Klarna from resolving the dispute in a timely and accurate manner.
Every successful refund triggers a Payment Transaction refund webhook event. Subscribe to it by following the
webhook registration guide.
| Event name | When |
|---|
payment.transaction.refunded | A refund has been successfully initiated. Use this event to reconcile refunds and debug discrepancies. |