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

Shipment — entity reference

The in-transit leg of a goods movement, held on the receiving side: goods that have left the sender but have not yet been received, parked in the InventoryStock Pipeline bucket until a GoodsReceipt converts them to inward stock. It is the mirror of the sender's DeliveryOrder rather than a duplicate of it - releasing a shipment from a delivery order (or from an invoice) builds a Shipment in which the sender's partner account becomes SupplierAccountId and the receiving account's own Branch becomes BranchId, so one physical movement is an outbound document for the seller and an inbound document for the buying branch. A Shipment can equally stand alone against a PurchaseOrder for ordinary supplier deliveries. Its actions are PerformInventoryPosting (quantities into Pipeline), PerformReleaseReceipt and SelectiveReleaseReceipt (raise the GoodsReceipt), and CancelShipment and SelectiveCancelShipment (write off quantity that will never arrive).

Fields

FieldLabelTypeRequiredWhat it does
BranchIdBranchLookup → BranchThe receiving branch, and the branch whose InventoryStock Pipeline bucket the posting fills. When the shipment is released from a delivery order this is resolved as the Branch whose PartnerAccountId equals the delivery's customer account, and the release fails outright when no such branch exists.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DeliveryOrderDateDelivery Order DateDate
DeliveryOrderNumberDelivery Order NumberTextTo trace a shipment back to the delivery that created it, match on the shipment's generated name, which is the delivery order's name prefixed with SHP-.
DocumentDateDocument DateCalculated (calculated)Not a stored column: its getter and setter both read and write ShipmentDate, so writing either field changes the same value. It exists so shipments answer the same document-date convention as the other transaction documents.
ExternalIdExternalText
IdIdGuidYes
InvoiceIdInvoiceLookup → Invoice
IsDealerShipmentCreatedIs Dealer Shipment CreatedBoolean
IsInJobQueueIn Job QueueBooleanYes
IsInventoryPostedInventory PostedBooleanYesThe reliable posted marker is InventoryLedgerId on the shipment lines, which is also what the goods-receipt rules read.
IsReceiptReleasedReceipt ReleasedBooleanYesIntended to mark that a goods receipt has been raised from this shipment, but no code path sets it. Look instead for GoodsReceipt rows linked to the shipment, or at the lines' ReceiptQuantity and PendingQuantity.
JobInterfaceQueueIdJob QueueLookup → InterfaceQueue
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → AccountThe receiving company that owns this inbound document. On a shipment released from a delivery order it is the delivery's customer account, and it is validated against BranchId and locked after creation.
PerformInventoryPostingPerform Inventory PostingBooleanYesNothing writes or reads this column.
PerformReleaseReceiptPerform Release ReceiptBooleanYes
PurchaseOrderIdPurchase OrderLookup → PurchaseOrderThe purchase order this inbound shipment answers, for the ordinary supplier flow where the shipment is created directly rather than released from someone else's delivery order. It is empty on shipments generated from a delivery order or an invoice.
RecordTypeIdRecord TypeGuid, hidden
ResourceIdExecutiveLookup → Resource
ShipmentDateShipment DateDateThe date the goods left the sender, defaulted to the current date and time when the shipment is created. It is the same underlying value as DocumentDate, which is a pass-through alias for it.
StatusStatusPickListSeeded with three active values (Draft, Interface and a misspelled 'Recieved') but never assigned by any code path, so it does not track receipt progress. Use the line-level InventoryLedgerId, ReceiptQuantity and PendingQuantity for machine state. Values: Draft, Interface, Recieved, Partially Cancelled, Cancelled.
SupplierAccountIdSupplier AccountLookup → AccountThe account the goods are coming FROM. When the shipment is released from a delivery order this is the delivery's partner account, i.e. the selling company - the party roles are swapped so the same movement reads as inbound from the receiving branch's point of view.
SupplierInvoiceDateSupplier Invoice DateDate
SupplierInvoiceNumberSupplier Invoice NumberTextThe sender's own invoice or dispatch document number, captured for reconciliation when the goods are received and billed. It is reference data - the platform does not match it automatically to a Bill.
TotalPendingQuantityTotal Pending QuantityCalculated (calculated)
TransporterNameTransporter NameText
TransporterReferenceNoTransporter Reference NoText
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
BulkDeleteDeleteDeleteDelete the selected records.
CancelShipmentCancel ShipmentServerAction (CancelShipment)Adds each line's remaining PendingQuantity to its CancelledQuantity, closing out stock that will never be received; PendingQuantity then nets the cancellation the same way it nets receipts. It is refused when no line has PendingQuantity above zero. Be aware it does not itself reverse an already-posted Pipeline movement: the shipment line only re-posts to the ledger when Quantity or UnitPrice changes, and CancelledQuantity is not in that trigger set, so a shipment cancelled after PerformInventoryPosting leaves its pipeline stock standing until the line is re-posted.
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete in a list page
EditEditEditEdit
EditEntityEditEditEditEntity
EditInDetailEditEditInlineedit
EditInListEditEditInlineEdit
ImportImportUIActionImport Shipment
NewNewNewNew
PerformInventoryPostingPost InventoryServerAction (PerformInventoryPosting)Posts the shipment's unposted lines into the InventoryStock Pipeline bucket, making the goods visible as in-transit before they physically arrive, and stamps InventoryLedgerId on each line - the marker the goods-receipt ledger rules read to decide whether receiving converts pipeline stock or adds fresh inward stock. The quantity posted is Quantity minus CancelledQuantity, and Pipeline is not a cost event, so no cost journal is raised. Note the seeded action row itself is inactive and hidden, so it is normally invoked programmatically rather than from the UI.
PerformReleaseReceiptRelease ReceiptServerAction (PerformReleaseReceipt)PerformReleaseReceipt
SelectiveCancelShipmentSelective Cancel ShipmentServerAction (SelectiveCancelShipment)Same as CancelShipment but limited to the shipment lines named in the args payload under ShipmentLines, each capped by its RequestedQuantity; an empty list or ids that match no line is rejected rather than treated as 'cancel everything'.
SelectiveGRNSelective Release ReceiptServerAction (SelectiveReleaseReceipt)A second UI entry point for selective goods receipt, not a separate behaviour and not dead: its ServerActionName is SelectiveReleaseReceipt, and handler dispatch resolves on ServerActionName rather than the action name, so it runs the same selective receipt logic as the SelectiveReleaseReceipt action. The two differ only in the layout they open (SelectiveGoodsReceipt versus SelectiveReleaseReceipt) and in the confirmation dialog.
SelectiveReleaseReceiptSelective Release ReceiptServerAction (SelectiveReleaseReceipt)SelectiveReleaseReceipt

Lookup filters

FilterLookup fieldNotes
Branch For Partner AccountBranchId
Only Partner AccountPartnerAccountId
Only sSupplierSupplierAccountId