DataShift EDI API
DataShift EDI exposes the public canonical contracts used to exchange order, acknowledgement, shipment, and invoice payloads between buyers, suppliers, and downstream business systems. Use this reference when building an integration, validating payloads, investigating failed documents, or mapping a partner format into the DataShift canonical model. ## What This Reference Covers - Public JSON Schema contracts for the supported canonical EDI documents. - Human-readable document guidance for lifecycle position, required fields, validation notes, mapping notes, and common implementation pitfalls. - Field-level models generated from the same public contracts used by the schema download endpoints. - Operational guidance for validation errors, retries, idempotency, webhook delivery, and versioning. ## Document Lifecycle The canonical lifecycle starts with a Purchase Order (PO), continues through a Purchase Order Acknowledgement (POA), may include one or more Advance Shipping Notices (ASN), and is reconciled by an Invoice (INV). Not every trading relationship uses every document, but when documents are present they should preserve the same business references and line correlation keys across the lifecycle. ## Canonical Payload Shape Every canonical document uses the same top-level envelope: `docType`, `correlationId`, `timestamp`, `metadata`, and `data`. The `data` object contains the business payload for the specific document type. Partner-specific values that are not part of the canonical core belong in `extrinsics`. ## Correlation Use `correlationId` to trace a document across systems and support workflows. DataShift manages `data.lineItems[].uniqueLineKey` for connector-side line correlation where needed; external senders should provide the business line references required by the document page. Treat array position, item description, and display line number as presentation details unless the document page says otherwise. ## Validation Expectations Validate payloads against the JSON Schema before sending test or production traffic. Required fields, enum values, numeric precision, date formats, and `additionalProperties: false` constraints are part of the public contract. Validation errors should be logged with `correlationId`, business document number, document type, and affected line key where available. ## Schemas And Models The Schemas section exposes downloadable JSON Schema contracts. The Models section expands each canonical object and nested component. Schema properties are ordered to match the public contract rather than alphabetically. ## Events And Errors Webhook and error documentation describes delivery expectations, retries, idempotency, validation failures, and manual-resolution cases. Treat webhook delivery as at-least-once and make receivers idempotent before enabling production event handling. ## Recommended Starting Point Start with the document page for the payload you are implementing, then inspect the corresponding model and schema download endpoint. For a full order lifecycle implementation, work in this order: PO, POA, ASN, then INV. Validate representative examples locally before sending test traffic, and include `correlationId`, business document numbers, and line keys in your logs. **Next:** [Schemas - Download Purchase Order schema](#tag/Schemas/operation/getPurchaseOrderSchema)
Returns the immutable public JSON Schema contract for Purchase Order canonical payloads at schema version 1.0.11.
Purchase Order JSON Schema
- response
Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.
docType*unknownCanonical document type. For purchase orders this value is PO.
correlationId*stringStable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.
uuidtimestamp*stringUTC timestamp indicating when DataShift created the canonical document.
date-timemetadata*Public source metadata retained for integration troubleshooting without exposing tenant or credential details.
data*Business payload for the purchase order.
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.11/schemas/purchase-order.schema.json'{ "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" } }}Purchase Order canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.
Purchase Order documentation page
response?stringtext/htmlcurl -X GET 'https://docs.datashift.com.au/edi/schemas/purchase-order'"string"Returns the immutable public JSON Schema contract for Purchase Order Acknowledgement canonical payloads at schema version 1.0.13.
Purchase Order Acknowledgement JSON Schema
- response
Public canonical Purchase Order Acknowledgement contract used by suppliers to accept, reject, backorder, or qualify purchase order lines.
docType*unknownCanonical document type. For purchase order acknowledgements this value is POA.
correlationId*stringStable UUID used to trace this acknowledgement against the purchase order lifecycle.
uuidtimestamp*stringUTC timestamp indicating when DataShift created the canonical acknowledgement.
date-timemetadata*Public source metadata retained for integration troubleshooting.
data*Business payload for the acknowledgement.
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.13/schemas/purchase-order-acknowledgement.schema.json'{ "docType": "POA", "correlationId": "347ed126-1456-4f0e-84f4-b16f018f6e61", "timestamp": "2026-05-16T01:00:00Z", "metadata": { "sourceLanguage": "cxml", "sourceVersion": "1.0.13", "payloadId": "poa-example-10001", "userAgent": "DataShift Edge v1" }, "data": { "poaNumber": "POA-10001", "confirmationType": "accept", "noticeDate": "2026-05-16T01:00:00Z", "poNumber": "PO-10001", "poVersion": "1", "deliveryDate": "2026-05-23T00:00:00Z", "shipping": { "amount": 10000, "currency": "AUD" }, "subtotal": { "amount": 160000, "currency": "AUD" }, "tax": { "amount": 16000, "currency": "AUD" }, "total": { "amount": 176000, "currency": "AUD" }, "lineItems": [ { "lineNumber": 1, "uniqueLineKey": "PO-10001-1", "supplierLineStatus": "accept", "supplierItemId": "SUP-001", "buyerItemId": "BUY-001", "originalQuantity": 10, "confirmedQuantity": 10, "unitOfMeasure": "EA", "unitPrice": 1500000, "currency": "AUD", "lineTotalExTax": 150000, "lineTotalInclTax": 165000 } ], "extrinsics": { "supplierPortalReference": "ACK-7788" } }}Purchase Order Acknowledgement canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.
Purchase Order Acknowledgement documentation page
response?stringtext/htmlcurl -X GET 'https://docs.datashift.com.au/edi/schemas/purchase-order-acknowledgement'"string"Returns the immutable public JSON Schema contract for Advance Shipping Notice canonical payloads at schema version 1.0.8.
Advance Shipping Notice JSON Schema
- response
Public canonical Advance Shipping Notice contract used to describe goods shipped against one or more purchase orders.
docType*unknownCanonical document type. For advance shipping notices this value is ASN.
correlationId*stringStable UUID used to trace this shipment notice through fulfilment and invoice workflows.
uuidtimestamp*stringUTC timestamp indicating when DataShift created the canonical shipment notice.
date-timemetadata*Public source metadata retained for integration troubleshooting.
data*Business payload for the shipment notice.
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.8/schemas/advance-shipping-notice.schema.json'{ "docType": "ASN", "correlationId": "cab103da-1713-4976-80c4-f1b47f62b523", "timestamp": "2026-05-16T02:00:00Z", "metadata": { "sourceLanguage": "cxml", "sourceVersion": "1.0.8", "payloadId": "asn-example-10001", "userAgent": "DataShift Edge v1" }, "data": { "dispatchAdviceNumber": "ASN-10001", "poNumber": "PO-10001", "noticeDate": "2026-05-16T02:00:00Z", "shipmentDate": "2026-05-16T03:00:00Z", "deliveryDate": "2026-05-23T00:00:00Z", "fulfillmentType": "partial", "carrier": { "name": "Example Freight", "serviceType": "Road" }, "shipFrom": { "addressee": "Example Supplier Warehouse", "street1": "20 Supplier Street", "city": "Adelaide", "state": "SA", "postalCode": "5000", "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", "quantity": 6, "unitOfMeasure": "EA" } ], "packages": [ { "packageId": "CARTON-1", "sscc": "193123456789012345", "lineReferences": [ { "uniqueLineKey": "PO-10001-1", "quantity": 6, "unitOfMeasure": "EA" } ] } ], "extrinsics": { "warehouseWave": "WAVE-42" } }}Advance Shipping Notice canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.
Advance Shipping Notice documentation page
response?stringtext/htmlcurl -X GET 'https://docs.datashift.com.au/edi/schemas/advance-shipping-notice'"string"Returns the immutable public JSON Schema contract for Invoice canonical payloads at schema version 1.0.12.
Invoice JSON Schema
- response
Public canonical Invoice contract used to request payment for goods or services supplied against purchase orders and shipments.
docType*unknownCanonical document type. For invoices this value is INV.
correlationId*stringStable UUID used to trace this invoice through order, shipment, and payment workflows.
uuidtimestamp*stringUTC timestamp indicating when DataShift created the canonical invoice.
date-timemetadata*Public source metadata retained for integration troubleshooting.
data*Business payload for the invoice.
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.12/schemas/invoice.schema.json'{ "docType": "INV", "correlationId": "43e7580b-e592-46bb-a3d0-dbf8997758d9", "timestamp": "2026-05-16T04:00:00Z", "metadata": { "sourceLanguage": "cxml", "sourceVersion": "1.0.12", "payloadId": "inv-example-10001", "userAgent": "DataShift Edge v1" }, "data": { "invoiceNumber": "INV-10001", "poNumber": "PO-10001", "invoiceDate": "2026-05-16T04:00:00Z", "dueDate": "2026-06-15T00:00:00Z", "purpose": "standard", "poReferences": [ { "poNumber": "PO-10001", "poVersion": "1" } ], "supplier": { "id": "SUPPLIER-AU", "name": "Example Supplier Pty Ltd", "taxRegistrations": { "type": "ABN", "value": "98765432109" }, "address": { "addressee": "Example Supplier Pty Ltd", "street1": "20 Supplier Street", "city": "Adelaide", "state": "SA", "postalCode": "5000", "country": "AU" } }, "billTo": { "addressee": "Example Buyer Accounts", "street1": "1 Market Street", "city": "Sydney", "state": "NSW", "postalCode": "2000", "country": "AU" }, "lineItems": [ { "invoiceLineNumber": 1, "uniqueLineKey": "PO-10001-1", "poLineReference": 1, "supplierItemId": "SUP-001", "buyerItemId": "BUY-001", "description": "Example product", "quantity": 10, "unitOfMeasure": "EA", "unitPrice": 1500000, "subtotal": 150000, "taxAmount": 15000, "currency": "AUD" } ], "invoiceSummary": { "taxAmount": 15000, "grossAmount": 165000, "netAmount": 165000, "dueAmount": 165000, "currency": "AUD" }, "extrinsics": { "accountsReference": "AP-10001" } }}Invoice canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.
Invoice documentation page
response?stringtext/htmlcurl -X GET 'https://docs.datashift.com.au/edi/schemas/invoice'"string"