Two questions come up in every customer or supplier review: is this company in an insolvency proceeding, and is its VAT number right? The Fuentio API answers both with one call each, for 1 unit, with the source and the check date. This tutorial shows the calls, what each field means, how to read the states honestly (including "not covered"), and a small function that runs both checks.
What you'll learn
- How to call the insolvency endpoint, and what its states mean in France and Spain
- How to call the VAT endpoint, and why it never says "registered"
- A real answer for each, recorded from the API
- How to combine both in your onboarding or credit review
- What these checks can't tell you
Insolvency: GET /v1/companies/{country}/{identifier}/insolvency
curl https://api.fuentio.com/v1/companies/FR/552100554/insolvency -H "X-API-Key: YOUR_API_KEY"
Cost: 1 unit. The answer has a state, and, when there is one, the procedure, the opened_on and closed_on dates and the list of notices, each with its official citation. covered_since gives the first day of data loaded.
France: BODACC notices, linked by SIREN
In France, the answer comes from the insolvency notices published in BODACC (bulletin A, published by the DILA), linked to the company by its SIREN. The state is one of:
| State | Meaning |
|---|---|
in_procedure | A proceeding is open. |
under_plan | The company is under a safeguard or reorganisation plan. |
closed | The proceeding is closed. |
notice_found | A notice was found, but the proceeding opened before the years loaded. |
none_found | No notice, and BODACC is loaded for the company's whole life. |
not_covered | The loaded years don't cover the company: no conclusion either way. |
The procedure is safeguard, reorganisation (redressement judiciaire) or liquidation. Notices about people and personal sanctions are left out.
A real answer, recorded on 12 October 2026 for PEUGEOT SA:
{
"data": {
"company": { "country": "FR", "id": "FR-SIREN-552100554", "name": "PEUGEOT SA" },
"state": "not_covered",
"procedure": null,
"opened_on": null,
"closed_on": null,
"notices": [],
"covered_since": "2008-02-13",
"attribution": "Source: DILA, BODACC",
"note": "From BODACC A insolvency notices (DILA), linked by SIREN. Notices about people and personal sanctions are left out. No notice outside the loaded years is not proof of no procedure."
},
"meta": { "cost": { "units": 1 } }
}
not_covered here is not good news or bad news: it means the loaded BODACC years (from 13 February 2008) don't cover this company's whole life, so the API won't claim there was never a proceeding. Treat not_covered as "unknown", and none_found as the only "nothing published".
Spain: "Situación concursal" acts in the BORME
In Spain, the answer comes from the BORME acts recorded as "Situación concursal". The state is notice_found, none_found or not_covered. There is no closed: the BORME doesn't say when a proceeding ends. For the full picture of a Spanish concurso, the public insolvency register remains the reference: see how to check whether a French or Spanish company is insolvent.
VAT: GET /v1/companies/{country}/{identifier}/vat
curl https://api.fuentio.com/v1/companies/FR/441639465/vat -H "X-API-Key: YOUR_API_KEY"
Cost: 1 unit. For France, the answer gives the company's EU VAT number: the one the register publishes, or, when it doesn't, the one computed from the SIREN with the standard key (a few companies have a letter key, which can't be computed). It also says how the number was obtained.
Two fields deserve attention:
registration_checkedis alwaysfalse. A VAT number can be correctly formed and still not be registered for intra-EU trade. Fuentio doesn't query VIES for you; the answer gives you the official VIES page incheck_urlso you can check the registration there.- For Spain there is no VAT number: the BORME doesn't publish them.
The same VAT information also comes with a French lookup, in meta.vat. Recorded for RENAULT on 12 October 2026:
"vat": {
"number": "FR63441639465",
"origin": "published by the source",
"registration_checked": false,
"note": "VAT registration not checked. Check the registration on the official VIES page.",
"check_url": "https://ec.europa.eu/taxation_customs/vies/"
}
If you only need to check the format of a French VAT number you already have, you don't need an API call at all. The key is computed from the SIREN:
def french_vat(siren: str) -> str:
key = (12 + 3 * (int(siren) % 97)) % 97
return f"FR{key:02d}{siren}"
assert french_vat("441639465") == "FR63441639465"
For the full validation rules (SIREN and SIRET check digits too), see SIREN, SIRET and VAT number formats.
Both checks in one function
A sketch of a "financial-risk" step for onboarding or before extending payment terms, using the retry helper from the API quickstart:
def risk_checks(country, identifier, key):
insolvency = fuentio_get(f"/v1/companies/{country}/{identifier}/insolvency", key)
vat = fuentio_get(f"/v1/companies/{country}/{identifier}/vat", key)
state = (insolvency.get("data") or {}).get("state")
return {
"insolvency_state": state,
"needs_review": state in ("in_procedure", "under_plan", "notice_found", "not_covered"),
"vat": vat.get("data"),
}
needs_review flags every state where a human should look, including not_covered, because "we don't know" is not "all clear". Store each answer's meta.source and check date with your decision.
Two units per company is cheap enough to run on every new customer and again before any large credit decision. For many companies at once, the free list check runs the insolvency check for up to 20 French companies with a CSV file; in an AI agent, the same checks are the check_insolvency and check_vat tools over MCP.
A free API key gives 100 units a month. See what we cover.
Reading an insolvency notice
When the French answer contains notices, each one carries its official citation and file, and the answer gives the procedure and the opened_on and closed_on dates. Three habits make the difference:
- Read the most recent notice first. A company can have an old, closed reorganisation and a new proceeding. The
statereflects the current situation; the notices tell the story. - Follow the citation. Each notice points to its BODACC publication. For any decision that matters (a claim, a contract termination), a person should read the official notice itself.
- Note who to contact. In France, the opening notice names the court-appointed representative or liquidator: that is where a creditor's claim goes, within the deadline (see how to check whether a French or Spanish company is insolvent).
Common mistakes
- Treating
not_coveredas clear. It means "we can't tell from the loaded years". Route it to review when the amount justifies it. - Treating a well-formed VAT number as registered. Format and registration are different questions: VIES answers the second.
- Expecting a VAT number for Spain. The BORME doesn't publish them; ask the supplier for its NIF-IVA and check it on VIES.
- Checking once, at onboarding only. Insolvency is an event in time. Re-run the check before large orders, prepayments and credit decisions.
- Dropping the source. Store
meta.sourceand the check date with every result; without them, nobody can tell later what the check was based on.
Limits. France: insolvency from BODACC A notices since 13 February 2008, linked by SIREN; no notice outside the loaded years is not proof that there was no proceeding. Spain: only "Situación concursal" acts published in the BORME, with no closing date; the public insolvency register is not queried. VAT: registration is never checked, use VIES; no VAT numbers for Spain. Nothing here is a credit assessment. Example answers recorded on 12 October 2026.
Frequently asked questions
Does the API tell me if a French company is in liquidation?
Yes, when BODACC has published it: the insolvency answer gives the state (for example in_procedure), the procedure (liquidation) and the notices with their citations.
What does not_covered mean?
That the loaded years don't cover the company's whole life, so the API can't say there was never a proceeding. Treat it as unknown, not as clear.
Does Fuentio check VAT registration in VIES?
No. registration_checked is always false, and the answer links the official VIES page so you can check the registration yourself.
Can I get a Spanish company's VAT number?
No. The BORME doesn't publish VAT numbers.
Sources
- Fuentio API reference: docs and the OpenAPI file
- The example answers: PEUGEOT SA (insolvency) and RENAULT (VAT), recorded from the API on 12 October 2026 (
site/data/api-examplesin the website repository) - BODACC: bodacc.fr
- European Commission, VIES: ec.europa.eu/taxation_customs/vies
