Upstox PAYMENTS API

The PAYMENTS API from Upstox — 4 operation(s) for payments.

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

PUT /v2/user/payments/payout/{transaction_id} Change the amount of a pending withdrawal · Modify payout #
Ask an LLM
“Can I change how much I'm withdrawing after I've requested a payout?”
“How do I edit a pending withdrawal amount?”
Tell an agent
Change payout {transaction_id} to {amount} rupees.
Update the withdrawal amount of {transaction_id} to INR {amount}.
DELETE /v2/user/payments/payout/{transaction_id} Cancel a pending withdrawal · Cancel payout #
Ask an LLM
“How do I cancel a withdrawal request before it's processed?”
“Can I stop a payout I requested by mistake?”
Tell an agent destructive · confirm first
Cancel payout {transaction_id}.
Stop withdrawal request {transaction_id}.
GET /v2/user/payments/payout List my withdrawal history · Get payout history #
Ask an LLM
“What withdrawals have I made from my trading account?”
“Where can I check whether my past payouts went through?”
Tell an agent
Show my payout history.
List all my withdrawals to the bank.
POST /v2/user/payments/payout Withdraw funds to my bank · Initiate payout #
Ask an LLM
“How do I withdraw money from my trading account to my bank?”
“Can I choose IMPS instead of NEFT for a withdrawal?”
Tell an agent
Withdraw {amount} rupees via {mode}.
Start a {mode} payout of INR {amount} to my bank account.
GET /v2/user/payments/payout/modes List available withdrawal modes · Get payout modes #
Ask an LLM
“Which withdrawal methods can I use right now?”
“Is instant IMPS withdrawal available for my account?”
Tell an agent
List the payout modes I can use.
Show which withdrawal methods are available now.
GET /v2/user/payments/payin List my deposit history · Get payin history #
Ask an LLM
“What funds have I added to my trading account?”
“Did my recent deposit get credited?”
Tell an agent
Show my pay-in history.
List the deposits I've made into my account.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/upstox:upstox-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

upstox-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OpenAPI definition PAYMENTS API
  version: v0
servers:
- url: https://api-v2.upstox.com
tags:
- name: Payments
paths:
  /v2/user/payments/payout/{transaction_id}:
    put:
      tags:
      - Payments
      operationId: modifyPayout
      parameters:
      - name: transaction_id
        in: path
        description: Payout transaction id
        required: true
        schema:
          type: string
        example: imps_0426_7654321
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyPayoutRequest'
        required: true
      responses:
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PayoutDetailsResponse'
      security:
      - OAUTH2: []
      summary: Modify payout
      x-summary-source: derived
    delete:
      tags:
      - Payments
      operationId: cancelPayout
      parameters:
      - name: transaction_id
        in: path
        description: Payout transaction id
        required: true
        schema:
          type: string
        example: imps_0426_7654321
      responses:
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PayoutDetailsResponse'
      security:
      - OAUTH2: []
      summary: Cancel payout
      x-summary-source: derived
  /v2/user/payments/payout:
    get:
      tags:
      - Payments
      operationId: getPayoutHistory
      responses:
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentHistoryResponse'
      security:
      - OAUTH2: []
      summary: Get payout history
      x-summary-source: derived
    post:
      tags:
      - Payments
      operationId: initiatePayout
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiatePayoutRequest'
        required: true
      responses:
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PayoutDetailsResponse'
      security:
      - OAUTH2: []
      summary: Initiate payout
      x-summary-source: derived
  /v2/user/payments/payout/modes:
    get:
      tags:
      - Payments
      operationId: getPayoutModes
      responses:
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PayoutModesResponse'
      security:
      - OAUTH2: []
      summary: Get payout modes
      x-summary-source: derived
  /v2/user/payments/payin:
    get:
      tags:
      - Payments
      operationId: getPayinHistory
      responses:
        '405':
          description: Method Not Allowed
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiGatewayErrorResponse'
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PaymentHistoryResponse'
      security:
      - OAUTH2: []
      summary: Get payin history
      x-summary-source: derived
components:
  schemas:
    Problem:
      type: object
      properties:
        errorCode:
          type: string
          deprecated: true
          description: Unique code for the error state
        message:
          type: string
          description: Verbose message for the error state
        propertyPath:
          type: string
          deprecated: true
          description: Path to property failing validation
        invalidValue:
          deprecated: true
          description: Invalid value for the property failing validation
        error_code:
          type: string
        property_path:
          type: string
        invalid_value: {}
    PayoutDetailsResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
          - partial_success
        data:
          $ref: '#/components/schemas/PayoutDetails'
          description: Response data for initiate payout request
    PayoutModesResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
          - partial_success
        data:
          $ref: '#/components/schemas/PayoutModesData'
          description: Available payout modes with eligibility details
    ModifyPayoutRequest:
      type: object
      properties:
        amount:
          type: number
          format: double
          description: Withdrawal amount in INR
          example: 5000.0
          minimum: 100.0
      required:
      - amount
    PayoutModesData: {}
    InitiatePayoutRequest:
      type: object
      properties:
        mode:
          type: string
          description: Withdrawal mode. NEFT or IMPS
          example: NEFT
          minLength: 1
          pattern: ^(NEFT|IMPS)$
        amount:
          type: number
          format: double
          description: Withdrawal amount in INR
          example: 5000.0
          minimum: 100.0
      required:
      - amount
      - mode
    ApiGatewayErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
          - partial_success
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Problem'
    PaymentHistoryData:
      type: object
      properties:
        amount:
          type: number
          format: double
        mode:
          type: string
        status:
          type: string
        reason:
          type: string
        currency:
          type: string
        eta:
          type: string
        last_updated_at:
          type: string
        bank_name:
          type: string
        transaction_id:
          type: string
        total_charges:
          type: number
          format: double
        charges_category:
          type: string
        created_at:
          type: string
    PayoutDetails:
      type: object
      properties:
        status:
          type: string
        mode:
          type: string
        amount:
          type: number
          format: double
        currency:
          type: string
        eta:
          type: string
        message:
          type: string
        transaction_id:
          type: string
        created_at:
          type: string
        bank_name:
          type: string
        transaction_fee:
          type: string
    PaymentHistoryResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
          - partial_success
        data:
          type: array
          description: List of payment history records
          items:
            $ref: '#/components/schemas/PaymentHistoryData'
  securitySchemes:
    OAUTH2:
      type: oauth2
      scheme: BEARER
      flows:
        authorizationCode:
          authorizationUrl: https://api-v2.upstox.com/v2/login/authorization/dialog
          tokenUrl: https://api-v2.upstox.com/v2/login/authorization/token
          scopes:
            read: Read access
            write: Write access
x-provenance:
  method: harvested
  publisher: Upstox
  source: https://api-v2.upstox.com/api-docs
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)