company-v2Updated: 2025-12-10

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 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 details – Full corporate information including registration numbers and structured addresses

Before (EBR integration)

Shareholders appeared only as corporate representatives with role "Partner":

{
  "data": {
    "representatives": {
      "corporations": [
        {
          "isActive": true,
          "name": "EXAMPLE HOLDINGS S.à r.l.",
          "registeredAddress": {
            "buildingName": "123 Example Street",
            "fullAddress": "123 Example Street"
          },
          "role": {
            "original": "Partner"
          },
          "type": "Corporation"
        },
        {
          "isActive": true,
          "name": "EXAMPLE INVESTMENTS S.A.S.",
          "registeredAddress": {
            "buildingName": "456 Sample Road",
            "fullAddress": "456 Sample Road"
          },
          "role": {
            "original": "Partner"
          },
          "type": "Corporation"
        }
      ]
    }
  }
}

After (LBR direct integration)

Shareholders now appear with complete ownership information in the capital array:

{
  "data": {
    "capital": [
      {
        "classCode": "parts sociales de classe A",
        "classDescription": "parts sociales de classe A",
        "description": "parts sociales de classe A",
        "quantity": 10000000,
        "type": "parts sociales de classe A",
        "shareholdings": [
          {
            "count": 4249440,
            "percentage": "42.49",
            "shareholders": {
              "corporations": [
                {
                  "name": "EXAMPLE HOLDINGS S.à r.l.",
                  "registrationNumber": "B123456",
                  "type": "Corporation",
                  "address": {
                    "city": "Luxembourg",
                    "country": "Luxembourg",
                    "fullAddress": "123, Example Street, Luxembourg, 1234, Luxembourg",
                    "postcode": "1234",
                    "rawAddressLines": [
                      "123",
                      "Example Street",
                      "Luxembourg",
                      "1234",
                      "Luxembourg"
                    ],
                    "streetName": "Example Street",
                    "streetNumber": "123"
                  }
                }
              ]
            }
          },
          {
            "count": 5750560,
            "percentage": "57.51",
            "shareholders": {
              "corporations": [
                {
                  "name": "EXAMPLE INVESTMENTS S.A.S.",
                  "registrationNumber": "789123456",
                  "type": "Corporation",
                  "address": {
                    "city": "Paris",
                    "country": "France",
                    "fullAddress": "456, Sample Road, Paris, 75001, France",
                    "postcode": "75001",
                    "rawAddressLines": [
                      "456",
                      "Sample Road",
                      "Paris",
                      "75001",
                      "France"
                    ],
                    "streetName": "Sample Road",
                    "streetNumber": "456"
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  }
}

Multiple share classes

Many Luxembourg companies have multiple share classes. You'll see complete information for each one:

{
  "data": {
    "capital": [
      {
        "classCode": "parts sociales de classe A",
        "classDescription": "parts sociales de classe A",
        "quantity": 10000000,
        "shareholdings": [ /* ... */ ]
      },
      {
        "classCode": "parts sociales de classe B",
        "classDescription": "parts sociales de classe B",
        "quantity": 10000000,
        "shareholdings": [ /* ... */ ]
      },
      {
        "classCode": "parts sociales de classe C",
        "classDescription": "parts sociales de classe C",
        "quantity": 10000000,
        "shareholdings": [ /* ... */ ]
      }
    ]
  }
}

Ownership percentage calculation

The percentage field represents ownership within that specific share class only.

Important: In V2, percentages are calculated per share class, not across all share classes combined. This differs from V1 where the percentage represents total ownership across all classes.

For example:

  • Class A has 10,000,000 shares total
  • Shareholder 1 holds 4,249,440 Class A shares
  • Calculated percentage for Class A: 4,249,440 / 10,000,000 = 42.49%

If the same shareholder also holds shares in Class B and Class C, each shareholding will have its own percentage calculated relative to that specific share class total.

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, the shareholdings details may be empty.

Joint shareholders: Sometimes all shareholders hold shares jointly rather than individually. When this happens, you'll see all the shareholders listed in a single shareholdings item without specific share counts or percentages—the registry doesn't document the exact distribution among joint shareholders.

Activity data now included

Luxembourg Enhanced Profiles now include economic activity information with NACE classification codes:

{
  "data": {
    "activities": [
      {
        "code": "64.202",
        "description": "Sociétés de participation financière (Soparfi)",
        "type": "Primary"
      }
    ],
    "activityDeclarations": [
      {
        "declaration": "La société a pour objet la prise de participations, sous quelque forme que ce soit...",
        "declarationDescription": "Objet social",
        "language": "fr"
      }
    ]
  }
}

This helps you quickly identify the company's business sector and classification.

The activityDeclarations array contains the full text of the company's business purpose (objet social) as stated in the Luxembourg Trade Register extract. The declaration field contains the complete French text describing what the company is authorized to do, while declarationDescription 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 status field 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).

Active company (no negative information):

{
  "data": {
    "status": {
      "original": "active"
    }
  }
}

Company in bankruptcy:

{
  "data": {
    "status": {
      "original": "distressed"
    }
  }
}

This lets you quickly assess a company's state without parsing the underlying bankruptcy or liquidation sections.

Additional changes

Address structure improvements

Addresses now have more granular structure with separated components. This makes it easier to work with individual address fields:

New fields:

  • rawAddressLines – Array of address components as they appear in the registry
  • streetNumber – Building/street number
  • streetName – Street name
  • city – City name
  • country – Country name
  • postcode – Postal code
  • isoCode – ISO country code

Before:

{
  "fullAddress": "123 Example Street, Luxembourg, 1234, Luxembourg",
  "buildingName": "123 Example Street",
  "type": "Address of the local main office"
}

After:

{
  "fullAddress": "123, Example Street, Luxembourg, 1234, Luxembourg",
  "type": "registered",
  "isoCode": "lu",
  "rawAddressLines": [
    "123",
    "Example Street",
    "Luxembourg",
    "1234",
    "Luxembourg"
  ],
  "streetNumber": "123",
  "streetName": "Example Street",
  "city": "Luxembourg",
  "country": "Luxembourg",
  "postcode": "1234"
}

Representative role terminology

Representative roles now use French terminology from the LBR:

Changes:

  • "Administrator / Manager""Administrateur" (Manager)
  • "Everyday management responsible""Gérant délégué à la gestion journalière" (Delegate manager for daily management)
  • "Partner" → Now appears in capital shareholdings structure instead

Registration authority

The registration authority name has been updated to reflect the direct LBR integration:

Before:

{
  "registrationAuthority": "Registre de Commerce et des sociétés"
}

After:

{
  "registrationAuthority": "Luxembourg Business Register"
}

Date field changes

The foundationDate field has been replaced with incorporationDate to align with the data available from the LBR:

Before:

{
  "data": {
    "foundationDate": {
      "normalized": "2016-06-02",
      "original": "2016-06-02"
    }
  }
}

After:

{
  "data": {
    "incorporationDate": {
      "normalized": "2016-06-02",
      "original": "2016-06-02"
    }
  }
}

Example request

# Enhanced Profile for Luxembourg company (V2)
curl -X GET "https://api.kyckr.com/v2/companies/LU|QjEyMzQ1Ng==/enhanced" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

Additional resources