POSTInitiate Settlement
Settle an agent's AePS funds to a registered bank account via NEFT/IMPS/RTGS.
Settles an agent's collected AePS funds to one of their registered settlement
bank accounts (recipient_id from Add Settlement Bank Account). Returns the
financial response envelope with tx_status, tid, fee, and updated balance.
The settleable amount equals the agent's total AePS business over the last 7 days minus any settlements already made in that window.
Operating window
Settlement runs Monday–Friday, 10:00–17:00 IST, excluding RBI bank holidays. A request placed after 17:00 settles on the next working day.
- Maximum ₹2,00,000 per transaction.
Settlement rail (payment_mode)
payment_mode | Rail |
|---|---|
| 4 | NEFT |
| 5 | IMPS |
| 13 | RTGS |
Status & auto-refund
tx_status | Meaning |
|---|---|
| 0 | Success |
| 2 | Initiated / response awaited |
| 4 | Refunded |
| 5 | Hold (inquiry required) |
If the bank declines the settlement it moves to the refunded state and the
balance is auto-reversed — no manual action needed. After initiating, confirm the
outcome with the Transaction Inquiry API using either the Eko tid or your
client_ref_id.
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 |
amount | integer | required | Settlement amount requested (INR). Max 200000 per transaction.e.g. 100 |
recipient_id | integer | required | Settlement recipient identifier (from Add / Get Settlement Account).e.g. 1829 |
payment_mode | integer | required | Transfer method: 4 = NEFT, 5 = IMPS, 13 = RTGS.e.g. 5 |
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
amountintegerRequiredSettlement amount requested (INR). Max 200000 per transaction.
example: 100
recipient_idintegerRequiredSettlement recipient identifier (from Add / Get Settlement Account).
example: 1829
payment_modeintegerRequiredTransfer method: 4 = NEFT, 5 = IMPS, 13 = RTGS.
example: 5
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
Responses
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.
tx_statusstringTransaction status code (0 = success).
amountstringSettled amount (INR).
txstatus_descstringHuman-readable transaction status.
feestringBase fee charged for the settlement (INR).
gststringGST charged on the settlement fee (INR).
sender_namestringName of the settling agent.
tidstringEko transaction ID for the settlement.
client_ref_idstringClient reference id echoed for the settlement.
balancestringAgent balance after the settlement (INR).
user_codestringCode of the user/agent the settlement was run for.
totalfeestringTotal fee charged for the settlement, incl. GST (INR).
recipient_namestringName on the destination bank account.
ifscstringDestination branch IFSC.
bank_ref_numstringBank reference / UTR number. Empty until the bank confirms the transfer.
accountstringDestination account number.
timestampstringSettlement timestamp. Empty on the initial response.