openapi: 3.0.3 info: title: Time description: "Timesheets ensure that workers are paid appropriately. They also help project managers invoice clients and track overall project costs and expenses over time. \n" version: '1' servers: - url: https://api.intacct.com/ia/api/v1 tags: - name: Time types description: >- Time types capture and track categories of time, such as salary, contract hours, overtime, vacation, and travel time. x-displayName: Time types - name: Timesheet lines description: >- A timesheet line is an entry on a timesheet that represents work done by one employee on a single day. Each timesheet line should reflect the dimensions used by the company. That is, work done for one customer or project should be recorded in a separate timesheet line from work done for another customer or project, etc. Reports and invoices use the dimension values to group timesheet lines for billing. x-displayName: Timesheet lines - name: Timesheets description: "Timesheets ensure that workers are paid appropriately. They also help project managers invoice clients and track overall project costs and expenses over time. Timesheets are used in both Projects and Time & Expenses. A subscription to Projects is required to approve timesheets and save timesheets as drafts. \n\nEach time a timesheet entry is submitted, a timesheet approval history object is created for tracking purposes. Many settings that impact required timesheet information are configured in Projects. See [Configure Projects](https://www.intacct.com/ia/docs/en_US/help_action/Projects/configure-projects.htm?) in the Sage Intacct Help Center for more information.\n" x-displayName: Timesheets paths: /objects/time/time-type: get: summary: List time types description: Returns a collection with a key, ID, and link for each time type. tags: - Time types operationId: list-time-type responses: '200': description: OK content: application/json: schema: type: object title: List of time-type objects properties: ia::result: type: array items: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata-pages' examples: List time types: value: ia::result: - key: '46' id: Overtime href: /objects/time/time-type/46 - key: '44' id: Part time href: /objects/time/time-type/44 - key: '40' id: Full time href: /objects/time/time-type/40 ia::meta: totalCount: 3 start: 1 pageSize: 5 next: 0 previous: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] post: summary: Create a time type description: Creates a new time type. tags: - Time types operationId: create-time-type requestBody: description: '' required: true content: application/json: schema: allOf: - $ref: '#/components/schemas/time-time-type' - $ref: '#/components/schemas/time-typeRequiredProperties' examples: Create a time type: value: id: Overtime earningType: key: '22' glAccount: key: '12' offsetGLAccount: key: '15' status: active responses: '201': description: Created content: application/json: schema: type: object title: New time-type properties: ia::result: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata' examples: Reference to new time type: value: ia::result: key: '10' id: '10' href: /objects/time/time-type/10 ia::meta: totalCount: 3 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] /objects/time/time-type/{key}: parameters: - name: key description: System-assigned unique key for the time type. in: path required: true schema: type: string example: '99' get: summary: Get a time type description: Returns detailed information for a specified time type. tags: - Time types operationId: get-time-type-key responses: '200': description: OK content: application/json: schema: type: object title: Details of the time-type properties: ia::result: $ref: '#/components/schemas/time-time-type' ia::meta: $ref: '#/components/schemas/metadata' examples: Get a time type: value: ia::result: key: '46' id: Overtime href: /objects/time/time-type/46 earningType: href: /objects/company-config/earning-type/22 key: '22' id: Salary glAccount: href: /objects/general-ledger/account/12 key: '12' id: '5001' name: Labor offsetGLAccount: href: /objects/general-ledger/account/15 key: '15' id: '5002' name: Labor Offset status: active entity: key: '46' id: Western Region name: Western Region href: /objects/company-config/entity/46 ia::meta: totalCount: 3 totalSuccess: 3 totalError: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] patch: summary: Update a time type description: >- Updates an existing time type by setting field values. Any fields not provided remain unchanged. tags: - Time types operationId: update-time-type-key requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/time-time-type' - type: object properties: id: readOnly: true examples: Update a time type: value: status: active responses: '200': description: OK content: application/json: schema: type: object title: Updated time-type properties: ia::result: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata' examples: Reference to updated time type: value: ia::result: key: '10' id: Overtime href: /objects/time/time-type/10 ia::meta: totalCount: 3 totalSuccess: 3 totalError: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] delete: summary: Delete a time type description: Deletes a time type. tags: - Time types operationId: delete-time-type-key responses: '204': description: No Content '400': $ref: '#/components/responses/400error' security: - OAuth2: [] /objects/time/timesheet-line: get: summary: List timesheet lines description: >- Returns up to 100 object references from the collection with a key, ID, and link for each timesheet line. This operation is mostly for use in testing; use query to find timesheet lines that meet certain criteria and to specify properties that are returned. tags: - Timesheet lines operationId: list-time-timesheet-line responses: '200': description: OK content: application/json: schema: type: object title: List timesheet lines properties: ia::result: type: array items: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata-pages' examples: List of timesheet lines: value: ia::result: - key: '4101' id: '4101' href: /objects/time/timesheet-line/4101 - key: '4102' id: '4102' href: /objects/time/timesheet-line/4102 - key: '4103' id: '4103' href: /objects/time/timesheet-line/4103 ia::meta: totalCount: 3 start: 1 pageSize: 100 next: 0 previous: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] post: summary: Create a timesheet line description: Creates a new timesheet line. tags: - Timesheet lines operationId: create-time-timesheet-line requestBody: description: timesheet-line required: true content: application/json: schema: allOf: - $ref: '#/components/schemas/time-timesheet-line' - $ref: '#/components/schemas/time-timesheet-lineRequiredProperties' examples: Creates a timesheet line: value: timesheet: key: '11' dimensions: department: key: '11' location: key: '22' project: key: '1' costType: key: '2' task: key: '1' customer: key: '13' item: key: '13' entryDate: '2024-04-01' quantity: 6 description: Week of 04/01/24 notes: Talked to client regarding project timeType: key: '1' isBillable: true responses: '201': description: Created content: application/json: schema: type: object title: New timesheet-line properties: ia::result: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata' examples: Reference to new timesheet line: value: ia::result: key: '4108' id: '4108' href: /objects/time/timesheet-line/4108 ia::meta: totalCount: 1 totalSuccess: 1 totalError: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] /objects/time/timesheet-line/{key}: parameters: - name: key description: System-assigned unique key for the timesheet line. in: path required: true schema: type: string example: '99' get: summary: Get a timesheet line description: Returns detailed information for a specified timesheet line. tags: - Timesheet lines operationId: get-time-timesheet-line-key responses: '200': description: OK content: application/json: schema: type: object title: Details of the timesheet-line properties: ia::result: $ref: '#/components/schemas/time-timesheet-line' ia::meta: $ref: '#/components/schemas/metadata' examples: Details of the timesheet line: value: ia::result: key: '1411' id: '1411' href: /objects/time/timesheet-line/1411 timesheet: key: '11' id: '11' href: /objects/time/timesheet/11 dimensions: employee: key: '10' id: EMP-10 name: Thomas, Glenn href: /objects/company-config/employee/10 department: key: '11' id: DEP-11 name: Sales and Marketing href: /objects/company-config/department/11 location: key: '22' id: LOC-22 name: California href: /objects/company-config/location/22 project: key: '1' id: Proj-001 name: Implementation href: /objects/projects/project/1 costType: key: '2' id: '2' name: Project Expense href: /objects/construction/cost-type/2 task: id: '1' key: '1' name: Project Task href: /objects/projects/task/1 customer: key: '13' id: CUST-13 name: Jack In the Box href: /objects/accounts-receivable/customer/13 item: key: '13' id: Case 13 name: Platform pack href: /objects/inventory-control/item/13 entryDate: '2024-04-01' quantity: 6 lineNumber: 1 description: Week of 04/01/24 notes: Talked to client regarding project state: approved timeType: key: '1' id: Salaries At Root href: /objects/time/time-type/1 isBillable: true isBilled: 'false' statisticalJournal: key: '7483' id: TSSJ href: /objects/general-ledger/statistical-account/10 billableUtilizedAccount: key: '8293' id: '9293' href: /objects/general-ledger/statistical-account/8293 nonBbillableUtilizedAccount: key: '8294' id: '9294' href: /objects/general-ledger/statistical-account/8294 billableNonUtilizedAccount: key: '8295' id: '9295' href: /objects/general-ledger/statistical-account/8295 nonBillableNonUtilizedAccount: key: '8296' id: '9296' href: /objects/general-ledger/statistical-account/8296 hours: billable: 8 nonBillable: 2 approved: 10 approvedBillable: 8 approvedNonBillable: 2 utilized: 10 nonUtilized: 4 approvedUtilized: 3 approvedNonUtilized: 2 externalPayroll: costRate: 1 billingRate: 1 amount: '90' employerTaxes: 15 fringes: 10 cashFringes: 2 laborClass: key: '15' id: LC001 name: Labor Class href: /objects/construction/labor-class/15 laborShift: key: '18' id: LS001 name: Labor Shift href: /objects/construction/labor-class/18 laborUnion: key: '20' id: LU001 name: Labor Union href: /objects/construction/labor-class/20 audit: createdDateTime: '2022-04-20T16:20:00Z' modifiedDateTime: '2022-04-20T16:20:00Z' createdBy: '1' modifiedBy: '95' ia::meta: totalCount: 3 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] patch: summary: Update a timesheet line description: >- Updates an existing timesheet line by setting field values. Any fields not provided remain unchanged. Whether approvals are turned on for a company, and where a timesheet is in the approval process determines if a timesheet line can be edited. tags: - Timesheet lines operationId: update-time-timesheet-line-key requestBody: content: application/json: schema: $ref: '#/components/schemas/time-timesheet-line' examples: Updates a timesheet line: value: key: '40' description: Week of 04/01/24 notes: Talked to client regarding project responses: '200': description: OK content: application/json: schema: type: object title: Updated timesheet-line properties: ia::result: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata' examples: Reference to updated timesheet line: value: ia::result: key: '40' id: '40' href: /objects/time/timesheet-line/40 ia::meta: totalCount: 1 totalSuccess: 1 totalFailure: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] delete: summary: Delete a timesheet line description: >- Deletes a timesheet line. If a timesheet has posted to the General Ledger or has been invoiced, it cannot be deleted. tags: - Timesheet lines operationId: delete-time-timesheet-line-key responses: '204': description: No Content '400': $ref: '#/components/responses/400error' security: - OAuth2: [] /objects/time/timesheet: get: summary: List timesheets description: >- Returns up to 100 object references from the collection with a key, ID, and link for each timesheet. This operation is mostly for use in testing; use query to find timesheets that meet certain criteria and to specify properties that are returned. tags: - Timesheets operationId: list-time-timesheet responses: '200': description: OK content: application/json: schema: type: object title: List of timesheets properties: ia::result: type: array items: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata-pages' examples: List of timesheets: value: ia::result: - key: '101' id: '101' href: /objects/time/timesheet/101 - key: '102' id: '102' href: /objects/time/timesheet/102 - key: '103' id: '103' href: /objects/time/timesheet/103 ia::meta: totalCount: 3 start: 1 pageSize: 100 next: 0 previous: 0 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] post: summary: Create a timesheet description: Creates a new timesheet. tags: - Timesheets operationId: create-time-timesheet requestBody: description: timesheet required: true content: application/json: schema: allOf: - $ref: '#/components/schemas/time-timesheet' - $ref: '#/components/schemas/time-timesheetRequiredProperties' examples: Create a timesheet: value: beginDate: '2024-01-01' state: submitted description: Week of 01/01/24 employee: key: '973' attachment: key: '8420' lines: - dimensions: department: key: '11' location: key: '22' project: key: '1' costType: key: '2' task: key: '1' customer: key: '13' item: key: '13' entryDate: '2024-04-01' quantity: 6 description: Week of 04/01/24 notes: Talked to client regarding project timeType: key: '1' isBillable: true responses: '201': description: Created content: application/json: schema: type: object title: New timesheet properties: ia::result: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata' examples: Reference to new timesheet: value: ia::result: key: '40' id: '40' href: /objects/time/timesheet/40 ia::meta: totalCount: 1 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] /objects/time/timesheet/{key}: parameters: - name: key description: System-assigned unique key for the timesheet. in: path required: true schema: type: string example: '99' get: summary: Get a timesheet description: Returns detailed information for a specified timesheet. tags: - Timesheets operationId: get-time-timesheet-key responses: '200': description: OK content: application/json: schema: type: object title: Details of the timesheet properties: ia::result: $ref: '#/components/schemas/time-timesheet' ia::meta: $ref: '#/components/schemas/metadata' examples: Details of the timesheet: value: ia::result: key: '23' id: '23' href: /objects/time/timesheet/23 beginDate: '2024-01-01' endDate: '2024-12-31' postingDate: '2024-01-01' state: submitted unitOfMeasure: Hours hoursInDay: 8 description: Week of 01/01/24 calculationMethod: hourly postActualLaborCost: false employee: key: '973' id: E-001 href: /objects/company-config/employee/973 employeeContact: key: '977' id: John Smith firstName: John lastName: Smith href: /objects/company-config/contact/977 attachment: key: '8420' id: Attach-01 href: /objects/company-config/attachment/973 employeeClassId: EMP_CLS_001 employeeDepartmentId: DEP-11 employeeLocation: key: '22' id: LOC-22 href: /objects/company-config/location/22 employeePositionId: MGR lines: - key: '1411' id: '1411' href: /objects/time/timesheet-line/1411 timesheet: key: '11' id: '11' href: /objects/time/timesheet/11 dimensions: department: key: '11' id: DEP-11 name: Sales and Marketing href: /objects/company-config/department/11 location: key: '22' id: LOC-22 name: California href: /objects/company-config/location/22 employee: key: '10' id: EMP-10 name: Garcia, John href: /objects/company-config/employee/10 project: key: '1' id: Proj-001 name: Implementation href: /objects/projects/project/1 costType: id: '2' key: '2' name: Project Expense href: /objects/construction/cost-type/2 task: id: '1' key: '1' name: Project Task href: /objects/projects/task/1 customer: key: '13' id: CUST-13 name: Jack In the Box href: /objects/accounts-receivable/customer/13 item: key: '13' id: Case 13 name: Platform pack href: /objects/inventory-control/item/13 entryDate: '2024-04-01' quantity: 6 lineNumber: 1 description: Week of 04/01/24 notes: Talked to client regarding project state: approved timeType: key: '1' id: Salaries At Root name: Salaries At Root href: /objects/time/time-type/1 isBillable: true isBilled: 'false' statisticalJournal: key: '7483' id: '7483' href: /objects/company-config/employee/10 billableUtilizedAccount: key: '8293' id: '8293' href: /objects/general-ledger/statistical-account/8293 nonBbillableUtilizedAccount: key: '8294' id: '8294' href: /objects/general-ledger/statistical-account/8294 billableNonUtilizedAccount: key: '8295' id: '8295' href: /objects/general-ledger/statistical-account/8295 nonBillableNonUtilizedAccount: key: '8296' id: '8296' href: /objects/general-ledger/statistical-account/8296 hours: billable: 8 nonBillable: 2 approved: 10 approvedBillable: 8 approvedNonBillable: 2 utilized: 10 nonUtilized: 4 approvedUtilized: 3 approvedNonUtilized: 2 externalPayroll: costRate: 1 billingRate: 1 amount: '90' employerTaxes: 15 fringes: 10 cashFringes: 2 laborClass: key: '15' id: '15' name: Labor Class href: /objects/construction/labor-class/15 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 audit: createdDateTime: '2022-04-20T16:20:00Z' modifiedDateTime: '2022-04-20T16:20:00Z' createdBy: '1' modifiedBy: '95' ia::meta: totalCount: 3 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] patch: summary: Update a timesheet description: >- Updates an existing timesheet by setting field values. Any fields not provided remain unchanged. tags: - Timesheets operationId: update-time-timesheet-key requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/time-timesheet' - type: object properties: id: readOnly: true examples: Updates a timesheet: value: state: submitted description: Week of 01/01/24 responses: '200': description: OK content: application/json: schema: type: object title: Updated timesheet properties: ia::result: $ref: '#/components/schemas/object-reference' ia::meta: $ref: '#/components/schemas/metadata' examples: Reference to Timesheet: value: ia::result: key: '40' id: '40' href: /objects/time/timesheet/40 ia::meta: totalCount: 1 '400': $ref: '#/components/responses/400error' security: - OAuth2: [] delete: summary: Delete a timesheet description: Deletes a timesheet. tags: - Timesheets operationId: delete-time-timesheet-key responses: '204': description: No Content '400': $ref: '#/components/responses/400error' security: - OAuth2: [] components: schemas: time-typeRequiredProperties: type: object required: - id 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: object example: {} propertySet: type: object example: {} details: type: array items: type: object properties: code: type: string example: invalidRequest message: type: string example: /newDate is not a valid field errorId: type: string example: REST-1043 target: type: string example: /newDate additionalInfo: type: object properties: messageId: type: string example: IA.NOT_A_VALID_FIELD placeholders: type: object example: {} propertySet: type: object example: {} ia::meta: $ref: '#/components/schemas/metadata' example: ia::result: ia::error: code: invalidRequest message: A POST request requires a payload errorId: REST-1028 additionalInfo: messageId: IA.REQUEST_REQUIRES_A_PAYLOAD placeholders: OPERATION: POST propertySet: {} supportId: Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo ia::meta: totalCount: 1 totalSuccess: 0 totalError: 1 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 entity-ref: type: object description: >- The entity that the object is associated with. Objects created at the top level do not have an entity reference so the `key`, `id`, and `name` properties will be `null`. readOnly: true properties: key: type: string description: Entity key. readOnly: true nullable: true example: '46' id: type: string description: Entity ID. readOnly: true nullable: true example: CORP name: type: string description: Entity name. readOnly: true nullable: true example: Corp href: type: string description: URL endpoint for the entity. readOnly: true example: /objects/company-config/entity/46 time-time-type: type: object description: Line items in time types capture and track categories of time. properties: key: type: string description: System-assigned key for the time-type. readOnly: true example: '23' id: type: string description: Unique identifier for the time type. example: Overtime href: type: string description: URL endpoint for the time type. readOnly: true example: /objects/time/time-type/23 earningType: type: object description: >- Posts project labor costs to one or more GL journals. Optionally overrides a standard earning type for an employee. properties: href: type: string description: URL endpoint for the earning type. readOnly: true example: /objects/company-config/earning-type/18 key: type: string description: Unique key for the earning type. example: '18' nullable: true id: type: string description: Unique identifier of the earning type. example: Salary nullable: true glAccount: type: object description: >- General ledger account to post the labor cost for any `time.timesheet-line` with the time type. properties: href: type: string description: URL endpoint for the GL account. readOnly: true example: /objects/general-ledger/account/12 key: type: string description: Unique key for the GL account. example: '12' nullable: true id: type: string description: Unique identifier of the GL account. example: '5001' nullable: true name: type: string description: Time type GL account name. example: Labor readOnly: true nullable: true offsetGLAccount: type: object description: >- The liability account to use for the time type, such as accrued compensation. properties: href: type: string description: URL endpoint for the offset GL account. readOnly: true example: /objects/general-ledger/account/13 key: type: string description: Unique key for the offset GL account. example: '13' nullable: true id: type: string description: Unique identifier of the time type offset account. example: '5002' nullable: true name: type: string description: Time type Offset account name. example: Labor Offset readOnly: true nullable: true status: $ref: '#/components/schemas/status' entity: $ref: '#/components/schemas/entity-ref' time-timesheet-lineRequiredProperties: type: object required: - entryDate - quantity dimension-ref: type: object properties: location: type: object properties: key: type: string description: Location key example: '22' nullable: true id: type: string description: Location ID example: LOC-22 nullable: true name: type: string description: Location name readOnly: true example: California nullable: true href: type: string readOnly: true example: /objects/company-config/location/22 department: type: object properties: key: type: string description: Department key example: '11' nullable: true id: type: string description: Department ID example: DEP-11 nullable: true name: type: string description: Department name readOnly: true example: Sales and Marketing nullable: true href: type: string readOnly: true example: /objects/company-config/department/11 employee: type: object properties: key: type: string description: Employee key example: '10' nullable: true id: type: string description: Employee ID example: EMP-10 nullable: true name: type: string description: Employee name readOnly: true example: Thomas, Glenn nullable: true href: type: string example: /objects/company-config/employee/10 readOnly: true project: type: object properties: key: type: string description: Project key example: '2' nullable: true id: type: string description: Project ID example: NET-XML30-2 nullable: true name: type: string description: Project name readOnly: true example: Talcomp training nullable: true href: type: string readOnly: true example: /objects/projects/project/2 customer: type: object properties: key: type: string description: Customer key example: '13' nullable: true id: type: string description: Customer ID example: CUST-13 nullable: true name: type: string description: Customer name readOnly: true example: Jack In the Box nullable: true href: type: string readOnly: true example: /objects/accounts-receivable/customer/13 vendor: type: object properties: key: type: string description: Vendor key example: '357' nullable: true id: type: string description: Vendor ID example: '1605212096809' nullable: true name: type: string description: Vendor name readOnly: true example: GenLab nullable: true href: type: string readOnly: true example: /objects/accounts-payable/vendor/357 item: type: object properties: key: type: string description: Item key example: '13' nullable: true id: type: string description: Item ID example: Case 13 nullable: true name: type: string description: Item name readOnly: true example: Platform pack nullable: true href: type: string readOnly: true example: /objects/inventory-control/item/13 warehouse: type: object properties: key: type: string description: Warehouse key example: '6' nullable: true id: type: string description: Warehouse ID example: WH01 nullable: true name: type: string description: Warehouse name readOnly: true example: WH01 nullable: true href: type: string readOnly: true example: /objects/inventory-control/warehouse/6 class: type: object properties: key: type: string description: Class key example: '731' nullable: true id: type: string description: Class ID example: REST_CLS_001 nullable: true name: type: string description: Class name readOnly: true example: Enterprises nullable: true href: type: string readOnly: true example: /objects/company-config/class/731 task: type: object properties: id: type: string description: Task ID example: '1' nullable: true key: type: string description: Task key example: '1' nullable: true name: type: string description: Task name readOnly: true example: Project Task nullable: true href: type: string readOnly: true example: /objects/projects/task/1 costType: type: object properties: id: type: string description: Cost Type ID example: '2' nullable: true key: type: string description: Cost Type key example: '2' nullable: true name: type: string description: Cost Type name readOnly: true example: Project Expense nullable: true href: type: string readOnly: true example: /objects/construction/cost-type/2 asset: type: object properties: id: type: string description: Asset ID example: A001 nullable: true key: type: string description: Asset key example: '1' nullable: true name: type: string description: Asset name readOnly: true example: Laptop 1 nullable: true href: type: string readOnly: true example: /objects/fixed-assets/asset/1 contract: type: object properties: id: type: string description: Contract ID example: CON-0045-1 nullable: true key: type: string description: Contract key example: '12' nullable: true name: type: string description: Contract name readOnly: true example: ACME Widgets - Service nullable: true href: type: string readOnly: true example: /objects/contracts/contract/12 affiliateEntity: type: object properties: key: type: string description: Affiliate entity key example: '23' nullable: true id: type: string description: Affiliate entity ID example: AFF-23 nullable: true href: type: string readOnly: true example: /objects/affiliate-entity/23 name: type: string readOnly: true description: Affiliate entity name example: 100-USA nullable: true audit: type: object readOnly: true properties: createdDateTime: description: Date-time when this record was created. type: string format: date-time readOnly: true example: '2023-05-16T15:34:35Z' modifiedDateTime: description: Date-time when this record was modified. type: string format: date-time readOnly: true example: '2024-09-14T21:23:42Z' createdBy: description: Key for the user who created this object. type: string readOnly: true nullable: true deprecated: true example: '436' modifiedBy: description: Key for the user who last modified this object. type: string readOnly: true nullable: true deprecated: true example: '3086' createdByUser: type: object description: The user who created this object. readOnly: true properties: key: type: string description: User key. readOnly: true nullable: true example: '436' id: type: string description: User login ID. readOnly: true nullable: true example: JohnDoe href: type: string readOnly: true description: URL endpoint for the user. example: /objects/company-config/user/436 modifiedByUser: type: object description: The user who last modified this object. readOnly: true properties: key: type: string description: User key. readOnly: true nullable: true example: '3086' id: type: string description: User login ID. readOnly: true nullable: true example: JaneDoe href: type: string readOnly: true description: URL endpoint for the user. example: /objects/company-config/user/3086 time-timesheet-line: type: object description: >- Line items in a timesheet represent time details for specified periods captured in the timesheet. properties: key: type: string description: System-assigned unique key for the timesheet line. readOnly: true example: '1411' id: type: string description: >- Unique identifier for the timesheet line. This value is the same as the 'key' for this object. readOnly: true example: '1411' href: type: string description: URL endpoint for the timesheet line. readOnly: true example: /objects/time/timesheet-line/1411 timesheet: type: object description: The timesheet to which the line belongs. properties: key: type: string description: Unique key for the timesheet. example: '11' id: type: string description: Unique identifier of the timesheet. example: '11' href: type: string description: URL endpoint for the timesheet. example: /objects/time/timesheet/11 readOnly: true entryDate: type: string format: date description: Date of the timesheet line entry. example: '2024-04-01' quantity: type: number description: Number of hours or quantity. example: 6 lineNumber: type: integer description: Line number of the timesheet line entry. readOnly: true example: 1 description: type: string description: Description of the individual timesheet line. example: '04/01/24: work on Project Z.' nullable: true notes: type: string description: Notes about the timesheet line. example: Talked to client regarding project nullable: true state: type: string description: >- State of the timesheet line in the approval cycle, such as `approved` or `declined`. readOnly: true example: approved default: draft enum: - submitted - approved - partiallyApproved - declined - draft - saved - readyForApproval timeType: type: object description: >- Categorizes the time. Each company's time types can differ and can include salary, contract hours, overtime, vacation, travel time, and so on. properties: key: type: string description: Unique key for the time type. example: '1' nullable: true id: type: string description: Unique identifier of the Time type. example: Salaries At Root nullable: true href: type: string description: URL endpoint for the time type. example: /objects/time/time-type/1 readOnly: true nullable: true isBillable: type: boolean description: >- Indicates whether the line can be billed. Set to `true` if the line can be billed to a customer. example: true default: false isBilled: type: string description: Indicates whether the line has been billed to a customer. example: 'false' enum: - 'true' - 'false' - partial default: false readOnly: true statisticalJournal: type: object description: >- Statistical journal used for the timesheet line. Statistical account entries are non-monetary and simply increase or decrease a value. properties: key: type: string description: Unique key for the statistical journal. example: '7483' readOnly: true nullable: true id: type: string description: Unique identifier of the statistical journal. example: TSSJ readOnly: true nullable: true href: type: string description: URL endpoint for the statistical journal. readOnly: true example: /objects/general-ledger/statistical-journal/7483 readOnly: true billableUtilizedGLAccount: type: object description: General ledger account used for the billable utilized time recorded. properties: key: type: string description: Unique key for the GL account. readOnly: true example: '8293' nullable: true id: type: string description: Unique identifier for the GL account. readOnly: true example: '9293' nullable: true href: type: string description: URL endpoint for the GL account. readOnly: true example: /objects/general-ledger/statistical-account/8293 readOnly: true nonBillableUtilizedGLAccount: type: object description: >- General ledger account used for the non-billable utilized time recorded. properties: key: type: string description: Unique key for the GL account. readOnly: true example: '8294' nullable: true id: type: string description: Unique identifier of the GL account. readOnly: true example: '9294' nullable: true href: type: string description: URL endpoint for the GL account. readOnly: true example: /objects/general-ledger/statistical-account/8294 readOnly: true billableNonUtilizedGLAccount: type: object description: >- General ledger account used for the billable non-utilized time recorded. properties: key: type: string description: Unique key for the GL account. readOnly: true example: '8295' nullable: true id: type: string description: Unique identifier of the GL account. readOnly: true example: '9295' nullable: true href: type: string description: URL endpoint for the GL account. readOnly: true example: /objects/general-ledger/statistical-account/8295 readOnly: true nonBillableNonUtilizedGLAccount: type: object description: >- General ledger account used for the non-billable non-utilized time recorded. properties: key: type: string description: Unique key for the GL account. readOnly: true example: '8296' nullable: true id: type: string description: >- Unique identifier of the GL Account for Non-Billable Non-Utilized entry. readOnly: true example: '9296' nullable: true href: type: string description: URL endpoint for the GL account. readOnly: true example: /objects/general-ledger/statistical-account/8296 readOnly: true hours: type: object description: Details about the hours recorded on the timesheet line. properties: billable: type: number description: Number of billable hours. example: 4 readOnly: true nullable: true nonBillable: type: number description: Number of non-billable hours. example: 4 readOnly: true nullable: true approved: type: number description: Number of approved hours. example: 8 readOnly: true nullable: true approvedBillable: type: number description: Number of approved billable hours. example: 4 readOnly: true nullable: true approvedNonBillable: type: number description: Number of approved non-billable hours. example: 4 readOnly: true nullable: true utilized: type: number description: Utilized or actual hours worked against the budgeted hours. example: 8 readOnly: true nullable: true nonUtilized: type: number description: >- Non-utilized hours or hours not worked against the budgeted hours. example: 4 readOnly: true nullable: true approvedUtilized: type: number description: >- Approved utilized or actual hours worked against the budgeted hours. example: 3 readOnly: true nullable: true approvedNonUtilized: type: number description: >- Approved non-utilized hours or hours not worked against the budgeted hours. example: 2 readOnly: true nullable: true readOnly: true externalPayroll: type: object description: >- External payroll details, such as information from Sage Intacct Construction Payroll. properties: costRate: type: number description: External cost rate used. example: 115 nullable: true billingRate: type: number description: External billing rate used. example: 1 nullable: true amount: type: string description: Labor amount. (Construction subscription.) example: '90' format: decimal-precision-2 nullable: true employerTaxes: type: number description: Employer taxes. (Construction subscription.) example: 15 nullable: true fringes: type: number description: Amount of the fringes cost. (Construction subscription.) example: 10 nullable: true cashFringes: type: number description: Amount of the cash fringes cost. (Construction subscription.) example: 2 nullable: true laborClass: type: object description: Labor class for the timesheet line. (Construction subscription.) properties: key: type: string description: Unique key for the labor class. example: '15' nullable: true id: type: string description: Unique identifier of the labor class. example: LC001 nullable: true name: type: string description: Labor class name associated with the timesheet. readOnly: true example: Journeyperson nullable: true href: type: string description: URL endpoint for the class dimension. readOnly: true example: /objects/construction/labor-class/15 readOnly: true laborShift: type: object description: Labor shift for the timesheet line. (Construction subscription.) properties: key: type: string description: Unique key for the labor shift. example: '18' nullable: true id: type: string description: Unique identifier of the labor shift. example: LS001 nullable: true name: type: string description: Labor shift associated with the timesheet. readOnly: true example: Swing shift nullable: true href: type: string description: URL endpoint for the labor shift. readOnly: true example: /objects/construction/labor-shift/18 readOnly: true laborUnion: type: object description: Labor union for the timesheet line. (Construction subscription.) properties: key: type: string description: Unique key for the labor union. example: '20' nullable: true id: type: string description: Unique identifier of the labor union. example: LU001 nullable: true name: type: string description: Labor union associated with the timesheet. readOnly: true example: Steamfitters Local 467 nullable: true href: type: string description: URL endpoint for the labor union. readOnly: true example: /objects/construction/labor-union/20 readOnly: true dimensions: type: object allOf: - $ref: '#/components/schemas/dimension-ref' - type: object properties: location: type: object description: Company location. properties: key: type: string description: Unique key for the location. example: '1' nullable: true id: type: string description: Unique identifier of the location. example: '1' nullable: true name: readOnly: true type: string description: Location name example: San Jose nullable: true href: type: string description: URL endpoint for the location. readOnly: true example: /objects/company-config/location/1 department: type: object description: Company department. properties: key: type: string description: Unique key for the department. example: '1' nullable: true id: type: string description: Unique identifier of the department. example: '1' nullable: true name: type: string description: Department name readOnly: true example: IT nullable: true href: type: string description: URL endpoint for the department. readOnly: true example: /objects/company-config/department/1 audit: $ref: '#/components/schemas/audit' time-timesheetRequiredProperties: type: object required: - beginDate time-timesheet: type: object description: >- Header information for timesheets. Includes employee name, period begin date, period end date, GL post date, description, and attachments. properties: key: type: string description: System-assigned unique key for the timesheet. readOnly: true example: '23' id: type: string description: >- Unique identifier for the timesheet. This value is same as the key for this object. readOnly: true example: '23' href: type: string readOnly: true description: URL endpoint for the timesheet. example: /objects/time/timesheet/23 beginDate: type: string format: date description: Begin date of the work period. example: '2024-01-01' nullable: false endDate: type: string format: date description: >- The calculated end date of the work period, based on the `beginDate`. example: '2024-12-31' readOnly: true postingDate: type: string format: date description: >- Defaults to timesheet `endDate`. If `endDate` falls within a closed GL period, then `postingDate` automatically defaults to the first day of the next open GL period. example: '2024-01-01' state: type: string description: >- State of the timesheet in the approval cycle, such as approved or declined. example: submitted default: draft enum: - submitted - approved - partiallyApproved - declined - draft - partiallyDeclined - saved unitOfMeasure: type: string description: >- Unit of measure, such as hours or days, used in labor cost calculations. Maps to configuration set in Projects and cannot be changed. readOnly: true example: Hours hoursInDay: type: number description: Hours in a day. Used to calculate labor cost. readOnly: true example: 8 description: type: string description: Timesheet description. example: Week of 2024-01-01 to cover help desk calculationMethod: type: string description: >- The calculation method used for pay and defined by `time-type.earningType`. Used in labor cost and billing calculations. When `null`, the labor amount does not calculate for the timesheet. For example, labor costs for certain roles, such as management or sales, might not need to be calculated. example: hourly readOnly: true nullable: true default: null enum: - null - hourly - salary postActualLaborCost: type: boolean description: >- Only `true` when `employee.postActualCostWithVariance` is set to `true` to indicate that `calculationMethod` is `salary`. When `employee.postActualCostWithVariance` is set to false, `calculationMethod` is `hourly`, so `postActualLaborCost` is `false`. example: false readOnly: true employee: type: object description: The employee who performed the work and whose time is being tracked. properties: key: type: string description: Unique key for the employee. example: '973' id: type: string description: Unique identifier for the employee. example: E-001 href: type: string description: URL endpoint for the employee. example: /objects/company-config/employee/973 readOnly: true employeeContact: type: object description: Employee contact. properties: key: type: string description: Unique key for the contact. readOnly: true example: '977' id: type: string description: Unique identifier of the contact. readOnly: true example: John Smith firstName: type: string description: The first name of the contact. readOnly: true example: John lastName: type: string description: The last name of the contact. readOnly: true example: Smith href: type: string description: URL endpoint for the contact. example: /objects/company-config/contact/973 readOnly: true readOnly: true attachment: type: object description: Supporting documentation for the timesheet. properties: key: type: string description: Unique key for the attachment. example: '8420' id: type: string description: Unique identifier for the attachment. example: Attach-01 href: type: string description: URL endpoint for the attachment. example: /objects/company-config/attachment/8420 readOnly: true lines: type: array description: Time entries items: $ref: '#/components/schemas/time-timesheet-line' audit: $ref: '#/components/schemas/audit' entity: $ref: '#/components/schemas/entity-ref' 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/oauth2/authorize tokenUrl: https://api.intacct.com/ia/api/v1/oauth2/token refreshUrl: https://api.intacct.com/ia/api/v1/oauth2/token scopes: {}