Qu'est-ce que l'UBL 2.1 ?
UBL (Universal Business Language) 2.1 est une norme XML internationale développée par OASIS pour les documents commerciaux électroniques. Elle définit un format structuré pour les factures, notes de crédit, commandes et autres documents commerciaux. Dans le contexte de la facturation électronique belge, l'UBL 2.1 est le format obligatoire pour toutes les factures PEPPOL.
Lorsque vous envoyez une facture via PEPPOL en Belgique, elle doit être formatée comme un document XML UBL 2.1 conforme à la spécification PEPPOL BIS Billing 3.0. Cela garantit que chaque facture envoyée via le réseau peut être lue et traitée automatiquement par tout logiciel conforme.
Pourquoi l'UBL 2.1 est la norme européenne
La Commission européenne a sélectionné l'UBL 2.1 comme l'une des syntaxes de base de la norme européenne EN 16931 sur la facturation électronique. Cette norme assure l'interopérabilité entre tous les États membres de l'UE. La Belgique, par le biais de son mandat PEPPOL, exige que toutes les e-factures B2B suivent ce format.
Les principaux avantages de l'UBL 2.1 sont :
- Lisible par machine — pas besoin d'OCR ni de saisie manuelle
- Standardisé — même format compris par tous les participants PEPPOL à travers l'Europe
- Validable — des contrôles automatisés garantissent l'intégrité des données avant la transmission
- Complet — couvre tous les scénarios commerciaux, y compris les notes de crédit, le traitement fiscal et les informations de paiement
Structure d'une facture UBL 2.1
Une facture UBL 2.1 est un document XML avec une hiérarchie définie d'éléments. Voici les sections clés :
En-tête du document
L'élément racine identifie le type de document et inclut les métadonnées :
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</CustomizationID>
<ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ProfileID>
<ID>INV-2026-00001</ID>
<IssueDate>2026-03-15</IssueDate>
<DueDate>2026-04-14</DueDate>
<InvoiceTypeCode>380</InvoiceTypeCode>
<DocumentCurrencyCode>EUR</DocumentCurrencyCode>
</Invoice>
Le InvoiceTypeCode 380 indique une facture commerciale standard. Pour les notes de crédit, l'UBL utilise un type de document distinct : CreditNote avec le code 381.
AccountingSupplierParty (Vendeur)
Cette section contient les informations de votre entreprise :
<AccountingSupplierParty>
<Party>
<EndpointID schemeID="0208">0123456789</EndpointID>
<PartyName><Name>Nom de votre entreprise</Name></PartyName>
<PostalAddress>
<StreetName>Rue Exemple 1</StreetName>
<CityName>Bruxelles</CityName>
<PostalZone>1000</PostalZone>
<Country><IdentificationCode>BE</IdentificationCode></Country>
</PostalAddress>
<PartyTaxScheme>
<CompanyID>BE0123456789</CompanyID>
<TaxScheme><ID>VAT</ID></TaxScheme>
</PartyTaxScheme>
<PartyLegalEntity>
<RegistrationName>Nom de votre entreprise</RegistrationName>
</PartyLegalEntity>
</Party>
</AccountingSupplierParty>
Le EndpointID avec le schemeID 0208 est le schéma d'identification PEPPOL belge, utilisant le numéro d'entreprise de la BCE/KBO.
AccountingCustomerParty (Acheteur)
Reprend la structure du vendeur avec les coordonnées de l'acheteur. Le EndpointID PEPPOL permet au réseau d'acheminer la facture vers le bon destinataire.
PaymentMeans (Moyens de paiement)
Cette section définit comment la facture doit être payée. Pour les factures belges, cela inclut généralement :
<PaymentMeans>
<PaymentMeansCode>30</PaymentMeansCode>
<PaymentID>+++123/4567/89002+++</PaymentID>
<PayeeFinancialAccount>
<ID>BE68539007547034</ID>
<Name>Nom de votre entreprise</Name>
<FinancialInstitutionBranch>
<ID>BBRUBEBB</ID>
</FinancialInstitutionBranch>
</PayeeFinancialAccount>
</PaymentMeans>
L'élément PaymentID contient la communication structurée belge. Le code 30 indique un virement bancaire. L'IBAN figure dans l'identifiant de compte, et le BIC dans le FinancialInstitutionBranch.
TaxTotal (Total des taxes)
Résume tous les montants de taxe de la facture, ventilés par taux :
<TaxTotal>
<TaxAmount currencyID="EUR">210.00</TaxAmount>
<TaxSubtotal>
<TaxableAmount currencyID="EUR">1000.00</TaxableAmount>
<TaxAmount currencyID="EUR">210.00</TaxAmount>
<TaxCategory>
<ID>S</ID>
<Percent>21.00</Percent>
<TaxScheme><ID>VAT</ID></TaxScheme>
</TaxCategory>
</TaxSubtotal>
</TaxTotal>
Les codes de catégorie fiscale (TaxCategory ID) sont essentiels pour la conformité PEPPOL : S (standard), Z (taux zéro), E (exonéré), AE (autoliquidation), K (intracommunautaire), G (exportation).
LegalMonetaryTotal (Total monétaire légal)
Le résumé financier de l'ensemble de la facture :
<LegalMonetaryTotal>
<LineExtensionAmount currencyID="EUR">1000.00</LineExtensionAmount>
<TaxExclusiveAmount currencyID="EUR">1000.00</TaxExclusiveAmount>
<TaxInclusiveAmount currencyID="EUR">1210.00</TaxInclusiveAmount>
<PayableAmount currencyID="EUR">1210.00</PayableAmount>
</LegalMonetaryTotal>
InvoiceLine (Ligne de facture)
Chaque poste de la facture possède son propre élément InvoiceLine avec description, quantité, prix et informations fiscales.
Erreurs de validation UBL courantes
Les validateurs PEPPOL vérifient les factures par rapport aux règles BIS Billing 3.0 avant la transmission. Les erreurs courantes incluent :
- BR-01 : la facture doit avoir un identifiant de spécification (CustomizationID manquant)
- BR-CO-15 : le montant de taxe et la base imposable doivent être cohérents avec le taux de taxe
- BR-S-08 : une catégorie fiscale au taux normal doit avoir un taux supérieur à zéro
- BR-AE-02 : les factures en autoliquidation ne doivent pas comporter un montant de taxe supérieur à zéro
- Incohérences de montants : la somme des lignes doit correspondre au total de la facture
UBL pour les notes de crédit
Les notes de crédit en UBL utilisent un type de document distinct : CreditNote au lieu d'Invoice. La structure est similaire, mais utilise CreditNoteLine au lieu d'InvoiceLine, et doit inclure une BillingReference vers la facture originale créditée.
Vous n'avez pas besoin d'écrire du XML UBL
Si tout cela vous semble complexe, ne vous inquiétez pas. Vous ne devriez jamais avoir besoin d'écrire du XML UBL manuellement. C'est précisément le rôle d'un logiciel de facturation. DEMFACT génère automatiquement du XML UBL 2.1 entièrement conforme pour chaque facture que vous créez. Remplissez simplement les détails de votre facture normalement, et DEMFACT se charge de tout le formatage technique, de la validation et de la transmission.
Chaque facture générée par DEMFACT passe la validation PEPPOL BIS Billing 3.0 avant d'être envoyée. En cas de problème, vous verrez un message d'erreur clair en langage courant — pas de codes d'erreur XML.
Démarrez avec la génération UBL automatique
Créez votre compte DEMFACT gratuit et laissez la plateforme gérer la conformité UBL 2.1. Vous vous concentrez sur votre activité, nous gérons le XML. Consultez nos formules tarifaires à partir de seulement 1,99 € par facture.