{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://docs.datashift.com.au/edi/schemas/v1/purchase-order-acknowledgement.schema.json","title":"Purchase Order Acknowledgement (POA) Canonical Schema","description":"Public canonical Purchase Order Acknowledgement contract used by suppliers to accept, reject, backorder, or qualify purchase order lines.","version":"1.3.0","type":"object","required":["docType","correlationId","timestamp","metadata","data"],"properties":{"docType":{"description":"Canonical document type. For purchase order acknowledgements this value is POA.","x-order":1},"correlationId":{"type":"string","format":"uuid","description":"Stable UUID used to trace this acknowledgement against the purchase order lifecycle.","x-order":2},"timestamp":{"type":"string","format":"date-time","description":"UTC timestamp indicating when DataShift created the canonical acknowledgement.","x-order":3},"metadata":{"type":"object","required":["sourceLanguage","sourceVersion"],"properties":{"sourceLanguage":{"type":"string","enum":["json","cxml"],"x-order":1},"sourceVersion":{"type":"string","x-order":2}},"additionalProperties":false,"description":"Public source metadata retained for integration troubleshooting.","x-order":4},"data":{"type":"object","required":["poNumber","noticeDate","lineItems","poaNumber"],"properties":{"poaNumber":{"type":"string","description":"Supplier-assigned acknowledgement identifier used for duplicate detection and support references.","x-order":1},"confirmationType":{"type":"string","enum":["accept","reject","except","detail","backordered","allDetail","replace"],"description":"Order-level acknowledgement outcome calculated from line-level status and tolerance validation.","x-enum-descriptions":{"accept":"The order is accepted without exceptions.","reject":"The order is rejected.","except":"The order is accepted with exceptions.","detail":"The response contains line-level detail updates.","backordered":"The order or line is backordered.","allDetail":"Every line is acknowledged with detail.","replace":"This acknowledgement replaces an earlier acknowledgement."},"x-order":2},"operation":{"type":"string","enum":["new","update"],"default":"new","description":"Whether this is a new confirmation or an update to a previous one","x-order":3},"noticeDate":{"type":"string","format":"date-time","description":"Date and time the supplier created the acknowledgement.","x-order":4},"poNumber":{"type":"string","description":"Purchase order number being acknowledged.","x-order":5},"poVersion":{"type":"string","description":"Purchase order version being acknowledged.","x-order":6},"orderReference":{"type":"object","description":"Reference to the original purchase order document","properties":{"documentId":{"type":"string","x-order":1},"payloadId":{"type":"string","x-order":2},"orderDate":{"type":"string","format":"date-time","x-order":3}},"additionalProperties":false,"x-order":7},"documentReference":{"type":"object","description":"Reference to previous confirmation (required for operation=update)","properties":{"documentId":{"type":"string","x-order":1},"payloadId":{"type":"string","x-order":2}},"additionalProperties":false,"x-order":8},"deliveryDate":{"type":"string","format":"date-time","description":"Expected delivery date","x-order":9},"dropship":{"type":"boolean","description":"Indicates if this is a direct ship/dropship order","x-order":10},"invoiceId":{"type":"string","description":"Optional supplier-generated invoice ID associated with this confirmation","x-order":11},"shipping":{"type":"object","description":"Shipping cost and carrier details","properties":{"amount":{"type":"number","multipleOf":0.01,"x-order":1},"currency":{"description":"See public DataShift EDI documentation for allowed values.","x-order":2},"carrier":{"type":"string","description":"Carrier name","x-order":3},"charges":{"type":"number","description":"Shipping charges","x-order":4},"buyerAcctNumber":{"type":"string","description":"Buyer's shipping account number","x-order":5},"route":{"type":"string","description":"Shipping route method","x-order":6},"shippingInstructions":{"type":"string","description":"Detailed shipping instructions","x-order":7},"incoTerms":{"type":"string","enum":["cfr","cif","cip","cpt","daf","dap","ddp","ddu","dpu","deq","des","exw","fas","fca","fob"],"description":"International Commercial Terms","x-order":8}},"additionalProperties":false,"x-order":12},"tax":{"type":"object","description":"Tax adjustments from original order","properties":{"amount":{"type":"number","multipleOf":0.01,"x-order":1},"currency":{"description":"See public DataShift EDI documentation for allowed values.","x-order":2}},"additionalProperties":false,"x-order":13},"total":{"type":"object","description":"Order total adjustments","properties":{"amount":{"type":"number","multipleOf":0.01,"x-order":1},"currency":{"description":"See public DataShift EDI documentation for allowed values.","x-order":2}},"additionalProperties":false,"x-order":14},"contacts":{"type":"array","description":"Contact information for various roles","items":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["shipFrom","shipTo","billTo","technicalSupport","customerService","sales","buyer"],"x-order":1},"name":{"type":"string","x-order":2},"email":{"type":"string","format":"email","x-order":3},"phone":{"type":"string","x-order":4}},"additionalProperties":false},"x-order":15},"billTo":{"type":"object","description":"Billing address","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":{"description":"See public DataShift EDI documentation for allowed values.","x-order":7},"phone":{"type":"string","x-order":8},"email":{"type":"string","x-order":9}},"additionalProperties":false,"x-order":16},"shipTo":{"type":"object","description":"Shipping address","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":{"description":"See public DataShift EDI documentation for allowed values.","x-order":8},"phone":{"type":"string","x-order":9},"email":{"type":"string","x-order":10}},"additionalProperties":false,"x-order":17},"comments":{"type":"string","maxLength":2000,"description":"Human-readable notes about this confirmation","x-order":18},"lineItems":{"type":"array","minItems":0,"items":{"type":"object","required":["lineNumber"],"properties":{"lineNumber":{"type":"integer","description":"Line number from the original purchase order.","x-order":1},"uniqueLineKey":{"type":"string","description":"Stable DataShift line key from the original purchase order. This must reference the original line's uniqueLineKey found in the PurchaseOrder document for proper correlation. If the original document did not provide a uniqueLineKey, an exception will be raised during processing, forcing the user to manually correlate the line or update the acknowledgement with the correct uniqueLineKey.","x-order":2},"statusType":{"type":"string","enum":["accept","reject","backordered","unknown","detail","allDetail"],"description":"System-calculated status based on tolerance validation. Not mappable by sender — use supplierLineStatus for sender intent.","x-order":3},"supplierLineStatus":{"type":"string","enum":["accept","reject","backordered","unknown"],"description":"Supplier-provided line acknowledgement intent.","x-enum-descriptions":{"accept":"The line is accepted.","reject":"The line is rejected.","backordered":"The line is backordered.","unknown":"The supplier cannot confirm the line status."},"x-order":4},"supplierItemId":{"type":"string","description":"Supplier's part/item number","x-order":5},"buyerItemId":{"type":"string","description":"Buyer's part/item number","x-order":6},"gtin":{"type":"string","pattern":"^[0-9]{8,14}$","description":"Global Trade Item Number (GTIN-8, GTIN-12, GTIN-13, or GTIN-14)","x-order":7},"description":{"type":"string","description":"Item description","x-order":8},"originalQuantity":{"type":"number","multipleOf":0.01,"description":"Quantity originally ordered","x-order":9},"confirmedQuantity":{"type":"number","multipleOf":0.01,"description":"Quantity the supplier confirms for this line.","x-order":10},"quantityBackordered":{"type":"number","multipleOf":0.01,"description":"Quantity backordered by the supplier","x-order":11},"unitOfMeasure":{"description":"See public DataShift EDI documentation for allowed values.","x-order":12},"unitPrice":{"type":"number","multipleOf":0.01,"description":"Confirmed unit price (if different from order)","x-order":13},"currency":{"description":"See public DataShift EDI documentation for allowed values.","x-order":14},"unitPriceUom":{"type":"string","description":"Unit of measure for price basis (e.g., price per 100)","x-order":15},"classificationDomain":{"type":"string","description":"Product classification domain","x-order":16},"classificationCode":{"type":"string","description":"Product classification code","x-order":17},"shipmentDate":{"type":"string","format":"date-time","description":"Expected or actual shipment date for this line","x-order":18},"deliveryDate":{"type":"string","format":"date-time","description":"Expected delivery date for this line","x-order":19},"rejectionReason":{"type":"string","description":"Reason for rejection or backorder","x-order":20},"substitution":{"type":"object","description":"Substitute item details if supplier is offering an alternative","properties":{"supplierItemId":{"type":"string","x-order":1},"buyerItemId":{"type":"string","x-order":2},"description":{"type":"string","x-order":3},"quantity":{"type":"number","multipleOf":0.01,"x-order":4},"unitOfMeasure":{"description":"See public DataShift EDI documentation for allowed values.","x-order":5},"unitPrice":{"type":"number","multipleOf":0.01,"x-order":6}},"additionalProperties":false,"x-order":21},"comments":{"type":"string","maxLength":500,"description":"Line-level comments","x-order":22}},"additionalProperties":false},"description":"Acknowledgement lines. Each line should correlate to the original PO line using uniqueLineKey where available.","x-order":19},"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":20}},"additionalProperties":false,"description":"Business payload for the acknowledgement.","x-order":5}},"additionalProperties":false,"examples":[{"docType":"POA","correlationId":"347ed126-1456-4f0e-84f4-b16f018f6e61","timestamp":"2026-05-16T01:00:00Z","metadata":{"sourceLanguage":"cxml","sourceVersion":"1.2.067"},"data":{"poaNumber":"POA-10001","confirmationType":"accept","noticeDate":"2026-05-16T01:00:00Z","poNumber":"PO-10001","poVersion":"1","deliveryDate":"2026-05-23T00:00:00Z","lineItems":[{"lineNumber":1,"uniqueLineKey":"PO-10001-1","supplierLineStatus":"accept","supplierItemId":"SUP-001","buyerItemId":"BUY-001","originalQuantity":12,"confirmedQuantity":12,"unitOfMeasure":"EA","unitPrice":25,"currency":"AUD"}],"extrinsics":{"supplierPortalReference":"ACK-7788"}}}]}