Modules

Calendar

Certificates

CollectiveAgreements

Company Forms

Company Forms Management

Contacts

Contracts

Customer Assets

Equipment

Expenses

Job Checklists

Job Invoices

Jobs

Labour Actions

Library

Locates

Materials

Messages

Purchase Orders

Safety

Schedule

Service Quotes/Invoices

Service Requests

Services

Settings

TimeLogs

Users

Other

JobInvoice Resource
In Job Invoices Module


Project (job) invoices / draws, including holdback fields. Product language: project invoices, draws. Supports /report aggregates such as total_revenue, total_holdback, and pretax_total_sum. Billing UI uses is_active_version=1; always filter that (and usually is_finalized=1) on get/report. total_revenue reconstructs gross from pretax/holdback - not the same as summing pretax_total / grand_total. pretax_total_sum is the sum of pretax_total (UI Before Tax) for the filters used.

Endpoints

Endpoints URI Access Control Description
delete POST /api/JobInvoice/delete Admin or Module WRITE
save POST /api/JobInvoice/save Admin or Module WRITE
activate-revision POST /api/JobInvoice/activate-revision Endpoint level permissions
send POST /api/JobInvoice/send Endpoint level permissions
pdf GET /api/JobInvoice/pdf Endpoint level permissions
save-batch POST /api/JobInvoice/save-batch Admin or Module WRITE
get GET /api/JobInvoice/get Admin or Module READ
find GET /api/JobInvoice/find Admin or Module READ
report GET /api/JobInvoice/report Endpoint level permissions

Server-side aggregates over filtered rows (same-table filters only). Response data keys:

  • total_revenue: formula of ROUND(SUM(COALESCE((pretax_total - COALESCE(holdback_release,0)) / NULLIF(1 - COALESCE(holdback_percentage,0), 0), pretax_total - COALESCE(holdback_release,0))), 2)
  • total_holdback: formula of ROUND(SUM(COALESCE(holdback_percentage,0) * (COALESCE(gross_invoice_base,0) + COALESCE(gross_invoice_changes,0))), 2)
  • pretax_total_sum: sum of pretax_total
payment GET /api/JobInvoice/payment Endpoint level permissions
partial-payment POST /api/JobInvoice/partial-payment Endpoint level permissions

Properties

Property Type Description
id number
slug string
job_id number
invoice_num number
revision_num number
manual_invoice_number string
is_active_version number
issue_date date
date_first_issued datetime
submitted_log_json string
seen_log_json string
editing_log_json string
payments_json string

Payment log for this project invoice as JSON.

bottom_text string
customer_notes string
gross_invoice_base number
gross_invoice_changes number
holdback_percentage number
holdback_release number
pretax_total number
grand_total number
applied_sales_tax_json string

Sales tax lines applied to this project invoice as JSON.

custom_payment_links_json string
custom_payment_required boolean
is_finalized boolean
last_issued datetime
last_emailed datetime
is_portal_document boolean
due_date date
payment_terms number
attn string
is_processed boolean
is_paid boolean
amount_paid number
exchange_rate number
qbo_id number
qbo_id_history_json string
message_thread_id number
created_at datetime
updated_at datetime
updated_by number

Settings

Setting
Pagination Limit (when page parameter is set) 50 per page
Default Sort Order created_at ASC

Relationships

Related Resource Key Relationship to JobInvoice Property
Job job_id Belongs To Job
JobInvoiceTask invoice_id Owns Many JobInvoiceTask
Company tenant_id Belongs To Company