Projects

Use projects to manage, track, and report on work performed by or for your company.

Please be aware that this object is currently "Uncertified", 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.

List projects

get/objects/projects/project

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
SubscriptionProjects
User typeBusiness, Employee, Project Manager
PermissionsList Projects
SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "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
    }
}

Create a project

post/objects/projects/project

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
SubscriptionProjects
User typeBusiness, Project Manager
PermissionsAdd Projects
SecurityOAuth2
Request
Request Body schema: application/json

Project to be created

name
required
string

Project name.

Example: "Implementation Project"
category
required
string
Default: "contract"

Project category. Used for filtering and reporting.

Enum: "capitalized" "contract" "internalBillable" "internalNonBillable"
Example: "contract"
id
string

Unique identifier for the project.

Example: "P-0045"
description
string or null

A brief description of the project.

Example: "Software Implementation Project"
projectCurrency
string or null

Currency used for project budget information.

Example: "USD"
object

Project status

key
string or null

Project status key.

Example: "1"
id
string or null

Project status Id.

Example: "In Progress"
startDate
string or null <date>

Date on which the project is scheduled to begin.

Example: "2023-01-23"
endDate
string or null <date>

Date on which the project is scheduled to end.

Example: "2023-04-01"
object

Project budget projections.

billingAmount
string or null <decimal-precision-2>

User-specified project budgeted billing amount.

Example: "10000.00"
budgetedDuration
string or null <decimal-precision-2>

User-specified project budgeted duration (in hours).

Example: "250"
budgetedCost
string or null <decimal-precision-2>

User-specified project budgeted cost.

Example: "10000"
object

GL budget used by Rev Rec to calculate the projected cost amount for the project.

key
string or null

System-assigned key for the budget.

Example: "5"
id
string or null

Unique GL budget identifier.

Example: "KPI Budgets"
contractAmount
string or null <decimal-precision-2>

The contracted amount for the project for reporting purposes.

Example: "15000.00"
billingType
string or null
Default: null

Billing type specifies how the project will be invoiced.

Enum: "fixedFee" "fixedFeeAndExpenses" null "timeAndMaterial"
Example: "timeAndMaterial"
salesOrderNumber
string or null

Sales order number for the project, for reference.

Example: "SO-5478"
purchaseOrderNumber
string or null

Purchase order number for the project, for reference.

Example: "PO-7829"
purchaseOrderAmount
string or null <decimal-precision-2>

Project purchase order amount, for reference.

Example: "4500.00"
purchaseQuoteNumber
string or null

Project purchase quote number, for reference.

Example: "1453"
documentNumber
string or null

An external reference number that can be used to report on the project in custom reports.

Example: "1453"
object

The parent project if this project is the child of another, larger project.

key
string or null

System-assigned key of the parent project.

Example: "10"
id
string or null

Unique identifier of the parent project.

Example: "P-0040"
invoiceWithParent
boolean or null
Default: false

Set to true to include the projects transactions in invoices for the parent project.

Example: true
object

The customer associated with the project.

key
string or null

System-assigned key for the customer associated with the project.

Example: "13"
id
string or null

Unique identifier of the customer associated with the project.

Example: "113"
object

The sales contact employee for the project.

key
string or null

System-assigned key for the sales contact employee.

Example: "10"
id
string or null

Unique identifier of the sales contact employee.

Example: "100"
object

Project type, used to categorize and report on projects.

key
string or null

System-assigned key for the project type.

Example: "3"
id
string or null

Name or ID of the project type.

Example: "Internal"
object

Project manager employee for the project. Project managers usually approve timesheets and expense reports. Project managers can also run and view project reports.

key
string or null

System-assigned key for the project manager employee.

Example: "10"
id
string or null

Unique identifier for the project manager employee.

Example: "E10"
object

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.

key
string or null

System-assigned key for the department.

Example: "10"
id
string or null

Unique identifier for the department.

Example: "20"
object

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.

key
string or null

System-assigned key for the project location.

Example: "1"
id
string or null

Unique identifier for the project location.

Example: "DIA"
object

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.

key
string or null

System-assigned key for project payment terms.

Example: "10"
id
string or null

Payment term name or identifier.

Example: "10"
object

A Sage Intacct user assigned as a customer representative with the ability to approve timesheets for the project.

key
string or null

System-assigned key for the user.

Example: "1"
id
string or null

Unique identifier for the user with access to the project.

Example: "Admin"
object

Class dimension used to track the project.

key
string or null

System-assigned key for a class dimension associated with the project.

Example: "1"
id
string or null

Unique identifier for a class dimension associated with the project.

Example: "10"
userRestrictions
string
Default: "systemDefault"

User restrictions for entering project time and expenses (overrides default user restrictions for the Projects application).

Enum: "anyUser" "projectTaskUsers" "projectUsers" "systemDefault"
Example: "systemDefault"
isBillableEmployeeExpense
boolean
Default: false

Set to true to bill employee expenses for the project.

Example: true
isBillablePurchasingAPExpense
boolean
Default: false

Set to true to bill project purchases entered through Accounts Payable or Purchasing.

Example: true
object

Rates and Pricing

laborPricing
string
Default: "billingRate"

Billing pricing option.

Enum: "billingRate" "costPlusFee"
Example: "billingRate"
laborMarkup
string

Project-specific default rate to calculate labor pricing when labor pricing option is set to cost plus fee.

Example: "10"
expensePricing
string
Default: "costPlusFee"

Expense pricing option.

Enum: "billingRate" "costPlusFee"
Example: "billingRate"
expenseMarkup
string

Project-specific default rate to calculate expense pricing when expense pricing option is set to cost plus fee.

Example: "10"
defaultRate
string

Project-specific default rate to calculate AP/PO pricing when generating project invoices.

Example: "12"
object

Contacts associated with the project.

object

The person others can turn to with questions and information about the project.

key
string or null

System-assigned key for the project primary contact.

Example: "1"
id
string or null

Name of the project primary contact.

Example: "JSmith"
object

The person or organization responsible for paying project invoices. If not set, the customer contact will be used for billing.

key
string or null

System-assigned key for the bill-to contact.

Example: "2"
id
string or null

Name of the person or organization that is the bill-to contact.

Example: "ABrown"
object
key
string or null

System-assigned key for the Ship-to contact

Example: "2"
id
string or null

Name of the person or organization that is the ship-to contact (blank if shipping to the customer contact).

Example: "ABrown"
invoiceMessage
string or null

Message to appear on invoices.

Example: "Invoice for project"
invoiceCurrency
string or null

Currency to use when generating invoices for the project.

Example: "USD"
billingOverMax
string
Default: "doNothing"

Billing control to prevent or warn of billings that exceed the projects budgeted billing amount.

Enum: "doNothing" "issueAWarningMessage" "preventBilling"
Example: "preventBilling"
excludeExpenses
boolean or null
Default: false

Set to true to exclude employee, Accounts Payable (AP), and purchase order expenses from the over-budget calculation

Example: false
object

Documents associated with the project, such as statements of work, specifications, or agreements.

key
string or null
Example: "1"
id
string or null

Attachment

Example: "1"
object

Grant-related fields.

aln
string or null

Classification in the Catalog of Assistance Listing Numbers (ALN).

Example: 10.555
fundedProjectName
string or null

External name of the project receiving the funding.

Example: "Undergraduate Programs"
agency
string or null

Funding agency

Example: "US government"
payer
string or null
Default: null

Funding source

Enum: "federal" null "thirdParty"
Example: "federal"
otherId
string or null

Another external identifier for the funding.

Example: "Other"
assistanceType
string or null
Default: null

Assistance provided to identify the type of funding (Cash or Non-Cash)

Enum: "cash" "nonCash" null
Example: "cash"
revenueRestriction
string or null
Default: null

Field to indicate if there is a restriction on the received grant revenue.

Enum: "NA" null "purpose" "time"
Example: "time"
restrictionExpiry
string or null

Duration of time-based restriction (in years)

Example: "1"
restrictionExpirationDate
string or null <date>

Date when first restriction expires on time-based restricted funding.

Example: "2021-01-23"
isTimeSatisfactionScheduled
boolean or null
Default: false

Indicates that the release of restriction has been scheduled for time-based restrictions.

Example: false
object

The project this project rolls up to for work in progress schedules.

key
string or null

System-assigned key for the roll up project.

Example: "12"
id
string or null

Unique identifier for the roll up project.

Example: "12"
excludeFromWIPSchedule
boolean
Default: true

Set to true to exclude the project from work in progress schedules.

Example: true
object

Scope details for this project.

scope
string <= 4000 characters

Details about the expected scope of work to be performed or materials to be delivered for this project. Use 4000 or fewer characters.

Example: "Subcontractor agrees to provide labor and materials for utility trenching for Five Oaks Storage facilities according to contract."
inclusions
string <= 4000 characters

Details related to items that are explicitly included in the terms of this project. Use 4000 or fewer characters.

Example: "Includes drive through building"
exclusions
string <= 4000 characters

Details related to items that are explicitly excluded in the terms of this project. Use 4000 or fewer characters.

Example: "Excludes additional purchase"
terms
string <= 4000 characters

Additional terms or performance obligations for this project. Use 4000 or fewer characters.

Example: "Follow all safety rules and security procedure that are in force and applicable during execution of work."
object

Schedule details for this project.

scheduledStartDate
string <date>

Scheduled start date for the project in the yyyy-mm-dd format.

Example: "2024-10-01"
scheduledCompletionDate
string <date>

Original scheduled date for completion of the project in the yyyy-mm-dd format.

Example: "2024-12-30"
actualStartDate
string <date>

Actual start date for this project in the yyyy-mm-dd format.

Example: "2024-10-05"
actualCompletionDate
string <date>

Date the project is actually complete in the yyyy-mm-dd format.

Example: "2024-12-31"
revisedCompletionDate
string <date>

Revised completion date for the project (caused by changes). Specified in the yyyy-mm-dd format.

Example: "2024-12-25"
substantialCompletionDate
string <date>

Date the work is considered substantially complete this project in the yyyy-mm-dd format. Typically used as a milestone to identify when payment obligations are due.

Example: "2024-12-26"
noticeToProceedDate
string <date>

Date when a formal notice to proceed was given for this project in the yyyy-mm-dd format.

Example: "2024-11-10"
responseDueDate
string <date>

Date when a response is expected from an external party for this project in the yyyy-mm-dd format.

Example: "2024-11-10"
executedOnDate
string <date>

Date the project was formally executed in the yyyy-mm-dd format.

Example: "2024-11-15"
scheduleImpactNotes
string <= 100 characters

Details about any impacts on the current schedule for this project. Use 100 or fewer characters.

Example: "None"
object

This is the entity location. If Object's entity location is not set, it means object is created at the top.

key
string or null

System-assigned key for the entity location.

Example: "2"
id
string or null

Unique identifier for the entity location.

Example: "DIA"
status
string
Default: "active"

Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced.

Enum: "active" "inactive"
Example: "active"
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "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",
  • "scopeDetails": {
    • "scope": "Subcontractor agrees to provide labor and materials for utility trenching for Five Oaks Storage facilities according to contract.",
    • "inclusions": "Includes drive through building.",
    • "exclusions": "Excludes additional purchase.",
    • "terms": "Follow all safety rules and security procedure that are in force and applicable during execution of work."
    },
  • "scheduleDetails": {
    • "scheduledStartDate": "2024-09-01",
    • "actualStartDate": "2024-09-02",
    • "scheduledCompletionDate": "2024-11-14",
    • "revisedCompletionDate": "2024-11-15",
    • "substantialCompletionDate": "2024-11-10",
    • "actualCompletionDate": "2024-11-30",
    • "noticeToProceedDate": "2024-11-20",
    • "responseDueDate": "2024-11-23",
    • "executedOnDate": "2024-09-10",
    • "scheduleImpactNotes": "None"
    }
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "100",
    • "id": "P-0045",
    • "href": "/objects/projects/project/100"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a project

get/objects/projects/project/{key}

Returns detailed information for a specified project.

Permissions and other requirements
SubscriptionProjects
User typeBusiness, Employee, Project Manager
PermissionsView Projects
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the project.

Example: 635
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "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": {
        },
      • "billTo": {
        },
      • "shipTo": {
        }
      },
    • "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"
      },
    • "scopeDetails": {
      • "scope": "Subcontractor agrees to provide labor and materials for utility trenching for Five Oaks Storage facilities according to contract.",
      • "inclusions": "Includes drive through building.",
      • "exclusions": "Excludes additional purchase.",
      • "terms": "Follow all safety rules and security procedure that are in force and applicable during execution of work."
      },
    • "scheduleDetails": {
      • "scheduledStartDate": "2024-09-01",
      • "actualStartDate": "2024-09-02",
      • "scheduledCompletionDate": "2024-11-14",
      • "revisedCompletionDate": "2024-11-15",
      • "substantialCompletionDate": "2024-11-10",
      • "actualCompletionDate": "2024-11-30",
      • "noticeToProceedDate": "2024-11-20",
      • "responseDueDate": "2024-11-23",
      • "executedOnDate": "2024-09-10",
      • "scheduleImpactNotes": "None"
      },
    • "audit": {
      • "createdDateTime": "2022-04-20T16:20:00Z",
      • "modifiedDateTime": "2022-04-20T16:20:00Z",
      • "createdBy": "1",
      • "modifiedBy": "95"
      },
    • "entity": {
      • "key": "46",
      • "id": "Western Region",
      • "name": "Western Region",
      • "href": "/objects/company-config/entity/46"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a project

patch/objects/projects/project/{key}

Updates an existing project by setting field values. Any fields not provided remain unchanged.

Permissions and other requirements
SubscriptionProjects
User typeBusiness, Project Manager
PermissionsEdit Projects
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the project.

Example: 635
Request Body schema: application/json
name
string

Project name.

Example: "Implementation Project"
description
string or null

A brief description of the project.

Example: "Software Implementation Project"
projectCurrency
string or null

Currency used for project budget information.

Example: "USD"
category
string
Default: "contract"

Project category. Used for filtering and reporting.

Enum: "capitalized" "contract" "internalBillable" "internalNonBillable"
Example: "contract"
object

Project status

key
string or null

Project status key.

Example: "1"
id
string or null

Project status Id.

Example: "In Progress"
startDate
string or null <date>

Date on which the project is scheduled to begin.

Example: "2023-01-23"
endDate
string or null <date>

Date on which the project is scheduled to end.

Example: "2023-04-01"
object

Project budget projections.

billingAmount
string or null <decimal-precision-2>

User-specified project budgeted billing amount.

Example: "10000.00"
budgetedDuration
string or null <decimal-precision-2>

User-specified project budgeted duration (in hours).

Example: "250"
budgetedCost
string or null <decimal-precision-2>

User-specified project budgeted cost.

Example: "10000"
object

GL budget used by Rev Rec to calculate the projected cost amount for the project.

key
string or null

System-assigned key for the budget.

Example: "5"
id
string or null

Unique GL budget identifier.

Example: "KPI Budgets"
contractAmount
string or null <decimal-precision-2>

The contracted amount for the project for reporting purposes.

Example: "15000.00"
billingType
string or null
Default: null

Billing type specifies how the project will be invoiced.

Enum: "fixedFee" "fixedFeeAndExpenses" null "timeAndMaterial"
Example: "timeAndMaterial"
salesOrderNumber
string or null

Sales order number for the project, for reference.

Example: "SO-5478"
purchaseOrderNumber
string or null

Purchase order number for the project, for reference.

Example: "PO-7829"
purchaseOrderAmount
string or null <decimal-precision-2>

Project purchase order amount, for reference.

Example: "4500.00"
purchaseQuoteNumber
string or null

Project purchase quote number, for reference.

Example: "1453"
documentNumber
string or null

An external reference number that can be used to report on the project in custom reports.

Example: "1453"
object

The parent project if this project is the child of another, larger project.

key
string or null

System-assigned key of the parent project.

Example: "10"
id
string or null

Unique identifier of the parent project.

Example: "P-0040"
invoiceWithParent
boolean or null
Default: false

Set to true to include the projects transactions in invoices for the parent project.

Example: true
object

The customer associated with the project.

key
string or null

System-assigned key for the customer associated with the project.

Example: "13"
id
string or null

Unique identifier of the customer associated with the project.

Example: "113"
object

The sales contact employee for the project.

key
string or null

System-assigned key for the sales contact employee.

Example: "10"
id
string or null

Unique identifier of the sales contact employee.

Example: "100"
object

Project type, used to categorize and report on projects.

key
string or null

System-assigned key for the project type.

Example: "3"
id
string or null

Name or ID of the project type.

Example: "Internal"
object

Project manager employee for the project. Project managers usually approve timesheets and expense reports. Project managers can also run and view project reports.

key
string or null

System-assigned key for the project manager employee.

Example: "10"
id
string or null

Unique identifier for the project manager employee.

Example: "E10"
object

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.

key
string or null

System-assigned key for the department.

Example: "10"
id
string or null

Unique identifier for the department.

Example: "20"
object

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.

key
string or null

System-assigned key for the project location.

Example: "1"
id
string or null

Unique identifier for the project location.

Example: "DIA"
object

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.

key
string or null

System-assigned key for project payment terms.

Example: "10"
id
string or null

Payment term name or identifier.

Example: "10"
object

A Sage Intacct user assigned as a customer representative with the ability to approve timesheets for the project.

key
string or null

System-assigned key for the user.

Example: "1"
id
string or null

Unique identifier for the user with access to the project.

Example: "Admin"
object

Class dimension used to track the project.

key
string or null

System-assigned key for a class dimension associated with the project.

Example: "1"
id
string or null

Unique identifier for a class dimension associated with the project.

Example: "10"
userRestrictions
string
Default: "systemDefault"

User restrictions for entering project time and expenses (overrides default user restrictions for the Projects application).

Enum: "anyUser" "projectTaskUsers" "projectUsers" "systemDefault"
Example: "systemDefault"
isBillableEmployeeExpense
boolean
Default: false

Set to true to bill employee expenses for the project.

Example: true
isBillablePurchasingAPExpense
boolean
Default: false

Set to true to bill project purchases entered through Accounts Payable or Purchasing.

Example: true
object

Rates and Pricing

laborPricing
string
Default: "billingRate"

Billing pricing option.

Enum: "billingRate" "costPlusFee"
Example: "billingRate"
laborMarkup
string

Project-specific default rate to calculate labor pricing when labor pricing option is set to cost plus fee.

Example: "10"
expensePricing
string
Default: "costPlusFee"

Expense pricing option.

Enum: "billingRate" "costPlusFee"
Example: "billingRate"
expenseMarkup
string

Project-specific default rate to calculate expense pricing when expense pricing option is set to cost plus fee.

Example: "10"
defaultRate
string

Project-specific default rate to calculate AP/PO pricing when generating project invoices.

Example: "12"
object

Contacts associated with the project.

object

The person others can turn to with questions and information about the project.

key
string or null

System-assigned key for the project primary contact.

Example: "1"
id
string or null

Name of the project primary contact.

Example: "JSmith"
object

The person or organization responsible for paying project invoices. If not set, the customer contact will be used for billing.

key
string or null

System-assigned key for the bill-to contact.

Example: "2"
id
string or null

Name of the person or organization that is the bill-to contact.

Example: "ABrown"
object
key
string or null

System-assigned key for the Ship-to contact

Example: "2"
id
string or null

Name of the person or organization that is the ship-to contact (blank if shipping to the customer contact).

Example: "ABrown"
invoiceMessage
string or null

Message to appear on invoices.

Example: "Invoice for project"
invoiceCurrency
string or null

Currency to use when generating invoices for the project.

Example: "USD"
billingOverMax
string
Default: "doNothing"

Billing control to prevent or warn of billings that exceed the projects budgeted billing amount.

Enum: "doNothing" "issueAWarningMessage" "preventBilling"
Example: "preventBilling"
excludeExpenses
boolean or null
Default: false

Set to true to exclude employee, Accounts Payable (AP), and purchase order expenses from the over-budget calculation

Example: false
object

Documents associated with the project, such as statements of work, specifications, or agreements.

key
string or null
Example: "1"
id
string or null

Attachment

Example: "1"
object

Grant-related fields.

aln
string or null

Classification in the Catalog of Assistance Listing Numbers (ALN).

Example: 10.555
fundedProjectName
string or null

External name of the project receiving the funding.

Example: "Undergraduate Programs"
agency
string or null

Funding agency

Example: "US government"
payer
string or null
Default: null

Funding source

Enum: "federal" null "thirdParty"
Example: "federal"
otherId
string or null

Another external identifier for the funding.

Example: "Other"
assistanceType
string or null
Default: null

Assistance provided to identify the type of funding (Cash or Non-Cash)

Enum: "cash" "nonCash" null
Example: "cash"
revenueRestriction
string or null
Default: null

Field to indicate if there is a restriction on the received grant revenue.

Enum: "NA" null "purpose" "time"
Example: "time"
restrictionExpiry
string or null

Duration of time-based restriction (in years)

Example: "1"
restrictionExpirationDate
string or null <date>

Date when first restriction expires on time-based restricted funding.

Example: "2021-01-23"
isTimeSatisfactionScheduled
boolean or null
Default: false

Indicates that the release of restriction has been scheduled for time-based restrictions.

Example: false
object

The project this project rolls up to for work in progress schedules.

key
string or null

System-assigned key for the roll up project.

Example: "12"
id
string or null

Unique identifier for the roll up project.

Example: "12"
excludeFromWIPSchedule
boolean
Default: true

Set to true to exclude the project from work in progress schedules.

Example: true
object

Scope details for this project.

scope
string <= 4000 characters

Details about the expected scope of work to be performed or materials to be delivered for this project. Use 4000 or fewer characters.

Example: "Subcontractor agrees to provide labor and materials for utility trenching for Five Oaks Storage facilities according to contract."
inclusions
string <= 4000 characters

Details related to items that are explicitly included in the terms of this project. Use 4000 or fewer characters.

Example: "Includes drive through building"
exclusions
string <= 4000 characters

Details related to items that are explicitly excluded in the terms of this project. Use 4000 or fewer characters.

Example: "Excludes additional purchase"
terms
string <= 4000 characters

Additional terms or performance obligations for this project. Use 4000 or fewer characters.

Example: "Follow all safety rules and security procedure that are in force and applicable during execution of work."
object

Schedule details for this project.

scheduledStartDate
string <date>

Scheduled start date for the project in the yyyy-mm-dd format.

Example: "2024-10-01"
scheduledCompletionDate
string <date>

Original scheduled date for completion of the project in the yyyy-mm-dd format.

Example: "2024-12-30"
actualStartDate
string <date>

Actual start date for this project in the yyyy-mm-dd format.

Example: "2024-10-05"
actualCompletionDate
string <date>

Date the project is actually complete in the yyyy-mm-dd format.

Example: "2024-12-31"
revisedCompletionDate
string <date>

Revised completion date for the project (caused by changes). Specified in the yyyy-mm-dd format.

Example: "2024-12-25"
substantialCompletionDate
string <date>

Date the work is considered substantially complete this project in the yyyy-mm-dd format. Typically used as a milestone to identify when payment obligations are due.

Example: "2024-12-26"
noticeToProceedDate
string <date>

Date when a formal notice to proceed was given for this project in the yyyy-mm-dd format.

Example: "2024-11-10"
responseDueDate
string <date>

Date when a response is expected from an external party for this project in the yyyy-mm-dd format.

Example: "2024-11-10"
executedOnDate
string <date>

Date the project was formally executed in the yyyy-mm-dd format.

Example: "2024-11-15"
scheduleImpactNotes
string <= 100 characters

Details about any impacts on the current schedule for this project. Use 100 or fewer characters.

Example: "None"
object

This is the entity location. If Object's entity location is not set, it means object is created at the top.

key
string or null

System-assigned key for the entity location.

Example: "2"
id
string or null

Unique identifier for the entity location.

Example: "DIA"
status
string
Default: "active"

Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced.

Enum: "active" "inactive"
Example: "active"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "name": "Implementation Project",
  • "description": "Software Implementation Project",
  • "projectCurrency": "USD",
  • "category": "contract"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "124",
    • "id": "P-0345",
    • "href": "/objects/projects/project/124"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a project

delete/objects/projects/project/{key}

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
SubscriptionProjects
User typeBusiness, Project Manager
PermissionsDelete Projects
SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the project.

Example: 635
Responses
204

No Content

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "ia::error": {
      • "code": "invalidRequest",
      • "message": "A POST request requires a payload",
      • "errorId": "REST-1028",
      • "additionalInfo": {
        },
      • "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 0,
    • "totalError": 1
    }
}

Query projects

post/services/core/query

Queries an object for filtered data.

SecurityOAuth2
Request
Request Body schema: application/json
object
string

Object type to query, in the form <application-name>/<object name>. For custom objects use platform-apps/nsp::<object-name>.

Example: "projects/project"
fields
Array of strings

List of fields to include in the response. Can be any combination of these:

  • The name of a field in the object that you are querying, such as id.

  • The name of a field in a related object, using the form relatedObjectName.fieldName, such as vendor.id.

  • The result of an aggregate function run against the values in the returned objects. Use the form function:fieldName, such as min:startDate to return the earliest starting date. Valid function names are:

    • count
    • avg
    • sum
    • min
    • max
  • The result of an aggregate function run against the values in related objects, using the form function:relatedObjectName.fieldName, such as max:vendor.creditLimit. The same functions are supported as for object fields.

Example: ["key","id","max:vendor.creditLimit"]
Array of equal (object) or not equal (object) or less than (object) or (less than or equal (object)) or greater than (object) or (greater than or equal (object)) or in (object) or not in (object) or between (object) or not between (object) or contains (object) or does not contain (object) or starts with (object) or does not start with (object) or ends with (object) or does not end with (object)

Filter conditions to select the objects to return based on their field values. You use operators and conditions to build your filter, such as {"$eq":{"status":"active"}} to select objects in which status is equal to "active".

Example: [{"$eq":{"status":"active"}},{"$gt":{"totalDue":"1000"}},{"$contains":{"name":"Acme"}}]
Array
Any of:

Field value must be equal to this specified value.

For date fields, you can use these macro values that are relative to the current date or the asOfDate in filterParameters, if set:

  • today
  • currentWeek
  • currentMonth
  • currentQuarter
  • currentYear
  • yesterday
  • lastWeek
  • priorMonth
  • priorQuarter
  • priorYear

These are most useful for queries that you want to save and use repeatedly, such as for views or reports. Just change the asOfDate each time to retrieve the same data set for different time periods.

For example, {"eq":{"postingDate":"priorYear"}}.

object

The field name and value to be compared with object values.

Example: {"status":"active"}
filterExpression
string
Default: "and"

Logical operators to apply when there are multiple filter conditions. The conditions in the filters array are implicitly numbered starting at 1. Supports and, or, and grouping with parentheses.

Shortcuts:

  • and by itself means that all conditions must be true.
  • or by itself means that at least one condition must be true.
Example: "(1 and 2) or 3"
object

Pre-defined filter options.

asOfDate
string <date>

The "as of" date to use with any relative date comparisons in filters. For example, if asOfDate is set to "2022-04-01" then priorMonth will be "03".

The current date is used if asOfDate is not set.

Example: "2022-04-01"
includeHierarchyFields
boolean
Default: false

Set to true to include hierarchical structure information with each object in the response.

Example: false
caseSensitiveComparison
boolean
Default: true

Queries are case-sensitive by default. Set to false to ignore case in a query.

Example: true
includePrivate
boolean
Default: false

By default, in a multi-entity company, queries from the top-level entity do not access data in private entities. Set includePrivate to true if you want to query data in private entities.

Example: false
Array of objects

Set the order of the results by specifying field names to sort by and whether they should be in ascending or descending order.

Example: [{"totalDue":"asc"},{"lastPaymentMadeDate":"desc"}]
Array
property name*
additional property
string
Enum: "asc" "desc"
start
integer

First record of the result set to include in the response.

Example: 1
size
integer

Number of records to include in the response.

Example: 100
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "object": "projects/project",
  • "filters": [
    • {
      • "$eq": {
        }
      }
    ],
  • "fields": [
    • "key",
    • "id",
    • "name",
    • "description",
    • "budget.budgetedDuration",
    • "progress.actualDuration",
    • "progress.percentComplete",
    • "progress.observedPercentComplete",
    • "href"
    ],
  • "orderBy": [
    • {
      • "name": "asc"
      }
    ]
}
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "83",
      • "id": "P-0045",
      • "name": "Implementation Project",
      • "description": "Software Implementation Project",
      • "budgetedDuration": "250",
      • "actualDuration": "183",
      • "percentComplete": "73",
      • "observedPercentComplete": "80",
      • "href": "/objects/projects/project/83"
      },
    • {
      • "key": "84",
      • "id": "P-0046",
      • "name": "Marketing Project",
      • "description": "Marketing campaign execution",
      • "budgetedDuration": "300",
      • "actualDuration": "250",
      • "percentComplete": "83",
      • "observedPercentComplete": "90",
      • "href": "/objects/projects/project/84"
      }
    ],
  • "ia::meta": {
    • "totalCount": 2,
    • "start": 1,
    • "pageSize": 100,
    • "next": null
    }
}