---
type: "product"
title: "AePS API India | Cash Withdrawal, Balance Enquiry & Mini Statement"
description: "Integrate Eko’s AePS APIs for Aadhaar-based cash withdrawal, balance enquiry and mini statement services. Built for fintechs, BC networks, CSPs and assisted banking platforms in India."
category: "payment"
canonical: "https://eps.eko.in/products/aeps-api"
---


> **Canonical URL:** https://eps.eko.in/products/aeps-api
> This is a machine-readable Markdown version of the page for AI agents and LLMs. The primary (HTML) version lives at the canonical URL above.

# AePS API for Cash Withdrawal, Balance Enquiry & Mini Statement

Enable Aadhaar-based banking services through secure AePS APIs. Let your retailers, agents, or assisted-service network offer cash withdrawal, balance enquiry, and mini statement services using Aadhaar authentication.

_Aadhaar-enabled payment services for rural and underbanked segments_

To get started, fill the form at https://eps.eko.in/signup (with your name, mobile number and email) or call us at +919513181707

## Features

- Cash Withdrawal: Enable customers to withdraw cash from any bank account using Aadhaar and biometric authentication.
- Balance Enquiry: Check account balance instantly using Aadhaar number and fingerprint verification.
- Mini Statement: Retrieve the last few transactions for any Aadhaar-linked bank account.
- Biometric Authentication: Secure transactions with Aadhaar-based biometric verification using UIDAI.
- Multi-Bank Support: Connect to all major banks in India through a single integration.

## Benefits

- Financial Inclusion: Bring banking services to rural and underbanked populations without traditional infrastructure.
- No Debit Card Required: Customers only need their Aadhaar number and fingerprint - no cards or PINs needed.
- Secure & Compliant: UIDAI-certified biometric authentication ensures secure and compliant transactions.
- Build Retailer Network: Enable local retailers to become banking points and earn commissions.
- 24/7 Operations: Provide banking services round the clock, even in areas without bank branches.
- Easy Integration: Simple REST APIs with comprehensive documentation and sandbox environment.

## Use Cases

- Banking Correspondents
- Rural Financial Services
- Kirana Store Banking
- CSC Centers
- Microfinance Institutions
- Government Disbursements

## API Preview — Daily KYC

`PUT /user/collection/aeps-fingpay/kyc/biometric/daily`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Customer Id | 9123456789 |
| Latlong | 28.6139,77.2090 |
| Piddata | <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |
| Bank Code | HDFC |

### Example outputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |

## API Preview — Cash Withdrawal OTP

`POST /customer/collection/aeps-fingpay/cash-withdrawal/otp/{customer_id}`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 10000001 |
| Customer Id | 9000000000 |
| Bank Code | HDFC |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Latlong | 28.6139,77.2090 |
| Amount | 6000 |

### Example outputs

| Field | Value |
| --- | --- |
| Fp Transaction Id | FP2609010001234567 |

## API Preview — AePS Cash Withdrawal

`POST /customer/collection/aeps-fingpay/cash-withdrawl/{customer_id}`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 10000001 |
| Customer Id | 9000000000 |
| Bank Code | HDFC |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Latlong | 28.6139,77.2090 |
| Piddata | <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |
| Amount | 1000 |
| Txn Otp Request Id |  |

### Example outputs

| Field | Value |
| --- | --- |
| Tid | 0000000000 |
| Amount | 1000.00 |
| Bank | Example Bank |
| Bank Ref Num | 0000000000 |
| Customer Balance | 0.00 |

## API Preview — Activate AePS Fingpay for Agent

`PUT /admin/network/agent/{user_code}/aeps-fingpay/activate`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Modelname | Morpho 1300E3 |
| Devicenumber | SN1234567890 |
| Settlement Account Number | 38759149196 |
| Settlement Account IFSC | SBIN0007515 |
| Shop Type | 4215 |
| Office Address | {"line":"Middle Tarku Near Secondary School","city":"Singtam","state":"Sikkim","pincode":"122002","state_id":"23"} |
| Address As Per Proof | {"line":"Temi Tarku Secondary","city":"Gurgaon","state":"Haryana","pincode":"122002","state_id":"23"} |
| Aadhaar Number | 123456789012 |
| PAN Card Image | <binary file> |
| Aadhaar Front Image | <binary file> |
| Aadhaar Back Image | <binary file> |
| Geolocation | 28.6139,77.2090 |

### Example outputs

| Field | Value |
| --- | --- |
| Service Status Desc | pending |
| Service Status | ACT20240101001 |

## API Preview — Get Shop Types

`GET /user/collection/aeps-fingpay/get-Mcc-Category`

### Example outputs

| Field | Value |
| --- | --- |
| Value | 5732 |

## API Preview — Get States

`GET /user/collection/aeps-fingpay/get-states`

### Example outputs

| Field | Value |
| --- | --- |
| Value | 15 |

## API Preview — Send OTP (eKYC)

`POST /user/collection/aeps-fingpay/kyc/otp`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Customer Id | 9123456789 |
| Latlong | 28.6139,77.2090 |

### Example outputs

| Field | Value |
| --- | --- |
| Reference Tid | EKYKF4719702240123152147525I |
| Otp Ref Id | 2465238 |

## API Preview — Verify OTP (eKYC)

`PUT /user/collection/aeps-fingpay/kyc/otp/verify`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Customer Id | 9123456789 |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Otp | 123456 |
| Otp Ref Id | 2465238 |
| Reference Tid | EKYKF4719702240123152147525I |
| Latlong | 28.6139,77.2090 |

### Example outputs

| Field | Value |
| --- | --- |
| Reference Tid | BEKYF4719702240123152147525I |
| Otp Ref Id | 815031 |

## API Preview — Biometric eKYC

`PUT /user/collection/aeps-fingpay/kyc/biometric`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Customer Id | 9123456789 |
| Latlong | 28.6139,77.2090 |
| Piddata | <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |
| Bank Code | HDFC |
| Otp Ref Id | 2465238 |
| Reference Tid | EKYKF4719702240123152147525I |

### Example outputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |

## API Preview — Add Settlement Bank Account

`POST /user/payment/aeps/settlement/account`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Bank Id | 12 |
| Ifsc | SBIN0000000 |
| Service Code | 39 |
| Account | 00000000000002 |

### Example outputs

| Field | Value |
| --- | --- |
| Recipient Id | 1893 |

## API Preview — Get Settlement Bank Accounts

`GET /user/payment/aeps/settlement/accounts`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |

### Example outputs

| Field | Value |
| --- | --- |
| Unsettled Fund | 6100.0 |
| Recipient Id | 1828 |

## API Preview — Initiate Settlement

`POST /user/payment/aeps/settlement`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 20810200 |
| Amount | 100 |
| Recipient Id | 1829 |
| Payment Mode | 5 |

### Example outputs

| Field | Value |
| --- | --- |
| Tx Status | 0 |
| Amount | 5000.00 |
| Txstatus Desc | Success |
| Tid | 0000000000 |
| Balance | 0.00 |
| User Code | 10000001 |
| Bank Ref Num |  |

## API Preview — AePS Balance Enquiry

`POST /customer/collection/aeps-fingpay/balance-enquiry/{customer_id}`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 10000001 |
| Customer Id | 9000000000 |
| Bank Code | HDFC |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Latlong | 28.6139,77.2090 |
| Piddata | <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |

### Example outputs

| Field | Value |
| --- | --- |
| Tid | 0000000000 |
| Customer Balance | 0.00 |

## API Preview — AePS Mini Statement

`POST /customer/collection/aeps-fingpay/mini-statement/{customer_id}`

### Example inputs

| Field | Value |
| --- | --- |
| User Code | 10000001 |
| Customer Id | 9000000000 |
| Bank Code | HDFC |
| Aadhar | BASE64_ENCRYPTED_AADHAAR |
| Latlong | 28.6139,77.2090 |
| Piddata | <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |

### Example outputs

| Field | Value |
| --- | --- |
| Tid | 0000000000 |
| Amount | 0.00 |
| Txn Type | Dr |
| Customer Balance | 0.00 |

## Integration Steps

1. **[Sign Up](/console)** — Sign up in minutes with your mobile number (OTP verify).
2. **Verify Identity** — Complete your basic KYC with PAN and address details to verify your identity.
3. **Test APIs Live** — Load funds into your wallet and test the verification APIs live — evaluate before you integrate.
4. **[Integrate with AI](/ai)** — Ready to build? Visit our AI hub for free plugins & tools to integrate faster.
5. **Onboard Retailers** — Start onboarding retailers to offer AePS services.
6. **Go Live** — Launch your AePS services and start serving customers.

## FAQs

### What biometric devices are supported?
We support all UIDAI-certified biometric devices including Morpho, Mantra, Startek, and others.

### How are AePS transactions authenticated?
Agents complete a **one-time eKYC** plus a **biometric authentication each day** before transacting. Customer withdrawals are authorised by fingerprint through **UIDAI-certified RD-service devices**, and withdrawals above **₹5,000** also need an SMS OTP.

### How do I get started?
Four steps: **sign up** at the [developer console page](/console), verify your identity with PAN and address details, load your wallet to test the APIs live, then integrate and go live. Sandbox credentials are issued immediately — you can call your first endpoint before any paperwork clears.

### What is EPS?
**EPS (Eko Platform Services)** is the technology arm of Eko — the developer tools, AI tooling and APIs that power modern fintech integration, from money transfer and AePS to identity verification.

### What are the different ways to integrate with Eko EPS?
Three paths, pick whichever suits your stack:

- Call the **REST APIs** directly.
- Use our official **Node.js, Python, PHP, Go or Java SDKs** to skip request-signing boilerplate.
- Let an **AI coding agent** build it via our [MCP server and agent skills](/ai#install).

For multi-step flows (onboard a sender, *then* transfer) start from a [transaction-flow recipe](/recipe) rather than wiring single endpoints together yourself.

### How does API authentication work?
Each request carries your static `developer_key` header plus a per-request `secret-key` header — an **HMAC-SHA256** signature of the current timestamp, keyed by your access key. The access key itself is **never sent over the wire**. You receive UAT keys on signup and production keys after KYC.

The [How Authentication Works](/docs/how-auth-works) guide has the full signing recipe in five languages plus an **in-browser playground** that generates and verifies a real `secret-key` against your own access key.

### Why does my API call return 401 Unauthorized?
Authentication failed. For the known causes, the response body's `status` names the check that failed:

- `2483` — The developer_key is wrong.
- `2484` — The secret-key (signature) is wrong.
- `2485` — The secret-key-timestamp is more than 2 minutes older or newer than the server clock, or was reused from an earlier request.
- `2486` — The secret-key-timestamp is not in milliseconds (13 digits) — often seconds (10 digits).
- `2487` — The secret-key or secret-key-timestamp header is missing.

If your signature checks out in the [secret-key playground](/docs/how-auth-works#try-it-secret-key-playground) and you still get a `401`, make sure the base URL matches your keys (UAT vs production) and, in production, that your server's IP is whitelisted.

### Is there a sandbox environment for testing?
Yes. A full **sandbox** is available immediately on signup — test your integration end-to-end before going live, no commitment required. For offline work you can also run our [mock server](/ai#artifacts) (`npx -y @ekoindia/eps-mock-server`) and get canned responses with no network calls at all.

### What are the sandbox and production base URLs?
Sandbox and production share the same paths and differ **only** by base URL:

- UAT / Sandbox — `https://staging.eko.in/ekoapi/v3`
- Production — `https://api.eko.in/ekoicici/v3`

A common cause of failures is calling the sandbox URL with live credentials, or vice-versa — **make sure the base URL matches the keys you are using**.

### Do I need to whitelist my server IP?
It's optional. **IP whitelisting** is available for **production** access as an extra layer of security — share your **static public (server) IP** with us and we'll whitelist it.

### Can an AI coding agent build the integration for me?
Yes — that is the fastest path. Point your agent (Claude Code, Codex, Cursor, Copilot, …) at our **MCP server** and it can look up any endpoint, generate correctly-signed requests, and scaffold the integration in your own stack. Install it in [one step from the AI hub](/ai#install), or start from a [ready-made prompt](/ai#quick-start).

We also publish an **OpenAPI 3.1 spec**, a **Postman collection** and per-agent **context packs** (`AGENTS.md`, `CLAUDE.md`, `.cursorrules`) so an agent has the ground truth instead of guessing.

### What response times can I expect?
Most verification APIs return in **real time with sub-second responses**, and 99th-percentile latency stays under two seconds across verification endpoints. Transaction APIs (DMT, AePS, BBPS) respond within seconds.

### Can the API handle high volumes?
Yes. The API is designed to handle **large-scale volumes** reliably without performance degradation.

### How is API usage billed?
Usage is billed **per successful API call** with no minimum commitment. Volume-based pricing tiers are available — see the [pricing calculator](/pricing) for indicative rates, or contact our team for a custom quote.

## API Endpoints

- **AePS – Fingpay**
  - **Activate for Agent**
    - [Activate AePS Fingpay for Agent](https://eps.eko.in/docs/activate-aeps-fingpay.md) (PUT)
    - [Get Shop Types](https://eps.eko.in/docs/aeps-fingpay-shop-types.md) (GET)
    - [Get States](https://eps.eko.in/docs/aeps-fingpay-states.md) (GET)
  - **Agent eKYC (1-Time)**
    - [Send OTP (eKYC)](https://eps.eko.in/docs/aeps-fingpay-send-otp-kyc.md) (POST)
    - [Verify OTP (eKYC)](https://eps.eko.in/docs/aeps-fingpay-verify-otp-kyc.md) (PUT)
    - [Biometric eKYC](https://eps.eko.in/docs/aeps-fingpay-biometric-ekyc.md) (PUT)
  - **Agent eKYC (Daily)**
    - [Daily KYC](https://eps.eko.in/docs/aeps-fingpay-daily-auth.md) (PUT)
  - [Cash Withdrawal OTP](https://eps.eko.in/docs/aeps-fingpay-cash-withdrawal-otp.md) (POST)
  - [AePS Cash Withdrawal](https://eps.eko.in/docs/aeps-fingpay-cash-withdrawal.md) (POST)
  - [AePS Balance Enquiry](https://eps.eko.in/docs/aeps-fingpay-balance-enquiry.md) (POST)
  - [AePS Mini Statement](https://eps.eko.in/docs/aeps-fingpay-mini-statement.md) (POST)
  - **AePS Fund Settlement**
    - [Add Settlement Bank Account](https://eps.eko.in/docs/aeps-add-settlement-account.md) (POST)
    - [Get Settlement Bank Accounts](https://eps.eko.in/docs/aeps-get-settlement-accounts.md) (GET)
    - [Initiate Settlement](https://eps.eko.in/docs/aeps-initiate-settlement.md) (POST)

## API Documentation

- [Full developer docs](https://eps.eko.in/docs/aeps-fingpay-daily-auth)

## Related Products

- [Domestic Money Transfer (DMT)](https://eps.eko.in/products/dmt-api): Instant domestic money transfer via IMPS/NEFT ([markdown](https://eps.eko.in/products/dmt-api.md))

- [Site index](https://eps.eko.in/index.md): Full list of API products, industries, and solution packs
