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.2 |
| Self-billing | PINT A-NZ Self-billing Process v1.1.2 (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.
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.
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.
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โ
PINT A-NZ business rules use the IBR- family:
| Prefix | Covers |
|---|---|
IBR-nnn | Core business rules |
IBR-CL-nn | Code list rules |
IBR-CO-nn | Calculation / consistency rules |
IBR-SR-nn | Syntax and semantic restriction rules |
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- |
| 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.2
- PINT A-NZ Self-billing Process v1.1.2
- 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.