TimeSheet
Time entry sheet.
See the
Entry Sheet API tutorial
for a discussion of the structure of the sheet, especially the rows key
which contains the actual time entries.
The internal ID of the resource or object. This is a 32-character hexadecimal string (UUID without hyphens).
In general, the id field is the primary key of the object and cannot
be changed or updated.
64BBA147B9AC41D9978062300826C89FThe URI associated with this resource. This is usually a relative URL that can be used to access the resource. Typically it incorporates the Unique ID of the resource.
/api/v1/objects/64BBA147B9AC41D9978062300826C89FThe name of the internal database table associated with this resource.
usersThe user-visible label of the database table associated with this object.
codes_pay_typesThe internal User ID of the user who created the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who created the object.
John Doecreator_properties object
Full user record for the creator. This may not be included unless requested in $keys.
The internal ID of the resource or object. This is a 32-character hexadecimal string (UUID without hyphens).
In general, the id field is the primary key of the object and cannot
be changed or updated.
64BBA147B9AC41D9978062300826C89FThe URI associated with this resource. This is usually a relative URL that can be used to access the resource. Typically it incorporates the Unique ID of the resource.
/api/v1/objects/64BBA147B9AC41D9978062300826C89FThe name of the internal database table associated with this resource.
usersThe user-visible label of the database table associated with this object.
codes_pay_typescustom_fields object
An object with Custom Fields for this record. The key is the field ID and the value a description of the field. Additional details here: CustomFields Schema
Updating Custom Field values
When creating or updating an existing object that uses Custom Fields,
for example a User record, you can follow this custom_field key
structure to update the custom field values. The value field is the only
required field for updating a custom field value; other fields such as
pname will be ignored.
Important: depending on the endpoint, this may only be included in the response
if $keys=custom_fields or $keys=$extended was set as a query parameter.
There is also a more compact representation available in most object types, where
each custom field value is a separate key in the main object (not under custom_fields).
See the CustomFields Schema page for more detailed information on these topics.
property name* CustomFieldValue
A specific instance (value) of a Custom field for a particular object.
The unique internal ID of this Custom Field definition (same as id field)
2DDD372DC4D3422D9E73F6DE936C4265Datatype of the custom field. The basic types available are:
STRING- a variable-length string.CHAR- a fixed-length string. (The value may be padded with spaces.)NUMBER- a floating-point number.INTEGER- an integer (whole number).TIMESTAMP- a date and time, stored in Unix epoch format.DATE- a YYYYMMDD (F8) date.
In addition, most types can be modified with a prefix to indicate
whether they are "select lists" (ENUM or enumerated) or "multi-select
lists" (M_ENUM) which can take on multiple values.
Strings and char may also have a maximum length specified, such as
STRING_100.
STRING_100Description of custom field
Name of custom field
Pay GroupURI of the custom field to get more information about the custom field definition.
/api/v1/custom_fields/E07526A217164D1B94188279A8A0E4D9Value of the custom field for this object. To update the value, see the note on the CustomFields schema page.
Note that when modifying Custom Fields of objects like
Users or Projects, only the value key will be checked;
other fields like the Custom Field pname will be ignored.
XYZ Pay Groupgroup_names object[]
A list of Groups (names and IDs) that the object belongs to.
This is a read-only list. To change the Groups that an object belongs to,
use the groups field.
See GroupFields for additional information about Groups and this field.
The Group ID (32-character hexadecimal string).
The Group name.
The URI of the Group.
WARNING: this field is planned in a future release but is not yet available.
A list of Group IDs that the object belongs to. See GroupFields for additional information about Groups and this field.
["5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195","5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195"]Indicates whether the object is hidden.
See also status
Indicates whether the user is hidden.
Read-only alias for is_hidden.
The status of the user; either hidden, active, or inactive.
Possible values: [Hidden, Loggable and Reportable, Reportable Only]
Loggable and ReportableThe internal code for the status of the object; either:
lrforLoggable and ReportableroforReportable OnlyhforHidden
Possible values: [h, lr, ro]
lrThe login name of the user.
john.smith@example.comThe full name of the user.
John SmithThe default comment on the user's time entry screen.
The ID of the user's default memorized timesheet.
The number of items in a selection list to trigger a forced search.
Indicates whether the user is hidden.
Note: the User object is the only one that uses this field; other objects
use is_hidden.
Whether the user's new password should expire after the first login.
This is a write-only field that does not appear in User object responses.
The new password for the user.
The password must also be set in the new_pw2 field to confirm the change.
This is a write-only field that does not appear in User object responses.
The new password for the user, repeated to confirm the change.
The password must also be set in the new_pw field to confirm the change.
This is a write-only field that does not appear in User object responses.
A list of role IDs belonging to this user.
This list can be modified to change the user's roles.
The number of blank rows to show on the entry screen.
3The "Entry Screen period" (time-span) associated with the user's Time Entry screen.
default_weeklyThe "Entry Screen period" (time-span) associated with the user's Expense Entry screen.
default_weeklyThe "Entry Screen period" (time-span) associated with the user's Custom Entry screen.
default_weeklyThe ID of the user's assigned Expense entry screen configuration.
The ID of the user's assigned time entry screen configuration.
The ID of the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.
The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The object creation date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The object creation date in the "short date" format defined in the system settings.
03/22/2023The object creation date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe object creation date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe creation timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The internal User ID of the user who most recently modified the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who most recently modified the object.
John DoeExtended information about the User who
last modified the object.
This field is only included if the $keys parameter requests it.
The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The last modification date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The last modification date in the "short date" format defined in the system settings.
03/22/2023The last modification date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe last modification date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe last modification timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The internal Domain ID of the resource or object. In general, this field is deprecated and not in use and can be ignored.
install_root_domUNUSED FIELD This is a legacy field that is no longer used.
The email address of the user.
Note: This is a read-only field. To change the user's email address, you must modify the
users_attribs:users_email field, or custom_fields.users_email.value.
The first name of the user.
Note: read-only; set via the fullname field.
The unique internal ID of this user. (Same as id.)
5CD906A3941C463B9CC98F49DBCC25AAThe last name of the user.
Note: read-only; set via the fullname field.
memorized_sheet_choices object[]
A list of memorized timesheets associated with the user.
These are the choices available to set in the default_memorized_sheet field.
The internal ID of the memorized timesheet.
The name of the memorized timesheet.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
Details about the user's assigned time entry screen configuration.
Details about the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.
Details about the user's assigned Expense entry screen configuration.
The internal User ID of the user who created the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who created the object.
John DoeExtended information about the User who
created the object.
This field is only included if the $keys parameter requests it.
The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The object creation date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The object creation date in the "short date" format defined in the system settings.
03/22/2023The object creation date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe object creation date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe creation timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The internal User ID of the user who most recently modified the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who most recently modified the object.
John Doemodifier_properties object
Full user record for the last modifier. This may not be included unless requested in $keys.
The internal ID of the resource or object. This is a 32-character hexadecimal string (UUID without hyphens).
In general, the id field is the primary key of the object and cannot
be changed or updated.
64BBA147B9AC41D9978062300826C89FThe URI associated with this resource. This is usually a relative URL that can be used to access the resource. Typically it incorporates the Unique ID of the resource.
/api/v1/objects/64BBA147B9AC41D9978062300826C89FThe name of the internal database table associated with this resource.
usersThe user-visible label of the database table associated with this object.
codes_pay_typescustom_fields object
An object with Custom Fields for this record. The key is the field ID and the value a description of the field. Additional details here: CustomFields Schema
Updating Custom Field values
When creating or updating an existing object that uses Custom Fields,
for example a User record, you can follow this custom_field key
structure to update the custom field values. The value field is the only
required field for updating a custom field value; other fields such as
pname will be ignored.
Important: depending on the endpoint, this may only be included in the response
if $keys=custom_fields or $keys=$extended was set as a query parameter.
There is also a more compact representation available in most object types, where
each custom field value is a separate key in the main object (not under custom_fields).
See the CustomFields Schema page for more detailed information on these topics.
property name* CustomFieldValue
A specific instance (value) of a Custom field for a particular object.
The unique internal ID of this Custom Field definition (same as id field)
2DDD372DC4D3422D9E73F6DE936C4265Datatype of the custom field. The basic types available are:
STRING- a variable-length string.CHAR- a fixed-length string. (The value may be padded with spaces.)NUMBER- a floating-point number.INTEGER- an integer (whole number).TIMESTAMP- a date and time, stored in Unix epoch format.DATE- a YYYYMMDD (F8) date.
In addition, most types can be modified with a prefix to indicate
whether they are "select lists" (ENUM or enumerated) or "multi-select
lists" (M_ENUM) which can take on multiple values.
Strings and char may also have a maximum length specified, such as
STRING_100.
STRING_100Description of custom field
Name of custom field
Pay GroupURI of the custom field to get more information about the custom field definition.
/api/v1/custom_fields/E07526A217164D1B94188279A8A0E4D9Value of the custom field for this object. To update the value, see the note on the CustomFields schema page.
Note that when modifying Custom Fields of objects like
Users or Projects, only the value key will be checked;
other fields like the Custom Field pname will be ignored.
XYZ Pay Groupgroup_names object[]
A list of Groups (names and IDs) that the object belongs to.
This is a read-only list. To change the Groups that an object belongs to,
use the groups field.
See GroupFields for additional information about Groups and this field.
The Group ID (32-character hexadecimal string).
The Group name.
The URI of the Group.
WARNING: this field is planned in a future release but is not yet available.
A list of Group IDs that the object belongs to. See GroupFields for additional information about Groups and this field.
["5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195","5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195"]Indicates whether the object is hidden.
See also status
Indicates whether the user is hidden.
Read-only alias for is_hidden.
The status of the user; either hidden, active, or inactive.
Possible values: [Hidden, Loggable and Reportable, Reportable Only]
Loggable and ReportableThe internal code for the status of the object; either:
lrforLoggable and ReportableroforReportable OnlyhforHidden
Possible values: [h, lr, ro]
lrThe login name of the user.
john.smith@example.comThe full name of the user.
John SmithThe default comment on the user's time entry screen.
The ID of the user's default memorized timesheet.
The number of items in a selection list to trigger a forced search.
Indicates whether the user is hidden.
Note: the User object is the only one that uses this field; other objects
use is_hidden.
Whether the user's new password should expire after the first login.
This is a write-only field that does not appear in User object responses.
The new password for the user.
The password must also be set in the new_pw2 field to confirm the change.
This is a write-only field that does not appear in User object responses.
The new password for the user, repeated to confirm the change.
The password must also be set in the new_pw field to confirm the change.
This is a write-only field that does not appear in User object responses.
A list of role IDs belonging to this user.
This list can be modified to change the user's roles.
The number of blank rows to show on the entry screen.
3The "Entry Screen period" (time-span) associated with the user's Time Entry screen.
default_weeklyThe "Entry Screen period" (time-span) associated with the user's Expense Entry screen.
default_weeklyThe "Entry Screen period" (time-span) associated with the user's Custom Entry screen.
default_weeklyThe ID of the user's assigned Expense entry screen configuration.
The ID of the user's assigned time entry screen configuration.
The ID of the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.
The internal User ID of the user who created the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who created the object.
John DoeExtended information about the User who
created the object.
This field is only included if the $keys parameter requests it.
The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The object creation date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The object creation date in the "short date" format defined in the system settings.
03/22/2023The object creation date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe object creation date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe creation timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The last modification date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The last modification date in the "short date" format defined in the system settings.
03/22/2023The last modification date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe last modification date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe last modification timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The internal Domain ID of the resource or object. In general, this field is deprecated and not in use and can be ignored.
install_root_domUNUSED FIELD This is a legacy field that is no longer used.
The email address of the user.
Note: This is a read-only field. To change the user's email address, you must modify the
users_attribs:users_email field, or custom_fields.users_email.value.
The first name of the user.
Note: read-only; set via the fullname field.
The unique internal ID of this user. (Same as id.)
5CD906A3941C463B9CC98F49DBCC25AAThe last name of the user.
Note: read-only; set via the fullname field.
memorized_sheet_choices object[]
A list of memorized timesheets associated with the user.
These are the choices available to set in the default_memorized_sheet field.
The internal ID of the memorized timesheet.
The name of the memorized timesheet.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
Details about the user's assigned time entry screen configuration.
Details about the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.
Details about the user's assigned Expense entry screen configuration.
The internal User ID of the user who most recently modified the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who most recently modified the object.
John DoeExtended information about the User who
last modified the object.
This field is only included if the $keys parameter requests it.
The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The last modification date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The last modification date in the "short date" format defined in the system settings.
03/22/2023The last modification date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe last modification date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe last modification timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00Unique identifier for the entry sheet (same as id)
0B04998DCD0E45DF9D0EC97EC926D281User ID of the sheet owner
aliceUser login/ID (same as id_user)
aliceUser login name
alice@company.comFull display name of the user
Alice DevID of the timesheet period configuration (e.g., "default_weekly"). Determines the period frequency and start day.
Note: not to be confused with id_sheet, which is the unique sheet
instance ID. The id_timesheet field refers to the TIME PERIOD definition
of the sheet, i.e., weekly vs. monthly.
default_weeklyType of entry sheet:
time- Time tracking entriesexpense- Expense entriesmileage- Custom/mileage/travel entries
Possible values: [time, expense, mileage]
timeCurrent approval state of the sheet:
open- Editable by usersubmitted- Awaiting approvalapproved- Approved by all required levelsrejected- Rejected and returned to user
Possible values: [open, submitted, approved, rejected]
openNumeric representation of state:
0.0- open1.0- submitted2.0- approved3.0- rejected
0Period start date in F8 format (YYYYMMDD)
Possible values: Value must match regular expression ^\d{8}$
20251102Period end date in F8 format (YYYYMMDD)
Possible values: Value must match regular expression ^\d{8}$
20251108Array of all dates in the period (F8 / YYYYMMDD format)
Possible values: Value must match regular expression ^\d{8}$
["20251102","20251103","20251104","20251105","20251106","20251107","20251108"]Concatenated representation of all dates (Record Of Dates). Mainly an internal use field that can be ignored.
20251102202511032025110420251105202511062025110720251108Sum of all entry amounts in the sheet. Computed field - calculated from underlying entry records.
40Count of entry records in the sheet. Computed field - calculated from underlying entry records.
5Current approval level (0 = not submitted, 1+ = approval level).
0Whether this is a interim-submitted ("virtual") sheet. Interim sheets allow partial submission while keeping the main sheet open.
falseDatabase table name for this sheet type:
user_time_sheetsorvirtual_time_sheetsuser_expense_sheetsorvirtual_expense_sheetsuser_travel_sheetsorvirtual_custom_sheets
user_time_sheetsHuman-readable status message
Open for EntryDisplay name for the sheet (formatted date range)
11/02/2025 - 11/08/2025ISO 8601 timestamp of the most recent modification across all related data. May differ from modify_timestamp if related records were changed.
2025-11-03T12:56:20-06:00Legacy field, can be ignored
Legacy field, can be ignored
Legacy field, can be ignored
rows object[]
Array of entry rows with cells, notes, attachments, and locations.
This is the main data structure that contains the actual entries of the sheet. The entries are organized into rows of "combos" (unique combinations of project/code/etc.), with each row containing individual cells for each date in the period.
Performance Note: Including this field in a collection response is
expensive and limited to 10 sheets per request. When using collections, you
can explicitly request this with $keys=rows.
See also the Entry Sheet API tutorial.
Project ID for this row
p_d_1_1Project display name
D.01.01 Delta Maine PortlandActivity/Task code
MeetingsActivity/Task display name
MeetingsPay type code (time) or expense type code
RegularPay/expense type display name
RegularBill type code (time) or currency code (expense)
StandardBill/currency type display name
StandardAdditional code column (if configured)
Additional code display name
Additional code column (if configured)
Additional code display name
Additional code column (if configured)
Additional code display name
Additional code column (if configured)
Additional code display name
Text comment for this row
Team standup meetingSum of amounts across all cells in this row
40Whether this row is read-only (e.g., submitted/approved entries)
falseWhether this row has been interim submitted
falseWhether this row has been interim approved
falseID of the suggestion that generated this row (if any)
nullDetails about the suggestion that generated this row
cells object[]required
Array of cells (one per date in the period)
Date in F8 format (YYYYMMDD)
Possible values: Value must match regular expression ^\d{8}$
20251103The entry amount for this cell:
- For time: hours (e.g., 8.0)
- For expense: monetary amount or mileage
- For custom: distance
8Array of entry record IDs that contribute to this cell's total. Multiple IDs indicate multiple entries for the same row/date combination.
["time_rec_12345","time_rec_67890"]attachments object[]
File attachments associated with this cell
Encoded unique identifier for the attachment. Used to retrieve or delete the attachment.
This can be provided to the
getAttachmentByEncodedId
legacy API method to retrieve the file.
dGltZV9hdHRhY2htZW50czoxMjM0NQ==User ID of the person who uploaded the attachment
aliceUnix timestamp when the attachment was uploaded
1762196180Optional description or note about the attachment
Receipt for client lunch meetingOriginal filename of the uploaded file
receipt_2025-11-03.pdfMIME type of the file
application/pdfFile size in bytes
524288notes object[]
Diary notes associated with this cell
Unique identifier for the note
note_12345The note text content
Worked on bug fixes for the login moduleWhether the note has been modified since creation
falselocations object[]
GPS locations recorded for entries in this cell
coords objectrequired
Geographic coordinates
Latitude in decimal degrees
30.0613632Longitude in decimal degrees
-99.1363072Altitude in meters above sea level (when available).
nullHorizontal accuracy in meters. A geofence can have a minimum required accuracy, but different devices may have different capabilities.
963.78847Additional notes or description for this location. This is only rarely provided / available.
Unix timestamp (milliseconds) when the location was captured
1762542072875punchlists object[]
Punch-in/punch-out times for this row (time entries only with job start/stop). Job-based punches are attached to rows rather than individual dates.
punches object[]
List of punch-in/punch-out pairs. (Each pair is a single object here.)
Punch-in time in HH:MM format (24-hour)
08:00Punch-in time as Unix timestamp
1730894400Punch-in time in ISO 8601 format
2025-11-04T08:00:00-06:00time_in_location object
Location captured at punch-in time (optional)
coords objectrequired
Geographic coordinates
Latitude in decimal degrees
30.0613632Longitude in decimal degrees
-99.1363072Altitude in meters above sea level (when available).
nullHorizontal accuracy in meters. A geofence can have a minimum required accuracy, but different devices may have different capabilities.
963.78847Additional notes or description for this location. This is only rarely provided / available.
Unix timestamp (milliseconds) when the location was captured
1762542072875Punch-out time in HH:MM format (24-hour). Null for open punches (not yet punched out).
12:00Punch-out time as Unix timestamp
1762279200Punch-out time in ISO 8601 format
2025-11-04T12:00:00-06:00time_out_location object
Location captured at punch-out time (optional)
coords objectrequired
Geographic coordinates
Latitude in decimal degrees
30.0613632Longitude in decimal degrees
-99.1363072Altitude in meters above sea level (when available).
nullHorizontal accuracy in meters. A geofence can have a minimum required accuracy, but different devices may have different capabilities.
963.78847Additional notes or description for this location. This is only rarely provided / available.
Unix timestamp (milliseconds) when the location was captured
1762542072875columns object[]
Metadata describing the available entry columns for this sheet. Defines what fields can be used (project, codes, comments, etc.). The columns are listed in the order (left-to-right) they appear on the entry screen.
Standard column identifier, also known as the "API name" for the column:
project- Project columncode0throughcode6- Code columns (task, pay type, bill type, etc.)comment- Primary text commenttext2,text3- Additional text fieldsgroup- Group column - rarely used as an entry column.user- User (for crew entry)
projectAlternative/legacy column identifier, also known as the internal "jtgui name" for the column:
h1- Projectdd1throughdd7- Dropdown codestb1throughtb3- Text boxesgrp1- Groupu1- User
h1The configurable display name (label) for the column.
ProjectDatabase table name for this column type. This table stores the primary selection values for this column.
projects- Projectscodes_tasks- Activity codescodes_pay_types- Pay type codescodes_bill_types- Bill type codes- Empty string for text columns
projectsDefault value ID for this column
p_d_1_1Display name of the default value
Customer XYZ: Implementation PhaseDisplay priority/order (higher = more important/displayed first)
12Whether this column is hidden from the user
falseTrue if this is the project column
trueTrue if this is a code/dropdown column (code0 through code6)
falseTrue if this is an open text entry column
falsecolumns_dict object
Dictionary version of columns array, keyed by column_id for easy lookup.
property name* schemas-EntryColumn
Metadata describing a configurable entry column (dimension) for the sheet. Columns define what fields are available for entry (project, task, pay type, etc.).
Standard column identifier, also known as the "API name" for the column:
project- Project columncode0throughcode6- Code columns (task, pay type, bill type, etc.)comment- Primary text commenttext2,text3- Additional text fieldsgroup- Group column - rarely used as an entry column.user- User (for crew entry)
projectAlternative/legacy column identifier, also known as the internal "jtgui name" for the column:
h1- Projectdd1throughdd7- Dropdown codestb1throughtb3- Text boxesgrp1- Groupu1- User
h1The configurable display name (label) for the column.
ProjectDatabase table name for this column type. This table stores the primary selection values for this column.
projects- Projectscodes_tasks- Activity codescodes_pay_types- Pay type codescodes_bill_types- Bill type codes- Empty string for text columns
projectsDefault value ID for this column
p_d_1_1Display name of the default value
Customer XYZ: Implementation PhaseDisplay priority/order (higher = more important/displayed first)
12Whether this column is hidden from the user
falseTrue if this is the project column
trueTrue if this is a code/dropdown column (code0 through code6)
falseTrue if this is an open text entry column
falseUI configuration options for the entry screen. Note: This is an internal-use field. Detailed documentation will be provided in a future release. Contains settings like time format, default values, display preferences, etc.
{"entryType":"time","timeformat":2,"arrows":1,"pname":"Multi Project Time Entry Grid"}approval_plan_info object
Information about the approval workflow configuration for the sheet.
Whether an approval plan is active for this sheet
trueNumber of approval levels required
2User ID of the next approver in the workflow
marinoFull name of the next approver
Stephanie Marinoaudit_settings object
Audit configuration controlling how corrections to submitted entries are handled.
The audit level for this sheet, which primarily concerns whether correction records are generated, or the original records are simply modified in place.
auditlevel1: "Do not track changes" - never generate correction records.auditlevel2: "Track changes after sheet submission" - generate correction records only after the sheet has been submitted for approval.auditlevel3: "Require correction notes after sheet submission" - correction records must include a correction note.auditlevel4: "Always track changes" - always generate correction records, even before sheet submission.auditlevel5: "Always require correction notes" - correction records must include a correction note, even before sheet submission.
Possible values: [auditlevel1, auditlevel2, auditlevel3, auditlevel4, auditlevel5]
auditlevel2Whether this sheet has ever been submitted (0 or 1)
0Whether correction records are required for changes (0 or 1)
0Whether new entries require special handling
falseIf the sheet has been approved, this is the User ID of the approving user. (Same as 'approver')
nullIf the sheet has been approved, this is the User ID of the approving user. (Same as 'id_approver')
nullWhether the current user is viewing this as an approver
falseReason for rejection (if state is rejected)
nullWhether the sheet can currently be submitted for approval
falseWhether partial (interim) submission is allowed
trueWhether the user can navigate to past periods
trueWhether the user can navigate to future periods
falseEarliest allowed date for entries (F8 format). This mainly relates to the UI setting about allowing viewing past or future periods.
Possible values: Value must match regular expression ^\d{8}$
nullLatest allowed date for entries (F8 format). This mainly relates to the UI setting about allowing viewing past or future periods.
Possible values: Value must match regular expression ^\d{8}$
20251108Whether to show confirmation dialog on submit
trueText to display in submission confirmation dialog
Are you sure you want to submit this sheet for approval?Text to display when submitting with warnings
Your time may violate entry rules specified by your organization, but can still be submitted for approval. Submit sheet with warnings?Whether the sheet currently has validation warnings
falseWhether location tracking is enabled for this sheet type. This does not necessarily require location collection, but the system will record the user's location if provided. Note that geofences will always be enforced whenever location is provided, but you must separately enable the "Require Location" setting if you want to mandate that geofences are always checked.
falseWhether location is required for web-based entries. If the user does not provide location, they will be unable to save changes to the sheet. Note that the "Submit for Approval" action does NOT check for location.
falseWhether location is required using the mobile app. If the user does not provide location, they will be unable to save changes to the sheet. Note that the "Submit for Approval" action does NOT check for location.
falseWhether entry notes (diary notes) are enabled. These are notes that can be attached to individual cells (row + date combinations).
trueWhether file attachments are enabled for this sheet
trueWhether the user is currently allowed to upload attachments. This can be false when either attachments are not enabled, or the maximum number of attachments has been reached.
falseWhether the "Extended Fields" feature is enabled.
falseid_user_properties object
Full user record for the sheet owner, including custom fields. Contains all user attributes, roles, abilities, etc.
The internal ID of the resource or object. This is a 32-character hexadecimal string (UUID without hyphens).
In general, the id field is the primary key of the object and cannot
be changed or updated.
64BBA147B9AC41D9978062300826C89FThe URI associated with this resource. This is usually a relative URL that can be used to access the resource. Typically it incorporates the Unique ID of the resource.
/api/v1/objects/64BBA147B9AC41D9978062300826C89FThe name of the internal database table associated with this resource.
usersThe user-visible label of the database table associated with this object.
codes_pay_typescustom_fields object
An object with Custom Fields for this record. The key is the field ID and the value a description of the field. Additional details here: CustomFields Schema
Updating Custom Field values
When creating or updating an existing object that uses Custom Fields,
for example a User record, you can follow this custom_field key
structure to update the custom field values. The value field is the only
required field for updating a custom field value; other fields such as
pname will be ignored.
Important: depending on the endpoint, this may only be included in the response
if $keys=custom_fields or $keys=$extended was set as a query parameter.
There is also a more compact representation available in most object types, where
each custom field value is a separate key in the main object (not under custom_fields).
See the CustomFields Schema page for more detailed information on these topics.
property name* CustomFieldValue
A specific instance (value) of a Custom field for a particular object.
The unique internal ID of this Custom Field definition (same as id field)
2DDD372DC4D3422D9E73F6DE936C4265Datatype of the custom field. The basic types available are:
STRING- a variable-length string.CHAR- a fixed-length string. (The value may be padded with spaces.)NUMBER- a floating-point number.INTEGER- an integer (whole number).TIMESTAMP- a date and time, stored in Unix epoch format.DATE- a YYYYMMDD (F8) date.
In addition, most types can be modified with a prefix to indicate
whether they are "select lists" (ENUM or enumerated) or "multi-select
lists" (M_ENUM) which can take on multiple values.
Strings and char may also have a maximum length specified, such as
STRING_100.
STRING_100Description of custom field
Name of custom field
Pay GroupURI of the custom field to get more information about the custom field definition.
/api/v1/custom_fields/E07526A217164D1B94188279A8A0E4D9Value of the custom field for this object. To update the value, see the note on the CustomFields schema page.
Note that when modifying Custom Fields of objects like
Users or Projects, only the value key will be checked;
other fields like the Custom Field pname will be ignored.
XYZ Pay Groupgroup_names object[]
A list of Groups (names and IDs) that the object belongs to.
This is a read-only list. To change the Groups that an object belongs to,
use the groups field.
See GroupFields for additional information about Groups and this field.
The Group ID (32-character hexadecimal string).
The Group name.
The URI of the Group.
WARNING: this field is planned in a future release but is not yet available.
A list of Group IDs that the object belongs to. See GroupFields for additional information about Groups and this field.
["5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195"]Indicates whether the object is hidden.
See also status
Indicates whether the user is hidden.
Read-only alias for is_hidden.
The status of the user; either hidden, active, or inactive.
Possible values: [Hidden, Loggable and Reportable, Reportable Only]
Loggable and ReportableThe internal code for the status of the object; either:
lrforLoggable and ReportableroforReportable OnlyhforHidden
Possible values: [lr, ro, h]
lrThe login name of the user.
john.smith@example.comThe full name of the user.
John SmithThe default comment on the user's time entry screen.
The ID of the user's default memorized timesheet.
The number of items in a selection list to trigger a forced search.
Indicates whether the user is hidden.
Note: the User object is the only one that uses this field; other objects
use is_hidden.
Whether the user's new password should expire after the first login.
This is a write-only field that does not appear in User object responses.
The new password for the user.
The password must also be set in the new_pw2 field to confirm the change.
This is a write-only field that does not appear in User object responses.
The new password for the user, repeated to confirm the change.
The password must also be set in the new_pw field to confirm the change.
This is a write-only field that does not appear in User object responses.
A list of role IDs belonging to this user.
This list can be modified to change the user's roles.
The number of blank rows to show on the entry screen.
3The "Entry Screen period" (time-span) associated with the user's Time Entry screen.
default_weeklyThe "Entry Screen period" (time-span) associated with the user's Expense Entry screen.
default_weeklyThe "Entry Screen period" (time-span) associated with the user's Custom Entry screen.
default_weeklyThe ID of the user's assigned Expense entry screen configuration.
The ID of the user's assigned time entry screen configuration.
The ID of the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.
The internal User ID of the user who created the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who created the object.
John DoeExtended information about the User who
created the object.
This field is only included if the $keys parameter requests it.
The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The object creation date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The object creation date in the "short date" format defined in the system settings.
03/22/2023The object creation date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe object creation date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe creation timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The internal User ID of the user who most recently modified the object.
64BBA147B9AC41D9978062300826C89FThe full name of the user who most recently modified the object.
John DoeExtended information about the User who
last modified the object.
This field is only included if the $keys parameter requests it.
The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.
1696021987.01375The last modification date in the "long date" format defined in the system settings.
Wednesday, March 22, 2023The last modification date in the "short date" format defined in the system settings.
03/22/2023The last modification date and time in the "long date" format defined in the system settings.
Wednesday, March 22, 2023 12:18:46 CDTThe last modification date and time in the "short date" format defined in the system settings.
03/22/2023 12:18:46 CDTThe last modification timestamp in ISO 8601 format.
2023-03-22T12:18:46-05:00The internal Domain ID of the resource or object. In general, this field is deprecated and not in use and can be ignored.
install_root_domUNUSED FIELD This is a legacy field that is no longer used.
The email address of the user.
Note: This is a read-only field. To change the user's email address, you must modify the
users_attribs:users_email field, or custom_fields.users_email.value.
The first name of the user.
Note: read-only; set via the fullname field.
The unique internal ID of this user. (Same as id.)
5CD906A3941C463B9CC98F49DBCC25AAThe last name of the user.
Note: read-only; set via the fullname field.
memorized_sheet_choices object[]
A list of memorized timesheets associated with the user.
These are the choices available to set in the default_memorized_sheet field.
The internal ID of the memorized timesheet.
The name of the memorized timesheet.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
UNUSED FIELD This is a legacy field that is no longer used.
Details about the user's assigned time entry screen configuration.
Details about the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.
Details about the user's assigned Expense entry screen configuration.
A URL to view sheet history. Note that this returns an HTML view, not a JSON API endpoint.
/jtcgi/approveprojects.pyc?showsystemstick=1&nav_key=sheet_history&history=0B04998DCD0E45DF9D0EC97EC926D281URL to view/print sheet report
/#/reports/output/sheet/BA72DE7FFB854DF2B815A22C2BAEBC32/0B04998DCD0E45DF9D0EC97EC926D281accruals object[]
Time banks (accruals) showing available leave balances. Only present for time entry sheets.
Unique identifier for the time bank
6D88483CFE774250B29CC61266392DBADisplay name of the time bank
VacationRemaining balance in hours
16Pay type codes associated with this accrual
["Vacation"]pay_types object[]
Detailed information about associated pay types
Whether a hard minimum balance threshold is enforced
trueMinimum balance that cannot be exceeded
0Message displayed when hard threshold applies
Minimum balance of 0.00 hours is enforced.Whether a warning threshold is configured
trueBalance level that triggers a warning
8Message displayed when warning threshold is reached
A warning is given when the balance is less than or equal to 8.00 hours.Type of warning configuration
v2Any errors related to this accrual
[]Any warnings related to this accrual
[]User who created this time bank
User who last modified this time bank
Unix timestamp of creation
Unix timestamp of last modification
List of pay type codes that are exempt from allocation requirements. For example, a Paid Time Off code. Used when time allocation/distribution is enforced.
[]punchlists object[]
Allocation-mode punch times organized by date. One punch list per date in the period. Only populated when allocation punch tracking is enabled.
Performance Note: Including this field is expensive and limited to 10 sheets per request.
Request explicitly with $keys=rows.
punches object[]
List of punch-in/punch-out pairs. (Each pair is a single object here.)
Punch-in time in HH:MM format (24-hour)
08:00Punch-in time as Unix timestamp
1730894400Punch-in time in ISO 8601 format
2025-11-04T08:00:00-06:00time_in_location object
Location captured at punch-in time (optional)
coords objectrequired
Geographic coordinates
Latitude in decimal degrees
30.0613632Longitude in decimal degrees
-99.1363072Altitude in meters above sea level (when available).
nullHorizontal accuracy in meters. A geofence can have a minimum required accuracy, but different devices may have different capabilities.
963.78847Additional notes or description for this location. This is only rarely provided / available.
Unix timestamp (milliseconds) when the location was captured
1762542072875Punch-out time in HH:MM format (24-hour). Null for open punches (not yet punched out).
12:00Punch-out time as Unix timestamp
1762279200Punch-out time in ISO 8601 format
2025-11-04T12:00:00-06:00time_out_location object
Location captured at punch-out time (optional)
coords objectrequired
Geographic coordinates
Latitude in decimal degrees
30.0613632Longitude in decimal degrees
-99.1363072Altitude in meters above sea level (when available).
nullHorizontal accuracy in meters. A geofence can have a minimum required accuracy, but different devices may have different capabilities.
963.78847Additional notes or description for this location. This is only rarely provided / available.
Unix timestamp (milliseconds) when the location was captured
1762542072875{
"id": "64BBA147B9AC41D9978062300826C89F",
"uri": "/api/v1/objects/64BBA147B9AC41D9978062300826C89F",
"tablename": "users",
"table_label": "codes_pay_types",
"creator": "64BBA147B9AC41D9978062300826C89F",
"creator_fullname": "John Doe",
"creator_properties": {
"id": "64BBA147B9AC41D9978062300826C89F",
"uri": "/api/v1/objects/64BBA147B9AC41D9978062300826C89F",
"tablename": "users",
"table_label": "codes_pay_types",
"custom_fields": {
"C41B2DDA662F4EF6B730F9CB6DB04696": {
"attr_type": "ENUM_STRING_252",
"description": "Employee pay group.",
"id_attr_type": "C41B2DDA662F4EF6B730F9CB6DB04696",
"id_attr_type_uri": "/api/v1/custom_fields/C41B2DDA662F4EF6B730F9CB6DB04696",
"pname": "Pay Group",
"value": "XYZ Pay Group"
},
"users_email": {
"attr_type": "STRING_252",
"description": "Email address",
"id_attr_type": "users_email",
"id_attr_type_uri": "/api/v1/custom_fields/users_email",
"pname": "Email Address",
"value": "username@example.com"
}
},
"group_names": [
{
"id": "5088C427E8B64EBEBE1C5B5961DB1902",
"pname": "Sales"
},
{
"id": "3553F715A6F54DAB95D0D25B08468195",
"pname": "Accounting"
},
{
"id": "5088C427E8B64EBEBE1C5B5961DB1902",
"pname": "Sales"
},
{
"id": "3553F715A6F54DAB95D0D25B08468195",
"pname": "Accounting"
}
],
"groups": [
"5088C427E8B64EBEBE1C5B5961DB1902",
"3553F715A6F54DAB95D0D25B08468195",
"5088C427E8B64EBEBE1C5B5961DB1902",
"3553F715A6F54DAB95D0D25B08468195"
],
"is_hidden": true,
"hidden": true,
"status": "Loggable and Reportable",
"status_code": "lr",
"user_login": "john.smith@example.com",
"fullname": "John Smith",
"u_comment": "string",
"default_memorized_sheet": "string",
"dropdownthreshold": 0,
"hide": true,
"expire_new_pw": true,
"new_pw": "string",
"new_pw2": "string",
"roles": [
"string"
],
"timerecs_in": 3,
"time_period": "default_weekly",
"expense_period": "default_weekly",
"custom_period": "default_weekly",
"expense_gui": "string",
"time_gui": "string",
"travel_gui": "string",
"create_timestamp": 1696021987.01375,
"create_timestamp_date_long": "Wednesday, March 22, 2023",
"create_timestamp_date_short": "03/22/2023",
"create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"create_timestamp_iso": "2023-03-22T12:18:46-05:00",
"modifier": "64BBA147B9AC41D9978062300826C89F",
"modifier_fullname": "John Doe",
"modifier_properties": {},
"modify_timestamp": 1696021987.01375,
"modify_timestamp_date_long": "Wednesday, March 22, 2023",
"modify_timestamp_date_short": "03/22/2023",
"modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"modify_timestamp_iso": "2023-03-22T12:18:46-05:00",
"id_domain": "install_root_dom",
"daysinlist": 0,
"email": "string",
"first_name": "string",
"id_user": "5CD906A3941C463B9CC98F49DBCC25AA",
"last_name": "string",
"memorized_sheet_choices": [
{
"value": "string",
"text": "string"
}
],
"reserved1": "string",
"reserved2": 0,
"reserved3": 0,
"timerecs_out": 0,
"time_gui_properties": {},
"travel_gui_properties": {},
"expense_gui_properties": {},
"creator": "64BBA147B9AC41D9978062300826C89F",
"creator_fullname": "John Doe",
"creator_properties": {}
},
"create_timestamp": 1696021987.01375,
"create_timestamp_date_long": "Wednesday, March 22, 2023",
"create_timestamp_date_short": "03/22/2023",
"create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"create_timestamp_iso": "2023-03-22T12:18:46-05:00",
"modifier": "64BBA147B9AC41D9978062300826C89F",
"modifier_fullname": "John Doe",
"modifier_properties": {
"id": "64BBA147B9AC41D9978062300826C89F",
"uri": "/api/v1/objects/64BBA147B9AC41D9978062300826C89F",
"tablename": "users",
"table_label": "codes_pay_types",
"custom_fields": {
"C41B2DDA662F4EF6B730F9CB6DB04696": {
"attr_type": "ENUM_STRING_252",
"description": "Employee pay group.",
"id_attr_type": "C41B2DDA662F4EF6B730F9CB6DB04696",
"id_attr_type_uri": "/api/v1/custom_fields/C41B2DDA662F4EF6B730F9CB6DB04696",
"pname": "Pay Group",
"value": "XYZ Pay Group"
},
"users_email": {
"attr_type": "STRING_252",
"description": "Email address",
"id_attr_type": "users_email",
"id_attr_type_uri": "/api/v1/custom_fields/users_email",
"pname": "Email Address",
"value": "username@example.com"
}
},
"group_names": [
{
"id": "5088C427E8B64EBEBE1C5B5961DB1902",
"pname": "Sales"
},
{
"id": "3553F715A6F54DAB95D0D25B08468195",
"pname": "Accounting"
},
{
"id": "5088C427E8B64EBEBE1C5B5961DB1902",
"pname": "Sales"
},
{
"id": "3553F715A6F54DAB95D0D25B08468195",
"pname": "Accounting"
}
],
"groups": [
"5088C427E8B64EBEBE1C5B5961DB1902",
"3553F715A6F54DAB95D0D25B08468195",
"5088C427E8B64EBEBE1C5B5961DB1902",
"3553F715A6F54DAB95D0D25B08468195"
],
"is_hidden": true,
"hidden": true,
"status": "Loggable and Reportable",
"status_code": "lr",
"user_login": "john.smith@example.com",
"fullname": "John Smith",
"u_comment": "string",
"default_memorized_sheet": "string",
"dropdownthreshold": 0,
"hide": true,
"expire_new_pw": true,
"new_pw": "string",
"new_pw2": "string",
"roles": [
"string"
],
"timerecs_in": 3,
"time_period": "default_weekly",
"expense_period": "default_weekly",
"custom_period": "default_weekly",
"expense_gui": "string",
"time_gui": "string",
"travel_gui": "string",
"creator": "64BBA147B9AC41D9978062300826C89F",
"creator_fullname": "John Doe",
"creator_properties": {},
"create_timestamp": 1696021987.01375,
"create_timestamp_date_long": "Wednesday, March 22, 2023",
"create_timestamp_date_short": "03/22/2023",
"create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"create_timestamp_iso": "2023-03-22T12:18:46-05:00",
"modify_timestamp": 1696021987.01375,
"modify_timestamp_date_long": "Wednesday, March 22, 2023",
"modify_timestamp_date_short": "03/22/2023",
"modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"modify_timestamp_iso": "2023-03-22T12:18:46-05:00",
"id_domain": "install_root_dom",
"daysinlist": 0,
"email": "string",
"first_name": "string",
"id_user": "5CD906A3941C463B9CC98F49DBCC25AA",
"last_name": "string",
"memorized_sheet_choices": [
{
"value": "string",
"text": "string"
}
],
"reserved1": "string",
"reserved2": 0,
"reserved3": 0,
"timerecs_out": 0,
"time_gui_properties": {},
"travel_gui_properties": {},
"expense_gui_properties": {},
"modifier": "64BBA147B9AC41D9978062300826C89F",
"modifier_fullname": "John Doe",
"modifier_properties": {}
},
"modify_timestamp": 1696021987.01375,
"modify_timestamp_date_long": "Wednesday, March 22, 2023",
"modify_timestamp_date_short": "03/22/2023",
"modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"modify_timestamp_iso": "2023-03-22T12:18:46-05:00",
"id_sheet": "0B04998DCD0E45DF9D0EC97EC926D281",
"id_user": "alice",
"user": "alice",
"user_login": "alice@company.com",
"user_name": "Alice Dev",
"id_timesheet": "default_weekly",
"type": "time",
"state": "open",
"state_flag": 0,
"start_date": "20251102",
"end_date": "20251108",
"dates": [
"20251102",
"20251103",
"20251104",
"20251105",
"20251106",
"20251107",
"20251108"
],
"rod": "20251102202511032025110420251105202511062025110720251108",
"total": 40,
"entry_count": 5,
"level": 0,
"interim_sheet": false,
"sheet_table": "user_time_sheets",
"sheet_status": "Open for Entry",
"pname": "11/02/2025 - 11/08/2025",
"modified_at": "2025-11-03T12:56:20-06:00",
"reserved1": "string",
"reserved2": 0,
"reserved3": 0,
"rows": [
{
"project": "p_d_1_1",
"project_name": "D.01.01 Delta Maine Portland",
"code0": "Meetings",
"code0_name": "Meetings",
"code1": "Regular",
"code1_name": "Regular",
"code2": "Standard",
"code2_name": "Standard",
"code3": "string",
"code3_name": "string",
"code4": "string",
"code4_name": "string",
"code5": "string",
"code5_name": "string",
"code6": "string",
"code6_name": "string",
"comment": "Team standup meeting",
"total": 40,
"read_only": false,
"interim_submitted": false,
"interim_approved": false,
"id_suggestion": null,
"suggestion": {},
"cells": [
{
"date": "20251103",
"amount": 8,
"ids": [
"time_rec_12345",
"time_rec_67890"
],
"attachments": [
{
"uniqueid": "dGltZV9hdHRhY2htZW50czoxMjM0NQ==",
"creator": "alice",
"create_timestamp": 1762196180,
"note": "Receipt for client lunch meeting",
"filename": "receipt_2025-11-03.pdf",
"mimetype": "application/pdf",
"size": 524288
}
],
"notes": [
{
"id": "note_12345",
"text": "Worked on bug fixes for the login module",
"modified": false
}
],
"locations": [
{
"coords": {
"latitude": 30.0613632,
"longitude": -99.1363072,
"altitude": null,
"accuracy": 963.78847
},
"notes": "",
"timestamp": 1762542072875
}
]
}
],
"punchlists": [
{
"punches": [
{
"time_in": "08:00",
"time_in_unix_epoch": 1730894400,
"time_in_ISO_8601": "2025-11-04T08:00:00-06:00",
"time_in_location": {
"coords": {
"latitude": 30.0613632,
"longitude": -99.1363072,
"altitude": null,
"accuracy": 963.78847
},
"notes": "",
"timestamp": 1762542072875
},
"time_out": "12:00",
"time_out_unix_epoch": 1762279200,
"time_out_ISO_8601": "2025-11-04T12:00:00-06:00",
"time_out_location": {
"coords": {
"latitude": 30.0613632,
"longitude": -99.1363072,
"altitude": null,
"accuracy": 963.78847
},
"notes": "",
"timestamp": 1762542072875
}
}
]
}
]
}
],
"columns": [
{
"column_id": "project",
"column_alt_id": "h1",
"name": "Project",
"table": "projects",
"default": "p_d_1_1",
"default_name": "Customer XYZ: Implementation Phase",
"priority": 12,
"hidden": false,
"is_project_column": true,
"is_code_column": false,
"is_text_column": false
}
],
"columns_dict": {},
"gui_options": {
"entryType": "time",
"timeformat": 2,
"arrows": 1,
"pname": "Multi Project Time Entry Grid"
},
"approval_plan_info": {
"approval_plan_active": true,
"approval_levels": 2,
"approver_id": "marino",
"approver_name": "Stephanie Marino"
},
"audit_settings": {
"audit_level_setting": "auditlevel2",
"has_ever_been_submitted": 0,
"requires_correction_recs": 0,
"requires_new_entries": false
},
"id_approver": null,
"approver": null,
"approverView": false,
"reason": null,
"can_be_submitted": false,
"can_be_interim_submitted": true,
"can_go_past": true,
"can_go_future": false,
"min_date": null,
"max_date": "20251108",
"confirm_submit": true,
"confirmation_text": "Are you sure you want to submit this sheet for approval?",
"confirmation_warnings_text": "Your time may violate entry rules specified by your organization, but can still be submitted for approval. Submit sheet with warnings?",
"warnings": false,
"location_enabled": false,
"require_location_web": false,
"require_location_mobile": false,
"entry_notes_enabled": true,
"attachments_enabled": true,
"attachments_uploads_allowed": false,
"extended_fields_enabled": false,
"id_user_properties": {
"id": "64BBA147B9AC41D9978062300826C89F",
"uri": "/api/v1/objects/64BBA147B9AC41D9978062300826C89F",
"tablename": "users",
"table_label": "codes_pay_types",
"custom_fields": {
"C41B2DDA662F4EF6B730F9CB6DB04696": {
"attr_type": "ENUM_STRING_252",
"description": "Employee pay group.",
"id_attr_type": "C41B2DDA662F4EF6B730F9CB6DB04696",
"id_attr_type_uri": "/api/v1/custom_fields/C41B2DDA662F4EF6B730F9CB6DB04696",
"pname": "Pay Group",
"value": "XYZ Pay Group"
},
"users_email": {
"attr_type": "STRING_252",
"description": "Email address",
"id_attr_type": "users_email",
"id_attr_type_uri": "/api/v1/custom_fields/users_email",
"pname": "Email Address",
"value": "username@example.com"
}
},
"group_names": [
{
"id": "5088C427E8B64EBEBE1C5B5961DB1902",
"pname": "Sales"
},
{
"id": "3553F715A6F54DAB95D0D25B08468195",
"pname": "Accounting"
}
],
"groups": [
"5088C427E8B64EBEBE1C5B5961DB1902",
"3553F715A6F54DAB95D0D25B08468195"
],
"is_hidden": true,
"hidden": true,
"status": "Loggable and Reportable",
"status_code": "lr",
"user_login": "john.smith@example.com",
"fullname": "John Smith",
"u_comment": "string",
"default_memorized_sheet": "string",
"dropdownthreshold": 0,
"hide": true,
"expire_new_pw": true,
"new_pw": "string",
"new_pw2": "string",
"roles": [
"string"
],
"timerecs_in": 3,
"time_period": "default_weekly",
"expense_period": "default_weekly",
"custom_period": "default_weekly",
"expense_gui": "string",
"time_gui": "string",
"travel_gui": "string",
"creator": "64BBA147B9AC41D9978062300826C89F",
"creator_fullname": "John Doe",
"creator_properties": {},
"create_timestamp": 1696021987.01375,
"create_timestamp_date_long": "Wednesday, March 22, 2023",
"create_timestamp_date_short": "03/22/2023",
"create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"create_timestamp_iso": "2023-03-22T12:18:46-05:00",
"modifier": "64BBA147B9AC41D9978062300826C89F",
"modifier_fullname": "John Doe",
"modifier_properties": {},
"modify_timestamp": 1696021987.01375,
"modify_timestamp_date_long": "Wednesday, March 22, 2023",
"modify_timestamp_date_short": "03/22/2023",
"modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
"modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
"modify_timestamp_iso": "2023-03-22T12:18:46-05:00",
"id_domain": "install_root_dom",
"daysinlist": 0,
"email": "string",
"first_name": "string",
"id_user": "5CD906A3941C463B9CC98F49DBCC25AA",
"last_name": "string",
"memorized_sheet_choices": [
{
"value": "string",
"text": "string"
}
],
"reserved1": "string",
"reserved2": 0,
"reserved3": 0,
"timerecs_out": 0,
"time_gui_properties": {},
"travel_gui_properties": {},
"expense_gui_properties": {}
},
"history_url": "/jtcgi/approveprojects.pyc?showsystemstick=1&nav_key=sheet_history&history=0B04998DCD0E45DF9D0EC97EC926D281",
"report_url": "/#/reports/output/sheet/BA72DE7FFB854DF2B815A22C2BAEBC32/0B04998DCD0E45DF9D0EC97EC926D281",
"accruals": [
{
"id_timebank": "6D88483CFE774250B29CC61266392DBA",
"pname": "Vacation",
"hours_left": 16,
"id_code_pay_type": [
"Vacation"
],
"pay_types": [
{
"id_code_pay_type": "string",
"name": "string"
}
],
"use_hard_threshold": true,
"hard_threshold": 0,
"hard_threshold_message": "Minimum balance of 0.00 hours is enforced.",
"use_warning": true,
"warning_threshold": 8,
"warning_threshold_message": "A warning is given when the balance is less than or equal to 8.00 hours.",
"warning_type": "v2",
"errors": [],
"warnings": [],
"creator": "string",
"modifier": "string",
"create_timestamp": 0,
"modify_timestamp": 0
}
],
"allocation_exempt_subcodes": [],
"punchlists": [
{
"punches": [
{
"time_in": "08:00",
"time_in_unix_epoch": 1730894400,
"time_in_ISO_8601": "2025-11-04T08:00:00-06:00",
"time_in_location": {
"coords": {
"latitude": 30.0613632,
"longitude": -99.1363072,
"altitude": null,
"accuracy": 963.78847
},
"notes": "",
"timestamp": 1762542072875
},
"time_out": "12:00",
"time_out_unix_epoch": 1762279200,
"time_out_ISO_8601": "2025-11-04T12:00:00-06:00",
"time_out_location": {
"coords": {
"latitude": 30.0613632,
"longitude": -99.1363072,
"altitude": null,
"accuracy": 963.78847
},
"notes": "",
"timestamp": 1762542072875
}
}
]
}
]
}