# Get Warehouse Transfer

`GET /inventory/warehouse-transfers/{id}`

Group: Inventory › Warehouse Transfers · Operation ID: `getWarehouseTransfer`

Returns the warehouse transfer with the given identifier, with its lines.

Returns the transfer with its lines and their batch, serial and bin tracking. The collection GET inventory/warehouse-transfers returns the same fields without the lines. A draft has no costs yet: transferCost, the batch and serial unit costs, sourceAmount and destinationAmount are set when the transfer commits.

[Open in the interactive reference](https://docs.api.lensing.ai/?op=getWarehouseTransfer)

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | `"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 for the transfer to return. |

## Response

`200` Success

Under `data` (getWarehouseTransferOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the transfer. |
| `documentNumber` | string | no | The transfer's number, for example 'WTR-2291'. |
| `documentStatus` | string | yes | The status of the transfer. Possible values: 'DRAFT', 'COMMITTED', 'CANCELLED'. |
| `documentDate` | string (date) | no | The date the transfer is dated. Format YYYY-MM-DD. |
| `referenceNumber` | string | no | Your own reference on the transfer. |
| `transferType` | string | no | The type of transfer. Possible values: 'NORMAL', 'INTERCOMPANY', 'INTERCOMPANY_RETURN'. An intercompany transfer sells the goods to another legal entity and can be billed. |
| `entityId` | string | no | The legal entity the goods leave. See id on GET base/entities. |
| `entityName` | string | no | The name of that legal entity. |
| `toEntityId` | string | no | The legal entity receiving the goods, on an intercompany transfer. See id on GET base/entities. |
| `toEntityName` | string | no | The name of that legal entity. |
| `locationId` | string | no | The warehouse the goods leave. See id on GET inventory/warehouses/:id. |
| `locationCode` | string | no | The code of that warehouse. |
| `locationName` | string | no | The name of that warehouse. |
| `targetLocationId` | string | no | The warehouse the goods go to. See id on GET inventory/warehouses/:id. |
| `targetLocationCode` | string | no | The code of that warehouse. |
| `targetLocationName` | string | no | The name of that warehouse. |
| `billingStatus` | string | no | The billing status of the transfer. Possible values: 'NOT_BILLED', 'BILLED'. Only an intercompany transfer is billed, through POST inventory/warehouse-transfers/:id/bill. |
| `intercompanyBillId` | string | no | The identifier of the intercompany bill this transfer created, as the platform's own number. GET accounting/vendor-bills/:id takes a UUID, so this number cannot fetch that bill. |
| `contractualCurrency` | string | no | The currency an intercompany transfer is contracted in. Format ISO 4217, for example 'EUR'. Each line's unitTransferValue is stated in it. |
| `currency` | string | no | The currency the amounts on the transfer are stated in, the source entity's functional currency. Format ISO 4217, for example 'EUR'. |
| `sourceAmount` | string (decimal) | no | What the goods were worth leaving the source entity, in the transfer's currency. Written by the commit. |
| `destinationAmount` | string (decimal) | no | What the goods were worth arriving at the destination entity, in the transfer's currency. On an intercompany transfer it differs from sourceAmount, and the difference is the margin. |
| `notes` | string | no | Free text on the document. |
| `lineCount` | number | no | The number of lines on the transfer. |
| `createdDate` | string (date-time) | no | The date and time the transfer was created, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `lastModifiedDate` | string (date-time) | no | The date and time the transfer record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `lines` | array of object | no | The lines of the transfer. The collection GET inventory/warehouse-transfers returns lineCount in place of these. |
| `lines[].id` | string | yes | The unique identifier for the transfer line. updateLines and deleteLines address lines by it. |
| `lines[].itemId` | string | no | The item being moved. See id on GET inventory/items/:id. |
| `lines[].itemCode` | string | no | The code of that item. |
| `lines[].itemName` | string | no | The name of that item. |
| `lines[].locationId` | string | no | The warehouse this line draws from, the document's warehouse applied to every line. See id on GET inventory/warehouses/:id. |
| `lines[].locationCode` | string | no | The code of that warehouse. |
| `lines[].locationName` | string | no | The name of that warehouse. |
| `lines[].targetLocationId` | string | no | The warehouse this line delivers to. See id on GET inventory/warehouses/:id. |
| `lines[].targetLocationCode` | string | no | The code of that warehouse. |
| `lines[].targetLocationName` | string | no | The name of that warehouse. |
| `lines[].unitId` | string | no | The unit the quantity is in. There is no endpoint for it. |
| `lines[].unitCode` | string | no | The code of that unit. |
| `lines[].quantity` | string (decimal) | no | How much moves, in the line's unit. |
| `lines[].inventoryQuantity` | string (decimal) | no | The same amount in the item's stocking unit, which is what the warehouse counts. |
| `lines[].transferCost` | string (decimal) | no | What one unit left the source warehouse at, in the transfer's currency. The valuation method sets it at commit. Absent on a draft. |
| `lines[].unitTransferValue` | string (decimal) | no | The contractual price of one unit on an intercompany transfer, in the contractual currency. Supplied on create. |
| `lines[].totalTransferValue` | string (decimal) | no | The line's total on an intercompany transfer, in the contractual currency: totalTransferValue = unitTransferValue x quantity. Written by the platform. |
| `lines[].returnedQuantity` | string (decimal) | no | How much of this line has come back on an intercompany return. |
| `lines[].status` | string | no | The status of the line. |
| `lines[].notes` | string | no | Free text on the line. |
| `lines[].batches` | array of object | no | The batches that make up the line's quantity. |
| `lines[].batches[].batchNumberId` | string | no | The unique identifier for the batch number. See id on GET inventory/batch-numbers/:id. |
| `lines[].batches[].batchNumber` | string | no | The batch number. |
| `lines[].batches[].quantity` | string (decimal) | no | How much of the line this batch accounts for. |
| `lines[].batches[].inventoryQuantity` | string (decimal) | no | The same amount in the item's stocking unit. |
| `lines[].batches[].unitCost` | string (decimal) | no | What this batch moved at, in the transfer's currency. Set at commit. |
| `lines[].serials` | array of object | no | The serialized units that move. |
| `lines[].serials[].serialNumberId` | string | no | The unique identifier for the serial number. See id on GET inventory/serial-numbers/:id. |
| `lines[].serials[].serialNumber` | string | no | The serial number. |
| `lines[].serials[].quantity` | string (decimal) | no | Always one, for a serialized unit. |
| `lines[].serials[].unitCost` | string (decimal) | no | What this unit moved at, in the transfer's currency. Set at commit. |
| `lines[].binLocations` | array of object | no | The bins the goods leave and arrive in. Each entry names both ends of the move, and the batch or serial it belongs to where it belongs to one. |
| `lines[].binLocations[].fromBinLocationId` | string | no | The bin the goods leave, in the source warehouse. See id on GET inventory/bins/:id. |
| `lines[].binLocations[].fromBinLocationCode` | string | no | The code of that bin. |
| `lines[].binLocations[].toBinLocationId` | string | no | The bin the goods arrive in, in the target warehouse. See id on GET inventory/bins/:id. |
| `lines[].binLocations[].toBinLocationCode` | string | no | The code of that bin. |
| `lines[].binLocations[].quantity` | string (decimal) | no | How much moves between these two bins. |
| `lines[].binLocations[].inventoryQuantity` | string (decimal) | no | The same amount in the item's stocking unit. |
| `lines[].binLocations[].batchNumber` | string | no | The batch this entry belongs to, when it belongs to one of the line's batches. |
| `lines[].binLocations[].serialNumber` | string | no | The serialized unit this entry belongs to, when it belongs to one of the line's serials. |

## Errors

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

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — Missing or invalid access token
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests
- `500` — Internal server error
