Purchase Order
Buyer order request sent to a supplier.
A Purchase Order is the buyer's authoritative request for goods or services. It establishes the business order number, requested delivery timing, parties, ship-to and bill-to details, ordered lines, pricing, totals, and partner extension values that downstream acknowledgement, shipment, and invoice documents must preserve.
Lifecycle And Correlation
Lifecycle Position
Starts the order lifecycle and creates the references used by POA, ASN, and INV documents.
Correlation Guidance
Treat data.poNumber as the business reference and data.lineItems[].uniqueLineKey as the durable line reference. Downstream documents must carry the original uniqueLineKey when a line is acknowledged, shipped, packed, or invoiced; automatic line matching does not fall back to display line numbers, item identifiers, descriptions, quantities, or array position.
Validation Notes
- Require buyer, supplier, billTo, shipTo, lineItems, and orderTotals before accepting the document.
- Validate operation against the supported new, update, and delete values.
- Use ISO 4217 currency values consistently across line and order totals.
- Keep date-time values timezone-aware so requested delivery timing is not shifted.
Mapping Notes
- Map source order identifiers to data.poNumber and preserve the source revision in data.poVersion when present.
- Create or preserve uniqueLineKey for each line before sending downstream documents; do not rely on lineNumber, item id, description, quantity, or array index as an automatic match key.
- Map ship-to address details even when the order is direct ship or dropship.
- Place partner-only values in data.extrinsics instead of overloading canonical fields.
Operational Notes
- Use correlationId and poNumber together in logs and support tickets.
- When a changed order arrives, compare poVersion and line uniqueLineKey values before deciding whether downstream documents need updates.
Implementation Pitfalls
- Do not use array position as a line identifier.
- Do not infer the supplier from a trading connection alone; keep the supplier party explicit.
- Do not collapse tax-inclusive and tax-exclusive amounts into a single value.
Endpoints
Use the schema endpoint for machine validation and the document page for implementation guidance.
GETDownload Purchase Order schema
application/schema+jsonapplication/json/contracts/releases/1.0.7/schemas/purchase-order.schema.jsonPurchase Order JSON Schema
GETPurchase Order
text/html/schemas/purchase-orderPurchase Order documentation page
Model
The contract is shown in reading order. The envelope identifies the document, metadata captures source context, and data contains the business payload and nested line structures.
DataShift populates, preserves, or recalculates these values for correlation, lifecycle matching, validation, and auditability. They are visible in the model so implementers know which fields are controlled by the platform instead of manual partner mappings.
Envelope
PurchaseOrderPublic canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.
docTypeCanonical document type. For purchase orders this value is PO.
POcorrelationIdStable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.
timestampUTC timestamp indicating when DataShift created the canonical document.
metadatadataMetadata
PurchaseOrderMetadataPublic source metadata retained for integration troubleshooting without exposing tenant or credential details.
sourceLanguagejsoncxmlsourceVersionCanonical schema version used to create this document
1.0.7payloadIdOriginal cXML payload ID
userAgentDataShift Edge version that generated the canonical document
DataShift Edge v1Data
PurchaseOrderDataBusiness payload for the purchase order.
poNumberBuyer-issued purchase order number. Use this as the primary business reference.
poVersionBuyer-issued version or revision for this purchase order.
operationStandard document operation. Legacy PO change requests map to update.
newupdatedeleteorderTypeType of purchase order
regularblanketreleasestandingorderDateDate and time the buyer issued the order.
requestedDeliveryDateBuyer-requested delivery date for the order.
commentsGeneral order comments or instructions
dropshipIndicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).
buyerParty placing the order.
Object fieldsExpandCollapse
idnametaxRegistrationsAustralian tax registrations for the party
contactaddressStandard address structure for DataShift canonical documents
supplierParty expected to fulfil the order.
Object fieldsExpandCollapse
idnametaxRegistrationsAustralian tax registrations for the party
contactaddressStandard address structure for DataShift canonical documents
billToBilling destination supplied by the buyer.
Object fieldsExpandCollapse
addressIdaddresseestreet1street2citystatepostalCodecountryAUshipToDelivery destination for the ordered goods.
Object fieldsExpandCollapse
addressIdaddresseestreet1street2citystatepostalCodecountryAUshippingCommercial freight charges and instructions.
Object fieldsExpandCollapse
amountcurrencyISO 4217 currency codes supported by DataShift canonical schemas
AUDcarrierrouteShipping route method
shippingInstructionsDetailed shipping instructions
buyerAcctNumberincoTermscfrcifcipcptdafdapddpddudpudeqdesexwfasfcafoblineItemsOrdered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.
orderTotalsextrinsicsPartner-specific extension fields that are not part of the canonical core contract.
Line Items
PurchaseOrderLineItemlineNumberBuyer line number from the purchase order.
uniqueLineKeyDataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.
supplierItemIdsupplierItemAuxiliaryIdSupplier's alternate/auxiliary part ID
buyerItemIddescriptionquantityOrdered quantity for this line.
unitOfMeasureUnit of measure code for the ordered quantity.
AYBGBLBRBLLE2BOBXBJBEKACACGCTCQCSCMTCLCHMTQCYDAYDCDZNDREAFOTGRMHURCENINHJRKGMKMTKTLNLKLTRMTRTNEMLTMMTMONPKPDPLPRD97C62PGLBRRLROSASESETSTSOMTKU3MILTUWEEunitPricecurrencyISO 4217 currency code for line pricing.
AUDlineAmountExTaxlineAmountInclTaxrequestedDeliveryDatepriceBasisQuantityQuantityPrice basis quantity
priceBasisQuantityConversionFactorPrice basis conversion factor
priceBasisQuantityUnitOfMeasurePrice basis unit of measure
classificationDomainProduct classification domain
classificationCodeProduct classification code
commentsLine item specific comments
Totals
PurchaseOrderTotalsOrder-level subtotal, tax, and total amounts.
subtotaltaxAmounttotalAmountcurrencyISO 4217 currency codes supported by DataShift canonical schemas
AUD