GET: /api/v2/pub/approvable-resources

πŸ‘

Added

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

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

πŸ‘

Added

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

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

πŸ‘

Added

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

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

πŸ‘

Added

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

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

πŸ‘

Added

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

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

πŸ‘

Added

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

GET: /api/v2/pub/budgets

πŸ‘

Added

  • added the property 'items/categories/items/order' to the response with the '200' status
  • added the property 'items/phases/items/order' to the response with the '200' status

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

πŸ‘

Added

  • added the property 'categories/items/order' to the response with the '200' status
  • added the property 'phases/items/order' to the response with the '200' status

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

❗️

Removed

  • removed the 'project-executive' enum value from the 'items/workspaces/items/contacts/items/role' response property for the response status '200'
  • removed the 'project-manager' enum value from the 'items/workspaces/items/contacts/items/role' response property for the response status '200'

GET: /api/v2/pub/submittal-types/{id}

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/payment-terms

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/payment-terms/{id}

πŸ‘

Added

  • endpoint added

POST: /api/v2/pub/submittals

πŸ‘

Added

  • endpoint added


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

πŸ‘

Added

  • added the new enum value 'received_by_accounting' to the 'query' request parameter 'status'
  • added the property 'items/items/items/retention_released_value' to the response with the '200' status
  • added the property 'items/items/items/retention_withheld_this_period_value' to the response with the '200' status
  • added the new 'received_by_accounting' enum value to the 'items/status' response property for the response status '200'

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

πŸ‘

Added

  • added the property '/items/items/items/retention_released_value' to the response with the '200' status
  • added the property '/items/items/items/retention_withheld_this_period_value' to the response with the '200' status
  • added the new 'received_by_accounting' enum value to the '/items/status' response property for the response status '200'

PUT: /api/v2/pub/contracted-invoices/{id}/receive-by-accounting

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/files

πŸ‘

Added

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

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

πŸ‘

Added

  • added the new 'invoice-ocr' enum value to the 'resource_type' response property for the response status '200'

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

πŸ‘

Added

  • added the new enum value 'received_by_accounting' to the 'query' request parameter 'status'
  • added the property 'items/items/items/retention_released_value' to the response with the '200' status
  • added the property 'items/items/items/retention_withheld_this_period_value' to the response with the '200' status
  • added the new 'received_by_accounting' enum value to the 'items/status' response property for the response status '200'

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

πŸ‘

Added

  • added the property '/items/items/items/retention_released_value' to the response with the '200' status
  • added the property '/items/items/items/retention_withheld_this_period_value' to the response with the '200' status
  • added the new 'received_by_accounting' enum value to the '/items/status' response property for the response status '200'

PUT: /api/v2/pub/non-contracted-invoices/{id}/receive-by-accounting

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/projects

πŸ‘

Added

  • added the new 'bad' enum value to the 'items/health' response property for the response status '200'
  • added the new 'good' enum value to the 'items/health' response property for the response status '200'
  • added the new 'ok' enum value to the 'items/health' response property for the response status '200'
❗️

Removed

  • removed the property 'items/gross_area' from the response with the '200' status
  • removed the property 'items/rentable_area' from the response with the '200' status
  • removed the property 'items/unit_of_measure' from the response with the '200' status
  • removed the property 'items/usable_area' from the response with the '200' status

POST: /api/v2/pub/projects

❗️

Removed

  • removed the request property 'gross_area'
  • removed the request property 'rentable_area'
  • removed the request property 'unit_of_measure'
  • removed the request property 'usable_area'

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

πŸ‘

Added

  • added the new 'bad' enum value to the 'health' response property for the response status '200'
  • added the new 'good' enum value to the 'health' response property for the response status '200'
  • added the new 'ok' enum value to the 'health' response property for the response status '200'
❗️

Removed

  • removed the property 'gross_area' from the response with the '200' status
  • removed the property 'rentable_area' from the response with the '200' status
  • removed the property 'unit_of_measure' from the response with the '200' status
  • removed the property 'usable_area' from the response with the '200' status

PUT: /api/v2/pub/projects/{id}/assign-employee-project-role

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/submittal-packages

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/submittal-packages/{id}

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/approvable-resources

πŸ‘

Added

  • endpoint added

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

🚧

Changed

  • added the new request property 'payment_term_id'

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

πŸ‘

Added

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

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

🚧

Changed

  • added the new request property 'payment_term_id'

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

πŸ‘

Added

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

PUT: /api/v2/pub/non-contracted-invoices/{id}/reject-by-accounting

πŸ‘

Added

  • added required request body

GET: /api/v2/pub/punch-items

πŸ‘

Added

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

Changed

  • added the new required 'query' request parameter 'site_ids'

POST: /api/v2/pub/punch-items

🚧

Changed

  • added the new required request property 'site_ids'

GET: /api/v2/pub/punch-items/{id}

πŸ‘

Added

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

GET: /api/v2/pub/rfis

πŸ‘

Added

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

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

πŸ‘

Added

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

POST: /api/v2/pub/submittal-packages

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/account-types

πŸ‘

Added

  • added the property 'items/permissions/resources/financials_and_rfps' to the response with the '200' status
  • added the property 'items/permissions/resources/portfolios_buildings_sites' to the response with the '200' status
  • added the property 'items/permissions/resources/project_financials' to the response with the '200' status
  • added the property 'items/permissions/resources/projects/can_manage_users_project_role_on_project_directory' to the response with the '200' status
  • added the property 'items/permissions/resources/projects/can_override_approvals' to the response with the '200' status
  • added the property 'items/permissions/resources/projects/can_start_and_copy_projects' to the response with the '200' status
  • added the property 'items/permissions/resources/workspace_configuration' to the response with the '200' status

GET: /api/v2/pub/account-types/{id}

πŸ‘

Added

  • added the property 'permissions/resources/financials_and_rfps' to the response with the '200' status
  • added the property 'permissions/resources/portfolios_buildings_sites' to the response with the '200' status
  • added the property 'permissions/resources/project_financials' to the response with the '200' status
  • added the property 'permissions/resources/projects/can_manage_users_project_role_on_project_directory' to the response with the '200' status
  • added the property 'permissions/resources/projects/can_override_approvals' to the response with the '200' status
  • added the property 'permissions/resources/projects/can_start_and_copy_projects' to the response with the '200' status
  • added the property 'permissions/resources/workspace_configuration' to the response with the '200' status

PATCH: /api/v2/pub/account-types/{id}

🚧

Changed

  • added the new request property 'permissions/resources/financials_and_rfps'
  • added the new request property 'permissions/resources/portfolios_buildings_sites'
  • added the new request property 'permissions/resources/project_financials'
  • added the new request property 'permissions/resources/projects/can_manage_users_project_role_on_project_directory'
  • added the new request property 'permissions/resources/projects/can_override_approvals'
  • added the new request property 'permissions/resources/projects/can_start_and_copy_projects'
  • added the new request property 'permissions/resources/workspace_configuration'

POST: /api/v2/pub/employees

🚧

Changed

  • the request property 'account_type_id' became required
❗️

Removed

  • removed the request property 'account_type'

GET: /api/v2/pub/employees

🚧

Changed

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

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

❗️

Removed

  • removed the request property 'account_type'

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

🚧

Changed

  • the response property 'project_roles/primary_project_role_id' became nullable for the status '200'

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

πŸ‘

Added

  • endpoint added

GET: /api/v2/pub/projects

πŸ‘

Added

  • added the property 'items/employees/items/primary_contact_id' to the response with the '200' status
  • added the property 'items/employees/items/secondary_contact_id' to the response with the '200' status
🚧

Changed

  • the response property 'items/employees/items/executive_id' became nullable for the status '200'
  • the response property 'items/employees/items/manager_id' became nullable for the status '200'

POST: /api/v2/pub/projects

❗️

Removed

  • removed the request property 'executive_id'
  • removed the request property 'manager_id'

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

πŸ‘

Added

  • added the property 'employees/items/primary_contact_id' to the response with the '200' status
  • added the property 'employees/items/secondary_contact_id' to the response with the '200' status
🚧

Changed

  • the response property 'employees/items/executive_id' became nullable for the status '200'
  • the response property 'employees/items/manager_id' became nullable for the status '200'

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

❗️

Removed

  • removed the request property 'executive_id'
  • removed the request property 'manager_id'

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

πŸ‘

Added

  • endpoint added

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

πŸ‘

Added

  • endpoint added

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

🚧

Changed

  • added the new request property 'status'

GET: /api/v2/pub/shared-custom-attributes

πŸ‘

Added

  • endpoint added

POST: /api/v2/pub/company-office-locations

🚧

Changed

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

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'/''