POSTInitiate Transaction
Execute a PPI Levin wallet transfer to a recipient after OTP verification.
Initiates the money transfer from the sender's PPI Levin wallet to the recipient. Returns the financial response envelope with tx_status, transaction id (tid), bank reference number, fee, and updated balance.
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 | integer | required | Unique ID generated while adding the recipient.e.g. 10017680 |
amount | integer | required | Amount to be transferred (INR).e.g. 110 |
timestamp | string | required | Request timestamp (ISO 8601).e.g. 2025-01-21T07:07:20.562Z |
currency | string | required | Currency. Must be INR.e.g. INR |
customer_id | string | required | Sender's 10-digit mobile number.e.g. 8999999992 |
channel | integer | required | Transfer channel. Defaults to 2 (NEFT); 0 for IMPS.e.g. 2 |
otp | string | optional | OTP received from Send Transaction OTP.e.g. 123456 |
otp_ref_id | string | optional | otp_ref_id received from Send Transaction OTP.e.g. zCISyglexo0Pjqp4YrS2ssweuD9v1c3aLKGxjTW8wU7An8Wem1UyNws5830yh7q/sf5J4R3BY= |
beneficiary_id | string | optional | Beneficiary ID generated while getting the recipient details.e.g. 40367 |
latlong | string | optional | Geographic coordinates of the user's location.e.g. 28.63,77.22 |
state | string | optional | State parameter.e.g. 1 |
recipient_id_type | string | optional | Recipient ID type. Defaults to 1.e.g. 1 |
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_idintegerRequiredUnique ID generated while adding the recipient.
example: 10017680
amountintegerRequiredAmount to be transferred (INR).
example: 110
timestampstringRequiredRequest timestamp (ISO 8601).
example: 2025-01-21T07:07:20.562Z
currencystringRequiredCurrency. Must be INR.
example: INR
customer_idstringRequiredSender's 10-digit mobile number.
example: 8999999992
channelintegerRequiredTransfer channel. Defaults to 2 (NEFT); 0 for IMPS.
example: 2
otpstringoptionalOTP received from Send Transaction OTP.
example: 123456
otp_ref_idstringoptionalotp_ref_id received from Send Transaction OTP.
example: zCISyglexo0Pjqp4YrS2ssweuD9v1c3aLKGxjTW8wU7An8Wem1UyNws5830yh7q/sf5J4R3BY=
beneficiary_idstringoptionalBeneficiary ID generated while getting the recipient details.
example: 40367
latlongstringoptionalGeographic coordinates of the user's location.
example: 28.63,77.22
statestringoptionalState parameter.
example: 1
recipient_id_typestringoptionalRecipient ID type. Defaults to 1.
example: 1
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 transaction ID.
tx_statusstringTransaction status (0 = success).
txstatus_descstringHuman-readable transaction status.
bank_ref_numstringBank/UTR reference number for the transfer.
amountstringTransferred amount (INR).
feestringFee charged for the transfer (INR).
balancestringSender's wallet balance after the transfer (INR).
bankstringRecipient's bank name.
channel_descstringChannel used (IMPS/NEFT).
recipient_namestringRecipient's name.