All formats
OASIS UBL
2.1

Validate a UBL 2.1 invoice via API

UBL 2.1 is the OASIS XML syntax, the most widespread in European exchange and the reference syntax of the Peppol network. It carries the same invoice model as CII, with different tags.

What it actually is

The second syntax EN 16931 allows. An issuer picks one or the other according to its ecosystem — European business software leans towards UBL, Franco-German exchange towards CII — and the standard guarantees both carry the same data.

What sets it apart from CII

UBL expresses discounts one way where CII distinguishes two levels. A single rule suffices there, where CII needs two. Conversely, a consistency rule on price base quantities exists only in CII.

No container

UBL is submitted as bare XML. The hybrid PDF/A-3 format only hosts CII: a UBL has no place in it, and a PDF carrying one would be rejected at the container level.

CII or UBL: how many rules actually differ

55 rules apply identically to both syntaxes. 1 are specific to one — that is where, and only where, the choice of syntax changes the verdict.

What Factlint judges it against

The sealed floors that accept this format today. Every verdict names the one that issued it, and stays replayable.

  • de-2026-08

    XRechnung 3.0.2 (KoSIT)

  • eu-en16931-2026-08

    EN 16931-1:2017

  • fr-2026-08

    EN 16931 CIUS France + BR-FR-CTC (FNFE)

The codes that apply

56 documented codes apply to this format. Here are 12, in alphabetical order.

See the codes

Try it

The free validator accepts this format without an account. Via API, the call is one line:

curl -X POST https://api.factlint.com/v1/validate \
  -F 'file=@facture.xml' \
  -F 'jurisdiction=FR' \
  -F 'ruleset=latest' \
  -F 'pinned=true' \
  -H 'Accept-Language: fr'
Open the validator