Adds a custom charge to a job (fees, disposal, permits …).
Requires ManageJobs and an Idempotency-Key header. A cancelled job is read-only. The write is attributed to the key's creator.
Request
- Base URL: https://app.flexonthejob.com
- URL: https://app.flexonthejob.com/api/v1/jobs/{id}/charges
- Auth: HTTP bearer
Path parameters
Job id.
Request body
Charge name shown on the estimate, ≤ 200 characters. Required. Example: Disposal fee.
Amount charged to the customer, in the organization's currency, ≥ 0. Example: 75.00.
Optional longer description, ≤ 500 characters.
Response
The updated job.
Numeric id used in /api/v1/jobs/{id}. Unique within this organization. Example: 1042.
Stable cross-device identifier (GUID) — also the pagination cursor value. Example: 3f2504e0-4f89-11d3-9a0c-0305e82c3301.
Human-readable job number shown to staff and customers. Example: J-2026-0042.
Free-text job category configured by the organization. Example: Installation, Repair.
Workflow status name. One of Draft, InspectionInProgress, Estimated, AwaitingOptionSelection, Scheduled, InProgress, Completed, Invoiced, Paid, Cancelled, Outstanding.
Display label of the status as the organization has customised it (falls back to status). Example: On Site.
Payment state, independent of workflow status: Unpaid, Partial, Paid, Overpaid or Refunded.
Id of the customer the job is for (see /api/v1/customers/{id}).
Customer display name at read time. Example: Acme Property Management.
Short description of the work. May be null for drafts.
When the job was created, ISO-8601 UTC. Example: 2026-09-01T14:03:22Z.
Last modification time, ISO-8601 UTC (creation time when never modified). Use with the updatedSince filter to poll for changes.
Scheduled start as the organization's local wall-clock time with no UTC offset (the date-time format here is a local time, not RFC 3339 with zone), e.g. 2026-09-08T08:30:00. Null when unscheduled.
Planned duration in minutes (default 120 when scheduled without an explicit duration). Null when unscheduled.
When work actually started, ISO-8601 UTC. Null until the job is in progress.
When work was completed, ISO-8601 UTC. Null until completed.
Customer price before tax, after the job-level discount, in the organization's currency (decimal, e.g. 1250.00).
Internal notes typed on the job itself (not the timeline). Null when empty.
Sum of material lines before job-level discount and tax (decimal currency, e.g. 800.00).
Sum of labor lines before job-level discount and tax (decimal currency).
Sum of custom charges before job-level discount and tax (decimal currency).
Job-level discount as a percentage of every line (0–100), or null when a fixed amount / no discount applies.
Job-level fixed discount amount (decimal currency), or null when a percentage / no discount applies.
Tax rate locked in at creation, as a percentage (e.g. 8.25).
Money collected before invoicing (decimal currency), or null when none.
Set only on the POST /api/v1/jobs response when publishImmediately was requested but the job could not be published yet (it was created as a Draft), e.g. Not published yet: Cannot finalize estimate. All material items must have a unit price.. Always null on GET.
Changes
No recorded changes to this operation across all 1 revision of this API.