Cancellations
The Cancel
request allows the merchant to cancel a reserved or initiated transaction.
Please note that it is not possible to cancel a request that is over 180 days old.
Attempting to cancel an older payment will result in a HTTP 400 Bad Request
.
The payment flow can be aborted under certain circumstances:
- When the user cancels (rejects) the initiated payment in Vipps.
- When the merchant cancels.
- Timeouts: If the user does not confirm, etc.
After cancellation, the order gets a new status. See the individual API guides for more API specifics:
Cancel a pending order
If you wish to cancel a transaction before the customer can confirm the payment
in Vipps, you can send a cancel request while the transaction is in the INITIATE
stage.
This may be useful in face-to-face situations where a customer's phone runs out
of battery, or if the customer suddenly changes their mind and wants to buy
more and the amount for the payment increases.
This should not be considered a consistent or guaranteed operation,
as the cancel
request depends on actions taken by the user in the app.
If the cancel
request is successful, the payment state in the response will be: CANCELLED
.
Please note: If the user is already in a 3-D Secure session, the payment cannot be cancelled as described above.
Cancel a partially captured order
If you wish to cancel an order that you have partially captured, send a
cancel
request with shouldReleaseRemainingFunds: true
in the body.
The payment must be RESERVED
for this to take effect.
If shouldReleaseRemainingFunds
is not set, it will default to false
.
When shouldReleaseRemainingFunds
is set to false
,
any request to cancel after a partial or full capture has been performed will be rejected.
This is a useful and recommended feature, as it releases any reserved balance as soon as the card issuer and/or bank permits.
See also the FAQ: How long does it take from a refund is made until the money is in the customer's account?
Please note: Once this operation has been performed, there will be zero funds remaining to capture. Do not call this endpoint until you are sure you have captured all you need.