POSTAePS Balance Enquiry
Check a customer's bank account balance using Aadhaar number and biometric fingerprint — no card or PIN required.
Retrieves the real-time account balance from any Aadhaar-linked bank. Uses the dedicated balance-enquiry endpoint — the request shape matches Cash Withdrawal without the amount field. No money movement occurs and no debit takes place. The agent must have completed AePS Fingpay activation and the current-day daily authentication before calling this API.
To capture the piddata PID block with an RDService-compliant fingerprint scanner, see the Aadhaar Biometric Authentication guide.
Request
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
customer_id | string | required | Customer's registered mobile number.e.g. 9000000000 |
customer_idstringRequiredCustomer's registered mobile number.
example: 9000000000
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
initiator_id | string | required | Registered mobile number of the API user (see Platform Credentials).e.g. 9962981729 |
client_ref_id | string | optional | Unique reference ID per API call, generated by your system (max 20 characters).e.g. 2026010100123456789 |
user_code | string | required | Unique code of your user/agent/retailer the service is run for. Use `Onboard Agent` API to register your userse.g. 10000001 |
bank_code | string | required | Short bank code identifying the customer's Aadhaar-linked bank (e.g. `HDFC`, `SBIN`). Obtain from the bank list API.e.g. HDFC |
aadhar | string | required | RSA-encrypted, Base64-encoded Aadhaar number. Encrypt the 12-digit Aadhaar with the Eko RSA public key using PKCS#1 v1.5 padding (Java's default `Cipher.getInstance("RSA")`), then Base64-encode the ciphertext.e.g. BASE64_ENCRYPTED_AADHAAR |
latlong | string | required | GPS coordinates of the transaction origin in 'latitude,longitude' format.e.g. 28.6139,77.2090 |
piddata | string | required | PID XML string from the UIDAI-certified biometric device (fType=2, Data type='X', mc present in DeviceInfo).e.g. <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
client_ref_idstringoptionalUnique reference ID per API call, generated by your system (max 20 characters).
example: 2026010100123456789
user_codestringRequiredUnique code of your user/agent/retailer the service is run for. Use `Onboard Agent` API to register your users
example: 10000001
bank_codestringRequiredShort bank code identifying the customer's Aadhaar-linked bank (e.g. `HDFC`, `SBIN`). Obtain from the bank list API.
example: HDFC
aadharstringRequiredRSA-encrypted, Base64-encoded Aadhaar number. Encrypt the 12-digit Aadhaar with the Eko RSA public key using PKCS#1 v1.5 padding (Java's default `Cipher.getInstance("RSA")`), then Base64-encode the ciphertext.
example: BASE64_ENCRYPTED_AADHAAR
latlongstringRequiredGPS coordinates of the transaction origin in 'latitude,longitude' format.
example: 28.6139,77.2090
piddatastringRequiredPID XML string from the UIDAI-certified biometric device (fType=2, Data type='X', mc present in DeviceInfo).
example: <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData>
These headers authenticate and sign every request. See How Auth Works for details.
| Field | Type | Required | Description |
|---|---|---|---|
developer_key | string | required | Static API key issued to your account after KYC. |
secret-key | string | required | Dynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))). |
secret-key-timestamp | string | required | Current time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time. |
content-type | string | required | application/jsone.g. application/json |
developer_keystringRequiredStatic API key issued to your account after KYC.
secret-keystringRequiredDynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))).
secret-key-timestampstringRequiredCurrent time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time.
content-typestringRequiredapplication/json
example: application/json
Response types
| response_type_id | Meaning | Next step |
|---|---|---|
1466 | Transaction Successful | — |
1464 | Transaction Fail | — |
Responses
1466Transaction Successful
statusnumberPrimary success indicator (0 = success).
messagestringHuman-readable response / error message.
response_status_idnumberGranular status id; see the shared error-codes table.
response_type_idnumberA unique id for every possible response shape (success or error) — useful for client logic branching and analytics.
tx_statusstringTransaction state: 0=Success, 1=Fail, 2=Awaited, 3=Refund Pending, 4=Refunded, 5=On Hold.
txstatus_descstringHuman-readable transaction status.
dataobjectAPI-specific response payload.
tidstringEko's internal transaction ID for this enquiry.
amountstringEcho of the transacted amount (INR). '0.0' for a balance enquiry.
customer_balancestringCustomer's account balance returned by the bank (INR). This is the key output of a Balance Enquiry.
shopstringAgent's shop/merchant name.
shop_address_line1stringAgent's shop address. May be empty.
sender_namestringName of the agent/sender initiating the enquiry.
merchantnamestringRegistered merchant name of the agent.
merchant_codestringMerchant code of the agent. May be empty.
user_codestringEcho of the agent's user_code from the request.
aadharstringMasked Aadhaar number of the customer.
auth_codestringBank authorization code. May be empty.
stanstringSystem Trace Audit Number assigned by the switch. May be empty.
terminal_idstringTerminal identifier. May be empty.
feestringFee charged for the enquiry (INR). May be empty.
service_taxstringService tax component on the fee (INR). May be empty.
totalfeestringTotal fee including taxes (INR). May be empty.
transaction_datestringTransaction date (DD-MM-YY HH:MM:SS).
transaction_timestringTransaction timestamp (DD-MM-YY HH:MM:SS).
reasonstringFailure reason, when the enquiry did not complete. Empty on success.
commentstringHuman-readable remark from the provider (e.g. 'Request Completed').
Next steps
NextPOSTAePS Mini StatementRetrieve the last few transactions from an Aadhaar-linked bank account via biometric authentication.Related
- AePS Cashout — details & pricingFeatures, plans and pricing for this product.
- Integrate using AIBuild agent-native integrations with MCP, SDKs and packs.
- Integrate using an SDKBrowse guides and the full developer documentation.
- Aadhaar Biometric Authentication (RDService) guideHow to capture the PID block from a fingerprint scanner on Web or Android.