POSTSend Transaction OTP
Request an OTP to the sender's mobile to authorise a PPI Levin transfer.
Dispatches an OTP to the sender for an upcoming transfer to a given recipient and amount. Returns an otp_ref_id to pass, with the OTP, into Initiate Transaction.
Request
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
initiator_id | string | required | Registered mobile number of the API user (see Platform Credentials).e.g. 9962981729 |
client_ref_id | string | optional | Unique reference ID per API call, generated by your system (max 20 characters).e.g. 2026010100123456789 |
recipient_id | integer | required | Unique ID generated while adding the recipient.e.g. 10017740 |
amount | integer | required | Amount to be transferred (INR).e.g. 110 |
customer_id | string | required | Sender's 10-digit mobile number.e.g. 9444444444 |
service_code | integer | optional | Fixed service code. Send 80.e.g. 80 |
beneficiary_id | string | optional | Beneficiary ID generated when adding the recipient's bank.e.g. 40367 |
initiator_idstringRequiredRegistered mobile number of the API user (see Platform Credentials).
example: 9962981729
client_ref_idstringoptionalUnique reference ID per API call, generated by your system (max 20 characters).
example: 2026010100123456789
recipient_idintegerRequiredUnique ID generated while adding the recipient.
example: 10017740
amountintegerRequiredAmount to be transferred (INR).
example: 110
customer_idstringRequiredSender's 10-digit mobile number.
example: 9444444444
service_codeintegeroptionalFixed service code. Send 80.
example: 80
beneficiary_idstringoptionalBeneficiary ID generated when adding the recipient's bank.
example: 40367
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.
dataobjectAPI-specific response payload.
otp_ref_idstringOTP session reference — pass to Initiate Transaction.