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

# Book a delivery in against an order.

> Book a delivery in against an order. A part line that is accepted goes into a store through the inventory ledger, and needs Parts & Stock and a store to go into. An asset line that is accepted
puts its assets in the register, one for each unit unless its category is counted by quantity. Give
an asset line `units`, one object per asset with the asset's fields as text keyed by field
(`custom:<key>` for the tenant's own fields), and each asset is created from its row: names are
matched the way an import matches them, and an empty cell keeps what the order says. A service or
other line is confirmed as received and moves nothing. Pass the dispatch it answers and its
paperwork is carried across. The order's receiving draft is deleted with the booking.



## OpenAPI

````yaml /api-reference/openapi.json post /rpc/receive_purchase_order
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/receive_purchase_order:
    post:
      tags:
        - Procurement
      summary: Book a delivery in against an order.
      description: >-
        Book a delivery in against an order. A part line that is accepted goes
        into a store through the inventory ledger, and needs Parts & Stock and a
        store to go into. An asset line that is accepted

        puts its assets in the register, one for each unit unless its category
        is counted by quantity. Give

        an asset line `units`, one object per asset with the asset's fields as
        text keyed by field

        (`custom:<key>` for the tenant's own fields), and each asset is created
        from its row: names are

        matched the way an import matches them, and an empty cell keeps what the
        order says. A service or

        other line is confirmed as received and moves nothing. Pass the dispatch
        it answers and its

        paperwork is carried across. The order's receiving draft is deleted with
        the booking.
      parameters:
        - $ref: '#/components/parameters/preferParams'
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Book a delivery in against an order. A part line that is
                accepted goes into a store through

                the inventory ledger, and needs Parts & Stock and a store to go
                into. An asset line that is accepted

                puts its assets in the register, one for each unit unless its
                category is counted by quantity. Give

                an asset line `units`, one object per asset with the asset's
                fields as text keyed by field

                (`custom:<key>` for the tenant's own fields), and each asset is
                created from its row: names are

                matched the way an import matches them, and an empty cell keeps
                what the order says. A service or

                other line is confirmed as received and moves nothing. Pass the
                dispatch it answers and its

                paperwork is carried across. The order's receiving draft is
                deleted with the booking.
              properties:
                p_carrier:
                  format: text
                  type: string
                p_delivery_note_number:
                  format: text
                  type: string
                p_dispatch_id:
                  format: uuid
                  type: string
                p_lines:
                  format: jsonb
                p_notes:
                  format: text
                  type: string
                p_purchase_order_id:
                  format: uuid
                  type: string
                p_received_at:
                  format: timestamp with time zone
                  type: string
                p_warehouse_id:
                  format: uuid
                  type: string
                p_waybill_number:
                  format: text
                  type: string
              required:
                - p_purchase_order_id
                - p_lines
              type: object
          application/vnd.pgrst.object+json:
            schema:
              description: >-
                Book a delivery in against an order. A part line that is
                accepted goes into a store through

                the inventory ledger, and needs Parts & Stock and a store to go
                into. An asset line that is accepted

                puts its assets in the register, one for each unit unless its
                category is counted by quantity. Give

                an asset line `units`, one object per asset with the asset's
                fields as text keyed by field

                (`custom:<key>` for the tenant's own fields), and each asset is
                created from its row: names are

                matched the way an import matches them, and an empty cell keeps
                what the order says. A service or

                other line is confirmed as received and moves nothing. Pass the
                dispatch it answers and its

                paperwork is carried across. The order's receiving draft is
                deleted with the booking.
              properties:
                p_carrier:
                  format: text
                  type: string
                p_delivery_note_number:
                  format: text
                  type: string
                p_dispatch_id:
                  format: uuid
                  type: string
                p_lines:
                  format: jsonb
                p_notes:
                  format: text
                  type: string
                p_purchase_order_id:
                  format: uuid
                  type: string
                p_received_at:
                  format: timestamp with time zone
                  type: string
                p_warehouse_id:
                  format: uuid
                  type: string
                p_waybill_number:
                  format: text
                  type: string
              required:
                - p_purchase_order_id
                - p_lines
              type: object
          application/vnd.pgrst.object+json;nulls=stripped:
            schema:
              description: >-
                Book a delivery in against an order. A part line that is
                accepted goes into a store through

                the inventory ledger, and needs Parts & Stock and a store to go
                into. An asset line that is accepted

                puts its assets in the register, one for each unit unless its
                category is counted by quantity. Give

                an asset line `units`, one object per asset with the asset's
                fields as text keyed by field

                (`custom:<key>` for the tenant's own fields), and each asset is
                created from its row: names are

                matched the way an import matches them, and an empty cell keeps
                what the order says. A service or

                other line is confirmed as received and moves nothing. Pass the
                dispatch it answers and its

                paperwork is carried across. The order's receiving draft is
                deleted with the booking.
              properties:
                p_carrier:
                  format: text
                  type: string
                p_delivery_note_number:
                  format: text
                  type: string
                p_dispatch_id:
                  format: uuid
                  type: string
                p_lines:
                  format: jsonb
                p_notes:
                  format: text
                  type: string
                p_purchase_order_id:
                  format: uuid
                  type: string
                p_received_at:
                  format: timestamp with time zone
                  type: string
                p_warehouse_id:
                  format: uuid
                  type: string
                p_waybill_number:
                  format: text
                  type: string
              required:
                - p_purchase_order_id
                - p_lines
              type: object
          text/csv:
            schema:
              description: >-
                Book a delivery in against an order. A part line that is
                accepted goes into a store through

                the inventory ledger, and needs Parts & Stock and a store to go
                into. An asset line that is accepted

                puts its assets in the register, one for each unit unless its
                category is counted by quantity. Give

                an asset line `units`, one object per asset with the asset's
                fields as text keyed by field

                (`custom:<key>` for the tenant's own fields), and each asset is
                created from its row: names are

                matched the way an import matches them, and an empty cell keeps
                what the order says. A service or

                other line is confirmed as received and moves nothing. Pass the
                dispatch it answers and its

                paperwork is carried across. The order's receiving draft is
                deleted with the booking.
              properties:
                p_carrier:
                  format: text
                  type: string
                p_delivery_note_number:
                  format: text
                  type: string
                p_dispatch_id:
                  format: uuid
                  type: string
                p_lines:
                  format: jsonb
                p_notes:
                  format: text
                  type: string
                p_purchase_order_id:
                  format: uuid
                  type: string
                p_received_at:
                  format: timestamp with time zone
                  type: string
                p_warehouse_id:
                  format: uuid
                  type: string
                p_waybill_number:
                  format: text
                  type: string
              required:
                - p_purchase_order_id
                - p_lines
              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.