Vizo Digital Api
Sign in

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 id and account_last4 to 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

application/json required

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