Payouts · Payout Requests
Cancel Payout
Cancel a pending payout and get the amount back.
POST request
URL: https://uat-api.vizodigital.com/api/v1/payouts/{reference_id}/cancel
Include a valid Bearer token with every request
Code sample
curl -X POST "https://uat-api.vizodigital.com/api/v1/payouts/PO2026101400001/cancel" \
-H "X-API-Key: YOUR_API_KEY_OR_TOKEN" \
-H "X-Timestamp: $(TZ=Asia/Kolkata date '+%Y-%m-%d %H:%M:%S')"
Success Response
{
"status": "success",
"message": "Payout cancelled. The amount is back in your payout wallet.",
"data": {
"status": "cancelled",
"processed_at": "2026-10-14T11:45:00+05:30",
"reference_id": "PO2026101400001",
"amount": "1000.00",
"fee": "10.00",
"net_amount": "990.00",
"bank_account": {
"id": 12,
"account_last4": "0000"
},
"utr": null,
"reject_reason": null,
"created_at": "2026-10-14T11:20:00+05:30"
}
}
Failure response
{
"status": "error",
"code": "payout_not_pending",
"message": "This payout is already finished and cannot be changed."
}
Overview
Cancels a payout that is still pending. The amount goes back to your payout wallet at once. A payout that is already paid, rejected or cancelled is refused with 409 payout_not_pending.
Headers
-
X-API-Key · string required
Your credential: either your `rr_live_` API key, or the Bearer token from `POST /api/v1/auth/client-credentials` (the same token every other API uses). The token may instead be sent as `Authorization: Bearer <token>`. A token follows the same IP whitelist as your keys, and all your tokens share one requests-per-minute allowance.
Example: rr_live_xxxxxxxxxxxxx
-
X-Timestamp · string required
Current time in IST as `YYYY-MM-DD HH:MM:SS` (or `YYYY-MM-DDTHH:MM:SS`). Do not add a timezone suffix such as `+05:30`. Must be within 15 seconds of our server time.
Example: 2026-10-03 10:30:45
Parameters
-
reference_id · path · string required
The `reference_id` you sent when you requested the payout.
Example: PO2026101400001
Responses
-
200 · application/json default
Success
Example
{ "status": "success", "message": "Payout cancelled. The amount is back in your payout wallet.", "data": { "status": "cancelled", "processed_at": "2026-10-14T11:45:00+05:30", "reference_id": "PO2026101400001", "amount": "1000.00", "fee": "10.00", "net_amount": "990.00", "bank_account": { "id": 12, "account_last4": "0000" }, "utr": null, "reject_reason": null, "created_at": "2026-10-14T11:20:00+05:30" } } -
409 · application/json
Failed or rejected
Example
{ "status": "error", "code": "payout_not_pending", "message": "This payout is already finished and cannot be changed." }
Errors
-
INVALID_API_KEY · HTTP 401
Invalid or revoked API key.
{ "message": "Invalid or revoked API key." } -
TIMESTAMP_OUT_OF_RANGE · HTTP 400
Request timestamp is outside the ±15 second window.
{ "message": "Request timestamp is outside the ±15 second window." } -
RATE_LIMITED · HTTP 429
Rate limit exceeded.
{ "message": "Rate limit exceeded." } -
payout_not_found · HTTP 404
Payout not found.
{ "status": "error", "code": "payout_not_found", "message": "Payout not found." } -
payout_not_pending · HTTP 409
This payout is already finished and cannot be changed.
{ "status": "error", "code": "payout_not_pending", "message": "This payout is already finished and cannot be changed." }
Rate Limits
100/min