Skip to main content

Table of Contents

Data Sources

Luxembourg uses a single official registry as its primary data source. All structured company data is extracted from a certified trade register extract document via AI parsing.

All company types

  • RCS (Registre de Commerce et des Societes) — Operated by Luxembourg Business Registers (LBR), an economic interest grouping comprising the State, the Chamber of Commerce, and the Chamber of Skilled Trades, under the authority of the Ministry of Justice since 2003. The RCS is the central commercial register for the Grand Duchy of Luxembourg, containing registration data for virtually all legal entities: commercial companies, partnerships, sole traders, civil companies, non-profit associations (ASBLs), foundations, investment funds, and branches of foreign entities. It is our sole data source for Luxembourg entities. The system retrieves a certified extract (“Extrait du RCS”) for each company, from which all structured data is AI-parsed: company name, legal form, status, registration date, registered address, share capital, activity codes, legal representatives, and shareholders.
  • VIES (VAT Information Exchange System) — The EU-wide VAT validation service is used exclusively during VAT number searches to resolve a Luxembourg VAT number to a company name, which is then used to search the RCS. VIES is not a data source for company profile data.
Document-based data extraction: Unlike registries that expose structured APIs, the Luxembourg RCS delivers data as certified PDF documents (“Extrait du RCS”). All company attributes — including legal form, status, legal representatives, and shareholders — are extracted from these documents using AI parsing. This means data quality depends on the document content and parsing accuracy. The only structured data available directly from the RCS API is the NACE code and basic search information (company name, ID, legal form abbreviation, and address).

Company Identifiers

Query Identifiers

Company TypeSourceFormatExampleNotes
Commercial companiesRCSLetter prefix + digitsB246607Standard RCS registration number
By VAT numberVIESLU + 8 digitsLU32326416EU VAT number lookup via VIES
RCS Number Format: The Luxembourg RCS number consists of a letter prefix followed by digits (e.g., B246607). The prefix indicates the entity type: B for commercial companies is the most common. The regex validation pattern is ^[A-Z]\d+$.

RCS Number Prefixes

PrefixEntity Type
BCommercial companies (SA, SARL, SAS, SCA, etc.)
JGroupements d’interet economique (GIE/GEIE)
SBranches of foreign entities (succursales)
FFoundations (fondations)
ANon-profit associations (ASBL)
GMutual insurance associations
CCooperatives (older registrations)

Identifiers in API Response

Once you retrieve company data, the identifiers object contains all available identifiers for that entity:
Identifier TypeFormatExampleFound In
RCSLetter prefix + digitsB246607All registered entities
VATLU + 8 digitsLU32326416Companies with VAT registration (AI-extracted from document)

Search Capabilities

Search TypePatternExampleMatch TypeExpected Results
By RCS NumberLetter + digitsB246607ExactSingle company (1 result)
By VAT NumberLU + 8 digitsLU32326416Exact via VIESSingle company (1 result)
By VAT (no prefix)8 digits32326416Exact via VIESSingle company (1 result)
By NameText string (min 3 chars)"VREF Germany"FuzzyMultiple results
Search Performance: Identifier-based searches (RCS number, VAT) provide exact matching and faster results. Name searches query the RCS directly and may return multiple results across the register.
VAT Search Flow: VAT searches follow a two-step process: (1) validate the number via VIES to retrieve the official company name, then (2) search the RCS by that company name. The matched company is flagged as an id match and promoted to the top of results. Both formats are accepted: with country prefix (LU32326416) and without (32326416).
Search reliability: All search operations include built-in retry handling for reliability against the RCS API.

Quirks & Gotchas

QuirkDetails
All data is AI-parsed from documentsCompany profile, legal representatives, and shareholders are all extracted from the RCS trade register extract (PDF) via AI parsing. There is no structured API for company attributes beyond basic search fields and NACE codes.
Email-based document deliveryThe RCS extract is obtained through an asynchronous email workflow: the system requests the document, receives an email with a download link from otx.etat.lu, and retrieves the PDF. Typical delivery is approximately 1 hour, but can take up to 6 hours.
Asynchronous company profileBecause the company profile depends on the trade register extract document, profile delivery is asynchronous. The companyProfile datapoint will show processing until the document is received and parsed.
Status detection is heuristic + AIStatus is first detected by keyword search in the document text for closure terms (“radiee”, “dissous”, “dissolution”), then AI-enriched for standardization. Edge cases may exist for unusual status descriptions.
NACE codes from API, other data from documentThe RCS API provides NACE codes directly with multilingual labels (French, English, German). All other company attributes (legal form, status, capital, legal representatives, shareholders) come from AI parsing of the certified extract.
RCS number prefix indicates entity typeThe letter prefix (e.g., B for commercial, S for branches, A for ASBLs, F for foundations) indicates the entity type. See the prefix table above.
VAT format is 8 digitsLuxembourg VAT numbers follow the format LU + 8 digits (e.g., LU32326416), shorter than most EU countries.
Single document typeOnly the Extrait du RCS (certified trade register extract) is currently available. No separate financial statements, articles of association, or UBO certificates.
No UBO dataLuxembourg maintains a Register of Beneficial Owners (RBE), also managed by LBR, but this register is not currently integrated. UBO data is not available from the RCS extract.
Document is also the data sourceThe Extrait du RCS serves a dual purpose: it is both the official company document delivered to the user and the source from which all structured data is AI-parsed. The SKU LUX_REGISTER_EXTRACT is charged alongside LUX_COMPANY_DATA.
SCSp has no legal personalityThe Societe en commandite speciale (SCSp) is a legal form without legal personality, used primarily as an investment vehicle. It is registered in the RCS but may have limited data in the extract.

Mappings

Company Status

Company status is determined from the trade register extract document using a two-step process: (1) a keyword-based heuristic checks for closure indicators in the document text, then (2) the status is AI-enriched for standardization.
Local StatusEnglish TranslationStandardized StatusDetection Method
ActiveActiveACTIVENo closure indicators in document
RadieeStruck OffCLOSEDDocument contains “radiee”
DissousDissolvedCLOSEDDocument contains “dissous”
DissolutionDissolutionCLOSEDDocument contains “dissolution”
En liquidationIn LiquidationUNDER_INSOLVENCY_PROCEEDINGAI-inferred from document context
If no closure indicators are found in the document text, the company is considered Active by default. The AI enrichment step maps the detected status to a standardized CompanyStatus enum value (ACTIVE, CLOSED, UNDER_INSOLVENCY_PROCEEDING, or UNKNOWN).
Luxembourg legal forms are extracted from the RCS trade register extract via AI parsing. The legalFormCode field from search results provides an initial abbreviation, while the full legal form name is parsed from the certified extract document and AI-enriched to add English translations, standardized types, and ISO 20275 codes.
Because legal form standardization and ISO 20275 assignment are AI-enriched, exact mappings may evolve. The local Luxembourg legal form name from the RCS document is always preserved verbatim.

Key Business Forms

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Societe a responsabilite limiteeS.a r.l. / SARLPrivate Limited Liability CompanyLimited Liability CompanyDVXS
Societe a responsabilite limitee simplifieeS.a r.l.-SSimplified Private Limited Liability CompanyLimited Liability CompanyEUT4
Societe anonymeSAPublic Limited CompanyCorporation5GGB
Societe par actions simplifieeSASSimplified Joint-Stock CompanyCorporationHHR4
Societe en commandite par actionsSCA / SECAPartnership Limited by SharesCorporation81G5

Partnerships

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Societe en commandite simpleSCS / SECSLimited PartnershipPartnership63P9
Societe en nom collectifSNC / SENCGeneral PartnershipPartnershipATQY
Societe en commandite specialeSCSpSpecial Limited PartnershipPartnership-

Sole Proprietorships

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Entreprise individuelleEISole ProprietorshipSole Proprietorship2IGL

Cooperatives & European Forms

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Societe cooperativeSCCooperative SocietyCooperative-
Societas Cooperativa EuropaeaSCEEuropean Cooperative SocietyCooperativeFG84
Societe europeenneSEEuropean CompanyCorporation-
Groupement d’interet economiqueGIEEconomic Interest GroupingOther-

Non-Profits & Foundations

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Association sans but lucratifASBLNon-Profit AssociationNonprofit Organization2JEI
Fondation-FoundationNonprofit Organization-
Association agricoleAAAgricultural AssociationNonprofit Organization68J6

Investment Vehicles

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Societe d’investissement a capital variableSICAVOpen-Ended Investment CompanyOther-
Societe d’investissement a capital fixeSICAFClosed-Ended Investment CompanyOtherBEAN
Fond commun de placementFCPCommon Investment FundOtherAIR5
Societe d’epargne-pension a capital variableSEPCAVVariable Capital Pension Savings CompanyOther9C91

Insurance & Mutual Associations

French NameAbbreviationEnglish TranslationStandardizedISO 20275
Association d’assurances mutuellesAAMMutual Insurance AssociationOtherBKAB
Mutuelle-Mutual SocietyOther7SIZ
Association d’epargne pensionASSEPPension Savings AssociationOther2S2U

Foreign Entities

French NameDescriptionStandardizedISO 20275
Succursale d’une societe etrangereBranch of a foreign companyBranch or Representative Office-
Legal representatives are extracted from the RCS trade register extract via AI parsing. The AI looks for specific role terms in the document text, such as “Gerant”, “Administrateur”, “Directeur”, “President”, and “Membre du conseil d’administration”. Roles are then AI-enriched with standardized English translations and ISO 5009 codes (when an ISO 20275 ELF code is available for the company’s legal form).
French RoleEnglish TranslationStandardizedTypical Entity Type
Commissaire aux comptesStatutory AuditorAuditorSA, SARL (above threshold)
Reviseur d’entreprisesCertified AuditorAuditorVarious
Reviseur d’entreprises agreeApproved Statutory AuditorAuditorSA (large companies)
Membre du conseil de surveillanceSupervisory Board MemberSupervisory Board MemberSA (dual board structure)
President du conseil de surveillanceChairman of the Supervisory BoardSupervisorSA (dual board structure)
SecretaireSecretarySecretaryVarious
Both individuals and corporate entities can hold legal representative and other key person roles in Luxembourg companies. The classification of each role as legal representative (can legally bind the company) or other key person (supervisory, audit roles) is AI-enriched using ISO 5009 codes when the company’s ISO 20275 (ELF) code is available.

Shareholders

Shareholders are extracted from the RCS trade register extract via AI parsing. The AI looks for Luxembourg-specific shareholder terminology in the document text.

Extraction Logic

The AI parser identifies shareholders from specific sections of the trade register extract:
Source SectionTerms SearchedData Extracted
Associe(s)Associes, Actionnaires, Associe uniqueShareholder name, registration number, legal form, address
Parts socialesParts detenues, Nombre, Type(s) de partsShare count, share type
Capital socialApport, Participation au capitalTotal capital for percentage calculation

Ownership Fields

FieldDescriptionSource
sharePercentageOwnership percentageCalculated from shares held / total shares
typeindividual or companyDetermined by AI from shareholder details
numberOfSharesNumber of shares heldFrom “Parts detenues” section
company.idRCS number of corporate shareholderFrom “N d’immatriculation au RCS”
company.legalNameName of corporate shareholderFrom “Denomination” section
company.countryCodeCountry of corporate shareholderInferred from registration details
Shareholder extraction quality depends on the structure and completeness of the trade register extract document. Both individual and corporate shareholders are supported. Percentage calculation is derived from the ratio of shares held to total shares when available. Not all legal forms publish shareholder information in the RCS extract — SAs (public limited companies) typically do not list individual shareholders in their extracts.

Activity Code Mapping

Luxembourg uses the NACE Rev. 2 classification directly from the RCS API. The RCS API provides NACE codes with multilingual labels (French, English, German) as structured data — this is one of the few data points not AI-parsed from the document. The system maps activity codes across two levels:
NACE Rev. 2 (European) --> ISIC Rev. 4 (International)
ClassificationSourceExampleAI Inferred?
NACERCS API (naceCode field)7022No (official)
ISICDerived from NACE via mapping tables or AI7020Sometimes
When company data is AI-parsed from the trade register extract, activity descriptions may also be extracted from “Objet social” or “Activite principale” sections. These descriptions are used to enrich the activity classification when no NACE code is available from the API.

Data Availability

Data Availability Matrix

Data TypeCommercial CompaniesSole ProprietorsASBLs / FoundationsNotes
Company Profile✅ Async✅ Async✅ AsyncAI-parsed from Extrait du RCS
Legal RepresentativesAI-parsed from document
ShareholdersN/AN/AAI-parsed; mainly for SARL/SCS
Ultimate Beneficial OwnersRBE register not integrated
EstablishmentsNot available from RCS extract
Activity Codes (NACE)From RCS API (structured)
CapitalN/AN/AAI-parsed, formatted in EUR
DocumentsExtrait du RCS only
Legend: ✅ Available | ❌ Not Available | N/A Not Applicable | Async = Asynchronous processing (document delivery typically ~1 hour)

Documents by Company Type

Document TypeAPI CategoryFormatSKUAvailabilityEstimated Delivery
Extrait du RCScertifiedTradeRegisterExtractPDFLUX_REGISTER_EXTRACTAll registered entities~1 hour (up to 6 hours)
Document Delivery Time: Luxembourg trade register extracts are delivered via an asynchronous email-based workflow. The system requests the document from the RCS portal, waits for an email response containing a download link (from otx.etat.lu), extracts the URL, and saves the PDF. Typical delivery time is approximately 1 hour, but can take up to 6 hours in exceptional cases.
The Extrait du RCS is the only document type currently available for Luxembourg. This certified extract serves as both the official company document and the primary source from which all structured data (company profile, legal representatives, shareholders) is AI-parsed.

Example API Responses

All examples use placeholder data. Query: POST /company with { "id": "<id>", "countryCode": "LU", "dataPoints": ["companyProfile", "availableDocuments"] }
{
  "company": {
    "id": "B246607",
    "countryCode": "LU",
    "identifiers": { "RCS": "B246607" },
    "legalName": "Example Holdings S.a r.l.",
    "registrationDate": "2017-05-11",
    "incorporationDate": "2017-04-26",
    "activityDescription": "La prise de participations dans d'autres societes.",
    "status": {
      "localName": "Active",
      "active": true,
      "statusDetailsBeta": { "status": "ACTIVE" }
    },
    "legalForm": {
      "localName": "Societe a responsabilite limitee",
      "englishTranslation": "Limited Liability Company",
      "standardized": "Limited Liability Company",
      "iso20275Code": "DVXS"
    },
    "capital": {
      "amount": 27000,
      "currency": "EUR",
      "formatted": "27,000.00 EUR"
    },
    "activities": {
      "NACE": [{ "code": "6420", "description": "Activities of holding companies", "isAIInferred": false }],
      "ISIC": [{ "code": "6420", "description": "Activities of holding companies", "isAIInferred": true }]
    },
    "legalAddress": {
      "addressLine1": "9 Rue de Bitbourg",
      "city": "Luxembourg",
      "postalCode": "1273",
      "countryCode": "LU"
    }
  },
  "legalRepresentatives": [
    {
      "type": "individual",
      "role": {
        "localName": "Gerant",
        "standardized": "Manager",
        "iso5009Code": "ZULBC6"
      },
      "individual": {
        "name": { "firstName": "Jean", "lastName": "MUELLER", "fullName": "Jean MUELLER" }
      }
    },
    {
      "type": "individual",
      "role": {
        "localName": "Gerant",
        "standardized": "Manager",
        "iso5009Code": "ZULBC6"
      },
      "individual": {
        "name": { "firstName": "Marie", "lastName": "SCHMIT", "fullName": "Marie SCHMIT" }
      }
    }
  ],
  "shareholders": [
    {
      "type": "company",
      "sharePercentage": 100,
      "numberOfShares": 27000,
      "company": {
        "id": "B214572",
        "legalName": "Parent Holding Company S.a r.l.",
        "countryCode": "LU"
      }
    }
  ],
  "documents": {
    "certifiedTradeRegisterExtract": {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Extrait du RCS",
      "description": "Extrait du registre de commerce luxembourgeois certifie",
      "descriptionInEnglish": "Certified Luxembourg trade register extract",
      "format": "pdf",
      "price": 13.50
    }
  }
}
{
  "company": {
    "id": "B100000",
    "countryCode": "LU",
    "identifiers": { "RCS": "B100000" },
    "legalName": "Ancienne Societe SA",
    "registrationDate": "2010-01-20",
    "status": {
      "localName": "Radiee",
      "active": false,
      "statusDetailsBeta": { "status": "CLOSED" }
    },
    "legalForm": {
      "localName": "Societe anonyme",
      "englishTranslation": "Public Limited Company",
      "standardized": "Corporation",
      "iso20275Code": "5GGB"
    },
    "capital": {
      "amount": 31000,
      "currency": "EUR",
      "formatted": "31,000.00 EUR"
    },
    "legalAddress": {
      "addressLine1": "15 Boulevard Royal",
      "city": "Luxembourg",
      "postalCode": "2449",
      "countryCode": "LU"
    }
  },
  "legalRepresentatives": [],
  "shareholders": []
}
Closed companies have active: false and status “Radiee” (struck off). Document data may be more limited compared to active companies, and legal representatives and shareholders may not always be present in the extract.
{
  "results": [
    {
      "id": "B246607",
      "legalName": "Example Holdings S.a r.l.",
      "countryCode": "LU",
      "address": {
        "addressLine1": "9 Rue de Bitbourg",
        "city": "Luxembourg",
        "postalCode": "1273",
        "countryCode": "LU"
      }
    },
    {
      "id": "B179987",
      "legalName": "Another Example SARL",
      "countryCode": "LU",
      "address": {
        "addressLine1": "7A Rue Robert Stumper",
        "city": "Luxembourg",
        "postalCode": "2557",
        "countryCode": "LU"
      }
    }
  ]
}
{
  "results": [
    {
      "id": "B246607",
      "legalName": "Example Holdings S.a r.l.",
      "countryCode": "LU",
      "address": {
        "addressLine1": "9 Rue de Bitbourg",
        "city": "Luxembourg",
        "postalCode": "1273",
        "countryCode": "LU"
      },
      "matchReason": {
        "matchType": "id",
        "identifier": { "VAT": "LU32326416" }
      }
    }
  ]
}
VAT searches return results with a matchReason object indicating the match type (id) and the identifier used. The matched company is promoted to the top of results.
{
  "documents": {
    "certifiedTradeRegisterExtract": {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Extrait du RCS",
      "description": "Extrait du registre de commerce luxembourgeois certifie",
      "descriptionInEnglish": "Certified Luxembourg trade register extract",
      "format": "pdf",
      "price": 13.50
    }
  }
}
API CategoryDocumentFormatNotes
certifiedTradeRegisterExtractExtrait du RCSPDFAll registered entities, email-based delivery (~1 hour)