Welcome to the Coperniq API release notes. This section highlights noteworthy changes across endpoints, schemas, and docs.

Recent highlights

  • New: Labels — GET /labels (filter by type), POST /labels, GET /labels/{labelId}. type is WORK (work orders) or ASSET. v2 mirrors these under /v2 with the standard success envelope.
  • New: Assets — GET /assets (filter by account_id), POST /assets, GET/PATCH /assets/{assetId} (set isArchived: true via PATCH to archive). v2 mirrors these under /v2 with the standard success envelope.
  • New: Invoice payments — GET /invoices/{invoiceId}/payments, GET /invoices/{invoiceId}/payments/{paymentId}, and POST /invoices/{invoiceId}/payments (optional paymentReference on create).
  • New: Quotes — full CRUD via GET/POST /quotes, GET/PATCH/DELETE /quotes/{quoteId}, GET /quotes/{quoteId}/pdf, POST /quotes/{quoteId}/send, and GET /opportunities/{opportunityId}/quotes.
  • New: Work order line items — PUT /work-orders/{workOrderId}/line-items replaces line items on service work orders (account type). GET /work-orders/{workOrderId} now includes lineItems when present.
  • New: Taxes — GET /taxes lists company tax rates with pagination and archived filtering.
  • New: Bills — full CRUD for project bills via GET/POST /bills, GET/PATCH/DELETE /bills/{billId}, and GET /projects/{projectId}/bills. Supports LINE_ITEMS and PERCENTAGE calculation methods.
  • Improvement: Nullable fields on PATCH /projects/{projectId}, PATCH /accounts/{accountId}, and PATCH /clients/{clientId} — pass null to clear a field (e.g. description, ownerId, primaryEmail) or any custom property.

Looking for a specific date? See the entries below.

Naming updates & new features

Object renames

Coperniq’s API terminology now matches the UI:

Old nameNew nameEndpoints
ClientsAccounts/accounts, /accounts/{accountId}
RequestsOpportunities/opportunities, /opportunities/{opportunityId}
CommentsNotes/{resource}/{id}/comments (unchanged); new PATCH /notes/{noteId}

Existing /{resource}/{id}/comments paths are unchanged — no updates to existing integrations are required. A new unified PATCH /notes/{noteId} endpoint is also available. The renamed terms appear in operation names, tags, and SDK method names going forward.

Retrieve archived records

All GET list and get-by-ID endpoints for projects, opportunities, accounts, and workflows now support an include_archived query parameter.

GET /projects?include_archived=true
GET /opportunities?include_archived=true
GET /accounts?include_archived=true
GET /workflows?include_archived=true

By default (include_archived=false) only active records are returned — existing behavior is unchanged. Set include_archived=true to include archived records in the response.

Form template endpoints

Two new read-only endpoints let you retrieve form templates and their structure:

  • GET /form-templates — List all workflow form templates for your company.
  • GET /form-templates/{formTemplateId} — Get a specific form template by ID, including its field definitions.

These are useful for dynamically building form submissions or inspecting available form structures before creating a form instance.