En Espagne, les changements d’une société sont publiés un par un au BORME : sa constitution, de nouveaux dirigeants, des départs, un transfert, une modification du capital, une dissolution, une extinction. Lus dans l’ordre, ils racontent ce qui est arrivé à une société et quand. Ce tutoriel le fait avec l’API Fuentio : trouver la société, la chercher par sa feuille du registre, puis lire son historique sous forme d’événements datés, chacun avec un lien vers la page officielle.
Ce que vous allez apprendre
- Comment trouver une société espagnole par son nom et choisir le bon résultat
- Comment la chercher par sa feuille du registre (hoja)
- Comment lire ses actes du BORME comme un historique, avec dates et liens
- Comment le statut découle des actes
- Ce que la source ne peut pas donner, et comment le gérer
Avant de commencer
Il vous faut une clé d’API Fuentio dans une variable d’environnement :
curl -X POST https://api.fuentio.com/v1/keys
export FUENTIO_API_KEY="la clé reçue"
Fuentio contient les sociétés espagnoles ayant un acte dans la partie A du BORME depuis le 2 janvier 2009. Pour ce que le BORME dit d’une société, et ce qu’il ne dit pas, lisez d’abord vérifier une société espagnole avec le BORME.
Étape 1 : trouver la société par son nom
Le BORME ne contient pas le numéro fiscal : impossible de partir d’un NIF ou d’un CIF. Partez du nom (2 unités) :
curl "https://api.fuentio.com/v1/companies/search?country=ES&q=qilovatio" -H "Authorization: Bearer $FUENTIO_API_KEY"
Avec Python (httpx) :
import os, httpx
H = {"Authorization": f"Bearer {os.environ['FUENTIO_API_KEY']}"}
r = httpx.get("https://api.fuentio.com/v1/companies/search", params={"country": "ES", "q": "qilovatio"}, headers=H)
for c in r.json()["data"]:
print(c["id"], c["name"]["original"], c["status"]["value"])
Avec JavaScript (fetch) :
const H = { Authorization: `Bearer ${process.env.FUENTIO_API_KEY}` };
const res = await fetch("https://api.fuentio.com/v1/companies/search?country=ES&q=qilovatio", { headers: H });
for (const c of (await res.json()).data) console.log(c.id, c.name.original, c.status.value);
L’id de chaque résultat se termine par sa feuille du registre, par exemple ES-RMHOJA-B-643957 : le préfixe de la province (B pour Barcelone) et le numéro de feuille. Quand plusieurs sociétés portent le même nom, la feuille et la province les distinguent.
Étape 2 : chercher la société par sa feuille
Une unité :
curl https://api.fuentio.com/v1/companies/ES/B-643957 -H "Authorization: Bearer $FUENTIO_API_KEY"
r = httpx.get("https://api.fuentio.com/v1/companies/ES/B-643957", headers=H)
societe = r.json()["data"]
print(societe["name"]["original"], societe["status"])
const une = await (await fetch("https://api.fuentio.com/v1/companies/ES/B-643957", { headers: H })).json();
console.log(une.data.name.original, une.data.status);
Une partie de la fiche réelle :
{
"id": "ES-RMHOJA-B-643957",
"name": {"original": "QILOVATIO ENERGIA IBERIA S.L."},
"status": {"value": "dissolved", "original_label": "Extinción", "as_of": "2026-05-15"},
"legal_form": {"original_code": "SL", "original_label": "Sociedad de Responsabilidad Limitada"},
"incorporation_date": "2025-10-28",
"capital": {"amount": "5000.00", "currency": "EUR"},
"provenance": {"source": "es_borme", "coverage_level": "events_only"}
}
coverage_level: events_only rappelle ce que c’est : une fiche construite à partir d’actes publiés, pas un extrait complet du registre.
Étape 3 : lire l’historique
L’historique renvoie les actes que conserve Fuentio sous forme d’événements datés, du plus récent au plus ancien, chacun avec sa source officielle (1 unité) :
curl https://api.fuentio.com/v1/companies/ES/B-643957/history -H "Authorization: Bearer $FUENTIO_API_KEY"
r = httpx.get("https://api.fuentio.com/v1/companies/ES/B-643957/history", headers=H)
for e in r.json()["data"]["events"]:
print(e["date"], e["label"], e["source"]["url"])
const h = await (await fetch("https://api.fuentio.com/v1/companies/ES/B-643957/history", { headers: H })).json();
for (const e of h.data.events) console.log(e.date, e.label, e.source.url);
Voici la forme d’un événement, d’après l’exemple enregistré de l’API pour une autre société, BAT BATEAN, S.L. :
{
"date": "2026-10-02",
"registry_date": "2026-09-25",
"type": "constitution",
"label": "Constitución",
"company_name": "BAT BATEAN, S.L.",
"people": [],
"source": {
"borme_id": "BORME-A-2026-191-01",
"entry": 439821,
"url": "https://www.boe.es/diario_borme/txt.php?id=BORME-A-2026-191-01"
}
}
Deux dates, deux sens : registry_date est la date d’inscription de l’acte par le registre provincial ; date est sa date de publication au BORME. La partie meta de la réponse donne aussi history_since, la date à laquelle commence l’historique de Fuentio pour cette source.
Étape 4 : comprendre le statut
Le statut découle des actes, jamais d’une supposition :
- Un acte d’Extinción ferme la société : la fiche l’indique fermée, avec la date.
- Un acte de Disolución ouvre sa liquidation : la société est en liquidation jusqu’à une extinction.
- Une société dont le seul acte est sa constitution n’a aucun acte de statut : son statut est inconnu, pas « active par défaut ».
Pour QILOVATIO ENERGIA IBERIA S.L., l’historique montre exactement ce chemin : constituée en octobre 2025, changement de dirigeants et extinction en mai 2026.
Étape 5 : repérer ce qui manque
Trois manques à gérer dans votre code et votre processus :
- Aucun acte sur la période. Une société sans acte de la partie A depuis le 2 janvier 2009 n’est pas dans le flux. La recherche ne la renvoie pas. Cela ne veut pas dire qu’elle n’existe pas : consultez le registre officiel.
- Pas de numéro fiscal. Demander un NIF ou un CIF renvoie l’erreur
id_scheme_not_supported. Cherchez par nom. - Les personnes. Les dirigeants sont publiés par la loi ; les réponses de Fuentio laissent leurs noms de côté, ainsi que les textes d’actes : une nomination ou une cessation n’apparaît que comme un événement daté, avec son type. Lisez les noms sur la page officielle, dans les limites du droit des données personnelles.
corps = r.json()
if corps["error"] and corps["error"]["code"] == "id_scheme_not_supported":
print(corps["error"]["hint"]) # par exemple : chercher par nom
Que coûte chaque étape ?
- Recherche par nom : 2 unités.
- Recherche par feuille : 1 unité.
- Historique : 1 unité.
Les erreurs ne coûtent rien, sauf not_found sur un identifiant bien formé. Voyez la page Tarifs.
Pour la place de cette vérification dans une revue client, lisez comment les vérifications d’entreprises soutiennent les revues LCB-FT ; pour les autres pays, voyez ce que nous couvrons.
Limites. L’historique couvre les actes publiés dans la partie A du BORME depuis le 2 janvier 2009, pas tout le passé d’une société. Impossible de chercher une société par son NIF, son CIF ou son numéro de TVA. Les actes disent ce qui a été inscrit ; ils ne contiennent pas les comptes. Aucun nom de personne n’est servi : dirigeants, associés et entrepreneurs individuels sont absents de toutes les réponses.
Questions fréquentes
Pourquoi l’historique est-il vide avant une certaine date ?
L’historique espagnol de Fuentio commence le 2 janvier 2009 ; meta.history_since l’indique dans chaque réponse.
Quelle différence entre date et registry_date ?
registry_date est la date d’inscription de l’acte au registre ; date sa date de publication au BORME, en général quelques jours plus tard.
Une société peut-elle être « active » sans acte de statut ?
Fuentio affiche « inconnu » tant qu’aucun acte ne dit autre chose. Le BORME ne publie pas d’indicateur « active ».
Comment trouver une société quand deux portent le même nom ?
Utilisez la province et la feuille dans l’id, et l’adresse de chaque fiche, pour les distinguer.
Sources
- Le BORME : boe.es/diario_borme
- L’acte de la fermeture dans l’exemple : BORME-A-2026-97-08
- Les conditions de réutilisation du BOE : boe.es
