Skip to main content

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.

New Zealand and Australia use the same profiles

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

AspectDetails
Peppol AuthorityMinistry of Business, Innovation and Employment (MBIE)
SpecificationPINT A-NZ Billing Process v1.1.3 (shared with Australia)
Self-billingPINT A-NZ Self-billing Process v1.1.3 (optional specification)
Mandate statusNo B2B mandate. Government Procurement Rules 36 and 44 bind agencies
CurrencyNZD (New Zealand Dollar)
Tax systemGST
Participant scheme0088 (GLN / EAN Location Code โ€” used for the NZBN)
Authority supportsupport@nzpeppol.govt.nz
GoRouteAccredited 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:

These rules bind government agencies, not suppliers

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:

RequirementDate
Agencies must meet the requirements of Rule 44.1 to be eInvoice capableby 1 January 2026
Agencies must meet the requirements of Rule 44.2 to require large suppliers to submit eInvoicesfrom 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 IDScheme nameFormat
0088EAN 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 Zealand

Unlike 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:

  1. You cannot infer that a participant is a New Zealand entity from its 0088 endpoint.
  2. GoRoute's participant-scheme-to-country inference does not recognise 0088 as 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.

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:

  1. registration_number;
  2. peppol_id, but only when the Peppol identifier is in that same scheme (0088: for a New Zealand party, 0151: for an Australian one);
  3. 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 identifierWhat it requires
aligned-ibr-002-aunzThe seller's NZBN, when the seller's country is New Zealand
aligned-ibr-005-aunzThe buyer's NZBN, when the buyer's country is New Zealand
aligned-ibr-001-aunzThe seller's ABN, when the seller's country is Australia
aligned-ibr-004-aunzThe 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.

What changed on 27 September 2026

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

<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

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:

SpecificationStatus
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:

CodeName / description
SStandard rate
ZZero rated goods
EExempt from tax
GFree export item, tax not charged
OOutside scope of tax
note

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 wireSeverityFieldMeaning
COUNTRY_NZ_001Errorbuyer.peppol_id (0088:), buyer.registration_numberAn 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_002Warningbuyer.vat_numberThe 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_003Errorbuyer.vat_numberOtherwise 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_004WarningcurrencyNew Zealand domestic invoices typically use NZD
COUNTRY_NZ_005Error, or warningseller.peppol_id, seller.registration_number, seller.vat_numberThe 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_006Warningbuyer.registration_numberThe 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_007Warningseller.registration_numberThe 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.

Rule identifiers are lower case, and matching is case-sensitive

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.

FamilyCountCovers
ibr-nnn109Core business rules
ibr-sr-nn33Syntax and semantic restriction rules
ibr-cl-nn18Code list rules
ibr-co-nn10Calculation and consistency rules
aligned-ibrp-nnn21The EN 16931 rules as PINT aligns them, applied to every jurisdiction
aligned-ibrp-nnn-aunz7The same, where A-NZ states its own version
aligned-ibr-nnn-aunz4The A-NZ jurisdiction rules โ€” the NZBN and ABN requirements in the table above
aligned-ibrp-s-nn-aunz, -z-, -e-, -g-, -o-36One set per GST category: standard, zero-rated, exempt, free export, outside scope
aligned-ibrp-cl-nn, aligned-ibrp-sr-nn, with and without -aunz6Aligned 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โ€‹

SeverityResult
fatalReject โ€” is_valid: false
errorReject โ€” is_valid: false
warningPass 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>
note

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

AspectAustraliaNew Zealand
Peppol AuthorityAustralian Taxation Office (ATO)Ministry of Business, Innovation and Employment (MBIE)
Participant scheme0151 (AU:ABN), country-specific0088 (GLN), not country-specific
Country inferred from schemeYesNo
GoRoute country checksSix (COUNTRY_AU_001โ€“COUNTRY_AU_006)Seven (COUNTRY_NZ_001โ€“COUNTRY_NZ_007)
CurrencyAUDNZD
Tax scheme IDGSTGST
Tax registrationThe ABN is both the GST registration and the legal identifierThe GST number (the IRD number) is separate from the NZBN: vat_number and registration_number
SpecificationPINT A-NZPINT A-NZ (identical)

Resourcesโ€‹

New Zealand Peppol Authority support: support@nzpeppol.govt.nz

Next stepsโ€‹

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.