> ## Documentation Index
> Fetch the complete documentation index at: https://whitebit-mintlify-fix-broken-links-1776039227.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create withdraw request with the specific withdraw amount (fee is not included)

> Submit a withdrawal request where the specified amount is the exact amount received, with fees added on top.

Example:

* When creating a base withdraw with amount = 100 USD, the receiver receives 100 USD minus the fee, and the balance decreases by 100 USD.
* When calling the endpoint with amount = 100 USD, the receiver receives 100 USD, and the balance decreases by 100 USD + [fee](/glossary/#fee) amount.


## OpenAPI

````yaml /openapi/private/main_api_v4.yaml POST /api/v4/main-account/withdraw-pay
openapi: 3.0.3
info:
  title: WhiteBIT Private HTTP API V4
  description: |
    WhiteBIT Private HTTP API V4 for Main balance changes.

    Base URL: https://whitebit.com

    All endpoints return time in Unix-time format.
    All endpoints return either a JSON object or array.
    For receiving responses from API calls please use http method POST.
  version: 4.0.0
  contact:
    name: WhiteBIT Support
    email: support@whitebit.com
    url: https://whitebit.com
servers:
  - url: https://whitebit.com
    description: WhiteBIT Global Server
  - url: https://whitebit.eu
    description: WhiteBIT EU Server
security:
  - ApiKeyAuth: []
    PayloadAuth: []
    SignatureAuth: []
tags:
  - name: Main Account
    description: Main account balance and operations
  - name: Deposit
    description: Cryptocurrency and fiat deposit operations
  - name: Withdraw
    description: Cryptocurrency and fiat withdrawal operations
  - name: Transfer
    description: Balance transfer operations
  - name: Codes
    description: WhiteBIT codes operations
  - name: Crypto Lending - Fixed
    description: Fixed crypto lending plans
  - name: Crypto Lending - Flex
    description: Flexible crypto lending plans
  - name: Fees
    description: Fee information
  - name: Sub-Account
    description: Sub-account management
  - name: Sub-Account API Keys
    description: Sub-account API key management
  - name: Mining Pool
    description: Mining pool operations
  - name: Credit Line
    description: Credit line information
  - name: JWT
    description: JWT token management
paths:
  /api/v4/main-account/withdraw-pay:
    post:
      tags:
        - Withdraw
      summary: Create withdraw request with specific withdraw amount (fee not included)
      description: >
        The endpoint has the similar logic as /main-account/withdraw, but with
        the only difference: amount that is specified will not include
        [fee](/glossary#fee) (it will be calculated to make target withdraw
        amount equal to the specified amount).


        **Example:**

        - When creating a base withdraw with amount = 100 USD, the receiver
        receives 100 USD minus the [fee](/glossary#fee), and the balance
        decreases by 100 USD.

        - When using this endpoint with amount = 100 USD, the receiver receives
        100 USD, and the balance decreases by 100 USD plus the
        [fee](/glossary#fee).


        <Warning>

        Rate limit: 1000 requests/10 sec.

        </Warning>


        <Note>

        The API does not cache the response.

        </Note>
      operationId: createWithdrawPay
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WithdrawRequest'
            example:
              ticker: ETH
              amount: '0.9'
              address: '0x0964A6B8F794A4B8d61b62652dB27ddC9844FB4c'
              unique_id: '24529041'
              request: '{{request}}'
              nonce: '{{nonce}}'
      responses:
        '201':
          description: >-
            Validation succeeded and withdraw creation process is started. Check
            the request status by uniqueId in deposit/withdraw history.
          content:
            application/json:
              schema:
                type: array
                items: {}
                description: Empty array indicates success
              example: []
        '400':
          description: >
            Request validation failed


            Response error codes:

            - 1 - currency is not withdrawable

            - 2 - specified address is invalid

            - 3 - amount is too small

            - 4 - amount is too small for the payment system

            - 5 - not enough balance

            - 6 - amount is less than or equals [fee](/glossary#fee)

            - 7 - amount should be integer (can happen for currencies with zero
            [precision](/glossary#precision) like Neo)

            - 8 - target withdraw amount without [fee](/glossary#fee) equals
            zero

            - 9 - address is unavailable (occurs for withdraws to own address)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missingFields:
                  summary: Missing required fields
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      address:
                        - The address field is required.
                      amount:
                        - The amount field is required.
                      ticker:
                        - The ticker field is required.
                      unique_id:
                        - The unique id field is required.
                duplicateUniqueId:
                  summary: Duplicate uniqueId
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      unique_id:
                        - The unique id has already been taken.
                unconfirmedUser:
                  summary: Unconfirmed user (without KYC)
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount:
                        - >-
                          This currency has no active pairs or it may have been
                          delisted. Its rate cannot be calculated at the moment.
                        - Current limit exceeded
        '422':
          description: >
            Inner validation failed


            Response error codes:

            - 1 - currency is not withdrawable

            - 2 - specified address is invalid

            - 3 - amount is too small

            - 4 - amount is too small for the payment system

            - 5 - not enough balance

            - 6 - amount is less than or equals [fee](/glossary#fee)

            - 7 - amount should be integer (can happen for currencies with zero
            [precision](/glossary#precision) like Neo)

            - 8 - target withdraw amount without [fee](/glossary#fee) equals
            zero

            - 9 - address is unavailable (occurs for withdraws to own address)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInner'
components:
  schemas:
    WithdrawRequest:
      type: object
      required:
        - ticker
        - amount
        - address
        - unique_id
        - request
        - nonce
      properties:
        ticker:
          type: string
          description: >-
            Currencies [ticker](/glossary#ticker). Example: BTC ⚠️ Currencies
            ticker must have "can_deposit" status equal to "true". Use [Asset
            Status endpoint](/public/http-v4/asset-status-list) to know more
            about currency.
          example: ETH
        amount:
          type: string
          description: >-
            Withdraw amount (including [fee](/glossary#fee)). To add the fee to
            the specified amount, use the /main-account/withdraw-pay request
          example: '0.9'
        address:
          type: string
          description: >-
            Target address (wallet address for cryptocurrencies,
            identifier/[card token](/glossary#card-token) for
            [fiat](/glossary#fiat) currencies)
          example: '0x0964A6B8F794A4B8d61b62652dB27ddC9844FB4c'
        memo:
          type: string
          description: >-
            Required if currency is memoable. See
            [memo](/glossary#memodestination-tag) for details.
          example: '48565488244493'
        unique_id:
          type: string
          description: >-
            Unique transaction identifier. ⚠️ Generate a new unique ID for each
            withdrawal request.
          example: '24529041'
        provider:
          type: string
          description: >-
            [Fiat](/glossary#fiat) currency [provider](/glossary#provider).
            Example: VISAMASTER ⚠️ Currency provider should be taken from [Asset
            Status endpoint](/public/http-v4/asset-status-list) response.
            Required if currency is fiat.
          example: VISAMASTER
        network:
          type: string
          description: >-
            Cryptocurrency network. Available for
            [multinetwork](/glossary#multinetwork) currencies. Example: OMNI ⚠️
            Currency network should be taken from [Asset Status
            endpoint](/public/http-v4/asset-status-list) response. Default for
            USDT is ERC20
          example: ERC20
        partialEnable:
          type: boolean
          description: >-
            Optional parameter for [FIAT](/glossary#fiat) withdrawals with
            increased Maximum Limit if set as "true". To use this parameter, the
            application must support "Partially successful" withdrawal status
            and latest updates in deposit/withdrawal history.
          example: false
        beneficiary:
          type: object
          description: >-
            Beneficiary information data. Required if currency
            [ticker](/glossary#ticker) is one of: UAH_IBAN, USD_VISAMASTER,
            EUR_VISAMASTER, USD, EUR
        travelRule:
          type: object
          description: >-
            Travel Rule information data. Required if currency is crypto and the
            account is from [EEA](/glossary#european-economic-area-eea)
        request:
          type: string
          description: Request signature
          example: '{{request}}'
        nonce:
          type: string
          description: Unique request identifier
          example: '{{nonce}}'
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
    ErrorInner:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-TXC-APIKEY
      description: The public WhiteBIT API key.
    PayloadAuth:
      type: apiKey
      in: header
      name: X-TXC-PAYLOAD
      description: Base64-encoded JSON request body.
    SignatureAuth:
      type: apiKey
      in: header
      name: X-TXC-SIGNATURE
      description: >-
        HMAC-SHA512 signature of the payload, hex-encoded. Computed as
        hex(HMAC-SHA512(payload, api_secret)).

````