# List inventory decreases

Operation ID: `inventoryDecreases`

Group: Inventory › Inventory Decreases

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

`GET /inventory/inventory-decreases`

Read-only: Reads and returns; changes nothing.

Lists inventory decreases. Each inventory decrease comes back with its main fields and lineCount, but without the lines.

To read the lines, use GET inventory/inventory-decreases/:id or POST inventory/inventory-decreases/search. To filter by item, use POST inventory/inventory-decreases/search.

## 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`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `documentNumber` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `documentStatus` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `documentDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `entityId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `locationId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `locationCode` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `reasonCodeId` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `reasonCode` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- Orderable: id, documentNumber, documentDate, documentStatus, createdDate, lastModifiedDate
- Selectable: id, documentNumber, documentStatus, documentDate, entityId, entityName, locationId, locationCode, locationName, reasonCodeId, reasonCode, reasonCodeDescription, currency, lineCount, notes, createdDate, lastModifiedDate
- `page[size]` — Page size
- `page[cursor]` — Opaque continuation cursor

## Response

`200` Success

Under `data`, an array of inventoryDecreasesRow:

| Field | Type | Required | Filter | Sort | Description |
| --- | --- | --- | --- | --- | --- |
| `id` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The unique identifier for the inventory decrease. Example: `"d4a17f28-6b93-4c50-8e71-2a5d0c9b3e64"`. |
| `documentNumber` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The inventory decrease's document number, for example 'DEC-42'. Absent while none has been assigned. Example: `"DEC-42"`. |
| `documentStatus` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The status of the inventory decrease. Possible values: 'DRAFT', 'COMMITTED', 'CANCELLED'. Example: `"DRAFT"`. |
| `documentDate` | date | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | 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 | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | no | 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 \| null | no | no | no | The display name of that legal entity. Example: `"Acme Netherlands B.V."`. |
| `locationId` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | 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 \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | no | The short code of that warehouse location. Example: `"WH-01"`. |
| `locationName` | string \| null | no | no | no | The display name of that warehouse location. Example: `"Rotterdam Distribution Centre"`. |
| `reasonCodeId` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | 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 \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | no | The short code of that reason code. Example: `"COUNT"`. |
| `reasonCodeDescription` | string \| null | no | no | no | The description of that reason code. Example: `"Count correction"`. |
| `currency` | string \| null | no | no | no | The currency the inventory decrease is valued in, the legal entity's functional currency. Format ISO 4217, for example 'EUR'. Example: `"EUR"`. |
| `lineCount` | number \| null | no | no | no | The number of lines the inventory decrease has. The collection returns it because the lines themselves are not on the collection. Example: `1`. |
| `notes` | string \| null | no | no | no | Free text on the inventory decrease. Example: `"August cycle count"`. |
| `createdDate` | date-time \| null | no | no | yes | 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 \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | 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"`. |

```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",
      "lineCount": 1,
      "notes": "August cycle count",
      "createdDate": "2026-08-14T09:12:00.000Z",
      "lastModifiedDate": "2026-08-14T09:12:00.000Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}
```

## Statuses

- `400` — Invalid request or business failure
- `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
