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

# Send a proposal's row on the consolidated capex plan for approval.

> Send a proposal's row on the consolidated capex plan for approval. Needs finance.capex_consolidation.edit.

A row goes to the first level of its planning workflow by itself when its proposal is approved, and its approvers plan it there; this sends one that no request holds — one no workflow held then, one already on the plan before your organisation published its workflow, or one whose request was withdrawn or could not be carried out. The row must be planned first: refused with PLANNING_INCOMPLETE, naming what is missing in detail.missing, while any of the six mandatory fields is empty, a carry forward lacks its carried cashflow, or the twelve months do not add up to py1_outflow. It is raised in the name of the person who created the proposal. APPROVAL_REQUIRED in error_code means it is waiting on its approvers; when the last level approves, the proposal is PLAN_APPROVED, and a rejection at any level makes it PLAN_REJECTED. Where no workflow applies it is approved at once and proposal_status is PLAN_APPROVED. Refused with PLANNING_DECIDED once the plan is approved or rejected, and ALREADY_SUBMITTED while it is with its approvers.



## OpenAPI

````yaml /api-reference/openapi.json post /rpc/submit_capex_consolidated_line
openapi: 3.0.0
info:
  description: ''
  title: >-
    The only schema PostgREST exposes. Reads are security_invoker views; writes
    are SECURITY DEFINER functions. Rebuilt wholesale on every deploy — it holds
    no data.
  version: 12.2.3
servers:
  - url: https://app.assetinfinity.ai/api
security: []
tags:
  - name: Signing in
  - name: Profile
  - name: My work
  - name: Sites and locations
  - name: Assets
  - name: Asset lifecycle
  - name: Asset components
  - name: Kits
  - name: Work lifecycle
  - name: Work order execution
  - name: Work sequencing
  - name: Maintenance
  - name: Inspections
  - name: Checklists
  - name: Verification
  - name: Self verification
  - name: Inventory
  - name: Inventory detail
  - name: Parts demand
  - name: Procurement
  - name: Catalogue
  - name: Vendors and contracts
  - name: Contracts
  - name: Amendments
  - name: Vendor spend forecast
  - name: Workforce
  - name: Workforce detail
  - name: Capacity
  - name: Dispatch
  - name: Shutdown
  - name: Permits
  - name: Tools
  - name: Tools on jobs
  - name: Bookings
  - name: Booking hand over
  - name: Booking bills
  - name: Calibration history
  - name: Reliability
  - name: Sensors and meters
  - name: Readers
  - name: Trackers
  - name: Real-time location
  - name: Feeds
  - name: Energy
  - name: IT assets
  - name: IT asset software
  - name: IT asset topology
  - name: Warranty lookups
  - name: Map
  - name: Floor plans
  - name: Labels
  - name: Lost and found
  - name: Visitors
  - name: Root cause analysis
  - name: Costing
  - name: Finance
  - name: E-way bills
  - name: E-way bill filing
  - name: Budgets
  - name: Capex plans
  - name: Capex consolidation
  - name: Capex capitalization
  - name: FF&E plans
  - name: Documents
  - name: Document control
  - name: Document folders
  - name: Document tree
  - name: Knowledge
  - name: Reports
  - name: Dashboards
  - name: Extracts
  - name: Data exports
  - name: Audit center
  - name: Audit feed
  - name: Activity
  - name: Conversations
  - name: Notifications
  - name: Date reminders
  - name: Channels
  - name: Search
  - name: Copilot
  - name: Import
  - name: Bulk jobs
  - name: File exchange
  - name: Filing exceptions
  - name: Files
  - name: Sync
  - name: Support
  - name: API keys
  - name: Webhooks
  - name: MCP connections
  - name: MCP sign-in
  - name: SCIM provisioning
  - name: Directory sync
  - name: Security streams
  - name: Clarity
  - name: Single sign-on
  - name: Two-factor sign-in
  - name: Admin
  - name: Access
  - name: Lookups
  - name: Read models
  - name: Reference
  - name: Reference columns
  - name: Reference entry
  - name: List views
  - name: Mapping
  - name: Numbering
  - name: Branding
  - name: Custom fields
  - name: Form studio
  - name: Workflows
  - name: Workflow studio
  - name: Rules
  - name: Statuses and transitions
  - name: Currencies and locales
  - name: Today
  - name: Work configuration
  - name: Asset configuration
  - name: Inventory configuration
  - name: Tool configuration
  - name: Workforce configuration
  - name: Vendor and contract configuration
  - name: Document configuration
  - name: Inspection configuration
  - name: Sites, locations and the organisation
  - name: Setup
  - name: Features
  - name: Billing
  - name: Licence
  - name: Welcome
  - name: Tray
  - name: Tenant switch
  - name: Release
  - name: Upgrade
  - name: Telegram
  - name: Whatsapp
  - name: Inbound mail
  - name: Platform
externalDocs:
  description: PostgREST Documentation
  url: https://postgrest.org/en/v12/references/api.html
paths:
  /rpc/submit_capex_consolidated_line:
    post:
      tags:
        - Capex consolidation
      summary: Send a proposal's row on the consolidated capex plan for approval.
      description: >-
        Send a proposal's row on the consolidated capex plan for approval. Needs
        finance.capex_consolidation.edit.


        A row goes to the first level of its planning workflow by itself when
        its proposal is approved, and its approvers plan it there; this sends
        one that no request holds — one no workflow held then, one already on
        the plan before your organisation published its workflow, or one whose
        request was withdrawn or could not be carried out. The row must be
        planned first: refused with PLANNING_INCOMPLETE, naming what is missing
        in detail.missing, while any of the six mandatory fields is empty, a
        carry forward lacks its carried cashflow, or the twelve months do not
        add up to py1_outflow. It is raised in the name of the person who
        created the proposal. APPROVAL_REQUIRED in error_code means it is
        waiting on its approvers; when the last level approves, the proposal is
        PLAN_APPROVED, and a rejection at any level makes it PLAN_REJECTED.
        Where no workflow applies it is approved at once and proposal_status is
        PLAN_APPROVED. Refused with PLANNING_DECIDED once the plan is approved
        or rejected, and ALREADY_SUBMITTED while it is with its approvers.
      parameters:
        - $ref: '#/components/parameters/preferParams'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Send a proposal's row on the consolidated capex plan for
                approval. Needs finance.capex_consolidation.edit.


                A row goes to the first level of its planning workflow by itself
                when its proposal is approved, and its approvers plan it there;
                this sends one that no request holds — one no workflow held
                then, one already on the plan before your organisation published
                its workflow, or one whose request was withdrawn or could not be
                carried out. The row must be planned first: refused with
                PLANNING_INCOMPLETE, naming what is missing in detail.missing,
                while any of the six mandatory fields is empty, a carry forward
                lacks its carried cashflow, or the twelve months do not add up
                to py1_outflow. It is raised in the name of the person who
                created the proposal. APPROVAL_REQUIRED in error_code means it
                is waiting on its approvers; when the last level approves, the
                proposal is PLAN_APPROVED, and a rejection at any level makes it
                PLAN_REJECTED. Where no workflow applies it is approved at once
                and proposal_status is PLAN_APPROVED. Refused with
                PLANNING_DECIDED once the plan is approved or rejected, and
                ALREADY_SUBMITTED while it is with its approvers.
              properties:
                p_id:
                  format: uuid
                  type: string
              required:
                - p_id
              type: object
          application/vnd.pgrst.object+json:
            schema:
              description: >-
                Send a proposal's row on the consolidated capex plan for
                approval. Needs finance.capex_consolidation.edit.


                A row goes to the first level of its planning workflow by itself
                when its proposal is approved, and its approvers plan it there;
                this sends one that no request holds — one no workflow held
                then, one already on the plan before your organisation published
                its workflow, or one whose request was withdrawn or could not be
                carried out. The row must be planned first: refused with
                PLANNING_INCOMPLETE, naming what is missing in detail.missing,
                while any of the six mandatory fields is empty, a carry forward
                lacks its carried cashflow, or the twelve months do not add up
                to py1_outflow. It is raised in the name of the person who
                created the proposal. APPROVAL_REQUIRED in error_code means it
                is waiting on its approvers; when the last level approves, the
                proposal is PLAN_APPROVED, and a rejection at any level makes it
                PLAN_REJECTED. Where no workflow applies it is approved at once
                and proposal_status is PLAN_APPROVED. Refused with
                PLANNING_DECIDED once the plan is approved or rejected, and
                ALREADY_SUBMITTED while it is with its approvers.
              properties:
                p_id:
                  format: uuid
                  type: string
              required:
                - p_id
              type: object
          application/vnd.pgrst.object+json;nulls=stripped:
            schema:
              description: >-
                Send a proposal's row on the consolidated capex plan for
                approval. Needs finance.capex_consolidation.edit.


                A row goes to the first level of its planning workflow by itself
                when its proposal is approved, and its approvers plan it there;
                this sends one that no request holds — one no workflow held
                then, one already on the plan before your organisation published
                its workflow, or one whose request was withdrawn or could not be
                carried out. The row must be planned first: refused with
                PLANNING_INCOMPLETE, naming what is missing in detail.missing,
                while any of the six mandatory fields is empty, a carry forward
                lacks its carried cashflow, or the twelve months do not add up
                to py1_outflow. It is raised in the name of the person who
                created the proposal. APPROVAL_REQUIRED in error_code means it
                is waiting on its approvers; when the last level approves, the
                proposal is PLAN_APPROVED, and a rejection at any level makes it
                PLAN_REJECTED. Where no workflow applies it is approved at once
                and proposal_status is PLAN_APPROVED. Refused with
                PLANNING_DECIDED once the plan is approved or rejected, and
                ALREADY_SUBMITTED while it is with its approvers.
              properties:
                p_id:
                  format: uuid
                  type: string
              required:
                - p_id
              type: object
          text/csv:
            schema:
              description: >-
                Send a proposal's row on the consolidated capex plan for
                approval. Needs finance.capex_consolidation.edit.


                A row goes to the first level of its planning workflow by itself
                when its proposal is approved, and its approvers plan it there;
                this sends one that no request holds — one no workflow held
                then, one already on the plan before your organisation published
                its workflow, or one whose request was withdrawn or could not be
                carried out. The row must be planned first: refused with
                PLANNING_INCOMPLETE, naming what is missing in detail.missing,
                while any of the six mandatory fields is empty, a carry forward
                lacks its carried cashflow, or the twelve months do not add up
                to py1_outflow. It is raised in the name of the person who
                created the proposal. APPROVAL_REQUIRED in error_code means it
                is waiting on its approvers; when the last level approves, the
                proposal is PLAN_APPROVED, and a rejection at any level makes it
                PLAN_REJECTED. Where no workflow applies it is approved at once
                and proposal_status is PLAN_APPROVED. Refused with
                PLANNING_DECIDED once the plan is approved or rejected, and
                ALREADY_SUBMITTED while it is with its approvers.
              properties:
                p_id:
                  format: uuid
                  type: string
              required:
                - p_id
              type: object
        required: true
      responses:
        '200':
          description: OK
components:
  parameters:
    preferParams:
      description: Preference
      in: header
      name: Prefer
      required: false
      schema:
        enum:
          - params=single-object
        type: string

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.