Save multiple user_timesheet records in a single batch request. This API is used by the Synchronization module to send multiple records in one request instead of sending each record individually, which: 1. Reduces the number of HTTP requests. 2. Improves performance and efficiency. The batch processing logic (deserialize, validation, transaction handling, saving, and logging) is handled by BatchSaveHelper. Each record will return its own ResponseResult indicating success or failure.

Request Information

URI Parameters :

None.

Body Parameters :

user_timesheet
NameDescriptionTypeAdditional information
id

Primary Key

globally unique identifier
user_id

globally unique identifier
hour_type_id

Foreign key of the hour type

globally unique identifier

Required

date_from

Date+Time timesheet FROM

date

Required

date_from_rounded

Date+Time timesheet FROM

date

Required

date_to

Date+Time timesheet TO

date

Required

date_to_rounded

Date+Time timesheet TO

date

Required

remark

Additional remark field

string

Max length: 4000

is_approved

Inform if this user_timesheet belongs to a week approved (readonly)

boolean
is_start_stop

boolean
is_time_for_money

boolean
db_table_id

Foreign key to the table timesheet is linked. Can be a jobs,project,company or empty

globally unique identifier
id_in_table

Foreign key of the object linked. Can be a jobs.id, project.id , company.id or empty

globally unique identifier
property_1_checked

boolean
property_2_checked

boolean
property_3_checked

boolean
property_4_checked

boolean
property_5_checked

boolean
start_latitude_decimal

decimal number
start_longitude_decimal

decimal number
end_latitude_decimal

decimal number
end_longitude_decimal

decimal number
modified_dateutc

Readonly system field managed by database, filled with GetUtcDate when adding,updating

date
is_confirmed

offline field: is_confirmed flag

boolean

Request Formats :

application/json, text/json

Sample:
{
  "id": "47cea1ea-526f-4513-b3f4-bc98d2953701",
  "user_id": "d8ced7ec-e221-483f-9aea-40cfb8361124",
  "hour_type_id": "30833d43-bf18-4e0c-bf32-c57792bedd45",
  "date_from": "2026-06-16T21:15:43.19725+00:00",
  "date_from_rounded": "2026-06-16T21:15:43.19725+00:00",
  "date_to": "2026-06-16T21:15:43.19725+00:00",
  "date_to_rounded": "2026-06-16T21:15:43.19725+00:00",
  "remark": "sample string 8",
  "is_approved": true,
  "is_start_stop": true,
  "is_time_for_money": true,
  "db_table_id": "5465df77-ca76-481a-b85b-022a2c48729c",
  "id_in_table": "8c06b2a1-4932-4f13-b59f-75cf52b97d53",
  "property_1_checked": true,
  "property_2_checked": true,
  "property_3_checked": true,
  "property_4_checked": true,
  "property_5_checked": true,
  "start_latitude_decimal": 19.0,
  "start_longitude_decimal": 20.0,
  "end_latitude_decimal": 21.0,
  "end_longitude_decimal": 22.0,
  "modified_dateutc": "2026-06-16T21:15:43.19725+00:00",
  "is_confirmed": true
}

application/xml, text/xml

Sample:
<user_timesheet xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <date_from>2026-06-16T21:15:43.197Z</date_from>
  <date_from_rounded>2026-06-16T21:15:43.197Z</date_from_rounded>
  <date_to>2026-06-16T21:15:43.197Z</date_to>
  <date_to_rounded>2026-06-16T21:15:43.197Z</date_to_rounded>
  <db_table_id>5465df77-ca76-481a-b85b-022a2c48729c</db_table_id>
  <end_latitude_decimal>21</end_latitude_decimal>
  <end_longitude_decimal>22</end_longitude_decimal>
  <hour_type_id>30833d43-bf18-4e0c-bf32-c57792bedd45</hour_type_id>
  <id>47cea1ea-526f-4513-b3f4-bc98d2953701</id>
  <id_in_table>8c06b2a1-4932-4f13-b59f-75cf52b97d53</id_in_table>
  <is_approved>true</is_approved>
  <is_confirmed>true</is_confirmed>
  <is_start_stop>true</is_start_stop>
  <is_time_for_money>true</is_time_for_money>
  <modified_dateutc>2026-06-16T21:15:43.197Z</modified_dateutc>
  <property_1_checked>true</property_1_checked>
  <property_2_checked>true</property_2_checked>
  <property_3_checked>true</property_3_checked>
  <property_4_checked>true</property_4_checked>
  <property_5_checked>true</property_5_checked>
  <remark>sample string 8</remark>
  <start_latitude_decimal>19</start_latitude_decimal>
  <start_longitude_decimal>20</start_longitude_decimal>
  <user_id>d8ced7ec-e221-483f-9aea-40cfb8361124</user_id>
</user_timesheet>

Response Information

Resource Description :

IHttpActionResult containing batch save results.

user_timesheet
NameDescriptionTypeAdditional information
id

Primary Key

globally unique identifier
user_id

globally unique identifier
hour_type_id

Foreign key of the hour type

globally unique identifier

Required

date_from

Date+Time timesheet FROM

date

Required

date_from_rounded

Date+Time timesheet FROM

date

Required

date_to

Date+Time timesheet TO

date

Required

date_to_rounded

Date+Time timesheet TO

date

Required

remark

Additional remark field

string

Max length: 4000

is_approved

Inform if this user_timesheet belongs to a week approved (readonly)

boolean
is_start_stop

boolean
is_time_for_money

boolean
db_table_id

Foreign key to the table timesheet is linked. Can be a jobs,project,company or empty

globally unique identifier
id_in_table

Foreign key of the object linked. Can be a jobs.id, project.id , company.id or empty

globally unique identifier
property_1_checked

boolean
property_2_checked

boolean
property_3_checked

boolean
property_4_checked

boolean
property_5_checked

boolean
start_latitude_decimal

decimal number
start_longitude_decimal

decimal number
end_latitude_decimal

decimal number
end_longitude_decimal

decimal number
modified_dateutc

Readonly system field managed by database, filled with GetUtcDate when adding,updating

date
is_confirmed

offline field: is_confirmed flag

boolean

Response Formats

application/json, text/json

Sample:
{
  "id": "00296ad8-3766-4bec-afb8-3d852141be62",
  "user_id": "4af80509-e1cb-4cc1-acc1-310619f03ed6",
  "hour_type_id": "40359fd1-e80b-4566-8325-88d4c08dc61f",
  "date_from": "2026-06-16T21:15:43.2576823+00:00",
  "date_from_rounded": "2026-06-16T21:15:43.2576823+00:00",
  "date_to": "2026-06-16T21:15:43.2576823+00:00",
  "date_to_rounded": "2026-06-16T21:15:43.2576823+00:00",
  "remark": "sample string 8",
  "is_approved": true,
  "is_start_stop": true,
  "is_time_for_money": true,
  "db_table_id": "a398ebd1-11f1-4d5f-ad8e-2a321956fbcf",
  "id_in_table": "f222d3e1-e328-4feb-8909-fb41966d2539",
  "property_1_checked": true,
  "property_2_checked": true,
  "property_3_checked": true,
  "property_4_checked": true,
  "property_5_checked": true,
  "start_latitude_decimal": 19.0,
  "start_longitude_decimal": 20.0,
  "end_latitude_decimal": 21.0,
  "end_longitude_decimal": 22.0,
  "modified_dateutc": "2026-06-16T21:15:43.2576823+00:00",
  "is_confirmed": true
}

application/xml, text/xml

Sample:
<user_timesheet xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <date_from>2026-06-16T21:15:43.257Z</date_from>
  <date_from_rounded>2026-06-16T21:15:43.257Z</date_from_rounded>
  <date_to>2026-06-16T21:15:43.257Z</date_to>
  <date_to_rounded>2026-06-16T21:15:43.257Z</date_to_rounded>
  <db_table_id>a398ebd1-11f1-4d5f-ad8e-2a321956fbcf</db_table_id>
  <end_latitude_decimal>21</end_latitude_decimal>
  <end_longitude_decimal>22</end_longitude_decimal>
  <hour_type_id>40359fd1-e80b-4566-8325-88d4c08dc61f</hour_type_id>
  <id>00296ad8-3766-4bec-afb8-3d852141be62</id>
  <id_in_table>f222d3e1-e328-4feb-8909-fb41966d2539</id_in_table>
  <is_approved>true</is_approved>
  <is_confirmed>true</is_confirmed>
  <is_start_stop>true</is_start_stop>
  <is_time_for_money>true</is_time_for_money>
  <modified_dateutc>2026-06-16T21:15:43.257Z</modified_dateutc>
  <property_1_checked>true</property_1_checked>
  <property_2_checked>true</property_2_checked>
  <property_3_checked>true</property_3_checked>
  <property_4_checked>true</property_4_checked>
  <property_5_checked>true</property_5_checked>
  <remark>sample string 8</remark>
  <start_latitude_decimal>19</start_latitude_decimal>
  <start_longitude_decimal>20</start_longitude_decimal>
  <user_id>4af80509-e1cb-4cc1-acc1-310619f03ed6</user_id>
</user_timesheet>