DataShift
EdiApi reference

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)

GET
/contracts/releases/1.0.11/schemas/purchase-order.schema.json

Returns the immutable public JSON Schema contract for Purchase Order canonical payloads at schema version 1.0.11.

Response Body

Purchase Order JSON Schema

  1. response

Public canonical Purchase Order contract used to represent a buyer's order before acknowledgement, shipment, and invoice events.

docType*unknown

Canonical document type. For purchase orders this value is PO.

correlationId*string

Stable UUID used to trace this purchase order through downstream acknowledgements, shipments, invoices, and support workflows.

Formatuuid
timestamp*string

UTC timestamp indicating when DataShift created the canonical document.

Formatdate-time
metadata*

Public source metadata retained for integration troubleshooting without exposing tenant or credential details.

data*

Business payload for the purchase order.

Example Request
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.11/schemas/purchase-order.schema.json'
Example Response200
{  "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

GET
/schemas/purchase-order

Purchase Order canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.

Response Body

Purchase Order documentation page

response?stringtext/html
Example Request
curl -X GET 'https://docs.datashift.com.au/edi/schemas/purchase-order'
Example Response200
"string"
GET
/contracts/releases/1.0.13/schemas/purchase-order-acknowledgement.schema.json

Returns the immutable public JSON Schema contract for Purchase Order Acknowledgement canonical payloads at schema version 1.0.13.

Response Body

Purchase Order Acknowledgement JSON Schema

  1. response

Public canonical Purchase Order Acknowledgement contract used by suppliers to accept, reject, backorder, or qualify purchase order lines.

docType*unknown

Canonical document type. For purchase order acknowledgements this value is POA.

correlationId*string

Stable UUID used to trace this acknowledgement against the purchase order lifecycle.

Formatuuid
timestamp*string

UTC timestamp indicating when DataShift created the canonical acknowledgement.

Formatdate-time
metadata*

Public source metadata retained for integration troubleshooting.

data*

Business payload for the acknowledgement.

Example Request
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.13/schemas/purchase-order-acknowledgement.schema.json'
Example Response200
{  "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"    }  }}
GET
/schemas/purchase-order-acknowledgement

Purchase Order Acknowledgement canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.

Response Body

Purchase Order Acknowledgement documentation page

response?stringtext/html
Example Request
curl -X GET 'https://docs.datashift.com.au/edi/schemas/purchase-order-acknowledgement'
Example Response200
"string"
GET
/contracts/releases/1.0.8/schemas/advance-shipping-notice.schema.json

Returns the immutable public JSON Schema contract for Advance Shipping Notice canonical payloads at schema version 1.0.8.

Response Body

Advance Shipping Notice JSON Schema

  1. response

Public canonical Advance Shipping Notice contract used to describe goods shipped against one or more purchase orders.

docType*unknown

Canonical document type. For advance shipping notices this value is ASN.

correlationId*string

Stable UUID used to trace this shipment notice through fulfilment and invoice workflows.

Formatuuid
timestamp*string

UTC timestamp indicating when DataShift created the canonical shipment notice.

Formatdate-time
metadata*

Public source metadata retained for integration troubleshooting.

data*

Business payload for the shipment notice.

Example Request
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.8/schemas/advance-shipping-notice.schema.json'
Example Response200
{  "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

GET
/schemas/advance-shipping-notice

Advance Shipping Notice canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.

Response Body

Advance Shipping Notice documentation page

response?stringtext/html
Example Request
curl -X GET 'https://docs.datashift.com.au/edi/schemas/advance-shipping-notice'
Example Response200
"string"

Download Invoice schema

GET
/contracts/releases/1.0.12/schemas/invoice.schema.json

Returns the immutable public JSON Schema contract for Invoice canonical payloads at schema version 1.0.12.

Response Body

Invoice JSON Schema

  1. response

Public canonical Invoice contract used to request payment for goods or services supplied against purchase orders and shipments.

docType*unknown

Canonical document type. For invoices this value is INV.

correlationId*string

Stable UUID used to trace this invoice through order, shipment, and payment workflows.

Formatuuid
timestamp*string

UTC timestamp indicating when DataShift created the canonical invoice.

Formatdate-time
metadata*

Public source metadata retained for integration troubleshooting.

data*

Business payload for the invoice.

Example Request
curl -X GET 'https://docs.datashift.com.au/edi/contracts/releases/1.0.12/schemas/invoice.schema.json'
Example Response200
{  "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

GET
/schemas/invoice

Invoice canonical document documentation page with lifecycle position, key fields, public schema download, and implementation pitfalls.

Response Body

Invoice documentation page

response?stringtext/html
Example Request
curl -X GET 'https://docs.datashift.com.au/edi/schemas/invoice'
Example Response200
"string"