Payouts · Bank Accounts
Add Bank Account
Save a bank account to receive payouts.
POST request
URL: https://uat-api.vizodigital.com/api/v1/payouts/bank-accounts
Body
{
"holder_name": "Ramesh Patel",
"account_number": "001201601800000",
"ifsc": "ICIC0000012",
"bank_name": "ICICI Bank"
}
Include a valid Bearer token with every request
Code sample
curl -X POST "https://uat-api.vizodigital.com/api/v1/payouts/bank-accounts" \
-H "X-API-Key: YOUR_API_KEY_OR_TOKEN" \
-H "X-Timestamp: $(TZ=Asia/Kolkata date '+%Y-%m-%d %H:%M:%S')" \
-H "Content-Type: application/json" \
-d '{
"holder_name": "Ramesh Patel",
"account_number": "001201601800000",
"ifsc": "ICIC0000012",
"bank_name": "ICICI Bank"
}'
Success Response
{
"status": "success",
"message": "Bank account saved. It can be used once it is approved.",
"data": {
"status": "pending",
"id": 12,
"holder_name": "Ramesh Patel",
"account_last4": "0000",
"ifsc": "ICIC0000012",
"bank_name": "ICICI Bank",
"reject_reason": null
}
}
Failure response
{
"status": "error",
"code": "bank_account_exists",
"message": "You already saved this bank account."
}
Overview
Saves a bank account. It starts as pending and is checked once. You can use it for a payout when its status is approved.
Notes
- You can keep up to 5 accounts.
- Details cannot be changed later. Remove the account and add it again.
- We never return the full account number. Use
idandaccount_last4to tell accounts apart.
Testing in UAT
With a UAT key the account is approved at once.
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
-
Content-Type · string required
Request content type.
Example: application/json
Body
Add Bank Account request body
Schema
{
"type": "object",
"required": [
"holder_name",
"account_number",
"ifsc",
"bank_name"
],
"properties": {
"holder_name": {
"type": "string",
"description": "Name on the bank account. Max 100 characters."
},
"account_number": {
"type": "string",
"description": "Bank account number, 9 to 18 digits."
},
"ifsc": {
"type": "string",
"description": "11-character IFSC, like `ICIC0000012`."
},
"bank_name": {
"type": "string",
"description": "Name of the bank. Max 100 characters."
}
}
}
Example
{
"holder_name": "Ramesh Patel",
"account_number": "001201601800000",
"ifsc": "ICIC0000012",
"bank_name": "ICICI Bank"
}
Responses
-
201 · application/json default
Success
Example
{ "status": "success", "message": "Bank account saved. It can be used once it is approved.", "data": { "status": "pending", "id": 12, "holder_name": "Ramesh Patel", "account_last4": "0000", "ifsc": "ICIC0000012", "bank_name": "ICICI Bank", "reject_reason": null } } -
409 · application/json
Failed or rejected
Example
{ "status": "error", "code": "bank_account_exists", "message": "You already saved this bank account." }
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." } -
bank_account_exists · HTTP 409
You already saved this bank account.
{ "status": "error", "code": "bank_account_exists", "message": "You already saved this bank account." } -
bank_account_limit_reached · HTTP 422
You can keep at most 5 bank accounts. Remove one first.
{ "status": "error", "code": "bank_account_limit_reached", "message": "You can keep at most 5 bank accounts. Remove one first." }
Rate Limits
100/min