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 unique in the EU for having a variable length of 2 to 10 digits. Shorter numbers indicate older registrations.

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
Example RO1234567890

Regex Pattern

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

Checksum Algorithm (MOD 11)

10-digit numbers are validated strictly. Shorter numbers are treated as not confidently invalid; for active status validation, use VatDB:

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

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

    if len(number) < 10:
        return True  # permissive for legacy short RO numbers

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

    if check == 10:
        check = 0

    return check == int(number[9])

Frequently Asked Questions

How do I verify a Romanian VAT number (CIF)?
Romanian VAT numbers are 2-10 digits. VatDB validates deterministic 10-digit checksums with MOD 11 and treats shorter legacy numbers as not confidently invalid, then validates active status via VatDB.
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). The variable length is unique in the EU.
How many digits are in a Romanian VAT number?
Romanian VAT numbers have between 2 and 10 digits - the only variable-length format in the EU. Shorter numbers indicate older registrations.
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 assigned shorter numbers to earlier registrations. As more businesses registered, longer numbers became necessary. A 2-digit CIF would be a very old company.
What is a Romanian CIF number?
CIF (Cod de Identificare Fiscală) is the Romanian Fiscal Identification Code. It's the VAT number for Romanian businesses, unique for its variable 2-10 digit length.
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.

Validate Romanian VAT Numbers Instantly

Use our API for real-time RO VAT number validation

Try Free