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 — entity reference
REFERENCE · Last reviewed

Transfer — entity reference

The header of a stock movement between branches or partner companies, whose Type decides which of three line collections it uses: Outward (dispatch leg, TransferOutwardLines), Inward (receiving leg, TransferInwardLines) or Single Step (TransferLines, one document that books both effects with no transit leg). A two-step move is therefore two documents, not two line sets: releasing an outward transfer generates a whole new Inward Transfer record plus one inward line per released batch, cross-linked by OutwardTransferId and InwardTransferId. The four Is* flags are calculated over the lines and are the real machine state; Status is only ever written as 'Draft' by the field-sales van-load generator and by its default formula, so it does not track progress.

Fields

FieldLabelTypeRequiredWhat it does
BranchIdFrom BranchLookup → BranchYes
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DocumentDateDocument DateDateAndTimeStamped with the server's current time when the transfer is inserted.
ExecutiveResourceIdExecutiveLookup → Resource
ExternalIdExternalText, unique
FieldSalesIdField SalesLookup → FieldSalesLinks the document to a field-sales run: the van-load generator creates an Outward transfer and the take-in generator an Inward transfer, both stamped with this key and both left in Draft.
IdIdGuidYes
InwardTransferIdInward DocumentLookup → Transfer
IsILPostedIL PostedCalculated (calculated)Calculated: true only when the document has lines and every line across all three collections carries an InventoryLedgerId. It is never stamped by the posting code, so it cannot drift from the lines.
IsInwardPostedInward PostedCalculated (calculated)Calculated: true when the document has inward lines and none of them is still missing an InventoryLedgerId — that is, the receiving leg has reached the ledger.
IsInwardReceivedInward ReceivedBooleanFlips true when every inward line has been received. Once true, PerformInwardReceive and SelectiveInwardReceive refuse to run again.
IsOutwardReleasedOutward ReleasedCalculated (calculated)Set true by outward release only when every outward line has no pending release quantity left - a partial (selective) release leaves it false so the document can be released again. PerformOutwardRelease refuses once it is true.
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
OutwardTransferIdOutward DocumentLookup → TransferOn an Inward transfer, points back at the Outward transfer whose release created it (the outward document gets inwardTransferId stamped in the same operation). A transfer with this set was system-generated by PerformOutwardRelease rather than keyed by hand.
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdFrom Partner AccountLookup → AccountYesThe source partner company.
PerformILPostingPerform IL PostingBoolean
PerformInwardPostingPerform Inward PostingBoolean
PerformInwardReceivePerform Inward ReceiveBoolean
PerformOutwardReleasePerform Outward ReleaseBoolean
PurchaseRequisitionIdPurchase RequisitionLookup → RequisitionThe purchase Requisition this transfer was raised to satisfy (requisition-driven stock transfers); the individual outward lines link back via their requisitionLineId and aggregate their quantity onto the requisition line's stock-transfer rollup.
ReceivedResourceIdReceived ByLookup → ResourceThe resource who will receive the stock at the destination. Outward release - full or selective - refuses to run until this is set.
ReceivedTimeReceived TimeDateWritten by no code path. Receipt is evidenced on the inward lines through IsReceived and ReceivedQuantity, and on the header through the calculated IsInwardReceived.
RecordTypeIdRecord TypeGuid, hidden
StatusStatusPickListValues: Draft, Pending Approval - Outward, Approved - Outward, Released, Pending Approval - Inward, Approved - Inward, Received.
ToBranchIdTo BranchLookup → BranchYesThe destination branch of the movement; the source branch is branchId (whose navigation is named FromBranch). Outward release copies both onto the generated inward document, and destination item-lot clones are created under this branch.
ToPartnerAccountIdTo Partner AccountLookup → AccountThe destination owning company when a transfer crosses companies. Item-lot clones minted for the destination are owned by this account, falling back to partnerAccountId when empty - so leaving it blank means an intra-company transfer.
TotalClosedQuantityTotal Closed QuantityCalculated (calculated)
TotalQuantityTotal QuantityCalculated (calculated)Calculated per document type: inward lines for Inward, outward lines for Outward, otherwise the single-step lines. A document whose lines sit in a different collection than its type implies therefore totals zero.
TransferredByResourceIdTransferred ByLookup → Resource
TransferTimeTransfer TimeDateAndTimeAlso stamped with the server's current time on insert; it is not moved forward when the outward release actually happens, so it records document creation rather than dispatch.
TypeTypePickListYesValues: Inward, Single Step, Outward.
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete
EditEditEditEdit
EditEntityEditEditInlineEdit
EditEntityDetailsEditEditEdit Entity
EditInLinesEditEditInlineEdit
NewNewNewNew
PerformILPostingPost InventoryServerAction (PerformILPosting)Perform Inventory Posting
PerformInventoryPostingPost InventoryServerAction (PerformInventoryPosting)This action perform inventory posting.
PerformInwardReceiveInward RecieveServerAction (PerformInwardReceive)Receive TransferOutwardLine as InwardLines
PerformOutwardReleaseRelease OutwardServerAction (PerformOutwardRelease)Releases Outward Document.
SelectiveInwardReceiveSelective Inward ReceiveServerAction (SelectiveInwardReceive)Selective Inward Receive
SelectiveOutwardReleaseSelective Release OutwardServerAction (SelectiveOutwardRelease)Selective Release Outward
SelectiveTransferPostingSelective TransferServerAction (SelectiveTransferPosting)Selective Transfer Posting

Validations

ValidationApplies toError messageNotes
Restrict Inward CreateType, ErrorInward Document cannot be generated without an Outward Transfer Document.Restrict Inward Create
Branch Rule ValidationBranchId, Error, inactiveBranch can't be sameBranch can't be same
XM_DocumentDateChangeValidationDocumentDate, ErrorYou cannot change Document DateYou cannot change Document Date
XM_ReceivedTimeRuleValidationReceivedTime, ErrorReceived Time should be greater than transfer timeReceived Time should be greater than transfer time
Required FieldsErrorSelection of To Partner Account and To Branch is mandatory.Selection of To Partner Account and To Branch is mandatory.
XM_TimeValidationTransferTime, ErrorTransfer Time can't be less than received timeTransfer Time can't be less than received time

Lookup filters

FilterLookup fieldNotes
FromBranch For Partner AccountBranchId
To Branch For Partner AccountToBranchId