DataShift Logo
Schema Release Notes | PO 1.0.10 | POA 1.0.9 | INV 1.0.11
developeredischemaschangelogrelease-notes

Schema Release Notes | PO 1.0.10 | POA 1.0.9 | INV 1.0.11

Release notes for Purchase Order 1.0.10, Purchase Order Acknowledgement 1.0.9, and Invoice 1.0.11 - Documenting the integer money encoding for all monetary fields and how to resolve schemas dynamically.

Sam

Developer

18 June 20263 min read

Released versions

  • Purchase Order -- 1.0.10 -- 17 June 2026

  • Purchase Order Acknowledgement -- 1.0.9 -- 17 June 2026

  • Invoice -- 1.0.11 -- 17 June 2026

  • Advance Shipping Notice -- 1.0.6 -- unchanged (no monetary fields)


Background

This release is the final step in a migration of monetary fields from number to integer across all document types. The type changes were shipped at different points over the past month. These releases bring the published examples in line with the current encoding, making the integer scale unambiguous.

The transition versions by document:

  • Purchase Order -- number up to 1.0.7, integer from 1.0.8 (16 June 2026)

  • Purchase Order Acknowledgement -- number up to 1.0.6, integer from 1.0.7 (21 May 2026)

  • Invoice -- number up to 1.0.8, integer from 1.0.9 (16 June 2026)

If your integration is on a version prior to those transition points, decimal values are still schema-valid for you. Upgrading past those versions requires migrating to integer encoding before sending documents.


What the old encoding looked like

Before each transition version, monetary fields were type: number and examples used raw decimal dollar amounts:

"unitPrice": 25,
"lineAmountExTax": 300,
"lineAmountInclTax": 330

These represented $25.00, $300.00, $330.00. That encoding is no longer valid on current schema versions.


What changed

All monetary fields now use integer encoding. Two scales apply depending on the field type, defined via the x-datashift-money annotation in the schema.

Unit price and rate fields -- multiply by 10,000

$150.00 AUD -> unitPrice: 1500000
$0.50 AUD   -> unitPrice: 5000

Settlement amounts -- multiply by 100 (ISO 4217 minor units)

$1500.00 AUD -> lineAmountExTax: 150000
$150.00 AUD  -> taxAmount: 15000
$1650.00 AUD -> lineAmountInclTax: 165000

AUD has 2 decimal places, so 1 minor unit = $0.01. The scale is always determined by the currency's ISO 4217 exponent, not hardcoded to 100. For KWD (exponent 3), 1 minor unit = $0.001.

Worked example -- 10 units at $150.00 each, 10% GST

"lineItems": [{
  "quantity": 10,
  "unitPrice": 1500000,
  "lineAmountExTax": 150000,
  "lineAmountInclTax": 165000
}],
"totals": {
  "totalAmountExTax": 150000,
  "totalTaxAmount": 15000,
  "totalAmountInclTax": 165000
}

Verification: 1500000 / 10000 * 10 = $1500.00 -> 150000


x-datashift-money annotation

Every monetary field carries an x-datashift-money annotation via its $ref definition. You can use this to identify money fields programmatically and apply the correct scale.

"rate" -- unit price scale (×10,000)

{
  "description": "Integer unit price at ISO 4217 minor-unit scale + 2 (e.g. AUD, exponent 2 -> 1/10000: 5.2185 -> 52185).",
  "type": "integer",
  "x-datashift-money": "rate"
}

"minor" -- settlement amount scale (×100 for AUD)

{
  "description": "Integer amount in ISO 4217 minor units (e.g. AUD in cents, exponent 2: 561.02 -> 56102).",
  "type": "integer",
  "x-datashift-money": "minor"
}

To decode a rate field: divide by 10 ^ (currencyExponent + 2).

To decode a minor field: divide by 10 ^ currencyExponent.

Currency exponents follow ISO 4217 -- AUD, USD, and EUR are all exponent 2.


Fields by document

Purchase Order
unitPrice (rate) ·

lineAmountExTax (minor) ·

lineAmountInclTax (minor) ·

totalAmountExTax (minor) ·

totalTaxAmount (minor) ·

totalAmountInclTax (minor)

Purchase Order Acknowledgement
unitPrice (rate) ·

lineTotalExTax (minor) ·

lineTotalInclTax (minor)

Invoice
unitPrice (rate) ·

subtotal (minor) ·

taxAmount (minor) ·

grossAmount (minor) ·

netAmount (minor) ·

dueAmount (minor)


Version history

The full release history for each document is browsable at:

https://docs.datashift.com.au/edi/schemas/purchase-order
https://docs.datashift.com.au/edi/schemas/purchase-order-acknowledgement
https://docs.datashift.com.au/edi/schemas/invoice
https://docs.datashift.com.au/edi/schemas/advance-shipping-notice

Each page lists all published versions with their immutable artifact links and a field-level diff from the previous version.


Questions

Contact the DataShift integration team or open a support ticket if you have questions about encoding money values or migrating an existing integration to these schemas.