eKYB Prefill in France leverages France's source of truth to automatically retrieve and populate business information based on a company's SIREN, SIRET, RCS, RC, or VAT number, including the business name, registered address, entity type, registration status, directors, shareholders, and additional financial and corporate data, without requiring manual input from the user.
Source
| Country | Source | Description |
|---|---|---|
| France | FR_KYB_PREFILL |
Returns matching French business details from France's source of truth for pre-fill. |
Direct API approach
For general integration notes and shared response semantics, see the eKYB Prefill API Reference.
All module configurations and user data can be forwarded directly in the request for performing a Prefill lookup. This overrides existing configuration and data collected about the user.
Endpoint
POST /omni/externalVerification/ekyb-prefill
Request parameters
| Parameter | Required | Description |
|---|---|---|
| plugins | Mandatory | String array. Must be ["ekyb-prefill"]. Specifies the Prefill flow. |
| source | Mandatory | String. Must be FR_KYB_PREFILL. Identifies the Prefill source. |
| country | Mandatory | String. Two-letter Alpha-2 country code. Must be FR. |
| taxId | Mandatory | String. French business identifier. See Tax ID formats for details. |
| businessName | Optional | String. Registered name of the business. When provided, adds nameMatch to the response. |
| address | Optional | String. Business address as a freeform string. When provided, adds addressMatch to the response. |
Tax ID formats
The taxId field accepts five French business identifier types. Routing between them is determined automatically by the format of the submitted value.
| ID Type | Description | Format | Example |
|---|---|---|---|
| SIREN | Company-level identifier issued by INSEE | 9 numeric digits | 775670417 |
| SIRET | Establishment-level identifier (SIREN + NIC suffix) | 14 numeric digits (9-digit SIREN + 5-digit NIC) | 12345678901234 |
| RCS | Registre du Commerce et des Sociétés number | RCS + registering court city + SIREN |
RCS Paris 775 670 417 |
| RC | Registre du Commerce number for artisans/crafts | RC + city + registration number |
Paris 123 456 789 |
| VAT number | French intra-community VAT identifier | FR + 2-digit check code + 9-digit SIREN (13 characters total) |
FR81775670417 |
Inputs that do not match any of the above formats return a 400 error.
Sample request
{
"plugins": ["ekyb-prefill"],
"source": "FR_KYB_PREFILL",
"country": "FR",
"taxId": "12345678901234",
"businessName": "Entreprise Exemple SAS",
"address": "10 Rue de Rivoli, 75001 Paris, France"
}
Sample response
The Prefill response returns business data retrieved directly from the source of truth. Fields are returned as-is from the source. nameMatch and addressMatch are only present when businessName or address were submitted in the request. vatNo and leiNumber are only present when available on file for the company.
Example 1 — ABERMIDONE (small company)
{
"kyb-prefill": [
{
"tin": "12345678901234",
"vatNo": "FR12345678901",
"name": "ABERMIDONE",
"nameMatch": "Verified",
"address": "10 Rue de Rivoli, 75001 Paris, France",
"city": "Paris",
"postalCode": "75001",
"entityType": "Simplified joint stock company",
"registrationStatus": "Active",
"registrationDate": "2013-09-25T00:00:00Z",
"creditRating": "B",
"creditRatingDescription": "Low Risk",
"industryDesc": "Retail sale via home-shopping by general catalogue",
"activityDesc": "Retail sale via home-shopping by general catalogue",
"employeeCount": "7 to 9 employees",
"otherAddresses": [
{ "type": null, "otherAddress": "33185 LE HAILLAN" },
{ "type": null, "otherAddress": "75008 PARIS" }
],
"shareholders": [
{ "name": "Groupe Exemple SA", "percentSharesHeld": 100 }
],
"directors": [
{ "name": "Groupe Exemple SA", "positionName": "President" }
],
"ultimateParent": { "name": "Groupe Exemple SA", "country": "FR" },
"immediateParent": { "name": "Groupe Exemple SA", "country": "FR" }
}
]
}
Example 2 — LVMH MOET HENNESSY LOUIS VUITTON (large public company)
{
"kyb-prefill": [
{
"tin": "12345678901234",
"vatNo": "FR12345678901",
"leiNumber": "549300ECLIPSELUXE199",
"name": "Maison Éclipse Luxe SAS",
"nameMatch": "Verified",
"address": "108 AVENUE RIVIÈRE 75008 PARIS",
"city": "PARIS",
"postalCode": "75008",
"entityType": "European Company",
"registrationStatus": "Active",
"registrationDate": "1989-01-13T00:00:00Z",
"creditRating": "A",
"creditRatingDescription": "Very Low Risk",
"industryDesc": "Activities of head offices",
"activityDesc": "Activities of head offices",
"turnover": { "currency": "EUR", "value": 748000000 },
"employeeCount": "20",
"shareholders": [
{ "name": "FINANCIÈRE ÉCLAT", "percentSharesHeld": 6.73 },
{ "name": "FAMILLE BEAUMONT", "percentSharesHeld": 0.57 }
],
"directors": [
{ "name": "M BERNARD BEAUMONT", "positionName": "Chairman of the Board" },
{ "name": "Mme LYDIA ANNA-NOËLLE DUNE", "positionName": "Administrator" }
]
}
]
}
Response fields
| Key | Value | Description |
|---|---|---|
| tin | SIREN or SIRET | The company registration number as confirmed by the source of truth. |
| vatNo | VAT number | The French VAT number (TVA intracommunautaire) as returned from the source of truth (for example, FR81775670417). Only present when available on file for the company. |
| leiNumber | LEI number | The Legal Entity Identifier as returned from the source of truth. Only present when available — not all French companies have one. |
| name | Business name | The registered legal name of the business as returned from the source of truth. |
| nameMatch | Verified, Approximate Match, Unverified | Match result comparing the submitted businessName against the name on file. Only present when businessName was submitted in the request. See Name and address match values for details. |
| address | Registered address | The primary registered address of the business as returned from the source of truth. |
| addressMatch | Verified, Approximate Match, Unverified | Match result comparing the submitted address against the registered address on file. Only present when address was submitted in the request. See Name and address match values for details. |
| city | City | The city of the registered address as returned from the source of truth. |
| postalCode | Postal code | The postal code of the registered address as returned from the source of truth. |
| entityType | Entity type | The legal form of the business as returned from the source of truth (for example, Simplified joint stock company, European Company). Defaults to Unknown when not available. |
| registrationStatus | Registration status | The current company status as returned from the source of truth (for example, Active). Defaults to Unknown when not available. |
| registrationDate | Date | The date the company was registered, as returned from the source of truth. May not be present for all companies. |
| creditRating | Credit rating value | The standardized credit rating value (for example, A). Defaults to Unknown when not available. |
| creditRatingDescription | Credit rating description | A human-readable description of the credit rating (for example, Very Low Risk). |
| industryDesc | Industry description | The primary activity description as returned from the source of truth (for example, Activities of head offices). |
| activityDesc | Activity description | The principal activity description as returned from the source of truth. For France, this is typically identical to industryDesc. |
| turnover | {currency, value} object or string range |
The latest turnover figure or range as returned from the source of truth. Passed through as-is — may be an exact {currency, value} object for larger companies or absent entirely for smaller companies. May not be present for all companies. |
| employeeCount | String | The latest employee count as returned from the source of truth. May be an exact number (for example, "20") or a range (for example, "6 to 9 employees") depending on the company. Always returned as a string. May not be present for all companies. |
| otherAddresses | Array of {type, otherAddress} |
Additional addresses on file, other than the primary registered address. May not be present for all companies. |
| websites | Array of strings | Website URLs associated with the business as returned from the source of truth. May not be present for all companies. |
| shareholders | Array of {name, percentSharesHeld} |
Shareholders associated with the business as returned from the source of truth. May not be present for all companies. |
| directors | Array of {name, positionName} |
Current directors and officers as returned from the source of truth. positionName reflects the primary position title on file. May not be present for all companies. |
| ultimateParent | {name, country, registrationNumber} |
Ultimate parent company, if available. Absent when the entity sits at the top of its own group structure. |
| immediateParent | {name, country, registrationNumber} |
Immediate parent company, if available. Absent when the entity sits at the top of its own group structure. |
Name and address match values
| Status | Description |
|---|---|
| Verified | Exact match found against registry data. |
| Approximate Match | Similar match found; may reflect minor differences in naming or address formatting. |
| Unverified | No match found in registry data. |
Registration status values
| Status | Description |
|---|---|
| Active | The company is currently active and registered. |
| Inactive | The company registration is dissolved, struck off, or no longer active. |
| Unknown | The registration status could not be determined. |
Error responses
For standard HTTP response codes, see the API Error Response page. France Prefill returns the following country-specific 400 errors.
taxId is missing, empty, or does not match a supported French identifier format (SIREN, SIRET, RCS, RC, or VAT number):
{
"timestamp": 1782851408892,
"status": 400,
"error": "Bad Request",
"message": "taxId must be a valid French identifier: SIREN (9 digits), SIRET (14 digits), RCS (RCS + city + number), RC (RC + city + number), or VAT number (FR + 11 characters)",
"path": "/omni/externalVerification/ekyb-prefill"
}
Any mandatory field (plugins, source, country, or taxId) is missing:
{
"timestamp": 1782851468367,
"status": 400,
"error": "Bad Request",
"message": "must not be blank",
"path": "/omni/externalVerification/ekyb-prefill"
}
No business match is found for the submitted taxId:
{
"timestamp": 1782851583695,
"status": 200,
"message": "No business found matching the provided tax ID.",
"path": "/omni/externalVerification/ekyb-prefill"
}
Single Session Dashboard results
Prefill results are available on the Business tab in single Session view.