Download OpenAPI specification:
Logistics operations API for the 4klyft platform.
This API provides comprehensive endpoints for managing:
All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication.
Include the token in the Authorization header:
Authorization: Bearer <your-jwt-token>
API requests are rate-limited to ensure fair usage. Standard limits are:
Retrieve a paginated list of inventory items with optional filters.
| status | string Enum: "active" "discontinued" Example: status=active Filter by item status |
| principalId | string <uuid> Filter by principal ID |
| search | string Example: search=Widget Search by name or SKU |
| trackingMode | string Enum: "plain" "batched" "serial" Example: trackingMode=plain Filter by tracking mode discriminator |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 Example: itemsPerPage=20 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "01912345-6789-7abc-def0-123456789abc",
- "principalName": "string",
- "description": "string",
- "status": "active",
- "trackingMode": "plain",
- "discontinuationReason": "Replaced by Widget B",
- "weight": {
- "value": 500,
- "unit": "g"
}, - "dimensions": {
- "length": 100,
- "width": 50,
- "height": 25,
- "unit": "mm"
}, - "unitsPerPallet": 48,
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Register a new inventory item (SKU).
Inventory item registration data
| sku required | string non-empty |
| name required | string non-empty |
| unitOfMeasure | string or null |
| principalId required | string <uuid> |
| description | string or null |
| trackingMode | string or null Default: "plain" Enum: "plain" "batched" "serial" |
{- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "0a52818d-1e0c-4e64-848e-4d04f9e914e5",
- "description": "string",
- "trackingMode": "plain"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "01912345-6789-7abc-def0-123456789abc",
- "principalName": "string",
- "description": "string",
- "status": "active",
- "trackingMode": "plain",
- "discontinuationReason": "Replaced by Widget B",
- "weight": {
- "value": 500,
- "unit": "g"
}, - "dimensions": {
- "length": 100,
- "width": 50,
- "height": 25,
- "unit": "mm"
}, - "unitsPerPallet": 48,
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Retrieve a single inventory item by its UUID.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Inventory item UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "01912345-6789-7abc-def0-123456789abc",
- "principalName": "string",
- "description": "string",
- "status": "active",
- "trackingMode": "plain",
- "discontinuationReason": "Replaced by Widget B",
- "weight": {
- "value": 500,
- "unit": "g"
}, - "dimensions": {
- "length": 100,
- "width": 50,
- "height": 25,
- "unit": "mm"
}, - "unitsPerPallet": 48,
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Switch the discriminator between plain, batched, and serial. Rejected when the item already has lots or serial units.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Inventory item UUID |
New tracking mode
| trackingMode required | string Enum: "plain" "batched" "serial" |
{- "trackingMode": "plain"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "01912345-6789-7abc-def0-123456789abc",
- "principalName": "string",
- "description": "string",
- "status": "active",
- "trackingMode": "plain",
- "discontinuationReason": "Replaced by Widget B",
- "weight": {
- "value": 500,
- "unit": "g"
}, - "dimensions": {
- "length": 100,
- "width": 50,
- "height": 25,
- "unit": "mm"
}, - "unitsPerPallet": 48,
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Mark an inventory item as discontinued.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Inventory item UUID |
Optional discontinuation reason
| reason | string or null <= 500 characters |
{- "reason": "Replaced by Widget B"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "01912345-6789-7abc-def0-123456789abc",
- "principalName": "string",
- "description": "string",
- "status": "active",
- "trackingMode": "plain",
- "discontinuationReason": "Replaced by Widget B",
- "weight": {
- "value": 500,
- "unit": "g"
}, - "dimensions": {
- "length": 100,
- "width": 50,
- "height": 25,
- "unit": "mm"
}, - "unitsPerPallet": 48,
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Update inventory item details. Only provided fields will be updated.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Inventory item UUID |
The new InventoryItem resource
| name | string or null [ 1 .. 255 ] characters |
| description | string or null |
| unitOfMeasure | string or null |
InventoryItemWeightInput (object) or null | |
InventoryItemDimensionsInput (object) or null | |
| unitsPerPallet | integer or null >= 0 |
{- "name": "string",
- "description": "string",
- "unitOfMeasure": "string",
- "weight": {
- "value": 0,
- "unit": "g"
}, - "dimensions": {
- "length": 0,
- "width": 0,
- "height": 0,
- "unit": "mm"
}, - "unitsPerPallet": 0
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "sku": "SKU-001",
- "name": "Widget A",
- "unitOfMeasure": "H87",
- "principalId": "01912345-6789-7abc-def0-123456789abc",
- "principalName": "string",
- "description": "string",
- "status": "active",
- "trackingMode": "plain",
- "discontinuationReason": "Replaced by Widget B",
- "weight": {
- "value": 500,
- "unit": "g"
}, - "dimensions": {
- "length": 100,
- "width": 50,
- "height": 25,
- "unit": "mm"
}, - "unitsPerPallet": 48,
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Availability of an item at a custodian (item × custodian grain). Read-only
except for the manual set/override POST. Quantities are capability-gated:
when dataState is unsupported or restricted they are null, never 0.
Paginated availability per (item, custodian), filterable by item and/or custodian. Each row carries a capability-gated data state.
| inventoryItemId | string <uuid> |
| custodianId | string <uuid> |
| page | integer >= 1 Default: 1 |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "inventoryItemId": "string",
- "custodianId": "string",
- "availableQuantity": 0,
- "onHandQuantity": 0,
- "dataState": "supported",
- "source": "string",
- "nodeRef": "string",
- "asOfAt": "string",
- "canListInventory": false,
- "warehouseVisibility": "tenant_picks_warehouse"
}
]
}Set or override the availability for a (item, custodian) pair — for custodians that cannot be inspected, or as an operator override. Returns the resulting level.
The new InventoryLevel resource
| inventoryItemId required | string |
| custodianId required | string |
| availableQuantity required | integer >= 0 |
| onHandQuantity | integer or null >= 0 |
| asOfAt |
{- "inventoryItemId": "string",
- "custodianId": "string",
- "availableQuantity": 0,
- "onHandQuantity": 0,
- "asOfAt": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "string",
- "inventoryItemId": "string",
- "custodianId": "string",
- "availableQuantity": 0,
- "onHandQuantity": 0,
- "dataState": "supported",
- "source": "string",
- "nodeRef": "string",
- "asOfAt": "string",
- "canListInventory": false,
- "warehouseVisibility": "tenant_picks_warehouse"
}Retrieve a paginated list of lots with optional filters.
| status | string Enum: "available" "depleted" "expired" "recalled" Example: status=available Filter by lot status |
| inventoryItemId | string <uuid> Filter by inventory item ID |
| search | string Example: search=LOT-2024 Search by lot number |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 Example: itemsPerPage=20 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "lotNumber": "LOT-2024-001",
- "totalQuantity": 1000,
- "availableQuantity": 850,
- "status": "available",
- "lastAdjustmentReason": "Customer order",
- "expiryDate": "2025-12-31T00:00:00+00:00",
- "manufactureDate": "2024-01-15T00:00:00+00:00",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Register a new lot for an inventory item.
Lot registration data
| inventoryItemId required | string <uuid> |
| lotNumber required | string non-empty |
| totalQuantity required | integer >= 1 |
| expiryDate | string or null <date-time> |
| manufactureDate | string or null <date-time> |
{- "inventoryItemId": "ef1bc09e-447a-46aa-a9d9-d86e3d490831",
- "lotNumber": "LOT-2024-001",
- "totalQuantity": 1000,
- "expiryDate": "2019-08-24T14:15:22Z",
- "manufactureDate": "2019-08-24T14:15:22Z"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "lotNumber": "LOT-2024-001",
- "totalQuantity": 1000,
- "availableQuantity": 850,
- "status": "available",
- "lastAdjustmentReason": "Customer order",
- "expiryDate": "2025-12-31T00:00:00+00:00",
- "manufactureDate": "2024-01-15T00:00:00+00:00",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Retrieve a single lot by its UUID.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Lot UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "lotNumber": "LOT-2024-001",
- "totalQuantity": 1000,
- "availableQuantity": 850,
- "status": "available",
- "lastAdjustmentReason": "Customer order",
- "expiryDate": "2025-12-31T00:00:00+00:00",
- "manufactureDate": "2024-01-15T00:00:00+00:00",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Adjust the quantity of a lot (positive or negative).
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Lot UUID |
The new Lot resource
| adjustment required | integer |
| reason required | string <= 500 characters |
{- "adjustment": 0,
- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "lotNumber": "LOT-2024-001",
- "totalQuantity": 1000,
- "availableQuantity": 850,
- "status": "available",
- "lastAdjustmentReason": "Customer order",
- "expiryDate": "2025-12-31T00:00:00+00:00",
- "manufactureDate": "2024-01-15T00:00:00+00:00",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Recall a lot, marking it as unavailable.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Lot UUID |
The new Lot resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "lotNumber": "LOT-2024-001",
- "totalQuantity": 1000,
- "availableQuantity": 850,
- "status": "available",
- "lastAdjustmentReason": "Customer order",
- "expiryDate": "2025-12-31T00:00:00+00:00",
- "manufactureDate": "2024-01-15T00:00:00+00:00",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Represents an inventory principal — a partner acting as a goods owner in the inventory domain.
Retrieve a paginated list of inventory principals with optional filters.
| status | string Enum: "active" "suspended" "closed" Example: status=active Filter by principal status |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 Example: itemsPerPage=20 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Create a new inventory principal from an existing partner.
Principal creation data
| partnerId required | string <uuid> |
{- "partnerId": "01912345-6789-7abc-def0-123456789abc"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Resolve the principal profile held by a partner. Returns 404 when the partner holds no principal.
| partnerId required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Partner UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Create a principal for an EXISTING partner and assign the Partner.Principal role. Idempotent: returns the existing principal (200) when the partner already holds one.
Onboarding data
| partnerId required | string <uuid> |
{- "partnerId": "01912345-6789-7abc-def0-123456789abc"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Retrieve a single inventory principal by its UUID.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Principal UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Activate a suspended inventory principal.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Principal UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Suspend an active inventory principal.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Principal UUID |
The new InventoryPrincipal resource
| reason required | string |
{- "reason": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "partnerId": "01912345-6789-7abc-def0-123456789abc",
- "partnerName": "Acme Logistics",
- "status": "active",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Retrieve a paginated list of serial units with optional filters.
| status | string Enum: "available" "allocated" "in_transit" "delivered" "returned" "damaged" "lost" Example: status=available Filter by serial unit status |
| inventoryItemId | string <uuid> Filter by inventory item ID |
| lotId | string <uuid> Filter by lot ID |
| search | string Example: search=SN-001 Search by serial number |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination |
| itemsPerPage | integer [ 1 .. 100 ] Default: 20 Example: itemsPerPage=20 Number of items per page |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "serialNumber": "SN-001",
- "quantity": 1,
- "status": "available",
- "lotId": "01912345-6789-7abc-def0-123456789abc",
- "lotNumber": "string",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}
]
}Register a new serial unit for an inventory item.
Serial unit registration data
| inventoryItemId required | string <uuid> |
| serialNumber required | string non-empty |
| quantity required | integer >= 1 |
| lotId | string or null <uuid> |
{- "inventoryItemId": "ef1bc09e-447a-46aa-a9d9-d86e3d490831",
- "serialNumber": "SN-001",
- "quantity": 1,
- "lotId": "e8c5065f-4319-4b13-ad99-eb9182a42d06"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "serialNumber": "SN-001",
- "quantity": 1,
- "status": "available",
- "lotId": "01912345-6789-7abc-def0-123456789abc",
- "lotNumber": "string",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Retrieve a single serial unit by its UUID.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Serial unit UUID |
{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "serialNumber": "SN-001",
- "quantity": 1,
- "status": "available",
- "lotId": "01912345-6789-7abc-def0-123456789abc",
- "lotNumber": "string",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}Return the curated event-by-event audit timeline for a serial unit, oldest first.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Serial unit UUID |
| page | integer Default: 1 The collection page number |
{- "totalItems": 0,
- "search": {
- "@type": "string",
- "template": "string",
- "variableRepresentation": "string",
- "mapping": [
- {
- "@type": "string",
- "variable": "string",
- "property": "string",
- "required": true
}
]
}, - "view": {
- "@id": "string",
- "@type": "string",
- "first": "string",
- "last": "string",
- "previous": "string",
- "next": "string"
}, - "member": [
- {
- "@context": "string",
- "@id": "string",
- "@type": "string",
- "entryId": "string",
- "kind": "string",
- "occurredAt": "string",
- "actor": {
- "displayName": "string",
- "rawId": "string"
}, - "summary": "string",
- "details": {
- "property1": "string",
- "property2": "string"
}
}
]
}Update the status of a serial unit.
| id required | string <uuid> Example: 01912345-6789-7abc-def0-123456789abc Serial unit UUID |
The new SerialUnit resource
| status required | string |
{- "status": "string"
}{- "@context": "string",
- "@id": "string",
- "@type": "string",
- "id": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemId": "01912345-6789-7abc-def0-123456789abc",
- "inventoryItemName": "string",
- "serialNumber": "SN-001",
- "quantity": 1,
- "status": "available",
- "lotId": "01912345-6789-7abc-def0-123456789abc",
- "lotNumber": "string",
- "createdAt": "2024-01-15T10:00:00+00:00",
- "updatedAt": "2024-06-15T14:30:00+00:00"
}