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.
Add this to your codebase
Paste it into Claude Code, Codex, Cursor or any coding agent. It points the agent at this guide in machine-readable form, so it writes against the real API instead of a guess. Wire up the MCP server once and it can read the rest of the platform too.
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
| Scenario | Description |
|---|---|
| Wrong amount charged | Customer was overcharged, caught same day |
| Duplicate transaction | Same payment processed twice |
| Customer changed mind | Immediate post-purchase reversal |
| Incorrect product | Wrong 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 /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.