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

Purchase Order — entity reference

The buying-side demand document that opens the procure-to-pay chain: what is being bought, from which supplier (SupplierAccountId), on behalf of which partner account (PartnerAccountId) and into which branch (BranchId). It can be keyed by hand, released from a Requisition (PurchaseRequisitionId, or pulled in line-by-line by the add-requisition actions), or generated from an AutoOrder proposal (PurchaseAutoOrderId). PerformReleaseReceipt spawns a GoodsReceipt, PerformReleaseInvoice spawns Bill documents (purchasing bills through Bill, never through Invoice), and a supplier-branch variant can spawn a dealer sale Order. Every header money and quantity total is a metadata roll-up over PurchaseOrderLines; nothing in the procurement code ever assigns Status, so judge progress from the pending-quantity roll-ups and not from the status vocabulary.

Fields

FieldLabelTypeRequiredWhat it does
AccountNameAccount NameTextA denormalised copy of the counterparty account name kept on the document for display and export. It is a snapshot, so it can drift from the current name on the linked Account; resolve through PartnerAccountId when accuracy matters.
AdjustedAdvanceAmountAdjusted Advance AmountCurrency
AdvanceAmountAdvance AmountCurrencyAn advance paid to the supplier against this order, intended to net against the order value alongside AdjustedAdvanceAmount and OpenAdvanceAmount.
BillingCityBilling CityPickListValues: Mumbai, Pune, Chandigarh, Delhi.
BillingCityPlaceIdBilling CityLookup → PlaceValues: Pune, Chandigarh, Mumbai.
BillingContactAddressIdBilling AddressLookup → ContactAddress
BillingCountryBilling CountryPickListValues: India.
BillingPostalCodeBilling Postal CodeText
BillingRegionBilling RegionText
BillingStateBilling StatePickListValues: Maharashtra, Punjab, New Delhi, Haryana.
BillingStreetBilling StreetText
BranchIdBranchLookup → Branch
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DiscountGroupIdDiscount GroupLookup → DiscountGroup
DocumentDateDocument DateDate
DocumentNumberDocument NumberNumber
ExecutiveResourceIdExecutiveLookup → ResourceThe internal person (a Resource, not a user) accountable for the order. Its validation is disabled in the handler, so unlike other resource fields on the platform it is not checked against the resource master on save.
ExternalIdExternalText, unique
IdIdGuidYes
InventoryFulfilmentIdFulfilmentLookup → InventoryFulfilment
IsInvoiceReleasedInvoice ReleasedCalculated (calculated)YesJudge billing progress from the Bill rows linked to the order or from TotalPendingInvoiceQuantity instead.
IsKPICalculatedKPI CalculatedBooleanYes
IsOrderReceivedOrder ReceivedBooleanYesA completion flag that no code path sets. Receiving completion is observable only through the receipt lines' inventory posting and through the order lines' PendingQuantity falling to zero.
IsOrderReleasedOrder ReleasedBooleanYesTreat it as user-maintained, never as evidence of what the system did.
IsReceiptReleasedReceipt ReleasedCalculated (calculated)YesIntended to record that a goods receipt has been released from this order, but no code path writes it; PerformReleaseReceipt creates the GoodsReceipt without touching it. To tell whether receiving has started, look for GoodsReceipt rows carrying this order's id, or at the line-level PendingQuantity.
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberText
OpenAdvanceAmountOpen Advance AmountCurrency
OpenAmountOpen AmountCurrencyIntended as the order value still outstanding after advances (the domain type still carries the commented-out total-minus-advance expression).
OwnerIdOwnerLookup → UserAccountYes
PartnerAccountIdPartner AccountLookup → Account
PendingOrderQuantityPending Order QuantityCalculated (calculated)
PerformKPICalculationPerform KPI CalculationBooleanYes
PerformReceivePerform ReceiveBooleanYesA trigger boolean with no listener on this entity: receiving is performed on the goods receipt, through GoodsReceipt.PerformReceive, not from the purchase order. Nothing reads or clears it here.
PerformReleaseInvoicePerform Release InvoiceBooleanYesA legacy trigger boolean superseded by the PerformReleaseInvoice server action.
PerformReleaseOrderPerform Release OrderBooleanYesA trigger boolean with no listener. Releasing a dealer sale order from this purchase order is done by the create-dealer-order server actions, which require SupplierBranchId and read PendingOrderQuantity; this flag plays no part in that.
PerformReleaseReceiptPerform Release ReceiptBooleanYesA legacy trigger boolean from the era when saving a flag ran a process.
PlaceOfSupplyPlace of SupplyPickListValues: Haryana, Rajasthan, Gujarat, Maharashtra.
PriceAsOnDatePrice As On DateDate
PriceListIdPrice ListLookup → PriceList
PurchaseAutoOrderIdAuto Purchase OrderLookup → AutoOrderSet only when this order was generated from a replenishment proposal, pointing back at the AutoOrder it came from; the per-line counterpart is PurchaseOrderLine.AutoPurchaseOrderLineId. It stays empty on hand-keyed and requisition-released orders, so it is the reliable way to tell planner-generated purchasing from manual purchasing.
PurchaseOrderShipmentIdPurchase Order ShipmentLookup → Shipment
PurchaseOrderTypePurchase Order TypePickListA free-text classification of the order with a seeded picklist of tenant-flavoured values (part, product, local and vehicle-off-road ordering). Values: Part PO, Product PO, Local PO, VOR PO.
PurchaseRequisitionIdRequisitionLookup → RequisitionSet when the whole order was released from a single Requisition, and left empty when open requisition lines were instead pulled into an already-open order - that path tags each PurchaseOrderLine with RequisitionLineId and PurchaseRequisitionId rather than the header. Requisition pulls are refused unless the order's supplier and branch match the requisition's.
RecordTypeIdRecord TypeGuid, hidden
RemarksRemarksText
RepairOrderIdRepairOrderGuid
RoundOffRound OffCurrencyA rounding adjustment on the order total. It is not part of any header roll-up formula - TotalAmount is line amount plus tax only - and no code path computes it, so it neither derives from nor feeds the totals.
ServiceOrderIdService OrderLookup → ServiceOrder
ShippingAddressShipping AddressText
ShippingCityShipping CityPickListValues: Pune, Chandigarh, Mumbai, Delhi.
ShippingCityPlaceIdShipping CityLookup → PlaceValues: Mumbai, Pune, Chandigarh.
ShippingContactAddressIdShipping AddressLookup → ContactAddress
ShippingCountryShipping CountryPickListValues: India.
ShippingPostalCodeShipping Postal CodeText
ShippingRegionShipping RegionText
ShippingStateShipping StatePickListValues: Maharashtra, Punjab, New Delhi, Haryana.
ShippingStreetShipping StreetText
SkipSchemeSkip SchemeBooleanYesSuppresses promotional scheme evaluation for the whole document, so the shared scheme engine will not attach benefits or scheme discount lines. A per-line flag of the same name exists for excluding individual lines while leaving the rest of the order scheme-eligible.
SourceOfSupplySource of SupplyPickListValues: Maharashtra, Gujarat, Rajasthan, Haryana.
StatusStatusPickListValues: Draft, Shipment, Goods Receipt, Bill.
SupplierAccountIdSupplier AccountLookup → Account
SupplierBranchIdSupplier BranchLookup → BranchThe specific branch of the supplier partner this order is placed against, and the field the dealer-order flow depends on: creating a dealer sale Order from this purchase order is refused unless it is set, and the new order's branch and partner account are both taken from it. It is separate from SupplierAccountId because one supplier partner can own several branches.
Tax1Tax1Currency
Tax1NameTax Name 1Text
Tax1RateTax Rate 1Currency
Tax1TypeTax Type 1Text
TaxGroupIdTax GroupLookup → TaxGroup
TaxIdTaxLookup → Tax
TaxSupplyTypeTax Supply TypePickListValues: Within State, Outside State, Exempt, Exports, SEZ.
TCSEligibleAmountTCS Eligible AmountCurrencyThe base amount that tax-collected-at-source is charged on, maintained by the shared tax-group service when header taxes are resolved rather than by the purchase-order handler itself. It is the input to the header Tax1 slot, not a total in its own right.
TotalAmountTotal AmountCalculated (calculated)
TotalDiscountAmountTotal Discount AmountCalculated (calculated)Sum of the lines' combined net discount, which on each line already folds together the ordinary discount, the secondary discount and the contract discount, taken either as an amount or as a rate on the base (or on base plus tax when the line applies discount after tax). Scheme-driven discount is counted separately in TotalSchemeDiscountAmount.
TotalLineAmountTotal Line AmountCalculated (calculated)Sum of the line net amounts (each line's amount after its discounts). It is the base of the header TotalAmount formula, which adds TotalTaxAmount on top; it excludes tax, freight and rounding.
TotalLineBaseAmountTotal Line Base AmountCalculated (calculated)
TotalLineGrossAmountTotal Line Gross AmountCalculated (calculated)Sum of the line gross amounts, meaning net plus line tax and with post-tax discounts already taken off. This is the figure the billed-inventory accrual journal reads, so it is the tax-inclusive view of the order rather than the payable base.
TotalLineTaxAmountTotal Line Tax AmountCalculated (calculated)
TotalPendingInvoiceQuantityTotal Pending Invoice QuantityCalculated (calculated)
TotalPendingQuantityTotal Pending QuantityCalculated (calculated)
TotalSchemeDiscountAmountTotal Scheme Discount AmountCalculated (calculated)
TotalTaxAmountTotal Tax AmountCalculated (calculated)
TotalTaxPostingAmountTotal Tax Posting AmountCalculated (calculated)
TransactionTypeTransaction TypePickList
UIPropsUI PropsText
UpdatedDateTimeModified DateDateAndTimeYes

Actions

ActionLabelTypeWhat it does
ApplyPackageConfigurationApply Package ConfigurationServerAction (ApplyPackageConfiguration)ApplyPackageConfiguration
ApplySchemeApply SchemeServerAction (ApplyScheme)Handled by the shared scheme engine rather than by the purchase-order handler: it applies one named scheme line to the document, optionally with a chosen benefit and a set of selected items, adding benefit lines and scheme discount to the order.
BulkDeleteDeleteDeleteDelete the selected records.
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
DeleteInListDeleteDeleteDelete in a list page
EditEditEditEdit
EditInLineEditEditInlineEdit in page.
EditInListEditEditInlineEdit
EditListRowEditEditEditListRow
GetConfigurableItemsGet Configurable ItemsServerAction (GetConfigurableItems)GetConfigurableItems
GetFrequentlyOrderedItemsGet Frequently Ordered ItemsServerAction (GetFrequentlyOrderedItems)Get all Items ordered within particular duration.
GetOpenDocumentsGet Open DocumentsServerAction (GetOpenDocuments)GetOpenDocuments
GetPackageConfigurationGet Package ConfigurationServerAction (GetPackageConfiguration)GetPackageConfiguration
GetPaymentAmountSummaryGet Payment AmountSummaryServerAction (GetPaymentAmountSummary)GetPaymentAmountSummary
GetQualifiedBenefitsGet Qualified BenefitsServerAction (GetQualifiedBenefits)Read-only. Returns the benefits available to this document for a given set of item groups supplied in the arguments, so a buyer can choose which benefit to take before applying a scheme. It changes nothing on the order.
GetQualifiedSchemeSlabsGet Qualified Scheme SlabsServerAction (GetQualifiedSchemeSlabs)Read-only. Returns the scheme slabs the document currently qualifies for, evaluated by the shared scheme engine against the order as it stands. Applying one is a separate step.
GetSchemeRecommendationsGet Scheme RecommendationsServerAction (GetSchemeRecommendations)Read-only. Returns the schemes the document could qualify for; with no item named in the arguments it evaluates the whole document server-side, and with one named it previews that single item's line, optionally reflecting a typed quantity, unit price and the pending basket totals so every card shows the same distance to the next threshold. It applies nothing.
NewNewNewNew
PerformCreateDealerOrderCreate Dealer OrderServerAction (PerformCreateDealerOrder)PerformCreateDealerOrder
PerformReleaseInvoiceRelease InvoiceServerAction (PerformReleaseInvoice)This action will create purchase invoice record for the current purchase order.
PerformReleaseReceiptRelease ReceiptServerAction (PerformReleaseReceipt)This action will create good receipt record for the current purchase order.
PostAdjustmentsPost AdjustmentsServerAction (PostAdjustments)PostAdjustments
ProductCatalogueProduct CatalogueServerActionDespite being typed as a server action it names no server action - it is driven entirely by its attached layout, which opens the catalogue picker for adding lines to the order.
ResetSchemeReset SchemeServerAction (ResetScheme)Strips every applied scheme from the document through the shared scheme engine, removing the benefit lines it generated and clearing scheme discount, so the order can be re-evaluated from scratch. It is the undo for ApplyScheme and does affect stored line data.
SelectiveAddRequisitionAdd RequisitionServerAction (SelectiveAddRequisition)Pull every open line of the selected requisitions into this purchase order
SelectiveAddRequisitionLineSelective Requisition LinesServerAction (SelectiveAddRequisitionLine)Pull the selected requisition lines into this purchase order at the requested quantity
SelectiveCreateDealerOrderSelective Create Dealer OrderServerAction (SelectiveCreateDealerOrder)SelectiveCreateDealerOrder
SelectiveReleaseInvoiceSelective Release InvoiceServerAction (SelectiveReleaseInvoice)It is use to release selective lines.
SelectiveReleaseReceiptSelective Release ReceiptServerAction (SelectiveReleaseReceipt)It is use to release selective lines.

Validations

ValidationApplies toError messageNotes
Tax Group ValidationErrorTax Group Type must be "Document Level".Ensures tax group type is 'Document Level' for purchase orders

Lookup filters

FilterLookup fieldNotes
Branch For Partner AccountBranchId
Only Partner AccountPartnerAccountId
Only SupplierSupplierAccountId