xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse 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
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/Goods Receipt Line — entity reference
REFERENCE · Last reviewed

Goods Receipt Line — entity reference

One item line of a goods receipt, and the row that converts arriving goods into stock movements and a cost layer. It carries three different quantities that are deliberately not the same number: SupplierQuantity is what the supplier says was sent, ReceivedQuantity is what was actually counted in, and OrderedQuantity is what the source purchase-order line released, with ShortageQuantity and ExcessQuantity derived from the gap between the first two. Nothing posts at line creation; posting happens when PerformReceive sets IsILPostingApproved, at which point the seeded inventory-ledger rules fire, the line is stamped with InventoryLedgerId, and the line's UnitCost becomes the ledger row's unit cost and therefore the cost of the stock layer. Damaged, shortage and excess quantities post to their own separate InventoryStock buckets.

Fields

FieldLabelTypeRequiredWhat it does
AssetIdAssetLookup → AssetSet when receiving created a tracked Asset from this line, which happens only for items flagged to track assets and only once the line has a lot. Such lines are also forced to a quantity of one per line, so one receipt line equals one asset.
ClaimableQuantityClaimable QuantityCalculated (calculated)
ComponentNumberComponent NumberTextA second traceability identifier (engine, chassis or equivalent) that, like SerialNumber, the receive action requires on every line still pending inventory posting. It is carried onto the Asset record created for asset-tracked items.
ConversionRatioConversion RatioNumber
ConversionRatio1Conversion Ratio 1Number
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DamagedInventoryLedgerIdDamaged Inventory LedgerLookup → InventoryLedgerStamped with the inventory-ledger row raised for this line's damaged quantity, which is a separate posting from the main receipt movement. Its presence is what proves damage was booked rather than merely recorded.
DamagedQuantityDamaged QuantityNumberQuantity found damaged on arrival. It is not merely informational: a seeded ledger rule posts it into the separate Damaged inventory bucket rather than into available stock, and it is also rolled up from the inspection lines' damaged quantity when inspection completes, so it can change after the line was first keyed.
DateOfExpiryDate Of ExpiryDate
DateOfMFGDate Of MFGDate
ExcessQuantityExcess QuantityCalculated (calculated)
ExternalIdExternalText, unique
GoodsReceiptIdGoods ReceiptLookup → GoodsReceipt
IdIdGuidYes
InspectionAdjustmentInventoryLedgerIdInventory Ledger Inspection AdjustmentLookup → InventoryLedger
InspectionInventoryLedgerIdInventory Ledger InspectionLookup → InventoryLedgerStamped with the inventory-ledger row that moved this line's quantity into the Inspection bucket when inspection started; the reversal on completion is tracked separately by InspectionAdjustmentInventoryLedgerId.
InspectionQuantityInspection QuantityNumberThe quantity currently held under quality inspection for this line. It is set to the received quantity automatically when the item is flagged as requiring inspection on receipt, and a seeded ledger rule moves that quantity into the Inspection bucket, where it is not available for issue until inspection is completed.
InventoryFulfilmentOrderLineIdInventory Fulfillment Order LineLookup → InventoryFulfilmentOrderLine
InventoryLedgerIdInventory LedgerLookup → InventoryLedger
InvoiceQuantityInvoice QuantityNumberHow much of this receipt line has been billed, rolled up from the quantity on the linked bill lines. PendingInvoiceQuantity is received quantity minus this, and it is what the release-bill action checks and what each generated bill line is sized from.
IsApprovedApprovedBoolean
IsClaimedClaimedBoolean
IsILPostedIL PostedBooleanRecords that the inventory-ledger posting for this line has been carried out, as distinct from IsILPostingApproved which is the flag receiving sets to authorise it. The definitive evidence of posting is InventoryLedgerId being populated, which is also what the receive action checks to avoid posting a line twice.
IsILPostingApprovedIL Posting ApprovedBoolean
IsPostedPostedBoolean
ItemIdItemLookup → Item
ItemLotIdItem LotLookup → ItemLotThe stock lot created (or matched) for this line when the receipt is received; until PerformReceive runs it is empty. Editing or deleting a received line drives lot maintenance, and for asset-tracked items the lot is also what the automatically created Asset record is built from.
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
ModifiedByIdModified ByLookup → UserAccountYes
MRPMRPCurrencyThe maximum retail price printed on the received goods, captured for downstream retail pricing and statutory labelling. It plays no part in receipt valuation, which uses UnitCost.
NameDocument NumberText
OrderedQuantityOrdered QuantityNumber
OwnerIdOwnerLookup → UserAccountYes
PackageGoodsReceiptLineIdPackage Goods Receipt LineLookup → GoodsReceiptLineSelf-reference from a component receipt line to the package (kit) receipt line it belongs to, mirroring the package structure on the purchase order. Component lines post to inventory in their own right, so counting both levels double-counts.
PendingInspectionQuantityPending Inspection QuantityCalculated (calculated)
PendingInvoiceQuantityPending Invoice QuantityCalculated (calculated)
PipelineQuantityPipeline QuantityCalculated (calculated)
PurchaseOrderLineIdPurchase Order LineLookup → PurchaseOrderLine
ReceivedQuantityReceived QuantityNumber
RecordTypeIdRecord TypeGuid, hidden
ReturnedQuantityReturned QuantityNumberQuantity returned to the supplier from this receipt line, rolled up from credit-note lines whose parent credit note is a bill return. The stock and value reversal itself is a separate inventory-ledger movement of type 'PurchaseReturn' raised from the credit note, not from this receipt.
SerialNumberSerial NumberTextA traceability identifier that is mandatory at receiving: the receive action refuses to post any line that still lacks it, alongside ComponentNumber. That requirement is specific to receiving; the other goods-receipt actions do not enforce it.
ShipmentLineIdShipment LineLookup → ShipmentLine
ShortageQuantityShortage QuantityCalculated (calculated)
SKUIdItem SKULookup → SKU
StartedInspectionQuantityStarted Inspection QuantityNumberHow much of this line has been drawn into inspection lines so far, rolled up from the received quantity on those inspection lines. PendingInspectionQuantity is received quantity minus this, and it is the gate that decides whether starting an inspection has anything to do.
StorageLocationIdStorage LocationLookup → StorageLocationThe bin or location within the branch the goods are put away to. It is carried onto the split lines when a receipt line is broken up by maximum lot size, and it narrows the stock bucket the ledger posting increments.
SupplierQuantitySupplier QuantityNumber
TaxGroupIdTax GroupLookup → TaxGroup
UIPropsUI PropsText
UnitCostUnit CostCurrencyThe receipt cost basis for this line, and the single most important value on it: it is copied forward from the source purchase-order line's unit cost or the source shipment line's unit price at creation, it becomes the unit cost of the inventory-ledger row and therefore of the stock cost layer, and it is what the header TotalAmount (received quantity times unit cost) and the goods-received accrual journal are built from. A receipt keyed by hand with no source document has no cost carried in, so the lot and the journal will value at zero unless it is entered.
UOMUOMPickListValues: MB, Messages, Pack, Each.
UOM1UOM1PickListValues: Pack, Each.
UOMQuantityUOM QuantityNumber
UOMQuantity1UOM Quantity1Number
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditInLineEditEditInlineEdit
EditReceiptLineEditEditThe edit form used from the receiving view, where the quantities that matter are keyed. Editing the supplier quantity on a saved line re-runs the over-receipt check and re-rolls the parent purchase-order and shipment line counters, and editing quantities on a line already approved for posting drives the inventory posting, so this is not a cosmetic edit.
MainNewNewNewNew
NewQuick AddNewInlineNew

Validations

ValidationApplies toError messageNotes
XM_DateOfExpiryValidationDateOfExpiry, ErrorDate Of Expiry should be less than Date Of MFGExpiry date validation
XM_DateOfMFGValidationDateOfMFG, ErrorDate Of MFG should be less than or equal to today's dateDate Of MFG should be less than or equal to today's date
XM_MRPValidationMRP, ErrorMRP can't be negativeMRP can't be negative
XM_OrderedQuantityValidationOrderedQuantity, ErrorOrdered Quantity can't be negativeOrdered Quantity can't be negative
XM_UnitCostRuleValidationUnitCost, Error, inactiveUnit Cost can't be negativeUnit Cost can't be negative