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

# Set fields on one asset.

> Set fields on one asset. Site and location are refused: moving an asset is api.move_asset, which records where it came from.



## OpenAPI

````yaml /api-reference/openapi.json post /rpc/update_asset
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: 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: 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: 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: Map
  - name: Floor plans
  - name: Labels
  - name: Lost and found
  - name: Visitors
  - name: Root cause analysis
  - name: Costing
  - name: Finance
  - name: Budgets
  - name: Capex plans
  - 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: 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: Telegram
  - name: Inbound mail
  - name: Platform
externalDocs:
  description: PostgREST Documentation
  url: https://postgrest.org/en/v12/references/api.html
paths:
  /rpc/update_asset:
    post:
      tags:
        - Assets
      summary: Set fields on one asset.
      description: >-
        Set fields on one asset. Site and location are refused: moving an asset
        is api.move_asset, which records where it came from.
      parameters:
        - $ref: '#/components/parameters/preferParams'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Set fields on one asset. Site and location are refused: moving
                an asset is api.move_asset, which records where it came from.
              properties:
                p_asset_id:
                  format: uuid
                  type: string
                p_values:
                  description: >-
                    The fields to change. Send only those; everything else is
                    left as it is.
                  properties:
                    asset_category_id:
                      description: >-
                        Category. What it is. Decides which maintenance plans
                        sweep it in: a plan targeting a category picks up every
                        asset in it, and in every category beneath it. The id of
                        a row from asset categories.
                      format: uuid
                      type: string
                    asset_model_id:
                      description: >-
                        Asset model. The model, so parts and manuals that fit
                        this model can be found from the asset. The id of a row
                        from asset models.
                      format: uuid
                      type: string
                    chargeable:
                      description: >-
                        Chargeable behaviour. Whether a booking of this machine
                        is billed. Fully bills whoever pays, or the cost
                        centre's project of the person it is for; Partial bills
                        only what the booking names; Not chargeable bills
                        nothing. Leave empty to follow the booking defaults.
                      enum:
                        - FULLY
                        - PARTIAL
                        - NOT_CHARGEABLE
                      maxLength: 20
                      type: string
                    commissioning_date:
                      description: >-
                        Commissioning date. When it was handed over and started
                        running. This is the one that matters for age and
                        expected life — an asset can sit installed for months
                        before it is commissioned.
                      format: date
                      type: string
                    cost_center_id:
                      description: >-
                        Cost centre. Who is paid when this asset is booked. Hire
                        charges on it are credited here; its own maintenance
                        still lands with the owning department. The id of a row
                        from cost centers.
                      format: uuid
                      type: string
                    criticality_id:
                      description: >-
                        Criticality. How much its failure hurts. Sets the
                        default response time on work raised against it, and
                        lets a plan target only the assets that matter. The id
                        of a row from asset criticality levels.
                      format: uuid
                      type: string
                    custodian_email:
                      description: >-
                        Custodian's email. Where to write to them.
                        Self-verification asks whoever this resolves to whether
                        they still have the thing, and the reply needs no login.
                      type: string
                    custodian_name:
                      description: >-
                        Custodian's name. Who is holding it, where they have no
                        account — a contractor, a new joiner, somebody at
                        another company. Asked only while no custodian account
                        is chosen, because a custodian user is the same fact
                        recorded better and this is discarded beside it.
                      maxLength: 150
                      type: string
                    custodian_user_id:
                      description: >-
                        Custodian. Who is physically holding it, where that is a
                        person with an account. Not the same as the owning
                        department: a finance department owns a hundred and
                        forty laptops and holds none of them. The id of a row
                        from users.
                      format: uuid
                      type: string
                    custody_since:
                      description: >-
                        Custody since. When they took it. What an asset-issue
                        register would call the issue date.
                      format: date
                      type: string
                    custody_until:
                      description: >-
                        Due back. When they are meant to give it back, where
                        there is such a day. Leave it empty for anything issued
                        open-endedly, which is most of it — a laptop handed to a
                        permanent employee comes back when they leave and not on
                        a date anybody can write down. Filling it in is what
                        asks the product to remind them, and then their
                        supervisor.
                      format: date
                      type: string
                    default_booking_rate_id:
                      description: >-
                        Default rate card. The card this machine is hired out
                        on. A booking line holding it opens on this card. The
                        list offers the cards the booking defaults allow at this
                        site for this category. The id of a row from booking
                        rates.
                      format: uuid
                      type: string
                    department_id:
                      description: >-
                        Owning department. Who owns it and operates it day to
                        day. The department carries the two people who answer
                        for it and the cost centre its maintenance lands in, so
                        this is the one question instead of four. The id of a
                        row from departments.
                      format: uuid
                      type: string
                    description:
                      description: Description.
                      type: string
                    expected_life_months:
                      description: >-
                        Expected life (months). How long it should last in
                        service, in months. Left empty, the asset type's own
                        figure is used — so this is worth answering only where
                        this particular machine differs.
                      type: integer
                    installation_date:
                      description: Installation date. When it was physically put in.
                      format: date
                      type: string
                    latitude:
                      description: >-
                        Coordinates. Where this asset itself stands. Leave it
                        empty for anything indoors or unremarkable and the map
                        places it at its location's coordinates, or its site's —
                        pin it only where the asset's own position is the fact
                        somebody needs, which is most of what is outdoors.
                      type: number
                    location_id:
                      description: >-
                        Location. Where inside the site to go and find it. The
                        id of a row from locations.
                      format: uuid
                      type: string
                    manufacturer_id:
                      description: >-
                        Manufacturer. Who built it. The id of a row from
                        manufacturers.
                      format: uuid
                      type: string
                    name:
                      description: >-
                        Name. What people call it in conversation — "Boiler feed
                        pump 2", not "BFP-002".
                      maxLength: 250
                      type: string
                    parent_asset_id:
                      description: >-
                        Parent asset. The assembly this is part of. Anyone
                        granted access to the parent with descendants included
                        can reach this one too. The id of a row from assets.
                      format: uuid
                      type: string
                    purchase_cost:
                      description: Purchase cost.
                      type: number
                    purchase_date:
                      description: Purchase date. When it was bought.
                      format: date
                      type: string
                    replacement_date:
                      description: >-
                        Replacement date. When it is planned to be replaced.
                        Left empty, it is worked out from the expected life,
                        counted from the day it was commissioned.
                      format: date
                      type: string
                    replacement_value:
                      description: Replacement value.
                      type: number
                    replacement_value_as_at:
                      description: >-
                        As at. The day the figure was struck. A replacement
                        value ages, and one from four years ago flatters every
                        machine it is the denominator of.
                      format: date
                      type: string
                    replacement_value_source:
                      description: >-
                        Where the figure came from. Whose number this is — a
                        supplier's quote, the insurance schedule, an engineer's
                        estimate. One column rather than three, because a figure
                        that cannot say where it came from is not one anybody
                        will act on, and a product that offered a quote field, a
                        finance field and an estimate field would be asking
                        which of three nobody chooses.
                      maxLength: 200
                      type: string
                    serial_number:
                      description: >-
                        Serial number. The manufacturer's serial. Needed to
                        claim under warranty.
                      maxLength: 120
                      type: string
                    site_id:
                      description: >-
                        Site. Which site it belongs to. Site access decides who
                        can raise work against it. The id of a row from sites.
                      format: uuid
                      type: string
                    warranty_expires_on:
                      description: >-
                        Warranty expires on. Shown on the asset and in the
                        warranty register so a repair is not paid for twice.
                      format: date
                      type: string
                  type: object
              required:
                - p_asset_id
                - p_values
              type: object
          application/vnd.pgrst.object+json:
            schema:
              description: >-
                Set fields on one asset. Site and location are refused: moving
                an asset is api.move_asset, which records where it came from.
              properties:
                p_asset_id:
                  format: uuid
                  type: string
                p_values:
                  description: >-
                    The fields to change. Send only those; everything else is
                    left as it is.
                  properties:
                    asset_category_id:
                      description: >-
                        Category. What it is. Decides which maintenance plans
                        sweep it in: a plan targeting a category picks up every
                        asset in it, and in every category beneath it. The id of
                        a row from asset categories.
                      format: uuid
                      type: string
                    asset_model_id:
                      description: >-
                        Asset model. The model, so parts and manuals that fit
                        this model can be found from the asset. The id of a row
                        from asset models.
                      format: uuid
                      type: string
                    chargeable:
                      description: >-
                        Chargeable behaviour. Whether a booking of this machine
                        is billed. Fully bills whoever pays, or the cost
                        centre's project of the person it is for; Partial bills
                        only what the booking names; Not chargeable bills
                        nothing. Leave empty to follow the booking defaults.
                      enum:
                        - FULLY
                        - PARTIAL
                        - NOT_CHARGEABLE
                      maxLength: 20
                      type: string
                    commissioning_date:
                      description: >-
                        Commissioning date. When it was handed over and started
                        running. This is the one that matters for age and
                        expected life — an asset can sit installed for months
                        before it is commissioned.
                      format: date
                      type: string
                    cost_center_id:
                      description: >-
                        Cost centre. Who is paid when this asset is booked. Hire
                        charges on it are credited here; its own maintenance
                        still lands with the owning department. The id of a row
                        from cost centers.
                      format: uuid
                      type: string
                    criticality_id:
                      description: >-
                        Criticality. How much its failure hurts. Sets the
                        default response time on work raised against it, and
                        lets a plan target only the assets that matter. The id
                        of a row from asset criticality levels.
                      format: uuid
                      type: string
                    custodian_email:
                      description: >-
                        Custodian's email. Where to write to them.
                        Self-verification asks whoever this resolves to whether
                        they still have the thing, and the reply needs no login.
                      type: string
                    custodian_name:
                      description: >-
                        Custodian's name. Who is holding it, where they have no
                        account — a contractor, a new joiner, somebody at
                        another company. Asked only while no custodian account
                        is chosen, because a custodian user is the same fact
                        recorded better and this is discarded beside it.
                      maxLength: 150
                      type: string
                    custodian_user_id:
                      description: >-
                        Custodian. Who is physically holding it, where that is a
                        person with an account. Not the same as the owning
                        department: a finance department owns a hundred and
                        forty laptops and holds none of them. The id of a row
                        from users.
                      format: uuid
                      type: string
                    custody_since:
                      description: >-
                        Custody since. When they took it. What an asset-issue
                        register would call the issue date.
                      format: date
                      type: string
                    custody_until:
                      description: >-
                        Due back. When they are meant to give it back, where
                        there is such a day. Leave it empty for anything issued
                        open-endedly, which is most of it — a laptop handed to a
                        permanent employee comes back when they leave and not on
                        a date anybody can write down. Filling it in is what
                        asks the product to remind them, and then their
                        supervisor.
                      format: date
                      type: string
                    default_booking_rate_id:
                      description: >-
                        Default rate card. The card this machine is hired out
                        on. A booking line holding it opens on this card. The
                        list offers the cards the booking defaults allow at this
                        site for this category. The id of a row from booking
                        rates.
                      format: uuid
                      type: string
                    department_id:
                      description: >-
                        Owning department. Who owns it and operates it day to
                        day. The department carries the two people who answer
                        for it and the cost centre its maintenance lands in, so
                        this is the one question instead of four. The id of a
                        row from departments.
                      format: uuid
                      type: string
                    description:
                      description: Description.
                      type: string
                    expected_life_months:
                      description: >-
                        Expected life (months). How long it should last in
                        service, in months. Left empty, the asset type's own
                        figure is used — so this is worth answering only where
                        this particular machine differs.
                      type: integer
                    installation_date:
                      description: Installation date. When it was physically put in.
                      format: date
                      type: string
                    latitude:
                      description: >-
                        Coordinates. Where this asset itself stands. Leave it
                        empty for anything indoors or unremarkable and the map
                        places it at its location's coordinates, or its site's —
                        pin it only where the asset's own position is the fact
                        somebody needs, which is most of what is outdoors.
                      type: number
                    location_id:
                      description: >-
                        Location. Where inside the site to go and find it. The
                        id of a row from locations.
                      format: uuid
                      type: string
                    manufacturer_id:
                      description: >-
                        Manufacturer. Who built it. The id of a row from
                        manufacturers.
                      format: uuid
                      type: string
                    name:
                      description: >-
                        Name. What people call it in conversation — "Boiler feed
                        pump 2", not "BFP-002".
                      maxLength: 250
                      type: string
                    parent_asset_id:
                      description: >-
                        Parent asset. The assembly this is part of. Anyone
                        granted access to the parent with descendants included
                        can reach this one too. The id of a row from assets.
                      format: uuid
                      type: string
                    purchase_cost:
                      description: Purchase cost.
                      type: number
                    purchase_date:
                      description: Purchase date. When it was bought.
                      format: date
                      type: string
                    replacement_date:
                      description: >-
                        Replacement date. When it is planned to be replaced.
                        Left empty, it is worked out from the expected life,
                        counted from the day it was commissioned.
                      format: date
                      type: string
                    replacement_value:
                      description: Replacement value.
                      type: number
                    replacement_value_as_at:
                      description: >-
                        As at. The day the figure was struck. A replacement
                        value ages, and one from four years ago flatters every
                        machine it is the denominator of.
                      format: date
                      type: string
                    replacement_value_source:
                      description: >-
                        Where the figure came from. Whose number this is — a
                        supplier's quote, the insurance schedule, an engineer's
                        estimate. One column rather than three, because a figure
                        that cannot say where it came from is not one anybody
                        will act on, and a product that offered a quote field, a
                        finance field and an estimate field would be asking
                        which of three nobody chooses.
                      maxLength: 200
                      type: string
                    serial_number:
                      description: >-
                        Serial number. The manufacturer's serial. Needed to
                        claim under warranty.
                      maxLength: 120
                      type: string
                    site_id:
                      description: >-
                        Site. Which site it belongs to. Site access decides who
                        can raise work against it. The id of a row from sites.
                      format: uuid
                      type: string
                    warranty_expires_on:
                      description: >-
                        Warranty expires on. Shown on the asset and in the
                        warranty register so a repair is not paid for twice.
                      format: date
                      type: string
                  type: object
              required:
                - p_asset_id
                - p_values
              type: object
          application/vnd.pgrst.object+json;nulls=stripped:
            schema:
              description: >-
                Set fields on one asset. Site and location are refused: moving
                an asset is api.move_asset, which records where it came from.
              properties:
                p_asset_id:
                  format: uuid
                  type: string
                p_values:
                  description: >-
                    The fields to change. Send only those; everything else is
                    left as it is.
                  properties:
                    asset_category_id:
                      description: >-
                        Category. What it is. Decides which maintenance plans
                        sweep it in: a plan targeting a category picks up every
                        asset in it, and in every category beneath it. The id of
                        a row from asset categories.
                      format: uuid
                      type: string
                    asset_model_id:
                      description: >-
                        Asset model. The model, so parts and manuals that fit
                        this model can be found from the asset. The id of a row
                        from asset models.
                      format: uuid
                      type: string
                    chargeable:
                      description: >-
                        Chargeable behaviour. Whether a booking of this machine
                        is billed. Fully bills whoever pays, or the cost
                        centre's project of the person it is for; Partial bills
                        only what the booking names; Not chargeable bills
                        nothing. Leave empty to follow the booking defaults.
                      enum:
                        - FULLY
                        - PARTIAL
                        - NOT_CHARGEABLE
                      maxLength: 20
                      type: string
                    commissioning_date:
                      description: >-
                        Commissioning date. When it was handed over and started
                        running. This is the one that matters for age and
                        expected life — an asset can sit installed for months
                        before it is commissioned.
                      format: date
                      type: string
                    cost_center_id:
                      description: >-
                        Cost centre. Who is paid when this asset is booked. Hire
                        charges on it are credited here; its own maintenance
                        still lands with the owning department. The id of a row
                        from cost centers.
                      format: uuid
                      type: string
                    criticality_id:
                      description: >-
                        Criticality. How much its failure hurts. Sets the
                        default response time on work raised against it, and
                        lets a plan target only the assets that matter. The id
                        of a row from asset criticality levels.
                      format: uuid
                      type: string
                    custodian_email:
                      description: >-
                        Custodian's email. Where to write to them.
                        Self-verification asks whoever this resolves to whether
                        they still have the thing, and the reply needs no login.
                      type: string
                    custodian_name:
                      description: >-
                        Custodian's name. Who is holding it, where they have no
                        account — a contractor, a new joiner, somebody at
                        another company. Asked only while no custodian account
                        is chosen, because a custodian user is the same fact
                        recorded better and this is discarded beside it.
                      maxLength: 150
                      type: string
                    custodian_user_id:
                      description: >-
                        Custodian. Who is physically holding it, where that is a
                        person with an account. Not the same as the owning
                        department: a finance department owns a hundred and
                        forty laptops and holds none of them. The id of a row
                        from users.
                      format: uuid
                      type: string
                    custody_since:
                      description: >-
                        Custody since. When they took it. What an asset-issue
                        register would call the issue date.
                      format: date
                      type: string
                    custody_until:
                      description: >-
                        Due back. When they are meant to give it back, where
                        there is such a day. Leave it empty for anything issued
                        open-endedly, which is most of it — a laptop handed to a
                        permanent employee comes back when they leave and not on
                        a date anybody can write down. Filling it in is what
                        asks the product to remind them, and then their
                        supervisor.
                      format: date
                      type: string
                    default_booking_rate_id:
                      description: >-
                        Default rate card. The card this machine is hired out
                        on. A booking line holding it opens on this card. The
                        list offers the cards the booking defaults allow at this
                        site for this category. The id of a row from booking
                        rates.
                      format: uuid
                      type: string
                    department_id:
                      description: >-
                        Owning department. Who owns it and operates it day to
                        day. The department carries the two people who answer
                        for it and the cost centre its maintenance lands in, so
                        this is the one question instead of four. The id of a
                        row from departments.
                      format: uuid
                      type: string
                    description:
                      description: Description.
                      type: string
                    expected_life_months:
                      description: >-
                        Expected life (months). How long it should last in
                        service, in months. Left empty, the asset type's own
                        figure is used — so this is worth answering only where
                        this particular machine differs.
                      type: integer
                    installation_date:
                      description: Installation date. When it was physically put in.
                      format: date
                      type: string
                    latitude:
                      description: >-
                        Coordinates. Where this asset itself stands. Leave it
                        empty for anything indoors or unremarkable and the map
                        places it at its location's coordinates, or its site's —
                        pin it only where the asset's own position is the fact
                        somebody needs, which is most of what is outdoors.
                      type: number
                    location_id:
                      description: >-
                        Location. Where inside the site to go and find it. The
                        id of a row from locations.
                      format: uuid
                      type: string
                    manufacturer_id:
                      description: >-
                        Manufacturer. Who built it. The id of a row from
                        manufacturers.
                      format: uuid
                      type: string
                    name:
                      description: >-
                        Name. What people call it in conversation — "Boiler feed
                        pump 2", not "BFP-002".
                      maxLength: 250
                      type: string
                    parent_asset_id:
                      description: >-
                        Parent asset. The assembly this is part of. Anyone
                        granted access to the parent with descendants included
                        can reach this one too. The id of a row from assets.
                      format: uuid
                      type: string
                    purchase_cost:
                      description: Purchase cost.
                      type: number
                    purchase_date:
                      description: Purchase date. When it was bought.
                      format: date
                      type: string
                    replacement_date:
                      description: >-
                        Replacement date. When it is planned to be replaced.
                        Left empty, it is worked out from the expected life,
                        counted from the day it was commissioned.
                      format: date
                      type: string
                    replacement_value:
                      description: Replacement value.
                      type: number
                    replacement_value_as_at:
                      description: >-
                        As at. The day the figure was struck. A replacement
                        value ages, and one from four years ago flatters every
                        machine it is the denominator of.
                      format: date
                      type: string
                    replacement_value_source:
                      description: >-
                        Where the figure came from. Whose number this is — a
                        supplier's quote, the insurance schedule, an engineer's
                        estimate. One column rather than three, because a figure
                        that cannot say where it came from is not one anybody
                        will act on, and a product that offered a quote field, a
                        finance field and an estimate field would be asking
                        which of three nobody chooses.
                      maxLength: 200
                      type: string
                    serial_number:
                      description: >-
                        Serial number. The manufacturer's serial. Needed to
                        claim under warranty.
                      maxLength: 120
                      type: string
                    site_id:
                      description: >-
                        Site. Which site it belongs to. Site access decides who
                        can raise work against it. The id of a row from sites.
                      format: uuid
                      type: string
                    warranty_expires_on:
                      description: >-
                        Warranty expires on. Shown on the asset and in the
                        warranty register so a repair is not paid for twice.
                      format: date
                      type: string
                  type: object
              required:
                - p_asset_id
                - p_values
              type: object
          text/csv:
            schema:
              description: >-
                Set fields on one asset. Site and location are refused: moving
                an asset is api.move_asset, which records where it came from.
              properties:
                p_asset_id:
                  format: uuid
                  type: string
                p_values:
                  description: >-
                    The fields to change. Send only those; everything else is
                    left as it is.
                  properties:
                    asset_category_id:
                      description: >-
                        Category. What it is. Decides which maintenance plans
                        sweep it in: a plan targeting a category picks up every
                        asset in it, and in every category beneath it. The id of
                        a row from asset categories.
                      format: uuid
                      type: string
                    asset_model_id:
                      description: >-
                        Asset model. The model, so parts and manuals that fit
                        this model can be found from the asset. The id of a row
                        from asset models.
                      format: uuid
                      type: string
                    chargeable:
                      description: >-
                        Chargeable behaviour. Whether a booking of this machine
                        is billed. Fully bills whoever pays, or the cost
                        centre's project of the person it is for; Partial bills
                        only what the booking names; Not chargeable bills
                        nothing. Leave empty to follow the booking defaults.
                      enum:
                        - FULLY
                        - PARTIAL
                        - NOT_CHARGEABLE
                      maxLength: 20
                      type: string
                    commissioning_date:
                      description: >-
                        Commissioning date. When it was handed over and started
                        running. This is the one that matters for age and
                        expected life — an asset can sit installed for months
                        before it is commissioned.
                      format: date
                      type: string
                    cost_center_id:
                      description: >-
                        Cost centre. Who is paid when this asset is booked. Hire
                        charges on it are credited here; its own maintenance
                        still lands with the owning department. The id of a row
                        from cost centers.
                      format: uuid
                      type: string
                    criticality_id:
                      description: >-
                        Criticality. How much its failure hurts. Sets the
                        default response time on work raised against it, and
                        lets a plan target only the assets that matter. The id
                        of a row from asset criticality levels.
                      format: uuid
                      type: string
                    custodian_email:
                      description: >-
                        Custodian's email. Where to write to them.
                        Self-verification asks whoever this resolves to whether
                        they still have the thing, and the reply needs no login.
                      type: string
                    custodian_name:
                      description: >-
                        Custodian's name. Who is holding it, where they have no
                        account — a contractor, a new joiner, somebody at
                        another company. Asked only while no custodian account
                        is chosen, because a custodian user is the same fact
                        recorded better and this is discarded beside it.
                      maxLength: 150
                      type: string
                    custodian_user_id:
                      description: >-
                        Custodian. Who is physically holding it, where that is a
                        person with an account. Not the same as the owning
                        department: a finance department owns a hundred and
                        forty laptops and holds none of them. The id of a row
                        from users.
                      format: uuid
                      type: string
                    custody_since:
                      description: >-
                        Custody since. When they took it. What an asset-issue
                        register would call the issue date.
                      format: date
                      type: string
                    custody_until:
                      description: >-
                        Due back. When they are meant to give it back, where
                        there is such a day. Leave it empty for anything issued
                        open-endedly, which is most of it — a laptop handed to a
                        permanent employee comes back when they leave and not on
                        a date anybody can write down. Filling it in is what
                        asks the product to remind them, and then their
                        supervisor.
                      format: date
                      type: string
                    default_booking_rate_id:
                      description: >-
                        Default rate card. The card this machine is hired out
                        on. A booking line holding it opens on this card. The
                        list offers the cards the booking defaults allow at this
                        site for this category. The id of a row from booking
                        rates.
                      format: uuid
                      type: string
                    department_id:
                      description: >-
                        Owning department. Who owns it and operates it day to
                        day. The department carries the two people who answer
                        for it and the cost centre its maintenance lands in, so
                        this is the one question instead of four. The id of a
                        row from departments.
                      format: uuid
                      type: string
                    description:
                      description: Description.
                      type: string
                    expected_life_months:
                      description: >-
                        Expected life (months). How long it should last in
                        service, in months. Left empty, the asset type's own
                        figure is used — so this is worth answering only where
                        this particular machine differs.
                      type: integer
                    installation_date:
                      description: Installation date. When it was physically put in.
                      format: date
                      type: string
                    latitude:
                      description: >-
                        Coordinates. Where this asset itself stands. Leave it
                        empty for anything indoors or unremarkable and the map
                        places it at its location's coordinates, or its site's —
                        pin it only where the asset's own position is the fact
                        somebody needs, which is most of what is outdoors.
                      type: number
                    location_id:
                      description: >-
                        Location. Where inside the site to go and find it. The
                        id of a row from locations.
                      format: uuid
                      type: string
                    manufacturer_id:
                      description: >-
                        Manufacturer. Who built it. The id of a row from
                        manufacturers.
                      format: uuid
                      type: string
                    name:
                      description: >-
                        Name. What people call it in conversation — "Boiler feed
                        pump 2", not "BFP-002".
                      maxLength: 250
                      type: string
                    parent_asset_id:
                      description: >-
                        Parent asset. The assembly this is part of. Anyone
                        granted access to the parent with descendants included
                        can reach this one too. The id of a row from assets.
                      format: uuid
                      type: string
                    purchase_cost:
                      description: Purchase cost.
                      type: number
                    purchase_date:
                      description: Purchase date. When it was bought.
                      format: date
                      type: string
                    replacement_date:
                      description: >-
                        Replacement date. When it is planned to be replaced.
                        Left empty, it is worked out from the expected life,
                        counted from the day it was commissioned.
                      format: date
                      type: string
                    replacement_value:
                      description: Replacement value.
                      type: number
                    replacement_value_as_at:
                      description: >-
                        As at. The day the figure was struck. A replacement
                        value ages, and one from four years ago flatters every
                        machine it is the denominator of.
                      format: date
                      type: string
                    replacement_value_source:
                      description: >-
                        Where the figure came from. Whose number this is — a
                        supplier's quote, the insurance schedule, an engineer's
                        estimate. One column rather than three, because a figure
                        that cannot say where it came from is not one anybody
                        will act on, and a product that offered a quote field, a
                        finance field and an estimate field would be asking
                        which of three nobody chooses.
                      maxLength: 200
                      type: string
                    serial_number:
                      description: >-
                        Serial number. The manufacturer's serial. Needed to
                        claim under warranty.
                      maxLength: 120
                      type: string
                    site_id:
                      description: >-
                        Site. Which site it belongs to. Site access decides who
                        can raise work against it. The id of a row from sites.
                      format: uuid
                      type: string
                    warranty_expires_on:
                      description: >-
                        Warranty expires on. Shown on the asset and in the
                        warranty register so a repair is not paid for twice.
                      format: date
                      type: string
                  type: object
              required:
                - p_asset_id
                - p_values
              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.