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

# Place a bracket order

> Place a bracket order



## OpenAPI

````yaml openapi.docs.en.json POST /api/v1/orders/bracket-order
openapi: 3.0.3
info:
  title: Vero OMS REST API
  version: 1.0.24
  description: >-
    REST API documentation for Vero OMS. Paths are aligned with the active
    KrakenD gateway config under k8s-dev-gitops/vero-algo/tools/krakend and
    response schemas are expanded from backend/frontend source models.
servers:
  - url: https://api-gw.verolabs.co
    description: API gateway
security: []
tags:
  - name: Auth
    description: Authentication flows and app logout
  - name: Signup
    description: APIs used during account signup
  - name: Accounts
    description: User accounts, balances, positions, deposits and withdrawals
  - name: Bank Accounts
    description: Saved bank account management
  - name: Orders
    description: Order placement, cancellation, modification and order history
  - name: History
    description: Account orders, trades and cash transactions.
  - name: Market Data
    description: Watchlists, symbol search, product master and OHLCV history
  - name: Notifications
    description: In-app notifications
  - name: Referral
    description: Referral code, rebate and commission summary APIs
  - name: Diagnostics
    description: Health and diagnostic endpoints
paths:
  /api/v1/orders/bracket-order:
    post:
      tags:
        - Orders
      summary: Place a bracket order
      description: Create a bracket order with optional take-profit and stop-loss legs.
      operationId: placeBracketOrder
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewBracketOrderRequest'
        description: >-
          Bracket-order creation payload. takeProfitPrice and stopLossPrice are
          optional but at least one should be supplied for a useful bracket
          order.
      responses:
        '200':
          description: Bracket-order creation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BracketOrderCreateResponse'
              examples:
                success:
                  summary: Success response
                  value:
                    isSuccess: true
                    detail: Bracket order placed successfully
                    data: BRACKET-V1StGXR8_Z5jdHi6B-myT
        '400':
          $ref: '#/components/responses/ErrorResponse'
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnyErrorBody'
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ValidationProblemDetails'
                  - $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: string
                description: Plain-text backend or gateway error message.
        '401':
          $ref: '#/components/responses/ErrorResponse'
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnyErrorBody'
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ValidationProblemDetails'
                  - $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: string
                description: Plain-text backend or gateway error message.
        '404':
          $ref: '#/components/responses/ErrorResponse'
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnyErrorBody'
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ValidationProblemDetails'
                  - $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: string
                description: Plain-text backend or gateway error message.
        '500':
          $ref: '#/components/responses/ErrorResponse'
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnyErrorBody'
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ValidationProblemDetails'
                  - $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: string
                description: Plain-text backend or gateway error message.
      security:
        - bearerAuth: []
components:
  schemas:
    NewBracketOrderRequest:
      type: object
      additionalProperties: true
      description: >-
        Payload for creating a bracket order with optional take-profit and
        stop-loss legs.
      required:
        - symbol
        - side
        - conditionPrice
        - conditionType
        - orderType
        - quantity
        - account
      properties:
        symbol:
          type: string
          example: FPT
          description: Symbol to trade.
        side:
          type: string
          enum:
            - B
            - S
          description: B for buy, S for sell.
        conditionPrice:
          type: number
          description: Entry trigger price.
        conditionType:
          type: string
          enum:
            - '>='
            - <=
          description: Entry trigger condition comparing market price to conditionPrice.
        orderType:
          type: string
          enum:
            - LO
            - MTL
          description: Entry order type sent after the trigger.
        quantity:
          type: integer
          description: Entry order quantity.
        account:
          type: string
          description: Trading account used for the bracket order.
        takeProfitPrice:
          type: number
          description: Optional take-profit target price.
        stopLossPrice:
          type: number
          description: Optional stop-loss price.
    BracketOrderCreateResponse:
      type: object
      additionalProperties: true
      description: Bracket-order creation response.
      required:
        - isSuccess
        - detail
        - data
      properties:
        isSuccess:
          type: boolean
          description: >-
            Whether the bracket order was validated, persisted, created with its
            entry stop order, and published as a NEW event.
        detail:
          type: string
          description: >-
            Result message. On success this is usually "Bracket order placed
            successfully".
        data:
          type: string
          pattern: ^BRACKET-
          example: BRACKET-V1StGXR8_Z5jdHi6B-myT
          description: >-
            System bracket order id generated by service.orderapi. Use this id
            to get or cancel the bracket order. Child ids such as
            entryStopOrderId, takeProfitOrderId, and stopLossOrderId are
            available on the BracketOrder object returned by the get bracket
            order API.
    AnyErrorBody:
      oneOf:
        - $ref: '#/components/schemas/ErrorResponse'
        - $ref: '#/components/schemas/ValidationProblemDetails'
        - $ref: '#/components/schemas/ProblemDetails'
        - $ref: '#/components/schemas/AuthFlow'
      description: >-
        Structured error body returned by gateway, ASP.NET services, or backend
        validation handlers.
    ValidationProblemDetails:
      allOf:
        - $ref: '#/components/schemas/ProblemDetails'
        - type: object
          additionalProperties: true
          properties:
            errors:
              type: object
              additionalProperties:
                oneOf:
                  - type: array
                    items:
                      type: string
                  - type: string
              description: Validation errors keyed by request field name.
      description: >-
        Validation problem response returned when request parameters or body
        fields are invalid.
    ProblemDetails:
      type: object
      additionalProperties: true
      description: RFC 7807-style problem response returned by ASP.NET/gateway services.
      properties:
        type:
          type: string
          description: Problem type URI.
        title:
          type: string
          description: Short problem title.
        status:
          type: integer
          description: HTTP status code.
        detail:
          type: string
          description: Detailed error message.
        traceId:
          type: string
          description: Trace id for backend diagnostics.
    ErrorResponse:
      type: object
      additionalProperties: true
      description: >-
        Error body returned by gateway or backend services. Backends can return
        either JSON objects or plain text errors.
      properties:
        error:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
              properties:
                id:
                  type: string
                  description: gateway error id when supplied.
                code:
                  type: integer
                  description: HTTP-like error code.
                status:
                  type: string
                  description: HTTP status text, for example Unauthorized.
                reason:
                  type: string
                  description: >-
                    Detailed reason returned by the authentication service or
                    gateway.
                message:
                  type: string
                  description: Human-readable error message.
          description: Error code/message string or nested gateway error object.
        message:
          type: string
          description: Human-readable error message.
        detail:
          type: string
          description: Detailed backend error message when available.
        details:
          oneOf:
            - type: string
            - type: object
              additionalProperties: true
            - type: array
              items:
                type: object
                additionalProperties: true
          description: Additional validation or backend details.
          nullable: true
        status:
          type: integer
          description: HTTP status code when included by the backend.
    AuthFlow:
      type: object
      additionalProperties: true
      properties:
        id:
          type: string
          description: >-
            Flow id. Use this value as the flow query parameter when submitting
            or updating the flow.
        type:
          type: string
          description: Flow type returned by the system, for example browser or api.
        expires_at:
          type: string
          format: date-time
          description: Timestamp when the flow expires. Submit the flow before this time.
        issued_at:
          type: string
          format: date-time
          description: Timestamp when created the flow.
        ui:
          type: object
          additionalProperties: true
          description: >-
            UI payload containing action URL, method, nodes, messages, and CSRF
            node when required.
        state:
          type: string
          description: >-
            Current flow state, such as choose_method, sent_email,
            passed_challenge, or success.
        request_url:
          type: string
          description: Original request URL used to create the flow.
        organization_id:
          type: string
          nullable: true
          description: organization id for organization-scoped flows, when supplied.
        created_at:
          type: string
          description: Flow creation timestamp.
          format: date-time
        updated_at:
          type: string
          description: Flow update timestamp.
          format: date-time
        refresh:
          type: boolean
          description: Whether the flow is a refresh flow.
        requested_aal:
          type: string
          description: Requested authenticator assurance level for the flow.
        identity:
          allOf:
            - 9cb587e8-c15a-435c-916a-4854d0ffa2c6
          description: Identity attached to settings flows when the system includes it.
      description: >-
        self-service flow object returned by login, registration, recovery, and
        settings create/update endpoints.
  responses:
    ErrorResponse:
      description: Error response containing an error code, message, detail, or plain text.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
        text/plain:
          schema:
            type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token used for protected REST API requests.

````