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

# Create a maker-checker workflow request

> Create a maker-checker workflow request



## OpenAPI

````yaml openapi.oms.en.json POST /api/v1/util/requests
openapi: 3.0.3
info:
  title: VOS OMS Public API
  version: 1.0.0
  description: >-
    Public REST API surface for Vero OMS. Authentication requests use
    platform.verolabs.co. REST API requests use api-oms.verolabs.co.
servers:
  - url: https://platform.verolabs.co
    description: Authentication host
  - url: https://api-oms.verolabs.co
    description: REST API host
security: []
tags:
  - name: Authentication
    description: Account authentication and password recovery.
  - name: Trading
    description: Order entry, quote, IOI, and trading activity APIs.
  - name: Portfolio & Risk
    description: Accounts, holdings, mappings, and risk-rule read APIs.
  - name: Administration
    description: Permissions, groups, workflow, reference data, and audit APIs.
  - name: System & Diagnostics
    description: Health and latency endpoints.
paths:
  /api/v1/util/requests:
    post:
      tags:
        - Administration
      summary: Create a maker-checker workflow request
      description: >-
        Creates a `PENDING` request. The body's `type` selects the request kind,
        one of:

        `CREATE_RISK_RULE`, `DELETE_RISK_RULE`, `GRANT_PERMISSION`,
        `REVOKE_PERMISSION`,

        `CREATE_GROUP`, `MOVE_ACCOUNT`, `CREATE_ACCOUNT`, `UPDATE_ACCOUNT`,
        `DEPOSIT`, `WITHDRAW`,

        `ADD_STOCK`, `REMOVE_STOCK`. The remaining fields are the type-specific
        payload.


        Requires `Authorization: Bearer <jwt>` from `POST /api/auth/login`.


        Required JWT role: `maker` or `admin`.
      operationId: post_api_v1_util_requests
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowRequestPayload'
        description: Maker-checker workflow request payload.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowRequest'
      security:
        - bearerAuth: []
      servers:
        - url: https://api-oms.verolabs.co
components:
  schemas:
    WorkflowRequestPayload:
      type: object
      properties:
        request_type:
          type: string
          enum:
            - CREATE_RISK_RULE
            - DELETE_RISK_RULE
            - GRANT_PERMISSION
            - REVOKE_PERMISSION
            - CREATE_GROUP
            - MOVE_ACCOUNT
            - CREATE_ACCOUNT
            - UPDATE_ACCOUNT
            - DEPOSIT
            - WITHDRAW
            - ADD_STOCK
            - REMOVE_STOCK
            - CREATE_ORDER_RISK_RULE
            - DELETE_ORDER_RISK_RULE
          description: Workflow request type.
        payload:
          oneOf:
            - $ref: '#/components/schemas/RiskRulePayload'
            - $ref: '#/components/schemas/DeleteRiskRulePayload'
            - $ref: '#/components/schemas/GrantPermissionPayload'
            - $ref: '#/components/schemas/RevokePermissionPayload'
            - $ref: '#/components/schemas/CreateGroupPayload'
            - $ref: '#/components/schemas/MoveAccountPayload'
            - $ref: '#/components/schemas/CreateAccountPayload'
            - $ref: '#/components/schemas/DepositPayload'
            - $ref: '#/components/schemas/WithdrawPayload'
            - $ref: '#/components/schemas/AddStockPayload'
            - $ref: '#/components/schemas/RemoveStockPayload'
            - $ref: '#/components/schemas/OrderRiskRulePayload'
            - $ref: '#/components/schemas/DeleteOrderRiskRulePayload'
          description: Type-specific request payload.
      required:
        - request_type
        - payload
      description: WorkflowRequestPayload schema.
    WorkflowRequest:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: Unique identifier for the record.
        request_type:
          type: string
          description: Workflow request type.
        payload:
          type: object
          additionalProperties: true
          description: Type-specific request payload.
        status:
          type: string
          enum:
            - PENDING
            - APPROVED
            - REJECTED
            - CANCELLED
            - APPLIED
            - FAILED
          description: Status value returned by the API.
        requested_by:
          type: string
          description: User that submitted the request.
        reviewed_by:
          type: string
          description: User that reviewed the request.
        review_note:
          type: string
          description: Reviewer note.
        apply_error:
          type: string
          description: Error captured while applying the approved request.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the record was created.
        reviewed_at:
          type: string
          format: date-time
          description: Timestamp when the request was reviewed.
        applied_at:
          type: string
          format: date-time
          description: Timestamp when the approved request was applied.
      description: WorkflowRequest schema.
    RiskRulePayload:
      type: object
      properties:
        kind:
          type: string
          enum:
            - OMS_MARGIN_ALLOWED
            - OMS_MARGIN_RATE_SYMBOL_ISIN
            - OMS_SHORT_ALLOWED
            - OMS_SHORT_ALLOWED_SYMBOL_ISIN
          description: Reference, rule, or request kind.
        scope:
          type: string
          enum:
            - SYSTEM
            - CHANNEL
            - ACCOUNT
            - SYMBOL
          description: Rule scope.
        target:
          type: string
          description: Rule target.
        value:
          oneOf:
            - type: number
            - type: string
          description: Value associated with the record.
      required:
        - kind
        - scope
        - target
        - value
      description: RiskRulePayload schema.
    DeleteRiskRulePayload:
      type: object
      properties:
        kind:
          type: string
          enum:
            - OMS_MARGIN_ALLOWED
            - OMS_MARGIN_RATE_SYMBOL_ISIN
            - OMS_SHORT_ALLOWED
            - OMS_SHORT_ALLOWED_SYMBOL_ISIN
          description: Reference, rule, or request kind.
        scope:
          type: string
          enum:
            - SYSTEM
            - CHANNEL
            - ACCOUNT
            - SYMBOL
          description: Rule scope.
        target:
          type: string
          description: Rule target.
      required:
        - kind
        - scope
        - target
      description: DeleteRiskRulePayload schema.
    GrantPermissionPayload:
      type: object
      properties:
        user_id:
          type: string
          description: User identifier.
        account_code:
          type: string
          description: Account code used by administration and mapping records.
        level:
          type: string
          enum:
            - VIEW
            - TRADE
            - ADMIN
          description: Permission level.
      required:
        - user_id
        - account_code
        - level
      description: GrantPermissionPayload schema.
    RevokePermissionPayload:
      type: object
      properties:
        user_id:
          type: string
          description: User identifier.
        account_code:
          type: string
          description: Account code used by administration and mapping records.
      required:
        - user_id
        - account_code
      description: RevokePermissionPayload schema.
    CreateGroupPayload:
      type: object
      properties:
        name:
          type: string
          description: Display name.
        description:
          type: string
          description: Description text.
      required:
        - name
      description: CreateGroupPayload schema.
    MoveAccountPayload:
      type: object
      properties:
        account_code:
          type: string
          description: Account code used by administration and mapping records.
        group_id:
          type: integer
          format: int64
          description: Group identifier.
      required:
        - account_code
        - group_id
      description: MoveAccountPayload schema.
    CreateAccountPayload:
      type: object
      properties:
        account_code:
          type: string
          description: Account code used by administration and mapping records.
        name:
          type: string
          description: Display name.
        internal_client_code:
          type: string
          description: Account mapping code.
        client_code:
          type: string
          description: Client code for the account mapping.
        comp_id:
          type: string
          description: CompID used for routing or reference data.
        account_type:
          type: integer
          format: int32
          description: Account type code.
        invest_code:
          type: string
          description: Investor code.
        forn_invest_type_code:
          type: string
          description: Foreign investor type code.
        is_mm_account:
          type: boolean
          description: Indicates whether the account is a market-making account.
        sender_sub_id:
          type: string
          description: SenderSubID used for routing or reference data.
        email:
          type: string
          description: Email address associated with the user or account.
        phone:
          type: string
          description: Phone number associated with the account.
      required:
        - account_code
        - name
        - internal_client_code
        - client_code
        - comp_id
        - account_type
        - invest_code
        - forn_invest_type_code
        - is_mm_account
        - sender_sub_id
        - email
        - phone
      description: CreateAccountPayload schema.
    DepositPayload:
      type: object
      properties:
        account_id:
          type: string
          description: Trading account identifier.
        amount:
          type: number
          format: double
          description: Amount value for DepositPayload.
      required:
        - account_id
        - amount
      description: DepositPayload schema.
    WithdrawPayload:
      type: object
      properties:
        account_id:
          type: string
          description: Trading account identifier.
        amount:
          type: number
          format: double
          description: Amount value for WithdrawPayload.
      required:
        - account_id
        - amount
      description: WithdrawPayload schema.
    AddStockPayload:
      type: object
      properties:
        account_id:
          type: string
          description: Trading account identifier.
        symbol:
          type: string
          description: 12-character ISIN.
        quantity:
          type: integer
          format: int64
          description: Quantity value.
        avg_price:
          type: number
          format: double
          description: Optional; 0 leaves average price unchanged.
      required:
        - account_id
        - symbol
        - quantity
      description: AddStockPayload schema.
    RemoveStockPayload:
      type: object
      properties:
        account_id:
          type: string
          description: Trading account identifier.
        symbol:
          type: string
          description: 12-character ISIN.
        quantity:
          type: integer
          format: int64
          description: Quantity value.
      required:
        - account_id
        - symbol
        - quantity
      description: RemoveStockPayload schema.
    OrderRiskRulePayload:
      type: object
      properties:
        kind:
          type: string
          description: ORDER_BLOCK_TRADE_{MARKET,PRODUCT_GROUP,SYMBOL}_{ALL,BUY,SELL}.
        scope:
          type: string
          enum:
            - SYSTEM
            - CHANNEL
            - ACCOUNT
            - SYMBOL
          description: Rule scope.
        target:
          type: string
          description: Rule target.
        match:
          type: string
          description: Rule match operator or match value.
        value:
          oneOf:
            - type: number
            - type: string
          description: Value associated with the record.
      required:
        - kind
        - scope
        - target
        - match
        - value
      description: OrderRiskRulePayload schema.
    DeleteOrderRiskRulePayload:
      type: object
      properties:
        kind:
          type: string
          description: Reference, rule, or request kind.
        scope:
          type: string
          enum:
            - SYSTEM
            - CHANNEL
            - ACCOUNT
            - SYMBOL
          description: Rule scope.
        target:
          type: string
          description: Rule target.
        match:
          type: string
          description: Rule match operator or match value.
      required:
        - kind
        - scope
        - target
        - match
      description: DeleteOrderRiskRulePayload schema.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````