OIB — identifiant universel 11 chiffres (2009)
L'OIB (Osobni identifikacijski broj) est l'identifiant universel à 11 chiffres délivré par la Porezna uprava depuis le 1ᵉʳ janvier 2009. Loi fondatrice : Zakon o osobnom identifikacijskom broju Narodne novine NN 60/2008. Il s'applique à toute personne physique ou morale ayant un lien avec l'administration croate — citoyens, entreprises domestiques, succursales étrangères, et certains non-résidents (propriétaires fonciers notamment).
Histoire — du MBG yougoslave à l'OIB universel 2009
Avant 2009, l'administration croate jonglait avec plusieurs identifiants hérités du système yougoslave : MBG (13 chiffres, inclut date de naissance), MB (matični broj du registre statistique), JMBG (variante fédérale yougoslave abandonnée à l'indépendance). Cette fragmentation rendait le rapprochement inter-administrations coûteux et fragile.
La Zakon o osobnom identifikacijskom broju NN 60/2008 introduit un identifiant unique, non-significatif (pas de date de naissance, pas de genre encodé) et stable à vie. L'attribution massive en 2009 par la Porezna uprava — citoyens et entreprises — fait de l'OIB la clé pivot de tous les registres publics dès 2010-2012.
Avant 2009 | Coexistence de plusieurs identifiants hérités de Yougoslavie :
| - MBG (Matični broj građana, 13 chiffres) pour personnes physiques
| - MB (Matični broj) pour entreprises au registre statistique
| - JMBG (variante fédérale yougoslave, abandonnée)
|
2008 | Adoption de la Zakon o osobnom identifikacijskom broju,
| Narodne novine NN 60/2008. Vise un identifiant universel
| unique pour toute interaction administration-citoyen-entreprise.
|
2009-01-01 | Lancement opérationnel de l'OIB. Attribution massive aux
| citoyens et entreprises sur 18 mois par la Porezna uprava.
|
2010-2012 | Bascule complète des registres publics : Sudski registar
| (registre commercial), Katastar (cadastre), HZZO (santé),
| HZMO (retraites) intègrent l'OIB comme clé primaire.
|
2013-07-01 | Adhésion UE — l'OIB devient l'identifiant fiscal officiel
| utilisé pour le VAT ID (préfixé HR).
|
2014 | Lancement du portail e-Građani qui consolide l'accès
| aux services publics par OIB + identifiant SDLI / NIAS.
|
2018 | Mandat B2G Fina e-Račun — l'OIB devient la clé de routage
| obligatoire dans les e-factures publiques (ICD Peppol 0208).
|
2023-01-01 | Entrée zone euro — pas d'impact sur le format OIB, mais
| tous les paiements liés basculent en EUR.
|
2024-2026 | Préparation ViDA — l'OIB reste l'identifiant pivot pour le
| reporting CTC envisagé. Aucune refonte prévue. Gouvernance — Porezna uprava + MUP + Fina
L'OIB est attribué et géré par la Porezna uprava, sous tutelle du Ministarstvo financija. L'attribution aux citoyens se fait conjointement avec le MUP (Ministarstvo unutarnjih poslova — Intérieur), qui délivre les pièces d'identité (osobna iskaznica) incluant l'OIB depuis 2014.
Fina et le Sudski registar (registre judiciaire des entreprises, opéré par le Ministère de la Justice) intègrent l'OIB comme clé primaire. Le service OIB.hr de la Porezna uprava offre une API publique de vérification (POST + JSON) et un formulaire web pour l'attribution aux personnes étrangères propriétaires de biens en Croatie.
Schéma technique — 11 chiffres, MOD-11
L'OIB est strictement numérique, exactement 11 chiffres décimaux. Le 11ᵉ chiffre est calculé par algorithme MOD-11 sur les 10 premiers, selon la spécification publique de la Porezna uprava (mise à jour finale 2009). Aucun chiffre n'encode date de naissance, sexe ou région — contrairement au MBG yougoslave.
# Vérification MOD-11 d'un OIB (algorithme officiel Porezna uprava)
# OIB = 11 chiffres : 10 chiffres significatifs + 1 chiffre de contrôle
def verifier_oib(oib: str) -> bool:
if len(oib) != 11 or not oib.isdigit():
return False
# Initialisation du calcul
a = 10
for c in oib[:10]: # 10 premiers chiffres
a = (a + int(c)) % 10
if a == 0:
a = 10
a = (a * 2) % 11
control = (11 - a) % 10
return control == int(oib[10])
# Exemple : OIB Fina = 85821130368
print(verifier_oib("85821130368")) # True OIB vs MBS vs MB vs HR-VAT
| Identifiant | Émetteur | Format | Usage principal |
|---|---|---|---|
| OIB | Porezna uprava | 11 chiffres + MOD-11 | Universel — fiscal, civil, registres publics, Peppol ICD 0208 |
| MBS | Sudski registar | 9 chiffres | Numéro d'immatriculation au registre judiciaire (sociétés) |
| MB | DZS (statistiques) | 8 chiffres | Registre statistique — historique pré-2009, encore parfois requis |
| HR-VAT | Porezna uprava | HR + 11 chiffres (= OIB) | Numéro de TVA intra-UE (VIES) — préfixe HR + OIB |
| NKD | DZS | 4 chiffres + lettre | Code activité (équivalent NAF FR / SIC US) |
Important : depuis 2013, le numéro de TVA intra-UE croate
est l'OIB préfixé HR. Les entreprises ne gèrent
pas deux identifiants distincts comme c'est le cas en Allemagne
(Steuernummer vs USt-IdNr) ou en France (SIRET vs n° TVA intracom).
Adoption — ~4,2 M personnes, ~250 K entreprises
- ~4,2 millions de citoyens croates et résidents titulaires d'un OIB (population HR ~3,8 M + non-résidents propriétaires / héritiers / actionnaires).
- ~250 000 personnes morales actives dans le Sudski registar (sociétés d.o.o., j.d.o.o., d.d., obrti) — toutes identifiées par OIB.
- 100 % de la facturation B2G route via OIB depuis le mandat Fina e-Račun 2018 — l'OIB est la clé Peppol côté acheteur public.
- Reverse lookup OIB public et gratuit sur sudreg.pravosudje.hr pour personnes morales — saisie de l'OIB, renvoie raison sociale, adresse, statut, MBS, NKD.
Pièges courants
- Implémenter Luhn au lieu de MOD-11. Une partie des intégrations EDI étrangères rejette des OIB valides parce qu'elles appliquent Luhn générique. Utiliser la spec officielle Porezna uprava (cf. snippet ci-dessus).
- Confondre OIB et MBS. Une e-facture B2G doit porter l'OIB du payeur public, pas son MBS. Beaucoup d'ERP stockent les deux dans la même fiche tiers et exportent le mauvais.
- Préfixer ou non avec HR. Champ VAT (PartyTaxScheme/
CompanyID) →
HR + OIB. Champ identifiant légal (PartyLegalEntity/CompanyID schemeID="0208") →OIB sans préfixe. Ne pas mélanger. - OIB de personne physique vs morale. Le format est identique (11 chiffres + MOD-11). Seul le contexte de consultation (Sudski registar vs MUP) permet de distinguer. Ne pas tenter de dériver le type d'entité du préfixe — il n'y en a pas.
- Attribuer un OIB à un non-résident. Possible mais via demande spécifique à la Porezna uprava (formulaire « Zahtjev za određivanjem i dodjeljivanjem OIB-a »). Procédure obligatoire pour tout achat immobilier ou ouverture de succursale en HR.