- Developer newsUpdates to the API
- IntroductionAbout the Companies V1 API
- Company searchSearch for a company by name or number
- Cache searchSearch for a company globally
- Lite ProfileBasic company verification details
- Enhanced ProfileCompany profiles with representatives and shareholders
- Filing searchOrder registry extracts and filings
- UBO VerifyFind the ultimate beneficial owners via corporate ownership structure
- About testingInformation about the Kyckr test environment
- Supported jurisdictionsJurisdictions and regional codes
- Response codesExtra information in the responseCodeField
- FAQsFrequently asked questions about the V1 API
Luxembourg Enhanced Profile – Shareholder Data Improvements
Overview
Luxembourg Enhanced Profiles now include much richer shareholder data. We've moved from the European Business Register (EBR) network to a direct integration with the Luxembourg Business Register (LBR).
You'll get structured data directly from the LBR's French Trade Registry Extract (Extrait du registre de commerce français), with more detail and better structure for Luxembourg companies.
Key improvements
Fully fielded shareholder data
Before, you only got shareholders listed as generic "Partner" references in the directors list with no ownership details. Now you get complete shareholding information:
- Share counts – Exact number of shares held by each shareholder
- Ownership percentages – Calculated ownership stakes for each shareholder
- Share class details – Complete information about different share classes (parts sociales)
- Shareholder addresses – Full addresses for corporate shareholders
Before (EBR integration)
Shareholders appeared only in the directors list with title "Partner":
{
"companyProfileField": {
"directorAndShareDetailsField": {
"directorsField": [
{
"nameField": "EXAMPLE HOLDINGS S.à r.l.",
"titleField": "Partner",
"address1Field": "123 Example Street",
"cityTownField": "Luxembourg",
"postcodeField": "1234",
"countryField": "Luxembourg"
},
{
"nameField": "EXAMPLE INVESTMENTS S.A.S.",
"titleField": "Partner",
"address1Field": "456 Sample Road",
"cityTownField": "Paris",
"postcodeField": "75001",
"countryField": "France"
}
]
}
}
}After (LBR direct integration)
Shareholders now appear in the shareHoldersField array with complete ownership information:
{
"companyProfileField": {
"directorAndShareDetailsField": {
"shareHoldersField": [
{
"nameField": "EXAMPLE HOLDINGS S.à r.l.",
"addressField": "123, Example Street, Luxembourg, 1234, Luxembourg",
"shareholderTypeField": "Company",
"shareClassField": "parts sociales de classe A",
"shareTypeField": "parts sociales de classe A",
"shareCountField": 4249440,
"percentageField": "42.49"
},
{
"nameField": "EXAMPLE INVESTMENTS S.A.S.",
"addressField": "456, Sample Road, Paris, 75001, France",
"shareholderTypeField": "Company",
"shareClassField": "parts sociales de classe A",
"shareTypeField": "parts sociales de classe A",
"shareCountField": 5750560,
"percentageField": "57.51"
}
]
}
}
}Multiple share classes
Many Luxembourg companies have multiple share classes. You'll see each shareholder's holdings in each class listed separately in the shareHoldersField array:
{
"shareHoldersField": [
{
"nameField": "EXAMPLE HOLDINGS S.à r.l.",
"shareClassField": "parts sociales de classe A",
"shareCountField": 4249440,
"percentageField": "42.49"
},
{
"nameField": "EXAMPLE HOLDINGS S.à r.l.",
"shareClassField": "parts sociales de classe B",
"shareCountField": 4249440,
"percentageField": "42.49"
},
{
"nameField": "EXAMPLE HOLDINGS S.à r.l.",
"shareClassField": "parts sociales de classe C",
"shareCountField": 4249440,
"percentageField": "42.49"
}
]
}Ownership percentage calculation
The percentageField is calculated for each specific shareholding relative to all shareholdings across all share classes.
Important: We calculate the percentage by dividing the specific share count by the total shares across all classes. We assume all share classes have equal value per share when calculating percentages.
For example, if a company has three share classes (A, B, and C) with 10,000,000 shares each:
- Total shares across all classes: 30,000,000
- Shareholder 1's Class A shareholding: 4,249,440 shares
- Calculated percentage for this shareholding:
4,249,440 / 30,000,000 = 14.16%
The shareholder appears multiple times in the shareHoldersField array (once for each share class they hold), and each entry shows a different percentageField value - each representing that specific shareholding as a percentage of all shares across all classes.
Rich shareholder metadata
The LBR has exceptionally detailed shareholder data. We analyzed a sample of over 8,000 corporate shareholders from Luxembourg companies and found:
- Luxembourg shareholders: 100% include registration numbers
- Cayman Islands shareholders: 93% include registration numbers
- United States shareholders: 99% include registration numbers
- United Kingdom shareholders: 100% include registration numbers
You get registration numbers, registration authorities, and foreign legal forms for shareholders across 69 countries. This makes Luxembourg Enhanced Profiles great for ownership analysis and corporate structure investigations—you can trace shareholders across jurisdictions using reliable identifiers.
Future enhancement: We're working on normalizing country names and foreign registration authorities to include ISO country codes alongside registration numbers. This will make it easier to search for foreign shareholders across Kyckr's global network.
Shareholding data availability
Variable capital companies: Some Luxembourg companies have variable capital structures. For these companies, the shareHoldersField array may be empty.
Joint shareholders: In some cases, all shareholders hold shares jointly rather than individually. When this occurs, all the shareholders are listed but without specific share counts or percentages, as the exact distribution among joint shareholders is not documented at the registry.
Activity data now included
Enhanced Profiles for Luxembourg companies now include economic activity information using NACE classification codes:
{
"companyProfileField": {
"activityField": [
{
"codeField": "64.202",
"descriptionField": "Sociétés de participation financière (Soparfi)"
}
],
"activityDeclarationField": [
{
"declarationField": "La société a pour objet la prise de participations, sous quelque forme que ce soit...",
"declarationDescriptionField": "Objet social",
"languageField": "fr"
}
]
}
}This helps you quickly identify the company's business sector and classification.
The activityDeclarationField contains the full text of the company's business purpose (objet social) as stated in the Luxembourg Trade Register extract. The declarationField contains the complete French text describing what the company is authorized to do, while declarationDescriptionField indicates which section of the registry document it comes from (e.g., "Objet social").
Company status derivation
Important: The Luxembourg Business Register doesn't provide an explicit company status field in their extracts. We derive the status by analyzing negative information in the registry documents:
- active – Default status when no negative indicators are present (96% of companies)
- distressed – Bankruptcy declaration (faillite) information is present in the extract
- in_liquidation – Voluntary liquidation information is present in the extract
- deregistered – The document is a deregistration certificate
The legalStatusField represents our interpretation of the company's state based on structured data from the French Trade Registry Extract (Extrait du registre de commerce français).
Example:
{
"companyProfileField": {
"legalStatusField": "active"
}
}This lets you quickly assess a company's state without parsing the underlying bankruptcy or liquidation sections.
Additional changes
Director role terminology
Director roles now use French terminology from the LBR:
Changes:
"Administrator / Manager"→"Gérant"(Manager)"Everyday management responsible"→"Gérant délégué à la gestion journalière"(Delegate manager for daily management)"Partner"→ Removed from directors list (now in shareholders)
Registration authority
The registration authority name has been updated to reflect the direct LBR integration:
Before:
{
"registrationAuthorityField": "Registre de Commerce et des sociétés",
"registrationAuthorityCodeField": "LURCS"
}After:
{
"registrationAuthorityField": "Luxembourg Business Register"
}Example request
# Enhanced Profile for Luxembourg company (V1)
curl -X GET "https://rest.kyckr.com/core/company/profile/LU/B123456" \
-H "Authorization: {{apiKey}}"