> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whitebit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Convert Confirm

> Confirm a previously estimated currency conversion and execute the trade via the WhiteBIT V4 API.



## OpenAPI

````yaml /openapi/private/http-trade-v4.yaml POST /api/v4/convert/confirm
openapi: 3.0.3
info:
  title: Private HTTP API V4 - Collateral Trading
  description: |
    WhiteBIT Private HTTP API V4 for collateral/margin trading operations.

    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.

    Authentication required for all endpoints.
  version: 4.0.0
  license:
    name: WhiteBIT Terms of Service
    url: https://whitebit.com/terms
servers:
  - url: https://whitebit.com
    description: WhiteBIT Global Server
  - url: https://whitebit.eu
    description: WhiteBIT EU Server
security:
  - ApiKeyAuth: []
    PayloadAuth: []
    SignatureAuth: []
tags:
  - name: Collateral Trading
    description: Endpoints for collateral/margin trading operations
  - name: Spot Trading
    description: Endpoints for spot trading operations
  - name: Market Fee
    description: Endpoints for querying trading fees
paths:
  /api/v4/convert/confirm:
    post:
      summary: Convert Confirm
      description: >
        The endpoint confirms an estimated quote.


        An expired quote returns code `20` (`api.converter.quoteExpired`), which
        is distinct from a quote that could not be found (code `0`). Balance is
        re-checked at confirm time and can fail with code `37` even when the
        estimate succeeded, because balance may change within the 10-second
        quote window.


        <Note>

        A re-confirmed (already used) quote and a quote that never existed both
        return code `0` with the `quoteId` field key
        `frontendServerSide.converter.quoteInvalid`. The response alone does not
        distinguish "already used" from "never existed".

        </Note>


        <Note>

        Error `message` values may be returned as translation keys (for example
        `api.converter.quoteExpired`) rather than finalized English strings.
        Treat the `code` and the field name under `errors` as the stable
        contract.

        </Note>


        <Warning>

        Rate limit: 10000 requests/10 sec.

        </Warning>
      operationId: convertConfirm
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - quoteId
              properties:
                quoteId:
                  type: string
                  description: Quote ID
                  example: '4050'
                nonce:
                  type: integer
                  description: Nonce for request
                  example: 1699260637
                request:
                  type: string
                  description: Request path
                  example: '{{request}}'
            example:
              quoteId: '4050'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  finalGive:
                    type: string
                    description: Final amount given
                    example: '0.00002901'
                  finalReceive:
                    type: string
                    description: Final amount received
                    example: '1'
        '400':
          description: Inner validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                quoteExpired:
                  summary: Quote Expired
                  value:
                    code: 20
                    message: Validation failed
                    errors:
                      quoteId:
                        - api.converter.quoteExpired
                insufficientBalance:
                  summary: Insufficient Balance At Confirm
                  value:
                    code: 37
                    message: Validation failed
                    errors:
                      amount:
                        - validation.balance
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                quoteNotFound:
                  summary: Quote Not Found
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      quoteId:
                        - Quote could not be found
                quoteAlreadyUsed:
                  summary: Quote Already Confirmed
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      quoteId:
                        - frontendServerSide.converter.quoteInvalid
                quoteIdNonNumeric:
                  summary: Quote ID Not Numeric
                  value:
                    code: 30
                    message: Validation failed
                    errors:
                      quoteId:
                        - validation.numeric_integer
                quoteIdTooLong:
                  summary: Quote ID Exceeds Max Length
                  value:
                    code: 30
                    message: Validation failed
                    errors:
                      quoteId:
                        - validation.numeric_field_length
      security:
        - ApiKeyAuth: []
          PayloadAuth: []
          SignatureAuth: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: Error code
          example: 30
        message:
          type: string
          description: Error message
          example: Validation failed
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Detailed error information
  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)).

````