CII Invoice (Factur-X / ZUGFeRD)
UN/CEFACT Cross Industry Invoice D16B — base format for Factur-X and ZUGFeRD
EN16931 profile · Factur-X 1.08 · XRechnung not included
Glissez-déposez votre fichier XML ici
ou parcourir
XML uniquement · 1 Mo max · 20 transactions
Exemples de démonstration
Utilisez-les uniquement pour prévisualiser l'expérience de diagnostic. Votre propre XML reste le flux de travail principal.
Préférez les téléchargements ? XML valide ou XML invalide
Les fichiers sont traités en mémoire uniquement — rien n'est stocké ni transmis à des tiers.
Fonctionnalités supportées
- +CII document type detection (CrossIndustryInvoice namespace)
- +Business hierarchy: CII format -> EN16931 profile -> Factur-X subprofiles
- +Profile ID validation (GuidelineSpecifiedDocumentContextParameter/ID)
- +Mandatory field checks (BR-02, BR-03, BR-04, BR-06, BR-07)
- +Invoice type code validation (UNTDID 1001)
- +Header totals, line totals, VAT totals and VAT basis consistency checks with actual/expected diagnostics
Limitations actuelles
- −Full EN16931 Schematron rules validated by official-facturx-adapter (separate layer)
- −PDF/A-3 extraction and conformance checking not implemented (Phase 2)
- −XRechnung CII profile is planned but not implemented
- −UBL and Peppol are separate XML formats, not aliases of CII
Structure du document
23 champs · 21 règles · 3 tables//*[local-name()='CrossIndustryInvoice']invoice.profileIdFactur-X Profile IDinvoice.idInvoice Numberinvoice.typeCodeCode type de documentinvoice.issueDateIssue Dateinvoice.currencyCodeInvoice Currency Code//*[local-name()='SellerTradeParty']seller.nameSeller Name//*[local-name()='BuyerTradeParty']buyer.nameBuyer Name//*[local-name()='SpecifiedTradeSettlementHeaderMonetarySummation']totals.lineTotalSum of Line Net Amountstotals.taxBasisAmountTax Basis Total Amount (excl. VAT)totals.taxAmountTax Total Amounttotals.grandTotalAmountGrand Total Amount (incl. VAT)totals.duePayableAmountMontant exigible//*[local-name()='IncludedSupplyChainTradeLineItem']line.idLine IDline.productNameProduct Nameline.billedQtyBilled Quantityline.unitPriceNet Unit Priceline.lineTotalLine Total Amount//*[local-name()='ApplicableHeaderTradeSettlement']/*[local-name()='ApplicableTradeTax']vat.categoryCodeVAT Category Codevat.ratePercentVAT Rate (%)vat.basisAmountVAT Basis Amountvat.calculatedAmountVAT Calculated Amount//*[local-name()='SpecifiedTradePaymentTerms']payment.dueDatePayment Due Date//*[local-name()='ApplicableHeaderTradeDelivery']delivery.dateDelivery DateChamps
23 définis| Identifiant | Libellé | Type | Obligatoire |
|---|---|---|---|
invoice.profileId | Factur-X Profile ID | ID | ✓ |
invoice.id | Invoice Number | ID | ✓ |
invoice.typeCode | Code type de document | CODE | ✓ |
invoice.issueDate | Issue Date | ISO_DATE_BASIC | ✓ |
invoice.currencyCode | Invoice Currency Code | CURRENCY_CODE | — |
seller.name | Seller Name | TEXT | — |
buyer.name | Buyer Name | TEXT | — |
totals.taxBasisAmount | Tax Basis Total Amount (excl. VAT) | AMOUNT | — |
totals.taxAmount | Tax Total Amount | AMOUNT | — |
totals.grandTotalAmount | Grand Total Amount (incl. VAT) | AMOUNT | — |
totals.duePayableAmount | Montant exigible | AMOUNT | — |
totals.lineTotal | Sum of Line Net Amounts | AMOUNT | — |
line.id | Line ID | ID | — |
line.productName | Product Name | TEXT | — |
line.billedQty | Billed Quantity | QUANTITY | — |
line.unitPrice | Net Unit Price | AMOUNT | — |
line.lineTotal | Line Total Amount | AMOUNT | — |
vat.categoryCode | VAT Category Code | CODE | — |
vat.ratePercent | VAT Rate (%) | PERCENT | — |
vat.basisAmount | VAT Basis Amount | AMOUNT | — |
vat.calculatedAmount | VAT Calculated Amount | AMOUNT | — |
payment.dueDate | Payment Due Date | ISO_DATE_BASIC | — |
delivery.date | Delivery Date | ISO_DATE_BASIC | — |
Règles de validation
21 règlesFX-PROF-001ERRORUne facture CII doit spécifier un GuidelineSpecifiedDocumentContextParameter/ID (identifiant de profil Factur-X).
Factur-X Profile ID est obligatoire
FX-PROF-002ERRORL'identifiant de profil Factur-X doit être l'un des URN de profil reconnus (MINIMUM, BASIC-WL, BASIC, EN16931, EXTENDED).
Factur-X Profile ID ∈ Recognised Factur-X / ZUGFeRD profile URNs: {urn:factur-x.eu:1p0:minimum, urn:factur-x.eu:1p0:basicwl, urn:factur-x.eu:1p0:basic, urn:cen.eu:en16931:2017, urn:factur-x.eu:1p0:extended, urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.3 ... (16 valeurs)}
FX-HDR-001ERRORUne facture doit comporter un numéro de facture (ExchangedDocument/ID). (EN16931 BR-02)
Invoice Number est obligatoire
FX-HDR-002ERRORUne facture doit comporter une date d'émission (ExchangedDocument/IssueDateTime). (EN16931 BR-03)
Issue Date est obligatoire
FX-HDR-003ERRORUne facture doit spécifier un code de type de document (ExchangedDocument/TypeCode). (EN16931 BR-04)
Code type de document est obligatoire
FX-HDR-004ERRORLe code de type de document de la facture doit être l'un des codes UNTDID 1001 reconnus pour les factures Factur-X.
Code type de document est présent
Code type de document ∈ UNTDID 1001 document type codes allowed for Factur-X: {380, 381, 383, 384, 386, 389 ... (12 valeurs)}
FX-SEL-001ERRORUne facture doit contenir le nom du vendeur (SellerTradeParty/Name). (EN16931 BR-06)
Seller Name est obligatoire
FX-BUY-001ERRORUne facture doit contenir le nom de l'acheteur (BuyerTradeParty/Name). (EN16931 BR-07)
Buyer Name est obligatoire
FX-TOT-001ERRORLe montant total des lignes en en-tête doit être égal à la somme des montants totaux de toutes les lignes de facture, avec une tolérance de 0,01.
Sum of Line Net Amounts est présent et Line Total Amount est présent
Sum of Line Net Amounts = Σ line.lineTotal sur line.lineTotal (±0.01)
FX-TOT-002ERRORLe montant total TTC doit être égal au montant total hors taxe plus le montant total de la taxe, avec une tolérance de 0,01.
Grand Total Amount (incl. VAT) est présent et Tax Basis Total Amount (excl. VAT) est présent et Tax Total Amount est présent
Grand Total Amount (incl. VAT) = Tax Basis Total Amount (excl. VAT) + Tax Total Amount (±0.01)
FX-LIN-001ERRORChaque ligne de facture doit comporter un identifiant de ligne (AssociatedDocumentLineDocument/LineID).
Line ID est obligatoire
FX-LIN-003ERRORChaque ligne de facture doit indiquer la quantité facturée.
Billed Quantity est obligatoire
FX-LIN-004ERRORChaque ligne de facture doit indiquer le prix unitaire net.
Net Unit Price est obligatoire
FX-VAT-001ERRORChaque code de catégorie de TVA de la ventilation doit être l'un des codes de catégorie de TVA EN16931 reconnus.
VAT Category Code est présent
VAT Category Code ∈ EN16931 VAT category codes: {S, Z, E, AE, K, G ... (9 valeurs)}
FX-VAT-003ERRORLe montant total de la taxe doit être égal à la somme des montants calculés de la ventilation de TVA, avec une tolérance de 0,01.
Tax Total Amount est présent et VAT Calculated Amount est présent
Tax Total Amount = Σ vat.calculatedAmount sur vat.calculatedAmount (±0.01)
FX-VAT-004ERRORLe montant total hors taxe doit être égal à la somme des montants de base de la ventilation de TVA, avec une tolérance de 0,01.
Tax Basis Total Amount (excl. VAT) est présent et VAT Basis Amount est présent
Tax Basis Total Amount (excl. VAT) = Σ vat.basisAmount sur vat.basisAmount (±0.01)
FX-PROFILE-BASIC-001ERRORFactur-X 1.08 BASICCe validateur concerne le profil Factur-X BASIC ; l'identifiant de profil de la facture doit être urn:factur-x.eu:1p0:basic.
Factur-X Profile ID est présent
Factur-X Profile ID = "urn:factur-x.eu:1p0:basic"
FX-PROFILE-BASICWL-001ERRORFactur-X 1.08 BASIC-WLCe validateur concerne le profil Factur-X BASIC-WL ; l'identifiant de profil de la facture doit être urn:factur-x.eu:1p0:basicwl.
Factur-X Profile ID est présent
Factur-X Profile ID = "urn:factur-x.eu:1p0:basicwl"
FX-PROFILE-EN16931-001ERRORFactur-X 1.08 EN16931Ce validateur concerne le profil Factur-X EN16931 ; l'identifiant de profil de la facture doit être urn:cen.eu:en16931:2017.
Factur-X Profile ID est présent
Factur-X Profile ID = "urn:cen.eu:en16931:2017"
FX-PROFILE-EXTENDED-001ERRORFactur-X 1.08 EXTENDEDCe validateur concerne le profil Factur-X EXTENDED ; l'identifiant de profil de la facture doit être urn:factur-x.eu:1p0:extended.
Factur-X Profile ID est présent
Factur-X Profile ID = "urn:factur-x.eu:1p0:extended"
FX-PROFILE-MINIMUM-001ERRORFactur-X 1.08 MINIMUMCe validateur concerne le profil Factur-X MINIMUM ; l'identifiant de profil de la facture doit être urn:factur-x.eu:1p0:minimum.
Factur-X Profile ID est présent
Factur-X Profile ID = "urn:factur-x.eu:1p0:minimum"
Tables de référence
3 listesRecognised Factur-X / ZUGFeRD profile URNs
facturx-profile-urnsUNTDID 1001 document type codes allowed for Factur-X
invoice-type-codesEN16931 VAT category codes
vat-category-codes