Vizo Digital Api
Sign in

AEPS Express · Transactions

Balance Enquiry (BE)

Fetch customer available account balance via AEPS Express switch.

POST request

URL: https://uat-api.vizodigital.com/api/v1/aeps-express/balance-inquiry

Body

{
    "agent_code": "AC12345678",
    "reference_id": "BE2026100300001",
    "bank_iin": "607094",
    "customer_mobile": "9876543210",
    "customer_aadhaar": "123456789012",
    "channel": "APP",
    "device_id": "8f2d7c9a12bc45ef",
    "ip_address": "49.47.133.99",
    "user_agent": "Mozilla/5.0 Android",
    "latitude": "25.5899",
    "longitude": "85.1606",
    "bio_type": "0",
    "pid_data": "BASE64_ENCODED_PID_XML"
}

Include a valid Bearer token with every request

Code sample

curl -X POST "https://uat-api.vizodigital.com/api/v1/aeps-express/balance-inquiry" \
  -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 '{
    "agent_code": "AC12345678",
    "reference_id": "BE2026100300001",
    "bank_iin": "607094",
    "customer_mobile": "9876543210",
    "customer_aadhaar": "123456789012",
    "channel": "APP",
    "device_id": "8f2d7c9a12bc45ef",
    "ip_address": "49.47.133.99",
    "user_agent": "Mozilla/5.0 Android",
    "latitude": "25.5899",
    "longitude": "85.1606",
    "bio_type": "0",
    "pid_data": "BASE64_ENCODED_PID_XML"
}'

Success Response

{
    "status": "success",
    "message": "Balance fetched successfully on AEPS Express switch.",
    "data": {
        "reference_id": "BE2026100300001",
        "tran_type": "BE",
        "status": "success",
        "amount": null,
        "rrn": "627610334455",
        "bank_name": "State Bank of India",
        "customer_aadhaar": "XXXXXXXX9012",
        "customer_balance": "12450.75",
        "commission": "0.0000",
        "settlement_status": "none",
        "release_due_at": null,
        "mini_statement": null
    }
}

Failure response

{
    "status": "success",
    "message": "Bank down or timeout.",
    "data": {
        "reference_id": "BE2026100300002",
        "tran_type": "BE",
        "status": "failed",
        "amount": null,
        "rrn": null,
        "bank_name": "State Bank of India",
        "customer_aadhaar": "XXXXXXXX9012",
        "customer_balance": null,
        "commission": "0.0000",
        "settlement_status": "none",
        "release_due_at": null,
        "mini_statement": null
    }
}

Overview

Check customer bank account balance via AEPS Express switch. tran_type is automatically set to BE. amount is not required.

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

Balance Enquiry (BE) request body

Schema

{
    "type": "object",
    "required": [
        "agent_code",
        "reference_id",
        "bank_iin",
        "customer_mobile",
        "customer_aadhaar",
        "channel",
        "device_id",
        "ip_address",
        "user_agent",
        "latitude",
        "longitude",
        "bio_type",
        "pid_data"
    ],
    "properties": {
        "agent_code": {
            "type": "string",
            "description": "The AEPS Express `agent_code`."
        },
        "reference_id": {
            "type": "string",
            "description": "Unique ID for this request."
        },
        "bank_iin": {
            "type": "string",
            "description": "Bank IIN from List Banks."
        },
        "customer_mobile": {
            "type": "string",
            "description": "10-digit mobile."
        },
        "customer_aadhaar": {
            "type": "string",
            "description": "12-digit Aadhaar."
        },
        "channel": {
            "type": "string",
            "enum": [
                "APP",
                "WEB"
            ],
            "description": "Where the request comes from."
        },
        "device_id": {
            "type": "string",
            "description": "Android ID of the agent device (16 hex characters) when `channel` is `APP`. Send `Browser` when `channel` is `WEB`. Max 40 characters."
        },
        "ip_address": {
            "type": "string",
            "description": "Public IPv4 address of the agent device."
        },
        "user_agent": {
            "type": "string",
            "description": "App or browser user-agent string. Max 50 characters."
        },
        "latitude": {
            "type": "string",
            "description": "Live latitude of the agent, exactly 4 decimal places. Must not be hardcoded."
        },
        "longitude": {
            "type": "string",
            "description": "Live longitude of the agent, exactly 4 decimal places. Must not be hardcoded."
        },
        "bio_type": {
            "type": "string",
            "enum": [
                "0",
                "1",
                "2"
            ],
            "description": "`0` = fingerprint, `1` = face, `2` = iris."
        },
        "pid_data": {
            "type": "string",
            "description": "Base64-encoded PID XML captured from a registered RD service device."
        }
    }
}

Example

{
    "agent_code": "AC12345678",
    "reference_id": "BE2026100300001",
    "bank_iin": "607094",
    "customer_mobile": "9876543210",
    "customer_aadhaar": "123456789012",
    "channel": "APP",
    "device_id": "8f2d7c9a12bc45ef",
    "ip_address": "49.47.133.99",
    "user_agent": "Mozilla/5.0 Android",
    "latitude": "25.5899",
    "longitude": "85.1606",
    "bio_type": "0",
    "pid_data": "BASE64_ENCODED_PID_XML"
}

Responses

  • 200 · application/json default

    Success

    Schema

    {
        "type": "object"
    }

    Example

    {
        "status": "success",
        "message": "Balance fetched successfully on AEPS Express switch.",
        "data": {
            "reference_id": "BE2026100300001",
            "tran_type": "BE",
            "status": "success",
            "amount": null,
            "rrn": "627610334455",
            "bank_name": "State Bank of India",
            "customer_aadhaar": "XXXXXXXX9012",
            "customer_balance": "12450.75",
            "commission": "0.0000",
            "settlement_status": "none",
            "release_due_at": null,
            "mini_statement": null
        }
    }
  • 200 · application/json

    Failed or rejected

    Schema

    {
        "type": "object"
    }

    Example

    {
        "status": "success",
        "message": "Bank down or timeout.",
        "data": {
            "reference_id": "BE2026100300002",
            "tran_type": "BE",
            "status": "failed",
            "amount": null,
            "rrn": null,
            "bank_name": "State Bank of India",
            "customer_aadhaar": "XXXXXXXX9012",
            "customer_balance": null,
            "commission": "0.0000",
            "settlement_status": "none",
            "release_due_at": null,
            "mini_statement": null
        }
    }

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."
    }
  • service_not_enabled · HTTP 403

    AEPS is not enabled for your account. Contact your account manager to activate it.

    {
        "status": "error",
        "code": "service_not_enabled",
        "message": "AEPS is not enabled for your account. Contact your account manager to activate it."
    }
  • RATE_LIMITED · HTTP 429

    Rate limit exceeded.

    {
        "message": "Rate limit exceeded."
    }
  • agent_not_found · HTTP 404

    Agent not found.

    {
        "status": "error",
        "code": "agent_not_found",
        "message": "Agent not found."
    }
  • agent_blocked · HTTP 403

    This agent is blocked. Contact support.

    {
        "status": "error",
        "code": "agent_blocked",
        "message": "This agent is blocked. Contact support."
    }
  • duplicate_reference_id · HTTP 409

    This reference_id was already used. Send a new one.

    {
        "status": "error",
        "code": "duplicate_reference_id",
        "message": "This reference_id was already used. Send a new one."
    }
  • kyc_required · HTTP 409

    Complete KYC for this agent before sending transactions.

    {
        "status": "error",
        "code": "kyc_required",
        "message": "Complete KYC for this agent before sending transactions."
    }
  • daily_2fa_required · HTTP 409

    This agent has not done Daily 2FA today.

    {
        "status": "error",
        "code": "daily_2fa_required",
        "message": "This agent has not done Daily 2FA today."
    }
  • amount_out_of_range · HTTP 422

    Amount must be between Rs 100 and Rs 10000.

    {
        "status": "error",
        "code": "amount_out_of_range",
        "message": "Amount must be between Rs 100 and Rs 10000."
    }
  • bank_not_supported · HTTP 422

    This bank is not available for AEPS. Use the bank list endpoint.

    {
        "status": "error",
        "code": "bank_not_supported",
        "message": "This bank is not available for AEPS. Use the bank list endpoint."
    }
  • SERVICE_UNAVAILABLE · HTTP 503

    Service temporarily unavailable. Please try again later.

    {
        "status": "error",
        "code": "SERVICE_UNAVAILABLE",
        "message": "Service temporarily unavailable. Please try again later."
    }
  • noble_credentials_unavailable · HTTP 503

    Noble credentials are not available. Contact your partner.

    {
        "status": "error",
        "code": "noble_credentials_unavailable",
        "message": "Noble credentials are not available. Contact your partner."
    }
  • instantpay_credentials_unavailable · HTTP 503

    InstantPay credentials are not configured or incomplete.

    {
        "status": "error",
        "code": "instantpay_credentials_unavailable",
        "message": "InstantPay credentials are not configured or incomplete."
    }

Rate Limits

100/min