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

# Add a T&C appraisal note (p_id null) or change one.

> Add a T&C appraisal note (p_id null) or change one. Every heading and every item is sent, as the note stands; see tnc_appraisal_notes for what each heading is. Needs finance.tnc_appraisal_note.edit.

p_items is a list of objects, each with specification, quantity, gross_amount and gst_amount, and item_no for an item the note already holds (see tnc_appraisal_note_items). An item sent with its item_no is that item, changed; one sent without is added and numbered after the note's others; one the note holds that is not sent is taken off. Each item is complete or the save is refused with INVALID_NOTE, whose detail.item is its place in the list: an Item/Specification of 1 to 500 characters, a whole quantity from 1 up to 99,999, and a gross value and a GST each more than zero and up to 99,999,999.99, kept to two decimal places.

Any argument may be left out, and is then saved as nothing; an item list left out takes every item off. Nothing a note must hold before it is sent is asked here, save its unit: a note is written over as long as its writer needs, and submit_tnc_appraisal_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 no p_site_id, a p_location_id that is not in that unit, p_item_type other than MIS or NON_MIS, and p_manager_name, p_emp_code or p_grade longer than 100, 10 and 100 characters; with NOT_FOUND for a category not on your Category Master list or a manager location not on your Manager Location list, and for a unit or location you cannot reach. An empty value is stored as nothing.

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.tnc_appraisal_note.edit; what they change on the header 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 and its T&C/No. as tc_no.



## OpenAPI

````yaml /api-reference/openapi.json post /rpc/save_tnc_appraisal_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: T&C appraisal 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_tnc_appraisal_note:
    post:
      tags:
        - T&C appraisal notes
      summary: Add a T&C appraisal note (p_id null) or change one.
      description: >-
        Add a T&C appraisal note (p_id null) or change one. Every heading and
        every item is sent, as the note stands; see tnc_appraisal_notes for what
        each heading is. Needs finance.tnc_appraisal_note.edit.


        p_items is a list of objects, each with specification, quantity,
        gross_amount and gst_amount, and item_no for an item the note already
        holds (see tnc_appraisal_note_items). An item sent with its item_no is
        that item, changed; one sent without is added and numbered after the
        note's others; one the note holds that is not sent is taken off. Each
        item is complete or the save is refused with INVALID_NOTE, whose
        detail.item is its place in the list: an Item/Specification of 1 to 500
        characters, a whole quantity from 1 up to 99,999, and a gross value and
        a GST each more than zero and up to 99,999,999.99, kept to two decimal
        places.


        Any argument may be left out, and is then saved as nothing; an item list
        left out takes every item off. Nothing a note must hold before it is
        sent is asked here, save its unit: a note is written over as long as its
        writer needs, and submit_tnc_appraisal_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 no
        p_site_id, a p_location_id that is not in that unit, p_item_type other
        than MIS or NON_MIS, and p_manager_name, p_emp_code or p_grade longer
        than 100, 10 and 100 characters; with NOT_FOUND for a category not on
        your Category Master list or a manager location not on your Manager
        Location list, and for a unit or location you cannot reach. An empty
        value is stored as nothing.


        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.tnc_appraisal_note.edit;
        what they change on the header 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 and its T&C/No. as tc_no.
      parameters:
        - $ref: '#/components/parameters/preferParams'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Add a T&C appraisal note (p_id null) or change one. Every
                heading and every item is sent, as the note stands; see
                tnc_appraisal_notes for what each heading is. Needs
                finance.tnc_appraisal_note.edit.


                p_items is a list of objects, each with specification, quantity,
                gross_amount and gst_amount, and item_no for an item the note
                already holds (see tnc_appraisal_note_items). An item sent with
                its item_no is that item, changed; one sent without is added and
                numbered after the note's others; one the note holds that is not
                sent is taken off. Each item is complete or the save is refused
                with INVALID_NOTE, whose detail.item is its place in the list:
                an Item/Specification of 1 to 500 characters, a whole quantity
                from 1 up to 99,999, and a gross value and a GST each more than
                zero and up to 99,999,999.99, kept to two decimal places.


                Any argument may be left out, and is then saved as nothing; an
                item list left out takes every item off. Nothing a note must
                hold before it is sent is asked here, save its unit: a note is
                written over as long as its writer needs, and
                submit_tnc_appraisal_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 no
                p_site_id, a p_location_id that is not in that unit, p_item_type
                other than MIS or NON_MIS, and p_manager_name, p_emp_code or
                p_grade longer than 100, 10 and 100 characters; with NOT_FOUND
                for a category not on your Category Master list or a manager
                location not on your Manager Location list, and for a unit or
                location you cannot reach. An empty value is stored as nothing.


                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.tnc_appraisal_note.edit; what they change on the header
                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 and its T&C/No. as tc_no.
              properties:
                p_category_master_id:
                  format: uuid
                  type: string
                p_emp_code:
                  format: text
                  type: string
                p_grade:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_item_type:
                  format: text
                  type: string
                p_items:
                  format: jsonb
                p_location_id:
                  format: uuid
                  type: string
                p_manager_location_id:
                  format: uuid
                  type: string
                p_manager_name:
                  format: text
                  type: string
                p_site_id:
                  format: uuid
                  type: string
              type: object
          application/vnd.pgrst.object+json:
            schema:
              description: >-
                Add a T&C appraisal note (p_id null) or change one. Every
                heading and every item is sent, as the note stands; see
                tnc_appraisal_notes for what each heading is. Needs
                finance.tnc_appraisal_note.edit.


                p_items is a list of objects, each with specification, quantity,
                gross_amount and gst_amount, and item_no for an item the note
                already holds (see tnc_appraisal_note_items). An item sent with
                its item_no is that item, changed; one sent without is added and
                numbered after the note's others; one the note holds that is not
                sent is taken off. Each item is complete or the save is refused
                with INVALID_NOTE, whose detail.item is its place in the list:
                an Item/Specification of 1 to 500 characters, a whole quantity
                from 1 up to 99,999, and a gross value and a GST each more than
                zero and up to 99,999,999.99, kept to two decimal places.


                Any argument may be left out, and is then saved as nothing; an
                item list left out takes every item off. Nothing a note must
                hold before it is sent is asked here, save its unit: a note is
                written over as long as its writer needs, and
                submit_tnc_appraisal_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 no
                p_site_id, a p_location_id that is not in that unit, p_item_type
                other than MIS or NON_MIS, and p_manager_name, p_emp_code or
                p_grade longer than 100, 10 and 100 characters; with NOT_FOUND
                for a category not on your Category Master list or a manager
                location not on your Manager Location list, and for a unit or
                location you cannot reach. An empty value is stored as nothing.


                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.tnc_appraisal_note.edit; what they change on the header
                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 and its T&C/No. as tc_no.
              properties:
                p_category_master_id:
                  format: uuid
                  type: string
                p_emp_code:
                  format: text
                  type: string
                p_grade:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_item_type:
                  format: text
                  type: string
                p_items:
                  format: jsonb
                p_location_id:
                  format: uuid
                  type: string
                p_manager_location_id:
                  format: uuid
                  type: string
                p_manager_name:
                  format: text
                  type: string
                p_site_id:
                  format: uuid
                  type: string
              type: object
          application/vnd.pgrst.object+json;nulls=stripped:
            schema:
              description: >-
                Add a T&C appraisal note (p_id null) or change one. Every
                heading and every item is sent, as the note stands; see
                tnc_appraisal_notes for what each heading is. Needs
                finance.tnc_appraisal_note.edit.


                p_items is a list of objects, each with specification, quantity,
                gross_amount and gst_amount, and item_no for an item the note
                already holds (see tnc_appraisal_note_items). An item sent with
                its item_no is that item, changed; one sent without is added and
                numbered after the note's others; one the note holds that is not
                sent is taken off. Each item is complete or the save is refused
                with INVALID_NOTE, whose detail.item is its place in the list:
                an Item/Specification of 1 to 500 characters, a whole quantity
                from 1 up to 99,999, and a gross value and a GST each more than
                zero and up to 99,999,999.99, kept to two decimal places.


                Any argument may be left out, and is then saved as nothing; an
                item list left out takes every item off. Nothing a note must
                hold before it is sent is asked here, save its unit: a note is
                written over as long as its writer needs, and
                submit_tnc_appraisal_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 no
                p_site_id, a p_location_id that is not in that unit, p_item_type
                other than MIS or NON_MIS, and p_manager_name, p_emp_code or
                p_grade longer than 100, 10 and 100 characters; with NOT_FOUND
                for a category not on your Category Master list or a manager
                location not on your Manager Location list, and for a unit or
                location you cannot reach. An empty value is stored as nothing.


                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.tnc_appraisal_note.edit; what they change on the header
                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 and its T&C/No. as tc_no.
              properties:
                p_category_master_id:
                  format: uuid
                  type: string
                p_emp_code:
                  format: text
                  type: string
                p_grade:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_item_type:
                  format: text
                  type: string
                p_items:
                  format: jsonb
                p_location_id:
                  format: uuid
                  type: string
                p_manager_location_id:
                  format: uuid
                  type: string
                p_manager_name:
                  format: text
                  type: string
                p_site_id:
                  format: uuid
                  type: string
              type: object
          text/csv:
            schema:
              description: >-
                Add a T&C appraisal note (p_id null) or change one. Every
                heading and every item is sent, as the note stands; see
                tnc_appraisal_notes for what each heading is. Needs
                finance.tnc_appraisal_note.edit.


                p_items is a list of objects, each with specification, quantity,
                gross_amount and gst_amount, and item_no for an item the note
                already holds (see tnc_appraisal_note_items). An item sent with
                its item_no is that item, changed; one sent without is added and
                numbered after the note's others; one the note holds that is not
                sent is taken off. Each item is complete or the save is refused
                with INVALID_NOTE, whose detail.item is its place in the list:
                an Item/Specification of 1 to 500 characters, a whole quantity
                from 1 up to 99,999, and a gross value and a GST each more than
                zero and up to 99,999,999.99, kept to two decimal places.


                Any argument may be left out, and is then saved as nothing; an
                item list left out takes every item off. Nothing a note must
                hold before it is sent is asked here, save its unit: a note is
                written over as long as its writer needs, and
                submit_tnc_appraisal_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 no
                p_site_id, a p_location_id that is not in that unit, p_item_type
                other than MIS or NON_MIS, and p_manager_name, p_emp_code or
                p_grade longer than 100, 10 and 100 characters; with NOT_FOUND
                for a category not on your Category Master list or a manager
                location not on your Manager Location list, and for a unit or
                location you cannot reach. An empty value is stored as nothing.


                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.tnc_appraisal_note.edit; what they change on the header
                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 and its T&C/No. as tc_no.
              properties:
                p_category_master_id:
                  format: uuid
                  type: string
                p_emp_code:
                  format: text
                  type: string
                p_grade:
                  format: text
                  type: string
                p_id:
                  format: uuid
                  type: string
                p_item_type:
                  format: text
                  type: string
                p_items:
                  format: jsonb
                p_location_id:
                  format: uuid
                  type: string
                p_manager_location_id:
                  format: uuid
                  type: string
                p_manager_name:
                  format: text
                  type: string
                p_site_id:
                  format: uuid
                  type: string
              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.