# Item Tracking Lines _(Realtime-enabled)_

`GET` `POST` `PATCH` `DELETE` _(Table: Reservation Entry)_

```
eOne/core/v1.0/itemTrackingLines
```

Assign serial / lot / package tracking to an OPEN document line. Exposed as the itemTrackingLines collection nested under sales & purchase order and return-order lines, and transfer order lines.

POST under a line, e.g. `salesOrderLines({id})/itemTrackingLines`, the parent stamps the source line for you. Provide one of `serialNumber` / `lotNumber` / `packageNumber` plus a `quantity` (a serial always tracks exactly one unit). You can also deep-insert tracking when you POST the order.

> **Note:** Tracking is written through Business Central's reservation engine as surplus entries, not a direct table write, so it is validated against the line's outstanding quantity as you assign it. The item must have an Item Tracking Code, and that code must track the kind of number you send for this kind of document line. A code that tracks lots but not serial numbers on a sale refuses a `serialNumber` on a sales order line, so you see the problem on the call that caused it instead of at posting.

> **Caution:** `serialNumber` / `lotNumber` / `packageNumber` are create-time identity: only `quantity` can be PATCHed, change tracking by DELETE + re-POST. DELETE is refused for a row reserved against a specific supply. Directed put-away & pick (WMS) locations track on warehouse documents, not here.

## Item Tracking Lines fields

_API column → BC field._

**Legend**

- _(req)_ required on create
- _(res)_ resolver
- _(cur)_ currency-translated
- _(ro)_ read-only
- _(ext)_ added to this endpoint by another extension (BC field name shown; its API column name is not known here)

| API | BC field | Notes |
| --- | --- | --- |
| `id` | SystemId | BC record GUID. _(ro)_ |
| `bcCompanyId` | bcCompanyId | The company this row belongs to - the same GUID that appears in the request URL. Present on every endpoint so a store pooling several companies can keep them apart without relying on which URL it called. _(ro)_ |
| `bcCompanyName` | bcCompanyName | The name of the company this row belongs to. _(ro)_ |
| `serialNumber` | Serial No. | Serial number; tracks exactly one unit. Create-time only. |
| `lotNumber` | Lot No. | Lot number. Create-time only. |
| `packageNumber` | Package No. | Package number. Create-time only. |
| `quantity` | quantity | Base quantity to track (always positive). Must be 1 for a serial number. _(req)_ |
| `expirationDate` | Expiration Date | Expiration date of the serial / lot. Create-time only. |
| `warrantyDate` | Warranty Date | Warranty date of the serial / lot. Create-time only. |
| `itemNumber` | Item No. | Resolved from the source line. _(ro)_ |
| `variantCode` | Variant Code | _(ro)_ |
| `locationCode` | Location Code | _(ro)_ |
| `documentNumber` | Source ID | The source document this tracking belongs to. _(ro)_ |
| `lineNumber` | Source Ref. No. | The source line number. _(ro)_ |
| `documentLineId` | documentLineId | GUID of the parent document line, so this tracking maps straight back to its line. _(ro)_ |
| `documentLineIntegrationId` | documentLineIntegrationId | The parent line's Integration Id (your external key), for mapping without a lookup. _(ro)_ |
| `lastModifiedDateTime` | SystemModifiedAt | _(ro)_ |

## Related pages

Nested under [Transfer Order Lines](https://eonesolutions.github.io/eone-bc-integration/core-transferOrderLines.md) and [Sales Order Lines](https://eonesolutions.github.io/eone-bc-integration/core-salesOrderLines.md) and [Sales Return Order Lines](https://eonesolutions.github.io/eone-bc-integration/core-salesReturnOrderLines.md) and [Purchase Order Lines](https://eonesolutions.github.io/eone-bc-integration/core-purchaseOrderLines.md) and [Purchase Return Order Lines](https://eonesolutions.github.io/eone-bc-integration/core-purchaseReturnOrderLines.md).
