Creates or updates multiple car travel 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 :
car_travel| Name | Description | Type | Additional information |
|---|---|---|---|
| id |
Primary Key |
globally unique identifier | |
| user_id |
Foreign key of User |
globally unique identifier |
Required |
| car_id |
Foreign key of Car |
globally unique identifier |
Required |
| from_db_address_id |
the FROM info are filled with the latest travel of this car |
globally unique identifier | |
| from_db_table_id |
Identifier of the database table that belongs to, when the departure point is linked to another record (e.g. a job). |
globally unique identifier | |
| from_id_in_table |
Primary key of the linked departure record in the table identified by . |
globally unique identifier | |
| from_travel_type_code |
Kind of departure point (e.g. home, office, previous job). |
string | |
| from_db_address_other |
Free-text departure address, used when the departure point isn't one of the standard linked records. |
string |
Max length: 255 |
| to_db_address_id |
The address used on navigation |
globally unique identifier | |
| to_db_table_id |
TO=> if navigate to a JOBS, to_db_table_id and to_in_table is filled with the jobs info |
globally unique identifier | |
| to_in_in_table |
Primary key of the linked destination record in the table identified by . |
globally unique identifier | |
| to_travel_type_code |
Kind of travel. Can be |
string |
Required |
| to_db_address_other |
Free-text destination address, used when the destination isn't one of the standard linked records. |
string |
Max length: 255 |
| hour_type_id |
Foreign key of the hour type |
globally unique identifier |
Required |
| date_from |
Local date+time when the travel started |
date | |
| date_from_rounded |
rounded to the nearest configured interval, used for billing/display. |
date |
Required |
| date_to |
local date+time when the travel finished |
date | |
| date_to_rounded |
rounded to the nearest configured interval, used for billing/display. |
date |
Required |
| notes |
Additional notes field |
string |
Max length: 4000 |
| km |
2019-04-01: Old field not use it anymore (FSA-986) the Mileage of the car after the travel,* Be aware, value should be always bigger than the last one |
integer | |
| km_before |
Auto filled when a new record is added |
integer | |
| km_after |
the Mileage of the car after the travel,* Be aware, value should be always bigger than the last one |
integer | |
| km_private |
A value the user indicates that contains the total number of km for Private use. |
integer | |
| km_distance |
Distance traveled, in kilometers, computed as minus . |
integer | |
| is_time_for_money |
Indicates this travel time is billable ("time for money") rather than purely informational. |
boolean | |
| is_start_stop |
Indicates this entry was recorded via a start/stop timer rather than manually keyed in. |
boolean | |
| property_1_checked |
Checked state of the hour type's configurable custom property #1 (see ) for this entry. |
boolean | |
| property_2_checked |
Checked state of the hour type's configurable custom property #2 for this entry. |
boolean | |
| property_3_checked |
Checked state of the hour type's configurable custom property #3 for this entry. |
boolean | |
| property_4_checked |
Checked state of the hour type's configurable custom property #4 for this entry. |
boolean | |
| property_5_checked |
Checked state of the hour type's configurable custom property #5 for this entry. |
boolean | |
| start_latitude_decimal |
Latitude of the user's location when the travel was started. |
decimal number | |
| start_longitude_decimal |
Longitude of the user's location when the travel was started. |
decimal number | |
| end_latitude_decimal |
Latitude of the user's location when the travel ended. |
decimal number | |
| end_longitude_decimal |
Longitude of the user's location when the travel ended. |
decimal number | |
| added_dateutc |
Readonly system field: UTC date and time this travel record was added. |
date | |
| is_approved |
is_approved flag |
boolean | |
| is_confirmed |
offline field: is_confirmed flag |
boolean | |
| modified_dateutc |
Readonly system field managed by database, filled with GetUtcDate when adding,updating |
date |
Request Formats :
application/json, text/json
{
"id": "9088c690-5006-4890-8aa4-af8bc1b2fcf4",
"user_id": "1d99e847-1cec-4e9e-960f-9f347b69325b",
"car_id": "c100f951-d9a6-4d82-89ea-5baa33e5d0de",
"from_db_address_id": "e7fea35f-ecc7-4f46-a75f-7686a5f163fc",
"from_db_table_id": "35e74ad9-baeb-4530-8174-c677f730a48a",
"from_id_in_table": "3af0bb92-835e-43cb-9a83-640271783353",
"from_travel_type_code": "sample string 7",
"from_db_address_other": "sample string 8",
"to_db_address_id": "fa6874da-80ec-4e48-a60d-8ed0037a923e",
"to_db_table_id": "327105cb-6e61-41dd-87b8-f01ed831ef79",
"to_in_in_table": "d1aa0576-67d7-49ff-9091-c28d058778ed",
"to_travel_type_code": "sample string 12",
"to_db_address_other": "sample string 13",
"hour_type_id": "882a474a-0534-4fbb-8b5a-c9a2ba7f1b2c",
"date_from": "2026-09-16T11:04:42.030895+00:00",
"date_from_rounded": "2026-09-16T11:04:42.030895+00:00",
"date_to": "2026-09-16T11:04:42.030895+00:00",
"date_to_rounded": "2026-09-16T11:04:42.030895+00:00",
"notes": "sample string 19",
"km": 20,
"km_before": 21,
"km_after": 22,
"km_private": 23,
"km_distance": 24,
"is_time_for_money": true,
"is_start_stop": true,
"property_1_checked": true,
"property_2_checked": true,
"property_3_checked": true,
"property_4_checked": true,
"property_5_checked": true,
"start_latitude_decimal": 32.0,
"start_longitude_decimal": 33.0,
"end_latitude_decimal": 34.0,
"end_longitude_decimal": 35.0,
"added_dateutc": "2026-09-16T11:04:42.030895+00:00",
"is_approved": true,
"is_confirmed": true,
"modified_dateutc": "2026-09-16T11:04:42.030895+00:00"
}
application/xml, text/xml
<car_travel xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <added_dateutc>2026-09-16T11:04:42.030Z</added_dateutc> <car_id>c100f951-d9a6-4d82-89ea-5baa33e5d0de</car_id> <date_from>2026-09-16T11:04:42.030Z</date_from> <date_from_rounded>2026-09-16T11:04:42.030Z</date_from_rounded> <date_to>2026-09-16T11:04:42.030Z</date_to> <date_to_rounded>2026-09-16T11:04:42.030Z</date_to_rounded> <end_latitude_decimal>34</end_latitude_decimal> <end_longitude_decimal>35</end_longitude_decimal> <from_db_address_id>e7fea35f-ecc7-4f46-a75f-7686a5f163fc</from_db_address_id> <from_db_address_other>sample string 8</from_db_address_other> <from_db_table_id>35e74ad9-baeb-4530-8174-c677f730a48a</from_db_table_id> <from_id_in_table>3af0bb92-835e-43cb-9a83-640271783353</from_id_in_table> <from_travel_type_code>sample string 7</from_travel_type_code> <hour_type_id>882a474a-0534-4fbb-8b5a-c9a2ba7f1b2c</hour_type_id> <id>9088c690-5006-4890-8aa4-af8bc1b2fcf4</id> <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> <km>20</km> <km_after>22</km_after> <km_before>21</km_before> <km_distance>24</km_distance> <km_private>23</km_private> <modified_dateutc>2026-09-16T11:04:42.030Z</modified_dateutc> <notes>sample string 19</notes> <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> <start_latitude_decimal>32</start_latitude_decimal> <start_longitude_decimal>33</start_longitude_decimal> <to_db_address_id>fa6874da-80ec-4e48-a60d-8ed0037a923e</to_db_address_id> <to_db_address_other>sample string 13</to_db_address_other> <to_db_table_id>327105cb-6e61-41dd-87b8-f01ed831ef79</to_db_table_id> <to_in_in_table>d1aa0576-67d7-49ff-9091-c28d058778ed</to_in_in_table> <to_travel_type_code>sample string 12</to_travel_type_code> <user_id>1d99e847-1cec-4e9e-960f-9f347b69325b</user_id> </car_travel>
Response Information
Resource Description :
IHttpActionResult containing batch save results.
car_travel| Name | Description | Type | Additional information |
|---|---|---|---|
| id |
Primary Key |
globally unique identifier | |
| user_id |
Foreign key of User |
globally unique identifier |
Required |
| car_id |
Foreign key of Car |
globally unique identifier |
Required |
| from_db_address_id |
the FROM info are filled with the latest travel of this car |
globally unique identifier | |
| from_db_table_id |
Identifier of the database table that belongs to, when the departure point is linked to another record (e.g. a job). |
globally unique identifier | |
| from_id_in_table |
Primary key of the linked departure record in the table identified by . |
globally unique identifier | |
| from_travel_type_code |
Kind of departure point (e.g. home, office, previous job). |
string | |
| from_db_address_other |
Free-text departure address, used when the departure point isn't one of the standard linked records. |
string |
Max length: 255 |
| to_db_address_id |
The address used on navigation |
globally unique identifier | |
| to_db_table_id |
TO=> if navigate to a JOBS, to_db_table_id and to_in_table is filled with the jobs info |
globally unique identifier | |
| to_in_in_table |
Primary key of the linked destination record in the table identified by . |
globally unique identifier | |
| to_travel_type_code |
Kind of travel. Can be |
string |
Required |
| to_db_address_other |
Free-text destination address, used when the destination isn't one of the standard linked records. |
string |
Max length: 255 |
| hour_type_id |
Foreign key of the hour type |
globally unique identifier |
Required |
| date_from |
Local date+time when the travel started |
date | |
| date_from_rounded |
rounded to the nearest configured interval, used for billing/display. |
date |
Required |
| date_to |
local date+time when the travel finished |
date | |
| date_to_rounded |
rounded to the nearest configured interval, used for billing/display. |
date |
Required |
| notes |
Additional notes field |
string |
Max length: 4000 |
| km |
2019-04-01: Old field not use it anymore (FSA-986) the Mileage of the car after the travel,* Be aware, value should be always bigger than the last one |
integer | |
| km_before |
Auto filled when a new record is added |
integer | |
| km_after |
the Mileage of the car after the travel,* Be aware, value should be always bigger than the last one |
integer | |
| km_private |
A value the user indicates that contains the total number of km for Private use. |
integer | |
| km_distance |
Distance traveled, in kilometers, computed as minus . |
integer | |
| is_time_for_money |
Indicates this travel time is billable ("time for money") rather than purely informational. |
boolean | |
| is_start_stop |
Indicates this entry was recorded via a start/stop timer rather than manually keyed in. |
boolean | |
| property_1_checked |
Checked state of the hour type's configurable custom property #1 (see ) for this entry. |
boolean | |
| property_2_checked |
Checked state of the hour type's configurable custom property #2 for this entry. |
boolean | |
| property_3_checked |
Checked state of the hour type's configurable custom property #3 for this entry. |
boolean | |
| property_4_checked |
Checked state of the hour type's configurable custom property #4 for this entry. |
boolean | |
| property_5_checked |
Checked state of the hour type's configurable custom property #5 for this entry. |
boolean | |
| start_latitude_decimal |
Latitude of the user's location when the travel was started. |
decimal number | |
| start_longitude_decimal |
Longitude of the user's location when the travel was started. |
decimal number | |
| end_latitude_decimal |
Latitude of the user's location when the travel ended. |
decimal number | |
| end_longitude_decimal |
Longitude of the user's location when the travel ended. |
decimal number | |
| added_dateutc |
Readonly system field: UTC date and time this travel record was added. |
date | |
| is_approved |
is_approved flag |
boolean | |
| is_confirmed |
offline field: is_confirmed flag |
boolean | |
| modified_dateutc |
Readonly system field managed by database, filled with GetUtcDate when adding,updating |
date |
Response Formats
application/json, text/json
{
"id": "1295c4e7-9cb7-4567-8ed3-f128de7d5f0a",
"user_id": "c649fae9-2d40-4419-a798-090260401f21",
"car_id": "501e6bac-0ac6-428a-be4c-988457f11166",
"from_db_address_id": "6fcd9c5f-a975-4154-a809-c2025c211798",
"from_db_table_id": "dbf5e853-f91e-4a0e-b942-bb265a595c6e",
"from_id_in_table": "4024c149-215e-49d8-8191-c49a46b06ce1",
"from_travel_type_code": "sample string 7",
"from_db_address_other": "sample string 8",
"to_db_address_id": "5d65ca31-5046-4b37-8ac6-4349bded3d3a",
"to_db_table_id": "ea9bd57c-ded3-453d-91b5-b5d0ea1c64de",
"to_in_in_table": "f7017dac-07ab-41dd-bc07-98dc96e583b0",
"to_travel_type_code": "sample string 12",
"to_db_address_other": "sample string 13",
"hour_type_id": "584e9f90-d9a2-4218-af7e-e5847d7e0915",
"date_from": "2026-09-16T11:04:42.030895+00:00",
"date_from_rounded": "2026-09-16T11:04:42.030895+00:00",
"date_to": "2026-09-16T11:04:42.030895+00:00",
"date_to_rounded": "2026-09-16T11:04:42.030895+00:00",
"notes": "sample string 19",
"km": 20,
"km_before": 21,
"km_after": 22,
"km_private": 23,
"km_distance": 24,
"is_time_for_money": true,
"is_start_stop": true,
"property_1_checked": true,
"property_2_checked": true,
"property_3_checked": true,
"property_4_checked": true,
"property_5_checked": true,
"start_latitude_decimal": 32.0,
"start_longitude_decimal": 33.0,
"end_latitude_decimal": 34.0,
"end_longitude_decimal": 35.0,
"added_dateutc": "2026-09-16T11:04:42.030895+00:00",
"is_approved": true,
"is_confirmed": true,
"modified_dateutc": "2026-09-16T11:04:42.030895+00:00"
}
application/xml, text/xml
<car_travel xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <added_dateutc>2026-09-16T11:04:42.030Z</added_dateutc> <car_id>501e6bac-0ac6-428a-be4c-988457f11166</car_id> <date_from>2026-09-16T11:04:42.030Z</date_from> <date_from_rounded>2026-09-16T11:04:42.030Z</date_from_rounded> <date_to>2026-09-16T11:04:42.030Z</date_to> <date_to_rounded>2026-09-16T11:04:42.030Z</date_to_rounded> <end_latitude_decimal>34</end_latitude_decimal> <end_longitude_decimal>35</end_longitude_decimal> <from_db_address_id>6fcd9c5f-a975-4154-a809-c2025c211798</from_db_address_id> <from_db_address_other>sample string 8</from_db_address_other> <from_db_table_id>dbf5e853-f91e-4a0e-b942-bb265a595c6e</from_db_table_id> <from_id_in_table>4024c149-215e-49d8-8191-c49a46b06ce1</from_id_in_table> <from_travel_type_code>sample string 7</from_travel_type_code> <hour_type_id>584e9f90-d9a2-4218-af7e-e5847d7e0915</hour_type_id> <id>1295c4e7-9cb7-4567-8ed3-f128de7d5f0a</id> <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> <km>20</km> <km_after>22</km_after> <km_before>21</km_before> <km_distance>24</km_distance> <km_private>23</km_private> <modified_dateutc>2026-09-16T11:04:42.030Z</modified_dateutc> <notes>sample string 19</notes> <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> <start_latitude_decimal>32</start_latitude_decimal> <start_longitude_decimal>33</start_longitude_decimal> <to_db_address_id>5d65ca31-5046-4b37-8ac6-4349bded3d3a</to_db_address_id> <to_db_address_other>sample string 13</to_db_address_other> <to_db_table_id>ea9bd57c-ded3-453d-91b5-b5d0ea1c64de</to_db_table_id> <to_in_in_table>f7017dac-07ab-41dd-bc07-98dc96e583b0</to_in_in_table> <to_travel_type_code>sample string 12</to_travel_type_code> <user_id>c649fae9-2d40-4419-a798-090260401f21</user_id> </car_travel>