PINT Oman CustomizationID Reference: Invoices, Credit Notes, TDD
PINT Oman CustomizationID reference: every billing, self-billing, credit note and Tax Data Document identifier with profiles and Schematron file mappings.
What this page is
A no-narrative reference for engineers building PINT Oman issuance and validation. Bookmark it, paste it into your design docs, link it from your validator config.
For the higher-level context, read the Oman Fawtara readiness guide and the TDD deep-dive. For the global picture, the e-invoicing mandates 2026 tracker is the index.
The five document types
| # | Document | CustomizationID | Direction |
|---|---|---|---|
| 1 | Billing — Invoice | urn:peppol:pint:billing-1@om-1 |
Supplier → Buyer |
| 2 | Billing — Credit note | urn:peppol:pint:billing-1@om-1 |
Supplier → Buyer |
| 3 | Self-billing — Invoice | urn:peppol:pint:selfbilling-1@om-1 |
Buyer → Supplier (self-billed) |
| 4 | Self-billing — Credit note | urn:peppol:pint:selfbilling-1@om-1 |
Buyer → Supplier (self-billed) |
| 5 | Tax Data Document (TDD) | urn:peppol:taxdata:om-1 |
Supplier (or self-biller) → OTA |
Notes:
- Invoices and credit notes share the same CustomizationID; they are distinguished by
cbc:DocumentTypeCode(380invoice,381credit note) and the UBL root element (InvoicevsCreditNote). - The TDD is a separate document with its own root and namespace (
pxs:), not a UBL invoice.
Schematron files
GoRoute compiles the official PINT OM artefacts into nine compiled XSLTs at Docker build time. The mapping:
| Pack | Sub-pack | Compiled XSLT |
|---|---|---|
| billing | invoice (preprocessed) | PINT-jurisdiction-aligned-rules-OM-Invoice.xslt |
| billing | invoice (preprocessed PINT) | PINT-UBL-validation-preprocessed-OM-Invoice.xslt |
| billing | creditnote (preprocessed) | PINT-jurisdiction-aligned-rules-OM-CreditNote.xslt |
| billing | creditnote (preprocessed PINT) | PINT-UBL-validation-preprocessed-OM-CreditNote.xslt |
| selfbilling | invoice (preprocessed) | PINT-jurisdiction-aligned-rules-OM-SelfBilling-Invoice.xslt |
| selfbilling | invoice (preprocessed PINT) | PINT-UBL-validation-preprocessed-OM-SelfBilling-Invoice.xslt |
| selfbilling | creditnote (preprocessed) | PINT-jurisdiction-aligned-rules-OM-SelfBilling-CreditNote.xslt |
| selfbilling | creditnote (preprocessed PINT) | PINT-UBL-validation-preprocessed-OM-SelfBilling-CreditNote.xslt |
| tdd | tdd | TDD-OM-peppol-om-tdd.xslt |
Each Schematron is run with Saxon-HE 12.4 in-process at validation time. A Schematron-level error blocks; a warning is logged for audit.
How the validator picks the pack
The selection rule is purely on CustomizationID:
if customization_id.startswith("urn:peppol:pint:billing-1@om-1"):
pack = "billing"
elif customization_id.startswith("urn:peppol:pint:selfbilling-1@om-1"):
pack = "selfbilling"
elif customization_id == "urn:peppol:taxdata:om-1":
pack = "tdd"
else:
raise ValidationError(f"Unsupported CustomizationID: {customization_id}")
The PINT OM packs skip the baseline CEN EN 16931 + Peppol BIS 3.0 Schematrons by design — the rule families are restated inside the PINT Schematron itself.
Identifier scheme conventions
| Field | Typical value (Oman) |
|---|---|
| Sender / receiver endpoint scheme | 9959 (Oman Tax Authority taxpayer identifier) |
| Document currency code | OMR (with TaxCurrencyCode matching unless cross-currency) |
| Country code | OM |
| Tax scheme | VAT (5% standard rate, 0% zero-rated, exempt as applicable) |
Worked example — invoice header
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
<cbc:CustomizationID>urn:peppol:pint:billing-1@om-1</cbc:CustomizationID>
<cbc:ProfileID>urn:peppol:bis:billing</cbc:ProfileID>
<cbc:ID>INV-2026-000123</cbc:ID>
<cbc:IssueDate>2026-05-09</cbc:IssueDate>
<cbc:DocumentCurrencyCode>OMR</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>OMR</cbc:TaxCurrencyCode>
<!-- … -->
</Invoice>
Cross-references
- Oman Fawtara readiness guide — programmatic context.
- Oman TDD deep-dive — TDD-specific detail.
- PINT vs BIS — what finance leaders should know — comparative model.
- E-invoicing mandates 2026 tracker — global index.
What we ship at GoRoute
GoRoute compiles the nine PINT OM Schematrons into the Saxon-HE 12.4 binary at Docker build time and runs them in-process at validation. PINT OM is in production today; the regression suite includes 66 official-artefact tests on every release.
Book a demo to see PINT OM validation against your sample invoices.
Sources: OpenPeppol PINT framework and PINT Oman artefacts (official); Oman Tax Authority Fawtara documentation; Peppol BIS Billing 3.0 for ProfileID semantics.
Frequently asked questions
- How many PINT Oman document types are there?
- Five — billing invoice, billing credit note, self-billing invoice, self-billing credit note, and the Tax Data Document (TDD). Each has its own CustomizationID and Schematron.
- What is the difference between billing and self-billing in PINT OM?
- Billing is the standard supplier-issues-to-buyer flow. Self-billing is the reverse — the buyer issues the invoice on behalf of the supplier under a self-billing agreement, common for commissioned sales and certain regulated industries.
- Where do these CustomizationIDs come from?
- They are published by OpenPeppol as part of the PINT Oman specialisation, anchored on the EN 16931 semantic standard. GoRoute mirrors and compiles the official artefacts at Docker build time.
- Do PINT OM documents skip BIS Schematrons?
- Yes. PINT documents run only their PINT Schematrons, by design, to avoid double-enforcement of the same rule family. Baseline EN 16931 + BIS 3.0 are inherited semantically but enforced through PINT Schematrons.
- What ProfileID applies?
- The ProfileID corresponds to the BIS process profile and is not country-specific in PINT. The CustomizationID is where the country specialisation lives.
Building on Peppol?
GoRoute is a certified Peppol Access Point & SMP. Book a demo or read the docs to get started.