Skip to main content

Payout Request

API to place a fund withdrawal (payout) request for the authenticated user. Supports Standard (NEFT) and Instant (IMPS) withdrawal modes. The withdrawal is credited to the user's registered primary bank account.

Check Eligibility and Withdrawal Fees
  • Use the Get Payout Modes API to fetch the modes available and eligible withdrawal amount to your account along with the minimum and maximum withdrawal amounts for each mode before placing a request.
  • NEFT (Standard): Free of charge.
  • IMPS (Instant): Credited within minutes subject to eligibility.
    Fee: ₹20 + GST (Basic plan); Free (Plus plan).
  • Only one active withdrawal request is allowed at a time.
  • IMPS requests cannot be edited once initiated.
  • The Payout APIs are subject to a separate rate limit. For more information, please check here.

Instant Withdrawal Eligibility

IMPS (Instant) withdrawals are subject to real-time eligibility checks. See Instant Withdrawal Eligibility for the full list of criteria.

Request

curl --location --request POST 'https://api.upstox.com/v2/user/payments/payout' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {your_access_token}' \
--header 'Content-Type: application/json' \
--data '{"mode": "IMPS", "amount": 5000.0}'

Additional samples in various languages are available in the Sample Code section on this page.

Request Body

NameTypeRequiredDescription
modestringYesWithdrawal mode. One of NEFT (Standard) or IMPS (Instant).
amountnumberYesWithdrawal amount in INR. Must satisfy the min/max bounds for the selected mode.
Responses

Response Body

{
"status": "success",
"data": {
"transaction_id": "ABC123XYZ-GC0173-7HIMPSABC",
"status": "received",
"mode": "IMPS",
"amount": 5000.0,
"currency": "INR",
"eta": "2026-04-19 13:30:00",
"created_at": "2026-04-19 13:25:56",
"bank_name": "AXIS BANK",
"message": "Your instant withdrawal request has been received. Funds will be credited within 5 minutes."
}
}
NameTypeDescription
statusstringOutcome of the request.
dataobjectPayout transaction record.
data.transaction_idstringUnique identifier for the payout transaction.
data.statusstringCurrent state of the payout. One of RECEIVED, VALIDATING, APPROVED, TRANSFER_IN_PROGRESS, COMPLETED, REJECTED, REVERSED.
data.modestringResolved payout mode. One of NEFT or IMPS.
data.amountnumberWithdrawal amount in INR.
data.currencystringCurrency code. Always INR.
data.etastringEstimated completion time (YYYY-MM-DD HH:MM:SS).
data.created_atstringTransaction creation timestamp (YYYY-MM-DD HH:MM:SS).
data.bank_namestringDisplay name of the destination bank.
data.messagestringUser-facing status message.

Sample Code

Payout request

import requests

url = 'https://api.upstox.com/v2/user/payments/payout'
headers = {
'accept': 'application/json',
'Authorization': 'Bearer {your_access_token}',
'Content-Type': 'application/json',
}
payload = {
'mode': 'IMPS',
'amount': 5000.0,
}
print(requests.post(url, headers=headers, json=payload).json())
Loading...