PUTDaily KYC
Perform the mandatory daily biometric re-verification that authorises an agent to carry out AePS transactions for the current calendar day.
Biometric-only re-verification for the days after the one-time eKYC — no OTP step is required. AePS Fingpay requires every agent to re-authenticate themselves biometrically at the start of each working day, before their first transaction of the day.
If this fails with reason Please complete bank eKYC to process the transaction., re-run the full first-time eKYC sequence — Send OTP → Verify OTP → Biometric — before retrying.
To capture the piddata PID block with an RDService-compliant fingerprint scanner, see the Aadhaar Biometric Authentication guide.
- AePS (Fingpay) — Cash Withdrawal — Aadhaar-enabled cash withdrawal: one-time agent activation and eKYC, daily KYC, then the biometric withdrawal.
Request
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. 20810200 |
aadhar | string | required | RSA-encrypted, Base64-encoded Aadhaar number of the agent performing daily KYC.e.g. BASE64_ENCRYPTED_AADHAAR |
customer_id | string | required | Registered mobile number of the agent/merchant.e.g. 9123456789 |
latlong | string | required | GPS coordinates of the agent's location at the time of daily KYC.e.g. 28.6139,77.2090 |
piddata | string | required | PID XML string from the UIDAI-certified biometric device (fType=2, Data type='X', mc in DeviceInfo). This represents the agent's own fingerprint, not the customer's. If you generate the PID block yourself, the value of `wadh` must be blank/empty for Daily KYC.e.g. <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData> |
bank_code | string | required | Eko bank code of the agent's bank. Resolve it using the [Get List of Banks](./get-banks) API.e.g. HDFC |
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: 20810200
aadharstringRequiredRSA-encrypted, Base64-encoded Aadhaar number of the agent performing daily KYC.
example: BASE64_ENCRYPTED_AADHAAR
customer_idstringRequiredRegistered mobile number of the agent/merchant.
example: 9123456789
latlongstringRequiredGPS coordinates of the agent's location at the time of daily KYC.
example: 28.6139,77.2090
piddatastringRequiredPID XML string from the UIDAI-certified biometric device (fType=2, Data type='X', mc in DeviceInfo). This represents the agent's own fingerprint, not the customer's. If you generate the PID block yourself, the value of `wadh` must be blank/empty for Daily KYC.
example: <?xml version='1.0'?><PidData><Data type='X'>...</Data><DeviceInfo mc='...' /></PidData>
bank_codestringRequiredEko bank code of the agent's bank. Resolve it using the [Get List of Banks](./get-banks) API.
example: HDFC
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 |
|---|---|---|
1713 | Daily KYC successful — the agent may transact today | — |
1714 | Daily KYC failed — if `data.reason` is 'Please complete bank eKYC to process the transaction.', re-run the full eKYC from Send OTP | Send OTP (eKYC) |
Responses
1713Daily KYC successful — the agent may transact today
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.
dataobjectAPI-specific response payload.
user_codestringUser code of the agent whose daily KYC is now complete for the current calendar day.
Next steps
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.