Purchase Order Releases
PO · purchase-order.schema.json · Versioned JSON Schema artifacts for this document. The latest version is expanded by default; older versions stay collapsed for quick inspection and download.
1.0.11Latest/edi/contracts/releases/1.0.11/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.11/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.11",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"const": "1.0.11",
"description": "Canonical schema version used to create this document",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"const": "DataShift Edge v1",
"description": "DataShift Edge version that generated the canonical document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"oneOf": [
{
"format": "date"
},
{
"format": "date-time"
}
],
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"oneOf": [
{
"format": "date"
},
{
"format": "date-time"
}
],
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"description": "Integer unit price at ISO 4217 minor-unit scale + 2 (e.g. AUD, exponent 2 -> 1/10000: 5.2185 -> 52185). Carries sub-minor precision; not rounded to minor units.",
"type": "integer",
"x-datashift-money": "rate",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 11
},
"lineAmountInclTax": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"oneOf": [
{
"format": "date"
},
{
"format": "date-time"
}
],
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"taxAmount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 2
},
"totalAmount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.0.11",
"payloadId": "po-example-10001",
"userAgent": "DataShift Edge v1"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 10,
"unitOfMeasure": "EA",
"unitPrice": 1500000,
"currency": "AUD",
"lineAmountExTax": 150000,
"lineAmountInclTax": 165000
}
],
"orderTotals": {
"subtotal": 150000,
"taxAmount": 15000,
"totalAmount": 165000,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.10/edi/contracts/releases/1.0.10/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.10/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.10",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"const": "1.0.10",
"description": "Canonical schema version used to create this document",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"const": "DataShift Edge v1",
"description": "DataShift Edge version that generated the canonical document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"description": "Integer unit price at ISO 4217 minor-unit scale + 2 (e.g. AUD, exponent 2 -> 1/10000: 5.2185 -> 52185). Carries sub-minor precision; not rounded to minor units.",
"type": "integer",
"x-datashift-money": "rate",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 11
},
"lineAmountInclTax": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"taxAmount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 2
},
"totalAmount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.0.10",
"payloadId": "po-example-10001",
"userAgent": "DataShift Edge v1"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 10,
"unitOfMeasure": "EA",
"unitPrice": 1500000,
"currency": "AUD",
"lineAmountExTax": 150000,
"lineAmountInclTax": 165000
}
],
"orderTotals": {
"subtotal": 150000,
"taxAmount": 15000,
"totalAmount": 165000,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.9/edi/contracts/releases/1.0.9/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.9/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.9",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"const": "1.0.9",
"description": "Canonical schema version used to create this document",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"const": "DataShift Edge v1",
"description": "DataShift Edge version that generated the canonical document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"description": "Integer unit price at ISO 4217 minor-unit scale + 2 (e.g. AUD, exponent 2 -> 1/10000: 5.2185 -> 52185). Carries sub-minor precision; not rounded to minor units.",
"type": "integer",
"x-datashift-money": "rate",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 11
},
"lineAmountInclTax": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"taxAmount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 2
},
"totalAmount": {
"description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102). Negative for credits or adjustments.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.0.9",
"payloadId": "po-example-10001",
"userAgent": "DataShift Edge v1"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 250000,
"currency": "AUD",
"lineAmountExTax": 30000,
"lineAmountInclTax": 33000
}
],
"orderTotals": {
"subtotal": 30000,
"taxAmount": 3000,
"totalAmount": 33000,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.8/edi/contracts/releases/1.0.8/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.8/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.8",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"const": "1.0.8",
"description": "Canonical schema version used to create this document",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"const": "DataShift Edge v1",
"description": "DataShift Edge version that generated the canonical document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"description": "Settled monetary amount as an integer in ISO 4217 minor units. The minor-unit exponent is resolved from the in-scope `currency` via the DataShift currency registry (e.g. AUD has exponent 2 -> cents: 561.02 is encoded 56102; JPY exponent 0; KWD exponent 3). Negative values represent adjustments or credits. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"description": "Unit price as an integer at the currency rate scale (minorUnitExponent + 2; e.g. AUD -> 1/10000: 5.2185 is encoded 52185). The scale is resolved from the in-scope `currency` via the DataShift currency registry. Unit prices legitimately carry sub-minor-unit precision and MUST NOT be rounded to minor units. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "rate",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"description": "Settled monetary amount as an integer in ISO 4217 minor units. The minor-unit exponent is resolved from the in-scope `currency` via the DataShift currency registry (e.g. AUD has exponent 2 -> cents: 561.02 is encoded 56102; JPY exponent 0; KWD exponent 3). Negative values represent adjustments or credits. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 11
},
"lineAmountInclTax": {
"description": "Settled monetary amount as an integer in ISO 4217 minor units. The minor-unit exponent is resolved from the in-scope `currency` via the DataShift currency registry (e.g. AUD has exponent 2 -> cents: 561.02 is encoded 56102; JPY exponent 0; KWD exponent 3). Negative values represent adjustments or credits. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"description": "Settled monetary amount as an integer in ISO 4217 minor units. The minor-unit exponent is resolved from the in-scope `currency` via the DataShift currency registry (e.g. AUD has exponent 2 -> cents: 561.02 is encoded 56102; JPY exponent 0; KWD exponent 3). Negative values represent adjustments or credits. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 1
},
"taxAmount": {
"description": "Settled monetary amount as an integer in ISO 4217 minor units. The minor-unit exponent is resolved from the in-scope `currency` via the DataShift currency registry (e.g. AUD has exponent 2 -> cents: 561.02 is encoded 56102; JPY exponent 0; KWD exponent 3). Negative values represent adjustments or credits. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 2
},
"totalAmount": {
"description": "Settled monetary amount as an integer in ISO 4217 minor units. The minor-unit exponent is resolved from the in-scope `currency` via the DataShift currency registry (e.g. AUD has exponent 2 -> cents: 561.02 is encoded 56102; JPY exponent 0; KWD exponent 3). Negative values represent adjustments or credits. Never a fractional/decimal value.",
"type": "integer",
"x-datashift-money": "minor",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.0.8",
"payloadId": "po-example-10001",
"userAgent": "DataShift Edge v1"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 250000,
"currency": "AUD",
"lineAmountExTax": 30000,
"lineAmountInclTax": 33000
}
],
"orderTotals": {
"subtotal": 30000,
"taxAmount": 3000,
"totalAmount": 33000,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.7/edi/contracts/releases/1.0.7/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.7/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.7",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"const": "1.0.7",
"description": "Canonical schema version used to create this document",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"const": "DataShift Edge v1",
"description": "DataShift Edge version that generated the canonical document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"type": "number",
"multipleOf": 0.01,
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"type": "number",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"type": "number",
"x-order": 11
},
"lineAmountInclTax": {
"type": "number",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"type": "number",
"x-order": 1
},
"taxAmount": {
"type": "number",
"x-order": 2
},
"totalAmount": {
"type": "number",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.0.7",
"payloadId": "po-example-10001",
"userAgent": "DataShift Edge v1"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 25,
"currency": "AUD",
"lineAmountExTax": 300,
"lineAmountInclTax": 330
}
],
"orderTotals": {
"subtotal": 300,
"taxAmount": 30,
"totalAmount": 330,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.6/edi/contracts/releases/1.0.6/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.6/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.6",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"type": "string",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"type": "string",
"description": "System that generated the document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"type": "number",
"multipleOf": 0.01,
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"type": "number",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"type": "number",
"x-order": 11
},
"lineAmountInclTax": {
"type": "number",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"type": "number",
"x-order": 1
},
"taxAmount": {
"type": "number",
"x-order": 2
},
"totalAmount": {
"type": "number",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.2.067",
"payloadId": "po-example-10001",
"userAgent": "Example Supplier Gateway"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 25,
"currency": "AUD",
"lineAmountExTax": 300,
"lineAmountInclTax": 330
}
],
"orderTotals": {
"subtotal": 300,
"taxAmount": 30,
"totalAmount": 330,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.5/edi/contracts/releases/1.0.5/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.5/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.5",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"type": "string",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"type": "string",
"description": "System that generated the document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "object",
"description": "Australian tax registrations for the party",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false,
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"anyOf": [
{
"format": "email"
},
{
"const": ""
}
],
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"type": "number",
"multipleOf": 0.01,
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"type": "number",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"type": "number",
"x-order": 11
},
"lineAmountInclTax": {
"type": "number",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"type": "number",
"x-order": 1
},
"taxAmount": {
"type": "number",
"x-order": 2
},
"totalAmount": {
"type": "number",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.2.067",
"payloadId": "po-example-10001",
"userAgent": "Example Supplier Gateway"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "12345678901"
}
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": {
"type": "ABN",
"value": "98765432109"
}
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 25,
"currency": "AUD",
"lineAmountExTax": 300,
"lineAmountInclTax": 330
}
],
"orderTotals": {
"subtotal": 300,
"taxAmount": 30,
"totalAmount": 330,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.4/edi/contracts/releases/1.0.4/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.4/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.4",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"type": "string",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"type": "string",
"description": "System that generated the document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "array",
"description": "Australian tax registrations for the party",
"items": {
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false
},
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"format": "email",
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "array",
"description": "Australian tax registrations for the party",
"items": {
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false
},
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"format": "email",
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"title": "Address Definition",
"description": "Standard address structure for DataShift canonical documents",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"type": "number",
"multipleOf": 0.01,
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"type": "number",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"type": "number",
"x-order": 11
},
"lineAmountInclTax": {
"type": "number",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"type": "number",
"x-order": 1
},
"taxAmount": {
"type": "number",
"x-order": 2
},
"totalAmount": {
"type": "number",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.2.067",
"payloadId": "po-example-10001",
"userAgent": "Example Supplier Gateway"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": [
{
"type": "ABN",
"value": "12345678901"
}
]
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": [
{
"type": "ABN",
"value": "98765432109"
}
]
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 25,
"currency": "AUD",
"lineAmountExTax": 300,
"lineAmountInclTax": 330
}
],
"orderTotals": {
"subtotal": 300,
"taxAmount": 30,
"totalAmount": 330,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.3/edi/contracts/releases/1.0.3/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.3/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.3",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"const": "PO",
"x-datashift-managed": true,
"x-datashift-system": true,
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"type": "string",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"type": "string",
"description": "System that generated the document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"operation",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"operation": {
"type": "string",
"enum": [
"new",
"update",
"delete"
],
"description": "Standard document operation. Legacy PO change requests map to update.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"update": "Updates a previously issued purchase order.",
"delete": "Deletes or cancels a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"title": "Party Definition",
"description": "Party placing the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "array",
"description": "Australian tax registrations for the party",
"items": {
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false
},
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"format": "email",
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"$ref": "./address.def.json",
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 9
},
"supplier": {
"title": "Party Definition",
"description": "Party expected to fulfil the order.",
"type": "object",
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxRegistrations": {
"type": "array",
"description": "Australian tax registrations for the party",
"items": {
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"type": {
"type": "string",
"enum": [
"ABN"
],
"x-order": 1
},
"value": {
"type": "string",
"x-order": 2
}
},
"additionalProperties": false
},
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"format": "email",
"x-order": 3
},
"role": {
"type": "string",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"$ref": "./address.def.json",
"x-order": 5
}
},
"required": [
"id",
"name"
],
"additionalProperties": false,
"x-order": 10
},
"billTo": {
"title": "Address Definition",
"description": "Billing destination supplied by the buyer.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 11
},
"shipTo": {
"title": "Address Definition",
"description": "Delivery destination for the ordered goods.",
"type": "object",
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"addressee": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"type": "string",
"enum": [
"AU"
],
"x-order": 8
}
},
"required": [
"addressee",
"street1",
"city",
"state",
"postalCode",
"country"
],
"additionalProperties": false,
"x-order": 12
},
"shipping": {
"type": "object",
"description": "Commercial freight charges and instructions.",
"properties": {
"amount": {
"type": "number",
"multipleOf": 0.01,
"x-order": 1
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 2
},
"carrier": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
},
"buyerAcctNumber": {
"type": "string",
"x-order": 6
},
"incoTerms": {
"type": "string",
"enum": [
"cfr",
"cif",
"cip",
"cpt",
"daf",
"dap",
"ddp",
"ddu",
"dpu",
"deq",
"des",
"exw",
"fas",
"fca",
"fob"
],
"x-order": 7
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"type": "number",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"type": "number",
"x-order": 11
},
"lineAmountInclTax": {
"type": "number",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"type": "number",
"x-order": 1
},
"taxAmount": {
"type": "number",
"x-order": 2
},
"totalAmount": {
"type": "number",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.2.067",
"payloadId": "po-example-10001",
"userAgent": "Example Supplier Gateway"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"operation": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxRegistrations": [
{
"type": "ABN",
"value": "12345678901"
}
]
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxRegistrations": [
{
"type": "ABN",
"value": "98765432109"
}
]
},
"billTo": {
"addressee": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"addressee": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 25,
"currency": "AUD",
"lineAmountExTax": 300,
"lineAmountInclTax": 330
}
],
"orderTotals": {
"subtotal": 300,
"taxAmount": 30,
"totalAmount": 330,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.2/edi/contracts/releases/1.0.2/schemas/purchase-order.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.datashift.com.au/edi/contracts/releases/1.0.2/schemas/purchase-order.schema.json",
"title": "Purchase Order (PO) Canonical Schema",
"description": "Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.",
"version": "1.0.2",
"type": "object",
"required": [
"docType",
"correlationId",
"timestamp",
"metadata",
"data"
],
"properties": {
"docType": {
"type": "string",
"const": "PO",
"description": "Canonical document type. For purchase orders this value is PO.",
"x-order": 1
},
"correlationId": {
"type": "string",
"format": "uuid",
"description": "Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 2
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "UTC timestamp indicating when DataShift created the canonical document.",
"x-datashift-managed": true,
"x-datashift-system": true,
"x-order": 3
},
"metadata": {
"type": "object",
"description": "Public source metadata retained for integration troubleshooting without exposing tenant or credential details.",
"required": [
"sourceLanguage",
"sourceVersion",
"userAgent"
],
"properties": {
"sourceLanguage": {
"type": "string",
"enum": [
"json",
"cxml"
],
"x-order": 1
},
"sourceVersion": {
"type": "string",
"x-order": 2
},
"payloadId": {
"type": "string",
"description": "Original cXML payload ID",
"x-order": 3
},
"userAgent": {
"type": "string",
"description": "System that generated the document",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
},
"data": {
"type": "object",
"required": [
"poNumber",
"poVersion",
"requestType",
"orderDate",
"requestedDeliveryDate",
"buyer",
"supplier",
"billTo",
"shipTo",
"lineItems",
"orderTotals"
],
"properties": {
"poNumber": {
"type": "string",
"description": "Buyer-issued purchase order number. Use this as the primary business reference.",
"x-order": 1
},
"poVersion": {
"type": "string",
"description": "Buyer-issued version or revision for this purchase order.",
"x-order": 2
},
"requestType": {
"type": "string",
"enum": [
"new",
"change"
],
"description": "Indicates whether this order creates a new PO or changes an existing one.",
"x-enum-descriptions": {
"new": "Creates a new purchase order.",
"change": "Changes a previously issued purchase order."
},
"x-order": 3
},
"orderType": {
"type": "string",
"enum": [
"regular",
"blanket",
"release",
"standing"
],
"description": "Type of purchase order",
"x-order": 4
},
"orderDate": {
"type": "string",
"format": "date-time",
"description": "Date and time the buyer issued the order.",
"x-order": 5
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"description": "Buyer-requested delivery date for the order.",
"x-order": 6
},
"comments": {
"type": "string",
"description": "General order comments or instructions",
"x-order": 7
},
"dropship": {
"type": "boolean",
"description": "Indicates if this is a direct ship/dropship order. When true, shipping address should be included in outbound mappings (e.g., NetSuite sales orders).",
"x-order": 8
},
"buyer": {
"type": "object",
"required": [
"id",
"name",
"taxId"
],
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxId": {
"type": "string",
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"x-order": 3
},
"role": {
"type": "string",
"description": "Contact role (buyer, technical, etc)",
"x-order": 4
}
},
"additionalProperties": false,
"x-order": 4
}
},
"additionalProperties": false,
"description": "Party placing the order.",
"x-order": 9
},
"supplier": {
"type": "object",
"required": [
"id",
"name",
"taxId"
],
"properties": {
"id": {
"type": "string",
"x-order": 1
},
"name": {
"type": "string",
"x-order": 2
},
"taxId": {
"type": "string",
"x-order": 3
},
"contact": {
"type": "object",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"x-order": 3
}
},
"additionalProperties": false,
"x-order": 4
},
"address": {
"type": "object",
"description": "Supplier's business address",
"properties": {
"street1": {
"type": "string",
"x-order": 1
},
"street2": {
"type": "string",
"x-order": 2
},
"city": {
"type": "string",
"x-order": 3
},
"state": {
"type": "string",
"x-order": 4
},
"postalCode": {
"type": "string",
"x-order": 5
},
"country": {
"title": "Country Codes Enumeration",
"description": "ISO 3166-1 alpha-2 country codes supported by DataShift canonical documents",
"type": "string",
"enum": [
"AU"
],
"x-order": 6
}
},
"additionalProperties": false,
"x-order": 5
}
},
"additionalProperties": false,
"description": "Party expected to fulfil the order.",
"x-order": 10
},
"billTo": {
"type": "object",
"required": [
"address",
"street1",
"city",
"state",
"postalCode",
"country"
],
"properties": {
"address": {
"type": "string",
"x-order": 1
},
"street1": {
"type": "string",
"x-order": 2
},
"street2": {
"type": "string",
"x-order": 3
},
"city": {
"type": "string",
"x-order": 4
},
"state": {
"type": "string",
"x-order": 5
},
"postalCode": {
"type": "string",
"x-order": 6
},
"country": {
"title": "Country Codes Enumeration",
"description": "ISO 3166-1 alpha-2 country codes supported by DataShift canonical documents",
"type": "string",
"enum": [
"AU"
],
"x-order": 7
},
"phone": {
"type": "string",
"x-order": 8
},
"email": {
"type": "string",
"x-order": 9
}
},
"additionalProperties": false,
"description": "Billing destination supplied by the buyer.",
"x-order": 11
},
"shipTo": {
"type": "object",
"required": [
"address",
"street1",
"city",
"state",
"postalCode",
"country"
],
"properties": {
"addressId": {
"type": "string",
"x-order": 1
},
"address": {
"type": "string",
"x-order": 2
},
"street1": {
"type": "string",
"x-order": 3
},
"street2": {
"type": "string",
"x-order": 4
},
"city": {
"type": "string",
"x-order": 5
},
"state": {
"type": "string",
"x-order": 6
},
"postalCode": {
"type": "string",
"x-order": 7
},
"country": {
"title": "Country Codes Enumeration",
"description": "ISO 3166-1 alpha-2 country codes supported by DataShift canonical documents",
"type": "string",
"enum": [
"AU"
],
"x-order": 8
},
"phone": {
"type": "string",
"x-order": 9
},
"email": {
"type": "string",
"x-order": 10
},
"contact": {
"type": "object",
"description": "Ship-to location contact",
"properties": {
"name": {
"type": "string",
"x-order": 1
},
"phone": {
"type": "string",
"x-order": 2
},
"email": {
"type": "string",
"x-order": 3
}
},
"additionalProperties": false,
"x-order": 11
}
},
"additionalProperties": false,
"description": "Delivery destination for the ordered goods.",
"x-order": 12
},
"shipping": {
"type": "object",
"properties": {
"carrier": {
"type": "string",
"x-order": 1
},
"charges": {
"type": "number",
"x-order": 2
},
"buyerAcctNumber": {
"type": "string",
"x-order": 3
},
"route": {
"type": "string",
"description": "Shipping route method",
"x-order": 4
},
"shippingInstructions": {
"type": "string",
"description": "Detailed shipping instructions",
"x-order": 5
}
},
"additionalProperties": false,
"x-order": 13
},
"lineItems": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": [
"lineNumber",
"supplierItemId",
"buyerItemId",
"quantity",
"unitOfMeasure",
"unitPrice",
"currency",
"lineAmountExTax",
"lineAmountInclTax"
],
"properties": {
"lineNumber": {
"type": "integer",
"description": "Buyer line number from the purchase order.",
"x-order": 1
},
"uniqueLineKey": {
"type": "string",
"description": "DataShift-managed stable line key used by DataShift connectors to correlate PO, POA, ASN, and INV lines.",
"x-datashift-managed": true,
"x-order": 2
},
"supplierItemId": {
"type": "string",
"x-order": 3
},
"supplierItemAuxiliaryId": {
"type": "string",
"description": "Supplier's alternate/auxiliary part ID",
"x-order": 4
},
"buyerItemId": {
"type": "string",
"x-order": 5
},
"description": {
"type": "string",
"x-order": 6
},
"quantity": {
"type": "number",
"multipleOf": 0.01,
"description": "Ordered quantity for this line.",
"x-order": 7
},
"unitOfMeasure": {
"title": "REC20 Unit of Measure Codes",
"description": "Unit of measure code for the ordered quantity.",
"type": "string",
"enum": [
"AY",
"BG",
"BL",
"BR",
"BLL",
"E2",
"BO",
"BX",
"BJ",
"BE",
"KA",
"CA",
"CG",
"CT",
"CQ",
"CS",
"CMT",
"CL",
"CH",
"MTQ",
"CY",
"DAY",
"DC",
"DZN",
"DR",
"EA",
"FOT",
"GRM",
"HUR",
"CEN",
"INH",
"JR",
"KGM",
"KMT",
"KT",
"LN",
"LK",
"LTR",
"MTR",
"TNE",
"MLT",
"MMT",
"MON",
"PK",
"PD",
"PL",
"PR",
"D97",
"C62",
"PG",
"LBR",
"RL",
"RO",
"SA",
"SE",
"SET",
"ST",
"SO",
"MTK",
"U3",
"MIL",
"TU",
"WEE"
],
"x-order": 8
},
"unitPrice": {
"type": "number",
"x-order": 9
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency code for line pricing.",
"type": "string",
"enum": [
"AUD"
],
"x-order": 10
},
"lineAmountExTax": {
"type": "number",
"x-order": 11
},
"lineAmountInclTax": {
"type": "number",
"x-order": 12
},
"requestedDeliveryDate": {
"type": "string",
"format": "date-time",
"x-order": 13
},
"priceBasisQuantityQuantity": {
"type": "number",
"description": "Price basis quantity",
"x-order": 14
},
"priceBasisQuantityConversionFactor": {
"type": "number",
"description": "Price basis conversion factor",
"x-order": 15
},
"priceBasisQuantityUnitOfMeasure": {
"type": "string",
"description": "Price basis unit of measure",
"x-order": 16
},
"classificationDomain": {
"type": "string",
"description": "Product classification domain",
"x-order": 17
},
"classificationCode": {
"type": "string",
"description": "Product classification code",
"x-order": 18
},
"comments": {
"type": "string",
"description": "Line item specific comments",
"x-order": 19
}
},
"additionalProperties": false
},
"description": "Ordered product lines. DataShift manages uniqueLineKey for cross-document line correlation where needed.",
"x-order": 14
},
"orderTotals": {
"type": "object",
"required": [
"subtotal",
"taxAmount",
"totalAmount",
"currency"
],
"properties": {
"subtotal": {
"type": "number",
"x-order": 1
},
"taxAmount": {
"type": "number",
"x-order": 2
},
"totalAmount": {
"type": "number",
"x-order": 3
},
"currency": {
"title": "Currency Enumeration",
"description": "ISO 4217 currency codes supported by DataShift canonical schemas",
"type": "string",
"enum": [
"AUD"
],
"x-order": 4
}
},
"additionalProperties": false,
"description": "Order-level subtotal, tax, and total amounts.",
"x-order": 15
},
"extrinsics": {
"type": "object",
"description": "Partner-specific extension fields that are not part of the canonical core contract.",
"additionalProperties": {
"x-additionalPropertiesName": "extensionField",
"description": "Partner-specific extension value."
},
"x-order": 16
}
},
"additionalProperties": false,
"description": "Business payload for the purchase order.",
"x-order": 5
}
},
"additionalProperties": false,
"examples": [
{
"docType": "PO",
"correlationId": "8d359a0f-3e5a-4d36-a87c-f2748b1d6b43",
"timestamp": "2026-05-16T00:00:00Z",
"metadata": {
"sourceLanguage": "cxml",
"sourceVersion": "1.2.067",
"payloadId": "po-example-10001",
"userAgent": "Example Supplier Gateway"
},
"data": {
"poNumber": "PO-10001",
"poVersion": "1",
"requestType": "new",
"orderDate": "2026-05-16T00:00:00Z",
"requestedDeliveryDate": "2026-05-23T00:00:00Z",
"buyer": {
"id": "BUYER-AU",
"name": "Example Buyer Pty Ltd",
"taxId": "AU123456789"
},
"supplier": {
"id": "SUPPLIER-AU",
"name": "Example Supplier Pty Ltd",
"taxId": "AU987654321"
},
"billTo": {
"address": "Example Buyer Accounts",
"street1": "1 Market Street",
"city": "Sydney",
"state": "NSW",
"postalCode": "2000",
"country": "AU"
},
"shipTo": {
"address": "Example Distribution Centre",
"street1": "10 Warehouse Road",
"city": "Melbourne",
"state": "VIC",
"postalCode": "3000",
"country": "AU"
},
"lineItems": [
{
"lineNumber": 1,
"uniqueLineKey": "PO-10001-1",
"supplierItemId": "SUP-001",
"buyerItemId": "BUY-001",
"description": "Example product",
"quantity": 12,
"unitOfMeasure": "EA",
"unitPrice": 25,
"currency": "AUD",
"lineAmountExTax": 300,
"lineAmountInclTax": 330
}
],
"orderTotals": {
"subtotal": 300,
"taxAmount": 30,
"totalAmount": 330,
"currency": "AUD"
},
"extrinsics": {
"department": "Operations"
}
}
}
]
}1.0.0/edi/contracts/releases/1.0.0/schemas/purchase-order.schema.json
This historical schema is listed in the channel manifest, but its preview could not be loaded.