# Retrieve an inventory decrease

Operation ID: `getInventoryDecrease`

Group: Inventory › Inventory Decreases

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getInventoryDecrease)

`GET /inventory/inventory-decreases/{id}`

Read-only: Reads and returns; changes nothing.

Retrieves an inventory decrease. The inventory decrease comes back with its main fields, its lines, and each line's batch, serial, and bin details.

POST inventory/inventory-decreases/search returns the same fields. The collection GET inventory/inventory-decreases returns the main fields without the lines.

documentStatus says what you can do next. A 'DRAFT' can be updated, committed, or deleted. A 'COMMITTED' one can't be changed or deleted, and a 'CANCELLED' one can only be deleted.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |
| `id` | path | string | yes | The unique identifier of the inventory decrease you want to retrieve. |

## Response

`200` Success

Under `data` (getInventoryDecreaseOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the inventory decrease. Example: `"d4a17f28-6b93-4c50-8e71-2a5d0c9b3e64"`. |
| `documentNumber` | string | no | The inventory decrease's document number, for example 'DEC-42'. Absent while none has been assigned. Example: `"DEC-42"`. |
| `documentStatus` | string | yes | The status of the inventory decrease. Possible values: 'DRAFT', 'COMMITTED', 'CANCELLED'. Example: `"DRAFT"`. |
| `documentDate` | date | yes | The date the adjustment is dated. It drives the posting period, so it is not the same as when the record was created. Format YYYY-MM-DD. Example: `"2026-08-14"`. |
| `entityId` | string | yes | The unique identifier for the legal entity the document belongs to. See id on GET base/entities. Example: `"1a9c4e70-38b5-4d26-9f01-7c2e5b8a6d43"`. |
| `entityName` | string | no | The display name of that legal entity. Example: `"Acme Netherlands B.V."`. |
| `locationId` | string | no | The unique identifier for the warehouse location. One location for the whole document, and every line uses it. Absent only on a document with no lines. See id on GET inventory/warehouses/:id. Example: `"e1d84c07-5b39-4a26-9f70-2c8b613ad495"`. |
| `locationCode` | string | no | The short code of that warehouse location. Example: `"WH-01"`. |
| `locationName` | string | no | The display name of that warehouse location. Example: `"Rotterdam Distribution Centre"`. |
| `reasonCodeId` | string | no | The unique identifier for the reason code, when one was given. See id on GET inventory/reason-codes/:id. Example: `"6f2b58c1-9d47-4e03-a815-70c9d2e46b38"`. |
| `reasonCode` | string | no | The short code of that reason code. Example: `"COUNT"`. |
| `reasonCodeDescription` | string | no | The description of that reason code. Example: `"Count correction"`. |
| `currency` | string | no | The currency the inventory decrease is valued in, the legal entity's functional currency. Format ISO 4217, for example 'EUR'. Example: `"EUR"`. |
| `notes` | string | no | Free text on the inventory decrease. Example: `"August cycle count"`. |
| `createdDate` | date-time | no | The date and time the inventory decrease was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: `"2026-08-14T09:12:00.000Z"`. |
| `lastModifiedDate` | date-time | no | The date and time the inventory decrease record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. Example: `"2026-08-14T09:12:00.000Z"`. |
| `lines` | array<object> | yes | The lines of the inventory decrease. An inventory decrease always has at least one. Example: `[{"id":"9b3f5a10-7c24-4e68-8d05-1f6a92b4c837","itemId":"5f21c8b0-9d34-4a76-8e12-04b93c7de5a8","itemCode":"WIDGET-01","itemName":"Standard widget","unitId":"3b7d5e9c-1a24-4f80-9c6d-2e8f70b13a45","unitCode":"EA","quantity":"12.00","inventoryQuantity":"12.00","notes":"Crushed by a forklift","batches":[{"batchNumberId":"9c31f5a8-6b02-4e79-b354-8d1a67e0f2b9","batchNumber":"LOT-2026-08-14","expirationDate":"2027-08-14","quantity":"12.00","inventoryQuantity":"12.00"}],"binLocations":[{"binLocationId":"0c7e91d3-4a58-4b26-9e10-63f8a2c5d704","binLocationCode":"A-01-02","quantity":"12.00","inventoryQuantity":"12.00","batchNumber":"LOT-2026-08-14"}]}]`. |
| `lines[].id` | string | yes | The unique identifier for the inventory decrease line. |
| `lines[].itemId` | string | yes | The unique identifier for the item whose stock this line removes. See id on GET inventory/items/:id. |
| `lines[].itemCode` | string | no | The short code of that item. |
| `lines[].itemName` | string | no | The display name of that item. |
| `lines[].unitId` | string | yes | The unique identifier for the unit the quantity is counted in. See id on GET inventory/unit-of-measures/:id. |
| `lines[].unitCode` | string | no | The short code of that unit, for example 'BOX'. |
| `lines[].quantity` | decimal | yes | The quantity removed, in the line's unit. A positive number. |
| `lines[].inventoryQuantity` | decimal | no | The same quantity in the item's stocking unit. |
| `lines[].unitPrice` | decimal | no | The value of one unit, in the inventory decrease's currency, when one was recorded. Usually absent, since stock leaving is valued at the cost it already has. |
| `lines[].notes` | string | no | Free text on the line. |
| `lines[].batches` | array<object> | no | The batches making up this line's quantity, for a batch-tracked item. Absent when the item is not batch-tracked. |
| `lines[].batches[].batchNumberId` | string | no | The unique identifier for the batch record. |
| `lines[].batches[].batchNumber` | string | yes | The batch number as printed, for example 'LOT-2026-08-14'. |
| `lines[].batches[].manufacturerBatchNumber` | string | no | The maker's own number for the same batch, when one was recorded. |
| `lines[].batches[].expirationDate` | date | no | The expiration date of the batch. Format YYYY-MM-DD. |
| `lines[].batches[].quantity` | decimal | yes | The quantity of this batch removed by the line, in the line's unit. |
| `lines[].batches[].inventoryQuantity` | decimal | no | The same quantity in the item's stocking unit. |
| `lines[].serials` | array<object> | no | The serialized units making up this line's quantity, one entry per unit. Absent when the item is not serialized. |
| `lines[].serials[].serialNumberId` | string | no | The unique identifier for the serial record. |
| `lines[].serials[].serialNumber` | string | yes | The serial number stamped on the unit. |
| `lines[].serials[].manufacturerSerialNumber` | string | no | The maker's own number for the same unit, when one was recorded. |
| `lines[].binLocations` | array<object> | no | The bins the quantity came out of, in a bin-tracked warehouse. Each entry that names a batchNumber or serialNumber belongs to that batch or unit, and one that names neither belongs to the line. |
| `lines[].binLocations[].binLocationId` | string | yes | The unique identifier for the bin the quantity came out of. See id on GET inventory/bins/:id. |
| `lines[].binLocations[].binLocationCode` | string | no | The short code of that bin. |
| `lines[].binLocations[].quantity` | decimal | yes | The quantity taken from this bin, in the line's unit. |
| `lines[].binLocations[].inventoryQuantity` | decimal | no | The same quantity in the item's stocking unit. |
| `lines[].binLocations[].batchNumber` | string | no | The batch this bin entry belongs to, when it belongs to one of the line's batches. |
| `lines[].binLocations[].serialNumber` | string | no | The serialized unit this bin entry belongs to, when it belongs to one of the line's units. |

```json
{
  "data": {
    "id": "d4a17f28-6b93-4c50-8e71-2a5d0c9b3e64",
    "documentNumber": "DEC-42",
    "documentStatus": "DRAFT",
    "documentDate": "2026-08-14",
    "entityId": "1a9c4e70-38b5-4d26-9f01-7c2e5b8a6d43",
    "entityName": "Acme Netherlands B.V.",
    "locationId": "e1d84c07-5b39-4a26-9f70-2c8b613ad495",
    "locationCode": "WH-01",
    "locationName": "Rotterdam Distribution Centre",
    "reasonCodeId": "6f2b58c1-9d47-4e03-a815-70c9d2e46b38",
    "reasonCode": "COUNT",
    "reasonCodeDescription": "Count correction",
    "currency": "EUR",
    "notes": "August cycle count",
    "createdDate": "2026-08-14T09:12:00.000Z",
    "lastModifiedDate": "2026-08-14T09:12:00.000Z",
    "lines": [
      {
        "id": "9b3f5a10-7c24-4e68-8d05-1f6a92b4c837",
        "itemId": "5f21c8b0-9d34-4a76-8e12-04b93c7de5a8",
        "itemCode": "WIDGET-01",
        "itemName": "Standard widget",
        "unitId": "3b7d5e9c-1a24-4f80-9c6d-2e8f70b13a45",
        "unitCode": "EA",
        "quantity": "12.00",
        "inventoryQuantity": "12.00",
        "notes": "Crushed by a forklift",
        "batches": [
          {
            "batchNumberId": "9c31f5a8-6b02-4e79-b354-8d1a67e0f2b9",
            "batchNumber": "LOT-2026-08-14",
            "expirationDate": "2027-08-14",
            "quantity": "12.00",
            "inventoryQuantity": "12.00"
          }
        ],
        "binLocations": [
          {
            "binLocationId": "0c7e91d3-4a58-4b26-9e10-63f8a2c5d704",
            "binLocationCode": "A-01-02",
            "quantity": "12.00",
            "inventoryQuantity": "12.00",
            "batchNumber": "LOT-2026-08-14"
          }
        ]
      }
    ]
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}
```

## Errors

| Code | Status |
| --- | --- |
| `NOT_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
