Skip to content
Demiton

Purchase line (v1)

Purchase line is one of Demiton's published registers for Australian civil construction. Job-linked purchase order and invoice lines. Demiton keeps it current from the systems a contractor already runs and publishes the record's shape as a versioned JSON Schema, so the same question works whichever system produced the record.

Part of Financials in the register catalog.

Register ID
purchase_lineUse this name to ask for the register. The API calls it a shelf ID.
Each record is
An eventSomething that happened at a point in time.
Status
AvailableFilled today from connected systems, uploads or public data.
Data
OrganisationPrivate to each organisation's own workspace.
Version
v1 (1.0.1)Superseded by v2.

Standards

This register's contract was designed against these standards and laws. Holding these records does not by itself certify compliance.

  • ABN Act 1999 (Cth)A New Tax System (Australian Business Number) Act 1999 - ABN registerAustralia · current · public summary
  • GST Act 1999 (Cth)A New Tax System (Goods and Services Tax) Act 1999 (Cth)Australia · current (ATO guidance updated 25 Aug 2025) · clause s 29-70 (tax invoices); ATO tax invoice guidance · public summary
  • PINT A-NZ Billing BISPeppol PINT A-NZ Billing BIS (joint Australia-New Zealand specification)Australia · 1.1.3 (mandatory from 15 Nov 2024) · clause ch 1-2, 5.1 · verified against full text
  • Directive 2006/112/ECCouncil Directive 2006/112/EC on the common system of VATEuropean Union · consolidated CELEX 02006L0112-20250101 · clause Art 226 · verified against full text
  • EN 16931-1:2017CEN EN 16931-1 Electronic invoicing - semantic data modelEuropean Union · 2017 (withdrawn; 2026 edition published May 2026) · public summary
  • OC4IDSOpen Contracting for Infrastructure Data StandardInternational · 0.9.5 (site switcher shows 0.9.4) · verified against full text
  • OCDSOpen Contracting Data StandardInternational · 1.1 schema, docs 1.1.5 · verified against full text
  • Peppol BIS Billing 3.0Peppol BIS Billing 3.0 (CIUS of EN 16931)International · 3.0.21 (May 2026 release) · clause conformance statement; business requirement groups · verified against full text
  • GST Act 1985 (NZ)Goods and Services Tax Act 1985 (NZ)New Zealand · as amended from 1 Apr 2023 · clause taxable supply information (s 19K); IRD guidance · public summary
  • NZBNNew Zealand Business Number Act 2016 - NZBN registerNew Zealand · current · public summary
  • PINT A-NZ Billing BISPeppol PINT A-NZ Billing BIS (joint Australia-New Zealand specification)New Zealand · 1.1.3 (mandatory from 15 Nov 2024) · clause ch 1-2, 5.1 · verified against full text
  • AIA G702/G703AIA G702-1992 / G703-1992United States · 1992 · public summary
  • FAR 52.204-7FAR 52.204-7 System for Award Management (unique entity identifier) (Unique Entity ID, UEI)United States · Nov 2024 · verified against full text

Connectors

Connected today

Demiton keeps this register current from these systems now.

On the roadmap

Systems in the planned connector rollout that can fill this register. Partial means the system holds only some of its fields.

  • MYOB Acumatica
  • Xero AccountingPartial

Fields

23 fields: 11 required, 6 optional, 6 defined by each organisation.

Required

Every record carries these fields.

amountDecimal numberUnit: by_coordinate (row currency)

Line value. Raw lineAmount. ADDITIVE.

Example: 48600

projectText

The job the line commits cost against. Raw jobNumber; the bound filter already excludes rows without one (jobNumber ne '', baseline_squash_02_seed.sql:1198).

Example: BWG-2025-001

currencyTextUnit: ISO 4217 code

Denomination of amount and unit_cost. Raw currencyCode, falling back to company base currency when the field is empty.

Example: AUD

quantityNumberUnit: dimensionless (unit of measure is a separate attribute)

Line quantity. Raw quantity. ADDITIVE, missing=ZERO.

Example: 540

unit_costDecimal numberUnit: by_coordinate

Rate per unit. Raw directUnitCost. INSTANTANEOUS.

Example: 90

order_dateDateYYYY-MM-DD

When the line was ordered. Raw orderDate; already the producer's occurred_at_field, so no new source is needed — this row records it in the payload too.

Example: 2026-07-08

line_numberWhole number

Line identity within the document. Raw lineNumber. Second half of the composite id.

Example: 1

document_typeText

Which purchase-document kind the line belongs to (order / invoice / credit memo). Raw documentType. Mandatory because the bound endpoint is not type-filtered while the sibling commitments query is, so without this field an invoice line is indistinguishable from a PO line.

Example: order

document_numberText

Purchase document identity. Raw documentNumber. Half of the composite external id; without it no line can be deduplicated or superseded.

Example: PO-100221

unit_of_measureText

The unit quantity is counted in. Raw unitOfMeasureCode. quantity is declared dimensionless, so the unit has to be carried as an attribute or the quantity is uninterpretable. Which of unitOfMeasureCode / unitOfMeasure is canonical is unverified; both are in the corpus.

Example: TONNE

financial_periodText

The period the commitment is attributed to. Derived from orderDate by the period resolver, not a raw field.

Example: 2026-07

Optional

Present when the source system records them.

vendorText

The supplier the line is placed with. Raw buyFromVendorNumber. Optional because the declaration says so and the axis name is not portable.

Example: Statewide Concrete Supplies

cost_codeText

The job task / cost code the line is coded to. Raw jobTaskNumber.

Example: T20

descriptionText

Line description. Raw description. Optional: no lens mandates it, but names it as what makes this shelf richer than cost_element.

Example: 20mm road base aggregate

item_referenceText

The vendor's or tenant's item identifier. Raw itemReferenceNumber / vendorItemNumber.

Example: AGG-20MM

receipt_expected_onDateYYYY-MM-DD

Expected / promised / requested receipt date. Raw expectedReceiptDate, promisedReceiptDate, requestedReceiptDate. Optional: no lens requires a commitment to carry a delivery date, and the three raw fields disagree in meaning.

Example: 2026-07-15

Defined by each organisation

Their contents come from the organisation's own forms or systems, so they differ between organisations.

tax_area_codeText

Tenant tax area coding. Raw taxAreaCode. Same reason.

tax_group_codeText

Tenant tax group coding. Raw taxGroupCode. Same reason as amount_including_tax: tenant configuration vocabulary, no jurisdictional mandate on the order line.

cost_dimension_1Text

Tenant dimension code 1. Raw shortcutDimension1Code. Tenant-specific: BC dimension semantics are configured per tenant, and the shelf's portable cost axis is cost_code.

cost_dimension_2Text

Tenant dimension code 2. Raw shortcutDimension2Code. Same reason.

received_completeTrue or false

Whether the line is fully received. Raw completelyReceived / finished. Tenant-specific because "received" is a workflow state of the tenant's procurement process, not a fact about the commitment.

Example: true

amount_including_taxDecimal numberUnit: tenant tax area

Line value incl. tax. Raw amountIncludingVat. Tenant-specific: the R3 file is explicit that verified tax content rules attach to the invoice, not the order line (payroll-and-invoicing.md:563-568), and the tax rate/jurisdiction/rounding basis needed to reconcile it is not on this record (:545-552).

Example record

A sample from Bridgeworks Group, Demiton's demonstration company. The values are illustrative; the shape is exactly what the contract describes.

purchase_line.example.json
{
"amount": 48600,
"cost_code": "T20",
"currency": "AUD",
"description": "20mm road base aggregate",
"document_number": "PO-100221",
"document_type": "order",
"financial_period": "2026-07",
"item_reference": "AGG-20MM",
"legal_entity": "Bridgeworks Group Pty Ltd",
"line_number": 1,
"order_date": "2026-07-08",
"project": "BWG-2025-001",
"quantity": 540,
"receipt_expected_on": "2026-07-15",
"received_complete": true,
"unit_cost": 90,
"unit_of_measure": "TONNE",
"vendor": "Statewide Concrete Supplies"
}

Version history

  • v2 (current)
  • v1

Use this contract

The contract is a standard JSON Schema (draft 2020-12) document, so any JSON Schema validator can check a record against it. Keywords starting with x-demiton- add Demiton's own meaning, such as units and requiredness, and validators ignore them.

Schema URL
https://docs.demiton.io/registers/purchase_line/v1.json
Show the full JSON Schema

Loading the schema…

Talk to the team

Tell us what you run - your ERP, field, payroll and document systems - and we will show you the registers Demiton would fill from them, on your data, in a 30-minute call.

Book a 30-minute callStart free