TrustUpi API – Modern Reference
This page documents TrustUpi's Payout and PayIn APIs, including request/response formats, status polling, and webhook callbacks. Use the sidebar to jump between endpoints. Copyable request/response examples are included.
Overview
All endpoints are served over HTTPS. JSON is used for request and response bodies.
- Content‑Type
- application/json
- Authentication
- Header keys:
partner-id
,secret-key
,access-key
- Idempotency
- Provide a unique
uniquetransactionid
per transaction.
Authentication & Headers
Include the following headers with each request:
{
"partner-id": "xxxxxxxx",
"secret-key": "xxxxxxxx",
"access-key": "xxxxxxxx"
}
1) POST Payout API
Initiate a domestic payout.
Request Body
{
"amount": "10.00",
"uniquetransactionid": "PAY12",
"account_number": "xxxxxxxx",
"txn_mode": "IMPS",
"beneficiary_name": "yxxxxxx",
"ifsc_code": "AIRP0000001"
}
Responses
Possible synchronous outcomes returned by the API:
Pending
{
"response_id": 900,
"status": "Pending",
"message": "Transaction is Processing",
"data": {
"status": "Pending",
"uniquetransactionid": "PAY123459",
"txn_mode": "IMPS",
"utr": "502419021150",
"referenceId": "PAY123459",
"response_message": "Payment is Pending"
}
}
Success
{
"response_id": 900,
"status": "Success",
"message": "Transaction completed successfully",
"data": {
"status": "Success",
"uniquetransactionid": "PAY123459",
"txn_mode": "IMPS",
"utr": "502419021150",
"referenceId": "PAY123459",
"response_message": "Payment is successful"
}
}
2) Payout Status API
Poll the payout status using your unique transaction ID.
Request Body
{
"uniquetransactionid": "PAY123412"
}
Responses
Success
{
"response_id": 200,
"status": "SUCCESS",
"message": "Transaction Fetch successful",
"data": {
"status": "SUCCESS",
"uniquetransactionid": "PAY123412",
"referenceId": "4589142",
"utr": "502420051034",
"message": "Transaction Fetch successful."
}
}
Failed
{
"response_id": 200,
"status": "Failed",
"message": "Transaction Fetch successful",
"data": {
"status": " Failed ",
"uniquetransactionid": "PAY123412",
"referenceId": "4589142",
"utr": "502420051034",
"message": "Transaction Fetch successful."
}
}
Pending
{
"response_id": 200,
"status": "Pending",
"message": "Transaction Fetch successful",
"data": {
"status": " Pending ",
"uniquetransactionid": "PAY123412",
"referenceId": "4589142",
"utr": "502420051034",
"message": "Transaction Fetch successful."
}
}
3) Create PayIn Order API
Generate a PayIn order and payment link.
Request Body
{
"amount": "1.00",
"uniquetransactionid": "TS106300823215",
"email": "test@gmail.com",
"fullname": "Test",
"mobile": "1234567890"
}
Response (Success)
{
"response_id": 90,
"status": "Success",
"message": "Payment link generated successfully.",
"data": {
"status": "Success",
"uniquetransactionid": "TS106300823226",
"referenceId": "PG00H001L20655190904",
"url": "https://api.payu.in/public/#/5af5f79e89e1432fcc2f8d47cb88982b",
"response_message": "Order created successfully"
}
}
4) PayIn Status API
Poll the PayIn transaction status with your unique transaction ID.
Request Body
{
"uniquetransactionid": "TS106300823224"
}
Responses
Success
{
"response_id": 200,
"status": "Success",
"message": "Transaction updated as successful.",
"data": {
"status": "Success",
"uniquetransactionid": "TS1063008257",
"pg_txn_id": "qr_PpjXEPFoCGRftH",
"utr": "434851540167",
"amount": "1.00",
"message": "Transaction updated as successful."
}
}
Failed
{
"response_id": 400,
"status": "Failed",
"message": "Transaction fetch successful",
"data": {
"status": " Failed ",
"uniquetransactionid": "TS1063008257",
"pg_txn_id": "qr_PpjXEPFoCGRftH",
"utr": "434851540167",
"amount": "1.00",
"message": "Transaction fetch successful."
}
}
Pending
{
"response_id": 400,
"status": "Pending",
"message": "Transaction fetch successful",
"data": {
"status": " Pending ",
"uniquetransactionid": "TS1063008257",
"pg_txn_id": "qr_PpjXEPFoCGRftH",
"utr": "434851540167",
"amount": "1.00",
"message": "Transaction fetch successful."
}
}
Webhooks / Callbacks
The platform sends asynchronous callbacks to your configured URL to finalize transaction states. Handle these as the source of truth.
Payout Callback – Success
{
"response_id": 400,
"status": "Success",
"message": "Transaction Updated as successful.",
"data": {
"status": " Success ",
"uniquetransactionid": "PAY123456",
"referenceId": "PAY123456",
"utr": "431110880638",
"message": "Transaction Updated as successful."
}
}
Payout Callback – Failed
{
"response_id": 400,
"status": "FAILED",
"message": "Transaction failed due to an error.",
"data": {
"status": "FAILED",
"uniquetransactionid": "PAY123456",
"referenceId": "PAY123456",
"utr": "431110880638",
"message": "Transaction failed due to an error."
}
}
PayIn Callback – Success
{
"response_id": 200,
"status": "Success",
"message": " Transaction Updated as successful.",
"data": {
"status": " Success ",
"uniquetransactionid": "PAY123456",
"referenceId": "PAY123456",
"utr": "431110880638",
"message": " Transaction Updated as successful."
}
}
PayIn Callback – Pending
{
"response_id": 201,
"status": "Pending",
"message": " Transaction Updated as pending.",
"data": {
"status": " Pending ",
"uniquetransactionid": "PAY123456",
"referenceId": "PAY123456",
"utr": "431110880638",
"message": " Transaction Updated as pending."
}
}
PayIn Callback – Failed
{
"response_id": 400,
"status": "Failed",
"message": " Transaction Updated failed.",
"data": {
"status": " Failed ",
"uniquetransactionid": "PAY123456",
"referenceId": "PAY123456",
"utr": "431110880638",
"message": " Transaction Updated failed."
}
}
Go‑Live Checklist
- Use live API credentials for all requests.
- Provide your server IP address for allowlisting.
- Configure your callback URL for Payout and PayIn flows.
- Use a unique
uniquetransactionid
per transaction. - On webhook reception, reconcile by
uniquetransactionid
and consider the webhook as final state.