Klarna Direct

Refund a Payment Transaction

Return funds to the customer after a Payment Transaction has been captured. Choose between refund-by-capture and refund-by-transaction depending on whether the integration tracks line items.
3 min read
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.
ActionRequirementNotes
refundPaymentCaptureAPIRetain the payment_capture_idSimplifies integration when the Partner does not track line_items. Sending the payment_capture_id lets Klarna allocate the refund amount to the correct capture.
refundPaymentTransactionAPIInclude line_items in the requestRequired 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 refundPaymentCaptureAPI 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.

Refund using line items

Use refundPaymentTransactionAPI 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.

Webhooks

Every successful refund triggers a Payment Transaction refund webhook event. Subscribe to it by following the webhook registration guide.
Event nameWhen
payment.transaction.refundedA refund has been successfully initiated. Use this event to reconcile refunds and debug discrepancies.
Related articles
Payment Transaction state definitions
Set up your webhooks