xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Inventory Stock — entity reference
REFERENCE · Last reviewed

Inventory Stock — entity reference

The live stock balance for one company, branch, item, SKU and storage location. Records are created and changed only by inventory ledger posting: each ledger setting names the quantity bucket it adds to and the bucket it takes from, and reversals move them back. There is no New, Edit or Delete action, and the record page is read-only. Available, In Hand and Quantity Projected are calculated from the buckets on every save. Allocation, invoicing from orders, scheme free-item checks, Auto Order, the alternate-item nudge, vehicle offroad purchase orders, the storefront, cycle counts and partner takeover all read Available. Order, service order and transfer lines show Stock Available and Stock In Hand from the record linked to the line. Item lot type is not part of the key and is never filled. The Inventory Stock statement page does not read these records: it adds up ledger entries by type as of a date, so its figure can differ. Shown on the item's Inventory tab; records are named from the Inventory Stock Name Setting (series IS).

Fields

FieldLabelTypeRequiredWhat it does
AdjustedOutNegative AdjustedNumberWritten off by adjustment lines with no type and a negative quantity, accumulated as a positive amount. Lowers both balances.
AdjustmentPositive AdjustedLargeNumberAdded by adjustment lines with no type and a positive quantity. Counts in both balances.
AllocationAllocation QuantityLargeNumberReserved by allocation lines from fulfilments, sales orders and service orders. Picking moves it to Picked; delivery order and invoice lines that use an allocation without a pick take it away. Lowers Available only.
AssembleAssembled InNumberAdded by adjustment lines of type Assemble and also of type Disassemble, because the seeded Disassemble setting targets this bucket. Adds to both balances.
AvailableAvailableCalculated (calculated)Calculated free-to-promise stock: Unbilled Receipts + Transfer Inward + Purchased + Sale Return + Positive Adjusted + Excess + Assembled In, minus Unbilled Dispatches, Transfer Outward, Purchase Return, Damaged, Expired, Shortage, Allocation, Picked, Negative Adjusted, On Hold, On Loan, Inspection, Sold and Assembled Out. A posting that would make it negative is refused with 'Stock Available Quantity cannot be negative!!'.
AverageCostAverage CostCurrencyNot maintained by xMatix; the mobile Stock on hand list and partner takeover display it, so it shows empty or zero. Stock value comes from inventory valuation.
BranchIdBranchLookup → BranchThe branch that holds the stock. Part of the record key, taken from the document header (each leg for transfers). Empty on tenants that run without branches.
ClosingStockClosing StockNumberNot maintained. Closing figures come from the item ledger, the Inventory Stock statement and inventory period balances.
CostofGoodsCostofGoodsCurrencyNot maintained by xMatix. Cost of goods sold comes from inventory valuation.
CostPriceCost PriceCurrencyNot maintained by xMatix. Stock value comes from inventory valuation.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DamagedDamaged QuantityLargeNumberWritten off by goods receipt, transfer inward and single-step transfer lines with a damaged quantity, and by Damaged adjustments. Lowers Available only.
DeAllocationDeAllocationNumberNever written and not part of any balance. Releasing an allocation reverses the Allocation bucket instead.
DisassembleAssembled OutNumberNever written: disassembly adjustments add to Assembled In instead. Stays at zero.
ExcessExcess QuantityLargeNumberOver-received or found quantity from goods receipt and transfer lines and Excess adjustments. Adds to both balances.
ExpiredExpired QuantityLargeNumberWritten off by Expired adjustments only. Lowers Available only.
ExternalQuantity ExternalNumberNever written and not part of any balance.
ExternalIdExternalLookup
FinancialYearFinancial YearNumberNot maintained: stock records have no period dimension.
FulfilmentFulfilmentLargeNumberNever written; subtracted by Quantity Projected only. Stays at zero.
HashCodeHash CodeNumberNot used on stock records.
IdIdGuidYes
InHandIn HandCalculated (calculated)Calculated physical stock: Positive Adjusted + Purchased + Transfer Inward + Unbilled Receipts + Transit + Sale Return + Excess + Assembled In, minus Negative Adjusted, Sold, Transfer Outward, Purchase Return and Assembled Out. Damaged, expired, held, loaned, allocated and picked stock still counts. A posting that would make it negative is refused with 'Stock In Hand Quantity can't be negative.'
InspectionInspectionLargeNumberHeld for incoming inspection by open inspection lines on a goods receipt, released when the inspection line is marked done. Lowers Available only.
InspectionAdjustmentInspection AdjustmentLargeNumberNever written and not part of any balance. Stays at zero.
InTransitTransitNumberReleased on a two-step transfer and not yet received, kept on the destination branch's record with no storage location; receiving the transfer clears it. Counts in In Hand only.
InventoryTurnoverInventory TurnoverCurrencyNot maintained by xMatix; any dashboard that averages it shows zero unless imported data filled it.
InwardUnbilled ReceiptsLargeNumberReceived but not yet billed. Goods receipt lines add to it; a bill line raised against the goods receipt line moves the quantity to Purchased. Counts in both balances.
IsTransactionLockedIs Transaction LockedBooleanYesSet by Start Counting and cleared by Finish Counting on a cycle count with inventory locking, for the records its count lines reference. While set, any posting that changes the record is refused with 'Item is locked for transaction! Please contact your Administrator for more details.'
ItemIdItemLookup → ItemThe item. Part of the record key.
ItemLotTypeIdItem Lot TypeLookup → ItemLotTypeNot used: posting never fills it and it is not part of the key. Because order and service order lines are linked to a stock record using their lot type too, a line that names an Item Lot Type is not linked and shows Stock Available 0.
ModifiedByIdModified ByLookup → UserAccountYes
NameNameTextThe record's reference, set automatically from the Inventory Stock Name Setting (series IS).
OnHoldQuantity On HoldLargeNumberBlocked by OnHold adjustments. No setting releases it; it comes down only when the adjustment's posting is reversed. Lowers Available only.
OnLoanQuantity On LoanLargeNumberLent out by OnLoan adjustments. No setting releases it; it comes down only when the adjustment's posting is reversed. Lowers Available only.
OpeningStockOpening StockNumberNot maintained: stock records are running totals with no period. Opening figures come from the item ledger and inventory period balances.
OutwardUnbilled DispatchesLargeNumberDelivered but not yet invoiced. Delivery order lines not raised from an invoice add to it; invoice lines with a delivered quantity take it away. Lowers Available only.
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → AccountThe company that owns the stock. Part of the record key, taken from the posting document's header rather than the line. Not shown on the record page; read it on the list.
PendingDeliveriesPending DeliveriesNumberAdded by the inward leg of a Pending Deliveries Transfer and taken away by its outward leg and by delivery order lines raised from an invoice. Not part of any balance.
PickedPicked QuantityLargeNumberPicked for fulfilment, moved here from Allocation by picking lines and taken away by delivery order or invoice lines that use the pick. Lowers Available only.
PipelineQuantity On PipelineLargeNumberInbound quantity on posted shipments, taken away when the goods receipt for the shipment is received. Affects only Quantity Projected.
ProfitPriceProfit PriceCurrencyNot maintained by xMatix.
PurchasedPurchased QuantityLargeNumberQuantity posted by bill lines. A bill against a goods receipt moves quantity here from Unbilled Receipts, so balances don't change; a bill with no goods receipt adds it outright and raises both balances.
PurchaseReturnPurchase Return QuantityLargeNumberNever written: credit notes have no inventory ledger setting, so supplier returns don't move stock. Stays at zero.
QuantityProjectedQuantity ProjectedCalculated (calculated)Calculated forward-looking balance that also counts inbound shipments (Pipeline) and subtracts SoftCommit, dispatches, allocation and picking. Shown on the record only; no feature reads it.
RecordTypeIdRecord TypeGuid, hidden
SalePriceSale PriceCurrencyNot maintained by xMatix. Selling prices come from price lists.
SaleReturnSale Return QuantityLargeNumberNever written: credit notes have no inventory ledger setting, so customer returns don't move stock. Stays at zero.
ShortageShortageNumberShort-received quantity from goods receipt and transfer lines and Shortage adjustments. Lowers Available only.
SKUIdSKULookup → SKUThe item variant. Part of the record key.
SoftCommitSoftCommitLargeNumberCommitted by service order lines (the sales order line setting ships inactive). Allocation on an already-posted order or service order line moves it to Allocation. Affects only Quantity Projected.
SoldSold QuantityLargeNumberAdded only by invoice lines that have a delivered quantity. Invoice lines drawing on an allocation or pick without a delivery release that bucket instead, and an invoice line with no allocation, pick or delivery moves no bucket at all.
StorageLocationIdStorage LocationLookup → StorageLocationThe location inside the branch. Part of the record key, so the same item at two locations has two records. Empty on the in-transit record a two-step transfer keeps at the destination branch.
TransferInwardTransfer InwardLargeNumberQuantity transferred in by transfer lines. Adds to both balances.
TransferOutwardTransfer OutwardLargeNumberQuantity transferred out by transfer lines. Lowers both balances.
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes
ValueValueCurrencyNot maintained by xMatix. Stock value comes from inventory valuation.

Actions

ActionLabelTypeWhat it does
CloneCloneServerAction (Clone)Create a copy of this record
GetInventoryStockDataGet Inventory Stock DataServerAction (GetInventoryStockData)The stock handler implements GetInventoryStockStatement instead (an item-by-column available-quantity statement with opening, closing and change per column), and that action has no metadata row of its own. Invoking this action does not return stock data.
GetInventoryStockMatrixInventory Stock (by dimension)ServerAction (GetInventoryStockMatrix)Stock available pivoted into columns by branch / period (Balance Statement comparative).
GetInventoryStockStatementInventory Stock StatementServerAction (GetInventoryStockStatement)Available stock per column (point-in-time or Opening/Change/Closing movement) for the Balance Statement.

Validations

ValidationApplies toError messageNotes
Available Quantity Validation RuleErrorStock Available Quantity cannot be negative!!Available Quantity cannot be negative!!
In Hand Quantity RuleInHand, ErrorStock In Hand Quantity can't be negative.Quantity In Hand can't be negative.
Validate Negative QuantityErrorStock Available Quantity cannot be negative!!Available Quantity cannot be negative!!

Lookup filters

FilterLookup fieldNotes
BranchFilterBranchId
PartnerAccountFilterPartnerAccountId