CONTRACT: Contract
The CONTRACT entity stores contracts. An NEC or JCT construction contract linked to a project. Tracks contract type, sum, parties, key dates, retention, and defects correction period.
Default definition. This article describes the default
CONTRACT definition shipped with DemandFlow. Administrators can add, remove, rename, or re-type fields, change which ones are required, and alter the layout from the Definitions screen in Settings. Your tenant's current schema may differ from what is shown here. To read the current definition at any time, GET the DEFINITION object whose id matches CONTRACT.Entity properties
| Property | Value |
|---|---|
| Entity code | CONTRACT |
| Display name | Contract |
| Plural | Contracts |
| Level | 71000 |
Use cases
Parent entity for NEC/JCT contract management. Six relatedlist panels for child entities: compensation events (CONTRACTCE), early warnings (CONTRACTEW), programme submissions (CONTRACTPROG), defects (CONTRACTDEF), payment applications (CONTRACTPAY), and tasks (ACTION).
Fields
Contract Details
| Field | Type | Required | Notes |
|---|---|---|---|
name | text | Yes | Contract name |
contractRef | text | Contract reference | |
status | enum | Yes | Status. Valid ids: draft (Draft), tendered (Tendered), awarded (Awarded), active (Active), practical_completion (Practical Completion), defects_period (Defects Period), final_account (Final Account), closed (Closed), terminated (Terminated). |
contractType | enum | Yes | Contract type. Valid ids: nec4_ecc (NEC4 ECC), nec4_ecc_a (NEC4 ECC Option A (Priced)), nec4_ecc_b (NEC4 ECC Option B (Bill of Quantities)), nec4_ecc_c (NEC4 ECC Option C (Target)), nec4_ecc_d (NEC4 ECC Option D (Target BoQ)), nec4_ecc_e (NEC4 ECC Option E (Cost Reimbursable)), nec4_ecc_f (NEC4 ECC Option F (Management)), nec4_tsc (NEC4 TSC), nec4_psc (NEC4 PSC), nec4_sc (NEC4 Short Contract), nec3_ecc (NEC3 ECC), jct_db (JCT Design & Build), jct_sbc (JCT Standard Building Contract), jct_ic (JCT Intermediate), jct_mw (JCT Minor Works), jct_mc (JCT Management Contract), other (Other). |
description | text (multi-line) | Description | |
project | reference → PJ | Project | |
contractSum | number | Contract sum | |
currentContractSum | number | Contract sum adjusted for agreed compensation events / variations |
Parties
| Field | Type | Required | Notes |
|---|---|---|---|
contractorName | text | Contractor name | |
contractorContact | text | Contractor contact | |
contractorEmail | text | Contractor email | |
projectManager | reference → user | Project Manager / Contract Administrator | |
supervisor | reference → user | Supervisor | |
assigned_to | reference → user | Owner |
Retention
| Field | Type | Required | Notes |
|---|---|---|---|
retentionPct | number | Retention percentage (%) | |
retentionRelease1 | date | Typically at practical completion | |
retentionRelease2 | date | Typically at end of defects correction period |
Key Dates
| Field | Type | Required | Notes |
|---|---|---|---|
startDate | date | Start date | |
completionDate | date | Completion date | |
practicalCompletionDate | date | Practical completion date | |
sectionalCompletion1Date | date | Sectional completion 1 | |
sectionalCompletion1Desc | text | Section 1 description | |
sectionalCompletion2Date | date | Sectional completion 2 | |
sectionalCompletion2Desc | text | Section 2 description | |
sectionalCompletion3Date | date | Sectional completion 3 | |
sectionalCompletion3Desc | text | Section 3 description |
Defects
| Field | Type | Required | Notes |
|---|---|---|---|
defectsCorrectionPeriod | number | Defects correction period (weeks) | |
defectsDate | date | End of defects correction period |
Documents
| Field | Type | Required | Notes |
|---|---|---|---|
attachments | file | Contract Documents |
Additional panels
- Activity timeline panel attached.
Relationships
- Lookups:
projectpoints at aPJrecord. - Related lists:
CONTRACTCE(SUB|CONTRACT),CONTRACTEW(SUB|CONTRACT),CONTRACTPROG(SUB|CONTRACT),CONTRACTDEF(SUB|CONTRACT),CONTRACTPAY(SUB|CONTRACT),ACTION(SUB|CONTRACT).
Creating a Contract via the API
POST /v1/objects
Authorization: Bearer <your-pat>
Content-Type: application/json
{
"entity": "CONTRACT",
"level": 71000,
"comboKey": "SUB:<your-sub-id>|ENT:",
"name": "Example value",
"status": "draft",
"contractType": "nec4_ecc",
"description": "Example value"
}
Listing Contracts
GET /v1/entities/CONTRACT/SUB