Add Inventory Snapshot
POST/api/inventories/addinventorysnapshot
Tier: Internal — subject to change without notice.
Uploads a batch of scanned tags against an in-progress stocktake (state → InProgress). This is the scan-upload endpoint used repeatedly while counting.
Request
Responses
- 200
- 400
- 401
- 403
InventoryDtos.InventoryOperationResultDto — always this shape regardless of
ReturnResultDto. On the synchronous path, InventoryDto is the refreshed
InventoryDtos.InventoryDetailDto and Notifications lists items excluded from the
snapshot because their current Enums.ItemStateType
disallows it (e.g. items mid-order). On the async path (NotifyOnceComplete +
matching NotificationRecipientId), BackgroundTaskId is populated and
InventoryDto is a fake placeholder (InventoryState:"Processing").
A new SnapshotBase is captured at the inventory's place; unknown tags auto-create
items; a SnapshotAdded transaction row and InventorySnapshotAdded system
event are raised.
The processing gate refused the request (lock busy, unknown id, or already Complete) — InvalidOperation; a post-lock re-read miss — NotFound; or any other exception — OperationFailed.
Caller is not authenticated.
Caller does not have Update permission on the Inventory module.