Payouts • PayIns • Status • Webhooks

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.

POST https://app.trustupi.com/api/payout/domesticPayments

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.

POST https://app.trustupi.com/api/payout/transaction-status

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.

POST https://app.trustupi.com/api/payin/create-order
Ensure the live environment is configured with your IP allowlist and callback URL for PayIn transactions before sending requests.

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.

POST https://app.trustupi.com/api/payin/transaction-status

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.