# Stock transfers

<figure><img src="/files/m9QmuOEnPJycXqRH64eR" alt=""><figcaption></figcaption></figure>

{% hint style="info" icon="lightbulb" %}
A stock transfer moves a quantity of an SKU from one stock location to another. Transfers can be generated automatically by the inventory strategy during fulfillment, or created manually to reorganize stock across locations.
{% endhint %}

## What is a stock transfer?

A [stock transfer](/core-api-reference/stock_transfers.md) is the process of moving inventory from one stock location to another. It can represent a real physical movement between warehouses or a rearrangement involving retail stores or other virtual stock locations.

A stock transfer moves a quantity of a single SKU from an origin stock location to a destination stock location:

* **Origin stock location** — the associated stock item quantity is *decremented* as soon as the transfer is created.
* **Destination stock location** — the associated stock item quantity is *incremented* once the transfer is completed.

Stock transfers can be generated automatically based on the inventory strategy when fulfilling an order, or manually created outside of the order scope.

### Automatic stock transfers

The [inventory strategy](/how-tos/inventory/strategies.md) determines how orders are fulfilled. To honor the selected strategy, one or more stock transfers may be necessary.

For example, with the **ship from primary** strategy, if the primary stock location cannot fulfill all SKUs in the order, stock transfers are created from other locations where the items are available to the primary one. Priority between origin locations is set by the inventory model hierarchy. The associated shipment is put *on hold* until all stock transfers are completed.

### Manual stock transfers

Stock transfers can also be created manually outside of the order fulfillment scope — for example, to reorganize inventory across available stock locations. Manual transfers are not associated with any line items or shipments.

When stock transfers are involved in order fulfillment, related shipments are put on hold and the picking process starts automatically. You can also configure all stock transfers to start *on hold* at the inventory model level, requiring manual management of each transfer's status.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.commercelayer.io/data-model/shipping/stock-transfers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
