RO_CIUS — Romanian Core Invoice Usage Specification
RO_CIUS est la customization roumaine d'OASIS UBL 2.1, conforme à la norme européenne EN 16931. C'est le seul format de facture accepté par e-Factura : aucune autre syntaxe (CII, EDIFACT, JSON) n'est juridiquement valide pour le clearance B2B et B2G domestique.
Origine — du CIUS à RO_CIUS
Le concept de Core Invoice Usage Specification est défini par la norme EN 16931:2017. Chaque État membre UE peut publier sa propre CIUS qui restreint, complète ou contraint le modèle européen de base pour répondre à ses spécificités fiscales.
La Roumanie a publié RO_CIUS V1.0 en avril 2022 (avant l'ouverture e-Factura volontaire B2G), puis V1.0.1 en novembre 2023 (intégration EN 16931 AMD 2 et règles de transition). La spécification est publiée publiquement sur static.anaf.ro en trois formats : descriptif PDF, Schematron .sch, et codelists XML.
- V1.0 (avril 2022) : conformité EN 16931:2017, lancement B2G pilote.
- V1.0.1 (novembre 2023) : AMD 2 EN 16931, ajout taxare inversă, alignement Legea 296/2023.
- V1.0.2 (annoncée Q3 2026) : intégration EN 16931 v1.2, alignement Wave 2 ViDA (VAT in the Digital Age).
Champs obligatoires RO_CIUS
Les champs marqués obligatoires par RO_CIUS reprennent le core EN 16931 et ajoutent quelques contraintes nationales :
| Élément XPath | Description | Contraintes RO_CIUS |
|---|---|---|
cbc:CustomizationID | Identifiant customization | Doit être urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1 |
cbc:ID | Numéro de facture | Max 30 caractères, unique par CIF émetteur |
cbc:IssueDate | Date d'émission | Format YYYY-MM-DD |
cbc:InvoiceTypeCode | Type document | 380 facture, 381 avoir, 384 corrective, 389 self-billed |
cbc:DocumentCurrencyCode | Devise | RON ou devise UE acceptée — conversion ANAF si non-RON |
AccountingSupplierParty/PartyTaxScheme/CompanyID | CIF émetteur | Préfixé RO + 2 à 10 chiffres |
AccountingSupplierParty/PartyLegalEntity/CompanyID | Numéro Registrul Comerțului | Format J40/12345/2015 (J + judet + n° + an) |
AccountingCustomerParty/PartyTaxScheme/CompanyID | CIF destinataire | Préfixé RO si assujetti TVA RO |
TaxTotal/TaxAmount | Total TVA | 2 décimales, devise = DocumentCurrencyCode |
LegalMonetaryTotal/PayableAmount | Montant à payer | 2 décimales, devise = DocumentCurrencyCode |
Champs spécifiques roumains
RO_CIUS introduit des champs ou contraintes propres au contexte roumain :
- Numéro Registrul Comerțului (
J/F/C + judet + n° + an) — obligatoire pour l'émetteur, identifiant unique au registre du commerce roumain (ONRC). - CIF avec préfixe RO — uniquement pour les assujettis TVA actifs. Une entité non-assujettie utilise son CUI sans préfixe RO.
- Code judet — code à 2 lettres du département
roumain (B pour Bucarest, CJ pour Cluj, etc.), inséré dans
cac:Country/cbc:IdentificationCodevia extension RO. - Référence ordin de plată — pour les opérations
avec administration publique, référence au bon de commande
municipal via
cac:OrderReference/cbc:ID. - Référence UIT e-Transport — si la facture
correspond à une expédition e-Transport, l'UIT (code transport
unique) doit être référencé via
cac:DespatchDocumentReference/cbc:ID. - Mention textuelle taxare inversă — pour les
opérations art. 331 Cod Fiscal, la mention « taxare inversă
conform art. 331 Cod Fiscal » doit apparaître dans
cac:LegalMonetaryTotal/cbc:Noteou dans une note en-tête.
Règles de validation Schematron
Le Schematron RO_CIUS publié par l'ANAF complète la validation XSD UBL avec ~150 règles métier (préfixées BR-RO-XX) :
- BR-RO-010 : le CIF émetteur doit exister dans la base ANAF des assujettis TVA actifs au moment de l'émission.
- BR-RO-020 : si
cbc:DocumentCurrencyCode≠ RON, un taux de change ANAF du jour doit être indiqué viacac:PricingExchangeRate. - BR-RO-031 : les opérations taxare inversă
(cbc:ID=
AE) doivent comporter la mention textuelle « taxare inversă conform art. 331 ». - BR-RO-040 : pour les factures B2G, le cod
autoritate du destinataire (issu de SEAP) doit être indiqué
dans
cbc:BuyerReference. - BR-RO-080 : pour les factures e-Transport, le
code UIT doit être référencé via
cac:DespatchDocumentReference.
Les règles BR-CO-XX du CEN restent applicables — BR-CO-15 cohérence arithmétique, BR-CO-25 montants positifs, etc.
Exemple XML RO_CIUS minimal
Facture domestique RO → RO, 1 000 RON HT, taxe standard 19 % :
<?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:efactura.mfinante.ro:CIUS-RO:1.0.1</cbc:CustomizationID>
<cbc:ID>FAC-2026-04-0142</cbc:ID>
<cbc:IssueDate>2026-04-15</cbc:IssueDate>
<cbc:DueDate>2026-05-15</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>RON</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyName><cbc:Name>SC Furnizor SRL</cbc:Name></cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Bulevardul Magheru 12</cbc:StreetName>
<cbc:CityName>Bucuresti</cbc:CityName>
<cbc:PostalZone>010332</cbc:PostalZone>
<cac:Country><cbc:IdentificationCode>RO</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>RO12345678</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>SC Furnizor SRL</cbc:RegistrationName>
<cbc:CompanyID>J40/12345/2015</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyName><cbc:Name>SC Client SA</cbc:Name></cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Strada Industriilor 45</cbc:StreetName>
<cbc:CityName>Cluj-Napoca</cbc:CityName>
<cbc:PostalZone>400000</cbc:PostalZone>
<cac:Country><cbc:IdentificationCode>RO</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>RO87654321</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="RON">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="RON">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="RON">1190.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="RON">1190.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="EA">10</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Serviciu consultanță IT</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice> Codelists EN 16931 + RO
Les codelists obligatoires utilisées par RO_CIUS :
- InvoiceTypeCode (UNTDID 1001) : 380 (Commercial invoice), 381 (Credit note), 384 (Corrected invoice), 389 (Self-billed), 751 (Invoice for accounting purposes — usage IC).
- TaxCategory ID (UNTDID 5305) : S, Z, E, AE, K, G, L, M, O (voir page TVA pour le mapping détaillé).
- Currency (ISO 4217) : RON principalement, EUR/USD acceptés avec exchange rate ANAF.
- Country (ISO 3166-1 alpha-2) : RO obligatoire pour les parties RO, autres codes ISO standard pour IC.
- Unit of measure (UN/ECE Rec 20) : EA, KGM, LTR, MTR, etc. La liste UNECE est imposée — pas de codes nationaux.
- PaymentMeans (UNTDID 4461) : 30 Bonifico (virement), 48 Card, 49 SEPA, 58 Direct debit, 1 Cash (rare en B2B), 23 IBAN transfer.
- VATEX (codelist EU) : codes exonérations TVA UE étendus avec codes RO pour spécificités roumaines.
Pièges courants
- Préfixe RO du CIF. Pour les assujettis TVA actifs,
le CompanyID doit être
RO12345678. Sans le préfixe, la facture est rejetée (BR-RO-010). - Encoding UTF-8 vs Latin-2. Beaucoup d'ERP français ou allemand émettent en Latin-1 par défaut. Les caractères roumains diacritiques (ă, â, î, ș, ț) deviennent illisibles. UTF-8 strict obligatoire.
- Numéro Registrul Comerțului mal formaté. Le format
attendu est
J40/12345/2015(J = société commerciale, 40 = code județ Bucarest, 12345 = numéro séquentiel, 2015 = année enregistrement). Les variantes F (PFA) ou C (filiale étrangère) doivent être respectées. - Devise non-RON sans exchange rate. Facture en EUR
ou USD sans
cac:PricingExchangeRateindiquant le taux ANAF du jour de la date d'émission → rejet BR-RO-020. - InvoiceTypeCode 380 vs 384. Une facture corrective
doit utiliser 384 (corrected invoice) avec référence à la facture
originale via
cac:BillingReference. Pas 380. - UIT e-Transport non référencé. Pour les factures d'expéditions e-Transport (> 250 K€ depuis 2025), oublier la référence UIT déclenche un double rejet ANAF (e-Factura + e-Transport).
Liens transverses
- Hub Roumanie — e-Factura ANAF complet
- e-Factura — clearance pur RO_CIUS
- SPV — Spațiul Privat Virtual
- Régimes TVA roumains
- D406 — SAF-T roumain
- e-Transport — document compagnon
- UBL — référentiel international
- EN 16931 — norme européenne
- ANAF — spécifications techniques RO_CIUS
- OASIS UBL 2.1 — spécification officielle