Methodology: How Fuentio Reads French Company Data, Field by Field

Our methodology for French company data: how Sirene and RNE fields are mapped, status rules, VAT handling, what we never infer, and how answers stay traceable.

· By the Fuentio team · 7 min read

Share image: "Methodology: How Fuentio Reads French Company Data, Field by Field" on Fuentio's paper background, with the Guide label.

If you rely on company data for onboarding, payments or compliance, "where does this field come from?" is not a detail. It's the question your auditor, your risk committee or your own engineers will ask. This page sets out how Fuentio builds a French company record: which official source we read, how each field is mapped, which rules we apply, and what we deliberately refuse to infer.

It describes the method as of 10 October 2026. External facts link to their official source.

Short answer: for France, Fuentio reads the State's company search API (Annuaire des Entreprises), which serves INSEE's Sirene directory and officer data from INPI's national company register (RNE). We keep the register's own wording, add normalised codes and English labels next to it, never infer a status the source doesn't state, and attach the source, its licence and the check times to every record.

What you'll learn

  • Which official source we read, and under which licences
  • How each field of the record is mapped
  • The status rules, and what we never infer
  • How we handle VAT numbers, officers and non-public companies
  • How freshness and outages show in every answer

Which source do we read for France?

We read API Recherche d'entreprises, the State's free company search API that powers the Annuaire des Entreprises. Its upstream data is INSEE's Sirene directory (identity, status, activity, headcount band, address) and INPI's RNE (officers).

Two licences apply, and we name both on every record:

  • Licence Ouverte / Etalab 2.0 for the Annuaire's data.
  • INPI's RNE reuse licence for officer data, which allows commercial and non-commercial reuse and asks reusers to cite the source and the date of last update, and to respect personal data law.

That's why each French record's provenance.license reads: "Licence Ouverte / Etalab 2.0 (Annuaire des Entreprises, INSEE Sirene); officers: INPI RNE reuse licence".

How is each field mapped?

A lookup by SIREN calls the source's search with the number, then checks that the first result's SIREN equals the requested one. A near match is never returned as an exact answer. Then each field is mapped:

Our fieldFrom the sourceRule
identifiersSIREN, head-office SIRET, VATSIREN is primary; Luhn check digit verified
name.originalLegal name (nom_raison_sociale)Not the display name, which appends an acronym
trade_namesAcronym, signs, trade namesAs published
legal_formINSEE legal category (4 digits)Kept as published, plus its ISO 20275 ELF code and a category
statusA or Cactive or inactive, with the source's label and date
incorporation_dateCreation dateAs published
registered_addressHead-office addressoriginal kept verbatim, plus parsed parts
activityNAF code (e.g. 64.20Z)NACE Rev.2 and ISIC Rev.4 equivalents, English label
employeesINSEE headcount band and yearMapped to a labelled band
officersOfficers from the RNENames and roles only (see below)

Here's part of a real record, as the API returns it for Renault:

{
  "id": "FR-SIREN-441639465",
  "name": {"original": "RENAULT"},
  "legal_form": {"original_code": "5510", "original_label": "SA nationale à conseil d'administration", "elf_code": "1NF1", "category": "public_limited_company"},
  "status": {"value": "active", "original_label": "Active", "as_of": "2025-12-06"},
  "activity": {"original_code": "64.20Z", "nace_rev2": "64.20", "isic_rev4": "6420", "label_en": "Activities of holding companies"}
}

The original code and label always travel with the normalised value. If you disagree with our mapping, you still have the register's own words. For more on the mapping rules, see how we normalise company data.

What are the status rules?

The French source distinguishes only two states: A (active) and C (ceased, "cessée"). So:

  • A becomes active; C becomes inactive, dated with the closure date.
  • We don't map "cessée" to "dissolved": in Sirene, ceased means the activity ended, not necessarily a legal dissolution. Our dissolution_date stays empty for this source.
  • We never infer liquidation or a strike-off from this source. Its fields don't carry collective proceedings; those are published in the BODACC. When a question needs them, we say the source doesn't cover it rather than answer "none found".

This matters in compliance work. "Active" from Sirene is a statement about the administrative state; it isn't a statement that no proceedings are open. See how to check whether a French company is still active.

How do we handle the VAT number?

When the source provides the company's intra-community VAT number, we use it and mark vat_computed: false. Only when it's absent do we compute the expected number from the SIREN with the French formula, and mark vat_computed: true. The flag tells you which one you're looking at. A computed number shows what the VAT number would be; whether the company is registered for VAT is VIES's answer. See checking a VAT number with VIES.

What do we keep about people?

Officers come from the RNE. We keep names and roles only, marked personal_data: "officially_public". We drop birth dates, birth years and nationality even when the source has them. Sole proprietorships get no officer entries: the person's name is already the business name. And we don't offer search by person. See what personal data we keep.

What happens when a company isn't public?

The State's API doesn't return non-diffusible companies. So when a well-formed SIREN returns nothing, our answer is not_found with a message saying the company may not exist or may have opted out of public diffusion. We never fill the gap from another source, and we never present "not found" as "doesn't exist". See why some French companies are missing from public searches.

How fresh is the answer, and what if the source is down?

Every record we fetch is stored. A record younger than 7 days is served from our store; an older one is fetched again. If the source fails, we serve our last copy with meta.stale: true and its real check time. You always know which you got. See provenance on every answer.

Upstream limits shape this design: the State's API documents at most 7 requests per second per IP and 30 per network, and we stay well below them.

Fuentio's API isn't open yet. Become an early tester to see these records on your own companies before launch.

See what we cover in France and Spain.

Frequently asked questions

Where does Fuentio's French company data come from?

From API Recherche d'entreprises, which serves INSEE's Sirene directory and officer data from INPI's RNE, under Licence Ouverte / Etalab 2.0 and the RNE reuse licence.

Does "inactive" mean the company was dissolved?

No. It means Sirene marks the company as ceased. We never turn that into a legal dissolution, liquidation or strike-off.

Is the VAT number computed or official?

Official when the source gives it (vat_computed: false); computed from the SIREN only when it doesn't (vat_computed: true).

What does "not found" mean for a French SIREN?

No public record: the company may not exist, or may have opted out of public diffusion.

Sources

← All articles · RSS feed