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.