Developers Guides Void a Payment

Void a Payment

Reverse a completed payment before settlement. Voiding stops funds from transferring to the merchant's account, avoiding incorrect transactions.

Online API Payments In-Store

Overview

Voiding reverses a completed payment before it settles — no money moves from the customer’s account to the merchant’s. This is the quickest way to reverse a transaction on the same day, avoiding refund processing fees.

Void vs. Cancel vs. Refund:

  • Cancel — payment is still in progress (not yet completed)
  • Void — payment completed but not yet settled (same day, before 23:00 UTC)
  • Refund — payment has settled (next day or later)

When to Use Void

ScenarioDescription
Wrong amount chargedCustomer was overcharged, caught same day
Duplicate transactionSame payment processed twice
Customer changed mindImmediate post-purchase reversal
Incorrect productWrong item charged at point of sale

Step 1: Void the Payment

Call the void endpoint with the paymentId:

POST /payments/:paymentId/void
{}
// Response
{
  "status": "SUCCESS",
  "data": {
    "voidStatus": "VOIDED"
  },
  "message": "Payment voided successfully"
}

Possible voidStatus values: VOID_INITIATED | CANNOT_VOID | VOIDED

Important: Voiding is only possible before 23:00 UTC on the transaction day. After the settlement cutoff, you must process a refund instead.

Step 2: Verify Order Status

Confirm the void was applied:

GET /merchants/:merchantId/orders/:orderId/status

The order’s transaction data will show voided: true for the affected transaction.

Handling CANNOT_VOID

If the void returns CANNOT_VOID, the payment has either:

  • Already been settled (past 23:00 UTC cutoff)
  • Not yet completed (use Cancel instead)

In these cases, process a full refund or partial refund as needed.

Reference

Ready to get started?

Create a sandbox account and start building your integration today.