Australia
The Australian Taxation Office (ATO) became the Australian Peppol Authority on behalf of the Australian Government on 31 October 2019. The ATO defines the Australian requirements for use of the Peppol standards and administers network governance, including the accreditation of Peppol service providers in Australia.
Overviewโ
| Aspect | Details |
|---|---|
| Peppol Authority | Australian Taxation Office (ATO), since 31 October 2019 |
| Specification | PINT A-NZ Billing Process v1.1.3 |
| Self-billing | PINT A-NZ Self-billing Process v1.1.3 (optional specification) |
| Mandate status | Mandatory for Commonwealth agencies |
| Currency | AUD (Australian Dollar) |
| Tax system | GST (10%) |
| Participant scheme | 0151 (ABN) |
OpenPeppol's Australian country profile records that the older A-NZ Peppol BIS Billing (invoice) specification was mandatory until 15 November 2024, and the PINT A-NZ Billing specification is mandatory from 15 November 2024. If you are still emitting the legacy A-NZ customization ID, it is no longer the accepted profile.
ATO adoption targets for government agenciesโ
These are adoption targets the ATO has set for Australian Government agencies. They are targets for agencies, and not an obligation on suppliers. If you sell to an Australian government buyer, nothing on this list is a deadline you have to meet.
| ATO policy | Applies to |
|---|---|
| The Australian Taxation Office is the Peppol Authority for Australia | Network governance |
| A target for Australian Government agencies to receive 30% of invoices via eInvoicing by 1 July 2026 | Commonwealth agencies |
| Automated processing of eInvoices targeted by December 2026 | Commonwealth agencies |
| The B2G mandate has been live since July 2022 | Commonwealth agencies |
Source: the ATO's eInvoicing pages.
The 15 November 2024 date in the admonition above is a specification mandate โ which Peppol profile a document must use to be accepted at all. The dates in this section are agency adoption targets โ how much of an agency's own invoice intake the ATO expects to arrive electronically, and by when. Reading "30% by 1 July 2026" as a deadline you as a supplier must meet would be a misreading.
eInvoicing is not mandatory for Australian businesses in general. OpenPeppol's Australian country profile states this directly: "eInvoicing is not mandatory for Australian businesses, but there are some mandates for government agencies."
Identifier schemesโ
Australian Business Number (ABN)โ
The primary identifier for Australian businesses:
| Scheme ID | Scheme name | Format |
|---|---|---|
0151 | AU:ABN | 11 digits |
<cbc:EndpointID schemeID="0151">51824753556</cbc:EndpointID>
On other schemes. PINT A-NZ permits the ISO/IEC 6523 schemes in its ICD code list, so an
Australian party is not technically restricted to 0151. GoRoute treats 0151 as the scheme it
uses to infer Australia, not as a mandate โ unlike Oman, Australia has no single mandated
participant scheme in GoRoute's validator. In practice, use 0151 for Australian endpoints unless
your trading partner has told you otherwise.
The ABN has to reach us, or the document failsโ
PINT A-NZ requires the legal registration identifier of both the seller and the buyer: the ABN
for an Australian party, the NZBN for a New Zealand one. GoRoute writes it into the document for
you, as cac:PartyLegalEntity/cbc:CompanyID with schemeID 0151 for Australia and 0088 for
New Zealand. But it can only write a value you have actually sent, so this is a requirement on
your payload.
Where we look, in this order, for each party โ the seller and the buyer separately:
registration_number;peppol_id, but only when the Peppol identifier is in that same scheme (0151:for an Australian party,0088:for a New Zealand one);vat_number, but only when the value has the right shape โ 11 digits for an ABN, 13 for an NZBN.
The first of the three that yields a value wins. Spaces, full stops and hyphens are removed before
the check, and a leading ABN on an Australian value is dropped, so ABN 51 824 753 556 is read
as 51824753556.
The party's address country decides which scheme is used, and whether anything is written at
all. address.country must be AU or NZ. A party whose address has no country, or a country
that is neither of those two, gets no legal registration identifier written โ and the document
then fails the rules below, even if you did send an ABN.
| Rule identifier | What it requires |
|---|---|
aligned-ibr-001-aunz | The seller's ABN, when the seller's country is Australia |
aligned-ibr-004-aunz | The buyer's ABN, when the buyer's country is Australia |
aligned-ibr-002-aunz | The seller's NZBN, when the seller's country is New Zealand |
aligned-ibr-005-aunz | The buyer's NZBN, when the buyer's country is New Zealand |
The practical check: send the ABN in registration_number for both parties, set each party's
address.country, and validate before you send.
Before this date GoRoute never wrote the legal registration identifier into an A-NZ document,
and wrote every tax category under the VAT tax scheme rather than GST. Both are things the
A-NZ rules check, so every Australian and New Zealand invoice, credit note and self-billing
document our renderer produced failed the PINT A-NZ Schematron โ whether it came from the API, a
store app or a connector. This was our own fault, not a change in the specification and not
anything you did wrong. We fixed it on 27 September 2026, and it is fixed on every GoRoute
service. If a document of yours was rejected on aligned-ibr-001/002/004/005-aunz or
aligned-ibrp-047/048/050/051-aunz in recent weeks, this is why; re-send it and it should pass,
provided the ABN or NZBN reaches us as described above.
A-NZ Peppol profiles (PINT)โ
Australia and New Zealand share the Peppol International (PINT) A-NZ specialisation. GoRoute resolves both AU and NZ receivers to these profiles.
Billing (invoice and credit note)โ
<cbc:CustomizationID>urn:peppol:pint:billing-1@aunz-1</cbc:CustomizationID>
<cbc:ProfileID>urn:peppol:bis:billing</cbc:ProfileID>
| Document | Document type ID |
|---|---|
| Invoice | urn:...:Invoice-2::Invoice##urn:peppol:pint:billing-1@aunz-1::2.1 |
| Credit Note | urn:...:CreditNote-2::CreditNote##urn:peppol:pint:billing-1@aunz-1::2.1 |
Self-billing (RCTI)โ
<cbc:CustomizationID>urn:peppol:pint:selfbilling-1@aunz-1</cbc:CustomizationID>
<cbc:ProfileID>urn:peppol:bis:selfbilling</cbc:ProfileID>
| Document | Document type ID |
|---|---|
| Self-billing Invoice | urn:...:Invoice-2::Invoice##urn:peppol:pint:selfbilling-1@aunz-1::2.1 |
| Self-billing Credit Note | urn:...:CreditNote-2::CreditNote##urn:peppol:pint:selfbilling-1@aunz-1::2.1 |
OpenPeppol's Australian country profile lists the A-NZ self-billing specification as optional, so confirm your counterparty's access point supports it before relying on it. GoRoute resolves A-NZ self-billing documents to the profile above; this page documents A-NZ billing validation only, and does not claim end-to-end self-billing Schematron coverage.
Since 27 September 2026 the self-billing rule pack is applied to self-billing documents and no longer to ordinary invoices and credit notes. Before that date the two packs were not told apart: an ordinary A-NZ invoice was also run through the self-billing rules, and a self-billing document through the billing rules, so both collected rule failures that had nothing to do with their content.
Recipient Created Tax Invoices (RCTI)โ
An RCTI is a self-billing document, not a billing document with a different type code. It belongs on the self-billing profile above, where the buyer is the sender and the seller is the receiver.
The PINT A-NZ Self-billing Invoice document name code list contains exactly one code:
<cbc:CustomizationID>urn:peppol:pint:selfbilling-1@aunz-1</cbc:CustomizationID>
<cbc:ProfileID>urn:peppol:bis:selfbilling</cbc:ProfileID>
<cbc:InvoiceTypeCode>389</cbc:InvoiceTypeCode>
<!-- 389 = Self-billed invoice: an invoice the invoicee is producing instead of the seller -->
Tax (GST) requirementsโ
Australian and New Zealand parties use GST as the TaxScheme ID, not VAT.
GoRoute writes GST for you. When a document resolves to a PINT A-NZ profile โ billing or
self-billing โ every tax category it renders, on each line, in the tax breakdown and on a party's
own tax registration, is written under cac:TaxScheme/cbc:ID GST. You do not have to set it,
and you cannot be caught out by the VAT default in the invoice model.
Why it matters: the A-NZ rules only read a tax category that sits under GST. A category
written under VAT is not read as a different tax; it is read as no category at all, and the
document fails aligned-ibrp-047-aunz (the tax breakdown has no category code),
aligned-ibrp-048-aunz (no category rate), aligned-ibrp-050-aunz (a line has no category code)
and aligned-ibrp-051-aunz (the category tax amount does not follow from the taxable amount and
the rate). If you build your own UBL and send it to us, this is the mistake to check for first.
Standard GST rateโ
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>10.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>GST</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
GST category codesโ
From the PINT A-NZ aligned tax category code list:
| Code | Name / description |
|---|---|
S | Standard rate |
Z | Zero rated goods |
E | Exempt from tax |
G | Free export item, tax not charged |
O | Outside scope of tax |
GST-free exampleโ
<cac:TaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0.00</cbc:Percent>
<cbc:TaxExemptionReason>GST-free supply</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>GST</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
PINT A-NZ validation โ what GoRoute actually runsโ
This section describes GoRoute's real validation behaviour for A-NZ documents.
1. GoRoute's own Australian country checksโ
GoRoute applies country checks to a canonical invoice and returns these codes. They
come back from POST /api/v1/invoices/validate, in errors[].code and warnings[].code.
| Code on the wire | Severity | Field | Meaning |
|---|---|---|---|
COUNTRY_AU_001 | Error | buyer.vat_number | Australian Business Number (ABN) must be exactly 11 digits |
COUNTRY_AU_002 | Error | buyer.vat_number | Australian Business Number (ABN) checksum is invalid |
COUNTRY_AU_003 | Error | buyer.vat_number | ABN is required for Australian Peppol invoices |
COUNTRY_AU_004 | Warning | currency | Australian domestic invoices typically use AUD |
The COUNTRY_ prefix is part of the identifier you receive: the country validator raises
AU_001 internally and the invoice validator re-emits it as COUNTRY_AU_001. Match on the
prefixed form.
Note that COUNTRY_AU_004 is a warning โ a non-AUD Australian invoice is flagged, not
rejected.
These codes are produced by the canonical-invoice validator, so they appear on
POST /api/v1/invoices/validate. POST /api/v1/invoices/validate/deep returns the
Schematron compliance-gate result only โ its errors[] and warnings[] come from the
gate, not from this country layer. Call both if you want both sets.
The ABN checksum is the published ATO modulus-89 algorithm: subtract 1 from the first digit, then
apply the weights 10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 across the 11 digits; the weighted sum
must be divisible by 89.
2. PINT detectionโ
GoRoute inspects cbc:CustomizationID. An ID of the form
urn:peppol:pint:billing-<n>@aunz-<n> โ or urn:peppol:pint:selfbilling-<n>@aunz-<n> โ is
detected as PINT jurisdiction aunz.
3. CEN EN16931 is not run on PINT documentsโ
This is the most important thing to know if you are comparing rule IDs against an EU invoice.
For a detected PINT document, GoRoute runs the PINT A-NZ Schematron pack instead of CEN
EN16931 โ not in addition to it. CEN EN16931 assumes an EU VAT context, and the PINT pack already
incorporates the adapted EN16931 rules. So an A-NZ invoice will never return a bare BR- /
BR-CO- CEN error; it returns PINT A-NZ rule IDs.
The pack is the official OpenPeppol one, compiled into the GoRoute image at build time from
https://docs.peppol.eu/poac/aunz/pint-aunz/resources.zip and
https://docs.peppol.eu/poac/aunz/pint-aunz-sb/resources.zip.
4. Rule identifiers you will seeโ
GoRoute returns the identifier exactly as the Schematron states it, and the Schematron states it
in lower case. A client that matches on IBR-120 will match nothing. Match on ibr-120, or
lower-case the identifier before you compare it.
Two families exist, and the second is the one that carries the Australian and New Zealand rules. The counts are the distinct identifiers in the official v1.1.3 billing pack.
| Family | Count | Covers |
|---|---|---|
ibr-nnn | 109 | Core business rules |
ibr-sr-nn | 33 | Syntax and semantic restriction rules |
ibr-cl-nn | 18 | Code list rules |
ibr-co-nn | 10 | Calculation and consistency rules |
aligned-ibrp-nnn | 21 | The EN 16931 rules as PINT aligns them, applied to every jurisdiction |
aligned-ibrp-nnn-aunz | 7 | The same, where A-NZ states its own version |
aligned-ibr-nnn-aunz | 4 | The A-NZ jurisdiction rules โ the ABN and NZBN requirements in the table above |
aligned-ibrp-s-nn-aunz, -z-, -e-, -g-, -o- | 36 | One set per GST category: standard, zero-rated, exempt, free export, outside scope |
aligned-ibrp-cl-nn, aligned-ibrp-sr-nn, with and without -aunz | 6 | Aligned code list and restriction rules |
How to read one. An identifier beginning aligned- comes from the jurisdiction-aligned pack
rather than the core rules, and one ending -aunz is specific to Australia and New Zealand rather
than shared with every PINT jurisdiction. So aligned-ibr-001-aunz is an A-NZ-only rule, while
ibr-120 is a core rule.
The self-billing pack uses the same families and adds aligned-ibrp-nnn-aunz-sb and
ibr-cl-nn-aunz-sb for rules that only apply to a self-billing document.
The Australian identifier rule is ibr-120, quoted from the official PINT A-NZ invoice
business rules:
Australian Business Number (ABN) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061).
5. Severity gateโ
| Severity | Result |
|---|---|
fatal | Reject โ is_valid: false |
error | Reject โ is_valid: false |
warning | Pass with a flag โ is_valid: true, logged |
6. If the PINT pack is unavailableโ
If a document is detected as PINT A-NZ but no compiled PINT XSLT is available at runtime,
GoRoute falls back to CEN EN16931 + Peppol BIS 3.0 validation. The rule IDs you get
back change: you will see CEN BR- rules instead of PINT ibr- rules.
The fallback is recorded in GoRoute's server log, not in the validation response. There
is no PINT-SCHEMATRON-UNAVAILABLE warning on the API path โ do not write client code that
waits for one.
Detect the fallback the way it is actually observable: if you submitted a PINT A-NZ
document and the response contains BR- / BR-CO- rule identifiers rather than ibr-
ones, the PINT pack did not run and the result is not a PINT A-NZ verdict. Contact support
if you see this.
Validating an A-NZ invoiceโ
import requests
response = requests.post(
"https://app.goroute.ai/peppol-api/api/v1/invoices/validate/deep",
headers={
"X-API-Key": "your_api_key",
"Content-Type": "application/json",
},
json={
"invoice": invoice, # CanonicalInvoice
"include_schematron": True,
},
)
result = response.json()
print(result["is_valid"], result["error_count"], result["schematron_version"])
The A-NZ Schematron pack is selected from the document's own cbc:CustomizationID, as
described in step 2 above โ you do not ask for it and you cannot switch it on with a
parameter.
receiver_country does not select a CIUS packDeepValidationRequest accepts an optional receiver_country, and it is easy to assume it
picks the Australian rules. It does not. The national CIUS layer it feeds is not
implemented: it runs, finds nothing configured, and returns no pack. Consequently
profile.cius_pack_ids_applied is always an empty list and must not be relied on as an
audit trail of which national rules were applied. The audit fields that are populated are
profile.schematron_release_track and profile.schematron_pack_checksum.
Example invoiceโ
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<cbc:CustomizationID>urn:peppol:pint:billing-1@aunz-1</cbc:CustomizationID>
<cbc:ProfileID>urn:peppol:bis:billing</cbc:ProfileID>
<cbc:ID>INV-AU-2026-001</cbc:ID>
<cbc:IssueDate>2026-01-26</cbc:IssueDate>
<cbc:DueDate>2026-02-26</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>AUD</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>PO-AUNZ-2026-001</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0151">51824753556</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0151">51824753556</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Aussie Supplies Pty Ltd</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>42 George Street</cbc:StreetName>
<cbc:CityName>Sydney</cbc:CityName>
<cbc:PostalZone>2000</cbc:PostalZone>
<cbc:CountrySubentity>NSW</cbc:CountrySubentity>
<cac:Country>
<cbc:IdentificationCode>AU</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>51824753556</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>GST</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingSupplierParty>
<!-- ... rest of invoice -->
</Invoice>
This example is a hand-checked illustration. Nothing in the documentation pipeline validates example XML against the Schematron, so treat it as a shape reference and validate your own documents with the deep-validation endpoint above.
Key differences from the EUโ
| Aspect | EU | Australia |
|---|---|---|
| Tax scheme ID | VAT | GST |
| Customization ID | EN16931 / BIS 3.0 | PINT A-NZ |
| Schematron applied | CEN EN16931 + Peppol BIS | PINT A-NZ only (CEN skipped) |
| Rule ID prefix | BR-, BR-CO- | ibr-, ibr-cl-, ibr-co-, ibr-sr-, aligned-ibrโฆ-aunz (lower case) |
| Standard tax rate | Varies (19โ27%) | 10% |
| State / province | Optional | Recommended (NSW, VIC, etc.) |
Resourcesโ
- eInvoicing โ Australian Taxation Office
- Australian Peppol Authority โ ATO Software Developers
- OpenPeppol โ Australia country profile
- PINT A-NZ Billing Process v1.1.3
- PINT A-NZ Self-billing Process v1.1.3
- PINT A-NZ invoice business rules
- PINT A-NZ aligned tax category codes
Australian Peppol Authority support: eInvoicing@ato.gov.au
Further readingโ
- PINT A-NZ explained
- PINT A-NZ is now the only accepted profile in Australia
- Peppol e-invoicing in Australia
- The ATO 2026 target
- E-invoicing for Australian government suppliers
- Australia e-invoicing overview
- 2026 e-invoicing mandate tracker โ every country, one page
- How to choose a Peppol Access Point
- One API for multi-country e-invoicing
Ready to build? The free developer sandbox gives you test credentials and a registered participant, provisioned within 24 hours on business days. Recorded ERP integration walkthroughs are on the tutorials page.