xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse 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
Auto DMSConsumer Goods DMSSales Force Automation (SFA) 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

A purchase order is the commitment to a supplier: the items, quantities and prices bought for a branch, and the document every later shipment, goods receipt and bill links back to line by line. It appears in the Procurement app. It is created directly, released from a requisition, filled from requisitions with Add Requisition, or generated from an auto order. It is numbered from document numbering (shipped series PO, separator -, date DDMMYYYY, six digits). Partner Account, Branch and Document Date are locked once saved with a value. Receiving, billing and dealer-order release are tracked independently by per-line counters; Release Receipt, Release Shipment, Release Invoice and Dealer Order each draw only on the matching pending quantity, and every one has a selective variant. Status starts at Draft; Release Shipment sets it to Shipment and two shipped business rules set Goods Receipt and Bill when the order is saved. There is no cancel action: undelivered quantity is entered as Cancelled Quantity on the line. Step-by-step procedures are on the Purchase orders page of the Procurement documentation.

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 → BranchThe receiving branch. Must be active and belong to the partner account; required when the partner account has branches. Locked once saved with a value.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
DiscountGroupIdDiscount GroupLookup → DiscountGroupThe discount group line discounts come from. A purchase-type discount group is chosen automatically on creation.
DocumentDateDocument DateDateThe order's business date. Set to today when left empty, and used to pick the fiscal day the order belongs to. Locked once saved.
DocumentNumberDocument NumberNumber
ExecutiveResourceIdExecutiveLookup → ResourceLabelled Executive: the internal person accountable for the order.
ExternalIdExternalText, unique
IdIdGuidYes
InventoryFulfilmentIdFulfilmentLookup → InventoryFulfilment
IsInvoiceReleasedInvoice ReleasedCalculated (calculated)YesLegacy flag; not maintained by the release actions. Read the line counters instead.
IsKPICalculatedKPI CalculatedBooleanYes
IsOrderReceivedOrder ReceivedBooleanYesLegacy flag with no effect.
IsOrderReleasedOrder ReleasedBooleanYesLegacy flag with no effect.
IsReceiptReleasedReceipt ReleasedCalculated (calculated)YesLegacy flag; not maintained by the release actions. Read the line counters instead.
ModifiedByIdModified ByLookup → UserAccountYes
NameDocument NumberTextThe purchase order's document number, generated on save from the Purchase Order Name Setting. The shipped format is PO, a hyphen, the document date as DDMMYYYY, a hyphen and a six-digit counter.
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 → AccountYour organization placing the order. Only active partner accounts can be picked. Locked once saved with a value.
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 SupplyPickListFor tax: defaulted from the supplier's place of supply for businesses in India. Values: Haryana, Rajasthan, Gujarat, Maharashtra.
PriceAsOnDatePrice As On DateDateThe date prices are taken from. Changing it reprices every line from the price list in force on that date.
PriceListIdPrice ListLookup → PriceListThe purchase price list lines are priced from. A purchase-type price list is chosen automatically on creation.
PurchaseAutoOrderIdAuto Purchase OrderLookup → AutoOrderLabelled Auto Purchase Order: the auto-order worksheet the order was generated from. Filled automatically.
PurchaseOrderShipmentIdPurchase Order ShipmentLookup → Shipment
PurchaseOrderTypePurchase Order TypePickListA classification of the order: Part, Product, Local PO, VOR PO, Subcontracted PO or Blanket PO. The shipped list views filter on it; otherwise it is used for reporting. Values: Part PO, Product PO, Local PO, VOR PO.
PurchaseRequisitionIdRequisitionLookup → RequisitionThe requisition the order was released from. Filled automatically.
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 → ServiceOrderThe service order the purchase was raised for, when it came from one.
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 SchemeBooleanYesTurns off supplier-scheme evaluation for the whole order. Not on the shipped layouts.
SourceOfSupplySource of SupplyPickListFor tax: defaulted from the branch's source of supply for businesses in India. Values: Maharashtra, Gujarat, Rajasthan, Haryana.
StatusStatusPickListThe order's stage: Draft (the default), New, Shipment, Goods Receipt or Bill. Release Shipment sets Shipment; shipped business rules set Goods Receipt when no line has pending quantity and Bill when something is billed and nothing is left to bill, when the order is saved. It can also be moved by hand with the stepper. The shipped release buttons show only while it is Draft. Values: Draft, Shipment, Goods Receipt, Bill.
SupplierAccountIdSupplier AccountLookup → AccountThe vendor. Only active supplier accounts can be picked. Filled from the branch's default supplier when left empty. Add Requisition only accepts requisitions for the same supplier account.
SupplierBranchIdSupplier BranchLookup → BranchThe supplier's branch. Required by the Dealer Order actions, which create a sale order at this branch when the supplier is another organization on the platform. Not on the shipped create form.
Tax1Tax1Currency
Tax1NameTax Name 1Text
Tax1RateTax Rate 1Currency
Tax1TypeTax Type 1Text
TaxGroupIdTax GroupLookup → TaxGroupHeader-level taxes. Must be a Document Level tax group.
TaxIdTaxLookup → Tax
TaxSupplyTypeTax Supply TypePickListThe tax lane: Within State, Outside State, Exempt, Exports or SEZ. For businesses in India it is recalculated on every save from the supplier's registration type and whether the place and source of supply differ. Values: 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)The order total shown in the Amount Summary: base amount less scheme and other discounts plus tax.
TotalDiscountAmountTotal Discount AmountCalculated (calculated)The total of line discounts.
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)Quantity times unit cost over all lines, before discounts.
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)The sum of the lines' pending invoice quantity: ordered less billed less cancelled. The shipped release buttons need it to be greater than zero.
TotalPendingQuantityTotal Pending QuantityCalculated (calculated)The sum of the lines' pending quantity: ordered less staged on goods receipts less cancelled.
TotalSchemeDiscountAmountTotal Scheme Discount AmountCalculated (calculated)The total discount from applied supplier schemes.
TotalTaxAmountTotal Tax AmountCalculated (calculated)The total tax over all lines.
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