Void a Payment Transaction
Release the remaining authorization on a Payment Transaction when the payment is no longer intended to be fulfilled (for example, when the customer cancels the purchase or the product cannot be shipped).
2 min read
Call
voidPaymentTransaction
when the payment is no longer intended to be fulfilled. For example, when a customer cancels a purchase, or when the remaining authorization must be released because a product is unavailable for shipment.
The effects of voiding a Payment Transaction are illustrated in the diagram below:
flowchart LR
A([Customer]) --> |Cancels order| B(Partner)
B --> |Voids transaction| D(Klarna)
D --> |Notification of cancellation| A
When to void
Void is permitted when:
This action may not be performed more than 200 times. Exceeding this limit causes the void to be rejected. See
Limitations for the full action limits.
Outcomes
The state a Payment Transaction transitions to after a void depends on whether any captures had been made:
No prior captures: the transaction transitions to CLOSED.
Prior captures exist: the transaction transitions to COMPLETED. The captured portion remains valid; only the remaining authorization is released.
Webhooks
Voiding a Payment Transaction triggers a state-change webhook event. Subscribe to these events by following the
webhook registration guide.
| Event name | When |
|---|
payment.transaction.state-change.completed | The void was applied to a Payment Transaction with prior captures. The captured portion remains valid; the remaining authorization is released. |
payment.transaction.state-change.closed | The void was applied to a Payment Transaction with no prior captures. The transaction reaches a definitive conclusion. |