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 after OTP validation. Requires the otp and otp_ref_id from Send Transaction OTP plus a unique client_ref_id per attempt for idempotency and reconciliation. The response returns tid (Eko transaction ID) and bank_ref_num (the IMPS RRN/UTR). Use a fresh otp_ref_id and OTP for each attempt — a consumed OTP is rejected — and always persist tid, bank_ref_num, and your client_ref_id to reconcile before retrying.
- DMT (Fino) — Send Money — Full Fino DMT money-transfer flow: look up the sender, onboard and biometric-eKYC them if new, pick or add the recipient, then send an OTP-verified transfer.
Request
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
initiator_id | string | required | Registered mobile number of the API user (see Platform Credentials).e.g. 9962981729 |
recipient_id | number | required | Unique recipient ID from Add Recipient or Get Recipients.e.g. 117015428 |
amount | number | required | Transfer amount in INR (must match the amount sent to Send Transaction OTP).e.g. 100 |
customer_id | string | required | Sender's 10-digit mobile number.e.g. 9155927131 |
otp | string | required | OTP entered by the customer, received on their registered mobile.e.g. 4702 |
otp_ref_id | string | required | OTP reference ID from the Send Transaction OTP response.e.g. 667007109 |
client_ref_id | string | required | Unique partner reference for this transaction (idempotency & reconciliation). Use a fresh value per attempt.e.g. <unique_client_ref_id> |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
recipient_idnumberRequiredUnique recipient ID from Add Recipient or Get Recipients.
example: 117015428
amountnumberRequiredTransfer amount in INR (must match the amount sent to Send Transaction OTP).
example: 100
customer_idstringRequiredSender's 10-digit mobile number.
example: 9155927131
otpstringRequiredOTP entered by the customer, received on their registered mobile.
example: 4702
otp_ref_idstringRequiredOTP reference ID from the Send Transaction OTP response.
example: 667007109
client_ref_idstringRequiredUnique partner reference for this transaction (idempotency & reconciliation). Use a fresh value per attempt.
example: <unique_client_ref_id>
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 state within the data block: 0=Success, 1=Fail, 2=Awaited.
txstatus_descstringHuman-readable transaction status.
tidstringEko's internal transaction ID. Store for reconciliation and support queries.
bank_ref_numstringBank reference number (RRN / UTR) for the IMPS transaction.
amountstringAmount transferred (INR).
feestringFee charged for the transfer (INR).
collectable_amountstringTotal collectable from the sender (amount + fee).
service_taxstringService tax component on the fee (INR).
tdsstringTax deducted at source on the agent's commission (INR).
commissionstringCommission earned by the agent on this transaction (INR).
sender_namestringName of the sender.
recipient_namestringName of the beneficiary credited.
recipient_idnumberRecipient identifier credited.
bankstringBeneficiary bank name.
accountstringBeneficiary account number credited.
channel_descstringSettlement channel used (e.g. IMPS).
balancestringAgent wallet balance after the transaction (INR).
client_ref_idstringEcho of the partner reference sent in the request.
currencystringCurrency code.
timestampstringServer-side timestamp of the transaction.