International · Croatia
OIB check: Croatian OIB validator.
Check whether a Croatian OIB (osobni identifikacijski broj) has 11 digits and a correct check digit. Works with or without the HR prefix. It checks format and check digit only. Everything runs in your browser.
How it works: the first ten digits run through ISO/IEC 7064 MOD 11,10. Start with p = 10. For each digit, s = (digit + p) mod 10, and if s is 0 use 10; then p = (2 × s) mod 11. The check digit is (11 − p) mod 10 and must equal the eleventh digit.
Inputs
Result
Enter an OIB and press Check.
How the OIB check digit works
The OIB is Croatia's personal identification number for citizens and legal entities. It has 11 digits: ten digits with no personal information in them, plus one control digit computed with the ISO/IEC 7064 MOD 11,10 algorithm. For international use it is written with an HR prefix.
| Step | What happens |
|---|---|
| 1 | Set p = 10 |
| 2 | For each of the first ten digits: s = (digit + p) mod 10; if s = 0, s = 10 |
| 3 | p = (2 × s) mod 11 |
| 4 | Check digit = (11 − p) mod 10; it must equal digit 11 |
Reference examples: 33392005961 passes; 33392005962 has the wrong check digit and fails.
Checks format and check digit only
A passing result only means the 11 digits are consistent with the check digit. It cannot confirm the OIB was issued by the Croatian Tax Administration or who, if anyone, it belongs to. Many searches for an OIB are really company lookups; those need the official register, not a checksum.
Sources
python-stdnum, stdnum/hr/oib.py (reference implementation, 11 digits, optional HR prefix, ISO 7064 Mod 11,10, doctest numbers above). Wikipedia, Personal identification number (Croatia) (ten digits plus one control digit per ISO 7064, MOD 11,10). ISO/IEC 7064:2003 defines the algorithm. All three agree.
Checksum only, not a lookup
This tool checks the OIB's format and check digit entirely in your browser. A valid result does not prove the number was issued or belongs to anyone. Nothing you type is transmitted or stored.