Upbit Exchange - Deposits API

Deposit management endpoints — JWT required

OpenAPI Specification

upbit-exchange-deposits-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Upbit REST Exchange - Account Exchange - Deposits API
  description: Upbit is a leading South Korean cryptocurrency exchange operated by Dunamu Inc., offering REST and WebSocket APIs for market data retrieval, order management, account balances, and transaction history. Developers must register an Upbit account with security level 2 or higher to issue API keys. Authenticated requests use JWT bearer tokens (HS512) generated from an Access Key and Secret Key pair, while public quotation endpoints (market data, tickers, orderbooks, candles) require no authentication. Upbit supports KRW, BTC, and USDT trading markets and complies with travel-rule regulations for digital asset transfers.
  version: 1.3.2
  termsOfService: https://upbit.com/service_center/terms
  contact:
    url: https://global-docs.upbit.com/docs/support
  license:
    name: Upbit Open API Usage Agreement
    url: https://upbit.com/service_center/terms
servers:
- url: https://api.upbit.com/v1
  description: Global API endpoint
security: []
tags:
- name: Exchange - Deposits
  description: Deposit management endpoints — JWT required
paths:
  /deposits/chance/coin:
    get:
      operationId: getAvailableDepositInformation
      summary: Get available deposit information
      description: Returns deposit availability status, minimum amounts, and confirmation requirements for the specified currency and network.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      parameters:
      - name: currency
        in: query
        required: true
        schema:
          type: string
        description: Currency code
      - name: net_type
        in: query
        required: true
        schema:
          type: string
        description: Network type
      responses:
        '200':
          description: Deposit availability information
          content:
            application/json:
              schema:
                type: object
                properties:
                  currency:
                    type: string
                  net_type:
                    type: string
                  is_deposit_possible:
                    type: boolean
                    description: Whether deposits are currently possible
                  deposit_impossible_reason:
                    type: string
                    nullable: true
                    description: Reason deposits are disabled (if applicable)
                  minimum_deposit_amount:
                    type: string
                    description: Minimum deposit amount (decimal string)
                  minimum_deposit_confirmations:
                    type: integer
                    description: Minimum blockchain confirmations required
                  decimal_precision:
                    type: integer
                    description: Decimal precision for the currency
        '401':
          description: Unauthorized
  /deposits/generate_coin_address:
    post:
      operationId: createDepositAddress
      summary: Create deposit address
      description: Generates a new deposit address for the specified currency and network type. Address generation may be asynchronous; poll get_deposit_address if address is not immediately returned.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - currency
              - net_type
              properties:
                currency:
                  type: string
                  description: Currency code
                net_type:
                  type: string
                  description: Network type
      responses:
        '201':
          description: Deposit address created or pending
          content:
            application/json:
              schema:
                type: object
                properties:
                  currency:
                    type: string
                  net_type:
                    type: string
                  deposit_address:
                    type: string
                    nullable: true
                    description: Generated deposit address (may be null if still generating)
        '401':
          description: Unauthorized
  /deposits/coin_address:
    get:
      operationId: getDepositAddress
      summary: Get deposit address
      description: Returns the deposit address for the specified currency and network type.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      parameters:
      - name: currency
        in: query
        required: true
        schema:
          type: string
        description: Currency code
      - name: net_type
        in: query
        required: true
        schema:
          type: string
        description: Network type
      responses:
        '200':
          description: Deposit address details
          content:
            application/json:
              schema:
                type: object
                properties:
                  currency:
                    type: string
                  net_type:
                    type: string
                  deposit_address:
                    type: string
                    nullable: true
        '401':
          description: Unauthorized
  /deposits/coin_addresses:
    get:
      operationId: listDepositAddresses
      summary: List deposit addresses
      description: Returns all deposit addresses for the authenticated account across all currencies and networks.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      responses:
        '200':
          description: List of deposit addresses
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    currency:
                      type: string
                    net_type:
                      type: string
                    deposit_address:
                      type: string
                      nullable: true
        '401':
          description: Unauthorized
  /deposit:
    get:
      operationId: getDeposit
      summary: Get deposit
      description: Returns details for a single deposit by currency, UUID, or transaction ID.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      parameters:
      - name: currency
        in: query
        required: false
        schema:
          type: string
        description: Currency code
      - name: uuid
        in: query
        required: false
        schema:
          type: string
        description: Deposit UUID
      - name: txid
        in: query
        required: false
        schema:
          type: string
        description: Blockchain transaction ID
      responses:
        '200':
          description: Deposit details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositResponse'
        '401':
          description: Unauthorized
  /deposits:
    get:
      operationId: listDeposits
      summary: List deposits
      description: Returns a list of deposits for the authenticated account with optional filters.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      parameters:
      - name: currency
        in: query
        required: false
        schema:
          type: string
        description: Filter by currency code
      - name: state
        in: query
        required: false
        schema:
          type: string
        description: Filter by deposit state
      - name: uuids[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Filter by deposit UUIDs
      - name: txids[]
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Filter by blockchain transaction IDs
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Number of results per page
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number
      - name: order_by
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
        description: Sort order
      - name: from
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Start of date range
      - name: to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End of date range
      responses:
        '200':
          description: List of deposits
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DepositResponse'
        '401':
          description: Unauthorized
  /deposits/krw:
    post:
      operationId: depositKrw
      summary: Request KRW deposit
      description: Initiates a KRW fiat deposit with two-factor authentication verification.
      tags:
      - Exchange - Deposits
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - amount
              - two_factor_type
              properties:
                amount:
                  type: string
                  description: Deposit amount in KRW (decimal string)
                two_factor_type:
                  type: string
                  enum:
                  - kakao
                  - naver
                  - hana
                  description: Two-factor authentication provider
      responses:
        '201':
          description: KRW deposit request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositResponse'
        '401':
          description: Unauthorized
components:
  schemas:
    DepositResponse:
      type: object
      properties:
        type:
          type: string
          description: Transaction type
        uuid:
          type: string
          description: Deposit UUID
        currency:
          type: string
          description: Currency code
        txid:
          type: string
          description: Transaction ID
        state:
          type: string
          description: Deposit state
        created_at:
          type: string
          format: date-time
          description: Creation time
        done_at:
          type: string
          format: date-time
          nullable: true
          description: Completion time
        amount:
          type: string
          description: Deposit amount (decimal string)
        fee:
          type: string
          description: Deposit fee (decimal string)
        transaction_type:
          type: string
          description: Transaction type
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT HS512 token generated from Access Key and Secret Key. Include query_hash and query_hash_alg=SHA512 in the payload when query parameters or JSON body exist.
externalDocs:
  description: Upbit Developer Center
  url: https://global-docs.upbit.com/reference