Tasks

Tasks simplify the process of capturing task data for projects as you enter transactions. The uniqueness of a task is bound to a specific project, meaning you cannot select a task without first identifying the project. Projects and tasks are available with the Construction subscription.

Use tasks (a unit of work to be performed for a project) to:

  • 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.

For more information, read more about task dimensions in the Sage Intacct Help Center.

List tasks

get/objects/projects/task

Returns a collection with a key, ID, and link for each task. This operation is mostly for use in testing; use the query service to find tasks that meet certain criteria and to specify properties that are returned.

SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "1",
      • "id": "TASK-MERIDIAN-REQ-001",
      • "href": "/objects/projects/task/1"
      },
    • {
      • "key": "2",
      • "id": "TASK-NOVA-MIG-002",
      • "href": "/objects/projects/task/2"
      },
    • {
      • "key": "3",
      • "id": "TASK-TECHSOL-CONFIG-003",
      • "href": "/objects/projects/task/3"
      }
    ],
  • "ia::meta": {
    • "totalCount": 3,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a task

post/objects/projects/task

Creates a new project task within a specified project. You may provide either a project task 'id' or a standard task id. If a standard task is used, key or id is optional - when provided, the task is created based on that standard task template.

If document sequencing is not enabled, id is required. If it is enabled, the task id is optional unless you wish to override the system-generated id.

If a parent task is provided, it must already exist in the project and defines the task hierarchy. If no parent task is specified, the system automatically creates any missing parent tasks based on the standard task hierarchy.

Task fields inherit values from the standard task unless defined in the request. Associated cost types from the standard task are also created automatically.

For more information, read about adding tasks in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
required

New task definition

name
required
string

Unique name for the task.

Example: "Client Onboarding - Requirements Gathering"
required
object

Specifies the project that the task is associated with.

key
string

Unique key for the project.

Example: "114"
id
string

Identifier for the project.

Example: "MERIDIAN-ERP-IMPLEMENTATION"
id
string

Unique identifier for the task (20 characters maximum).

Example: "01-010"
description
string or null

Description for the task.

Example: "Conduct detailed sessions with the client to identify. document, and validate business, functional, and technical requirements."
object

Specifies the parent task to which this task is subordinate.

key
string or null

Unique key for the parent task.

Example: "11"
object

Specifies the work item associated with this task. Assigning an item is required for the task to be billable and included in customer invoicing.

key
string or null

Unique key for the item.

Example: "311"
id
string or null

Identifier for the item.

Example: "SERV-IMPLEMENT-001"
object

Defines the scheduled start and end dates for the task.

startDate
string or null <date>

Specifies the date on which the project is scheduled to begin.

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

Specifies the date on which the project is scheduled to end.

Example: "2023-05-05"
object

Indicates planned, estimated, actual, approved and remaining time values, including both total and billable durations.

planned
number or null

The initial scheduled duration of the task, measured in hours.

Example: 100
estimated
number or null

Represents the current estimated total duration of the task, measured in hours.

Example: 100
isMilestone
boolean
Default: false

Indicates whether the task is a milestone. Set to true to designate the task as a key project checkpoint or deliverable.

Example: true
isUtilized
boolean
Default: false

Indicates whether the task contributes to project utilization. Set to true to mark the task as utilized, meaning the time spent is considered productive work on a customer or internal project. When set to false, represents a non-productive task, such as administration.

Example: true
isBillable
boolean
Default: false

Indicates whether the time recorded against the task is billable to a customer. Set to true to include the task in invoicing.

Example: true
wbsCode
string or null

Specifies the work breakdown structure (WBS) code for the task. This code can contain up to 8 characters and is used to categorize and organize tasks within the project.

Example: "43364836"
priority
number or null

Specifies the task's priority using a numeric value, A numeric value indicating the task priority.

Example: 2
taskStatus
string
Default: "inProgress"

Indicates the current status of the task. Once a task is marked as completed, no additional time entries can be recorded against it.

Enum: "completed" "inProgress" "notStarted" "onHold" "planned"
Example: "completed"
object

Specifies the time type to be associated with this task, such as salary or overtime. Used for posting labor costs to the general ledger and for tracking how working time is categorized.

This field is required if labor cost posting is enabled. For more information, read about how to setup labor cost posting in the Sage Intacct Help Center.

key
string or null

Unique key for the time type.

Example: "2"
id
string or null

Identifier for the time type.

Example: "Overtime"
object

Specifies the class associated with the task.

key
string or null

Unique key for the class.

Example: "19"
id
string or null

Identifier for the class.

Example: "PS-WEST"
object

Identifies a document associated with the task, such as a statement of work, technical specification, project plan or agreement.

key
string or null

Unique key for the attachment.

Example: "12"
id
string or null

Identifier for the attachment.

Example: "SOW - ERP Implementation - Meridian Technologies"
object

Specifies the predecessor task that must be completed before this task can begin. Used to establish task dependencies and enforce proper sequencing within the project schedule.

key
string or null

Unique key for the predecessor task.

Example: "1330"
object

Used to track measurable output resulting from various cost inputs, such as material, labor, and equipment.

estimate
number or null

Specifies the estimated number of production units expected to be completed for the task.

Example: 1200
description
string or null

Defines the unit of measurement for tracking production output.

Example: "Square Meter of Flooring Laid."
object

Specifies a predefined standard task used as the template for this task, defining consistent settings such as name, duration and billing attributes.

For more information, read about the Standard Task Catalog in the Sage Intacct Help Center.

id
string or null

Identifier for the standard task.

Example: "STD-REQ-001"
key
string or null

Unique key for the standard task.

Example: "13"
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "NET-XML30-1-REQ-001",
  • "name": "Requirements Gathering",
  • "project": {
    • "id": "NET-XML30-1"
    },
  • "taskStatus": "planned"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "6",
    • "id": "NET-XML30-1-REQ-001",
    • "href": "/objects/projects/task/6"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a task

get/objects/projects/task/{key}

Returns detailed information for a specified task.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the task.

Example: 497
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "6",
    • "id": "NET-XML30-1-REQ-001",
    • "parent": {
      • "key": "11",
      • "id": "NET-XML30-1-IMPL-001",
      • "name": "Implementation Phase",
      • "href": "/objects/projects/task/11"
      },
    • "name": "Requirements Gathering",
    • "project": {
      • "key": "1",
      • "id": "NET-XML30-1",
      • "name": "NetSuite XML Integration - Phase 1",
      • "startDate": "2023-02-25",
      • "endDate": "2023-04-25",
      • "href": "/objects/projects/project/56"
      },
    • "customer": {
      • "key": "1",
      • "id": "CUST-ATLAS-001",
      • "name": "Corley Manufacturing Ltd",
      • "href": "/objects/accounts-receivable/customer/41"
      },
    • "productionUnits": {
      • "estimate": 1200,
      • "description": "Error Handling Rule Implemented."
      },
    • "item": {
      • "key": "311",
      • "id": "SERV-INTEG-001",
      • "name": "Professional Services - Integration Development",
      • "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": null,
      • "approved": 0,
      • "plannedBillable": 0,
      • "estimatedBillable": 0,
      • "actualBillable": 0,
      • "approvedBillable": 0
      },
    • "percentComplete": "0.25",
    • "observedPercentComplete": "0.30",
    • "description": "Gather and document technical and business requirements for the NetSuite XML integration.",
    • "isMilestone": false,
    • "isUtilized": false,
    • "isBillable": false,
    • "wbsCode": "1",
    • "priority": 1,
    • "taskStatus": "inProgress",
    • "timeType": {
      • "key": "2",
      • "id": "Overtime",
      • "href": "/objects/time/time-type/2"
      },
    • "class": {
      • "key": "19",
      • "id": "CLASS-PS-INTEG",
      • "name": "Professional Services - Integration Projects",
      • "href": "/objects/company-config/class/19"
      },
    • "audit": {
      • "createdDateTime": "2025-02-15T03:03:31Z",
      • "modifiedDateTime": "2025-02-15T03:03:32Z",
      • "createdByUser": {
        },
      • "createdBy": "159",
      • "modifiedByUser": {
        },
      • "modifiedBy": "159"
      },
    • "dependentOn": {
      • "key": "1",
      • "id": "NET-XML30-1-DESIGN-002",
      • "name": "System Design",
      • "href": "/objects/projects/task/1"
      },
    • "root": {
      • "key": "1",
      • "id": "NET-XML30-1-ROOT-000",
      • "name": "NetSuite Integration - Phase 1",
      • "href": "/objects/projects/task/1"
      },
    • "standardTask": {
      • "key": "1",
      • "id": "STD-INTEG-REQ-001",
      • "name": "Requirements Gathering - Integration Projects",
      • "href": "/objects/construction/standard-task/1"
      },
    • "attachment": {
      • "key": null,
      • "id": null
      },
    • "href": "/objects/projects/task/6"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a task

patch/objects/projects/task/{key}

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

If the task does not already reference a standard task, you may assign one by by providing a standard task id. The standard task id must exactly match the project task id. Assigning a standard task does not update any other task fields. Once set, the standard task reference or it's hierarchy cannot be changed.

For more information, read about defining standard tasks in the Sage Intacct Help Center.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the task.

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

Unique name for the task.

Example: "Client Onboarding - Requirements Gathering"
description
string or null

Description for the task.

Example: "Conduct detailed sessions with the client to identify. document, and validate business, functional, and technical requirements."
object

Specifies the parent task to which this task is subordinate.

key
string or null

Unique key for the parent task.

Example: "11"
object

Specifies the work item associated with this task. Assigning an item is required for the task to be billable and included in customer invoicing.

key
string or null

Unique key for the item.

Example: "311"
id
string or null

Identifier for the item.

Example: "SERV-IMPLEMENT-001"
object

Defines the scheduled start and end dates for the task.

startDate
string or null <date>

Specifies the date on which the project is scheduled to begin.

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

Specifies the date on which the project is scheduled to end.

Example: "2023-05-05"
object

Indicates planned, estimated, actual, approved and remaining time values, including both total and billable durations.

planned
number or null

The initial scheduled duration of the task, measured in hours.

Example: 100
estimated
number or null

Represents the current estimated total duration of the task, measured in hours.

Example: 100
isMilestone
boolean
Default: false

Indicates whether the task is a milestone. Set to true to designate the task as a key project checkpoint or deliverable.

Example: true
isUtilized
boolean
Default: false

Indicates whether the task contributes to project utilization. Set to true to mark the task as utilized, meaning the time spent is considered productive work on a customer or internal project. When set to false, represents a non-productive task, such as administration.

Example: true
isBillable
boolean
Default: false

Indicates whether the time recorded against the task is billable to a customer. Set to true to include the task in invoicing.

Example: true
wbsCode
string or null

Specifies the work breakdown structure (WBS) code for the task. This code can contain up to 8 characters and is used to categorize and organize tasks within the project.

Example: "43364836"
priority
number or null

Specifies the task's priority using a numeric value, A numeric value indicating the task priority.

Example: 2
taskStatus
string
Default: "inProgress"

Indicates the current status of the task. Once a task is marked as completed, no additional time entries can be recorded against it.

Enum: "completed" "inProgress" "notStarted" "onHold" "planned"
Example: "completed"
object

Specifies the time type to be associated with this task, such as salary or overtime. Used for posting labor costs to the general ledger and for tracking how working time is categorized.

This field is required if labor cost posting is enabled. For more information, read about how to setup labor cost posting in the Sage Intacct Help Center.

key
string or null

Unique key for the time type.

Example: "2"
id
string or null

Identifier for the time type.

Example: "Overtime"
object

Specifies the class associated with the task.

key
string or null

Unique key for the class.

Example: "19"
id
string or null

Identifier for the class.

Example: "PS-WEST"
object

Identifies a document associated with the task, such as a statement of work, technical specification, project plan or agreement.

key
string or null

Unique key for the attachment.

Example: "12"
id
string or null

Identifier for the attachment.

Example: "SOW - ERP Implementation - Meridian Technologies"
object

Specifies the predecessor task that must be completed before this task can begin. Used to establish task dependencies and enforce proper sequencing within the project schedule.

key
string or null

Unique key for the predecessor task.

Example: "1330"
object

Used to track measurable output resulting from various cost inputs, such as material, labor, and equipment.

estimate
number or null

Specifies the estimated number of production units expected to be completed for the task.

Example: 1200
description
string or null

Defines the unit of measurement for tracking production output.

Example: "Square Meter of Flooring Laid."
object

Specifies a predefined standard task used as the template for this task, defining consistent settings such as name, duration and billing attributes.

For more information, read about the Standard Task Catalog in the Sage Intacct Help Center.

id
string or null

Identifier for the standard task.

Example: "STD-REQ-001"
key
string or null

Unique key for the standard task.

Example: "13"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "taskStatus": "completed",
  • "duration": {
    • "estimated": 27
    }
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "6",
    • "id": "NET-XML30-1-REQ-001",
    • "href": "/objects/projects/task/6"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a task

delete/objects/projects/task/{key}

Deletes a task.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the task.

Example: 497
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
    }
}