Retention position (v1)
Retention position is one of Demiton's published registers for Australian civil construction. Retention currently withheld on a job, and its status. 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 Contracts in the register catalog.
- Register ID
retention_positionUse this name to ask for the register. The API calls it a shelf ID.- Each record is
- A stateThe current value of something, replaced when it changes.
- 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.
- AS 4000General Conditions of Contract (superseded edition, still in use)
- AS 4000General Conditions of Contract (construct only)
- AS 4902General Conditions of Contract for Design and Construct
- Corporations Act 2001 (Cth) s 286Corporations Act 2001 (Cth) - financial records, 7-year retention
- Security of paymentBuilding Industry Fairness (Security of Payment) Act 2017 (Qld)
- Security of paymentBuilding and Construction Industry Security of Payment Act 2002 (Vic), as amended from 15 Apr 2026
- Security of paymentBuilding and Construction Industry (Security of Payment) Act 2021 (WA)
- NZ CCA 2002Construction Contracts Act 2002 (NZ), 2002 No 46, as amended 2015 and 2023
- HGCRA 1996 Part IIHousing Grants, Construction and Regeneration Act 1996, Part II (as amended by LDEDCA 2009)
- AIA G702/G703Application and Certificate for Payment; Continuation Sheet
Connectors
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 AcumaticaPartial
- Oracle Aconex
- Payapps
- Procore
Fields
8 fields: 2 required, 5 optional, 1 defined by each organisation.
Required
Every record carries these fields.
- project_refText
The subject project's stable external reference (today the ERP job number).
Example:
BWG-2025-002- retention_heldTrue or false
Whether money is currently withheld by the client.
Example:
true
Optional
Present when the source system records them.
- contract_refText
The contract or trust account the retention attaches to.
Example:
TEN/2963- retention_basisText
How the retention was calculated (percent of each claim, accumulated, cap)
Example:
5% of certified value to practical completion- retention_amountDecimal number
The amount currently withheld, as recorded by the source.
Example:
97500- retention_currencyText
The currency the amount is denominated in.
Example:
AUD- retention_amount_sourceText
Which system actually supplied
retention_amount(today the constantbc_job_card_unpopulated)
Defined by each organisation
Their contents come from the organisation's own forms or systems, so they differ between organisations.
- retention_statusText
The producer's lifecycle code:
PC,DLP,BG,COMPLETEDExample:
held
Example record
A sample from Bridgeworks Group, Demiton's demonstration company. The values are illustrative; the shape is exactly what the contract describes.
{ "contract_ref": "TEN/2963", "project_ref": "BWG-2025-002", "retention_amount": 97500, "retention_basis": "5% of certified value to practical completion", "retention_currency": "AUD", "retention_held": true, "retention_status": "held"}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.
https://docs.demiton.io/registers/retention_position/v1.jsonShow 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.