Breaking changes

Breaking changes are planned for November 8th.

POST: /api/v2/pub/employees

PATCH: /api/v2/pub/employees/{id}

❗️

Removed

  • field 'account_type' will be removed from the request body
🚧

Changed

  • field 'account_type_id' will be required

POST: /api/v2/pub/projects

PATCH: /api/v2/pub/projects/{id}

❗️

Removed

  • fields 'manager_id' and 'executive_id' will be removed from the request body
    • manager and executive will be replaced by primary contact and secondary contact, but assigning contacts will require a different approach described in Migration notes below

Migration Notes

New API endpoints will be added to support project contact management.

New Endpoints

Assign Primary Contact

PUT: /api/v2/pub/projects/{id}/assign-primary-contact

Assign Secondary Contact

PUT: /api/v2/pub/projects/{id}/assign-secondary-contact

Both endpoints accept the following request body field:

{
  "employee_id": "<string>|<null>"
}

Invite User to a Project

POST: /api/v2/pub/project-directories/{id}/invitations

This endpoint accept the following request body field:

{
  "user_id": "<string>",
}

Assigning a Primary or Secondary Contact

To assign an employee as a primary or secondary contact, follow these steps:

  1. Ensure the employee is already invited to the project.

    • This can be done either:
      • Through the UI, or
      • By calling the POST /api/v2/pub/project-directories/{id}/invitations endpoint.
  2. Assign the employee as a contact.

    • This can be done either:
      • Through the UI, or
      • By calling one of the following endpoints:
        • PUT /api/v2/pub/projects/{id}/assign-primary-contact
        • PUT /api/v2/pub/projects/{id}/assign-secondary-contact

GET: /api/v2/pub/contracts

👍

Added

  • added the property 'items/accounting_company_id' to the response with the '200' status
  • added the property 'items/payment_term_id' to the response with the '200' status

POST: /api/v2/pub/contracts

🚧

Changed

  • added the new request property 'accounting_company_id'
  • added the new request property 'payment_term_id'

GET: /api/v2/pub/contracts/{id}

👍

Added

  • added the property 'accounting_company_id' to the response with the '200' status
  • added the property 'payment_term_id' to the response with the '200' status

GET: /api/v2/pub/employees

👍

Added

  • added the property 'items/project_roles/additional_project_role_ids' to the response with the '200' status
  • added the property 'items/project_roles/primary_project_role_id' to the response with the '200' status
🚧

Changed

  • the 'items/project_roles' response's property type/format changed from 'array'/'' to 'object'/'' for status '200'

POST: /api/v2/pub/employees

🚧

Changed

  • added the new request property 'project_roles/additional_project_role_ids'
  • added the new request property 'project_roles/primary_project_role_id'
  • the 'project_roles' request property type/format changed from 'array'/'' to 'object'/''

GET: /api/v2/pub/employees/{id}

👍

Added

  • added the property 'project_roles/additional_project_role_ids' to the response with the '200' status
  • added the property 'project_roles/primary_project_role_id' to the response with the '200' status
🚧

Changed

  • the 'project_roles' response's property type/format changed from 'array'/'' to 'object'/'' for status '200'

PATCH: /api/v2/pub/employees/{id}

🚧

Changed

  • added the new request property 'project_roles/additional_project_role_ids'
  • added the new request property 'project_roles/primary_project_role_id'
  • the 'project_roles' request property type/format changed from 'array'/'' to 'object'/''

POST: /api/v2/pub/accounting-companies

🚧

Changed

  • added the new request property 'address/address_2'
  • added the new request property 'address/gross_area'
  • added the new request property 'address/rentable_area'
  • added the new request property 'address/usable_area'
  • added the new required request property 'address/address_1'
  • added the new required request property 'address/city'
  • added the new required request property 'address/measurement_unit'
  • added the new required request property 'address/measurement_value'
  • added the new required request property 'address/zip'
  • the request property 'address/admin_area_1' became not nullable
  • the request property 'address/country_code' became not nullable
  • the request property 'address/admin_area_1' became required
  • the request property 'address/country_code' became required
❗️

Removed

  • removed the request property 'address/address_line_1'
  • removed the request property 'address/address_line_2'
  • removed the request property 'address/locality'
  • removed the request property 'address/postal_code'

PATCH: /api/v2/pub/accounting-companies/{id}

🚧

Changed

  • added the new request property 'address/address_2'
  • added the new request property 'address/gross_area'
  • added the new request property 'address/rentable_area'
  • added the new request property 'address/usable_area'
  • added the new required request property 'address/address_1'
  • added the new required request property 'address/city'
  • added the new required request property 'address/measurement_unit'
  • added the new required request property 'address/measurement_value'
  • added the new required request property 'address/zip'
  • the request property 'address/admin_area_1' became not nullable
  • the request property 'address/country_code' became not nullable
  • the request property 'address/admin_area_1' became required
  • the request property 'address/country_code' became required
❗️

Removed

  • removed the request property 'address/address_line_1'
  • removed the request property 'address/address_line_2'
  • removed the request property 'address/locality'
  • removed the request property 'address/postal_code'

GET: /api/v2/pub/employees

👍

Added

  • added the property 'items/project_roles/additional_project_role_ids' to the response with the '200' status
  • added the property 'items/project_roles/primary_project_role_id' to the response with the '200' status
🚧

Changed

  • the 'items/project_roles' response's property type/format changed from 'array'/'' to 'object'/'' for status '200'

GET: /api/v2/pub/employees/{id}

👍

Added

  • added the property 'project_roles/additional_project_role_ids' to the response with the '200' status
  • added the property 'project_roles/primary_project_role_id' to the response with the '200' status
🚧

Changed

  • the 'project_roles' response's property type/format changed from 'array'/'' to 'object'/'' for status '200'

PATCH: /api/v2/pub/accounting-business-units/{id}

🚧

Changed

  • the request property 'name' became not nullable

PATCH: /api/v2/pub/accounting-cost-codes/{id}

🚧

Changed

  • the request property 'code' became not nullable
  • the request property 'name' became not nullable

PATCH: /api/v2/pub/accounting-cost-types/{id}

🚧

Changed

  • the request property 'name' became not nullable

PATCH: /api/v2/pub/accounting-entities/{id}

🚧

Changed

  • the request property 'name' became not nullable

PATCH: /api/v2/pub/accounting-projects/{id}

🚧

Changed

  • the request property 'name' became not nullable

POST: /api/v2/pub/budget-cost-codes

🚧

Changed

  • the 'description' request property's maxLength was increased from '255' to '500'

GET: /api/v2/pub/contracted-invoices

👍

Added

  • added the new enum value 'fully_approved' to the 'query' request parameter 'status'
  • added the new 'fully_approved' enum value to the 'items/status' response property for the response status '200'

GET: /api/v2/pub/contracted-invoices/{id}

👍

Added

  • added the new 'fully_approved' enum value to the '/items/status' response property for the response status '200'

GET: /api/v2/pub/non-contracted-invoices

👍

Added

  • added the new enum value 'fully_approved' to the 'query' request parameter 'status'
  • added the new 'fully_approved' enum value to the 'items/status' response property for the response status '200'

GET: /api/v2/pub/non-contracted-invoices/{id}

👍

Added

  • added the new 'fully_approved' enum value to the '/items/status' response property for the response status '200'

GET: /api/v2/pub/projects

👍

Added

  • added the property 'items/unit_type' to the response with the '200' status

GET: /api/v2/pub/projects/{id}

👍

Added

  • added the property 'unit_type' to the response with the '200' status

GET: /api/v2/pub/submittals

👍

Added

  • added the required property 'items/document_ids' to the response with the '200' status

GET: /api/v2/pub/submittals/{id}

👍

Added

  • added the required property 'document_ids' to the response with the '200' status

GET: /api/v2/pub/files

👍

Added

  • added the new enum value 'specification' to the 'query' request parameter 'resource_type'
  • added the new enum value 'specification-supporting' to the 'query' request parameter 'resource_type'
  • added the new 'specification' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'specification-supporting' enum value to the 'items/resource_type' response property for the response status '200'

GET: /api/v2/pub/files/{id}

👍

Added

  • added the new 'specification' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'specification-supporting' enum value to the 'resource_type' response property for the response status '200'

POST: /api/v2/pub/accounting-companies

❗️

Removed

  • removed the request property 'email'
  • removed the request property 'phone'

GET: /api/v2/pub/accounting-companies

❗️

Removed

  • removed the required property 'items/email' from the response with the '200' status
  • removed the required property 'items/phone' from the response with the '200' status

PATCH: /api/v2/pub/accounting-companies/{id}

❗️

Removed

  • removed the request property 'email'
  • removed the request property 'phone'

GET: /api/v2/pub/accounting-companies/{id}

❗️

Removed

  • removed the required property 'email' from the response with the '200' status
  • removed the required property 'phone' from the response with the '200' status

GET: /api/v2/pub/contracted-invoices

👍

Added

  • added the property 'items/document_ids' to the response with the '200' status

GET: /api/v2/pub/contracted-invoices/{id}

👍

Added

  • added the property '/items/document_ids' to the response with the '200' status

GET: /api/v2/pub/contracts

👍

Added

  • added the property 'items/wbs1' to the response with the '200' status
🚧

Changed

  • added the new 'query' request parameter 'include_wbs'

GET: /api/v2/pub/files

👍

Added

  • added the new enum value 'bid-drawing' to the 'query' request parameter 'resource_type'
  • added the new enum value 'bid-insurance-requirement' to the 'query' request parameter 'resource_type'
  • added the new enum value 'bid-specification' to the 'query' request parameter 'resource_type'
  • added the new enum value 'proposal-header-cover-photo' to the 'query' request parameter 'resource_type'
  • added the new enum value 'proposal-question-answer' to the 'query' request parameter 'resource_type'
  • added the new enum value 'proposal-service-assumption' to the 'query' request parameter 'resource_type'
  • added the new enum value 'proposal-supporting' to the 'query' request parameter 'resource_type'
  • added the new enum value 'proposal-term-and-condition' to the 'query' request parameter 'resource_type'
  • added the new 'bid-drawing' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'bid-insurance-requirement' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'bid-specification' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'proposal-header-cover-photo' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'proposal-question-answer' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'proposal-service-assumption' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'proposal-supporting' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'proposal-term-and-condition' enum value to the 'items/resource_type' response property for the response status '200'
❗️

Removed

  • removed the 'drawing' enum value from the 'items/resource_type' response property for the response status '200'
  • removed the 'specification' enum value from the 'items/resource_type' response property for the response status '200'
  • removed the enum value 'drawing' from the 'query' request parameter 'resource_type'
  • removed the enum value 'specification' from the 'query' request parameter 'resource_type'

GET: /api/v2/pub/files/{id}

👍

Added

  • added the new 'bid-drawing' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'bid-insurance-requirement' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'bid-specification' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'proposal-header-cover-photo' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'proposal-question-answer' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'proposal-service-assumption' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'proposal-supporting' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'proposal-term-and-condition' enum value to the 'resource_type' response property for the response status '200'
❗️

Removed

  • removed the 'drawing' enum value from the 'resource_type' response property for the response status '200'
  • removed the 'specification' enum value from the 'resource_type' response property for the response status '200'

GET: /api/v2/pub/non-contracted-invoices

👍

Added

  • added the property 'items/document_ids' to the response with the '200' status

GET: /api/v2/pub/non-contracted-invoices/{id}

👍

Added

  • added the property '/items/document_ids' to the response with the '200' status

GET: /api/v2/pub/projects

👍

Added

  • added the new 'bad' enum value to the 'items/scheduled_health' response property for the response status '200'
  • added the new 'good' enum value to the 'items/scheduled_health' response property for the response status '200'
  • added the new 'ok' enum value to the 'items/scheduled_health' response property for the response status '200'
  • added the new 'please-review' enum value to the 'items/risk' response property for the response status '200'
  • added the new 'urgent' enum value to the 'items/risk' response property for the response status '200'
  • added the new 'well-done' enum value to the 'items/risk' response property for the response status '200'
🚧

Changed

  • added the new 'query' request parameter 'generated_id'

GET: /api/v2/pub/projects/{id}

👍

Added

  • added the new 'bad' enum value to the 'scheduled_health' response property for the response status '200'
  • added the new 'good' enum value to the 'scheduled_health' response property for the response status '200'
  • added the new 'ok' enum value to the 'scheduled_health' response property for the response status '200'
  • added the new 'please-review' enum value to the 'risk' response property for the response status '200'
  • added the new 'urgent' enum value to the 'risk' response property for the response status '200'
  • added the new 'well-done' enum value to the 'risk' response property for the response status '200'

GET: /api/v2/pub/budget-approval-phases

👍

Added

  • endpoint added

GET: /api/v2/pub/budgets/{id}/approval-phases

❗️

Removed

  • endpoint removed


PATCH: /api/v2/pub/accounting-companies/{id}

🚧

Changed

  • the request property 'company_name' became not nullable

GET: /api/v2/pub/budget-cost-codes

👍

Added

  • added the property 'items/flat_value' to the response with the '200' status

POST: /api/v2/pub/budget-cost-codes

🚧

Changed

  • added the new request property 'flat_value'

GET: /api/v2/pub/budget-cost-codes/{id}

👍

Added

  • added the required property 'flat_value' to the response with the '200' status

PATCH: /api/v2/pub/budget-cost-codes/{id}

🚧

Changed

  • added the new request property 'flat_value'

POST: /api/v2/pub/contract-changes

🚧

Changed

  • added the new request property 'wbs1/items/site_id'

POST: /api/v2/pub/contracts

🚧

Changed

  • added the new request property 'wbs1/items/site_id'

GET: /api/v2/pub/files

👍

Added

  • added the new enum value 'contract-lien-waiver' to the 'query' request parameter 'resource_type'
  • added the new enum value 'drawing-set-supporting' to the 'query' request parameter 'resource_type'
  • added the new 'contract-lien-waiver' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'drawing-set-supporting' enum value to the 'items/resource_type' response property for the response status '200'

GET: /api/v2/pub/files/{id}

👍

Added

  • added the new 'contract-lien-waiver' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'drawing-set-supporting' enum value to the 'resource_type' response property for the response status '200'

GET: /api/v2/pub/non-contracted-invoices

👍

Added

  • added the property 'items/accounting_company_id' to the response with the '200' status

GET: /api/v2/pub/non-contracted-invoices/{id}

👍

Added

  • added the property '/items/accounting_company_id' to the response with the '200' status

GET: /api/v2/pub/budget-cost-code-categories/{id}

👍

Added

  • endpoint added

GET: /api/v2/pub/budgets/{id}/approval-phases

🚧

Changed

  • added the new 'query' request parameter 'updated_after'
  • added the new 'query' request parameter 'updated_before'

GET: /api/v2/pub/files

👍

Added

  • added the new enum value 'drive' to the 'query' request parameter 'resource_type'
  • added the new enum value 'survey' to the 'query' request parameter 'resource_scope'
  • added the new enum value 'survey-question-answer' to the 'query' request parameter 'resource_type'
  • added the new 'drive' enum value to the 'items/resource_type' response property for the response status '200'
  • added the new 'survey' enum value to the 'items/resource_scope' response property for the response status '200'
  • added the new 'survey-question-answer' enum value to the 'items/resource_type' response property for the response status '200'

GET: /api/v2/pub/files/{id}

👍

Added

  • added the new 'drive' enum value to the 'resource_type' response property for the response status '200'
  • added the new 'survey' enum value to the 'resource_scope' response property for the response status '200'
  • added the new 'survey-question-answer' enum value to the 'resource_type' response property for the response status '200'

POST: /api/v2/pub/non-contracted-invoices

🚧

Changed

  • the request property 'items/site_id' became nullable
  • the request property 'items/site_id' became optional

PATCH: /api/v2/pub/non-contracted-invoices/{id}

🚧

Changed

  • the request property 'items/site_id' became nullable
  • the request property 'items/site_id' became optional

GET: /api/v2/pub/projects-sites

🚧

Changed

  • the response property 'items/building_id' became nullable for the status '200'

GET: /api/v2/pub/projects-sites/{id}

🚧

Changed

  • the response property 'building_id' became nullable for the status '200'

POST: /api/v2/pub/budget-cost-code-categories

🚧

Changed

  • added the new request property 'budget_phase_id'
  • added the new request property 'parent_id'
❗️

Removed

  • removed the request property 'project_phase_id'

POST: /api/v2/pub/budget-cost-code-categories/bulk

👍

Added

  • endpoint added

PATCH: /api/v2/pub/budget-cost-code-categories/{id}

🚧

Changed

  • added the new request property 'budget_phase_id'
❗️

Removed

  • removed the request property 'project_phase_id'

POST: /api/v2/pub/budget-cost-codes

🚧

Changed

  • the 'code' request property's maxLength was increased from '12' to '25'

POST: /api/v2/pub/budget-cost-codes/bulk

👍

Added

  • endpoint added

PATCH: /api/v2/pub/budget-cost-codes/{id}

🚧

Changed

  • the 'code' request property's maxLength was increased from '12' to '25'

POST: /api/v2/pub/budget-phases/bulk

👍

Added

  • endpoint added

GET: /api/v2/pub/budget-phases/{id}

👍

Added

  • endpoint added

GET: /api/v2/pub/budgets/{id}/approval-phases

👍

Added

  • endpoint added

GET: /api/v2/pub/files

👍

Added

  • added the new enum value 'daily-report-work-log' to the 'query' request parameter 'resource_type'
  • added the new 'daily-report-work-log' enum value to the 'items/resource_type' response property for the response status '200'

GET: /api/v2/pub/files/{id}

👍

Added

  • added the new 'daily-report-work-log' enum value to the 'resource_type' response property for the response status '200'

GET: /api/v2/pub/project-directories

🚧

Changed

  • added the new 'query' request parameter 'project_ids'

POST: /api/v2/pub/projects

🚧

Changed

  • the request property 'client_contact_id' became nullable
  • the request property 'client_contact_id' became optional

GET: /api/v2/pub/rfis

👍

Added

  • endpoint added

GET: /api/v2/pub/rfis/{id}

👍

Added

  • added the required property 'project_id' to the response with the '200' status