POSTInitiate Transfer
Execute a DMT-Fino money transfer after OTP verification.
The final and only financial step in the DMT flow. Debits the agent's wallet and initiates an IMPS transfer to the registered recipient's bank account. Requires the OTP and otp_ref_id from Send Transaction OTP and the merchant's GPS coordinates (latlong). The response returns a tid (Eko transaction ID) and the banking UTR for the IMPS transaction. Always poll Get Transaction Status if tx_status is 2 (Awaited).
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
initiator_id | string | required | Registered mobile number of the API user (see Platform Credentials).e.g. 9962981729 |
user_code | string | required | User code of the retailer/agent the service is run for.e.g. 20810200 |
client_ref_id | string | optional | Unique reference id per API call, generated by your system.e.g. REQ-20260101-001 |
recipient_id | number | required | Unique recipient ID from Add Recipient or Get Recipients.e.g. 98765 |
amount | number | required | Transfer amount in INR (must match the amount sent to Send OTP).e.g. 500 |
customer_id | string | required | Sender's 10-digit mobile number.e.g. 9123456789 |
otp | string | required | OTP entered by the customer, received on their registered mobile.e.g. 251834 |
otp_ref_id | string | required | OTP reference ID from the Send Transaction OTP response.e.g. TXNOTP20240101001 |
latlong | string | required | GPS coordinates of the agent/merchant's device at the time of transaction (required for regulatory compliance).e.g. 28.6139,77.2090 |
state | string | required | Fixed value: "1".e.g. 1 |
recipient_id_type | string | required | Fixed value: "1" for bank account recipients.e.g. 1 |
channel | number | optional | Transfer channel. Fixed value: 2 (IMPS). Defaults to 2.e.g. 2 |
currency | string | optional | Currency code. Defaults to "INR".e.g. INR |
timestamp | string | optional | ISO 8601 request timestamp.e.g. 2024-01-01T10:30:00Z |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
user_codestringRequiredUser code of the retailer/agent the service is run for.
example: 20810200
client_ref_idstringoptionalUnique reference id per API call, generated by your system.
example: REQ-20260101-001
recipient_idnumberRequiredUnique recipient ID from Add Recipient or Get Recipients.
example: 98765
amountnumberRequiredTransfer amount in INR (must match the amount sent to Send OTP).
example: 500
customer_idstringRequiredSender's 10-digit mobile number.
example: 9123456789
otpstringRequiredOTP entered by the customer, received on their registered mobile.
example: 251834
otp_ref_idstringRequiredOTP reference ID from the Send Transaction OTP response.
example: TXNOTP20240101001
latlongstringRequiredGPS coordinates of the agent/merchant's device at the time of transaction (required for regulatory compliance).
example: 28.6139,77.2090
statestringRequiredFixed value: "1".
example: 1
recipient_id_typestringRequiredFixed value: "1" for bank account recipients.
example: 1
channelnumberoptionalTransfer channel. Fixed value: 2 (IMPS). Defaults to 2.
example: 2
currencystringoptionalCurrency code. Defaults to "INR".
example: INR
timestampstringoptionalISO 8601 request timestamp.
example: 2024-01-01T10:30:00Z
Headers
| 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.
tidstringEko's internal transaction ID. Use this for status enquiries and reconciliation.
utrnumberstringUnique Transaction Reference (UTR) from the IMPS network — the banking-side reference number.
amountnumberAmount transferred in INR.
recipient_namestringName of the beneficiary credited.
accountstringBeneficiary account number credited.
ifscstringIFSC code of the credited bank account.
feenumberTransaction fee charged (in INR).
commissionnumberCommission earned by the agent on this transaction (in INR).
balancenumberRemaining wallet balance of the agent after the transaction.
client_ref_idstringYour system's reference ID (echoed back).
timestampstringServer-side timestamp of the transaction.