# Retrieve an inventory transaction

Operation ID: `getInventoryTransaction`

Group: Inventory › Inventory Transactions

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

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

Read-only: Reads and returns; changes nothing.

Retrieves an inventory transaction.

## 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 transaction you want to retrieve. Format: UUID. |

## Response

`200` Success

Under `data` (getInventoryTransactionOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the inventory transaction. Format: UUID. Example: `"3a7c1f95-04eb-4d62-8917-5c0e2b8d4a63"`. |
| `itemId` | string | yes | The unique identifier of the item. Format: UUID. See `id` on GET inventory/items/:id (getItem). Example: `"5f21c8b0-9d34-4a76-8e12-04b93c7de5a8"`. |
| `itemCode` | string | no | The code of the item in `itemId`. Example: `"WIDGET-01"`. |
| `itemName` | string | no | The name of the item in `itemId`. Example: `"Standard widget"`. |
| `locationId` | string | yes | The unique identifier of the warehouse. Format: UUID. See `id` on GET inventory/warehouses/:id (getWarehouse). Example: `"e1d84c07-5b39-4a26-9f70-2c8b613ad495"`. |
| `locationCode` | string | no | The code of the warehouse in `locationId`. Example: `"WH-01"`. |
| `locationName` | string | no | The name of the warehouse in `locationId`. Example: `"Rotterdam Distribution Centre"`. |
| `unitId` | string | no | The unique identifier of the unit of measure the inventory transaction was recorded in. Format: UUID. For receipts, shipments, and warehouse transfers, it is the unit on the document line. For inventory increases, inventory decreases, and inventory revaluations, it is the item's stocking unit. See `id` on GET inventory/unit-of-measures/:id (getUnitOfMeasure). Example: `"3b7d5e9c-1a24-4f80-9c6d-2e8f70b13a45"`. |
| `unitCode` | string | no | The code of the unit of measure in `unitId`. Example: `"EA"`. |
| `unitName` | string | no | The name of the unit of measure in `unitId`. Example: `"Each"`. |
| `transactionDate` | date | yes | The date the stock came in or went out, or its value changed. Format: YYYY-MM-DD. Example: `"2026-08-03"`. |
| `inQuantity` | decimal | yes | The quantity that this inventory transaction brought into stock, in the item's stocking unit. It is 0 when the inventory transaction takes stock out or changes only the value of the stock. Example: `"500.00"`. |
| `outQuantity` | decimal | no | The quantity that this inventory transaction took out of stock, in the item's stocking unit. It is 0 when the inventory transaction brings stock in or changes only the value of the stock. Example: `"0.00"`. |
| `unitInQuantity` | decimal | no | The quantity that this inventory transaction brought into stock, in the unit of measure named by `unitId`. It can differ from `inQuantity`, which is in the item's stocking unit. Example: `"500.00"`. |
| `unitOutQuantity` | decimal | no | The quantity that this inventory transaction took out of stock, in the unit of measure named by `unitId`. It can differ from `outQuantity`, which is in the item's stocking unit. |
| `unitCost` | decimal | no | The cost of one unit of the item, in the item's stocking unit and in the currency named by `currency`. When stock goes out, it is the item's cost at that time, from its valuation method. Example: `"3.75"`. |
| `totalCost` | decimal | no | The total cost of the stock that this inventory transaction brought in or took out, in the currency named by `currency`. It is positive whichever way the stock moved, so use `inQuantity` and `outQuantity` to tell the direction. On an inventory revaluation, it is the change in the value of the stock: a positive amount raises the value and a negative amount lowers it. Example: `"1875.00"`. |
| `salesAmount` | decimal | no | The total selling price of the stock on the shipment line, in the currency named by `currency`. It is the line's unit price multiplied by the quantity. Only inventory transactions created by shipments have it. |
| `currency` | string | no | The currency that `unitCost`, `totalCost`, and `salesAmount` are in. Format: ISO 4217, for example 'USD'. Example: `"EUR"`. |
| `sourceDocumentLineType` | any | no | The type of document line the inventory transaction came from. One of: `"IMInventorySalesOrderLine"`, `"IMInventorySalesDeliveryLine"`, `"IMSalesOrderLine"`, `"IMInventoryPurchaseReturnLine"`, `"IMInventorySalesReturnLine"`, `"IMWarehouseTransferLine"`, `"IMInventoryDecreaseLine"`, `"IMInventoryIncreaseLine"`, `"IMInventoryRevaluationLine"`, `"IMInventoryTransferLine"`, `"IMInventoryAdjustmentLine"`, `"IMInventoryCountLine"`, `"IMInventoryPutAwayTask"`, `"IMInventoryPurchaseReturnReversal"`, `"PurchaseOrderLine"`, `"IMLandedCostAllocationLine"`, `"SalesOrderProductItem"`, `"IMWarehouseTransferOrderLine"`, `"VendorBillItemBase"`, `"InvPurchaseDeliveryLine"`. Example: `"InvPurchaseDeliveryLine"`. |
| `isReturn` | boolean | no | Whether the inventory transaction comes from a sales return or a purchase return, including the inventory transactions created when a return is canceled. Example: `false`. |
| `isPriceDiff` | boolean | no | Whether the inventory transaction changes only the value of stock, without moving any, such as an inventory revaluation or a landed cost. Example: `false`. |
| `lastModifiedDate` | date-time | no | The date and time the inventory transaction last changed, in UTC. Format: YYYY-MM-DDTHH:mm:ss.sssZ. Changes to the item, warehouse, or unit of measure do not update this field. Example: `"2026-08-03T11:15:00.000Z"`. |

```json
{
  "data": {
    "id": "3a7c1f95-04eb-4d62-8917-5c0e2b8d4a63",
    "itemId": "5f21c8b0-9d34-4a76-8e12-04b93c7de5a8",
    "itemCode": "WIDGET-01",
    "itemName": "Standard widget",
    "locationId": "e1d84c07-5b39-4a26-9f70-2c8b613ad495",
    "locationCode": "WH-01",
    "locationName": "Rotterdam Distribution Centre",
    "unitId": "3b7d5e9c-1a24-4f80-9c6d-2e8f70b13a45",
    "unitCode": "EA",
    "unitName": "Each",
    "transactionDate": "2026-08-03",
    "inQuantity": "500.00",
    "outQuantity": "0.00",
    "unitInQuantity": "500.00",
    "unitOutQuantity": "19.99",
    "unitCost": "3.75",
    "totalCost": "1875.00",
    "salesAmount": "19.99",
    "currency": "EUR",
    "sourceDocumentLineType": "InvPurchaseDeliveryLine",
    "isReturn": false,
    "isPriceDiff": false,
    "lastModifiedDate": "2026-08-03T11:15:00.000Z"
  },
  "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
