Romania (RO)

Romanian VAT Number Validation

Format, pattern, and MOD 11 checksum algorithm for RO VAT numbers

Romanian VAT numbers (CIF - Cod de Identificare Fiscală) are unusual in the EU because the numeric part can range from 2 to 10 digits.

Format vs. Active Validation

This checks format only, not if a VAT number is really registered. Use VatDB's API to verify is a number is really registered and active. VatDB checks official EU and national datasources.

Format Overview

Property Value
Country Code RO
Format 2-10 digits
Length 2-10 digits (4-12 characters with RO country prefix)
Examples RO18189442 RO1860712 RO5022670

Regex Pattern

^RO[0-9]{2,10}$

Checksum Algorithm (MOD 11)

Romanian CUI/CIF numbers use a MOD 11 checksum. For numbers shorter than 10 digits, left-pad the body before the check digit to 9 digits before applying the weights:

def validate_ro_cif_checksum(number):
    if number.startswith('RO'):
        number = number[2:]

    if not number.isdigit() or len(number) < 2 or len(number) > 10:
        return False

    weights = [7, 5, 3, 2, 1, 7, 5, 3, 2]
    body = number[:-1].zfill(9)
    total = sum(int(d) * w for d, w in zip(body, weights))
    check = (total * 10) % 11

    if check == 10:
        check = 0

    return check == int(number[-1])

VatDB's offline checker treats shorter RO numbers as not confidently invalid and defers final status to live validation.

Important Notes

  • CUI / CIF is the Romanian fiscal identifier. The VAT ID is the fiscal identifier used with the RO prefix when the taxpayer is VAT-registered.
  • A CUI/CIF can exist without being enabled for EU VAT. Use VatDB to check whether an RO number is usable for EU VAT.
  • Short numeric identifiers are structurally possible but uncommon.

Frequently Asked Questions

How do I verify a Romanian VAT number (CIF)?

Romanian VAT numbers are 2-10 digits and use a MOD 11 checksum. VatDB treats shorter RO numbers as not confidently invalid in offline checks, then validates active status with live VAT data.

What does a Romanian VAT number look like?

A Romanian VAT number has format RO followed by 2-10 digits (e.g., RO12, RO123456, RO1234567890). This wide variable-length range is unusual in the EU.

How many digits are in a Romanian VAT number?

Romanian VAT numbers have between 2 and 10 digits after RO. This wide range is unusual for EU VAT formats.

Why can short Romanian VAT numbers pass offline checks?

Short RO numbers are valid formats but can have legacy behavior that is not always deterministic in an offline-only checker. VatDB treats them as not confidently invalid; for active status validation, use VatDB.

Why do Romanian VAT numbers have variable length?

Romania has historically assigned CUI/CIF numbers with variable length. Very short numbers are structurally possible but uncommon.

What is a Romanian CIF number?

CIF (Cod de Identificare Fiscală) is the Romanian Fiscal Identification Code. When a Romanian taxpayer is VAT-registered, the VAT ID is usually the CIF/CUI with the RO prefix.

Where can I check a Romanian company's VAT number?

Verify VAT numbers with VatDB's API, which checks against official EU and national databases. Get instant validation with company information.

What's the difference between format validation and checking if a VAT number is active?

Format validation checks mathematical correctness only. A properly formatted number could be deregistered, suspended, or never assigned. VatDB confirms the business is genuinely VAT-registered.

Do you have real-world examples of Romanian VAT numbers?

Real Romanian VAT numbers you can validate right now: RO18189442, RO1860712, RO5022670.

Validate Romanian VAT Numbers Instantly

Use our API for real-time RO VAT number validation

Try Free