The Romania IBAN Validator confirms that a Romanian bank account number in IBAN format is structurally correct. It verifies the RO country code, the 24-character length, the 4-letter SWIFT bank code, the 16-character account, and the full ISO 7064 MOD-97-10 checksum — all without sending a single character to a server.
Romania joined SEPA and integrated with the ReGIS real-time gross settlement system, so a correctly formed IBAN is required for every domestic and cross-border euro transfer. A fast offline validator catches typos before they cause failed payments in invoicing, payroll, and checkout flows.
How it works
A Romanian IBAN follows a fixed structure from the SWIFT IBAN Registry:
- RO — the country code for Romania
- kk — 2 IBAN check digits (ISO 7064 MOD-97-10)
- AAAA — 4-letter bank code, the institution’s SWIFT/BIC prefix
- 16 characters — the account number (letters and/or digits)
Total: 24 characters. The bank code being alphabetic is the distinctive Romanian trait — most other IBANs use a numeric sort code here.
The checksum follows ISO 13616 / ISO 7064 MOD-97-10:
- Strip spaces and uppercase the string.
- Move the first four characters (
ROplus check digits) to the end. - Replace each letter with its 2-digit code:
R = 27,O = 24, and so on for the bank code and any alphabetic account characters. - Reduce the resulting integer modulo 97, folding progressively to avoid overflow.
- The IBAN is valid if and only if the remainder equals 1.
Worked example
Take RO49 AAAA 1B31 0075 9384 0000:
- Country code:
RO— Romania - Check digits:
49 - Bank code:
AAAA(the registry’s documentation example) - Account:
1B310075938400 00
Moving RO49 to the end and expanding every letter to digits produces a long numeric string. Reduced modulo 97, it leaves a remainder of 1, so the IBAN is structurally valid.
| Field | Value | Meaning |
|---|---|---|
| Country | RO | Romania |
| Check digits | 49 | MOD-97 checksum pair |
| Bank code | AAAA | 4-letter SWIFT prefix |
| Account | 1B3100759384 0000 | Account at that bank |
| Total length | 24 | Matches the SWIFT registry |
Changing any single character in a valid IBAN almost always produces a remainder other than 1, which is why the checksum catches the vast majority of typos. Every character is processed locally — nothing is uploaded, logged, or transmitted.