New Zealand
The Ministry of Business, Innovation and Employment (MBIE) is the Peppol Authority in New Zealand. MBIE has defined specific requirements for service providers offering Access Point (AP) or Service Metadata Publisher (SMP) services in New Zealand; these are published as the Peppol Authority Specific Requirements in the OpenPeppol library.
New Zealand and Australia share a specification. In 2018 the two governments entered into the Australia and New Zealand Government Electronic Invoicing Arrangement for a common approach to eInvoicing, and in 2019 both Prime Ministers announced adoption of the Peppol Interoperability Framework. The two countries established separate Peppol Authorities with mutual recognition of accreditation.
Everything on this page about CustomizationID, document type IDs and Schematron is identical to
the Australia guide. What differs is the regulatory context, the
identifier scheme, and GoRoute's own New Zealand country checks on the NZBN and the GST number
(see What GoRoute validates).
Overviewโ
| Aspect | Details |
|---|---|
| Peppol Authority | Ministry of Business, Innovation and Employment (MBIE) |
| Specification | PINT A-NZ Billing Process v1.1.3 (shared with Australia) |
| Self-billing | PINT A-NZ Self-billing Process v1.1.3 (optional specification) |
| Mandate status | No B2B mandate. Government Procurement Rules 36 and 44 bind agencies |
| Currency | NZD (New Zealand Dollar) |
| Tax system | GST |
| Participant scheme | 0088 (GLN / EAN Location Code โ used for the NZBN) |
| Authority support | support@nzpeppol.govt.nz |
| GoRoute | Accredited by the New Zealand Peppol Authority (MBIE) as a Peppol Access Point and Service Metadata Publisher. The accreditation is held by ClayDesk LLC, was issued on 16 October 2026 and is valid until 31 July 2027 |
New Zealand Government Procurement Rulesโ
The New Zealand Government Procurement Rules (5th edition, published by MBIE) contain two rules that matter for e-invoicing. Read the framing carefully:
Rules 36 and 44 are procurement rules imposed on New Zealand government agencies. They are not statutes that bind suppliers directly. A supplier is affected through its government contracts โ because an agency subject to Rule 44.2 must require its large suppliers to submit eInvoices. There is no general B2B e-invoicing mandate in New Zealand.
Rule 44 โ eInvoicing capabilityโ
Quoted from the rule:
Agencies that:
- receive more than 2,000 domestic trade invoices annually must be capable of receiving eInvoices through their primary accounts payable system(s)
- send more than 2,000 domestic trade invoices annually must be capable of sending eInvoices through their primary accounts receivable system(s).
Agencies must require large suppliers to submit eInvoices.
The two dates in the rule:
| Requirement | Date |
|---|---|
| Agencies must meet the requirements of Rule 44.1 to be eInvoice capable | by 1 January 2026 |
| Agencies must meet the requirements of Rule 44.2 to require large suppliers to submit eInvoices | from 1 January 2027 |
Rule 44.2 only applies where the agency also meets the Rule 44.1.a threshold of receiving more than 2,000 domestic trade invoices annually.
"Large supplier" has the same meaning as in section 45(b) of the Financial Reporting Act 2013: an entity is large if, in each of the two preceding accounting periods, the total revenue of the entity and its subsidiaries (if any) exceeds $33 million.
Rule 36 โ Prompt payment timesโ
Quoted from the rule:
Agencies must pay 95% of:
- domestic trade eInvoices within 5 business days
- other domestic trade invoices within 10 business days.
Points that change how you should read that:
- The payment requirement applies from the day an invoice is entered into an accounts payable system, which may differ from the date on the invoice.
- It does not apply where the goods, services or works are unsatisfactory or incomplete, where the invoiced amount is in dispute, or where an invoice is incomplete or incorrectly rendered.
- Agencies report domestic eInvoice and domestic trade invoice payment times to MBIE quarterly, and those figures are made publicly available.
What "domestic" means in both rulesโ
Both rules define domestic the same way: the requested payment is in NZD, for goods or services supplied within New Zealand, by an entity that does business in New Zealand.
Out of scope for both rules: reimbursement of employee expenses; rents and leases; credit card statements, finance payments and insurance premiums; and payments made regularly under an ongoing contract that do not require an invoice, such as progress payments on a roading contract.
Identifier schemesโ
New Zealand Business Number (NZBN)โ
| Scheme ID | Scheme name | Format |
|---|---|---|
0088 | EAN Location Code (GLN) | 13 digits, GS1 GLN format |
<cbc:EndpointID schemeID="0088">9429000000000</cbc:EndpointID>
The NZBN is a 13-digit GS1 Global Location Number, and it is addressed on the Peppol network under
the existing GLN code 0088. There is no separate "NZBN scheme" in the ISO 6523 ICD code list
published with the PINT A-NZ specification โ 0088 is listed there as EAN Location Code.
0088 does not identify New ZealandUnlike Australia's 0151 (AU:ABN), scheme 0088 is international. GoRoute's own reporting
code maps 0088 to a placeholder country rather than to New Zealand, because a GLN can belong to a
party anywhere in the world. Two consequences:
- You cannot infer that a participant is a New Zealand entity from its
0088endpoint. - GoRoute's participant-scheme-to-country inference does not recognise
0088as New Zealand, so an NZ party's country must come from the invoice's own address fields, not from its endpoint.
Verify an NZBN against the New Zealand Business Number Register.
The NZBN has to reach us, or the document failsโ
PINT A-NZ requires the legal registration identifier of both the seller and the buyer: the
NZBN for a New Zealand party, the ABN for an Australian one. GoRoute writes it into the document
for you, as cac:PartyLegalEntity/cbc:CompanyID with schemeID 0088 for New Zealand and 0151
for Australia. 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 (0088:for a New Zealand party,0151:for an Australian one);vat_number, but only when the value has the right shape โ 13 digits for an NZBN, 11 for an ABN.
The first of the three that yields a value wins. Spaces, full stops and hyphens are removed before the check.
The party's address country decides which scheme is used, and whether anything is written at
all. address.country must be NZ or AU. 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 NZBN. This matters more in New Zealand than in
Australia: scheme 0088 is international, so nothing else in the document implies the country for
you.
| Rule identifier | What it requires |
|---|---|
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 |
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 |
The practical check: send the NZBN in registration_number for both parties, send each party's
GST number (its IRD number) in vat_number, set each party's address.country to NZ, and
validate before you send. Never send the NZBN in both fields: vat_number is written into the
invoice as the party's GST registration (cac:PartyTaxScheme/cbc:CompanyID under the GST tax
scheme), so an NZBN there names the NZBN as the GST number. GoRoute's own country layer checks an
NZBN's format and check digit, but not that one is there at all: see New Zealand country
checks. A missing NZBN surfaces in the Schematron.
Why the GST number matters. Inland Revenue says that "Your GST number will be the same as your
IRD number" (Register for GST).
For a supply over $200, the seller's details on the taxable supply information must include the
seller's GST number (How taxable supply information for GST
works).
GoRoute's country checks require neither point: they do not ask for a GST
number, and they only warn when the NZBN is in its place (COUNTRY_NZ_002). The PINT A-NZ rules
check neither. So an invoice with no GST number is accepted and delivered. An invoice with the NZBN
in its place is too, unless your GoRoute service also runs New Zealand's identifier checks before a
send. Such a service refuses it with HTTP 422, error_code JURISDICTION_REFUSED and reason_code
NZ_GST_IS_NZBN, and sends nothing. Either way, getting vat_number right is up to you.
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 New Zealand and Australian 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 NZBN or ABN reaches us as described above.
A-NZ Peppol profiles (PINT)โ
New Zealand and Australia share the Peppol International (PINT) A-NZ specialisation. GoRoute resolves receivers in both AU and NZ 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โ
<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 |
The A-NZ self-billing specification is 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 makes no claim of 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.
Specification datesโ
The A-NZ specification transition dates are published on the OpenPeppol Australia country profile, and are cited here from that page because the New Zealand country profile does not restate them:
| Specification | Status |
|---|---|
| A-NZ Peppol BIS Billing (invoice) | Mandatory until 15 November 2024 |
| PINT A-NZ Billing (current version v1.1.3) | Mandatory from 15 November 2024 |
| A-NZ self-billing (current version v1.1.3) | Optional |
Tax (GST) requirementsโ
New Zealand parties use GST as the TaxScheme ID, not VAT โ the same as Australia, Singapore,
India and Malaysia in GoRoute's tax-label handling.
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.
The A-NZ rules only read a category that sits under GST: a category written under VAT 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, check this first.
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>15.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>GST</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
The tax category codes are the PINT A-NZ aligned list, shared with Australia:
| 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 |
GoRoute does not hard-code a New Zealand GST rate. The percentage you send is the percentage that is validated for internal consistency; take the current rate from Inland Revenue, not from this page.
What GoRoute validates for a New Zealand invoiceโ
This section describes real behaviour, traced to product source.
1. GoRoute's own New Zealand 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. On
POST /api/v1/invoices, an error means the invoice is not sent: it is answered with status
validation_failed. They run when the buyer's country is New Zealand. The country comes from
the invoice (the buyer's address first), not from any request parameter you set.
| Code on the wire | Severity | Field | Meaning |
|---|---|---|---|
COUNTRY_NZ_001 | Error | buyer.peppol_id (0088:), buyer.registration_number | An NZBN the document carries under scheme 0088 must be 13 digits with a valid GS1 check digit (ibr-068). This means a 0088: Peppol ID, or a 13-digit registration_number, which is written as the legal identifier under 0088. A registration_number of another shape (a company number, say) is refused only when nothing else gives the buyer's NZBN, because the document then fails aligned-ibr-005-aunz |
COUNTRY_NZ_002 | Warning | buyer.vat_number | The GST number field carries the NZBN. The GST number (the IRD number) belongs there, and the NZBN belongs in registration_number or the 0088: Peppol ID |
COUNTRY_NZ_003 | Error | buyer.vat_number | Otherwise not an IRD number: 8 or 9 digits, within Inland Revenue's issued range, with the modulus-11 check digit. Leading GST, IRD and NZ prefixes, and spaces, full stops and hyphens, are ignored |
COUNTRY_NZ_004 | Warning | currency | New Zealand domestic invoices typically use NZD |
COUNTRY_NZ_005 | Error, or warning | seller.peppol_id, seller.registration_number, seller.vat_number | The same checks on a seller whose address is in New Zealand (message prefixed Seller:). COUNTRY_NZ_001's check is an error. COUNTRY_NZ_003's is an error when vat_number is written as the legal identifier under 0088 (no other field gives the NZBN), and a warning on a vat_number that is only the GST number, because no PINT A-NZ rule checks that field's format. COUNTRY_NZ_002's is a warning |
COUNTRY_NZ_006 | Warning | buyer.registration_number | The buyer gives no NZBN at all: no registration_number, no 0088: Peppol ID, and no 13-digit vat_number. PINT A-NZ aligned-ibr-005-aunz requires the buyer's NZBN. The message reads "New Zealand Business Number (NZBN) is required for a New Zealand buyer of a Peppol invoice (PINT A-NZ aligned-ibr-005-aunz)" |
COUNTRY_NZ_007 | Warning | seller.registration_number | The same for a seller whose address is in New Zealand. PINT A-NZ aligned-ibr-002-aunz requires the seller's NZBN. The message reads "Seller: New Zealand Business Number (NZBN) is required for a New Zealand seller of a Peppol invoice (PINT A-NZ aligned-ibr-002-aunz)" |
COUNTRY_NZ_005 refuses a malformed NZBN that the seller's document carries under 0088, and a
seller GST number written as the legal identifier. The official PINT A-NZ rule ibr-068 is fatal
for the seller's endpoint, identifier and legal identifier, as it is for the buyer's, and
aligned-ibr-002-aunz requires the seller's NZBN as its legal identifier. GoRoute does not always
run the PINT A-NZ Schematron before a document leaves; it runs it on
POST /api/v1/invoices/validate/deep. Without this check, such a document could be sent and then
refused by the receiver's service provider.
Scheme 0088 is international, so GoRoute's participant-scheme-to-country map does not read it as
New Zealand. Set each party's address.country.
2. Schematron is selected from the document, not from a request fieldโ
The PINT A-NZ Schematron pack is chosen by inspecting the document's 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, and the A-NZ pack runs.
The receiver_country field of the deep-validation request body does not select the Schematron
pack. Setting "receiver_country": "NZ" will not cause A-NZ validation of a document whose
CustomizationID says otherwise.
3. CEN EN16931 is not run on PINT documentsโ
For a detected PINT document, GoRoute runs the PINT A-NZ Schematron pack instead of CEN
EN16931, not in addition to it โ the PINT pack already incorporates the adapted EN16931 rules. So
an A-NZ invoice returns PINT ibr- rule identifiers, never bare CEN BR- / BR-CO- ones.
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 New Zealand and Australian 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 NZBN and ABN 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 |
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. The self-billing pack adds aligned-ibrp-nnn-aunz-sb and
ibr-cl-nn-aunz-sb.
If you receive BR- identifiers for a document you believe is PINT A-NZ, the PINT pack did not
run โ check your CustomizationID first.
4. Severity gateโ
| Severity | Result |
|---|---|
fatal | Reject โ is_valid: false |
error | Reject โ is_valid: false |
warning | Pass with a flag โ is_valid: true, logged |
Validating a New Zealand 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,
"receiver_country": "NZ", # resolves the A-NZ Peppol profile
},
)
result = response.json()
print(result["is_valid"], result["error_count"], result["schematron_version"])
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-NZ-2026-001</cbc:ID>
<cbc:IssueDate>2026-02-06</cbc:IssueDate>
<cbc:DueDate>2026-03-06</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>NZD</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>PO-AUNZ-2026-002</cbc:BuyerReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">9429000000000</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="0088">9429000000000</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Kiwi Supplies Limited</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>12 Lambton Quay</cbc:StreetName>
<cbc:CityName>Wellington</cbc:CityName>
<cbc:PostalZone>6011</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>NZ</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>123456789</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 with placeholder identifiers. 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 Australiaโ
| Aspect | Australia | New Zealand |
|---|---|---|
| Peppol Authority | Australian Taxation Office (ATO) | Ministry of Business, Innovation and Employment (MBIE) |
| Participant scheme | 0151 (AU:ABN), country-specific | 0088 (GLN), not country-specific |
| Country inferred from scheme | Yes | No |
| GoRoute country checks | Six (COUNTRY_AU_001โCOUNTRY_AU_006) | Seven (COUNTRY_NZ_001โCOUNTRY_NZ_007) |
| Currency | AUD | NZD |
| Tax scheme ID | GST | GST |
| Tax registration | The ABN is both the GST registration and the legal identifier | The GST number (the IRD number) is separate from the NZBN: vat_number and registration_number |
| Specification | PINT A-NZ | PINT A-NZ (identical) |
Resourcesโ
- OpenPeppol โ New Zealand country profile
- OpenPeppol โ Australia country profile โ source of the A-NZ specification dates
- Government Procurement Rules โ Rule 44, eInvoicing capability
- Government Procurement Rules โ Rule 36, Prompt payment times
- Government Procurement Rules (5th edition)
- New Zealand Business Number Register
- PINT A-NZ Billing Process v1.1.3
- PINT A-NZ Self-billing Process v1.1.3
- PINT A-NZ invoice business rules
New Zealand Peppol Authority support: support@nzpeppol.govt.nz
Next stepsโ
- Australia Guide โ the same profiles, a different regulator
- Country Guides overview
- Validation
Further readingโ
- PINT A-NZ explained
- 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.