Articles

NetSuite time entries, explained

Time bills, weekly timesheets, approval status, and how a field app should write hours into NetSuite.

Last reviewed October 30, 2026. Field names vary with your account's features and forms; check them in your REST API Browser.

NetSuite records time as time entries, and groups them into timesheets when the Timesheets feature is on. Knowing how these fit together decides how hours from the field should arrive.

The time entry#

The REST record is timeBill (Track Time). There is one row per employee, per day, per project and task, with:

  • employee, tranDate and hours (as hours and minutes, such as 8:30),
  • customer, the project, and caseTaskEvent, the project task,
  • item (the service item), payrollItem and isBillable,
  • approvalStatus, read-only.

The weekly timesheet#

With the Timesheets feature on, a timeSheet record groups a week of time entries for one person. Its approval status and total hours are read-only and come from the entries.

Approvals#

If an employee has no time approver, their supervisor approves; if both are set, only the time approver can approve in the Employee Center. With approvals required, entries move through Open, Pending Approval, Approved and Rejected. With "Require Approvals" off, timesheets are approved automatically.

How a field app should write time#

  • REST, not SOAP. Oracle says 2025.2 is the last planned SOAP endpoint, no new SOAP integrations from 2027.1, and SOAP is removed in 2028.2.
  • OAuth 2.0 machine to machine. An integration record with the client credentials grant, and a certificate mapped to an entity and a role. A sandbox refresh clears the mapping.
  • A least-privilege role. Track Time, and view on employees, projects, tasks and customers.
  • Idempotent writes. Give each entry an external id so a retry updates the same entry instead of adding another.
  • Respect approvals. Write entries for approval, read back the status, and send only approved hours on to payroll. A change after approval should create a correcting entry, never silently overwrite an approved one.
  • Mind concurrency. Requests share the account's concurrency limit with every other integration. Throttle and retry.

How Oh! Thyme does it#

Oh! Thyme follows each of those rules: REST with OAuth 2.0 machine-to-machine sign-in, one role with the permissions above, one time entry per person, day, project and task carrying its own id, approvals read back from NetSuite, and employees, projects and tasks imported nightly. See the NetSuite integration and the setup guide.

Sources#