SYS_SPEC//KERNEL: IN-MEMORY CANONICAL AST//SECURITY: ZERO DISK WRITE GUARANTEE//LICENSE: MIT OPEN SOURCE

THE 2026–2027 MANDATE WAVE BREAKS POINT-TO-POINT TRANSLATORS.

Belgium, France, Poland, and Saudi Arabia mandate incompatible e-invoicing schemas. Synclium is a stateless, pure-TypeScript compiler that validates and transpiles across UBL 2.1 (PEPPOL), Factur-X / ZUGFeRD (CII), and ZATCA Phase 2 via a lossless intermediate hub AST.

OPEN INTERACTIVE WORKBENCHINSPECT MANDATE MATRIX
◆ RUNTIME BENCHMARK|01 // EU PEPPOL BIS 3.0 ➔ SAUDI ZATCA PHASE 2
UBL 2.1UBL 2.1 (ISO/IEC 19845 / PEPPOL BIS Billing 3.0)
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>INV-2026-088</cbc:ID>
  <cbc:IssueDate>2026-08-23</cbc:IssueDate>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cac:PartyName><cbc:Name>Nordwind Transit Systems GmbH</cbc:Name></cac:PartyName>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>DE314982711</cbc:CompanyID>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:PartyTaxScheme>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cac:PartyName><cbc:Name>Europa Rail AG</cbc:Name></cac:PartyName>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>DE812345678</cbc:CompanyID>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:PartyTaxScheme>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="HUR">1</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">1500.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Rail Power Inverter Maintenance (EN16931)</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
  </cac:InvoiceLine>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">1500.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">1500.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1785.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">1785.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
</Invoice>
ZATCA XMLZATCA Fatoora Phase 2 (Saudi Tax & Customs Standard)
Open in Console ➔
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:ProfileID>reporting:1.0</cbc:ProfileID>
  <cbc:ID>INV-2026-088</cbc:ID>
  <cbc:UUID>3a5d8471-bc93-4791-912f-4827104b6841</cbc:UUID>
  <cbc:IssueDate>2026-08-23</cbc:IssueDate>
  <cbc:InvoiceTypeCode name="0100000">388</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cac:PartyIdentification><cbc:ID schemeID="CRN">1010123456</cbc:ID></cac:PartyIdentification>
      <cac:PartyName><cbc:Name>Nordwind Transit Systems GmbH</cbc:Name></cac:PartyName>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>310123456700003</cbc:CompanyID>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:PartyTaxScheme>
    </cac:Party>
  </cac:AccountingSupplierParty>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">285.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">1500.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">285.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">1500.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">1500.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1785.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">1785.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
</Invoice>
SCHEMATRON VALIDATION RULES & RUNTIME TELEMETRY:EXEC: 1.2ms | MEM: 14.8KB | AST: LOSSLESS
[PASS]Invoice monetary sum totals match line extensions exactly
CEN-EN16931-BR-01
[PASS]Classified tax category percentage maps to code 'S'
PEPPOL-BIS-3.0-TAX
[PASS]Supplier 15-digit Tax Identification Number verified
ZATCA-BR-KSA-03
[PASS]Cryptographic RFC4122 UUID stamp verified
ZATCA-BR-KSA-UUID
◆ 01

MANDATE COMPLIANCE MATRIX // 2026–2027 TIMELINE

The O(N²) Point-to-Point Integration Trap vs O(N) Canonical Hub

JURISDICTIONMANDATE DATEREQUIRED STANDARDCLEARANCE SCHEMESYNCLIUM ENGINE STATUS
BelgiumJan 1, 2026 (B2B)PEPPOL BIS Billing 3.0 (UBL 2.1)PEPPOL 4-Corner Network[READY] 100% Import · Export · Valid.
FranceSep 1, 2026 (Rollout)Factur-X / ZUGFeRD 2.2 (EN16931 CII)PDP & PPF Platform Routing[READY] 100% Import · Export · Valid.
Saudi ArabiaPhase 2 Waves 1–15 ActiveZATCA Fatoora Phase 2 XMLZATCA Clearance & Reporting API[READY] 100% Import · Export · Valid.
Germany2025–2028 (Growth Act)XRechnung 3.0 / ZUGFeRDB2B Direct Exchange[READY] 100% Import · Export · Valid.
PolandFeb 1, 2026 (KSeF)FA_VAT Logical StructureNational KSeF Central Clearance[CONTRIBUTE] Open Package Adapter
COMPUTATIONAL TOPOLOGY: Supporting N formats across M jurisdictions with point-to-point converters requires N × (N - 1) bespoke mappings. With Synclium's Canonical Intermediate Hub, complexity is strictly reduced to 2 × N pure functional transformers. Adding format N+1 requires exactly 0 changes to existing formats.
◆ 02

INTERNAL COMPILER PIPELINE

Stateless In-Memory Transpilation Architecture

01 // INGESTION & EXTRACTION

Signature Detection & OCR

Inspects root XML namespaces to select parsers. If unstructured PDF or scan images are provided, Google Gemini Flash extracts structured fields into standard JSON with multi-model failover.

detectFormat(buffer) ➔ "ubl" | "facturx"
02 // CANONICAL INTERMEDIATE AST

Lossless Zod Hub Schema

Normalizes seller/buyer tax numbers, line items, classified tax categories, allowances/charges, and payable amounts into a strongly-typed TypeScript AST (packages/core).

CanonicalInvoiceSchema.parse(ast)
03 // TARGET CODEGEN & SCHEMATRON

Deterministic XML Compilation

Emits target XML with compliant namespaces and executes exact Schematron validation rules reporting exact XPath error diagnostics before dispatch.

exportZATCA(canonical) ➔ XML
◆ 03

AUDITED RUNTIME BENCHMARKS & DATA PRIVACY

Real Engineering Metrics. Zero Marketing Inventions.

67 / 67
Test Suites Passing

Golden-file test matrix across UBL 2.1, Factur-X, ZATCA, CLI, REST API, and rate limiters.

90.8%
Multimodal Eval Score

Benchmarked on real-world noisy camera scans, low-resolution receipts, and nested VAT tables.

0 Bytes
Disk Retention

Stateless in-memory execution. Invoices exist strictly in transient RAM during compilation.

SHA-256
Salted IP Hashing

Zero raw IP storage. Rate limiting runs on one-way salted hashes with fail-closed Upstash Redis.

◆ 04

FOR DEVELOPERS & CONTRIBUTING ADAPTERS

Embed as a Library, Run in CI/CD, or Add New Country Formats

Node >= 18
# Transpile with auto-detected format signature

$ oib convert invoice.xml --to zatca

# Execute Schematron compliance validation

$ oib validate invoice.xml --format facturx

# AI multimodal extraction from scan PDF or image

$ oib extract scan.pdf --json-out report.json

EXTENSIBILITY INTERFACE[PRs WELCOME]

Implement Format $N+1$ in 3 Pure Functions

Adding support for Poland (KSeF), Malaysia (MyInvois), or Singapore (InvoiceNow)? Implement three pure functional entry points without touching existing formats:

import(rawXml: string): Promise<CanonicalInvoice>
export(invoice: CanonicalInvoice): Promise<string>
validate(rawXml: string): Promise<ValidationReport>