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/Transfer Inward Line — entity reference
REFERENCE · Last reviewed

Transfer Inward Line — entity reference

The receiving line of an Inward transfer, normally generated by releasing an outward line rather than entered: TransferOutwardLineId points back at the dispatch line and Quantity equals exactly the batch that was released. Receiving adds to ReceivedQuantity and sets IsReceived — which is set on any partial receipt, so the header can read as fully received while quantity is outstanding. Receiving does not post stock: the inward ledger rows are written later by the header's PerformInventoryPosting, and the save-time hook only re-posts lines that already carry an InventoryLedgerId. Watch the shortage interaction: once anything is received, ShortageQuantity absorbs the remainder and PendingReceivedQuantity falls to zero, so a short receipt closes the line rather than leaving it open.

Fields

FieldLabelTypeRequiredWhat it does
BranchIdBranchLookup → BranchThe receiving branch. When the line is generated by an outward release it is taken from the outward line's related branch — the two lines' branch fields are deliberately swapped.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DamagedQuantityDamaged QuantityNumberDamage recorded while receiving; selective receive validates it (and the requested quantity) as non-negative.
ExcessQuantityExcess QuantityCalculated (calculated)Calculated overage when the receipt exceeds the dispatched quantity; it posts to the Excess stock bucket on update.
ExternalIdExternalText, unique
IdIdGuidYes
InventoryLedgerIdInventory LedgerLookup → InventoryLedgerEmpty until inventory posting runs. The header's calculated posted flags are derived from whether every inward line has one.
InventoryStockIdStockLookup → InventoryStockStamped on insert by matching branch, item, lot type and SKU; the stock read-throughs on this line resolve through it, so an unmatched key leaves them reading zero.
IsApprovedApprovedBooleanWritten by no code path. The flag the posting engine consults is IsILPostingApproved, and receipt is recorded through IsReceived.
IsILPostedIL PostedBooleanYes
IsILPostingApprovedIL Posting ApprovedBoolean
IsReceivedIs ReceivedBoolean
ItemIdItemLookup → Item
ItemLotIdItem LotLookup → ItemLotOn an inward line this is already the destination-branch lot (the clone minted at outward release), not the source lot; the source lot is reachable through the outward line.
ItemLotTypeIdItem Lot TypeLookup → ItemLotType
ModifiedByIdModified ByLookup → UserAccountYes
NameNameTextYes
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountTextCalculated text mirror of the parent's destination partner. The in-transit bucket only balances when this and the branch match the outward line's related partner and branch — a historical mismatch is what produced 'InTransit cannot go negative' failures.
PendingReceivedQuantityPending Received QuantityCalculated (calculated)
QuantityQuantityNumberYes
ReceivedQuantityReceived QuantityNumberCumulative quantity actually received: receive actions add the requested (or full pending) amount rather than overwrite, supporting multiple partial receipts.
RecordTypeIdRecord TypeGuid, hidden
RelatedBranchIdRelatedBranchCalculatedThe source branch the stock came from (the outward side); the line's own branchId is the receiving branch.
RelatedItemLotIdRelated Item LotLookup → ItemLot
RelatedPartnerAccountIdRelated Partner AccountCalculated (calculated)
RequestedQuantityRequested QuantityDecimalCarried only in the selective receive payload. Unlike the outward selective action it is not capped against the pending quantity during validation — only negative values are rejected.
ShortageQuantityShortage QuantityCalculated (calculated)Calculated as the unreceived balance as soon as anything has been received. Because the pending figure also subtracts it, a short receipt drives pending to zero and closes the line — the remainder cannot simply be received later. It posts to the Shortage stock bucket.
SKUIdItem SKULookup → SKU
StockAvailableStockAvailableCalculated (calculated)
StockInHandStock In HandCalculated (calculated)
StorageLocationIdStorage LocationLookup → StorageLocation
TransferIdTransferLookup → Transfer
TransferOutwardLineIdTransfer Outward LineLookup → TransferOutwardLineThe outward line this inward line was generated from. Every receive recomputes the outward line's closed quantity as the sum of received inward quantities, so the pair always reconciles.
TransferTypeTransfer TypePickList (calculated)Calculated from the parent document's type, so on an inward line it resolves to 'Inward' — yet the seeded ledger rules compare it against 'On Hand Transfer' and 'Pending Deliveries Transfer'. Values: On Hand Transfer, Pending Deliveries Transfer.
TypeTypeCalculatedLeft unwritten on inward lines: the parent's document type is mirrored into TransferType here, whereas on single-step and outward lines it lands in this field. Do not rely on it to tell inward from outward.
UIPropsUI PropsText
UnitCostUnit CostCurrencyCopied from the dispatching outward line at release, so the receiving branch inherits the source valuation rather than recomputing it.
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteBlocked once the line carries a quantity. Generated receiving lines belong to the outward release that created them, so removing them by hand would strand the dispatch's in-transit quantity.
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditInLineEditEditEdit
NewNewNewNew

Validations

ValidationApplies toError messageNotes
XM_QuantityValidationQuantity, ErrorQuantity should be greater than zeroQuantity should be greater than zero