Creates a new job. Supports two modes depending on whether isDraft is set:
Non-draft job (default, isDraft omitted or false): All of jobType, title, description, customerId, and siteId are required. The job is created in an active state and assigned a job number immediately.
Draft job (isDraft: true): Only jobType and title are required. description, customerId, and siteId are optional and can be filled in later via PUT /jobs/:jobId. A draft job does not receive a job number until it is finalised via PUT /jobs/:jobId/finalise.
Job types (jobType): Quote, Estimate, Charge Up
Typical draft workflow:
-
POST /jobs with isDraft: true — create the draft
-
PUT /jobs/:jobId — update fields (customer, site, description, etc.)
-
PUT /jobs/:jobId/finalise — convert the draft to an active job
Variation job (parentJobId set): provide parentJobId to instead create a variation of an existing job:
- requires jobType
- inherits customer, site, contacts and budget from the parent
- title, description and customerReference are optional overrides
- always created finalised (non-draft)
Request body
Response
Resource created successfully
Changes
No recorded changes to this endpoint across all 1 revision of this API.