Skip to main content

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โ€‹

AspectDetails
Peppol AuthorityAustralian Taxation Office (ATO), since 31 October 2019
SpecificationPINT A-NZ Billing Process v1.1.2
Self-billingPINT A-NZ Self-billing Process v1.1.2 (optional specification)
Mandate statusMandatory for Commonwealth agencies
CurrencyAUD (Australian Dollar)
Tax systemGST (10%)
Participant scheme0151 (ABN)
PINT A-NZ replaced A-NZ Peppol BIS Billing on 15 November 2024

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 policyApplies to
The Australian Taxation Office is the Peppol Authority for AustraliaNetwork governance
A target for Australian Government agencies to receive 30% of invoices via eInvoicing by 1 July 2026Commonwealth agencies
Automated processing of eInvoices targeted by December 2026Commonwealth agencies
The B2G mandate has been live since July 2022Commonwealth agencies

Source: the ATO's eInvoicing pages.

These are not the same kind of date as the PINT A-NZ mandate above

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 IDScheme nameFormat
0151AU:ABN11 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>
DocumentDocument type ID
Invoiceurn:...:Invoice-2::Invoice##urn:peppol:pint:billing-1@aunz-1::2.1
Credit Noteurn:...: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>
DocumentDocument type ID
Self-billing Invoiceurn:...:Invoice-2::Invoice##urn:peppol:pint:selfbilling-1@aunz-1::2.1
Self-billing Credit Noteurn:...: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:

CodeName / description
SStandard rate
ZZero rated goods
EExempt from tax
GFree export item, tax not charged
OOutside 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 wireSeverityFieldMeaning
COUNTRY_AU_001Errorbuyer.vat_numberAustralian Business Number (ABN) must be exactly 11 digits
COUNTRY_AU_002Errorbuyer.vat_numberAustralian Business Number (ABN) checksum is invalid
COUNTRY_AU_003Errorbuyer.vat_numberABN is required for Australian Peppol invoices
COUNTRY_AU_004WarningcurrencyAustralian 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.

Which endpoint returns these

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:

PrefixCovers
IBR-nnnCore business rules
IBR-CL-nnCode list rules
IBR-CO-nnCalculation / consistency rules
IBR-SR-nnSyntax 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โ€‹

SeverityResult
fatalReject โ€” is_valid: false
errorReject โ€” is_valid: false
warningPass 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 not signalled in the API response

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 pack

DeepValidationRequest 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>
note

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โ€‹

AspectEUAustralia
Tax scheme IDVATGST
Customization IDEN16931 / BIS 3.0PINT A-NZ
Schematron appliedCEN EN16931 + Peppol BISPINT A-NZ only (CEN skipped)
Rule ID prefixBR-, BR-CO-IBR-, IBR-CL-, IBR-CO-, IBR-SR-
Standard tax rateVaries (19โ€“27%)10%
State / provinceOptionalRecommended (NSW, VIC, etc.)

Resourcesโ€‹

Australian Peppol Authority support: eInvoicing@ato.gov.au

Further readingโ€‹

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.