> ## 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.

# Create Flex Investment

> Create a new Flex investment with flexible withdrawal terms via the WhiteBIT V4 API.



## OpenAPI

````yaml /openapi/private/main_api_v4.yaml POST /api/v4/main-account/smart-flex/investments/invest
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/smart-flex/investments/invest:
    post:
      tags:
        - Crypto Lending - Flex
      summary: Create Flex Investment
      description: |
        Create new investment in a Flex plan.

        <Warning>
        Rate limit: 1000 requests/10 sec.
        </Warning>

        <Note>
        The API does not cache the response.
        </Note>
      operationId: createFlexInvestment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - plan
                - amount
                - request
                - nonce
              properties:
                plan:
                  type: string
                  description: Plan external ID (UUID).
                  example: 8f2e9d3c-1a4b-4c2d-9e5f-6a7b8c9d0e1f
                amount:
                  type: string
                  description: Investment amount.
                  example: '1000.500000'
                withReinvest:
                  type: boolean
                  default: false
                  description: Enable auto-reinvestment.
                  example: true
                request:
                  type: string
                  description: Request signature
                  example: '{{request}}'
                nonce:
                  type: integer
                  description: Unique request identifier
                  example: 1594297865000
            example:
              plan: 8f2e9d3c-1a4b-4c2d-9e5f-6a7b8c9d0e1f
              amount: '1000.500000'
              withReinvest: true
              request: '{{request}}'
              nonce: 1594297865000
      responses:
        '201':
          description: Investment created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      transaction_id:
                        type: string
                        description: Transaction ID for the investment
              example:
                data:
                  transaction_id: tx_9f3e0d4c-2b5c-4d3e-8f6g-7a8b9c0d1e2f
        '400':
          description: Request validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalidPlan:
                  summary: Plan not found or inactive
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      plan:
                        - The selected plan is invalid.
                invalidAmount:
                  summary: Invalid amount format
                  value:
                    code: 0
                    message: Validation failed
                    errors:
                      amount:
                        - The amount field must be a valid number
        '422':
          description: >
            Inner validation failed


            Response error codes:

            - 0 - Validation failed (plan unavailable/paused, amount too small,
            private plan, investment cap exceeded)

            - 2 - Amount is less than min investment amount

            - 3 - Amount is greater than max investment amount

            - 4 - Not enough balance to create investment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorInner'
              examples:
                planUnavailable:
                  summary: Plan unavailable
                  value:
                    code: 0
                    message: Inner validation failed
                    errors:
                      plan:
                        - Plan is unavailable
                planPaused:
                  summary: Plan is paused
                  value:
                    code: 0
                    message: Inner validation failed
                    errors:
                      plan:
                        - Plan is paused
                amountTooLow:
                  summary: Amount below plan minimum
                  value:
                    code: 2
                    message: Inner validation failed
                    errors:
                      amount:
                        - Amount is less than min investment
                amountTooHigh:
                  summary: Amount exceeds plan maximum
                  value:
                    code: 3
                    message: Inner validation failed
                    errors:
                      amount:
                        - Amount is more than max investment
                insufficientBalance:
                  summary: Insufficient balance
                  value:
                    code: 4
                    message: Inner validation failed
                    errors:
                      amount:
                        - Available 9 < 10
                amountTooSmall:
                  summary: Amount zero or negative
                  value:
                    code: 0
                    message: Inner validation failed
                    errors:
                      amount:
                        - Amount is too small
                privatePlan:
                  summary: Private plan not available for user
                  value:
                    code: 0
                    message: Inner validation failed
                    errors:
                      plan:
                        - Private plan not available for this user
                investmentLimit:
                  summary: Cumulative investment cap exceeded
                  value:
                    code: 0
                    message: Inner validation failed
                    errors:
                      amount:
                        - Investment limit is exceeded
components:
  schemas:
    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)).

````