Data Sources
France uses multiple registers depending on the entity type:
- RNE (Registre National des Entreprises) - INPI’s unified business register for companies and some associations. Includes UBO data.
- RNA Waldec - National association register for active associations. Enriched with SIRENE data.
- RNA Import - Alternative association register for entities not in RNA Waldec or RNE.
- RNA Alsace-Moselle - Regional register for associations under special local law (Alsace-Moselle regions).
The system queries all sources in parallel and returns data from the first available source in priority order (RNE → RNA Waldec → RNA Import → RNA Alsace-Moselle).
Associations in RNE vs SIRENE (RNA)Understanding when associations appear in different registers:RNA (Répertoire National des Associations):
- All associations are automatically registered in RNA when declared at the prefecture
- They receive a unique RNA number (W + 9 digits)
- This is the primary register for all French associations
SIRENE (Système d’Identification du Répertoire des Entreprises):
- Associations must register in SIRENE if they:
- Seek public subsidies from the state or local authorities
- Plan to employ salaried staff
- Engage in activities subject to VAT or corporate tax
- Upon registration, they receive a SIREN number (9 digits)
RNE (Registre National des Entreprises):
- Associations that have registered in SIRENE and conduct business-like activities may appear in RNE
- RNE is INPI’s unified business register, designed primarily for companies
- Associations in RNE typically have SIREN numbers and are registered as businesses due to their economic activities
- RNE provides comprehensive business data including UBO (Ultimate Beneficial Owner) information
Key Takeaway: All associations are in RNA, but only those with economic activities (requiring SIRENE registration) may also appear in RNE. When querying associations, always use the RNA number (W-prefixed) as the API identifier, even if the association has a SIREN number.
Company Identifiers
Query Identifiers
| Company Type | Source | Format | Example | Notes |
|---|
| Companies | RNE | 9 digits (SIREN) | 932884117 | Standard business identifier |
| Associations | RNA | W + 9 digits | W073000441 | Always use RNA, even if SIREN exists |
| Alsace-Moselle Associations | RNA AM | A + year(4) + court(3) + seq(6) | A2002THI000075 | Special local law format |
Alsace-Moselle Format Breakdown: A2002THI000075 = A (prefix) + 2002
(year) + THI (court code: THI=Thionville, MET=Metz, SAG=Sarreguemines) +
000075 (sequence)
Critical: RNA vs SIREN for AssociationsAssociations 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.
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 | Companies, some associations |
VAT | FR + 11 digits | FR03932884117 | Companies with VAT registration |
RNA | W + 9 digits | W073000441 | Associations |
rnaAlsaceMoselle | A + year + court + seq | A2002THI000075 | Alsace-Moselle associations |
Data Availability Matrix
| Data Type | Companies (RNE) | RNA Waldec | RNA Import | Alsace-Moselle | Notes |
|---|
| Company Profile | ✅ Async | ✅ Async | ✅ Async | ✅ Async | Full data for RNE, basic for associations |
| Legal Representatives | ✅ | ⚠️ Limited | ⚠️ Limited | ⚠️ Limited | Comprehensive for RNE companies only |
| Shareholders | ✅ | ❌ | ❌ | ❌ | RNE companies only |
| Ultimate Beneficial Owners | ✅ | ❌ | ❌ | ❌ | Fetched live from INPI API if needed |
| Establishments | ✅ | ⚠️ Via SIRENE | ⚠️ Via SIRENE | ❌ | SIRENE data when SIREN exists |
| Activity Codes | ✅ | ✅ | ✅ | ✅ | NACE/ISIC mapping |
Legend: ✅ Available | ❌ Not Available | ⚠️ Conditionally Available | Async = Asynchronous processing (2-5 min timeout)
Documents by Company Type
Companies (RNE - SIREN)
| Document Type | API Category | Format | SKU | Availability | Notes |
|---|
| K-Bis (Certified Extract) | certifiedTradeRegisterExtract | PDF | FRA_CERTIFIED_REGISTER_EXTRACT | ✅ Active companies only | Official certified trade register extract |
| INPI Extract (Uncertified) | tradeRegisterExtract | PDF | FRA_REGISTER_EXTRACT | ✅ All companies | Non-certified trade register extract |
| UBO Extract | ultimateBeneficialOwnersCertificate | PDF | FRA_UBO_FORM | ✅ All companies | Ultimate beneficial owners certificate |
| Financial Statements (Bilans) | financialStatements[] | PDF | FRA_FINANCIAL_STATEMENTS | ✅ When filed | Annual accounts filed with RNE |
| Company Documents (Actes) | articlesOfAssociation[] | PDF | FRA_STATUS | ✅ When filed | Statutes, decisions, formalities (AI-classified) |
Associations (RNA Waldec, RNA Import, Alsace-Moselle)
| Document Type | API Category | Format | SKU | Availability | Notes |
|---|
| JOAF Official Publications | officialPublications[] | PDF | FRA_OTHER_DOCUMENTS | ⚠️ If published | Gazette publications (€0.40/doc) |
| JOAF Financial Statements | financialStatements[] | PDF | FRA_OTHER_DOCUMENTS | ⚠️ If published | Annual accounts in JOAF (€0.40/doc) |
K-Bis Availability: The certified K-Bis extract
(certifiedTradeRegisterExtract) is only available for active companies.
Inactive, dissolved, or liquidated companies can only access the uncertified
INPI extract (tradeRegisterExtract).
JOAF Documents: The Journal Officiel des Associations et Fondations (JOAF)
publishes official documents for associations. These documents are
conditionally available - not all associations publish to JOAF. When
available, they appear under officialPublications and financialStatements
categories with a price of €0.40 per document.
Search Capabilities
| Search Type | Pattern | Example | Match Type | Expected Results |
|---|
| By SIREN | 9 digits | 932884117 | Exact | Single company (1 result) |
| By RNA | W + 9 digits | W073000441 | Exact | Single association (1 result) |
| By Alsace-Moselle ID | A + year + code + seq | A2002THI000075 | Exact | Single association (1 result) |
| By VAT Number | FR + 11 digits | FR03932884117 | Exact | Single company (1 result) |
| By Name | Text string | "TOPOGRAPH" | Fuzzy | Multiple results across all sources |
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).
Data Source Priority & Routing
When querying French entities, the system queries all 4 sources in parallel and returns the first available result:
Automatic Source Selection (Priority Order):
-
RNE (Registre National des Entreprises) - INPI’s unified business register
- All companies with SIREN
- Some associations with SIREN (if registered as businesses)
- Includes UBO data (fetched live from INPI API if not cached)
-
RNA Waldec - Active associations register
- Associations not present in RNE
- Enriched with SIRENE data when SIREN available
- Exclusion logic: SQL query excludes associations that exist in RNE
-
RNA Import - Alternative associations register
- Associations not in RNA Waldec or RNE
- Legacy/transitional records
-
RNA Alsace-Moselle - Regional associations register
- Special local law associations (Alsace-Moselle regions)
- Separate identifier format (A prefix)
Important: The system enforces that associations with RNA numbers in RNE must be queried by their RNA number, not by SIREN. Queries using SIREN for RNA-registered associations will return null.
UBO Data Handling
Live UBO Fetching: If UBO data doesn’t exist in the local RNE database
cache, the system automatically fetches fresh data from the INPI API in
real-time (5-minute timeout, 5 retry attempts). This ensures UBO data is
always current, even for newly registered companies.
Example API Responses
Company (RNE)
Query: /company?countryCode=FR&id=932884117
{
"company": {
"id": "932884117", // ← The ID you used to query
"countryCode": "FR",
"legalName": "TOPOGRAPH",
"identifiers": {
// ← Additional identifiers in the response
"SIREN": "932884117",
"VAT": "FR03932884117"
},
"legalForm": {
"iso20275Code": "54RD",
"localName": "Société par actions simplifiée"
},
"status": {
"active": true
}
}
}
Association (RNA Waldec)
Query: /company?countryCode=FR&id=W073000441
{
"company": {
"id": "W073000441", // ← RNA number used as query ID
"countryCode": "FR",
"legalName": "ASSOCIATION EXAMPLE",
"identifiers": {
"RNA": "W073000441",
"SIREN": "775684970" // May have SIREN, but query by RNA!
},
"legalForm": {
"localName": "Association déclarée"
}
}
}
Alsace-Moselle Association
Query: /company?countryCode=FR&id=A2002THI000075
{
"company": {
"id": "A2002THI000075", // ← Alsace-Moselle ID
"countryCode": "FR",
"legalName": "ASSOCIATION ALSACE MOSELLE EXAMPLE",
"identifiers": {
"rnaAlsaceMoselle": "A2002THI000075"
},
"legalForm": {
"localName": "Association de droit local Alsace-Moselle"
}
}
}
Important Implementation Notes
France uses standard ISO 20275 codes for company legal forms (e.g., 54RD for SAS, XJLU for SARL). Associations use descriptive local names:
- Standard associations: “Association déclarée”
- Alsace-Moselle associations: “Association de droit local Alsace-Moselle”
Regional Specificity
Alsace-Moselle associations operate under special local law inherited from German legislation (1870-1918). These associations are registered in local tribunals rather than the national RNA register, hence the different identifier format.
Data Freshness & Update Frequency
| Data Source | Update Frequency | Real-time Capabilities |
|---|
| RNE (Companies) | Monthly stock (via INPI FTP) | ✅ Live UBO fetching from INPI API |
| RNA Waldec | Monthly updates (data.gouv.fr) | ❌ Batch only |
| RNA Import | Monthly updates (data.gouv.fr) | ❌ Batch only |
| RNA Alsace-Moselle | Monthly updates (data.gouv.fr) | ❌ Batch only |
| JOAF Documents | Continuous (as published) | ✅ Real-time document availability |
Processing & Retry Logic
All operations use asynchronous processing with automatic retries:
- Standard activities: 2-minute timeout, 3 retry attempts
- INPI API calls: 5-minute timeout, 5 retry attempts (rate limits not retried)
- Document processing: 1-2 minute timeout, 2-3 retry attempts
- AI document classification: 5-minute timeout, 2 retry attempts
Recent Identifier System Rework: The identifier system was completely
reworked in October 2025 to improve consistency and reliability across all
French entity types. If you experience any issues with identifier resolution,
please contact support.