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

# Change a capex approval note.

> Change a capex approval note. Every heading is sent, as the note stands; see capex_approval_notes for what each one is. Needs finance.capex_approval_note.edit.

Nothing a note must hold before it is sent is asked here: a note is written over days, and submit_capex_approval_note and every level's approval refuse it while something is missing (needs in the answer lists the columns, as note_needs does). Refused with INVALID_NOTE for p_tender_committee_applicable changed where it is settled (tender_committee_settled), p_consultant_appointment true without a tender committee, p_project_name over 2,000 characters, bulleted text over 20,000, a document over a megabyte as sent, an amount outside zero to 99,999,999.99, and p_vendor_selection other than SINGLE_PARTY or MULTI_PARTY; with NOT_FOUND for a policy that is not on your Fixed Policy list (see capex_fixed_policies). A document's pictures and PDFs must be uploaded with request_capex_approval_note_upload; any other file, or one you cannot read, is taken out of the text. An empty value is stored as nothing, and p_contingency_amount as zero. p_project_cost_amount and p_vendor_selection may be left out until they are known.

What your organisation sets on this form in the Form Studio applies too: a heading whose writing it keeps to some roles is refused with FIELD_NOT_PERMITTED to anybody without one of them who changes it.

While the note is with its approvers, only the approver it is waiting on may change it, and they need not hold finance.capex_approval_note.edit; what they change is recorded against their step. Refused with NOTE_DECIDED once the note is approved or rejected, and NOTE_WITH_APPROVERS while it is with approvers to anybody it is not waiting on. Returns the note's id.



## OpenAPI

````yaml /api-reference/openapi.json post /rpc/save_capex_approval_note
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: Capex approval notes
  - name: Capex change logs
  - 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: User activity
  - 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/save_capex_approval_note:
    post:
      tags:
        - Capex approval notes
      summary: Change a capex approval note.
      description: >-
        Change a capex approval note. Every heading is sent, as the note stands;
        see capex_approval_notes for what each one is. Needs
        finance.capex_approval_note.edit.


        Nothing a note must hold before it is sent is asked here: a note is
        written over days, and submit_capex_approval_note and every level's
        approval refuse it while something is missing (needs in the answer lists
        the columns, as note_needs does). Refused with INVALID_NOTE for
        p_tender_committee_applicable changed where it is settled
        (tender_committee_settled), p_consultant_appointment true without a
        tender committee, p_project_name over 2,000 characters, bulleted text
        over 20,000, a document over a megabyte as sent, an amount outside zero
        to 99,999,999.99, and p_vendor_selection other than SINGLE_PARTY or
        MULTI_PARTY; with NOT_FOUND for a policy that is not on your Fixed
        Policy list (see capex_fixed_policies). A document's pictures and PDFs
        must be uploaded with request_capex_approval_note_upload; any other
        file, or one you cannot read, is taken out of the text. An empty value
        is stored as nothing, and p_contingency_amount as zero.
        p_project_cost_amount and p_vendor_selection may be left out until they
        are known.


        What your organisation sets on this form in the Form Studio applies too:
        a heading whose writing it keeps to some roles is refused with
        FIELD_NOT_PERMITTED to anybody without one of them who changes it.


        While the note is with its approvers, only the approver it is waiting on
        may change it, and they need not hold finance.capex_approval_note.edit;
        what they change is recorded against their step. Refused with
        NOTE_DECIDED once the note is approved or rejected, and
        NOTE_WITH_APPROVERS while it is with approvers to anybody it is not
        waiting on. Returns the note's id.
      parameters:
        - $ref: '#/components/parameters/preferParams'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Change a capex approval note. Every heading is sent, as the note
                stands; see capex_approval_notes for what each one is. Needs
                finance.capex_approval_note.edit.


                Nothing a note must hold before it is sent is asked here: a note
                is written over days, and submit_capex_approval_note and every
                level's approval refuse it while something is missing (needs in
                the answer lists the columns, as note_needs does). Refused with
                INVALID_NOTE for p_tender_committee_applicable changed where it
                is settled (tender_committee_settled), p_consultant_appointment
                true without a tender committee, p_project_name over 2,000
                characters, bulleted text over 20,000, a document over a
                megabyte as sent, an amount outside zero to 99,999,999.99, and
                p_vendor_selection other than SINGLE_PARTY or MULTI_PARTY; with
                NOT_FOUND for a policy that is not on your Fixed Policy list
                (see capex_fixed_policies). A document's pictures and PDFs must
                be uploaded with request_capex_approval_note_upload; any other
                file, or one you cannot read, is taken out of the text. An empty
                value is stored as nothing, and p_contingency_amount as zero.
                p_project_cost_amount and p_vendor_selection may be left out
                until they are known.


                What your organisation sets on this form in the Form Studio
                applies too: a heading whose writing it keeps to some roles is
                refused with FIELD_NOT_PERMITTED to anybody without one of them
                who changes it.


                While the note is with its approvers, only the approver it is
                waiting on may change it, and they need not hold
                finance.capex_approval_note.edit; what they change is recorded
                against their step. Refused with NOTE_DECIDED once the note is
                approved or rejected, and NOTE_WITH_APPROVERS while it is with
                approvers to anybody it is not waiting on. Returns the note's
                id.
              properties:
                p_annexures:
                  format: text
                  type: string
                p_approved_project_changes:
                  format: text
                  type: string
                p_background:
                  format: text
                  type: string
                p_budget_reference:
                  format: text
                  type: string
                p_cash_flows:
                  format: text
                  type: string
                p_consultant_appointment:
                  format: boolean
                  type: boolean
                p_contingency_amount:
                  format: numeric
                  type: number
                p_costs_and_benefits:
                  format: text
                  type: string
                p_ehs_compliance:
                  format: text
                  type: string
                p_financial_sensitivities:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_implementation_schedule:
                  format: text
                  type: string
                p_key_assumptions:
                  format: text
                  type: string
                p_key_risks:
                  format: text
                  type: string
                p_negotiation_process:
                  format: text
                  type: string
                p_npv:
                  format: text
                  type: string
                p_policy_ids:
                  format: uuid[]
                  items:
                    type: string
                  type: array
                p_policy_modification:
                  format: text
                  type: string
                p_project_cost_amount:
                  format: numeric
                  type: number
                p_project_name:
                  format: text
                  type: string
                p_recommendation:
                  format: text
                  type: string
                p_relevant_decisions:
                  format: text
                  type: string
                p_sanction_sought:
                  format: text
                  type: string
                p_supplementary_information:
                  format: text
                  type: string
                p_technology_rationale:
                  format: text
                  type: string
                p_tender_committee_applicable:
                  format: boolean
                  type: boolean
                p_vendor_selection:
                  format: text
                  type: string
                p_write_offs:
                  format: text
                  type: string
              required:
                - p_id
                - p_tender_committee_applicable
                - p_project_name
                - p_policy_ids
                - p_policy_modification
                - p_sanction_sought
                - p_relevant_decisions
                - p_background
                - p_costs_and_benefits
                - p_technology_rationale
                - p_implementation_schedule
                - p_key_risks
                - p_negotiation_process
                - p_ehs_compliance
                - p_cash_flows
                - p_npv
                - p_key_assumptions
                - p_financial_sensitivities
                - p_write_offs
                - p_budget_reference
                - p_approved_project_changes
                - p_recommendation
                - p_supplementary_information
                - p_annexures
                - p_consultant_appointment
                - p_contingency_amount
              type: object
          application/vnd.pgrst.object+json:
            schema:
              description: >-
                Change a capex approval note. Every heading is sent, as the note
                stands; see capex_approval_notes for what each one is. Needs
                finance.capex_approval_note.edit.


                Nothing a note must hold before it is sent is asked here: a note
                is written over days, and submit_capex_approval_note and every
                level's approval refuse it while something is missing (needs in
                the answer lists the columns, as note_needs does). Refused with
                INVALID_NOTE for p_tender_committee_applicable changed where it
                is settled (tender_committee_settled), p_consultant_appointment
                true without a tender committee, p_project_name over 2,000
                characters, bulleted text over 20,000, a document over a
                megabyte as sent, an amount outside zero to 99,999,999.99, and
                p_vendor_selection other than SINGLE_PARTY or MULTI_PARTY; with
                NOT_FOUND for a policy that is not on your Fixed Policy list
                (see capex_fixed_policies). A document's pictures and PDFs must
                be uploaded with request_capex_approval_note_upload; any other
                file, or one you cannot read, is taken out of the text. An empty
                value is stored as nothing, and p_contingency_amount as zero.
                p_project_cost_amount and p_vendor_selection may be left out
                until they are known.


                What your organisation sets on this form in the Form Studio
                applies too: a heading whose writing it keeps to some roles is
                refused with FIELD_NOT_PERMITTED to anybody without one of them
                who changes it.


                While the note is with its approvers, only the approver it is
                waiting on may change it, and they need not hold
                finance.capex_approval_note.edit; what they change is recorded
                against their step. Refused with NOTE_DECIDED once the note is
                approved or rejected, and NOTE_WITH_APPROVERS while it is with
                approvers to anybody it is not waiting on. Returns the note's
                id.
              properties:
                p_annexures:
                  format: text
                  type: string
                p_approved_project_changes:
                  format: text
                  type: string
                p_background:
                  format: text
                  type: string
                p_budget_reference:
                  format: text
                  type: string
                p_cash_flows:
                  format: text
                  type: string
                p_consultant_appointment:
                  format: boolean
                  type: boolean
                p_contingency_amount:
                  format: numeric
                  type: number
                p_costs_and_benefits:
                  format: text
                  type: string
                p_ehs_compliance:
                  format: text
                  type: string
                p_financial_sensitivities:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_implementation_schedule:
                  format: text
                  type: string
                p_key_assumptions:
                  format: text
                  type: string
                p_key_risks:
                  format: text
                  type: string
                p_negotiation_process:
                  format: text
                  type: string
                p_npv:
                  format: text
                  type: string
                p_policy_ids:
                  format: uuid[]
                  items:
                    type: string
                  type: array
                p_policy_modification:
                  format: text
                  type: string
                p_project_cost_amount:
                  format: numeric
                  type: number
                p_project_name:
                  format: text
                  type: string
                p_recommendation:
                  format: text
                  type: string
                p_relevant_decisions:
                  format: text
                  type: string
                p_sanction_sought:
                  format: text
                  type: string
                p_supplementary_information:
                  format: text
                  type: string
                p_technology_rationale:
                  format: text
                  type: string
                p_tender_committee_applicable:
                  format: boolean
                  type: boolean
                p_vendor_selection:
                  format: text
                  type: string
                p_write_offs:
                  format: text
                  type: string
              required:
                - p_id
                - p_tender_committee_applicable
                - p_project_name
                - p_policy_ids
                - p_policy_modification
                - p_sanction_sought
                - p_relevant_decisions
                - p_background
                - p_costs_and_benefits
                - p_technology_rationale
                - p_implementation_schedule
                - p_key_risks
                - p_negotiation_process
                - p_ehs_compliance
                - p_cash_flows
                - p_npv
                - p_key_assumptions
                - p_financial_sensitivities
                - p_write_offs
                - p_budget_reference
                - p_approved_project_changes
                - p_recommendation
                - p_supplementary_information
                - p_annexures
                - p_consultant_appointment
                - p_contingency_amount
              type: object
          application/vnd.pgrst.object+json;nulls=stripped:
            schema:
              description: >-
                Change a capex approval note. Every heading is sent, as the note
                stands; see capex_approval_notes for what each one is. Needs
                finance.capex_approval_note.edit.


                Nothing a note must hold before it is sent is asked here: a note
                is written over days, and submit_capex_approval_note and every
                level's approval refuse it while something is missing (needs in
                the answer lists the columns, as note_needs does). Refused with
                INVALID_NOTE for p_tender_committee_applicable changed where it
                is settled (tender_committee_settled), p_consultant_appointment
                true without a tender committee, p_project_name over 2,000
                characters, bulleted text over 20,000, a document over a
                megabyte as sent, an amount outside zero to 99,999,999.99, and
                p_vendor_selection other than SINGLE_PARTY or MULTI_PARTY; with
                NOT_FOUND for a policy that is not on your Fixed Policy list
                (see capex_fixed_policies). A document's pictures and PDFs must
                be uploaded with request_capex_approval_note_upload; any other
                file, or one you cannot read, is taken out of the text. An empty
                value is stored as nothing, and p_contingency_amount as zero.
                p_project_cost_amount and p_vendor_selection may be left out
                until they are known.


                What your organisation sets on this form in the Form Studio
                applies too: a heading whose writing it keeps to some roles is
                refused with FIELD_NOT_PERMITTED to anybody without one of them
                who changes it.


                While the note is with its approvers, only the approver it is
                waiting on may change it, and they need not hold
                finance.capex_approval_note.edit; what they change is recorded
                against their step. Refused with NOTE_DECIDED once the note is
                approved or rejected, and NOTE_WITH_APPROVERS while it is with
                approvers to anybody it is not waiting on. Returns the note's
                id.
              properties:
                p_annexures:
                  format: text
                  type: string
                p_approved_project_changes:
                  format: text
                  type: string
                p_background:
                  format: text
                  type: string
                p_budget_reference:
                  format: text
                  type: string
                p_cash_flows:
                  format: text
                  type: string
                p_consultant_appointment:
                  format: boolean
                  type: boolean
                p_contingency_amount:
                  format: numeric
                  type: number
                p_costs_and_benefits:
                  format: text
                  type: string
                p_ehs_compliance:
                  format: text
                  type: string
                p_financial_sensitivities:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_implementation_schedule:
                  format: text
                  type: string
                p_key_assumptions:
                  format: text
                  type: string
                p_key_risks:
                  format: text
                  type: string
                p_negotiation_process:
                  format: text
                  type: string
                p_npv:
                  format: text
                  type: string
                p_policy_ids:
                  format: uuid[]
                  items:
                    type: string
                  type: array
                p_policy_modification:
                  format: text
                  type: string
                p_project_cost_amount:
                  format: numeric
                  type: number
                p_project_name:
                  format: text
                  type: string
                p_recommendation:
                  format: text
                  type: string
                p_relevant_decisions:
                  format: text
                  type: string
                p_sanction_sought:
                  format: text
                  type: string
                p_supplementary_information:
                  format: text
                  type: string
                p_technology_rationale:
                  format: text
                  type: string
                p_tender_committee_applicable:
                  format: boolean
                  type: boolean
                p_vendor_selection:
                  format: text
                  type: string
                p_write_offs:
                  format: text
                  type: string
              required:
                - p_id
                - p_tender_committee_applicable
                - p_project_name
                - p_policy_ids
                - p_policy_modification
                - p_sanction_sought
                - p_relevant_decisions
                - p_background
                - p_costs_and_benefits
                - p_technology_rationale
                - p_implementation_schedule
                - p_key_risks
                - p_negotiation_process
                - p_ehs_compliance
                - p_cash_flows
                - p_npv
                - p_key_assumptions
                - p_financial_sensitivities
                - p_write_offs
                - p_budget_reference
                - p_approved_project_changes
                - p_recommendation
                - p_supplementary_information
                - p_annexures
                - p_consultant_appointment
                - p_contingency_amount
              type: object
          text/csv:
            schema:
              description: >-
                Change a capex approval note. Every heading is sent, as the note
                stands; see capex_approval_notes for what each one is. Needs
                finance.capex_approval_note.edit.


                Nothing a note must hold before it is sent is asked here: a note
                is written over days, and submit_capex_approval_note and every
                level's approval refuse it while something is missing (needs in
                the answer lists the columns, as note_needs does). Refused with
                INVALID_NOTE for p_tender_committee_applicable changed where it
                is settled (tender_committee_settled), p_consultant_appointment
                true without a tender committee, p_project_name over 2,000
                characters, bulleted text over 20,000, a document over a
                megabyte as sent, an amount outside zero to 99,999,999.99, and
                p_vendor_selection other than SINGLE_PARTY or MULTI_PARTY; with
                NOT_FOUND for a policy that is not on your Fixed Policy list
                (see capex_fixed_policies). A document's pictures and PDFs must
                be uploaded with request_capex_approval_note_upload; any other
                file, or one you cannot read, is taken out of the text. An empty
                value is stored as nothing, and p_contingency_amount as zero.
                p_project_cost_amount and p_vendor_selection may be left out
                until they are known.


                What your organisation sets on this form in the Form Studio
                applies too: a heading whose writing it keeps to some roles is
                refused with FIELD_NOT_PERMITTED to anybody without one of them
                who changes it.


                While the note is with its approvers, only the approver it is
                waiting on may change it, and they need not hold
                finance.capex_approval_note.edit; what they change is recorded
                against their step. Refused with NOTE_DECIDED once the note is
                approved or rejected, and NOTE_WITH_APPROVERS while it is with
                approvers to anybody it is not waiting on. Returns the note's
                id.
              properties:
                p_annexures:
                  format: text
                  type: string
                p_approved_project_changes:
                  format: text
                  type: string
                p_background:
                  format: text
                  type: string
                p_budget_reference:
                  format: text
                  type: string
                p_cash_flows:
                  format: text
                  type: string
                p_consultant_appointment:
                  format: boolean
                  type: boolean
                p_contingency_amount:
                  format: numeric
                  type: number
                p_costs_and_benefits:
                  format: text
                  type: string
                p_ehs_compliance:
                  format: text
                  type: string
                p_financial_sensitivities:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_implementation_schedule:
                  format: text
                  type: string
                p_key_assumptions:
                  format: text
                  type: string
                p_key_risks:
                  format: text
                  type: string
                p_negotiation_process:
                  format: text
                  type: string
                p_npv:
                  format: text
                  type: string
                p_policy_ids:
                  format: uuid[]
                  items:
                    type: string
                  type: array
                p_policy_modification:
                  format: text
                  type: string
                p_project_cost_amount:
                  format: numeric
                  type: number
                p_project_name:
                  format: text
                  type: string
                p_recommendation:
                  format: text
                  type: string
                p_relevant_decisions:
                  format: text
                  type: string
                p_sanction_sought:
                  format: text
                  type: string
                p_supplementary_information:
                  format: text
                  type: string
                p_technology_rationale:
                  format: text
                  type: string
                p_tender_committee_applicable:
                  format: boolean
                  type: boolean
                p_vendor_selection:
                  format: text
                  type: string
                p_write_offs:
                  format: text
                  type: string
              required:
                - p_id
                - p_tender_committee_applicable
                - p_project_name
                - p_policy_ids
                - p_policy_modification
                - p_sanction_sought
                - p_relevant_decisions
                - p_background
                - p_costs_and_benefits
                - p_technology_rationale
                - p_implementation_schedule
                - p_key_risks
                - p_negotiation_process
                - p_ehs_compliance
                - p_cash_flows
                - p_npv
                - p_key_assumptions
                - p_financial_sensitivities
                - p_write_offs
                - p_budget_reference
                - p_approved_project_changes
                - p_recommendation
                - p_supplementary_information
                - p_annexures
                - p_consultant_appointment
                - p_contingency_amount
              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.