> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topograph.co/llms.txt
> Use this file to discover all available pages before exploring further.

# France

> Country-specific identifiers, data sources, and implementation details

## Start here

This guide contains public integration notes for France. Use it for identifier formats, search behavior, and country-specific caveats. The live source of truth for coverage, pricing, data sources, documents, legal forms, roles, and status values is the pricing page.

<Card title="France coverage, pricing, and sources" icon="arrow-up-right-from-square" href="https://topograph.co/pricing/fr">
  Open the current catalog for supported datapoints, documents, sources, identifiers, and availability.
</Card>

<Note>
  Country details below are preserved as integration notes. If a table or example conflicts with the live pricing page, use the pricing page as the source of truth and contact support.
</Note>

## Table of Contents

* [Data Sources](#data-sources)
* [Company Identifiers](#company-identifiers)
* [Search Capabilities](#search-capabilities)
* [Quirks & Gotchas](#quirks--gotchas)
* [Mappings](#mappings)
* [Data Availability](#data-availability)
* [Example API Responses](#example-api-responses)

## Data Sources

France uses multiple official registries. For a given entity, **data comes from a single primary source** -- the system does not merge attributes across registries. It follows a deterministic priority chain and returns data from the first matching source.

### Commercial companies & sole entrepreneurs

* **RNE (Registre National des Entreprises)** -- Operated by the INPI since January 1, 2023, the RNE replaced and unified three former registries: the RNCS (Registre National du Commerce et des Societes), the Repertoire des Metiers, and the Registre des Actifs Agricoles. This is our **primary source for the vast majority of French entities**. When a company is found in the RNE, all structured attributes come from the RNE: company name, legal form, status, incorporation date, registered address, share capital, activity codes, legal representatives, shareholders, UBOs, and establishments.
* **SIRENE (INSEE)** -- The SIRENE repertoire, managed by the INSEE since 1973, covers \~25 million enterprises. Used in two ways: **(1)** as a **supplement to RNE** for employee count range (expressed in tranches, e.g. "50 to 99 employees" -- note: figures can be 2-3 years old per INSEE methodology); **(2)** as a **standalone fallback** for entities that exist in INSEE but are not yet in the RNE, providing a limited dataset only (company name, legal form, activity code, status, employee count -- no legal representatives, shareholders, or UBOs).
* **BODACC (Bulletin Officiel des Annonces Civiles et Commerciales)** -- Free API operated by the DILA. Used as an **exceptional last resort** only, when an entity appears in none of the above registries (not in RNE, not in SIRENE, not in RNA). This represents a negligible fraction of queries. When used, company data and legal representatives are extracted from legal announcement text.
* **Infogreffe** -- Used exclusively for **KBIS document retrieval** (certified trade register extract PDFs). It is **not** a structured data source for company attributes.

### Non-profits

* **RNA Waldec** -- Non-profits (associations declarees) that have been created or have declared a modification since 2009. Our primary source for non-profits. Enriched with SIRENE data when a SIREN is available.
* **RNA Import** -- Historical non-profits created since 1901 that have not declared any change since 2009. Fallback when not found in RNA Waldec.
* **RNA Alsace-Moselle** -- Non-profits (associations de droit local) in departments 57 (Moselle), 67 (Bas-Rhin), and 68 (Haut-Rhin), which operate under local law and are excluded from the national RNA.

<Note>
  **RNA data is periodically synchronized** (monthly from data.gouv.fr) because no live API exists for the RNA registries. This is the only available access method provided by the French government for non-profit data.
</Note>

<AccordionGroup>
  <Accordion title="When do non-profits appear in RNE vs RNA vs SIRENE?">
    * **RNA**: All non-profits are automatically registered when declared at the prefecture (RNA number: W + 9 digits)
    * **SIRENE**: Non-profits must register if they seek public subsidies, employ staff, or are subject to VAT/corporate tax (SIREN: 9 digits)
    * **RNE**: Non-profits with SIRENE registration and business-like activities may also appear in INPI's unified register, which provides comprehensive data including UBOs

    **Key Takeaway:** All non-profits are in RNA, but only those with economic activities may also appear in RNE. Always use the RNA number (W-prefixed) as the API identifier.
  </Accordion>
</AccordionGroup>

### Data Source Priority & Routing

For a given entity, **data comes from a single primary source** -- the system does not merge attributes from multiple registries (all-or-nothing model). The only exception is **employee count**, which is always sourced separately from SIRENE.

<Note>
  **Source Priority for Commercial Companies & Sole Entrepreneurs (SIREN lookup):**

  1. **RNE (INPI)** -- Query to the INPI registry (with automatic fallback if the live API is temporarily unavailable)
  2. **SIRENE-only** -- For entities in INSEE but not in RNE (limited dataset: name, legal form, activity, status, employee count)
  3. **RNA tables** -- Waldec, Import, and Alsace-Moselle (first match wins)
  4. **BODACC** -- Last resort, for entities with legal announcements but no registry data (data extracted from announcement text)

  **Source Priority for Non-profits (RNA lookup):**

  1. Check if the RNA number has a SIREN in SIRENE. If yes, check if that SIREN exists in RNE. If yes, use RNE data
  2. **RNA Waldec** -- Non-profits created or modified since 2009
  3. **RNA Import** -- Historical non-profits (no changes declared since 2009)
  4. **RNA Alsace-Moselle** -- Local law non-profits (departments 57, 67, 68)

  **Important:** The system enforces that non-profits with RNA numbers in RNE **must be queried by their RNA number**, not by SIREN. Queries using SIREN for RNA-registered non-profits will return null.
</Note>

### Attribute-Level Source Mapping

When data comes from the RNE (the vast majority of commercial companies and sole entrepreneurs), the following table shows the source for each attribute:

| Attribute                        | Source             | Notes                                                                                                   |
| -------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |
| Company name, legal form, status | **RNE**            | From formality data                                                                                     |
| Registered address               | **RNE**            | From `adresseEntreprise`                                                                                |
| Share capital                    | **RNE**            | Amount, currency, variable/fixed                                                                        |
| Activity codes (APE/NAF)         | **RNE**            | Supplemented by SIRENE for some entities                                                                |
| Business purpose description     | **RNE**            | From `objet` field                                                                                      |
| Legal representatives            | **RNE**            | From formality *pouvoirs* data                                                                          |
| Shareholders                     | **RNE**            | From *beneficiaires effectifs* + *pouvoirs*                                                             |
| UBOs                             | **RNE**            | From *beneficiaires effectifs* with ownership modalities                                                |
| Establishments                   | **RNE**            | Main + secondary, each with its own activity codes (APE/NAF, NACE, ISIC) when the register records them |
| **Employee count range**         | **SIRENE (INSEE)** | Always from SIRENE, even when RNE is primary -- expressed in tranches, can be 2-3 years old             |

When the primary source is SIRENE-only or BODACC, the available attributes are significantly more limited (see Data Availability Matrix below).

### UBO Data Handling

<Tip>
  **Live UBO Fetching:** When UBO data is not yet available for a company, the system automatically fetches it live from the INPI registry. This ensures UBO data is always current, even for newly registered companies.
</Tip>

<Info>
  **Data Lineage (Upcoming):** We are planning to add explicit source traceability to our data model, so that each attribute group in the API response will carry metadata indicating the source registry name and retrieval timestamp.
</Info>

#### Enriched UBO data with customer INPI credentials

By default, Topograph queries INPI with a service account that returns UBO
data with personal fields (date of birth, full address, nationality, place
of birth) redacted per RGPD. If your organisation has one or more INPI
accounts that carry the `ROLE_RBE_BENEFICIAL_OWNERS` and
`ROLE_RBE_BENEFICIAL_OWNERS_PDF` roles (granted by INPI to obliged
entities), you can provide those credentials to unlock the full UBO dataset
and a richer synthesis PDF (`ubo_extract` document) for your own requests.

You can register several INPI accounts. Requests are spread across them and
fail over automatically if one account expires, is locked, or hits its
rate limit, so your enriched UBO access stays available.

When customer credentials are provisioned:

* The `ultimateBeneficialOwners` datapoint is fetched under your INPI
  account and carries the un-redacted personal fields.
* The `ubo_extract` document (synthesis PDF) is fetched under your INPI
  account and contains the richer content that INPI reserves for
  RBE-authorised accounts.
* Both the datapoint result and the downloaded PDF are isolated to your account.
  No other customer can observe or read your enriched response.

When no customer credentials are provisioned, Topograph returns the default redacted INPI response. Switching from the default path to customer credentials, or rotating them, always produces a fresh INPI fetch; no stale cross-regime data is ever served.

The `inpi_extract` (uncertified trade register extract) document always
uses the default service account, even when customer credentials are
provisioned. RBE enrichment only affects the UBO-focused synthesis PDF.

<Info>
  To provision customer INPI credentials for your account, contact
  **[support@topograph.co](mailto:support@topograph.co)**. We'll coordinate with you to verify your INPI
  account's RBE role set and store the credentials in our per-account secrets
  vault. Credentials can be rotated at any time without data loss.
</Info>

## Company Identifiers

### Query Identifiers

| Company Type                                  | Source | Format                          | Example          | Notes                                |
| --------------------------------------------- | ------ | ------------------------------- | ---------------- | ------------------------------------ |
| **Commercial companies & sole entrepreneurs** | RNE    | 9 digits (SIREN)                | `932884117`      | Standard business identifier         |
| **Non-profits**                               | RNA    | W + 9 digits                    | `W073000441`     | Always use RNA, even if SIREN exists |
| **Alsace-Moselle non-profits**                | RNA AM | A + year(4) + court(3) + seq(6) | `A2002THI000075` | Special local law format             |

<Tip>
  **Alsace-Moselle Format Breakdown:** `A2002THI000075` = `A` (prefix) + `2002`
  (year) + `THI` (court code: THI=Thionville, MET=Metz, SAG=Sarreguemines) +
  `000075` (sequence)
</Tip>

<Warning>
  **Strict format validation on `/v2/company`**

  The formats above are the only ones accepted as the `id` of a company request. Any other shape (a 14-digit SIRET, a VAT number as `FRXX` + SIREN or 11 bare digits, or anything else) is rejected immediately with **HTTP 400 (`invalid_request`)**, before any request is created or billed. This is distinct from `resource_not_found`, which means the identifier was well-formed but no entity exists behind it.

  SIRET and VAT numbers are supported in `/v2/search`, which resolves them to the canonical SIREN. Pass that SIREN to `/v2/company`. For a SIRET you can also simply take its first 9 digits.
</Warning>

<Warning>
  **Critical: RNA vs SIREN for Non-profits**

  Non-profits may have both an RNA number (W prefix) and a SIREN number. **Always use the RNA number (W-prefixed) as the API ID** for the most accurate and complete data retrieval. The system enforces this: querying by SIREN when an RNA number exists will return null.
</Warning>

### Identifiers in API Response

Once you retrieve company data, the `identifiers` object contains all available identifiers for that entity:

| Identifier Type    | Format                 | Example          | Found In                                                   |
| ------------------ | ---------------------- | ---------------- | ---------------------------------------------------------- |
| `SIREN`            | 9 digits               | `932884117`      | Commercial companies, sole entrepreneurs, some non-profits |
| `VAT`              | FR + 11 digits         | `FR03932884117`  | Commercial companies, sole entrepreneurs                   |
| `RNA`              | W + 9 digits           | `W073000441`     | Non-profits                                                |
| `rnaAlsaceMoselle` | A + year + court + seq | `A2002THI000075` | Alsace-Moselle non-profits                                 |

## Search Capabilities

| Search Type          | Pattern               | Example          | Match Type | Expected Results                                                                                |
| -------------------- | --------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------- |
| By SIREN             | 9 digits              | `932884117`      | Exact      | Exact match returned first (matchType: id); other results may follow                            |
| By SIRET             | 14 digits             | `93288411700011` | Exact      | Exact match returned first (matchType: id, converted to parent SIREN); other results may follow |
| By RNA               | W + 9 digits          | `W073000441`     | Exact      | Exact match returned first (matchType: id); other results may follow                            |
| By Alsace-Moselle ID | A + year + code + seq | `A2002THI000075` | Exact      | Exact match returned first (matchType: id); other results may follow                            |
| By VAT Number        | FR + 11 digits        | `FR03932884117`  | Exact      | Exact match returned first (matchType: id); other results may follow                            |
| By Name              | Text string           | `"TOPOGRAPH"`    | Fuzzy      | Multiple results across all sources                                                             |

### Search Source Priority

Search queries are dispatched across five sources in priority order:

1. **Index lookup by ID** -- Pre-built search index for identifier-based searches (SIREN, SIRET, VAT, RNA, Alsace-Moselle)
2. **RNE by ID** -- Live INPI API lookup for identifier-based searches
3. **Index search by Name** -- Pre-built search index for name-based fuzzy searches
4. **RNE by Name** -- Live INPI API for name-based searches
5. **BODACC by ID** -- Last resort, SIREN/SIRET only

<Tip>
  **Search Performance:** Use identifier-based searches (SIREN, RNA, VAT) for
  best performance and exact matching. Name searches may return multiple results
  from different registers (RNE, RNA Waldec, RNA Import, Alsace-Moselle).
</Tip>

<Note>
  **Search uses both pre-built indexes and live lookups.** Name searches query a pre-built index for fast results. Identifier searches (SIREN, RNA, VAT) also perform live registry lookups to ensure the most up-to-date data.
</Note>

## Quirks & Gotchas

| Quirk                                           | Details                                                                                                                                                               |
| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **All-or-nothing data model**                   | Data comes from a single source per entity -- no cross-registry merging. Exception: employee count always from SIRENE.                                                |
| **RNA number required for non-profits**         | Even if a non-profit has a SIREN, you **must** query by RNA number (W-prefix). Querying by SIREN returns null.                                                        |
| **Non-diffusible sole entrepreneurs**           | \~30% of EIs are marked non-diffusible by INSEE. Only minimal data returned (identifiers + VAT). No workaround.                                                       |
| **SIRENE employee data lag**                    | Employee count ranges (tranches) from SIRENE can be **2-3 years old** per INSEE methodology.                                                                          |
| **BODACC = AI-extracted text**                  | When BODACC is the source (rare last resort), company data and legal reps are extracted from announcement text by AI. Quality is lower.                               |
| **K-Bis only for active companies**             | Certified trade register extract (`certifiedTradeRegisterExtract`) is unavailable for closed/dissolved companies. Use INPI extract instead.                           |
| **Alsace-Moselle is separate**                  | Departments 57/67/68 non-profits use local law (German heritage). Different identifier format, different activity codes, different registry.                          |
| **ISIC sometimes AI-inferred**                  | NAFREV2-to-NACE mapping is deterministic. NACE-to-ISIC uses formal tables when possible, but falls back to AI. Check `isAIInferred` flag.                             |
| **RNE replaced 3 registries in 2023**           | Since Jan 1 2023, RNE unified RNCS + Repertoire des Metiers + Registre des Actifs Agricoles. Some legacy data may still reference old registries.                     |
| **JOAF docs are paid**                          | Non-profit documents from Journal Officiel are paid per document — see the pricing page for current rates. Not all non-profits publish to JOAF.                       |
| **SIRET auto-converted to SIREN (search only)** | In `/v2/search`, a 14-digit SIRET is automatically resolved to its parent 9-digit SIREN. In `/v2/company`, a SIRET is rejected with HTTP 400: pass the SIREN instead. |
| **SCI shareholders special case**               | For SCI (code 6540), **all** pouvoirs entries are treated as shareholders regardless of ownership percentage data.                                                    |

## Mappings

### Company Status

Company status is determined **deterministically** from RNE and SIRENE data -- no AI inference is involved.

#### RNE (primary source)

Status is derived from historical events, cessation indicators, and dormancy flags:

| Local Status | English          | Standardized Status         | Notes                                                    |
| ------------ | ---------------- | --------------------------- | -------------------------------------------------------- |
| Actif        | Active           | Active                      | No closure indicators                                    |
| En sommeil   | Dormant          | Active                      | Company temporarily inactive (`dateMiseEnSommeil` set)   |
| Ferme        | Closed           | Closed                      | Has cessation events, radiation dates, or closure events |
| --           | Under insolvency | Under Insolvency Proceeding | When faillite/redressement/sauvegarde events detected    |

**Closure reasons** (when status is Closed or Under Insolvency Proceeding):

| French Event                           | Standardized Closure Reason |
| -------------------------------------- | --------------------------- |
| Faillite                               | Bankruptcy                  |
| Redressement judiciaire / Sauvegarde   | Court Order                 |
| Dissolution avec liquidation           | Liquidation                 |
| Dissolution volontaire / sur decision  | Voluntary Dissolution       |
| Radiation / dissolution administrative | Administrative Dissolution  |
| Nature cessation code (fallback)       | Other                       |

#### SIRENE (fallback source)

| Code | Local Status | Standardized Status |
| ---- | ------------ | ------------------- |
| A    | Actif        | Active              |
| C    | Cesse        | Closed              |

<Note>
  SIRENE provides only a binary active/ceased status with no closure reasons or detailed dates. When RNE is the primary source (vast majority of cases), the richer RNE status logic is used.
</Note>

#### RNA Waldec / RNA Import

| Code | Local Status | Standardized Status |
| ---- | ------------ | ------------------- |
| A    | Active       | Active              |
| D    | Dissoute     | Closed              |
| S    | Supprimee    | Closed              |

#### RNA Alsace-Moselle

| Code     | Local Status | Standardized Status |
| -------- | ------------ | ------------------- |
| INSCRITE | Inscrite     | Active              |
| DISSOUTE | Dissoute     | Closed              |
| RADIEE   | Radiee       | Closed              |

### Legal Forms

France uses the **INSEE catégorie juridique nomenclature** (4-digit codes covering all entity types). Every code is mapped **deterministically** to a standardized legal form, English translation, and **ISO 20275 (ELF)** code via a static lookup table -- no AI is involved at runtime. The mapping was generated from the full RNE nomenclature (450 codes) using AI enrichment + ISO 20275 embedding lookup, then frozen as a static file.

<Note>
  Legal form mapping is **fully deterministic**. The local French legal form name (from the INSEE nomenclature) is always preserved verbatim alongside the standardized classification and ISO 20275 code.
</Note>

#### Key Business Forms

| Code | French Name                                                 | Abbr.      | Standardized              |
| ---- | ----------------------------------------------------------- | ---------- | ------------------------- |
| 5710 | Societe par actions simplifiee                              | SAS / SASU | Corporation               |
| 5499 | Societe a responsabilite limitee                            | SARL       | Limited Liability Company |
| 5498 | SARL d'attribution d'immeuble en jouissance a temps partage | --         | Limited Liability Company |
| 5599 | SA a conseil d'administration (sans autre indication)       | SA         | Corporation               |
| 5308 | Societe en commandite par actions                           | SCA        | Corporation               |
| 5202 | Societe en nom collectif                                    | SNC        | Partnership               |
| 5306 | Societe en commandite simple                                | SCS        | Partnership               |
| 5485 | Societe d'exercice liberal a responsabilite limitee         | SELARL     | Limited Liability Company |
| 5310 | Societe en libre partenariat                                | SLP        | Partnership               |

#### Sole Entrepreneurs

| Code | French Name             | Standardized        |
| ---- | ----------------------- | ------------------- |
| 1000 | Entrepreneur individuel | Sole Proprietorship |

#### Cooperatives

| Code | French Name                                                                | Abbr. | Standardized |
| ---- | -------------------------------------------------------------------------- | ----- | ------------ |
| 5458 | Societe cooperative ouvriere de production (SCOP) a responsabilite limitee | SCOP  | Cooperative  |
| 5462 | Societe cooperative d'interet collectif a responsabilite limitee           | SCIC  | Cooperative  |
| 5461 | Societe cooperative a responsabilite limitee                               | --    | Cooperative  |
| 5192 | Societe cooperative de banque populaire                                    | --    | Cooperative  |
| 5195 | Association cooperative inscrite (droit local Alsace Moselle)              | --    | Cooperative  |
| 5463 | Societe cooperative d'activite et d'emploi a responsabilite limitee        | --    | Cooperative  |
| 5465 | Societe cooperative d'habitants a responsabilite limitee                   | --    | Cooperative  |

#### Civil Companies

| Code | French Name                            | Abbr. | Standardized |
| ---- | -------------------------------------- | ----- | ------------ |
| 6540 | Societe civile immobiliere             | SCI   | Partnership  |
| 6533 | Societe civile professionnelle         | SCP   | Partnership  |
| 6595 | Societe civile d'exploitation agricole | GAEC  | Partnership  |

#### Non-Profits

| Code | French Name                                       | Standardized           |
| ---- | ------------------------------------------------- | ---------------------- |
| 9220 | Association declaree                              | Nonprofit Organization |
| 9221 | Association declaree d'insertion par l'economique | Nonprofit Organization |
| 9222 | Association intermediaire                         | Nonprofit Organization |
| 9223 | Association declaree, reconnue d'utilite publique | Nonprofit Organization |
| 9300 | Fondation                                         | Nonprofit Organization |

#### RNA Non-Profit Legal Forms (deterministic, no AI)

| Nature Code | French Name                                | ISO 20275 |
| ----------- | ------------------------------------------ | --------- |
| D           | Association declaree                       | BEWI      |
| R           | Association reconnue d'utilite publique    | XH8C      |
| U           | Union d'associations                       | 2N4L      |
| A           | Association d'interet general              | BEWI      |
| B           | Association de bienfaisance                | BEWI      |
| G / W       | Association cultuelle                      | PWKL      |
| I           | Association internationale                 | BEWI      |
| L           | Association de loi locale (Alsace-Moselle) | HF2L      |

<Note>
  RNA legal form mapping is **stable and deterministic** -- no AI parsers. It is based on the `nature` field (D, R, U, A, B, G, I, L) and the `groupement` field (S=Simple, U=Union, F=Federation).
</Note>

#### Public Entities

| Code | French Name                                                          | Standardized            |
| ---- | -------------------------------------------------------------------- | ----------------------- |
| 4110 | EPIC dote d'un comptable public                                      | Government-Owned Entity |
| 4120 | EPIC non dote d'un comptable public                                  | Government-Owned Entity |
| 4130 | Exploitant public                                                    | Government-Owned Entity |
| 4140 | EPIC local                                                           | Government-Owned Entity |
| 4150 | Regie d'une collectivite locale a caractere industriel ou commercial | Government-Owned Entity |
| 4160 | Institution Banque de France                                         | Government-Owned Entity |

#### Foreign Entities

| Code | French Name                                                                                  | Standardized                    |
| ---- | -------------------------------------------------------------------------------------------- | ------------------------------- |
| 3110 | Representation ou agence commerciale d'etat ou organisme public etranger immatriculee au RCS | Branch or Representative Office |
| 3120 | Societe commerciale etrangere immatriculee au RCS                                            | Branch or Representative Office |
| 3205 | Organisation internationale                                                                  | Branch or Representative Office |
| 3210 | Etat, collectivite ou etablissement public etranger                                          | Branch or Representative Office |
| 3220 | Societe etrangere non immatriculee au RCS                                                    | Branch or Representative Office |
| 3290 | Personne morale de droit etranger non immatriculee au RCS                                    | Branch or Representative Office |

#### Other Private Structures

| Code | French Name                                        | Standardized |
| ---- | -------------------------------------------------- | ------------ |
| 2110 | Indivision entre personnes physiques               | Other        |
| 2210 | Societe creee de fait entre personnes physiques    | Partnership  |
| 2310 | Societe en participation entre personnes physiques | Partnership  |
| 2400 | Fiducie                                            | Trust        |
| 2700 | Paroisse hors zone concordataire                   | Other        |
| 2800 | Assujetti unique a la TVA                          | Other        |

#### Social Security & Mutual Organizations

| Code | French Name                           | Standardized            |
| ---- | ------------------------------------- | ----------------------- |
| 8110 | Regime general de la Securite Sociale | Government-Owned Entity |
| 8210 | Mutuelle                              | Cooperative             |
| 8250 | Assurance mutuelle agricole           | Cooperative             |

<Tip>
  The full INSEE nomenclature is available at [INSEE](https://www.insee.fr/fr/information/2028129). All 450 codes from the RNE nomenclature are statically mapped with English translations, standardized categories, and ISO 20275 (ELF) codes in `legal-form-mapping.ts`.
</Tip>

### Legal Representatives

Legal representatives are extracted from the RNE `composition.pouvoirs` data. The classification of a role as **legal representative vs. other key person** is **fully deterministic** -- a static mapping covers all 71 RNE role codes, each with a standardized role, English translation, and `isLegalRepresentative` flag based on French corporate law. No AI is involved.

#### Complete RNE Role Mapping (71 roles)

<AccordionGroup>
  <Accordion title="Legal Representatives (30 roles) -- can bind the company">
    | Code | French Role                                                 | English                                          | Standardized         | Notes                         |
    | ---- | ----------------------------------------------------------- | ------------------------------------------------ | -------------------- | ----------------------------- |
    | 30   | Gérant                                                      | Manager (Gérant)                                 | Managing Director    | Most common for SARL/SNC      |
    | 28   | Gérant et associé indéfiniment et solidairement responsable | Manager and Unlimited Joint-Liability Partner    | Managing Director    | SNC gérant                    |
    | 29   | Gérant et associé indéfiniment responsable                  | Manager and Unlimited Liability Partner          | Managing Director    | SCS gérant                    |
    | 51   | Président du conseil d'administration                       | Chairman of the Board of Directors               | Chairman             | SA with board                 |
    | 52   | Président du directoire                                     | President of the Management Board                | President            | SA with directoire            |
    | 53   | Directeur Général                                           | Chief Executive Officer (Directeur Général)      | CEO                  | SA executive                  |
    | 60   | Président du CA et directeur général                        | Chairman and CEO (PDG)                           | CEO                  | Combined role in SA           |
    | 69   | Directeur général unique de SA à directoire                 | Sole General Director (SA with Management Board) | CEO                  | SA directoire variant         |
    | 70   | Directeur général délégué                                   | Deputy CEO (Directeur Général Délégué)           | Managing Director    | SA deputy executive           |
    | 73   | Président de SAS                                            | President of SAS                                 | President            | Most common for SAS           |
    | 55   | Dirigeant à l'étranger d'une personne morale étrangère      | Director of Foreign Entity (Abroad)              | Managing Director    | Foreign entity management     |
    | 56   | Dirigeant en France d'une personne morale étrangère         | Director of Foreign Entity (in France)           | Managing Director    | Foreign entity French branch  |
    | 66   | Personne ayant le pouvoir d'engager la société              | Authorized Signatory (Company)                   | Authorized Signatory | General signing authority     |
    | 67   | Personne ayant le pouvoir d'engager l'établissement         | Authorized Signatory (Establishment)             | Authorized Signatory | Establishment-level authority |
    | 76   | Représentant social d'une entreprise étrangère              | Social Representative of Foreign Entity          | Managing Director    | Foreign entity in France      |
    | 100  | Repreneur                                                   | Business Acquirer (Repreneur)                    | Owner                | Business acquisition          |
    | 101  | Entrepreneur                                                | Entrepreneur                                     | Owner                | Individual entrepreneur       |
    | 140  | Président de l'EPIC                                         | President of Public Commercial Establishment     | President            | EPIC entity                   |
    | 200  | Fiduciaire                                                  | Fiduciary                                        | Managing Director    | Trust management              |
    | 201  | Dirigeant                                                   | Director (Dirigeant)                             | Managing Director    | Generic executive             |
    | 203  | Membre bénéficiant d'un mandat général d'administration     | Member with General Administration Mandate       | Administrator        | Non-profit admin              |
    | 204  | Personne capable d'engager l'entité                         | Person Authorized to Bind the Entity             | Authorized Signatory | Non-profit signing authority  |
    | 205  | Président                                                   | President                                        | President            | Non-profit/generic president  |
    | 206  | Directeur                                                   | Director                                         | Director             | Generic director              |
    | 209  | Secrétaire général                                          | Secretary General                                | Secretary            | Non-profit executive          |
    | 212  | Personne désignée par les statuts                           | Person Designated by Bylaws                      | Managing Director    | Bylaws-designated authority   |
    | 40   | Liquidateur                                                 | Liquidator                                       | Liquidator           | Legal rep during liquidation  |
    | 41   | Associé unique (EURL)                                       | Sole Associate (Active in EURL)                  | Owner                | EURL sole partner managing    |
    | 86   | Exploitant pour le compte de l'indivision                   | Operator on behalf of Joint Ownership            | Managing Director    | Joint ownership operator      |
    | 90   | Personne physique, exploitant en commun                     | Joint Operator (Individual)                      | Partner              | Joint exploitation            |
  </Accordion>

  <Accordion title="Board & Supervisory Roles (12 roles) -- oversight, NOT legal representatives">
    | Code | French Role                                           | English                                             | Standardized           |
    | ---- | ----------------------------------------------------- | --------------------------------------------------- | ---------------------- |
    | 61   | Président du conseil de surveillance                  | Chairman of the Supervisory Board                   | Chairman of the Board  |
    | 63   | Membre du directoire                                  | Member of the Management Board                      | Executive Director     |
    | 64   | Membre du conseil de surveillance                     | Member of the Supervisory Board                     | Non-Executive Director |
    | 65   | Administrateur                                        | Board Member (Administrateur)                       | Board Member           |
    | 98   | Administrateur provisoire                             | Provisional Administrator                           | Administrator          |
    | 110  | Vice-Président                                        | Vice-President                                      | Vice-President         |
    | 111  | Vice-Président du Directoire                          | Vice-President of the Management Board              | Vice-President         |
    | 120  | VP du Conseil d'Orientation et de Surveillance        | Vice-President of Orientation and Supervision Board | Vice-President         |
    | 121  | Président du Conseil d'Orientation et de Surveillance | President of Orientation and Supervision Board      | Chairman of the Board  |
    | 122  | Membre du Conseil d'Orientation et de Surveillance    | Member of Orientation and Supervision Board         | Board Member           |
    | 210  | Membre du conseil syndical                            | Member of the Syndicate Council                     | Board Member           |
    | 211  | Président du conseil syndical                         | President of the Syndicate Council                  | Chairman of the Board  |
  </Accordion>

  <Accordion title="Audit & Control Roles (5 roles) -- NOT legal representatives">
    | Code | French Role                       | English                        | Standardized |
    | ---- | --------------------------------- | ------------------------------ | ------------ |
    | 71   | Commissaire aux comptes titulaire | Statutory Auditor (Titular)    | Auditor      |
    | 72   | Commissaire aux comptes suppléant | Statutory Auditor (Substitute) | Auditor      |
    | 13   | Contrôleur de gestion             | Management Controller          | Auditor      |
    | 14   | Contrôleur des comptes            | Accounts Controller            | Auditor      |
    | 104  | Personne chargée du contrôle      | Person in Charge of Control    | Auditor      |
  </Accordion>

  <Accordion title="Partner & Associate Roles (8 roles) -- NOT legal representatives">
    | Code | French Role                                       | English                             | Standardized    |
    | ---- | ------------------------------------------------- | ----------------------------------- | --------------- |
    | 74   | Associé indéfiniment et solidairement responsable | Unlimited Joint-Liability Partner   | General Partner |
    | 75   | Associé indéfiniment responsable                  | Unlimited Liability Partner         | General Partner |
    | 131  | Associé commandité                                | General Partner (Commandité)        | General Partner |
    | 132  | Associé commanditaire                             | Limited Partner (Commanditaire)     | Limited Partner |
    | 23   | Autre associé majoritaire                         | Other Majority Partner              | Partner         |
    | 95   | Associé qui participe à la gestion                | Partner Participating in Management | Partner         |
    | 96   | Associé non salarié                               | Non-Salaried Partner                | Partner         |
    | 130  | Associé unique qui récupère le patrimoine         | Sole Associate Recovering Assets    | Owner           |
  </Accordion>

  <Accordion title="Non-Profit Functional Roles (3 roles) -- NOT legal representatives">
    | Code | French Role                        | English                     | Standardized |
    | ---- | ---------------------------------- | --------------------------- | ------------ |
    | 207  | Trésorier                          | Treasurer                   | Treasurer    |
    | 208  | Secrétaire                         | Secretary                   | Secretary    |
    | 202  | Représentant de l'assujetti unique | Representative of VAT Group | Other        |
  </Accordion>

  <Accordion title="Other & Administrative Roles (13 roles) -- NOT legal representatives">
    | Code | French Role                                    | English                              | Standardized  |
    | ---- | ---------------------------------------------- | ------------------------------------ | ------------- |
    | 11   | Membre                                         | Member                               | Other         |
    | 77   | Représentant fiscal d'une entreprise étrangère | Tax Representative of Foreign Entity | Other         |
    | 82   | Indivisaire                                    | Joint Owner (Indivisaire)            | Other         |
    | 94   | Membre non salarié participant aux travaux     | Non-Salaried Worker-Member           | Other         |
    | 97   | Mandataire ad hoc                              | Ad Hoc Agent (Mandataire)            | Other         |
    | 99   | Autre                                          | Other                                | Other         |
    | 103  | Suppléant                                      | Substitute                           | Other         |
    | 105  | Personne décisionnaire désignée                | Designated Decision-Maker            | Other         |
    | 106  | Comptable                                      | Accountant                           | Other         |
    | 107  | Héritier indivisaire                           | Joint Heir (Indivisaire)             | Other         |
    | 108  | Loueur                                         | Lessor                               | Other         |
    | 109  | Mandataire fiscal                              | Tax Representative                   | Other         |
    | 150  | Avocat                                         | Lawyer                               | Legal Advisor |
  </Accordion>
</AccordionGroup>

<Note>
  The classification of each role as **legal representative** or **other key person** is **deterministic** and based on French corporate law. For example, a "Gérant" (code 30) is always a legal representative, while an "Administrateur" (code 65) is always an other key person. For individual entrepreneurs (`typePersonne = 'P'`), the entrepreneur is always mapped as the sole legal representative with role "Entrepreneur Individuel."
</Note>

<Tip>
  All 71 codes from the RNE role nomenclature are statically mapped in `role.util.ts` with standardized roles, English translations, and legal representative classification. No code is missing and no AI is involved.
</Tip>

### Shareholders

Shareholders are extracted from the RNE for **commercial companies only**. Non-profits and BODACC/SIRENE-only entities do not provide shareholder data.

#### Extraction Logic

Shareholders come from two RNE data sources, combined and deduplicated:

| Source                                         | When Used               | Data Extracted                                                                                |
| ---------------------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------- |
| **Beneficiaires effectifs** (UBO declarations) | Always (when available) | Only individuals with direct ownership (`detentionPartDirecte` AND `detentionPartTotale > 0`) |
| **Pouvoirs** (company officers)                | Complementary           | Individuals/companies with `detentionPartTotale > 0` (or ALL pouvoirs for SCI)                |

**Special case -- SCI (Societe Civile Immobiliere, code 6540):** All `pouvoirs` entries are treated as shareholders regardless of whether they have ownership percentage data. This reflects SCI's structure where all partners are inherently shareholders. Both individual and corporate shareholders are supported.

#### Ownership Fields

| Field             | Description           | Source                                     |
| ----------------- | --------------------- | ------------------------------------------ |
| `sharePercentage` | Ownership percentage  | `detentionPartTotale` from RNE             |
| `type`            | Individual or Company | Determined from pouvoir/UBO data structure |

<Note>
  Shareholder data is only available for companies in the RNE. Entities sourced from SIRENE-only, BODACC, or RNA do not include shareholders. Both individual and corporate shareholders are supported.
</Note>

### Activity Code Mapping

France uses the **NAFREV2** (Nomenclature d'Activites Francaise, Revision 2) classification, which extends the European NACE Rev. 2 standard with a trailing letter suffix. The system maps activity codes across three levels:

```
NAFREV2 (French) -> NACE Rev. 2 (European) -> ISIC Rev. 4 (International)
```

| Classification      | Source                                       | Example             | AI Inferred?        |
| ------------------- | -------------------------------------------- | ------------------- | ------------------- |
| **NAFREV2**         | RNE / SIRENE (APE code)                      | `5829C`             | No (official)       |
| **NACE**            | Derived from NAFREV2 (strip trailing letter) | `5829`              | No (formal mapping) |
| **ISIC**            | Derived from NACE (formal mapping) or AI     | `5820`              | Sometimes           |
| **RNA**             | RNA Waldec / Import (objet\_social codes)    | `011000` (Sports)   | No (official)       |
| **ALSACE\_MOSELLE** | RNA Alsace-Moselle (regional classification) | `SOCIAL-SOLIDARITE` | No (official)       |

<Note>
  **AI Enrichment:** When ISIC codes cannot be derived from NACE via formal mapping tables, the system uses AI to match activity descriptions to ISIC Rev. 4 codes. Every activity item includes an `isAIInferred` flag to distinguish official vs. AI-derived codes. NAFREV2 and NACE codes are **never** AI-inferred for France.
</Note>

<Note>
  **Establishment-level activity:** in France each establishment (SIRET) can have its own activity, which may differ from the company-level activity. When the register records it, every establishment in `company.establishments[]` carries its own `activities` object (NAFREV2 + NACE + ISIC), in the same shape as the company-level `activities`.
</Note>

#### Activity Codes by Source

| Source                 | Classifications returned                      | Notes                                            |
| ---------------------- | --------------------------------------------- | ------------------------------------------------ |
| **RNE**                | NAFREV2 + NACE + ISIC                         | From `codeApe` in formality data                 |
| **SIRENE**             | NAFREV2 + NACE + ISIC                         | From `activitePrincipaleUniteLegale`             |
| **RNA Waldec**         | RNA + (NAFREV2 + NACE if SIREN exists) + ISIC | RNA nomenclature codes + SIRENE APE if available |
| **RNA Import**         | RNA + ISIC                                    | RNA nomenclature codes only                      |
| **RNA Alsace-Moselle** | ALSACE\_MOSELLE + ISIC                        | Regional classification codes (DOMAINES/THEMES)  |

## Data Availability

### Data Availability Matrix

| Data Type                  | Commercial companies (RNE) | SIRENE-only         | BODACC          | RNA Waldec        | RNA Import    | Alsace-Moselle           |
| -------------------------- | -------------------------- | ------------------- | --------------- | ----------------- | ------------- | ------------------------ |
| Company Profile            | ✅ Full                     | ⚠️ Limited          | ⚠️ AI-extracted | ✅ Basic           | ✅ Basic       | ✅ Basic                  |
| Legal Representatives      | ✅ Comprehensive            | ❌                   | ⚠️ AI-extracted | ❌                 | ❌             | ❌                        |
| Shareholders               | ✅                          | ❌                   | ⚠️ AI-extracted | ❌                 | ❌             | ❌                        |
| Ultimate Beneficial Owners | ✅ (live fetch)             | ❌                   | ❌               | ❌                 | ❌             | ❌                        |
| Establishments             | ✅                          | ❌                   | ❌               | ⚠️ Via SIRENE     | ⚠️ Via SIRENE | ❌                        |
| Activity Codes             | ✅ NAFREV2/NACE/ISIC        | ✅ NAFREV2/NACE/ISIC | ❌               | ✅ RNA + NACE/ISIC | ✅ RNA + ISIC  | ✅ ALSACE\_MOSELLE + ISIC |
| Employee Count             | ✅ (from SIRENE)            | ✅                   | ❌               | ⚠️ Via SIRENE     | ⚠️ Via SIRENE | ❌                        |

**Legend:** ✅ Available | ❌ Not Available | ⚠️ Conditionally Available

#### Employee Count Tranches (SIRENE)

| Tranche Code | Range                 |
| ------------ | --------------------- |
| 00           | 0 employees           |
| 01           | 1-2 employees         |
| 02           | 3-5 employees         |
| 03           | 6-9 employees         |
| 11           | 10-19 employees       |
| 12           | 20-49 employees       |
| 21           | 50-99 employees       |
| 22           | 100-199 employees     |
| 31           | 200-249 employees     |
| 32           | 250-499 employees     |
| 41           | 500-999 employees     |
| 42           | 1,000-1,999 employees |
| 51           | 2,000-4,999 employees |
| 52           | 5,000-9,999 employees |
| 53           | 10,000+ employees     |

### Documents by Company Type

#### Commercial companies & sole entrepreneurs (SIREN)

| Document Type                     | API Category                          | Format | Catalog item                     | Availability                      | Notes                                            |
| --------------------------------- | ------------------------------------- | ------ | -------------------------------- | --------------------------------- | ------------------------------------------------ |
| **K-Bis (Certified Extract)**     | `certifiedTradeRegisterExtract`       | PDF    | `FRA_CERTIFIED_REGISTER_EXTRACT` | ✅ Active + in RNE + on Infogreffe | Official certified trade register extract        |
| **INPI Extract (Uncertified)**    | `tradeRegisterExtract`                | PDF    | `FRA_REGISTER_EXTRACT`           | ✅ Active + in RNE                 | Non-certified trade register extract             |
| **UBO Extract**                   | `ultimateBeneficialOwnersCertificate` | PDF    | `FRA_UBO_FORM`                   | ✅ Active + in RNE                 | Ultimate beneficial owners certificate           |
| **Avis de situation INSEE**       | `otherDocuments[]`                    | PDF    | `FRA_COMPANY_DATA`               | ✅ Active                          | Identity sheet from the SIRENE directory         |
| **Financial Statements (Bilans)** | `financialStatements[]`               | PDF    | `FRA_FINANCIAL_STATEMENTS`       | ✅ When filed                      | Annual accounts filed with RNE (formal mapping)  |
| **Company Documents (Actes)**     | `articlesOfAssociation[]`             | PDF    | `FRA_STATUS`                     | ✅ When filed                      | Statutes, decisions, formalities (AI-classified) |

#### Non-profits (RNA Waldec, RNA Import, Alsace-Moselle)

| Document Type                  | API Category             | Format | Catalog item          | Availability    | Notes                                                                           |
| ------------------------------ | ------------------------ | ------ | --------------------- | --------------- | ------------------------------------------------------------------------------- |
| **JOAF Official Publications** | `officialPublications[]` | PDF    | `FRA_OTHER_DOCUMENTS` | ⚠️ If published | Gazette publications (paid, see [pricing](https://www.topograph.co/pricing))    |
| **JOAF Financial Statements**  | `financialStatements[]`  | PDF    | `FRA_OTHER_DOCUMENTS` | ⚠️ If published | Annual accounts in JOAF (paid, see [pricing](https://www.topograph.co/pricing)) |

<Warning>
  **K-Bis Availability:** The certified K-Bis extract (`certifiedTradeRegisterExtract`) requires three conditions: company is **active**, is **in RNE**, and is **available on Infogreffe** (verified via Infogreffe API). Inactive, dissolved, or liquidated companies can only access the uncertified INPI extract (`tradeRegisterExtract`).
</Warning>

<Note>
  **Avis de situation INSEE:** Available for any active company in SIRENE, regardless of K-Bis availability. Returned in `otherDocuments[]`. It contains registration details, activity code, and address from the SIRENE directory.
</Note>

<Note>
  **JOAF Documents:** The Journal Officiel des Associations et Fondations (JOAF) publishes official documents for non-profits. These documents are conditionally available -- not all non-profits publish to JOAF. When available, they appear under `officialPublications` and `financialStatements` categories. JOAF documents are paid (see [pricing](https://www.topograph.co/pricing)) and include two sources: JOAFE (gazette publications) and DCA (annual accounts).
</Note>

### Example API Responses

All examples use **placeholder data**. Query: `POST /v2/company` with `{ "id": "<id>", "countryCode": "FR", "dataPoints": ["company", "legalRepresentatives"] }`

<AccordionGroup>
  <Accordion title="Active SAS (Source: RNE) -- with UBOs">
    ```json theme={null}
    {
      "company": {
        "id": "123456789",
        "countryCode": "FR",
        "identifiers": { "VAT": "XX123456789" },
        "taxId": { "type": "eu_vat", "value": "XX123456789", "country": "FR", "verification": { "status": "verified", "verifiedName": "SAS EXAMPLE CORP" } },
        "legalName": "Example Corp",
        "registrationDate": "2023-03-15",
        "activityDescription": "Developpement et commercialisation de logiciels professionnels.",
        "status": { "localName": "Actif", "active": true, "statusDetails": { "status": "ACTIVE" } },
        "legalForm": { "localName": "SAS, societe par actions simplifiee", "standardized": "Corporation", "iso20275Code": "6CHY" },
        "capital": { "amount": 10000, "currency": "EUR" },
        "activities": {
          "NAFREV2": [{ "code": "6201Z", "description": "Programmation informatique", "isAIInferred": false }],
          "NACE": [{ "code": "6201", "description": "Programmation informatique", "isAIInferred": false }],
          "ISIC": [{ "code": "6201", "description": "Computer programming activities", "isAIInferred": true }]
        },
        "legalAddress": { "addressLine1": "10 Rue de la Paix", "city": "Paris", "postalCode": "75002", "countryCode": "FR" }
      },
      "legalRepresentatives": [
        { "type": "individual", "role": { "localName": "President de SAS", "standardized": "President" }, "individual": { "name": { "fullName": "Jean DUPONT" }, "birthDate": { "month": 6, "year": 1985 } } },
        { "type": "individual", "role": { "localName": "Directeur General", "standardized": "Chief Executive Officer" }, "individual": { "name": { "fullName": "Marie MARTIN" }, "birthDate": { "month": 9, "year": 1990 } } }
      ],
      "ultimateBeneficialOwners": [
        {
          "entityId": "ubo_001",
          "type": "individual",
          "individual": { "name": { "fullName": "Jean DUPONT", "firstName": "Jean", "lastName": "DUPONT" }, "birthDate": { "month": 6, "year": 1985 }, "nationality": "Francaise" },
          "ownershipPercentage": 75,
          "votingRightsPercentage": 75,
          "ownershipModalities": ["Detention directe du capital"]
        },
        {
          "entityId": "ubo_002",
          "type": "individual",
          "individual": { "name": { "fullName": "Marie MARTIN", "firstName": "Marie", "lastName": "MARTIN" }, "birthDate": { "month": 9, "year": 1990 }, "nationality": "Francaise" },
          "ownershipPercentage": 25,
          "votingRightsPercentage": 25,
          "ownershipModalities": ["Detention directe du capital"]
        }
      ],
      "establishments": [
        { "id": "12345678900011", "name": "Example Corp", "creationDate": "2023-03-15", "active": true, "address": { "addressLine1": "10 Rue de la Paix", "city": "Paris", "postalCode": "75002", "countryCode": "FR" } }
      ]
    }
    ```
  </Accordion>

  <Accordion title="Closed SARL (Source: RNE)">
    ```json theme={null}
    {
      "company": {
        "id": "987654321",
        "countryCode": "FR",
        "identifiers": { "VAT": "YY987654321" },
        "taxId": { "type": "eu_vat", "value": "YY987654321", "country": "FR", "verification": { "status": "unverified" } },
        "legalName": "Ancienne Boutique",
        "registrationDate": "2015-01-10",
        "activityDescription": "Commerce de detail de vetements.",
        "status": { "localName": "Radiation", "active": false, "statusDetails": { "status": "CLOSED" } },
        "legalForm": { "localName": "SARL, Societe a responsabilite limitee", "standardized": "Limited Liability Company", "iso20275Code": "V9QP" },
        "capital": { "amount": 5000, "currency": "EUR" },
        "activities": {
          "NAFREV2": [{ "code": "4771Z", "description": "Commerce de detail d'habillement", "isAIInferred": false }],
          "NACE": [{ "code": "4771", "description": "Commerce de detail d'habillement", "isAIInferred": false }],
          "ISIC": [{ "code": "4771", "description": "Retail sale of clothing", "isAIInferred": true }]
        },
        "legalAddress": { "addressLine1": "25 Rue du Commerce", "city": "Lyon", "postalCode": "69002", "countryCode": "FR" }
      },
      "legalRepresentatives": [
        { "type": "individual", "role": { "localName": "Gerant", "standardized": "Manager" }, "individual": { "name": { "fullName": "Pierre DURAND" }, "birthDate": { "month": 3, "year": 1978 } } }
      ],
      "establishments": [
        { "id": "98765432100015", "name": "Ancienne Boutique", "creationDate": "2015-01-10", "endDate": "2023-06-30", "active": false, "address": { "addressLine1": "25 Rue du Commerce", "city": "Lyon", "postalCode": "69002", "countryCode": "FR" } }
      ]
    }
    ```

    **Note:** Closed companies have `active: false`, status `Radiation`, and `endDate` on establishments. K-Bis (certified extract) is **not available** for closed companies.
  </Accordion>

  <Accordion title="Sole Entrepreneur -- EI (Source: RNE)">
    Sole entrepreneurs (personnes physiques) are often **non-diffusible** in SIRENE, returning minimal data. Below is a diffusible example.

    ```json theme={null}
    {
      "company": {
        "id": "111222333",
        "countryCode": "FR",
        "identifiers": { "VAT": "ZZ111222333" },
        "legalName": "Sophie BERNARD",
        "registrationDate": "2020-09-01",
        "activityDescription": "Activites de conseil en gestion.",
        "status": { "localName": "Actif", "active": true },
        "legalForm": { "localName": "Entrepreneur individuel", "standardized": "Sole Proprietorship", "iso20275Code": "SV8C" },
        "activities": {
          "NAFREV2": [{ "code": "7022Z", "description": "Conseil pour les affaires et autres conseils de gestion", "isAIInferred": false }],
          "NACE": [{ "code": "7022", "description": "Conseil pour les affaires et autres conseils de gestion", "isAIInferred": false }],
          "ISIC": [{ "code": "7020", "description": "Management consultancy activities", "isAIInferred": true }]
        },
        "legalAddress": { "addressLine1": "5 Impasse des Lilas", "city": "Nantes", "postalCode": "44000", "countryCode": "FR" }
      },
      "establishments": [
        { "id": "11122233300012", "name": "Sophie BERNARD", "creationDate": "2020-09-01", "active": true }
      ]
    }
    ```

    **Note:** No legal representatives (the entrepreneur *is* the company), no shareholders, no UBOs. `legalName` is the individual's name.
  </Accordion>

  <Accordion title="Non-profit -- Association declaree (RNA Waldec)">
    ```json theme={null}
    {
      "company": {
        "id": "W751000001",
        "countryCode": "FR",
        "identifiers": { "rna": "W751000001" },
        "legalName": "ASSOCIATION SPORTIVE DU QUARTIER",
        "registrationDate": "2016-10-20",
        "activityDescription": "Promouvoir la pratique sportive et organiser des evenements.",
        "status": { "localName": "Active", "active": true },
        "legalForm": { "localName": "Association declaree", "iso20275Code": "BEWI" },
        "activities": {
          "RNA": [{ "code": "011000", "description": "SPORTS, ACTIVITES DE PLEIN AIR" }],
          "NACE": [{ "code": "93.12", "description": "Activities of sports clubs", "isAIInferred": true }],
          "ISIC": [{ "code": "9312", "description": "Activities of sports clubs", "isAIInferred": true }]
        },
        "legalAddress": { "addressLine1": "21 Rue des Associations", "city": "Paris", "postalCode": "75007", "countryCode": "FR" }
      }
    }
    ```

    **Note:** No legal representatives, shareholders, UBOs, or establishments. Activity codes use RNA nomenclature + AI-inferred NACE/ISIC.
  </Accordion>

  <Accordion title="Non-profit -- Association de droit local (RNA Alsace-Moselle)">
    ```json theme={null}
    {
      "company": {
        "id": "A2002THI000001",
        "countryCode": "FR",
        "identifiers": { "rnaAlsaceMoselle": "A2002THI000001" },
        "legalName": "ENTRAIDE SOLIDAIRE DE THIONVILLE",
        "registrationDate": "2002-11-03",
        "activityDescription": "Soutien aux familles en difficulte et aide alimentaire.",
        "status": { "localName": "Inscrite", "active": true },
        "legalForm": { "localName": "Association de droit local Alsace-Moselle", "iso20275Code": "HF2L" },
        "activities": {
          "ALSACE_MOSELLE": [{ "code": "SOCIAL-SOLIDARITE", "description": "Divers social" }],
          "NACE": [{ "code": "88.99", "description": "Other social work activities without accommodation", "isAIInferred": true }],
          "ISIC": [{ "code": "889", "description": "Other social work activities without accommodation", "isAIInferred": true }]
        },
        "legalAddress": { "addressLine1": "1 Rue de la Gare", "city": "Thionville", "postalCode": "57100", "countryCode": "FR" }
      }
    }
    ```

    **Note:** Uses `ALSACE_MOSELLE` classification instead of RNA nomenclature. Status `Inscrite` (not `Active`). Court codes: THI (Thionville), MET (Metz), SAG (Sarreguemines).
  </Accordion>

  <Accordion title="UBO Response (dedicated datapoint)">
    Query with `"dataPoints": ["ultimateBeneficialOwners"]`:

    ```json theme={null}
    {
      "ultimateBeneficialOwners": [
        {
          "entityId": "ubo_001",
          "type": "individual",
          "individual": {
            "name": { "fullName": "Jean DUPONT", "firstName": "Jean", "lastName": "DUPONT" },
            "birthDate": { "month": 6, "year": 1985 },
            "nationality": "Francaise",
            "birthCity": "Paris",
            "birthCountry": "France"
          },
          "ownershipPercentage": 75,
          "votingRightsPercentage": 75,
          "ownershipModalities": ["Detention directe du capital"],
          "registrationDate": "2023-03-15"
        }
      ]
    }
    ```

    **Note:** UBOs are only available for commercial companies in the RNE. Fetched live from INPI API if not already available. Includes ownership/voting percentages and modalities in French.
  </Accordion>

  <Accordion title="Available Documents (company example)">
    Documents are returned when `"dataPoints": ["availableDocuments"]` is requested.

    **Commercial companies & sole entrepreneurs (SIREN):**

    | API Category                          | Document                    | Notes                           |
    | ------------------------------------- | --------------------------- | ------------------------------- |
    | `certifiedTradeRegisterExtract`       | K-Bis PDF                   | Active + in RNE + on Infogreffe |
    | `tradeRegisterExtract`                | INPI extract PDF            | Active + in RNE                 |
    | `ultimateBeneficialOwnersCertificate` | UBO declaration PDF         | Active + in RNE                 |
    | `otherDocuments[]`                    | Avis de situation INSEE     | Active                          |
    | `financialStatements[]`               | Annual accounts (bilans)    | When filed (formal mapping)     |
    | `articlesOfAssociation[]`             | Statutes, decisions (actes) | AI-classified                   |

    **Non-profits (RNA):**

    | API Category             | Document                  | Notes                                                                |
    | ------------------------ | ------------------------- | -------------------------------------------------------------------- |
    | `officialPublications[]` | JOAF gazette publications | If published, paid (see [pricing](https://www.topograph.co/pricing)) |
    | `financialStatements[]`  | JOAF annual accounts      | If published, paid (see [pricing](https://www.topograph.co/pricing)) |
  </Accordion>
</AccordionGroup>
