Inventory, Transfers, and Serialized Stock
These tools are separate because they protect different stock records. Inventory controls quantities at one store, Transfers moves quantities between stores, and Serialized Inventory tracks individual units. Selecting the correct store before you begin is required for all three pages.
Access at a glance
- Inventory appears with inventory read access. Inventory write access adds receiving, adjustments, and par/reorder settings. Report read access adds inventory export.
- Transfers appears with transfer read access. Transfer write access adds create, ship, receive, and cancel actions.
- Serialized Inventory appears with serial read access. Serial write access adds serial creation and sale/return status changes.
Access to one page does not grant access to the other two. For example, inventory write access does not allow a user to ship a transfer, and transfer write access does not allow a user to change a serial record.
Review stock levels and the ledger
Open Catalog & Inventory > Inventory.
- Use All to review the full inventory list, or select Low stock to show items whose on-hand quantity is at or below their reorder point.
- Search with Search inventory when you know the product name or barcode.
- Review On Hand, par level, reorder point, suggested refill quantity, and Status.
- Select an item row to open Inventory Detail.
- In the detail, review Quantity, Reorder Point, Last Counted, and Recent History. Recent History is the item ledger for receipts and adjustments.
- Review stock across accessible locations in the location stock panel. Location records remain permission-scoped; another store may be unavailable to your role.
- With report read access, select Export and choose CSV, Excel, or PDF.
Low-stock results depend on configured thresholds. Inventory write users can select Par and set:
- Par level (target healthy stock)
- Reorder point (alert threshold)
- Reorder quantity (suggested refill)
Leave a field blank to clear it. The reorder point must be at or below the par level.
Receive inventory
Use this procedure for stock received directly into the selected store outside the Purchase Orders receiving workflow.
- Open Inventory and select Receive Inventory.
- Under Product, search by product name or barcode and select the matching result.
- Enter the received Quantity.
- Add Notes that identify the shipment or count source.
- Select Receive.
- Open the product's Inventory Detail and confirm the new quantity and Recent History entry.
Inventory write access is required. For corrections rather than receipts, select Adjust, enter a positive quantity to add or a negative quantity to remove, add a required Reason, and select Adjust. Do not use two manual adjustments to represent a store-to-store transfer.
Receipts and manual adjustments are server-owned, keyed requests. If a response is interrupted, retry the saved request with its original identity; do not submit a new adjustment to compensate for an unconfirmed result. The server replays the original receipt without applying stock a second time and rejects reuse of that identity for different quantities or reasons. Lot receipts must have a strictly positive quantity.
API clients must send X-Idempotency-Key for ordinary inventory receipts, manual adjustments, lot receipts, transfer creation and receiving, and count-session creation and closing. Count entries and recounts carry their key in idempotencyKey. Keys bind the authenticated actor, scope, and immutable request. Completed inventory receipts are retained durably and replay the original result, even if stock or lifecycle state has since changed. Lifecycle capability flags do not grant permission; endpoint authorization is still enforced for every delivery.
Assistant inventory and purchase-order commands retain their own command identities. Recovery confirms a receive only from that command's matching durable receipt, not because another operator has received the transfer or increased the order's received quantities.
Record an observed stock count
A physical count is an observation, not an adjustment delta. Select the product, enter the quantity actually counted, and submit it to a server count session. The server captures expected stock, computes the variance, and applies the store's recount and approval policy. Peak Mobile does not add one to expected stock or manufacture a negative adjustment.
Count-session and entry actions come from the server's current capabilities. A submitted entry may require recount or approval rather than immediately changing on-hand stock. Resume the same saved count request after an interrupted response; a new key is for a genuinely new operator attempt, not a delivery retry. Manual adjustments remain separate explicit additions or removals with a reason.
Peak Mobile's Saved requests is a delivery-recovery queue, not count history. After the client safely consumes a confirmed receipt, completed entry, recount, and close requests are removed from that queue; the most recent confirmed session creation is retained as a navigation reference. Unconfirmed requests and confirmed receipts not yet consumed remain saved with their original bodies and keys. Review the server count session for current entries and lifecycle status.
When reopening an older count, API clients read GET /api/v1/stores/{storeId}/inventory/count-sessions/{sessionId} for the exact scoped session and its current capabilities. Its availability does not depend on appearing in the first page of count history.
Transfer stock between stores
Open Catalog & Inventory > Transfers. At least two stores must exist before a transfer can be created.
Create a transfer
- Under Create Stock Transfer, choose From Store and To Store. They must be different stores.
- Add optional Notes.
- Under Items, choose a Product and enter a whole-number Quantity of at least one.
- Select Add Item for each additional product.
- Select Create Transfer.
The new transfer is pending. It does not complete the destination receipt by itself.
Ship, receive, or cancel
- In Transfers, select a row to open Transfer Detail.
- Review From, To, Status, and each item's requested and received quantities.
- While the transfer is pending:
- Select Ship when the source store dispatches the stock.
- Select Cancel Transfer only if it should not proceed.
- When the server offers Receive after shipment, enter Receive quantity for each item and select Receive.
- If fewer units arrive than requested, enter the actual quantity. The transfer remains partially outstanding until all units are received according to the transfer record.
Transfer write access is required for all four lifecycle actions. The server supplies the current Ship, Receive, and Cancel Transfer capabilities and remaining receipt quantities; clients do not infer them from a status label. An interrupted receive is replayed using the original request identity without receiving the same stock twice.
Track Serialized Inventory
Open Catalog & Inventory > Serialized Inventory. The page is scoped to the selected store and lists each serial's Status, product, received date, and sold date.
Create a serialized item
A product must already require serial tracking before it appears in this workflow.
- Under Create Serialized Item, choose the Product.
- Enter the unique Serial Number.
- Optionally enter Notes and Required Forms.
- Select Create Serial.
The new serial is added to the selected store. Serial write access is required.
Find and update a serial
- Enter the exact serial in Lookup Serial, then select Lookup. You can also select a row from the serial table.
- In Serial Detail, review Status, Sale transaction, Received, and Sold.
- When the server offers Mark Sold, optionally enter Sale transaction only when matching the available serial to a completed sale, then select Mark Sold.
- For a sold serial that has physically returned, select Mark Returned.
Serial read access allows lookup and review. Serial write access is required for Mark Sold and Mark Returned. The server supplies these actions from the current serial lifecycle: only an available serial can be sold, and only a sold serial can be returned.