# Production tasks: Bimp API methods

URL: https://bimpsoft.com/en/help/developers/api-reference/production-task/

Bimp API methods for the “Production tasks” resource (`/org2/production-task/…`): 4 methods. Base URL: `https://app.bimpsoft.com`. All requests except login pass the company token in the `access-token` header — see [Getting started with the API](/en/help/developers/api-getting-started/).

| Method | What it does |
|---|---|
| [`POST /org2/production-task/api-read`](#api-read) | A request to obtain detailed information for a particular production task |
| [`POST /org2/production-task/api-readList`](#api-read-list) | A request to view a list of production tasks |
| [`POST /org2/production-task/api-create`](#api-create) | Create production tasks from a production order (one task per serial number) |
| [`POST /org2/production-task/api-update`](#api-update) | A request to update an existing production task |

## api-read

`POST /org2/production-task/api-read`

A request to obtain detailed information for a particular production task

**Request body (JSON)**

| Field | Type | Required | Description |
|---|---|---|---|
| `uuid` | string (uuid) | yes | A unique uuid key for the production task document |

**Response: `data` field**

| Field | Type | Description |
|---|---|---|
| `uuid` | string (uuid) | A unique uuid key for the Production task document |
| `date` | string | The document's date in the format 'YYYY-MM-DDTHH:MM:SS' (e.g., '2025-05-16T09:17:49') |
| `number` | string | Production task number |
| `name` | string | Production task name |
| `comment` | string | An optional text field for any additional notes or comments related to the document |
| `documentType` | string \| number | Document type code (63) |
| `archived` | boolean | Whether the production task is archived |
| `posted` | boolean | Whether the document is posted |
| `series` | object \| null |  |
| `nomenclature` | string (uuid) | A unique identifier for the Nomenclature, obtainable from the /nomenclature/api-readList request |
| `characteristic` | string (uuid) \| null |  |
| `specification` | string (uuid) \| null | A unique identifier for the Specification, obtainable from the /specification/api-readList request |
| `productionStartDate` | string \| null |  |
| `plannedFinishDate` | string \| null |  |
| `actualFinishDate` | string \| null |  |
| `author` | string (uuid) | A unique identifier for the Author, obtainable from the /user/api-readList request |
| `responsible` | string (uuid) | A unique identifier for the Employee, obtainable from the /employee/api-readList request |
| `customerOrder` | string (uuid) \| null | A unique identifier for the Invoice for customer payment, obtainable from the /invoiceForCustomerPayment/api-readList request |
| `productionOrder` | string (uuid) \| null | A unique identifier for the Production order document, obtainable from the /production-order/api-readList request |
| `banDate` | string \| null |  |
| `banUpsert` | boolean |  |
| `productionStages` | object[] | Production stages of the task |
| `productionStages[].uniqueId` | string | Row unique id of the production stage. All material rows reference it, so you must generate and keep it |
| `productionStages[].stage` | object \| null | Production stage reference: uuid, name, stageNumber |
| `productionStages[].technologicalOperation` | object \| null | Technological operation, taken from the accrual types catalog |
| `productionStages[].performer` | object \| null | Employee who performs the stage |
| `productionStages[].productionStatus` | object \| null | Production status of the stage with its behaviour flags |
| `productionStages[].semiFinishedProduct` | object \| null | Semi-finished product released at this stage |
| `productionStages[].semiFinishedCharacteristic` | object \| null | Characteristic of the semi-finished product |
| `productionStages[].semiFinishedSpecification` | string (uuid) \| object \| null | Specification of the semi-finished product |
| `productionStages[].semiFinishedQuantity` | number | How many semi-finished products the stage releases |
| `productionStages[].sum` | number | Stage amount the piecework salary is calculated from |
| `productionStages[].actualStageStart` | string \| null | Actual stage start, stamped when the status carries the start flag |
| `productionStages[].actualStageEnd` | string \| null | Actual stage finish, stamped when the status carries the finish flag |
| `productionStages[].repairsCount` | number | Read-only. Replacement and repair rows of this stage, counted by stageId |
| `materials` | object[] | Materials of the task |
| `materials[].uniqueId` | string | Row unique id of the material line. Replacement and repair rows reference it, so the client must generate and keep it |
| `materials[].relatesTo` | string | uniqueId of the production stage this material belongs to |
| `materials[].nomenclature` | string (uuid) | Nomenclature item of the material |
| `materials[].characteristic` | string (uuid) \| null | Characteristic of the nomenclature item |
| `materials[].unit` | string (uuid) | Unit of measurement |
| `materials[].quantity` | number | Quantity of the material required for the task |
| `materials[].reserve` | number | Quantity reserved for the task |
| `materials[].stockBalance` | number | Read-only. Stock balance minus reserves on the warehouse |
| `materials[].warehouse` | string (uuid) | Warehouse the material is written off from |
| `materials[].batch` | object \| null | Batch the material is written off from |
| `materials[].serialNumbers` | object[] | Serial numbers of this row |
| `materials[].serialNumbers[].uuid` | string (uuid) |  |
| `materials[].serialNumbers[].name` | string |  |
| `materials[].serialNumbers[].imei` | string |  |
| `materials[].serialNumbers[].barcode` | string |  |
| `materials[].writeOffDate` | string \| null | Date the material was written off |
| `materials[].repairsCount` | number | Read-only. Replacement and repair rows of this material, counted by relatesTo |
| `replacementMaterials` | object[] | Replacement materials |
| `replacementMaterials[].uniqueId` | string | Row unique id of the replacement line. A repair row may reference it through replacesId, so the client must generate and keep it |
| `replacementMaterials[].relatesTo` | string | uniqueId of the material line this part was removed from |
| `replacementMaterials[].stageId` | string | uniqueId of the production stage the replacement happened on |
| `replacementMaterials[].nomenclature` | string (uuid) | Nomenclature item of the removed part |
| `replacementMaterials[].characteristic` | string (uuid) \| null | Characteristic of the nomenclature item |
| `replacementMaterials[].unit` | string (uuid) | Unit of measurement |
| `replacementMaterials[].quantity` | number | Quantity of the removed part |
| `replacementMaterials[].reserve` | number | Quantity reserved for the task |
| `replacementMaterials[].stockBalance` | number | Read-only. Stock balance minus reserves on the warehouse |
| `replacementMaterials[].warehouse` | string (uuid) | Warehouse the part is returned to |
| `replacementMaterials[].batch` | object \| null | Batch of the removed part |
| `replacementMaterials[].serialNumbers` | object[] | Serial numbers of this row |
| `replacementMaterials[].serialNumbers[].uuid` | string (uuid) |  |
| `replacementMaterials[].serialNumbers[].name` | string |  |
| `replacementMaterials[].serialNumbers[].imei` | string |  |
| `replacementMaterials[].serialNumbers[].barcode` | string |  |
| `replacementMaterials[].reversalDate` | string \| null | Date the write-off was reversed |
| `replacementMaterials[].repairStatus` | object \| null | Repair status of the row with its inWork and isCompleted flags |
| `replacementMaterials[].repairStart` | string \| null | Date the repair started |
| `replacementMaterials[].repairFinish` | string \| null | Date the repair finished |
| `replacementMaterials[].repairResponsible` | object \| null | Employee responsible for the repair |
| `replacementMaterials[].repairComment` | string | Free-text comment about the repair |
| `replacementMaterials[].repairCost` | number | Repair cost. The piecework salary for a finished repair is taken from it |
| `replacementMaterials[].isReplacement` | boolean | Whether the row is a replacement |
| `repairMaterials` | object[] | Repair materials / installed parts |
| `repairMaterials[].uniqueId` | string | Row unique id of the repair line. The next link of the replacement chain references it through replacesId, so the client must generate and keep it |

The full list of fields is in the [interactive documentation](https://app.bimpsoft.com/docs).

```bash
curl -X POST 'https://app.bimpsoft.com/org2/production-task/api-read' \
  -H 'access-token: <company token>' \
  -H 'Content-Type: application/json' \
  -d '{"uuid":"00000000-0000-0000-0000-000000000000"}'
```

## api-readList

`POST /org2/production-task/api-readList`

A request to view a list of production tasks

**Request body (JSON)**

| Field | Type | Required | Description |
|---|---|---|---|
| `pagination` | object | yes |  |
| `pagination.offset` | number | yes | Begin from {offset} elements |
| `pagination.count` | number | yes | Limit of paginated elemets |
| `filters` | object |  |  |
| `filters.search` | string |  | Search by name, article or serial number |
| `filters.date` | string[] |  | Filter by document date range [from, to] |
| `filters.productionStartDate` | string[] |  | Filter by production start date range [from, to] |
| `filters.plannedFinishDate` | string[] |  | Filter by planned finish date range [from, to] |
| `filters.customerOrder` | string (uuid)[] |  | Filter by customer order UUIDs |
| `filters.nomenclature` | string (uuid)[] |  |  |
| `filters.series` | string (uuid)[] |  |  |
| `filters.stage` | string (uuid)[] |  |  |
| `filters.performer` | string (uuid)[] |  |  |
| `filters.priority` | number[] |  |  |
| `filters.showArchived` | boolean |  |  |

**Response: `data` field**

| Field | Type | Description |
|---|---|---|
| `[].uuid` | string (uuid) |  |
| `[].name` | string |  |
| `[].number` | string |  |
| `[].date` | string | The document's date in the format 'YYYY-MM-DDTHH:MM:SS' (e.g., '2025-05-16T09:17:49') |
| `[].comment` | string |  |
| `[].archived` | boolean |  |
| `[].series` | object \| null |  |
| `[].nomenclature` | string (uuid) |  |
| `[].characteristic` | string (uuid) \| null |  |
| `[].productionStartDate` | string \| null |  |
| `[].plannedFinishDate` | string \| null |  |
| `[].actualFinishDate` | string \| null |  |
| `[].stage` | object \| null |  |
| `[].productionStatus` | object \| null |  |
| `[].performer` | object \| null |  |
| `[].hasRepair` | boolean |  |
| `[].repairStatus` | object \| null |  |
| `[].repairResponsible` | object \| null |  |
| `[].repairComment` | string |  |
| `[].components` | object[] |  |
| `[].components[].uuid` | string (uuid) |  |
| `[].components[].name` | string |  |
| `[].components[].quantity` | number |  |

```bash
curl -X POST 'https://app.bimpsoft.com/org2/production-task/api-readList' \
  -H 'access-token: <company token>' \
  -H 'Content-Type: application/json' \
  -d '{"pagination":{"offset":0,"count":10}}'
```

## api-create

`POST /org2/production-task/api-create`

Create production tasks from a production order (one task per serial number)

**Request body (JSON)**

| Field | Type | Required | Description |
|---|---|---|---|
| `productionOrder` | string (uuid) | yes | A unique identifier for the Production order document, obtainable from the /production-order/api-readList request |
| `products` | object[] |  | Selected product rows. Omit to take every row and every serial that has no production task yet. |
| `products[].uniqueId` | string | yes | uniqueId of the production order product row |
| `products[].serialNumbers` | string (uuid)[] |  | Serial numbers of this row to create tasks for. Omit to take every serial of the row. |

**Response: `data` field**

| Field | Type | Description |
|---|---|---|
| `uuid` | string (uuid) | UUID of the created production task |

```bash
curl -X POST 'https://app.bimpsoft.com/org2/production-task/api-create' \
  -H 'access-token: <company token>' \
  -H 'Content-Type: application/json' \
  -d '{"productionOrder":"00000000-0000-0000-0000-000000000000"}'
```

## api-update

`POST /org2/production-task/api-update`

A request to update an existing production task

**Request body (JSON)**

| Field | Type | Required | Description |
|---|---|---|---|
| `uuid` | string (uuid) | yes | A unique uuid key for the production task document to update |
| `date` | string |  | The document's date in the format 'YYYY-MM-DDTHH:MM:SS' (e.g., '2025-05-16T09:17:49') |
| `number` | string |  | Production task number |
| `name` | string |  | Production task name |
| `comment` | string |  | An optional text field for any additional notes or comments related to the document |
| `archived` | boolean |  | Whether the production task is archived |
| `series` | object \| null |  |  |
| `nomenclature` | string (uuid) |  | A unique identifier for the Nomenclature, obtainable from the /nomenclature/api-readList request |
| `characteristic` | string (uuid) \| null |  |  |
| `specification` | string (uuid) \| null |  | A unique identifier for the Specification, obtainable from the /specification/api-readList request |
| `productionStartDate` | string \| null |  |  |
| `plannedFinishDate` | string \| null |  |  |
| `actualFinishDate` | string \| null |  |  |
| `author` | string (uuid) |  | A unique identifier for the Author, obtainable from the /user/api-readList request |
| `responsible` | string (uuid) |  | A unique identifier for the Employee, obtainable from the /employee/api-readList request |
| `customerOrder` | string (uuid) \| null |  | A unique identifier for the Invoice for customer payment, obtainable from the /invoiceForCustomerPayment/api-readList request |
| `productionOrder` | string (uuid) \| null |  | A unique identifier for the Production order document, obtainable from the /production-order/api-readList request |
| `banDate` | string \| null |  |  |
| `banUpsert` | boolean |  |  |
| `productionStages` | object[] |  | Production stages of the task |
| `productionStages[].uniqueId` | string | yes | Row unique id of the production stage. All material rows reference it, so you must generate and keep it |
| `productionStages[].stage` | object \| null |  | Production stage reference: uuid, name, stageNumber |
| `productionStages[].technologicalOperation` | object \| null |  | Technological operation, taken from the accrual types catalog |
| `productionStages[].performer` | object \| null |  | Employee who performs the stage |
| `productionStages[].productionStatus` | object \| null |  | Production status of the stage with its behaviour flags |
| `productionStages[].semiFinishedProduct` | object \| null |  | Semi-finished product released at this stage |
| `productionStages[].semiFinishedCharacteristic` | object \| null |  | Characteristic of the semi-finished product |
| `productionStages[].semiFinishedSpecification` | string (uuid) \| object \| null |  | Specification of the semi-finished product |
| `productionStages[].semiFinishedQuantity` | number |  | How many semi-finished products the stage releases |
| `productionStages[].sum` | number |  | Stage amount the piecework salary is calculated from |
| `productionStages[].actualStageStart` | string \| null |  | Actual stage start, stamped when the status carries the start flag |
| `productionStages[].actualStageEnd` | string \| null |  | Actual stage finish, stamped when the status carries the finish flag |
| `productionStages[].repairsCount` | number |  | Read-only. Replacement and repair rows of this stage, counted by stageId |
| `materials` | object[] |  | Materials of the task |
| `materials[].uniqueId` | string | yes | Row unique id of the material line. Replacement and repair rows reference it, so the client must generate and keep it |
| `materials[].relatesTo` | string | yes | uniqueId of the production stage this material belongs to |
| `materials[].nomenclature` | string (uuid) | yes | Nomenclature item of the material |
| `materials[].characteristic` | string (uuid) \| null |  | Characteristic of the nomenclature item |
| `materials[].unit` | string (uuid) |  | Unit of measurement |
| `materials[].quantity` | number | yes | Quantity of the material required for the task |
| `materials[].reserve` | number |  | Quantity reserved for the task |
| `materials[].stockBalance` | number |  | Read-only. Stock balance minus reserves on the warehouse |
| `materials[].warehouse` | string (uuid) |  | Warehouse the material is written off from |
| `materials[].batch` | object \| null |  | Batch the material is written off from |
| `materials[].serialNumbers` | object[] |  | Serial numbers of this row |
| `materials[].serialNumbers[].uuid` | string (uuid) | yes |  |
| `materials[].serialNumbers[].name` | string |  |  |
| `materials[].serialNumbers[].imei` | string |  |  |
| `materials[].serialNumbers[].barcode` | string |  |  |
| `materials[].writeOffDate` | string \| null |  | Date the material was written off |
| `materials[].repairsCount` | number |  | Read-only. Replacement and repair rows of this material, counted by relatesTo |
| `replacementMaterials` | object[] |  | Replacement materials |
| `replacementMaterials[].uniqueId` | string | yes | Row unique id of the replacement line. A repair row may reference it through replacesId, so the client must generate and keep it |
| `replacementMaterials[].relatesTo` | string | yes | uniqueId of the material line this part was removed from |
| `replacementMaterials[].stageId` | string | yes | uniqueId of the production stage the replacement happened on |
| `replacementMaterials[].nomenclature` | string (uuid) | yes | Nomenclature item of the removed part |
| `replacementMaterials[].characteristic` | string (uuid) \| null |  | Characteristic of the nomenclature item |
| `replacementMaterials[].unit` | string (uuid) |  | Unit of measurement |
| `replacementMaterials[].quantity` | number | yes | Quantity of the removed part |
| `replacementMaterials[].reserve` | number |  | Quantity reserved for the task |
| `replacementMaterials[].stockBalance` | number |  | Read-only. Stock balance minus reserves on the warehouse |
| `replacementMaterials[].warehouse` | string (uuid) |  | Warehouse the part is returned to |
| `replacementMaterials[].batch` | object \| null |  | Batch of the removed part |
| `replacementMaterials[].serialNumbers` | object[] |  | Serial numbers of this row |
| `replacementMaterials[].serialNumbers[].uuid` | string (uuid) | yes |  |
| `replacementMaterials[].serialNumbers[].name` | string |  |  |
| `replacementMaterials[].serialNumbers[].imei` | string |  |  |
| `replacementMaterials[].serialNumbers[].barcode` | string |  |  |
| `replacementMaterials[].reversalDate` | string \| null |  | Date the write-off was reversed |
| `replacementMaterials[].repairStatus` | object \| null |  | Repair status of the row with its inWork and isCompleted flags |
| `replacementMaterials[].repairStart` | string \| null |  | Date the repair started |
| `replacementMaterials[].repairFinish` | string \| null |  | Date the repair finished |
| `replacementMaterials[].repairResponsible` | object \| null |  | Employee responsible for the repair |
| `replacementMaterials[].repairComment` | string |  | Free-text comment about the repair |
| `replacementMaterials[].repairCost` | number |  | Repair cost. The piecework salary for a finished repair is taken from it |
| `replacementMaterials[].isReplacement` | boolean |  | Whether the row is a replacement |
| `repairMaterials` | object[] |  | Repair materials / installed parts |
| `repairMaterials[].uniqueId` | string | yes | Row unique id of the repair line. The next link of the replacement chain references it through replacesId, so the client must generate and keep it |
| `repairMaterials[].relatesTo` | string | yes | uniqueId of the material line being repaired. It stays the same along the whole replacement chain |
| `repairMaterials[].stageId` | string | yes | uniqueId of the production stage the repair happened on |
| `repairMaterials[].replacesId` | string | yes | uniqueId of the previous link: the replacement row the part was taken from, or the previous repair row when the part is replaced again |
| `repairMaterials[].nomenclature` | string (uuid) | yes | Nomenclature item of the installed part |
| `repairMaterials[].characteristic` | string (uuid) \| null |  | Characteristic of the nomenclature item |
| `repairMaterials[].unit` | string (uuid) |  | Unit of measurement |
| `repairMaterials[].quantity` | number | yes | Quantity of the installed part |
| `repairMaterials[].stockBalance` | number |  | Read-only. Stock balance minus reserves on the warehouse |
| `repairMaterials[].warehouse` | string (uuid) |  | Warehouse the part is taken from |
| `repairMaterials[].batch` | object \| null |  | Batch of the installed part |
| `repairMaterials[].serialNumbers` | object[] |  | Serial numbers of this row |
| `repairMaterials[].serialNumbers[].uuid` | string (uuid) | yes |  |
| `repairMaterials[].serialNumbers[].name` | string |  |  |
| `repairMaterials[].serialNumbers[].imei` | string |  |  |
| `repairMaterials[].serialNumbers[].barcode` | string |  |  |
| `repairMaterials[].reversalDate` | string \| null |  | Date the write-off was reversed |
| `repairMaterials[].repairStatus` | object \| null |  | Repair status of the row with its inWork and isCompleted flags |
| `repairMaterials[].repairStart` | string \| null |  | Date the repair started |
| `repairMaterials[].repairFinish` | string \| null |  | Date the repair finished |
| `repairMaterials[].repairResponsible` | object \| null |  | Employee responsible for the repair |
| `repairMaterials[].repairComment` | string |  | Free-text comment about the repair |
| `repairMaterials[].repairCost` | number |  | Repair cost. The piecework salary for a finished repair is taken from it |
| `repairMaterials[].isReplacement` | boolean |  | Whether the row is a replacement |
| `externalLinks` | object[] |  | External links attached to the document |
| `externalLinks[].link` | string | yes | External link attached to the document |

**Response: `data` field**

| Field | Type | Description |
|---|---|---|
| `uuid` | string (uuid) |  |
| `pieceworkSalaries` | string[] | Created piecework salary document names |

```bash
curl -X POST 'https://app.bimpsoft.com/org2/production-task/api-update' \
  -H 'access-token: <company token>' \
  -H 'Content-Type: application/json' \
  -d '{"uuid":"00000000-0000-0000-0000-000000000000"}'
```

Interactive documentation with a test request option: [https://app.bimpsoft.com/docs](https://app.bimpsoft.com/docs). The OpenAPI specification is updated together with Bimp; this page is generated from it automatically.
