Fintech APIs & Platform for KYC, Verification & Transactions in India | Eko Platform Services
Eko Platform Services Logo

POSTInitiate Transaction

Execute a DigiKhata wallet transfer to a recipient after OTP verification.

POST/customer/payment/ppi-digikhata

Initiates the money transfer from the sender's DigiKhata wallet to the recipient after OTP verification. Returns the financial response envelope with tx_status, tid, bank reference number, fee, and updated balance. Keep channel fixed at 2.

Status codes

tx_statusMeaning
0Success
1Fail
2Initiated
3Refund pending
4Refunded
5Hold (inquiry required)

Treat any unexpected status as initiated and follow up with an inquiry.

Timeouts

Danger

A transaction can time out from a slow bank response or poor connectivity. Do not treat a timeout as a failure. Re-query the real status with the Transaction Inquiry API using your own client_ref_id.

Failed transactions → refund

When a transaction fails, the system auto-dispatches an OTP to the customer. Fetch it via Get Refund OTP (this acts as the customer's documented consent for the refund); the eValue is then refunded back to your account.

Request

Body parameters

initiator_idstringRequired

Registered mobile number of the API user (see Platform Credentials).

example: 9962981729

client_ref_idstringoptional

Unique reference ID per API call, generated by your system (max 20 characters).

example: 2026010100123456789

recipient_idintegerRequired

Unique ID generated while adding the recipient.

example: 10017680

amountintegerRequired

Amount to be transferred (INR).

example: 110

timestampstringRequired

Request timestamp (ISO 8601).

example: 2025-01-21T07:07:20.562Z

currencystringRequired

Currency. Must be INR.

example: INR

customer_idstringRequired

Sender's 10-digit mobile number.

example: 8999999992

channelintegerRequired

Transfer channel. Defaults to 2 (NEFT); 0 for IMPS.

example: 2

otpstringoptional

OTP received from Send Transaction OTP.

example: 123456

otp_ref_idstringoptional

otp_ref_id received from Send Transaction OTP.

example: zCISyglexo0Pjqp4YrS2ssweuD9v1c3aLKGxjTW8wU7An8Wem1UyNws5830yh7q/sf5J4R3BY=

beneficiary_idstringoptional

Beneficiary ID generated while getting the recipient details.

example: 4202888

service_codeintegeroptional

Fixed service code. Defaults to 80.

example: 80

latlongstringoptional

Geographic coordinates of the user's location.

example: 28.63,77.22

statestringoptional

State parameter. Defaults to 1.

example: 1

Responses

  • statusnumber

    Primary success indicator (0 = success).

  • messagestring

    Human-readable response / error message.

  • response_status_idnumber

    Granular status id; see the shared error-codes table.

  • response_type_idnumber

    A unique id for every possible response shape (success or error) — useful for client logic branching and analytics.

  • tx_statusstring

    Transaction state: 0=Success, 1=Fail, 2=Awaited, 3=Refund Pending, 4=Refunded, 5=On Hold.

  • txstatus_descstring

    Human-readable transaction status.

  • dataobject

    API-specific response payload.

    • tidstring

      Eko transaction ID.

    • tx_statusstring

      Transaction status (0 = success).

    • txstatus_descstring

      Human-readable transaction status.

    • bank_ref_numstring

      Bank/UTR reference number for the transfer.

    • amountstring

      Transferred amount (INR).

    • feestring

      Fee charged for the transfer (INR).

    • balancestring

      Sender's wallet balance after the transfer (INR).

    • channel_descstring

      Channel used (IMPS/NEFT).

    • recipient_namestring

      Recipient's name.

Next steps

NextPOSTSend Transaction OTPRequest an OTP to the sender's mobile to authorise a DigiKhata transfer.

Related