PINT Global Billing Base
Peppol PINT international UBL 2.1 / EN 16931 billing base layer — the reusable format engine country specialisation profiles build on
A single, reusable Peppol PINT (Peppol INTernational invoicing) base layer for Odoo. It produces standards-compliant UBL 2.1 / EN 16931 invoices and credit notes, declares the published PINT CustomizationID for each jurisdiction, and runs the EN 16931 + PINT business rules before the document leaves your system. Country profile modules plug in by jurisdiction code, so you maintain the wire format in one place. Compatible with Odoo 18 and Odoo 19.
PINT UBL 2.1 format engine
Serialises the EN 16931 semantic invoice model into OASIS
UBL 2.1 Invoice and CreditNote documents: parties with their
Peppol electronic-address endpoints, VAT breakdown
(cac:TaxTotal / cac:TaxSubtotal), legal
monetary totals and full line detail. Emits the
urn:peppol:bis:billing ProfileID and the correct
CustomizationID for the selected jurisdiction.
Jurisdiction profile registry
Ships the published PINT specialisations — PINT core, EU
(en16931-2017@eu-3), Australia & New Zealand
(aunz-1),
Singapore (sg-1), Malaysia (my-1), Japan
(jp-1) and the UAE (ae-1) — as a
searchable registry. Each profile carries its CustomizationID, ProfileID
and the SMP document type identifier a receiver registers.
EN 16931 + PINT rule validation
A pre-transmission validator runs the genuine EN 16931 rule set (BR-02, BR-05, BR-06/07, BR-16, the BR-CO calculation chain) and the PINT specification rules (PINT-ibr identifier rules, exemption-reason rules). Every finding carries its real rule code and a clear message so you fix the data in Odoo instead of bouncing off your access point.
One-click from any invoice
Generate a PINT document from a posted customer or vendor invoice with a single button, or batch-generate for many invoices through the wizard — choosing the target jurisdiction profile on the fly. The UBL XML is stored as an attachment, ready to download or hand to your Peppol access point.
What is in the box
| Layer | Capability |
|---|---|
| UBL builder | UBL 2.1 Invoice / CreditNote, EN 16931 semantic model, parties, payment means, allowances/charges, VAT breakdown, totals, lines |
| Profile registry | Core, EU, A-NZ, Singapore, Malaysia, Japan, UAE PINT CustomizationIDs + SMP document type identifiers |
| Money policy | EN 16931 2-decimal half-up amounts, BR-CO total derivation, per-category VAT grouping |
| Code lists | UNTDID 1001 type codes, UNCL5305 VAT categories, UNTDID 4461 payment means, UN/ECE units, Peppol EAS schemes |
| Rule validator | EN 16931 BR-* / BR-CO-* / BR-CL-* and PINT-ibr-* findings with real rule codes |
| Odoo integration | Company & partner Peppol settings, account.move mapping, document record with chatter, batch wizard |
Built for country specialisation
This is an infrastructure layer: it is the common PINT/BIS engine that jurisdiction modules extend. A country profile only supplies its jurisdiction code and any local mapping; the UBL wire format, the CustomizationID and the rule validation are inherited from this base, so every Peppol jurisdiction you support speaks one consistent code path.
BYOK and data disclosure
The module builds and stores the PINT UBL document inside your own Odoo database. It does not transmit anything by itself: dispatch is performed by you (or a country transport module) through your own Peppol access point credentials. We are not an access point or a certified service provider — we generate the format you submit.
Keywords: Peppol, PINT, BIS Billing, EN 16931, UBL 2.1, e-invoicing, CustomizationID, electronic invoice, international billing, Odoo 18, Odoo 19.
Screenshots
Pint Documents
Generate Pint Ubl
Pint Profiles
Update date: 2026-07-02