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
| Field | Label | Type | Required | What it does |
BranchId | Branch | Lookup → Branch | | The 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. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
DamagedQuantity | Damaged Quantity | Number | | Damage recorded while receiving; selective receive validates it (and the requested quantity) as non-negative. |
ExcessQuantity | Excess Quantity | Calculated (calculated) | | Calculated overage when the receipt exceeds the dispatched quantity; it posts to the Excess stock bucket on update. |
ExternalId | External | Text, unique | | |
Id | Id | Guid | Yes | |
InventoryLedgerId | Inventory Ledger | Lookup → InventoryLedger | | Empty until inventory posting runs. The header's calculated posted flags are derived from whether every inward line has one. |
InventoryStockId | Stock | Lookup → InventoryStock | | Stamped 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. |
IsApproved | Approved | Boolean | | Written by no code path. The flag the posting engine consults is IsILPostingApproved, and receipt is recorded through IsReceived. |
IsILPosted | IL Posted | Boolean | Yes | |
IsILPostingApproved | IL Posting Approved | Boolean | | |
IsReceived | Is Received | Boolean | | |
ItemId | Item | Lookup → Item | | |
ItemLotId | Item Lot | Lookup → ItemLot | | On 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. |
ItemLotTypeId | Item Lot Type | Lookup → ItemLotType | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Text | | Calculated 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. |
PendingReceivedQuantity | Pending Received Quantity | Calculated (calculated) | | |
Quantity | Quantity | Number | Yes | |
ReceivedQuantity | Received Quantity | Number | | Cumulative quantity actually received: receive actions add the requested (or full pending) amount rather than overwrite, supporting multiple partial receipts. |
RecordTypeId | Record Type | Guid, hidden | | |
RelatedBranchId | RelatedBranch | Calculated | | The source branch the stock came from (the outward side); the line's own branchId is the receiving branch. |
RelatedItemLotId | Related Item Lot | Lookup → ItemLot | | |
RelatedPartnerAccountId | Related Partner Account | Calculated (calculated) | | |
RequestedQuantity | Requested Quantity | Decimal | | Carried 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. |
ShortageQuantity | Shortage Quantity | Calculated (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. |
SKUId | Item SKU | Lookup → SKU | | |
StockAvailable | StockAvailable | Calculated (calculated) | | |
StockInHand | Stock In Hand | Calculated (calculated) | | |
StorageLocationId | Storage Location | Lookup → StorageLocation | | |
TransferId | Transfer | Lookup → Transfer | | |
TransferOutwardLineId | Transfer Outward Line | Lookup → TransferOutwardLine | | The 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. |
TransferType | Transfer Type | PickList (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. |
Type | Type | Calculated | | Left 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. |
UIProps | UI Props | Text | | |
UnitCost | Unit Cost | Currency | | Copied from the dispatching outward line at release, so the receiving branch inherits the source valuation rather than recomputing it. |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
BulkDelete | Delete | Delete | Delete |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Blocked 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. |
DeleteInList | Delete | Delete | Delete |
Edit | Edit | Edit | Edit |
EditInLine | Edit | Edit | Edit |
New | New | New | New |
Validations
| Validation | Applies to | Error message | Notes |
| XM_QuantityValidation | Quantity, Error | Quantity should be greater than zero | Quantity should be greater than zero |