Fintech APIs & Platform for KYC, Verification & Transactions in India | Eko Platform ServicesDMT (Fino) — Send Money — API Recipe | Eko Platform Services
Eko Platform Services Logo

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.

Product & pricing: Domestic Money Transfer (DMT)

  1. 1

    Check whether the customer is already a registered DMT sender, and which stage of onboarding they are at. The `response_type_id` decides where the flow enters.

    If response_type_id is 308 — skip to step 2, Onboard Sender. Sender not found — onboard them before continuing.

    If response_type_id is 2134 — skip to step 3, Sender eKYC (Biometric). Sender found but biometric eKYC is pending — capture their fingerprint.

    If response_type_id is 2129 — skip to step 4, Validate eKYC OTP. Sender found mid-eKYC — only the OTP validation is left.

    If response_type_id is 309 — skip to step 5, Get Recipients. Sender found and KYC complete — skip onboarding and go straight to recipients.

  2. 2

    Register a new sender with name, date of birth and residence address. This opens the sender on Eko but leaves KYC pending on Fino (`response_type_id=2134`) — they cannot transact yet.

    If response_type_id is 309 — skip to step 5, Get Recipients. Already onboarded on Fino externally, KYC complete — no eKYC needed.

  3. 3

    Biometric Aadhaar eKYC — one-time per sender. Capture the PID block from an RD-service fingerprint scanner and submit it with the sender's Aadhaar number; the response returns the `kyc_request_id` and `otp_ref_id` the next step needs. Completing eKYC raises the sender's monthly limit from ₹5,000 to ₹25,000.

  4. 4

    Confirm the eKYC by submitting the OTP sent to the sender's Aadhaar-linked mobile, along with the `kyc_request_id` and `otp_ref_id` from the biometric step. The sender is fully KYC-verified on success.

  5. 5

    List the sender's saved beneficiaries. If the one they want is already there, reuse its `recipient_id` and skip Add Recipient.

    If response_type_id is 22 — skip to step 6, Add Recipient. No recipients saved yet — add one before transacting.

    If response_type_id is 23 — skip to step 7, Send Transaction OTP. Recipient already saved — reuse its `recipient_id`.

  6. 6

    Add the beneficiary the sender wants to transfer to; returns the `recipient_id` used by the two transaction steps.

  7. 7

    Pre-authorise the transfer: sends an OTP to the sender's registered mobile and returns the `otp_ref_id`. Required before every transfer — request a fresh one per attempt.

  8. 8

    Submit the transfer with the customer-entered OTP, its `otp_ref_id`, and a `client_ref_id` unique to this attempt. The only money-debit step — persist `tid` and `bank_ref_num` and reconcile before any retry.

    If status is 0 — the flow is complete.

Flow at a glance

response_type_id 308on type 308response_type_id 2134on type 2134response_type_id 2129on type 2129response_type_id 309on type 309response_type_id 309on type 309otherwise, on successotherwise, on successon successon successon successon successresponse_type_id 22on type 22response_type_id 23on type 23on successon successon successon successstatus 0on success1. GET Get Sender ProfileGETGet Sender Profile2. POST Onboard SenderPOSTOnboard Sender3. PUT Sender eKYC (Biometric)PUTSender eKYC (Biometric)4. PUT Validate eKYC OTPPUTValidate eKYC OTP5. GET Get RecipientsGETGet Recipients6. POST Add RecipientPOSTAdd Recipient7. POST Send Transaction OTPPOSTSend Transaction OTP8. POST Initiate TransferPOSTInitiate Transferdone
on successthe call succeeded (status is 0)on type Nthe response's response_type_id is N