openapi: 3.0.0
info:
title: Project and Resource Management
description: >
Project and Resource Management enables services companies to automate many
of the functions of financial project management.
version: '1.0'
servers:
- url: https://api.intacct.com/ia/api/v1-beta2
description: Open Beta
tags:
- name: Projects
description: >-
Use projects to manage, track, and report on work performed by or for your
company.
Please be aware that this object is currently
"Uncertified" in our open beta, signifying that it has not undergone the
complete review process and the design may change during ongoing
refinement. Users are advised to exercise discretion in using this object
and are encouraged to provide feedback.
x-displayName: Projects
- name: project groups
description: >-
A project group is a specified set of projectes, or a set of projectes
that meet certain criteria. You can use groups to filter or display
information in multiple ways, for instance by showing data from only
certain projectes.Please be aware that this object is
currently "Uncertified" in our open beta, signifying that it has not
undergone the complete review process and the design may change during
ongoing refinement. Users are advised to exercise discretion in using this
object and are encouraged to provide feedback.
x-displayName: project groups
- name: Project resources
description: >-
Project resource description -- explain what it's for and how it's
used.Please be aware that this object is currently
"Uncertified" in our open beta, signifying that it has not undergone the
complete review process and the design may change during ongoing
refinement. Users are advised to exercise discretion in using this object
and are encouraged to provide feedback.
x-displayName: Project resources
- name: Project statuses
description: >-
Project statuses let you track the progress of projects through different
states. You can also disable (prevent) certain types of transactions from
occurring in specific states, such as not allowing timesheet entries when
a project is in a "Not Started" state.Please be aware
that this object is currently "Uncertified" in our open beta, signifying
that it has not undergone the complete review process and the design may
change during ongoing refinement. Users are advised to exercise discretion
in using this object and are encouraged to provide feedback.
x-displayName: Project statuses
- name: Project types
description: >-
Project types let you group projects into categories for reporting (such
as, consulting, internal, or training). After defining project types, you
can set each project to one of the types and then group and query based on
the type.Please be aware that this object is currently
"Uncertified" in our open beta, signifying that it has not undergone the
complete review process and the design may change during ongoing
refinement. Users are advised to exercise discretion in using this object
and are encouraged to provide feedback.
x-displayName: Project types
- name: Tasks
description: >-
A unit of work to be performed for a project. Use tasks to:
- Track project work by task and assigned resources.
- Identify which tasks are billable to the customer.
- Enter estimated and planned hours, track percent completed as the task
progresses, and create recurring schedules.
- Create task dependencies so one task doesn't start until another
finishes.
- Set other optional information, such as the priority or status of the
task.Please be aware that this object is currently
"Uncertified" in our open beta, signifying that it has not undergone the
complete review process and the design may change during ongoing
refinement. Users are advised to exercise discretion in using this object
and are encouraged to provide feedback.
x-displayName: Tasks
- name: Task resources
description: >-
An employee who works on a project task is considered a task resource.Please be aware that this object is currently "Uncertified"
in our open beta, signifying that it has not undergone the complete review
process and the design may change during ongoing refinement. Users are
advised to exercise discretion in using this object and are encouraged to
provide feedback.
x-displayName: Task resources
- name: Employee rates
description: >-
Employee rate provides information about compensation by date. The rate
can be either hourly or annual.Please be aware that
this object is currently "Uncertified" in our open beta, signifying that
it has not undergone the complete review process and the design may change
during ongoing refinement. Users are advised to exercise discretion in
using this object and are encouraged to provide feedback.
x-displayName: Employee rates
- name: Position skills
description: >-
Position skill description -- explain what it's for and how it's used.Please be aware that this object is currently "Uncertified"
in our open beta, signifying that it has not undergone the complete review
process and the design may change during ongoing refinement. Users are
advised to exercise discretion in using this object and are encouraged to
provide feedback.
x-displayName: Position skills
- name: Project billing templates
description: >-
Optimize project billing with our easy-to-use project billing
template.Please be aware that this object is currently
"Uncertified" in our open beta, signifying that it has not undergone the
complete review process and the design may change during ongoing
refinement. Users are advised to exercise discretion in using this object
and are encouraged to provide feedback.
x-displayName: Project billing templates
paths:
/objects/projects/project:
get:
summary: List projects
description: >+
Returns up to 100 object references from the collection with a key, ID,
and link for each project. This operation is mostly for use in testing;
use query to find objects that meet certain criteria and to specify
properties that are returned.
Permissions and other requirements
Subscription | Projects |
User type | Business, Employee, Project
Manager |
Permissions | List Projects |
tags:
- Projects
operationId: list-projects-project
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of project objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of projects:
value:
ia::result:
- key: '100'
id: P-040
href: /objects/projects/project/100
- key: '101'
id: P-050
href: /objects/projects/project/101
- key: '102'
id: P-060
href: /objects/projects/project/102
ia::meta:
totalCount: 3
start: 1
pageSize: 5
next: 0
previous: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a project
description: >+
Creates a new project.
`id` is required if document sequencing is not enabled for projects in
the company. If document sequencing is enabled, you can provide an `id`
value to use instead of the document sequence value.
Permissions and other requirements
Subscription | Projects |
User type | Business, Project Manager |
Permissions | Add Projects |
tags:
- Projects
operationId: create-projects-project
requestBody:
description: Project to be created
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project'
- $ref: '#/components/schemas/projects-projectRequiredProperties'
examples:
Create a project:
value:
id: P-0045
name: Implementation Project
description: Software Implementation Project
projectCurrency: USD
category: contract
projectStatus:
key: '1'
startDate: '2021-01-23'
EndDate: '2021-01-23'
budget:
billingAmount: '10000'
budgetedDuration: '250'
budgetedCost: '10000'
glBudget:
key: '5'
contractAmount: '15000'
progress:
estimatedDuration: '200'
actualDuration: '183'
approvedDuration: '175'
remainingDuration: '8'
percentComplete: '35'
observedPercentComplete: '50'
billingType: timeAndMaterial
salesOrderNumber: SO-5478
purchaseOrderNumber: PO-7829
purchaseOrderAmount: '4500'
purchaseQuoteNumber: '1453'
salesforceKey: '1'
documentNumber: '1453'
parent:
key: '10'
id: P-0040
name: NET-XML30-2
invoiceWithParent: false
customer:
key: '13'
salesContact:
key: '10'
projectType:
key: '3'
manager:
key: '10'
department:
key: '10'
location:
key: '1'
paymentTerm:
key: '10'
customerUser:
key: '1'
class:
key: '1'
userRestrictions: systemDefault
isBillableEmployeeExpense: false
isBillablePurchasingAPExpense: false
ratesAndPricing:
laborPricing: billingRate
laborMarkup: '10'
pricing: billingRate
expenseMarkup: '10'
DefaultRate: '12'
contacts:
primary:
key: '1'
billTo:
key: '2'
shipTo:
key: '2'
invoiceMessage: Invoice for project
invoiceCurrency: USD
billingOverMax: preventBilling
excludeExpenses: false
contract:
key: '1'
attachment:
key: '1'
rootProject:
key: '12'
grant:
aln: 10.555
fundedProjectName: Undergraduate Programs
agency: US government
payer: federal
otherId: Other
assistanceType: cash
revenueRestriction: time
restrictionExpiry: '1'
restrictionExpirationDate: '2021-01-23'
isTimeSatisfactionScheduled: false
wipScheduleProject:
key: '10'
id: P-0040
name: NET-XML30-2
excludeFromWIPSchedule: false
status: active
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New project
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New project created:
value:
ia::result:
key: '100'
id: P-0045
href: /objects/projects/project/100
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project/{key}:
parameters:
- name: key
description: System-assigned key for the project.
in: path
required: true
example: '635'
schema:
type: string
get:
summary: Get a project
description: >+
Returns detailed information for a specified project.
Permissions and other requirements
Subscription | Projects |
User type | Business, Employee, Project
Manager |
Permissions | View Projects |
tags:
- Projects
operationId: get-projects-project-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the project
properties:
ia::result:
$ref: '#/components/schemas/projects-project'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Project details:
value:
ia::result:
key: '83'
id: P-0045
name: Implementation Project
description: Software Implementation Project
projectCurrency: USD
category: contract
projectStatus:
key: '1'
id: In Progress
disableGenerateInvoice: false
disablePurchasingAPEntry: false
disableExpenseEntry: false
disableTimesheetEntry: false
startDate: '2021-01-23'
endDate: '2021-01-23'
budget:
billingAmount: '10000'
budgetedDuration: '250'
budgetedCost: '10000'
glBudget:
key: '5'
id: KPI Budgets
href: /objects/general-ledger/budget/5
contractAmount: '15000'
progress:
estimatedDuration: '200'
actualDuration: '183'
approvedDuration: '175'
remainingDuration: '8'
percentComplete: '35'
observedPercentComplete: '50'
billingType: timeAndMaterial
salesOrderNumber: SO-5478
purchaseOrderNumber: PO-7829
purchaseOrderAmount: '4500'
purchaseQuoteNumber: '1453'
salesforceKey: '1'
documentNumber: '1453'
parent:
key: '10'
id: P-0040
name: NET-XML30-2
invoiceWithParent: false
customer:
key: '13'
id: '113'
name: Software company
salesContact:
key: '10'
id: '100'
projectType:
key: '3'
id: Internal
manager:
key: '10'
id: E10
department:
key: '10'
id: '20'
name: Sales
location:
key: '1'
id: '1'
name: US
paymentTerm:
key: '10'
id: '10'
customerUser:
key: '1'
id: Admin
class:
key: '1'
id: '10'
name: Construction
userRestrictions: systemDefault
isBillableEmployeeExpense: false
isBillablePurchasingAPExpense: false
ratesAndPricing:
laborPricing: billingRate
laborMarkup: '10'
pricing: billingRate
expenseMarkup: '10'
defaultRate: '12'
contacts:
primary:
key: '1'
id: JSmith
href: /objects/company-config/contact/1
billTo:
key: '2'
id: ABrown
href: /objects/company-config/contact/2
shipTo:
key: '2'
id: ABrown
href: /objects/company-config/contact/2
invoiceMessage: Invoice for project
invoiceCurrency: USD
billingOverMax: preventBilling
excludeExpenses: false
contract:
key: '1'
id: CON-002
attachment:
key: '1'
id: '1'
href: /objects/company-config/attachment/100
rootProject:
key: '12'
id: '12'
name: PRJ-RT-0001
grant:
aln: 10.555
fundedProjectName: Undergraduate Programs
agency: US government
payer: federal
otherId: Other
assistanceType: cash
revenueRestriction: time
restrictionExpiry: '1'
restrictionExpirationDate: '2021-01-23'
isTimeSatisfactionScheduled: false
wipScheduleProject:
key: '10'
id: P-0040
name: NET-XML30-2
excludeFromWIPSchedule: false
status: active
multiEntityLocation:
key: '2'
id: '2'
name: US
href: /objects/company-config/location/2
audit:
createdDateTime: '2022-04-20T16:20:00Z'
modifiedDateTime: '2022-04-20T16:20:00Z'
createdBy: '1'
modifiedBy: '95'
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a project
description: >+
Updates an existing project by setting field values. Any fields not
provided remain unchanged.
Permissions and other requirements
Subscription | Projects |
User type | Business, Project Manager |
Permissions | Edit Projects |
tags:
- Projects
operationId: update-projects-project-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project'
- type: object
properties:
id:
readOnly: true
examples:
Updates a project:
value:
name: Implementation Project
description: Software Implementation Project
projectCurrency: USD
category: contract
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated project
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated project:
value:
ia::result:
key: '124'
id: P-0345
href: /objects/projects/project/124
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a project
description: >+
Deletes a project. You can only delete projects without posted
transactions. If posted transactions exist for the project, you can make
the project inactive but cannot delete it.
Permissions and other requirements
Subscription | Projects |
User type | Business, Project Manager |
Permissions | Delete Projects |
tags:
- Projects
operationId: delete-projects-project-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-group:
get:
summary: List project groups
description: >
Returns up to 100 project groups from the collection with a key, ID, and
link for each group. This operation is mostly for use in testing; use
the query service to find project groups that meet certain criteria and
specify the properties that are returned.
tags:
- project groups
operationId: list-projects-project-group
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of project-group objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of project group:
value:
ia::result:
- key: '1'
id: '1'
href: /objects/projects/project-group/1
- key: '3'
id: '3'
href: /objects/projects/project-group/3
- key: '5'
id: '5'
href: /objects/projects/project-group/5
ia::meta:
totalCount: 3
start: 1
pageSize: 100
next: null
previous: null
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a project group
description: Creates a new project group.
tags:
- project groups
operationId: create-projects-project-group
requestBody:
description: Creates a new project group.
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-group'
- $ref: '#/components/schemas/projects-project-groupRequiredProperties'
examples:
Creates a project group of type all:
value:
id: E 01
name: my top 01 project
description: my top 01 project
groupType: all
sortOrder: descending
sortField: PROJECTID
conditionType: and
memberFilter:
- FIELD: PROJECTID
OPERATOR: equals
VALUE: '8'
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New project group
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New project group of type all:
value:
ia::result:
key: '21'
id: E 01
href: /objects/projects/project-group/19
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-group/{key}:
parameters:
- name: key
description: system-assigned unique key for the project group.
in: path
required: true
schema:
type: string
get:
summary: Get a project group
description: Returns detailed information for a specified project group.
tags:
- project groups
operationId: get-projects-project-group-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the project-group
properties:
ia::result:
$ref: '#/components/schemas/projects-project-group'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the project Group:
value:
ia::result:
key: '1'
id: Top Projects
name: Top Level Projects
description: Top Level Projects
groupType: specific
audit:
createdDateTime: '2016-10-26T17:28:09Z'
modifiedDateTime: '2016-10-26T17:30:09Z'
createdBy: '1'
modifiedBy: '1'
maxMatches: '10'
sortField: PROJECTID
expression: (1 AND 2)
sortOrder: ascending
groupMembers:
- key: '1'
id: DIM - BTI
name: Dimensions - Berkeley Technology Inc
href: /objects/projects/project/23
status: active
sortOrder: '0'
- key: '2'
id: P-0045
name: Implementation Project
href: /objects/projects/project/24
status: active
sortOrder: '1'
href: /objects/projects/project-group/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a project group
description: >-
Updates an existing project group by setting field values. Any fields
not provided remain unchanged.
tags:
- project groups
operationId: update-projects-project-group-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-group'
- type: object
properties:
id:
readOnly: true
examples:
Updates a project group:
value:
description: My Top 001 project
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated Department group
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated project group:
value:
ia::result:
key: '7'
id: E 01
href: /objects/projects/project-group/7
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a project group
description: Deletes a project group.
tags:
- project groups
operationId: delete-projects-project-group-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-resource:
get:
summary: List project resources
description: Returns a collection with a key, ID, and link for each project resource.
tags:
- Project resources
operationId: list-projects-project-resource
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of project-resource objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of project resource:
value:
ia::result:
- key: '12345'
id: '12345'
href: /objects/projects/project-resource/12345
- key: '85'
id: EXP-00002
href: /objects/projects/employee-expense/85
- key: '60'
id: EXP-00003
href: /objects/projects/employee-expense/60
ia::meta:
totalCount: 3
start: 1
pageSize: 5
next: 0
previous: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a project resource
description: Creates a new project resource.
tags:
- Project resources
operationId: create-projects-project-resource
requestBody:
description: ''
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-resource'
- $ref: '#/components/schemas/projects-project-resourceRequiredProperties'
examples:
Creates a project resource:
value:
description: Hourly resource
startDate: '2023-04-01'
employee:
key: '244'
item:
key: '23'
pricing:
laborRate: 100
expenseRate: 110
apPurchasingRate: 120
project:
key: '23'
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New project-resource
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New project resource:
value:
ia::result:
key: '12345'
id: '12345'
href: /objects/projects/project-resource/12345
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-resource/{key}:
parameters:
- name: key
description: system-assigned unique key for the project resource.
in: path
required: true
schema:
type: string
get:
summary: Get a project resource
description: Returns detailed information for a particular project resource.
tags:
- Project resources
operationId: get-projects-project-resource-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the project-resource
properties:
ia::result:
$ref: '#/components/schemas/projects-project-resource'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the project resource:
value:
ia::result:
key: '23'
id: '23'
href: /objects/projects/project-resource/23
description: Hourly resource
startDate: '2023-04-01'
employee:
href: /objects/company-config/employee/23
key: '244'
id: jsmith
startDate: '2022-01-01'
endDate: '2023-01-01'
employeeContact:
key: '977'
id: John Smith
firstName: John
lastName: Smith
href: /objects/company-config/contact/977
item:
href: /objects/inventory-control/item/23
key: '23'
id: B002
name: Monitor-Acer
pricing:
laborPricingMethod: billingRate
laborRate: 100
expensePricingMethod: billingRate
expenseRate: 100
apPurchasingPricingMethod: costPlusFee
apPurchasingRate: 120
project:
href: /objects/projects/project/23
key: '23'
id: P-0045
name: Implementation Project
audit:
createdDateTime: '2022-04-20T16:20:00Z'
modifiedDateTime: '2022-04-20T16:20:00Z'
createdBy: '1'
modifiedBy: '95'
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a project resource
description: >-
Updates an existing project resource by setting field values. Any fields
not provided remain unchanged.
tags:
- Project resources
operationId: update-projects-project-resource-key
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/projects-project-resource'
examples:
Updates a project resource:
value:
description: Project resource
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated project-resource
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated project resource:
value:
ia::result:
key: '12345'
id: ID123
href: /objects/projects/project-resource/12345
ia::meta:
totalCount: 3
totalSuccess: 2
totalError: 1
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a project resource
description: Deletes a project resource.
tags:
- Project resources
operationId: delete-projects-project-resource-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-status:
get:
summary: List project statuses
description: >+
Returns up to 100 object references from the collection with a key, ID,
and link for each project status. This operation is mostly for use in
testing; use query to find objects that meet certain criteria and to
specify properties that are returned.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Employee, Project
Manager |
Permissions | List Project Status |
tags:
- Project statuses
operationId: list-projects-project-status
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of project statuses
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of project statuses:
value:
ia::result:
- key: '100'
id: In Progress
href: /objects/projects/project-status/100
- key: '101'
id: Completed
href: /objects/projects/project-status/101
- key: '102'
id: Started
href: /objects/projects/project-status/102
ia::meta:
totalCount: 3
start: 1
pageSize: 5
next: 0
previous: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a project status
description: >+
Creates a new project status.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Project Manager |
Permissions | Add Project Status |
tags:
- Project statuses
operationId: create-projects-project-status
requestBody:
description: Project status to create
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-status'
- $ref: '#/components/schemas/projects-project-statusRequiredProperties'
examples:
Creates a project status:
value:
id: In Progress
description: Current status
disableTimesheetEntry: false
disableExpenseEntry: false
disablePurchasingAPEntry: false
disableGenerateInvoice: false
status: active
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New project status
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New project status:
value:
ia::result:
key: '1'
id: In Progress
href: /objects/projects/project-status/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-status/{key}:
parameters:
- name: key
description: System-assigned key for the project status.
in: path
required: true
example: '1038'
schema:
type: string
get:
summary: Get a project status
description: >+
Returns detailed information for a specified project status.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Employee, Project
Manager |
Permissions | View Project Status |
tags:
- Project statuses
operationId: get-projects-project-status-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the project status
properties:
ia::result:
$ref: '#/components/schemas/projects-project-status'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Project status details:
value:
ia::result:
key: '1'
id: In Progress
description: In progress
disableTimesheetEntry: false
disableExpenseEntry: false
disablePurchasingAPEntry: false
disableGenerateInvoice: false
status: active
audit:
createdDateTime: '2022-04-01T16:20:00Z'
modifiedDateTime: '2022-04-01T16:20:00Z'
createdBy: '1'
modifiedBy: '95'
href: /objects/projects/project-status/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a project status
description: >+
Updates an existing project status by setting field values. Any fields
not provided remain unchanged.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Project Manager |
Permissions | Edit Project Status |
tags:
- Project statuses
operationId: update-projects-project-status-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-status'
- type: object
properties:
id:
readOnly: true
examples:
Disable timesheet entry:
value:
disableTimesheetEntry: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Project status updated
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated project status:
value:
ia::result:
key: '1'
id: In Progress
href: /objects/projects/project-status/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a project status
description: >+
Deletes a project status.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Project Manager |
Permissions | Delete Project Status |
tags:
- Project statuses
operationId: delete-projects-project-status-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-type:
get:
summary: List project types
description: >+
Returns up to 100 object references from the collection with a key, ID,
and link for each project type. This operation is mostly for use in
testing; use query to find objects that meet certain criteria and to
specify properties that are returned.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Employee, Project
Manager |
Permissions | List Project Types |
tags:
- Project types
operationId: list-projects-project-type
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of project types
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List project types:
value:
ia::result:
- key: '100'
id: Internal
href: /objects/projects/project-type/100
- key: '101'
id: External
href: /objects/projects/project-type/101
- key: '102'
id: Contract
href: /objects/projects/project-type/102
ia::meta:
totalCount: 3
start: 1
pageSize: 5
next: 0
previous: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a project type
description: >+
Creates a new project type.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Project Manager |
Permissions | Add Project Type |
tags:
- Project types
operationId: create-projects-project-type
requestBody:
description: project type to create
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-type'
- $ref: '#/components/schemas/projects-project-typeRequiredProperties'
examples:
Creates a project type:
value:
id: Internal
parent:
key: '12'
status: active
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New project type
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New project type:
value:
ia::result:
key: '1'
id: Internal
href: /objects/projects/project-type/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-type/{key}:
parameters:
- name: key
description: System-assigned key for the project type.
in: path
required: true
example: '956'
schema:
type: string
get:
summary: Get a project type
description: >+
Returns detailed information for a specified project type.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Employee, Project
Manager |
Permissions | View Project Type |
tags:
- Project types
operationId: get-projects-project-type-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the project type
properties:
ia::result:
$ref: '#/components/schemas/projects-project-type'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Project type details:
value:
ia::result:
key: '1'
id: Internal
parent:
key: '100'
id: Billable
href: /objects/projects/project-type/100
status: active
audit:
createdDateTime: '2022-04-01T16:20:00Z'
modifiedDateTime: '2022-04-01T16:20:00Z'
createdBy: '1'
modifiedBy: '95'
href: /objects/projects/project-type/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a project type
description: >+
Updates an existing project type by setting field values. Any fields not
provided remain unchanged.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Project Manager |
Permissions | Edit Project Type |
tags:
- Project types
operationId: update-projects-project-type-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-type'
- type: object
properties:
id:
readOnly: true
examples:
Set status to inactive:
value:
status: inactive
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Project type updated
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated project type:
value:
ia::result:
key: '1'
id: Internal
href: /objects/projects/project-type/1
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a project type
description: >+
Deletes a project type.
Permissions and other requirements
Subscription | Projects Basic Project Tracking
and General Ledger (enable the Projects dimension) |
User type | Business, Project Manager |
Permissions | Edit Project Type |
tags:
- Project types
operationId: delete-projects-project-type-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/task:
get:
summary: List tasks
description: >+
Returns up to 100 object references from the collection with a key, ID,
and link for each task. This operation is mostly for use in testing; use
query to find tasks that meet certain criteria and to specify properties
that are returned.
Permissions and other requirements
Subscription | Projects |
User type | Business, Employee, Project Manager,
Warehouse |
Permissions | List Tasks |
tags:
- Tasks
operationId: list-projects-task
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of task objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of tasks:
value:
ia::result:
- key: '1'
id: T-1
href: /objects/projects/task/1
- key: '2'
id: T-2
href: /objects/projects/task/2
- key: '3'
id: T-3
href: /objects/projects/task/3
ia::meta:
totalCount: 3
start: 1
pageSize: 3
next: 0
previous: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a task
description: |+
Creates a new project task.
Permissions and other requirements
Subscription | Projects |
User type | Business, Project Manager |
Permissions | Add Tasks |
tags:
- Tasks
operationId: create-projects-task
requestBody:
description: New task definition
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-task'
- $ref: '#/components/schemas/projects-taskRequiredProperties'
examples:
Creates a task:
value:
id: Task-1
name: General Overhead
project:
id: NET-XML30-1
status: planned
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New task
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New task:
value:
ia::result:
key: '6'
id: '6'
href: /objects/projects/task/6
ia::meta:
totalCount: 1
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/task/{key}:
parameters:
- name: key
description: System-assigned key for the task.
in: path
required: true
schema:
type: string
get:
summary: Get a task
description: >+
Returns detailed information for a specified task.
Permissions and other requirements
Subscription | Projects |
User type | Business, Employee, Project Manager,
Warehouse |
Permissions | View Tasks |
tags:
- Tasks
operationId: get-projects-task-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the task
properties:
ia::result:
$ref: '#/components/schemas/projects-task'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the task:
value:
ia::result:
key: '1'
id: T-1
parent:
key: '11'
id: T-11
name: Cabinet design
href: /objects/projects/task/11
name: Project Task
project:
key: '1'
id: NET-XML30-1
name: Created by XML 3.0
startDate: '2023-02-25'
endDate: '2023-04-25'
href: /objects/projects/project/56
customer:
key: '1'
id: '101'
name: Corley Energy
href: /objects/accounts-receivable/customer/41
productionUnits:
estimate: 1200
description: linear feet siding
item:
key: '311'
id: Project Item 1
name: Extension pack
href: /objects/inventory-control/item/311
planned:
startDate: '2023-02-25'
endDate: '2023-06-25'
actual:
startDate: '2023-02-25'
endDate: '2023-11-25'
duration:
planned: 100
estimated: 100
actual: 0
remaining: 0
approved: 0
plannedBillable: 0
estimatedBillable: 0
actualBillable: 0
approvedBillable: 0
percentComplete: 0.25
observerPercentComplete: 0.3
description: Task Description
isMilestone: false
isUtilized: false
isBillable: false
wbsCode: '1'
priority: 1
status: inProgress
timeType:
key: '2'
id: overtime
href: /objects/time/time-type/2
class:
key: '19'
id: DES
name: Design
href: /objects/company-config/class/19
audit:
createdDateTime: '2021-08-12T17:25:29Z'
modifiedDateTime: '2021-08-12T17:25:29Z'
createdBy: '1'
modifiedBy: '1'
dependentOn:
key: '1'
id: T-1
name: Design review
href: /objects/projects/task/1
root:
key: '1'
id: ID1
name: Task 1
href: /objects/projects/task/1
standardTask:
key: '1'
id: '1'
name: '1'
href: /objects/construction/standard-task/1
attachment:
id: '1'
href: /objects/projects/task/1
ia::meta:
totalCount: 1
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a task
description: >+
Updates an existing task by setting field values. Any fields not
provided remain unchanged.
Permissions and other requirements
Subscription | Projects |
User type | Business, Project Manager |
Permissions | Edit Tasks |
tags:
- Tasks
operationId: update-projects-task-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-task'
- type: object
properties:
id:
readOnly: true
project:
readOnly: true
examples:
Updates a task:
value:
status: completed
duration:
estimated: 27
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated task
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated task:
value:
ia::result:
key: '6'
id: T-6
href: /objects/projects/task/6
ia::meta:
totalCount: 1
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a task
description: |+
Deletes a task.
Permissions and other requirements
Subscription | Projects |
User type | Business, Project Manager |
Permissions | Delete Tasks |
tags:
- Tasks
operationId: delete-projects-task-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/task-resource:
get:
summary: List task resources
description: >-
Returns up to 100 object references from the collection with a key, ID,
and link for each task resource. This operation is mostly for use in
testing; use query to find task resources that meet certain criteria and
to specify properties that are returned.
tags:
- Task resources
operationId: list-projects-task-resource
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of task-resource objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of task resources:
value:
ia::result:
- key: '110'
id: '110'
href: /objects/projects/task-resource/110
- key: '2374'
id: '2374'
href: /objects/projects/task-resource/2374
- key: '33'
id: '33'
href: /objects/projects/task-resource/33
ia::meta:
totalCount: 3
start: 1
pageSize: 100
next: 0
previous: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a task resource
description: Creates a new task resource.
tags:
- Task resources
operationId: create-projects-task-resource
requestBody:
description: Task resource to create
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-task-resource'
- $ref: '#/components/schemas/projects-task-resourceRequiredProperties'
examples:
Creates a task resource:
value:
planned:
startDate: '2023-01-01'
endDate: '2023-06-30'
actual:
startDate: '2023-01-08'
endDate: '2023-04-01'
duration:
budget: 22
estimated: 20
actual: 17
approved: 18
remaining: 8
percentComplete: 50
description: Resource of task RR-27-Q5
isFullTime: true
isSoftBook: true
employee:
key: '23'
project:
id: Q-Field
task:
id: RR-27-Q5
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New task-resource
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New task resource:
value:
ia::result:
key: '40'
id: '40'
href: /objects/projects/task-resource/40
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/task-resource/{key}:
parameters:
- name: key
description: System-assigned unique key for the task resource.
in: path
required: true
example: '215'
schema:
type: string
get:
summary: Get a task resource
description: Returns detailed information for a specified task resource.
tags:
- Task resources
operationId: get-projects-task-resource-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the task-resource
properties:
ia::result:
$ref: '#/components/schemas/projects-task-resource'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the task resource:
value:
ia::result:
key: '23'
id: '23'
href: /objects/projects/task-resource/23
planned:
startDate: '2023-01-01'
endDate: '2023-06-30'
actual:
startDate: '2023-01-08'
endDate: '2023-04-01'
duration:
budget: 22
estimated: 20
actual: 17
approved: 18
remaining: 8
percentComplete: 50
description: Resource of task RR-27-Q5
isFullTime: true
isSoftBook: true
employee:
href: /objects/company-config/employee/23
key: '23'
id: jsmith
startDate: '2023-04-01'
endDate: '2024-04-01'
employeeContact:
key: '977'
id: John Smith
firstName: John
lastName: Smith
href: /objects/company-config/contact/977
project:
href: /objects/projects/project/23
key: '23'
id: Q-Field
name: Quantum Field Repair
task:
href: /objects/projects/task/23
key: '23'
id: RR-27-Q5
name: Adjust flux capacitor
isBillable: true
audit:
createdDateTime: '2022-04-20T16:20:00Z'
modifiedDateTime: '2022-04-20T16:20:00Z'
createdBy: '1'
modifiedBy: '95'
ia::meta:
totalCount: 3
totalSuccess: 2
totalError: 1
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a task resource
description: >-
Updates an existing task resource by setting field values. Any fields
not provided remain unchanged.
tags:
- Task resources
operationId: update-projects-task-resource-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-task-resource'
- type: object
properties:
project:
readOnly: true
task:
readOnly: true
examples:
Updates a task resource:
value:
description: Resource of task RR-27-Q5
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated task-resource
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Task resource updated:
value:
ia::result:
key: '40'
id: '40'
href: /objects/projects/task-resource/40
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a task resource
description: Deletes a task resource.
tags:
- Task resources
operationId: delete-projects-task-resource-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/company-config/employee-rate:
get:
summary: List employee rates
description: Returns a collection with a key, ID, and link for each employee rate.
tags:
- Employee rates
operationId: list-projects-employee-rate
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of employee-rate objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of employee rates:
value:
ia::result:
- key: '1'
id: '1'
href: /objects/company-config/employee-rate/1
- key: '3'
id: '3'
href: /objects/company-config/employee-rate/3
- key: '5'
id: '5'
href: /objects/company-config/employee-rate/5
ia::meta:
totalCount: 3
start: 1
pageSize: 100
next: null
previous: null
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/company-config/employee-rate/{key}:
parameters:
- name: key
description: system-assigned unique key for the employee rate.
in: path
required: true
schema:
type: string
get:
summary: Get a/an employee rate
description: Returns detailed information for a particular employee rate.
tags:
- Employee rates
operationId: get-projects-employee-rate-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the employee-rate
properties:
ia::result:
$ref: '#/components/schemas/company-config-employee-rate'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the employee rate:
value:
ia::result:
id: '111'
key: '111'
employee:
key: '1'
id: '1'
name: 1099 Int
href: /objects/company-config/employee/1
hourlyRate: '50001'
annualSalary: null
startDate: '2023-01-01'
endDate: '2023-12-31'
href: /objects/company-config/employee-rate/111
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete an employee rate record
description: Deletes an employee rate record
tags:
- Employee rates
operationId: delete-company-config-employee-rate-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/position-skill:
get:
summary: List position skills
description: Returns a collection with a key, ID, and link for each position skill.
tags:
- Position skills
operationId: list-projects-position-skill
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of position-skill objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of position skills: {}
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a position skill
description: Creates a new position skill.
tags:
- Position skills
operationId: create-projects-position-skill
requestBody:
description: ''
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-position-skill'
- $ref: '#/components/schemas/projects-position-skillRequiredProperties'
examples:
Creates a position skill: {}
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New position-skill
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New position skill: {}
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/position-skill/{key}:
parameters:
- name: key
description: system-assigned unique key for the position skill.
in: path
required: true
schema:
type: string
get:
summary: Get a/an position skill
description: Returns detailed information for a particular position skill.
tags:
- Position skills
operationId: get-projects-position-skill-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the position-skill
properties:
ia::result:
$ref: '#/components/schemas/projects-position-skill'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the position skill: {}
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a/an position skill
description: >-
Updates an existing position skill by setting field values. Any fields
not provided remain unchanged.
tags:
- Position skills
operationId: update-projects-position-skill-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-position-skill'
- type: object
properties:
id:
readOnly: true
examples:
Updates a/an position skill: {}
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated position-skill
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated position skill: {}
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a position skill
description: Deletes a position skill.
tags:
- Position skills
operationId: delete-projects-position-skill-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-billing-template:
get:
summary: List billing templates
description: Returns a collection with a key, ID, and link for each billing template.
tags:
- Project billing templates
operationId: list-projects-project-billing-template
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: List of project billing template objects
properties:
ia::result:
type: array
items:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata-pages'
examples:
List of billing templates:
value:
ia::result:
- key: '12'
id: '12'
href: /objects/projects/project-billing-template/12
- key: '13'
id: '13'
href: /objects/projects/project-billing-template/13
- key: '14'
id: '14'
href: /objects/projects/project-billing-template/14
ia::meta:
totalCount: 3
start: 1
pageSize: 100
next: 101
previous: null
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
post:
summary: Create a project billing template
description: Creates a new project billing template.
tags:
- Project billing templates
operationId: create-projects-project-billing-template
requestBody:
description: Create a project billing template
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-billing-template'
- $ref: '#/components/schemas/projects-project-billing-templateRequiredProperties'
examples:
Creates a project billing template:
value:
name: Project Estimated Hours
description: Template for billing by estimated project hours
billingMethod: percentCompleted
calculateOn: project
basedOn: plannedHours
status: active
milestones:
- percentCompleted: '0.1'
description: Project Estimated Hours
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
title: New project billing template
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
New billing template:
value:
ia::result:
key: '15'
id: '15'
href: /objects/projects/project-billing-template/15
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
/objects/projects/project-billing-template/{key}:
parameters:
- name: key
description: system-assigned unique key for the billing template.
in: path
required: true
schema:
type: string
get:
summary: Get a billing template
description: Returns detailed information for a particular billing template.
tags:
- Project billing templates
operationId: get-projects-project-billing-template-key
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Details of the project billing template
properties:
ia::result:
$ref: '#/components/schemas/projects-project-billing-template'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Details of the billing template:
value:
ia::result:
key: '15'
id: '15'
href: /objects/projects/project-billing-template/15
name: Project Estimated Hours
description: Template for billing by estimated project hours
billingMethod: percentCompleted
calculateOn: project
basedOn: plannedHours
status: active
milestones:
- key: '23'
id: '23'
percentCompleted: '0.5'
percentToInvoice: '0.5'
description: Bill at 50% completion
href: '/objects/projects/project-billing-template-milestone/23'
projectBillingTemplate:
key: '15'
id: '15'
href: /objects/projects/project-billing-template/15
- key: '24'
id: '24'
percentCompleted: '1'
percentInvoiced: '0.5'
description: Bill at 100% completion
href: '/objects/projects/project-billing-template-milestone/23'
projectBillingTemplate:
key: '15'
id: '15'
href: /objects/projects/project-billing-template/15
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
patch:
summary: Update a billing template
description: >-
Updates an existing billing template by setting field values. Any fields
not provided remain unchanged.
tags:
- Project billing templates
operationId: update-projects-project-billing-template-key
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/projects-project-billing-template'
- type: object
properties:
name:
readOnly: true
examples:
Updates a billing template:
value:
description: Bill by actual project hours
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Updated project billing template
properties:
ia::result:
$ref: '#/components/schemas/object-reference'
ia::meta:
$ref: '#/components/schemas/metadata'
examples:
Updated billing template:
value:
ia::result:
key: '12'
id: '12'
href: /objects/projects/project-billing-template/12
ia::meta:
totalCount: 1
totalSuccess: 1
totalError: 0
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
delete:
summary: Delete a billing template
description: Deletes a billing template.
tags:
- Project billing templates
operationId: delete-projects-project-billing-template-key
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/400error'
security:
- OAuth2: []
components:
schemas:
projects-projectRequiredProperties:
type: object
required:
- name
- category
object-reference:
type: object
description: Reference to created or updated object
properties:
key:
type: string
example: '12345'
id:
type: string
example: ID123
href:
type: string
readOnly: true
example: /objects///12345
metadata-pages:
description: Metadata for collection response
type: object
properties:
totalCount:
type: integer
description: Total count
readOnly: true
example: 3
start:
type: integer
description: Start element number
readOnly: true
example: 1
pageSize:
type: integer
description: Page size
readOnly: true
example: 100
next:
type: integer
description: Next element number
readOnly: true
nullable: true
example: 101
previous:
type: integer
description: Previous element number
readOnly: true
nullable: true
example: null
metadata:
description: Metadata for response
type: object
properties:
totalCount:
type: integer
description: Total count
readOnly: true
example: 3
totalSuccess:
type: integer
description: Total success
readOnly: true
example: 2
totalError:
type: integer
description: Total errors
readOnly: true
example: 1
error-response:
type: object
description: Error response
properties:
ia::result:
type: object
properties:
ia::error:
type: object
properties:
code:
type: string
example: invalidRequest
message:
type: string
example: Payload contains errors
supportId:
type: string
example: sQrM9%7EYdh5oDEWVb80mrn9xuHjoAAAABBQ
errorId:
type: string
example: REST-1064
additionalInfo:
type: object
properties:
messageId:
type: string
example: IA.PAYLOAD_CONTAINS_ERRORS
placeholders:
type: string
propertySet:
type: string
details:
type: array
items:
type: object
properties:
code:
type: string
example: invalidRequest
message:
type: string
example: /testDate is not a valid field
errorId:
type: string
example: REST-1043
target:
type: string
example: /testDate
additionalInfo:
type: object
properties:
messageId:
type: string
example: IA.NOT_A_VALID_FIELD
placeholders:
type: string
example:
FIELD: /testDate
propertySet:
type: string
ia::meta:
$ref: '#/components/schemas/metadata'
entity-location-ref:
type: object
description: >-
This is the entity location. If Object's entity location is not set, it
means object is created at the top.
properties:
key:
type: string
description: System-assigned key for the entity location.
example: '2'
nullable: true
id:
type: string
description: Unique identifier for the entity location.
example: DIA
nullable: true
name:
type: string
description: Name for the entity location.
readOnly: true
example: Canada
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/location/2
status:
type: string
description: >-
Object status. Active objects are fully functional. Inactive objects are
essentially hidden and cannot be used or referenced.
enum:
- active
- inactive
default: active
example: active
audit:
type: object
properties:
createdDateTime:
description: Time of the submission
type: string
format: date-time
example: '2022-04-20T16:20:00Z'
readOnly: true
modifiedDateTime:
description: Time of the modification
type: string
format: date-time
example: '2022-04-20T16:20:00Z'
readOnly: true
createdBy:
description: User who created this
type: string
example: '1'
readOnly: true
nullable: true
modifiedBy:
description: User who modified this
type: string
example: '95'
readOnly: true
nullable: true
readOnly: true
projects-project:
type: object
description: Project for work management.
properties:
key:
type: string
description: >-
System-assigned unique key for the project. Use this key to refer to
the project in all operations.
readOnly: true
example: '83'
id:
type: string
description: Unique identifier for the project.
example: P-0045
name:
type: string
description: Project name.
example: Implementation Project
description:
type: string
description: A brief description of the project.
example: Software Implementation Project
nullable: true
projectCurrency:
type: string
description: Currency used for project budget information.
example: USD
nullable: true
category:
type: string
description: Project category. Used for filtering and reporting.
example: contract
enum:
- contract
- capitalized
- internalNonBillable
- internalBillable
default: contract
projectStatus:
type: object
description: Project status
properties:
key:
type: string
description: Project status key.
example: '1'
nullable: true
id:
type: string
description: Project status Id.
example: In Progress
nullable: true
disableGenerateInvoice:
type: boolean
description: >-
Whether project invoices can be generated while the project has
this status.
readOnly: true
example: false
disablePurchasingAPEntry:
type: boolean
description: >-
Whether AP/PO entries are allowed while the project has this
status.
readOnly: true
example: false
disableExpenseEntry:
type: boolean
description: >-
Whether expense entries are allowed while the project has this
status.
readOnly: true
example: false
disableTimesheetEntry:
type: boolean
description: >-
Whether timesheet entries are allowed while the project has this
status.
readOnly: true
example: false
href:
type: string
readOnly: true
example: /objects/projects/project-status/1
startDate:
type: string
format: date
description: Date on which the project is scheduled to begin.
example: '2023-01-23'
nullable: true
endDate:
type: string
format: date
description: Date on which the project is scheduled to end.
example: '2023-04-01'
nullable: true
budget:
type: object
description: Project budget projections.
properties:
billingAmount:
type: string
description: User-specified project budgeted billing amount.
format: decimal-precision-2
example: '10000.00'
nullable: true
budgetedDuration:
type: string
description: User-specified project budgeted duration (in hours).
format: decimal-precision-2
example: '250'
nullable: true
budgetedCost:
type: string
description: User-specified project budgeted cost.
format: decimal-precision-2
example: '10000'
nullable: true
glBudget:
type: object
description: >-
GL budget used by Rev Rec to calculate the projected cost amount for
the project.
properties:
key:
type: string
description: System-assigned key for the budget.
example: '5'
nullable: true
id:
type: string
description: Unique GL budget identifier.
example: KPI Budgets
nullable: true
href:
type: string
readOnly: true
example: /objects/general-ledger/budget/5
nullable: true
contractAmount:
type: string
description: The contracted amount for the project for reporting purposes.
format: decimal-precision-2
example: '15000.00'
nullable: true
progress:
type: object
description: Project progress
readOnly: true
properties:
estimatedDuration:
type: string
description: Estimated duration (in hours) to complete the project.
readOnly: true
example: '200'
nullable: true
actualDuration:
type: string
description: Actual duration (in hours) currently submitted for the project.
readOnly: true
example: '183'
nullable: true
approvedDuration:
type: string
description: Total approved duration (in hours) for the project.
readOnly: true
example: '175'
nullable: true
remainingDuration:
type: string
description: >-
Remaining duration (in hours) allotted for the project
(difference between estimated and actual duration).
readOnly: true
example: '8'
nullable: true
percentComplete:
type: string
description: >-
Calculated percent completed, or how complete the project is
(actual duration divided by estimated duration for project
tasks).
readOnly: true
example: '35'
nullable: true
observedPercentComplete:
type: string
description: >-
Latest observed percent completed, or how complete the project
is as of a specific date.
readOnly: true
example: '50'
nullable: true
billingType:
type: string
description: Billing type specifies how the project will be invoiced.
example: timeAndMaterial
enum:
- null
- timeAndMaterial
- fixedFee
- fixedFeeAndExpenses
nullable: true
default: null
salesOrderNumber:
type: string
description: Sales order number for the project, for reference.
example: SO-5478
nullable: true
purchaseOrderNumber:
type: string
description: Purchase order number for the project, for reference.
example: PO-7829
nullable: true
purchaseOrderAmount:
type: string
description: Project purchase order amount, for reference.
format: decimal-precision-2
example: '4500.00'
nullable: true
purchaseQuoteNumber:
type: string
description: Project purchase quote number, for reference.
example: '1453'
nullable: true
salesforceKey:
type: string
description: Salesforce key
readOnly: true
example: '1'
nullable: true
documentNumber:
type: string
description: >-
An external reference number that can be used to report on the
project in custom reports.
example: '1453'
nullable: true
parent:
type: object
description: >-
The parent project if this project is the child of another, larger
project.
properties:
key:
type: string
description: System-assigned key of the parent project.
example: '10'
nullable: true
id:
type: string
description: Unique identifier of the parent project.
example: P-0040
nullable: true
name:
type: string
description: Parent project name.
readOnly: true
example: NET-XML30-2
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/project/1
nullable: true
invoiceWithParent:
type: boolean
description: >-
Set to `true` to include the projects transactions in invoices for
the parent project.
example: true
default: false
nullable: true
customer:
type: object
description: The customer associated with the project.
properties:
key:
type: string
description: >-
System-assigned key for the customer associated with the
project.
example: '13'
nullable: true
id:
type: string
description: Unique identifier of the customer associated with the project.
example: '113'
nullable: true
name:
type: string
description: Name of the customer associated with the project.
readOnly: true
example: Software company
nullable: true
href:
type: string
readOnly: true
example: /objects/accounts-receivable/customer/1
salesContact:
type: object
description: The sales contact employee for the project.
properties:
key:
type: string
description: System-assigned key for the sales contact employee.
example: '10'
nullable: true
id:
type: string
description: Unique identifier of the sales contact employee.
example: '100'
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/employee/1
projectType:
type: object
description: Project type, used to categorize and report on projects-
properties:
key:
type: string
description: System-assigned key for the project type.
example: '3'
nullable: true
id:
type: string
description: Name or ID of the project type.
example: Internal
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/project-type/1
manager:
type: object
description: >-
Project manager employee for the project. Project managers usually
approve timesheets and expense reports. Project managers can also
run and view project reports.
properties:
key:
type: string
description: System-assigned key for the project manager employee.
example: '10'
nullable: true
id:
type: string
description: Unique identifier for the project manager employee.
example: E10
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/employee/1
department:
type: object
description: >-
The department associated with this project. The project department
overrides any department associated with an employee on a timesheet.
If a project department is not set, the employee department is used.
properties:
key:
type: string
description: System-assigned key for the department.
example: '10'
nullable: true
id:
type: string
description: Unique identifier for the department.
example: '20'
nullable: true
name:
type: string
description: Name for the department.
readOnly: true
example: Sales
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/department/1
location:
type: object
description: >-
The location associated with this project. The project location
overrides any location associated with an employee on a timesheet.
If a project location is not set, the employee location is used.
properties:
key:
type: string
description: System-assigned key for the project location.
example: '1'
nullable: true
id:
type: string
description: Unique identifier for the project location.
example: DIA
nullable: true
name:
type: string
description: Name for the project location.
readOnly: true
example: US
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/location/1
paymentTerm:
type: object
description: >-
The Accounts Receivable payment terms for the project. The payment
terms are included on the invoice header. If project payment terms
are not set, the customers terms are used.
properties:
key:
type: string
description: System-assigned key for project payment terms.
example: '10'
nullable: true
id:
type: string
description: Payment term name or identifier.
example: '10'
nullable: true
href:
type: string
readOnly: true
example: /objects/accounts-receivable/term/1
customerUser:
type: object
description: >-
A Sage Intacct user assigned as a customer representative with the
ability to approve timesheets for the project.
properties:
key:
type: string
description: System-assigned key for the user.
example: '1'
nullable: true
id:
type: string
description: Unique identifier for the user with access to the project.
example: Admin
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/user/1
class:
type: object
description: Class dimension used to track the project.
properties:
key:
type: string
description: >-
System-assigned key for a class dimension associated with the
project.
example: '1'
nullable: true
id:
type: string
description: >-
Unique identifier for a class dimension associated with the
project.
example: '10'
nullable: true
name:
type: string
description: Class name associated with the project.
readOnly: true
example: Construction
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/class/1
userRestrictions:
type: string
description: >-
User restrictions for entering project time and expenses (overrides
default user restrictions for the Projects application).
example: systemDefault
enum:
- systemDefault
- anyUser
- projectUsers
- projectTaskUsers
default: systemDefault
isBillableEmployeeExpense:
type: boolean
description: Set to `true` to bill employee expenses for the project.
example: true
default: false
isBillablePurchasingAPExpense:
type: boolean
description: >-
Set to `true` to bill project purchases entered through Accounts
Payable or Purchasing.
example: true
default: false
ratesAndPricing:
type: object
description: Rates and Pricing
properties:
laborPricing:
type: string
description: Billing pricing option.
example: billingRate
enum:
- billingRate
- costPlusFee
default: billingRate
laborMarkup:
type: string
description: >-
Project-specific default rate to calculate labor pricing when
labor pricing option is set to cost plus fee.
example: '10'
expensePricing:
type: string
description: Expense pricing option.
example: billingRate
enum:
- billingRate
- costPlusFee
default: costPlusFee
expenseMarkup:
type: string
description: >-
Project-specific default rate to calculate expense pricing when
expense pricing option is set to cost plus fee.
example: '10'
defaultRate:
type: string
description: >-
Project-specific default rate to calculate AP/PO pricing when
generating project invoices.
example: '12'
contacts:
type: object
description: Contacts associated with the project.
properties:
primary:
type: object
description: >-
The person others can turn to with questions and information
about the project.
properties:
key:
type: string
description: System-assigned key for the project primary contact.
example: '1'
nullable: true
id:
type: string
description: Name of the project primary contact.
example: JSmith
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/contact/1
billTo:
type: object
description: >-
The person or organization responsible for paying project
invoices. If not set, the customer contact will be used for
billing.
properties:
key:
type: string
description: System-assigned key for the bill-to contact.
example: '2'
nullable: true
id:
type: string
description: >-
Name of the person or organization that is the bill-to
contact.
example: ABrown
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/contact/2
shipTo:
type: object
properties:
key:
type: string
description: System-assigned key for the Ship-to contact
example: '2'
nullable: true
id:
type: string
description: >-
Name of the person or organization that is the ship-to
contact (blank if shipping to the customer contact).
example: ABrown
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/contact/2
invoiceMessage:
type: string
description: Message to appear on invoices.
example: Invoice for project
nullable: true
invoiceCurrency:
type: string
description: Currency to use when generating invoices for the project.
example: USD
nullable: true
billingOverMax:
type: string
description: >-
Billing control to prevent or warn of billings that exceed the
projects budgeted billing amount.
example: preventBilling
enum:
- doNothing
- issueAWarningMessage
- preventBilling
default: doNothing
excludeExpenses:
type: boolean
description: >-
Set to `true` to exclude employee, Accounts Payable (AP), and
purchase order expenses from the over-budget calculation
example: false
default: false
nullable: true
contract:
type: object
description: The contract that this project is associated with.
readOnly: true
properties:
key:
type: string
description: >-
System-assigned key for the contract associated with the
project.
readOnly: true
example: '1'
nullable: true
id:
type: string
description: Unique identifier for the contract associated with the project.
readOnly: true
example: CON-002
nullable: true
href:
type: string
readOnly: true
example: /objects/contracts/contract/1
attachment:
type: object
description: >-
Documents associated with the project, such as statements of work,
specifications, or agreements.
properties:
key:
type: string
example: '1'
nullable: true
id:
type: string
description: Attachment
example: '1'
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/attachment/1
rootProject:
type: object
description: The top-level project that this project descends from.
readOnly: true
properties:
key:
type: string
description: System-assigned key for the top parent project.
readOnly: true
example: '12'
nullable: true
id:
type: string
description: Unique identifier for the top parent project.
readOnly: true
example: '12'
nullable: true
name:
type: string
description: Name of the top parent project.
readOnly: true
example: PRJ-RT-0001
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/project/12
grant:
type: object
description: Grant-related fields.
properties:
aln:
type: string
description: >-
Classification in the Catalog of Assistance Listing Numbers
(ALN).
example: 10.555
nullable: true
fundedProjectName:
type: string
description: External name of the project receiving the funding.
example: Undergraduate Programs
nullable: true
agency:
type: string
description: Funding agency
example: US government
nullable: true
payer:
type: string
description: Funding source
example: federal
enum:
- null
- federal
- thirdParty
nullable: true
default: null
otherId:
type: string
description: Another external identifier for the funding.
example: Other
nullable: true
assistanceType:
type: string
description: >-
Assistance provided to identify the type of funding (Cash or
Non-Cash)
example: cash
enum:
- null
- cash
- nonCash
nullable: true
default: null
revenueRestriction:
type: string
description: >-
Field to indicate if there is a restriction on the received
grant revenue.
example: time
enum:
- null
- purpose
- time
- NA
nullable: true
default: null
restrictionExpiry:
type: string
description: Duration of time-based restriction (in years)
example: '1'
nullable: true
restrictionExpirationDate:
type: string
description: >-
Date when first restriction expires on time-based restricted
funding.
format: date
example: '2021-01-23'
nullable: true
isTimeSatisfactionScheduled:
type: boolean
description: >-
Indicates that the release of restriction has been scheduled for
time-based restrictions.
example: false
default: false
nullable: true
wipScheduleProject:
type: object
description: The project this project rolls up to for work in progress schedules.
properties:
key:
type: string
description: System-assigned key for the roll up project.
example: '12'
nullable: true
id:
type: string
description: Unique identifier for the roll up project.
example: '12'
nullable: true
name:
type: string
description: Name of the roll up project.
readOnly: true
example: PRJ-RT-0001
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/project/12
excludeFromWIPSchedule:
type: boolean
description: Set to true to exclude the project from work in progress schedules.
example: true
default: true
multiEntityLocation:
$ref: '#/components/schemas/entity-location-ref'
status:
$ref: '#/components/schemas/status'
audit:
$ref: '#/components/schemas/audit'
projects-project-groupRequiredProperties:
type: object
required:
- id
- name
projects-project-group:
type: object
description: A project group is a dimension group.
properties:
key:
type: string
description: System-assigned key for the project-group.
readOnly: true
example: '23'
id:
type: string
description: Project or project group ID.
example: Projects without PO
href:
type: string
description: URL for the project-group.
readOnly: true
example: /objects/projects/project-group/23
name:
type: string
description: Name
example: Projects that are waiting on PO
description:
type: string
description: Description
example: This is a description.
nullable: true
groupType:
type: string
description: Group type
example: all
enum:
- all
- specific
default: all
sortOrder:
type: string
description: Sort Order.
example: ascending
enum:
- ascending
- descending
default: ascending
maxMatches:
type: string
description: Max Matches.
example: '10'
nullable: true
sortField:
type: string
description: select sort field for project group.
example: PROJECTID
default: PROJECTID
isDimensionStructure:
type: boolean
description: >-
If this checked, creating a dimension structure from a group enables
you to add the group to the rows or columns of a financial report.
default: false
example: false
conditionType:
type: string
description: The condition type for filters defined to create the class group.
enum:
- and
- or
- expression
default: and
example: and
expression:
type: string
description: >-
If conditionType is expression, you can manually add the text of the
expression in this field.
nullable: true
example: (1 AND 2)
memberFilter:
type: array
description: The memberFilter of the group
nullable: true
items:
title: children
properties:
field:
type: string
description: the field
example: status
operator:
type: string
description: Comparison operator.
enum:
- equals
- doesNotEqual
- isGreaterThan
- isLessThan
- isOneOf
- isNotOneOf
- isEmpty
- isNotEmpty
- contains
- isCurrentUser
default: isOneOf
example: isOneOf
value:
type: string
description: the field
example: active
groupMembers:
type: array
items:
type: object
properties:
key:
type: string
description: Members.
example: '1'
id:
type: string
description: Members.
example: DIM - BTI
name:
type: string
example: Dimensions - Berkeley Technology Inc
readOnly: true
href:
type: string
description: Endpoint for the project.
readOnly: true
example: /objects/projects/project/23
status:
type: string
example: active
readOnly: true
sortOrder:
type: string
description: Sort order.
example: '0'
readOnly: true
audit:
$ref: '#/components/schemas/audit'
projects-project-resourceRequiredProperties:
type: object
required:
- project
projects-project-resource:
type: object
description: Employee and billing rate for a project.
properties:
key:
type: string
description: System-assigned key for the project resource.
readOnly: true
example: '23'
id:
type: string
description: >-
Same as `key`. API operations should use the `key` property to refer
to a project resource.
readOnly: true
example: '23'
href:
type: string
description: Endpoint for the project resource.
readOnly: true
example: /objects/projects/project-resource/23
description:
type: string
description: Description of the project resource.
example: Hourly resource
nullable: true
startDate:
type: string
description: Start date of the resource on the project.
format: date
example: '2023-04-01'
nullable: true
employee:
type: object
description: The employee resource assigned to the project.
properties:
href:
type: string
description: Endpoint for the employee.
readOnly: true
example: /objects/company-config/employee/23
nullable: true
key:
type: string
description: Employee key.
example: '244'
nullable: true
id:
type: string
description: Employee ID.
example: jsmith
nullable: true
startDate:
type: string
format: date
example: '2022-01-01'
nullable: true
readOnly: true
endDate:
type: string
format: date
readOnly: true
example: '2023-01-01'
nullable: true
employeeContact:
type: object
description: The contact for the employee.
properties:
key:
type: string
description: System generated key for the contact.
readOnly: true
example: '977'
id:
type: string
description: Unique identifier for the contact.
readOnly: true
example: John Smith
href:
type: string
example: /objects/company-config/contact/973
readOnly: true
readOnly: true
item:
type: object
properties:
href:
type: string
description: Endpoint for the item.
readOnly: true
example: /objects/inventory-control/item/23
nullable: true
key:
type: string
description: Item key.
example: '23'
nullable: true
id:
type: string
description: Item ID.
example: B002
nullable: true
name:
type: string
description: Item name.
readOnly: true
example: Monitor-Acer
nullable: true
pricing:
type: object
properties:
laborPricingMethod:
type: string
readOnly: true
description: How labor for this resource will be priced.
example: billingRate
enum:
- billingRate
- costPlusFee
laborRate:
type: number
description: Labor rate for this resource on this project.
example: 10
nullable: true
expensePricingMethod:
type: string
readOnly: true
description: How expenses will be priced for this project resource..
example: billingRate
enum:
- billingRate
- costPlusFee
expenseRate:
type: number
description: Expense rate.
example: 120
nullable: true
apPurchasingPricingMethod:
type: string
readOnly: true
description: AP and PO pricing option.
example: costPlusFee
enum:
- costPlusFee
apPurchasingRate:
type: number
description: AP and PO.
example: 100
nullable: true
project:
type: object
properties:
href:
type: string
description: Endpoint for the project.
readOnly: true
example: /objects/projects/project/23
key:
type: string
description: Project key.
example: '23'
id:
type: string
description: Project ID.
example: P-0045
name:
type: string
description: Project name.
readOnly: true
example: Implementation Project
audit:
$ref: '#/components/schemas/audit'
projects-project-statusRequiredProperties:
type: object
required:
- id
projects-project-status:
type: object
description: >-
Project status to track project progress and optionally limit
transactions.
properties:
key:
type: string
description: >-
System-assigned unique key for project status. Use this key to refer
to the project status in all operations.
readOnly: true
example: '1'
id:
type: string
description: >-
User-specified name for the project status; used to categorize and
report on projects- Same value as `name`
example: In Progress
description:
type: string
description: A brief description of the purpose of the project status.
example: In progress
nullable: true
disableTimesheetEntry:
type: boolean
description: >-
Indicates whether timesheet entries are allowed for projects with
this status.
example: false
default: false
disableExpenseEntry:
type: boolean
description: >-
Indicates whether expense entries are allowed for projects with this
status.
example: false
default: false
disablePurchasingAPEntry:
type: boolean
description: >-
Indicates whether AP/PO entries are allowed for projects with this
status.
example: false
default: false
disableGenerateInvoice:
type: boolean
description: >-
Indicates whether invoices can be generated for projects with this
status.
example: false
default: false
status:
$ref: '#/components/schemas/status'
audit:
$ref: '#/components/schemas/audit'
href:
type: string
description: Endpoint for this project status.
readOnly: true
example: /objects/projects/project-status/1
projects-project-typeRequiredProperties:
type: object
required:
- id
projects-project-type:
type: object
description: Project type for grouping projects for reporting
properties:
key:
type: string
description: >-
System-assigned unique key for project type. Use this key to refer
to the project type in all operations.
readOnly: true
example: '3'
id:
type: string
description: >-
User-specified name for the project type; used to categorize and
report on projects-
example: Internal
href:
type: string
readOnly: true
example: /objects/projects/project-type/3
parent:
type: object
description: >-
The parent project type if you are working with a hierarchy of
project types.
properties:
key:
type: string
description: System-assigned key for the parent project type.
example: '10'
nullable: true
id:
type: string
description: Unique identifier (name) of the parent project type.
example: Billable
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/project-type/1
status:
$ref: '#/components/schemas/status'
audit:
$ref: '#/components/schemas/audit'
projects-taskRequiredProperties:
type: object
required:
- name
- project
projects-task:
type: object
description: Information about each task.
properties:
key:
type: string
description: >-
System-assigned unique key for the task. Use this key to refer to
the task in all operations.
readOnly: true
example: '101'
id:
type: string
description: >-
Identifier for the task. Must be unique within the project. 20
characters max.
example: 01-010
name:
type: string
description: Task name. Must be unique within the project.
example: Task 1
parent:
type: object
description: The parent task if this task is the child of another, larger task.
properties:
key:
type: string
description: System-assigned key of the parent task.
example: '11'
nullable: true
id:
type: string
description: Parent task ID.
readOnly: true
example: Task-11
nullable: true
name:
type: string
readOnly: true
description: Name of the parent task.
example: Window installation
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/task/11
project:
type: object
description: The project that the task is associated with.
properties:
key:
type: string
description: System-assigned key of the project.
example: '114'
id:
type: string
description: Unique identifier of the project.
example: 15-GAR
name:
type: string
description: Project name.
readOnly: true
example: Parking garage renovation
startDate:
type: string
format: date
description: Project begin date.
readOnly: true
example: '2023-01-01'
nullable: true
endDate:
type: string
format: date
description: Project end date.
readOnly: true
example: '2023-04-01'
nullable: true
href:
type: string
readOnly: true
example: /objects/projects/project/114
customer:
type: object
description: The customer that this task will be billed to.
readOnly: true
properties:
key:
type: string
description: System-assigned key of the customer.
readOnly: true
example: '987'
nullable: true
id:
type: string
description: Unique identifier of the customer.
readOnly: true
example: 38-097
nullable: true
name:
type: string
readOnly: true
description: Customer name.
example: City Parking
nullable: true
href:
type: string
readOnly: true
example: /objects/accounts-receivable/customer/987
item:
type: object
description: >-
Work item that this task is assigned to. A task must be assigned to
an item for it to be invoiced.
properties:
key:
type: string
description: System-assigned key of the item.
example: '311'
nullable: true
id:
type: string
description: Unique identifier of the item.
example: Project Item 1
nullable: true
name:
type: string
readOnly: true
description: Item name.
example: Extension pack
nullable: true
href:
type: string
readOnly: true
example: /objects/inventory-control/item/311
planned:
type: object
description: Planned start and end dates for the task.
properties:
startDate:
format: date
type: string
description: Planned start date.
example: '2023-04-01'
nullable: true
endDate:
format: date
type: string
description: Planned end date.
example: '2023-05-05'
nullable: true
actual:
type: object
readOnly: true
description: Actual task start and end dates.
properties:
startDate:
format: date
type: string
readOnly: true
description: Actual start date.
example: '2023-04-01'
nullable: true
endDate:
format: date
type: string
readOnly: true
description: Actual end date.
example: '2023-05-05'
nullable: true
duration:
type: object
description: Task-related durations.
properties:
planned:
type: number
description: Task planned duration (hours).
example: 100
nullable: true
plannedBillable:
type: number
readOnly: true
description: Billable task planned duration (hours).
example: 10
nullable: true
estimated:
type: number
description: Task estimated duration (hours).
example: 100
nullable: true
estimatedBillable:
type: number
readOnly: true
description: Billable task estimated duration (hours).
example: 10
nullable: true
actual:
type: number
readOnly: true
description: Task actual duration (hours).
example: 105
nullable: true
actualBillable:
type: number
readOnly: true
description: Billable actual duration (hours).
example: 15
nullable: true
approved:
type: number
readOnly: true
description: Approved duration (hours).
example: 100
nullable: true
approvedBillable:
type: number
readOnly: true
description: Billable approved duration (hours).
example: 15
nullable: true
remaining:
type: number
readOnly: true
description: Remaining duration (hours).
example: 100
nullable: true
percentComplete:
type: number
readOnly: true
description: Calculated percentage of the task that has been completed.
example: 0.25
nullable: true
observedPercentComplete:
type: number
readOnly: true
description: >-
Latest user-entered value of percentage of the task that has been
completed.
example: 0.3
nullable: true
description:
type: string
description: Task description.
example: First task
nullable: true
isMilestone:
type: boolean
description: Set to `true` to indicate that the task is a milestone.
example: true
default: false
isUtilized:
type: boolean
description: >-
Set to `true` to mark this task as utilized. A utilized task is one
spent making progress on a customer project or internal project. A
non-utilized task is one spent not working on a customer project or
internal project, for example, time spent filling in an expense
report or timesheet.
example: true
default: false
isBillable:
type: boolean
description: >-
Set to `true` to bill the work for the task. Set to `false` to mark
the task as non-billable.
example: true
default: false
wbsCode:
type: string
description: Work breakdown structure code.
example: '1'
nullable: true
priority:
type: number
description: A numeric value indicating the task priority.
example: 2
nullable: true
status:
type: string
description: >-
Current status of the task. If the task status is Completed,
employees can't enter time for the task on timesheets.
enum:
- notStarted
- planned
- inProgress
- completed
- onHold
default: inProgress
example: completed
timeType:
type: object
description: >-
Time type used when posting labor costs to the general ledger or for
tracking and reporting how work time is spent.
properties:
key:
type: string
description: System-assigned key of the time type.
example: '2'
nullable: true
id:
type: string
description: Unique identifier of the time type. Same as name.
example: overtime
nullable: true
href:
type: string
readOnly: true
example: /objects/time/time-type/2
class:
type: object
description: Class dimension associated with the task.
properties:
key:
type: string
description: System-assigned key of the class.
example: '19'
nullable: true
id:
type: string
description: Class ID.
example: DES
nullable: true
name:
type: string
readOnly: true
description: Class name.
example: Design
nullable: true
href:
type: string
readOnly: true
example: /objects/company-config/class/19
attachment:
type: object
description: >-
Documents associated with the task, such as statements of work,
specifications, or agreements.
properties:
key:
type: string
description: System-assigned key of the attachment.
example: '12'
nullable: true
id:
type: string
description: Attachment ID.
example: P8-29
nullable: true
href:
type: string
description: Link to the attachment.
readOnly: true
example: /objects/company-config/attachment/12
dependentOn:
type: object
description: Task that must be completed before this task can start.
properties:
key:
type: string
description: System-assigned key of the task that this task is dependent on.
example: '1330'
nullable: true
id:
type: string
description: ID of the task that this task is dependent on.
readOnly: true
example: Task-1330
nullable: true
name:
type: string
readOnly: true
description: Name of the task that this task is dependent on.
example: Rough framing
nullable: true
href:
type: string
readOnly: true
description: Link to the task that this task is dependent on.
example: /objects/link/1223
productionUnits:
type: object
description: Production Units
properties:
estimate:
type: number
description: Production unit estimate.
example: 1200
nullable: true
description:
type: string
description: >-
Production unit description, such as "cubic yards" or "window
assembly".
example: linear feet siding
nullable: true
root:
type: object
readOnly: true
description: The top-level task that this task descends from.
properties:
id:
type: string
readOnly: true
description: >-
ID of the root task. If the parent is the root, then it's the ID
of the parent task. If there is no parent task, then it's the ID
of the current task.
example: '1334'
nullable: true
key:
type: string
readOnly: true
description: >-
System-assigned key of the root task. If the parent is the root,
then it's the key of the parent task. If there is no parent
task, then it's the key of the current task.
example: '1334'
nullable: true
name:
type: string
readOnly: true
description: >-
Name of the root task. If the parent is the root, then it's the
name of the parent task. If there is no parent task, then it's
the name of the current task.
example: 1295 Maple St home remodel
nullable: true
href:
type: string
readOnly: true
description: Link to the root task.
example: /objects/projects/task/1334
standardTask:
type: object
readOnly: true
description: The standard task that is the template for this task.
properties:
id:
type: string
description: Standard task ID.
readOnly: true
example: ST-13
nullable: true
key:
type: string
readOnly: true
description: System-assigned key of the standard task.
example: '13'
nullable: true
name:
type: string
readOnly: true
description: Name of the standard task.
example: Rough framing
nullable: true
href:
type: string
readOnly: true
description: link to the standard task.
example: /objects/construction/standard-task/13
href:
type: string
readOnly: true
description: link to the task.
example: /objects/projects/task/101
audit:
$ref: '#/components/schemas/audit'
projects-task-resourceRequiredProperties:
type: object
required:
- project
- employee
projects-task-resource:
type: object
description: >-
An employee who works on a project task, and the duration of their
involvement.
properties:
key:
type: string
description: System-assigned unique key for the task resource.
readOnly: true
example: '23'
id:
type: string
description: This value is the same as the `key` value for this object.
readOnly: true
example: '23'
href:
type: string
description: Endpoint for the task resource.
readOnly: true
example: /objects/projects/task-resource/23
planned:
type: object
description: Task resource planned dates.
properties:
startDate:
type: string
description: Planned begin date for this resource on the task.
format: date
example: '2023-01-01'
nullable: true
endDate:
type: string
description: Planned end date for this resource on the task.
format: date
example: '2023-06-30'
nullable: true
actual:
type: object
description: Task resource actual dates.
properties:
startDate:
type: string
description: Actual begin date of this resource on the task.
format: date
readOnly: true
example: '2023-01-08'
nullable: true
endDate:
type: string
description: Actual end date of this resource on the task.
format: date
readOnly: true
example: '2023-04-01'
nullable: true
duration:
type: object
description: Task resource duration in hours
properties:
planned:
type: number
description: Planned duration (hours).
example: 22
nullable: true
estimated:
type: number
description: Estimated duration (hours).
example: 20
nullable: true
actual:
type: number
description: Actual duration (hours).
readOnly: true
example: 17
nullable: true
approved:
type: number
description: Approved duration (hours).
readOnly: true
example: 18
nullable: true
remaining:
type: number
description: Remaining estimated duration or planned duration (hours).
readOnly: true
example: 8
nullable: true
percentComplete:
type: number
description: Calculated estimated percent completed or planned percent completed.
readOnly: true
example: 50
nullable: true
description:
type: string
description: Description of the task resource.
example: Resource of task RR-27-Q5
nullable: true
isFullTime:
type: boolean
description: Set to `true` to mark the resource as fully booked.
example: true
default: false
isSoftBook:
type: boolean
description: Set to `true` to mark the resource as soft booked.
example: true
default: false
employee:
type: object
description: The employee resource assigned to the task.
properties:
href:
type: string
description: Endpoint for the employee.
readOnly: true
example: /objects/company-config/employee/23
key:
type: string
description: Employee key.
example: '23'
id:
type: string
description: Employee ID.
example: jsmith
startDate:
type: string
format: date
readOnly: true
example: '2023-04-01'
nullable: true
endDate:
type: string
format: date
readOnly: true
example: '2024-04-01'
nullable: true
employeeContact:
type: object
description: The contact for the employee.
properties:
key:
type: string
description: System generated key for the contact.
readOnly: true
example: '977'
id:
type: string
description: Unique identifier for the contact.
readOnly: true
example: John Smith
href:
type: string
example: /objects/company-config/contact/973
readOnly: true
readOnly: true
project:
type: object
description: The project that the task is part of.
properties:
href:
type: string
description: Endpoint for the project.
readOnly: true
example: /objects/projects/project/23
key:
type: string
description: Project key.
example: '23'
id:
type: string
description: Project ID.
example: Q-Field
name:
type: string
description: Project name.
readOnly: true
example: Quantum Field Repair
task:
type: object
description: The task that the resource is assigned to.
properties:
href:
type: string
description: Endpoint for the task.
readOnly: true
example: /objects/projects/task/23
nullable: true
key:
type: string
description: System-assigned key for the task.
example: '23'
nullable: true
id:
type: string
description: Task identifier.
example: RR-27-Q5
nullable: true
name:
type: string
description: Task name.
readOnly: true
example: Adjust flux capacitor
nullable: true
isBillable:
type: string
description: Whether work on this task is billable.
example: true
readOnly: true
nullable: true
audit:
$ref: '#/components/schemas/audit'
company-config-employee-rate:
type: object
description: List of employee cost rates, including history.
properties:
key:
type: string
description: System-assigned key for the employee-rate.
readOnly: true
example: '23'
id:
type: string
description: Employee rate ID.
readOnly: true
example: '23'
href:
type: string
description: Endpoint for the employee-rate.
readOnly: true
example: /objects/projects/employee-rate/23
hourlyRate:
type: string
description: Hourly rate
format: decimal-precision-2
example: '50'
annualSalary:
type: string
description: Annual salary.
nullable: true
example: '100000'
startDate:
type: string
format: date
description: Start date of hourly rate or annual salary.
example: '2023-04-01'
endDate:
type: string
format: date
description: End date of of hourly rate or annual salary.
example: '2023-04-01'
employee:
type: object
readOnly: true
properties:
id:
type: string
description: Employee ID.
readOnly: true
example: '111'
key:
type: string
description: Employee Key
example: '1'
readOnly: true
name:
type: string
description: Employee name
readOnly: true
example: John Doe
href:
type: string
description: Endpoint for the emp.
readOnly: true
example: /objects/company-config/employee/23
audit:
$ref: '#/components/schemas/audit'
projects-position-skillRequiredProperties:
type: object
required:
- id
projects-position-skill:
type: object
description: List of positions and skills available to assign to employees.
properties:
key:
type: string
description: System-assigned key for the position-skill.
readOnly: true
example: '23'
id:
type: string
description: Name of the position skill.
example: null
href:
type: string
description: URL for the position-skill.
readOnly: true
example: /objects/projects/position-skill/23
description:
type: string
description: Description.
example: null
status:
$ref: '#/components/schemas/status'
audit:
$ref: '#/components/schemas/audit'
projects-project-billing-templateRequiredProperties:
type: object
required:
- name
- description
projects-project-billing-template-milestone:
type: object
description: Project billing template milestone
properties:
key:
type: string
description: System-assigned key for the billing template milestone.
readOnly: true
example: '23'
id:
type: string
description: Billing template milestone ID (same as key).
readOnly: true
example: '23'
percentCompleted:
type: string
description: Percent completed value when invoicing should occur
example: '.5'
percentToInvoice:
type: string
description: >-
Percent of the total that will be invoiced when the milestone is
reached
readOnly: true
example: '.5'
description:
type: string
description: Milestone description
example: Invoice at 50%
nullable: true
href:
type: string
description: Endpoint for the billing template milestone.
readOnly: true
example: /objects/projects/project-billing-template-milestone/23
projectBillingTemplate:
type: object
readOnly: true
properties:
key:
type: string
description: System-assigned key for the billing-template.
readOnly: true
example: '23'
id:
type: string
description: Billing template ID.
readOnly: true
example: '23'
href:
type: string
description: Endpoint for the billing template.
readOnly: true
example: /objects/projects/project-billing-template/23
projects-project-billing-template:
type: object
description: Project billing template.
properties:
key:
type: string
description: System-assigned key for the project billing template.
readOnly: true
example: '23'
id:
type: string
description: Billing template ID (same as key).
readOnly: true
example: '23'
href:
type: string
description: Endpoint for the project billing template.
readOnly: true
example: /objects/projects/project-billing-template/23
name:
type: string
description: Unique name of the billing template.
example: Project Estimated Hours
description:
type: string
description: Project billing template description.
example: Template for billing by estimated project hours
nullable: false
billingMethod:
type: string
description: Billing method.
example: percentCompleted
enum:
- percentCompleted
- milestone
default: percentCompleted
calculateOn:
type: string
description: Calculate on.
example: project
enum:
- project
- task
default: project
basedOn:
type: string
description: Based on.
example: plannedHours
enum:
- plannedHours
- estimatedHours
- budgetedHours
- observedPercentCompleted
default: estimatedHours
status:
$ref: '#/components/schemas/status'
milestones:
type: array
description: Line items of the billing template.
items:
$ref: '#/components/schemas/projects-project-billing-template-milestone'
responses:
400error:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error-response'
securitySchemes:
OAuth2:
description: Sage Intacct OAuth 2.0 authorization code flow
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://api.intacct.com/ia/api/v1-beta2/oauth2/authorize
tokenUrl: https://api.intacct.com/ia/api/v1-beta2/oauth2/token
refreshUrl: https://api.intacct.com/ia/api/v1-beta2/oauth2/token
scopes: {}