
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
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 --
numberup to 1.0.7,integerfrom 1.0.8 (16 June 2026)Purchase Order Acknowledgement --
numberup to 1.0.6,integerfrom 1.0.7 (21 May 2026)Invoice --
numberup to 1.0.8,integerfrom 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 OrderunitPrice (rate) ·
lineAmountExTax (minor) ·
lineAmountInclTax (minor) ·
totalAmountExTax (minor) ·
totalTaxAmount (minor) ·
totalAmountInclTax (minor)
Purchase Order AcknowledgementunitPrice (rate) ·
lineTotalExTax (minor) ·
lineTotalInclTax (minor)
InvoiceunitPrice (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.
