ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

RO_CIUS — Romanian Core Invoice Usage Specification

RO_CIUS is the Romanian customization of OASIS UBL 2.1, conformant with the European EN 16931 standard. It is the only invoice format accepted by e-Factura: no other syntax (CII, EDIFACT, JSON) is legally valid for domestic B2B and B2G clearance.

Origin — from CIUS to RO_CIUS

The Core Invoice Usage Specification concept is defined by EN 16931:2017. Each EU Member State may publish its own CIUS that restricts, complements or constrains the European base model to address its tax specificities.

Romania published RO_CIUS V1.0 in April 2022 (before voluntary B2G e-Factura opening), then V1.0.1 in November 2023 (EN 16931 AMD 2 integration and transition rules). The specification is publicly published on static.anaf.ro in three formats: descriptive PDF, .sch Schematron, and XML codelists.

  • V1.0 (April 2022): EN 16931:2017 compliance, B2G pilot launch.
  • V1.0.1 (November 2023): EN 16931 AMD 2, taxare inversă additions, Legea 296/2023 alignment.
  • V1.0.2 (announced Q3 2026): EN 16931 v1.2 integration, alignment with ViDA (VAT in the Digital Age) Wave 2.

Mandatory RO_CIUS fields

The fields marked as mandatory by RO_CIUS reuse the EN 16931 core and add a handful of national constraints:

XPath elementDescriptionRO_CIUS constraints
cbc:CustomizationIDCustomization identifierMust be urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1
cbc:IDInvoice numberMax 30 characters, unique per issuer CIF
cbc:IssueDateIssue dateFormat YYYY-MM-DD
cbc:InvoiceTypeCodeDocument type380 invoice, 381 credit note, 384 corrective, 389 self-billed
cbc:DocumentCurrencyCodeCurrencyRON or accepted EU currency — ANAF conversion if non-RON
AccountingSupplierParty/PartyTaxScheme/CompanyIDIssuer CIFPrefixed RO + 2 to 10 digits
AccountingSupplierParty/PartyLegalEntity/CompanyIDTrade Register numberFormat J40/12345/2015 (J + county + n° + year)
AccountingCustomerParty/PartyTaxScheme/CompanyIDRecipient CIFPrefixed RO if RO VAT taxpayer
TaxTotal/TaxAmountVAT total2 decimals, currency = DocumentCurrencyCode
LegalMonetaryTotal/PayableAmountAmount to pay2 decimals, currency = DocumentCurrencyCode

Romania-specific fields

RO_CIUS introduces fields or constraints specific to the Romanian context:

  • Trade Register number (J/F/C + county + n° + year) — mandatory for the issuer, unique identifier in the Romanian Trade Register (ONRC).
  • CIF with RO prefix — only for active VAT taxpayers. A non-taxable entity uses its CUI without the RO prefix.
  • County code (judet) — 2-letter code of the Romanian county (B for Bucharest, CJ for Cluj, etc.), inserted in cac:Country/cbc:IdentificationCode via RO extension.
  • Payment order reference — for transactions with public administration, reference to the municipal purchase order via cac:OrderReference/cbc:ID.
  • UIT e-Transport reference — if the invoice corresponds to an e-Transport shipment, the UIT (unique transport code) must be referenced via cac:DespatchDocumentReference/cbc:ID.
  • Taxare inversă textual mention — for art. 331 Cod Fiscal operations, the mention "taxare inversă conform art. 331 Cod Fiscal" must appear in cac:LegalMonetaryTotal/cbc:Note or in a header note.

Schematron validation rules

The RO_CIUS Schematron published by ANAF complements UBL XSD validation with ~150 business rules (prefixed BR-RO-XX):

  • BR-RO-010: the issuer CIF must exist in the ANAF active VAT taxpayer database at the time of issuance.
  • BR-RO-020: if cbc:DocumentCurrencyCode ≠ RON, an ANAF day exchange rate must be indicated via cac:PricingExchangeRate.
  • BR-RO-031: reverse charge operations (cbc:ID=AE) must include the textual mention "taxare inversă conform art. 331".
  • BR-RO-040: for B2G invoices, the recipient's cod autoritate (from SEAP) must be indicated in cbc:BuyerReference.
  • BR-RO-080: for e-Transport invoices, the UIT code must be referenced via cac:DespatchDocumentReference.

CEN BR-CO-XX rules remain applicable — BR-CO-15 arithmetic consistency, BR-CO-25 positive amounts, etc.

Minimal RO_CIUS XML example

Domestic RO → RO invoice, 1,000 RON HT, 19% standard rate:

xml ro-cius-sample.xml
<?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>

EN 16931 + RO codelists

Mandatory codelists used by RO_CIUS:

  • InvoiceTypeCode (UNTDID 1001): 380 (Commercial invoice), 381 (Credit note), 384 (Corrected invoice), 389 (Self-billed), 751 (Invoice for accounting purposes — IC usage).
  • TaxCategory ID (UNTDID 5305): S, Z, E, AE, K, G, L, M, O (see VAT page for detailed mapping).
  • Currency (ISO 4217): RON mainly, EUR/USD accepted with ANAF exchange rate.
  • Country (ISO 3166-1 alpha-2): RO mandatory for RO parties, other ISO standard codes for IC.
  • Unit of measure (UN/ECE Rec 20): EA, KGM, LTR, MTR, etc. The UNECE list is imposed — no national codes.
  • PaymentMeans (UNTDID 4461): 30 Bonifico (transfer), 48 Card, 49 SEPA, 58 Direct debit, 1 Cash (rare in B2B), 23 IBAN transfer.
  • VATEX (EU codelist): EU VAT exemption codes extended with RO codes for Romanian specifics.

Common pitfalls

  • RO prefix on CIF. For active VAT taxpayers, CompanyID must be RO12345678. Without the prefix, the invoice is rejected (BR-RO-010).
  • UTF-8 vs Latin-2 encoding. Many French or German ERPs emit in Latin-1 by default. Romanian diacritic characters (ă, â, î, ș, ț) become unreadable. Strict UTF-8 mandatory.
  • Wrongly formatted Trade Register number. The expected format is J40/12345/2015 (J = commercial company, 40 = Bucharest county code, 12345 = sequential number, 2015 = registration year). F (PFA) or C (foreign branch) variants must be respected.
  • Non-RON currency without exchange rate. EUR or USD invoice without cac:PricingExchangeRate indicating the ANAF rate of the issuance date → BR-RO-020 rejection.
  • InvoiceTypeCode 380 vs 384. A corrective invoice must use 384 (corrected invoice) with reference to the original invoice via cac:BillingReference. Not 380.
  • UIT e-Transport not referenced. For e-Transport shipment invoices (> €250K since 2025), forgetting the UIT reference triggers a dual ANAF rejection (e-Factura + e-Transport).