Save multiple job_part_usage 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 :
job_part_usage| Name | Description | Type | Additional information |
|---|---|---|---|
| id |
Primary Key |
globally unique identifier |
Required |
| jobs_id |
Foreign key of jobs |
globally unique identifier | |
| job_approval_id |
Job approval Id |
globally unique identifier | |
| article_stock_location_id |
In case of stock management enabled, the stock that has been used |
globally unique identifier | |
| article_id |
Foreign key of article. Can be empty if user keys in manually the object |
globally unique identifier | |
| is_dummy |
In case of dummy |
boolean | |
| article_code |
Article code |
string |
Max length: 255 |
| article_name |
Article name |
string |
Max length: 255 |
| article_description |
Article description |
string |
Max length: 255 |
| working_date |
Date when the part has been used |
date | |
| quantity |
Quantity |
decimal number | |
| serial_number |
When the article.use_serial then the serial should be saved here |
string |
Max length: 255 |
| price |
Unit price of the part. Computed with the price logic or filled via purchase_order_details.price |
decimal number | |
| is_under_warranty |
In case the logic detect that the parts was in warranty, this field will be set to true and the discount will be set equal to the price |
boolean | |
| discount |
Manual discount , in money, added by the technician |
decimal number | |
| purchase_order_details_id |
Foreign key of purchase_order_details, if the line was generated based on a purchase_order_details |
globally unique identifier | |
| user_id |
User Id |
globally unique identifier | |
| remark | string |
Max length: 255 |
|
| no_warranty_reason | string |
Max length: 255 |
|
| db_unit_of_measure_id | globally unique identifier | ||
| included_on_last_stock_compute | boolean | ||
| signed_by_company |
Needed for integration |
boolean | |
| company_vat_id | globally unique identifier | ||
| vat_value | decimal number | ||
| vat_rate | decimal number | ||
| invoice_id | globally unique identifier | ||
| invoice_details_id | globally unique identifier | ||
| is_customized | boolean | ||
| modified_dateutc |
Readonly system field managed by database, filled with GetUtcDate when adding,updating |
date |
Request Formats :
application/json, text/json
{
"id": "78dbbab0-1d9a-4cfa-8241-06e7f36965bb",
"jobs_id": "ebf307ba-6789-438c-abae-e928c7a18351",
"job_approval_id": "84096908-c237-4d2f-90b6-46cc4d05d078",
"article_stock_location_id": "389baf78-e603-4b80-bab8-af489617c1b2",
"article_id": "28e06b0c-1e29-4b02-9960-ef8c4534de7b",
"is_dummy": true,
"article_code": "sample string 7",
"article_name": "sample string 8",
"article_description": "sample string 9",
"working_date": "2026-06-16T21:15:51.7722342+00:00",
"quantity": 11.0,
"serial_number": "sample string 12",
"price": 13.0,
"is_under_warranty": true,
"discount": 15.0,
"purchase_order_details_id": "0b1034f9-5ace-4282-92ee-cb53db84f325",
"user_id": "480692e9-1b9d-4ea3-9e6d-2244d53fdc7f",
"remark": "sample string 18",
"no_warranty_reason": "sample string 19",
"db_unit_of_measure_id": "a68891d7-749f-4452-9355-6944273c35d3",
"included_on_last_stock_compute": true,
"signed_by_company": true,
"company_vat_id": "19006338-a57e-41ca-ae03-ce55f2449263",
"vat_value": 24.0,
"vat_rate": 25.0,
"invoice_id": "4a5dfc72-e76b-4628-b203-377ed7bfc703",
"invoice_details_id": "3bdf035d-a20b-438b-8906-cd1be6f06c2d",
"is_customized": true,
"modified_dateutc": "2026-06-16T21:15:51.7722342+00:00"
}
application/xml, text/xml
<job_part_usage xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <article_code>sample string 7</article_code> <article_description>sample string 9</article_description> <article_id>28e06b0c-1e29-4b02-9960-ef8c4534de7b</article_id> <article_name>sample string 8</article_name> <article_stock_location_id>389baf78-e603-4b80-bab8-af489617c1b2</article_stock_location_id> <company_vat_id>19006338-a57e-41ca-ae03-ce55f2449263</company_vat_id> <db_unit_of_measure_id>a68891d7-749f-4452-9355-6944273c35d3</db_unit_of_measure_id> <discount>15</discount> <id>78dbbab0-1d9a-4cfa-8241-06e7f36965bb</id> <included_on_last_stock_compute>true</included_on_last_stock_compute> <invoice_details_id>3bdf035d-a20b-438b-8906-cd1be6f06c2d</invoice_details_id> <invoice_id>4a5dfc72-e76b-4628-b203-377ed7bfc703</invoice_id> <is_customized>true</is_customized> <is_dummy>true</is_dummy> <is_under_warranty>true</is_under_warranty> <job_approval_id>84096908-c237-4d2f-90b6-46cc4d05d078</job_approval_id> <jobs_id>ebf307ba-6789-438c-abae-e928c7a18351</jobs_id> <modified_dateutc>2026-06-16T21:15:51.772Z</modified_dateutc> <no_warranty_reason>sample string 19</no_warranty_reason> <price>13</price> <purchase_order_details_id>0b1034f9-5ace-4282-92ee-cb53db84f325</purchase_order_details_id> <quantity>11</quantity> <remark>sample string 18</remark> <serial_number>sample string 12</serial_number> <signed_by_company>true</signed_by_company> <user_id>480692e9-1b9d-4ea3-9e6d-2244d53fdc7f</user_id> <vat_rate>25</vat_rate> <vat_value>24</vat_value> <working_date>2026-06-16T21:15:51.772Z</working_date> </job_part_usage>
Response Information
Resource Description :
IHttpActionResult containing batch save results.
job_part_usage| Name | Description | Type | Additional information |
|---|---|---|---|
| id |
Primary Key |
globally unique identifier |
Required |
| jobs_id |
Foreign key of jobs |
globally unique identifier | |
| job_approval_id |
Job approval Id |
globally unique identifier | |
| article_stock_location_id |
In case of stock management enabled, the stock that has been used |
globally unique identifier | |
| article_id |
Foreign key of article. Can be empty if user keys in manually the object |
globally unique identifier | |
| is_dummy |
In case of dummy |
boolean | |
| article_code |
Article code |
string |
Max length: 255 |
| article_name |
Article name |
string |
Max length: 255 |
| article_description |
Article description |
string |
Max length: 255 |
| working_date |
Date when the part has been used |
date | |
| quantity |
Quantity |
decimal number | |
| serial_number |
When the article.use_serial then the serial should be saved here |
string |
Max length: 255 |
| price |
Unit price of the part. Computed with the price logic or filled via purchase_order_details.price |
decimal number | |
| is_under_warranty |
In case the logic detect that the parts was in warranty, this field will be set to true and the discount will be set equal to the price |
boolean | |
| discount |
Manual discount , in money, added by the technician |
decimal number | |
| purchase_order_details_id |
Foreign key of purchase_order_details, if the line was generated based on a purchase_order_details |
globally unique identifier | |
| user_id |
User Id |
globally unique identifier | |
| remark | string |
Max length: 255 |
|
| no_warranty_reason | string |
Max length: 255 |
|
| db_unit_of_measure_id | globally unique identifier | ||
| included_on_last_stock_compute | boolean | ||
| signed_by_company |
Needed for integration |
boolean | |
| company_vat_id | globally unique identifier | ||
| vat_value | decimal number | ||
| vat_rate | decimal number | ||
| invoice_id | globally unique identifier | ||
| invoice_details_id | globally unique identifier | ||
| is_customized | boolean | ||
| modified_dateutc |
Readonly system field managed by database, filled with GetUtcDate when adding,updating |
date |
Response Formats
application/json, text/json
{
"id": "1cc52135-3342-48ef-b767-0b85004092fe",
"jobs_id": "218f8c3d-f0f5-4c64-abac-ca5a3c3e3680",
"job_approval_id": "626f68b6-77f2-44ac-8dbc-e3aa87e55d42",
"article_stock_location_id": "05418b73-31d2-4928-b76a-a53081ff9db6",
"article_id": "6f213513-3fe4-46e2-ae7e-40a49b1b2094",
"is_dummy": true,
"article_code": "sample string 7",
"article_name": "sample string 8",
"article_description": "sample string 9",
"working_date": "2026-06-16T21:15:51.8214842+00:00",
"quantity": 11.0,
"serial_number": "sample string 12",
"price": 13.0,
"is_under_warranty": true,
"discount": 15.0,
"purchase_order_details_id": "9f003a78-f0f6-4e0d-a340-8f6e65de60d4",
"user_id": "a884c1cc-8c90-4aef-a182-36fd25b04f3a",
"remark": "sample string 18",
"no_warranty_reason": "sample string 19",
"db_unit_of_measure_id": "259d89fb-b018-43f4-bc54-a2f8e9220191",
"included_on_last_stock_compute": true,
"signed_by_company": true,
"company_vat_id": "5241ebea-fd02-4c2b-962c-11a6befb938c",
"vat_value": 24.0,
"vat_rate": 25.0,
"invoice_id": "e9b299a3-73f2-4eea-a103-cb8276c644fd",
"invoice_details_id": "3d4929e7-e8ca-4054-8eb8-8c2846033cd7",
"is_customized": true,
"modified_dateutc": "2026-06-16T21:15:51.8214842+00:00"
}
application/xml, text/xml
<job_part_usage xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <article_code>sample string 7</article_code> <article_description>sample string 9</article_description> <article_id>6f213513-3fe4-46e2-ae7e-40a49b1b2094</article_id> <article_name>sample string 8</article_name> <article_stock_location_id>05418b73-31d2-4928-b76a-a53081ff9db6</article_stock_location_id> <company_vat_id>5241ebea-fd02-4c2b-962c-11a6befb938c</company_vat_id> <db_unit_of_measure_id>259d89fb-b018-43f4-bc54-a2f8e9220191</db_unit_of_measure_id> <discount>15</discount> <id>1cc52135-3342-48ef-b767-0b85004092fe</id> <included_on_last_stock_compute>true</included_on_last_stock_compute> <invoice_details_id>3d4929e7-e8ca-4054-8eb8-8c2846033cd7</invoice_details_id> <invoice_id>e9b299a3-73f2-4eea-a103-cb8276c644fd</invoice_id> <is_customized>true</is_customized> <is_dummy>true</is_dummy> <is_under_warranty>true</is_under_warranty> <job_approval_id>626f68b6-77f2-44ac-8dbc-e3aa87e55d42</job_approval_id> <jobs_id>218f8c3d-f0f5-4c64-abac-ca5a3c3e3680</jobs_id> <modified_dateutc>2026-06-16T21:15:51.821Z</modified_dateutc> <no_warranty_reason>sample string 19</no_warranty_reason> <price>13</price> <purchase_order_details_id>9f003a78-f0f6-4e0d-a340-8f6e65de60d4</purchase_order_details_id> <quantity>11</quantity> <remark>sample string 18</remark> <serial_number>sample string 12</serial_number> <signed_by_company>true</signed_by_company> <user_id>a884c1cc-8c90-4aef-a182-36fd25b04f3a</user_id> <vat_rate>25</vat_rate> <vat_value>24</vat_value> <working_date>2026-06-16T21:15:51.821Z</working_date> </job_part_usage>