---
title: "Create Stock Move"
method: POST
path: "/inventory/stock/move"
tags: ["Inventory Stock"]
---

# Create Stock Move

`POST /inventory/stock/move`

Register a stock movement and update balances (moving-average cost).

## Request body

- StockMoveCreate
  - `move_date` string, nullable — ISO date/time, defaults to now (UTC) if missing
  - `item_id` integer, required
  - `location_id` integer, required
  - `qty` number, required — Positive = in, Negative = out
  - `unit_cost` number, nullable — Cost per unit. Required for positive qty if you want proper average-cost. If missing on negative qty, system uses current average cost.
  - `doc_type` string, required — Document type: e.g. 'OPENING', 'PO_GRN', 'TRANSFER', 'PRODUCTION_IN', 'PRODUCTION_OUT', 'ADJUSTMENT', 'WASTE', 'SALE_ISSUE'
  - `doc_id` string, nullable
  - `batch_no` string, nullable
  - `note` string, nullable
  - `created_by` string, nullable

## Response `200`

Successful Response

- StockBalance
  - `item_id` integer, required
  - `item_code` string, required
  - `item_name` string, required
  - `location_id` integer, required
  - `location_code` string, required
  - `location_name` string, required
  - `on_hand_qty` number, required
  - `average_cost` number, required
  - `total_value` number, required
  - `last_movement_at` string, nullable, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/bamboome/apis/contact-sync-api.md) · [All operations](https://skmtc.dev/bamboome/apis/contact-sync-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bamboome/contact-sync-api/revisions/56beadb81ad2/schema)
