Skip to main content

Table of Contents

Data Sources

Portugal uses a combination of a private business intelligence platform and the official registration authority. For a given entity, data comes from a single primary source (all-or-nothing model). There are two distinct data pathways: one for structured company profile data and one for official document retrieval.

Company Profile Data

  • Racius — A Portuguese business information platform (founded 2012) that aggregates company data from official registries. Used as the primary source for all structured company data. The system retrieves a company report from Racius, from which all structured attributes are extracted via AI parsing: company name, legal form, status, registration date, registered address, share capital, activity codes (CAE), legal representatives, and shareholders.

Official Documents

  • Instituto dos Registos e do Notariado (IRN) — The Portuguese registration and notary authority, operating under the Ministry of Justice since 2007. Used exclusively for official document retrieval. Two document types are available: the Certidao de Registo Comercial (permanent commercial register certificate) and the Certidao do Ultimo Pacto Social/Estatutos Atualizados (latest articles of association). Both are delivered via an email-based purchase flow through the IRN portal.

Publications (Onboarding Profile)

  • Publicacoes do Registo Comercial — Official commercial register publications. Used as the data source for the onboarding profile datapoint (a lighter, faster alternative to the full company profile). Publications include legal announcements, corporate acts, and other mandatory filings. The system downloads up to 10 most recent publications, combines them chronologically, and uses AI parsing to extract company data, legal representatives, and shareholders. The most recent publication determines the current company status.
AI-parsed data: Portugal’s company profile data is entirely AI-parsed from Racius HTML reports. There is no structured company API available. All attributes — including legal form, status, legal representatives, and shareholders — are extracted by AI from HTML content using parallel model racing (OpenAI GPT-4.1-mini, Cerebras, Groq). The first successful response wins.

Company Identifiers

Query Identifiers

Company TypeSourceFormatExampleNotes
All companiesIRN / Racius9-digit NIPC/NIF501442600Numero de Identificacao de Pessoa Coletiva
NIPC Format: The Portuguese NIPC (Numero de Identificacao de Pessoa Coletiva) is a 9-digit tax identification number for companies. For commercial companies, the first digit is typically 5. The 9th digit is a check digit calculated using a modulo 11 algorithm with weights [9, 8, 7, 6, 5, 4, 3, 2].

Identifiers in API Response

Once you retrieve company data, the identifiers object contains all available identifiers for that entity:
Identifier TypeFormatExampleFound In
NIF / NIPC9 digits501442600All registered companies
VATPT + 9 digitsPT501442600Companies with EU VAT registration

Search Capabilities

Search TypePatternExampleMatch TypeExpected Results
By NIF/NIPC9 digits501442600ExactSingle company (1 result)
By NameText string"Exemplo Empresa"FuzzyMultiple results
Search implementation: Portugal search is performed via the Racius platform. Both NIF-based and name-based searches are routed through the same search workflow. Results include company name, NIF, and address (city/region). Brand results are automatically filtered out.

Quirks & Gotchas

QuirkDetails
All profile data is AI-parsedCompany profile, legal form, status, legal representatives, and shareholders are all extracted from Racius HTML reports via AI parsing. There is no structured API.
Multi-model AI racingPortugal uses parallel AI model racing (OpenAI GPT-4.1-mini, Cerebras GPT-OSS-120B, Groq GPT-OSS-120B) for faster parsing. The first successful response wins (Promise.any).
Email-based document purchaseCertificates require an email-based purchase flow through the IRN portal. A document request is submitted through the IRN portal and the access code is received by email.
Up to 24-hour document deliveryAfter obtaining an access code, the system waits for document availability on the IRN portal (up to 24 hours). Most documents are available within 1-2 hours.
Access code reuse (1 year)Once obtained, access codes are valid for 1 year. Subsequent requests for the same document type reuse the existing code, bypassing the email purchase flow entirely.
CAE classificationPortugal uses CAE (Classificacao de Actividades Economicas), currently CAE Rev. 3 maintained by INE (Statistics Portugal). CAE closely mirrors NACE. Codes are extracted from the Racius report by AI.
NIPC check digitThe 9th digit of the NIPC is a check digit calculated using modulo 11 with weights [9, 8, 7, 6, 5, 4, 3, 2]. The system can generate valid NIPCs for internal use.
No direct registry APIUnlike many European countries, Portugal does not offer a structured API for commercial register data. All data is sourced through the Racius intermediary platform.
Racius requires loginFetching full company reports from Racius requires authentication.
Retrieval may be slower than API-based countriesBoth search and company report retrieval require interaction with the Racius web platform, which is inherently slower than direct API calls.
Onboarding profile uses publicationsThe onboarding profile datapoint uses a different data source than the full company profile. It queries the pt.publications_raw table for official publications, downloads their HTML/PDF content, and parses with AI. This provides faster results but may have less comprehensive data.
Publication-based status detectionFor the onboarding profile, company status is determined from the most recent publication’s announcement type. Terms like “Dissolucao”, “Liquidacao”, “Encerramento”, or “Extincao” in the announcement type indicate the company is dissolved/closed.
Legal representative exclusionsThe AI parser is instructed to exclude board members, administrators, and auditors from the legal representatives list. Only persons with active executive authority are returned.

Mappings

Company Status

Company status is extracted from Racius HTML reports via AI parsing. There is no deterministic status mapping — the AI infers the status from the document content and standardizes it.
Local StatusEnglish TranslationStandardized Status
Ativa / Em ActividadeActiveActive
EncerradaClosedClosed
DissolvidaDissolvedClosed
Em LiquidacaoIn LiquidationClosed
ExtintaExtinct / TerminatedClosed
InsolventeInsolventUnder Insolvency Proceeding
AI-inferred status: Since all company data is AI-parsed from Racius HTML reports, status values may vary in their exact local names depending on how the source presents the information. The AI standardizes these to the Topograph status enum. For the onboarding profile (publication-based source), dissolution is detected from the announcement type field of the most recent publication.
Portuguese legal forms are extracted from Racius HTML reports via AI parsing. The AI identifies the legal form from the company report and provides both the local Portuguese name and standardized classification. ISO 20275 (ELF) codes are assigned via AI enrichment.

Key Business Forms

AbbreviationPortuguese NameEnglish TranslationStandardizedISO 20275
Lda.Sociedade por QuotasPrivate Limited CompanyLimited Liability CompanyUSOG
S.A.Sociedade AnonimaPublic Limited CompanyCorporationDFE5
Unipessoal Lda.Sociedade Unipessoal por QuotasSingle-Member Private Limited CompanyLimited Liability CompanyVF4C
S.A.D.Sociedade Anonima DesportivaSports Public Limited CompanyCorporationW9W3
S.C.Sociedade em ComanditaLimited PartnershipPartnership-
S.N.C.Sociedade em Nome ColetivoGeneral PartnershipPartnership-

Sole Entrepreneurs

AbbreviationPortuguese NameEnglish TranslationStandardizedISO 20275
ENIEmpresario em Nome IndividualSole TraderSole ProprietorshipVALH

Cooperatives

AbbreviationPortuguese NameEnglish TranslationStandardizedISO 20275
CRLCooperativa de Responsabilidade LimitadaLimited Liability CooperativeCooperative-
SCESocietas Cooperativa EuropaeaEuropean Cooperative SocietyCooperativeV6YL

Non-Profits

TypePortuguese NameEnglish TranslationStandardizedISO 20275
AssociacaoAssociacaoAssociationNonprofit OrganizationALPT
FundacaoFundacaoFoundationNonprofit Organization-

Public & Government Entities

AbbreviationPortuguese NameEnglish TranslationStandardizedISO 20275
EPEEntidade Publica EmpresarialPublic Business EntityGovernment-Owned EntityA8CT
EMEmpresa MunicipalMunicipal EnterpriseGovernment-Owned EntityPIDC
EEMEntidade Empresarial MunicipalMunicipal Business EntityGovernment-Owned EntityD7OA
EIMEmpresa IntermunicipalIntermunicipal EnterpriseGovernment-Owned EntityIX01
EMetEmpresa MetropolitanaMetropolitan EnterpriseGovernment-Owned EntityXD16
-Pessoa Coletiva de Direito PublicoPublic Law Legal EntityGovernment-Owned EntityP5S3

European & International Forms

AbbreviationPortuguese NameEnglish TranslationStandardizedISO 20275
AEIEAgrupamento Europeu de Interesse EconomicoEuropean Economic Interest GroupingOther-
ACEAgrupamento Complementar de EmpresasComplementary Grouping of CompaniesOther-
-Pessoa Coletiva InternacionalInternational Legal EntityOtherQFXD
Legal form extraction and standardization are entirely AI-inferred from the Racius report content. ISO 20275 (ELF) codes are added via AI enrichment. The local Portuguese legal form name from the source document is always preserved verbatim. The tables above list the most common forms; the AI can recognize additional forms not listed here.
Legal representatives are extracted from Racius HTML reports via AI parsing. The AI is specifically instructed to exclude board members, administrators, and auditors — only active legal representatives with executive authority are returned.
Portuguese RoleEnglish TranslationTypical Entity Type
GerenteManagerLda., Unipessoal Lda.
AdministradorAdministrator/DirectorS.A.
Presidente do Conselho de AdministracaoChairman of the BoardS.A.
Administrador DelegadoManaging DirectorS.A.
Administrador UnicoSole DirectorS.A.
Director-GeralGeneral DirectorVarious
PresidentePresidentAssociations, Cooperatives
Representante LegalLegal RepresentativeVarious
AI-inferred role classification: Since all role data is AI-parsed from HTML content, the exact role names may vary depending on how Racius presents them. The AI translates Portuguese role names to English and classifies them as legal representatives or other key persons based on context. Both individual and corporate representatives are supported.

Other Key Persons

Other key persons (supervisory roles, auditors, etc.) are excluded from the Portugal response. The AI parser is instructed to return only active legal representatives with executive authority.

Shareholders

Shareholders are extracted from Racius HTML reports via AI parsing. Both individual and corporate shareholders are supported.

Extraction Logic

Data ExtractedSourceNotes
Shareholder nameAI-parsed from Racius reportFull name for individuals, legal name for companies
Shareholder typeAI-classifiedindividual or company
Share percentageAI-parsed when availablesharePercentage field
AddressAI-parsed when availableWhen present in the report
Self-reference exclusion: The AI parser is specifically instructed not to include the queried company itself as a shareholder. Entries listed as “Outros” (Others) without specific details are also excluded.

Activity Code Mapping

Portugal uses the CAE (Classificacao Portuguesa de Actividades Economicas), currently in Revision 3, maintained by INE (Instituto Nacional de Estatistica / Statistics Portugal). CAE extends the European NACE Rev. 2 standard. The system maps activity codes across three levels:
CAE (Portuguese) -> NACE Rev. 2 (European) -> ISIC Rev. 4 (International)
ClassificationSourceExampleAI Inferred?
CAERacius HTML report (AI-parsed)62010No (extracted from source)
NACEDerived from CAE or AI6201Sometimes
ISICDerived from NACE or AI6201Sometimes
CAE codes are extracted from the Racius report by AI parsing. The AI is specifically instructed to recognize the CAE classification format. NACE and ISIC derivations use formal mapping tables when possible, with AI fallback. The isAIInferred flag distinguishes official vs. AI-derived codes.

Data Availability

Data Availability Matrix

Data TypeCompany Profile (Racius)Onboarding Profile (Publications)Notes
Company Name & AddressAI-parsed from HTML
Legal FormAI-inferred with ISO 20275 enrichment
Company StatusAI-inferred; publications use announcement type
Registration DateWhen available in source
Share CapitalAmount and currency
Activity Codes (CAE)Mapped to NACE/ISIC
Activity DescriptionBusiness purpose text
Legal RepresentativesExecutive roles only (AI-filtered)
ShareholdersIndividual and corporate
Ultimate Beneficial OwnersNot available from Racius or publications
EstablishmentsNot available from Racius
Employee CountNot available from Racius
Legend: ✅ Available | ❌ Not Available | Async = Asynchronous processing

Documents by Company Type

All Companies (NIPC)

Document TypeAPI CategoryFormatSKUAvailabilityNotes
Certidao de Registo ComercialcertifiedTradeRegisterExtractPDFPRT_CERTIFIED_REGISTER_EXTRACT✅ All companiesPermanent certificate from IRN
Certidao do Ultimo Pacto SocialarticleOfAssociationPDFPRT_STATUS✅ All companiesLatest company statutes from IRN
Document Delivery Time: Portuguese certificates (Certidao) are obtained through an email-based purchase flow via the IRN portal. The process involves: (1) submitting a document request via the IRN portal, (2) receiving an access code by email (up to 5 minutes), (3) waiting for document availability (usually 1-2 hours, up to 24 hours).

Document Delivery Flow

StepActionDuration
1Submit document request via IRN portal~30 seconds
2Receive access code by email1-5 minutes
3Wait for document availabilityUsually 1-2 hours, up to 24 hours
4Download PDF~10 seconds
Access code reuse: Access codes are valid for 1 year. Subsequent requests for the same company and document type reuse the existing code, reducing delivery time significantly. The code allows retrieval of the most up-to-date version of the document each time it is used.

Example API Responses

All examples use placeholder data. Query: POST /company with { "id": "<id>", "countryCode": "PT", "dataPoints": ["companyProfile"] }
{
  "company": {
    "id": "501442600",
    "countryCode": "PT",
    "identifiers": { "NIF": "501442600", "VAT": "PT501442600" },
    "legalName": "Exemplo Tecnologia Lda.",
    "registrationDate": "2005-09-12",
    "activityDescription": "Consultoria em tecnologias de informacao.",
    "status": { "localName": "Ativa", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Sociedade por Quotas", "standardized": "Limited Liability Company", "iso20275Code": "USOG" },
    "capital": { "amount": 50000, "currency": "EUR" },
    "activities": {
      "CAE": [{ "code": "62010", "description": "Actividades de programacao informatica", "isAIInferred": false }],
      "NACE": [{ "code": "6201", "description": "Computer programming activities", "isAIInferred": true }],
      "ISIC": [{ "code": "6201", "description": "Computer programming activities", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Rua Augusta, 100", "city": "Lisboa", "postalCode": "1100-053", "countryCode": "PT" }
  },
  "legalRepresentatives": [
    { "type": "individual", "role": { "localName": "Gerente", "standardized": "Manager" }, "individual": { "name": { "fullName": "Joao SILVA", "firstName": "Joao", "lastName": "SILVA" } } }
  ],
  "shareholders": [
    { "type": "individual", "sharePercentage": 75, "individual": { "name": { "fullName": "Joao SILVA" } } },
    { "type": "individual", "sharePercentage": 25, "individual": { "name": { "fullName": "Maria SANTOS" } } }
  ]
}
{
  "company": {
    "id": "500100144",
    "countryCode": "PT",
    "identifiers": { "NIF": "500100144", "VAT": "PT500100144" },
    "legalName": "Exemplo Holdings S.A.",
    "registrationDate": "1990-01-15",
    "activityDescription": "Gestao de participacoes sociais.",
    "status": { "localName": "Ativa", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Sociedade Anonima", "standardized": "Corporation", "iso20275Code": "DFE5" },
    "capital": { "amount": 5000000, "currency": "EUR" },
    "activities": {
      "CAE": [{ "code": "64202", "description": "Actividades das sociedades gestoras de participacoes sociais", "isAIInferred": false }],
      "NACE": [{ "code": "6420", "description": "Activities of holding companies", "isAIInferred": true }],
      "ISIC": [{ "code": "6420", "description": "Activities of holding companies", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Avenida da Liberdade, 250", "city": "Lisboa", "postalCode": "1250-149", "countryCode": "PT" }
  },
  "legalRepresentatives": [
    { "type": "individual", "role": { "localName": "Presidente do Conselho de Administracao" }, "individual": { "name": { "fullName": "Carlos FERREIRA" } } },
    { "type": "individual", "role": { "localName": "Administrador" }, "individual": { "name": { "fullName": "Ana OLIVEIRA" } } }
  ],
  "shareholders": [
    { "type": "company", "sharePercentage": 60, "company": { "legalName": "Grupo Exemplo SGPS S.A." } },
    { "type": "individual", "sharePercentage": 40, "individual": { "name": { "fullName": "Carlos FERREIRA" } } }
  ]
}
{
  "company": {
    "id": "509000000",
    "countryCode": "PT",
    "identifiers": { "NIF": "509000000" },
    "legalName": "Antiga Empresa Lda.",
    "registrationDate": "2008-04-01",
    "status": { "localName": "Encerrada", "active": false, "statusDetailsBeta": { "status": "CLOSED" } },
    "legalForm": { "localName": "Sociedade por Quotas", "standardized": "Limited Liability Company", "iso20275Code": "USOG" },
    "legalAddress": { "addressLine1": "Rua do Comercio, 50", "city": "Porto", "postalCode": "4000-150", "countryCode": "PT" }
  }
}
Note: Closed companies have active: false. Data availability (legal representatives, shareholders) may be limited compared to active companies.
{
  "company": {
    "id": "514000123",
    "countryCode": "PT",
    "identifiers": { "NIF": "514000123", "VAT": "PT514000123" },
    "legalName": "Exemplo Consultoria Unipessoal Lda.",
    "registrationDate": "2018-03-20",
    "activityDescription": "Consultoria para os negocios e a gestao.",
    "status": { "localName": "Ativa", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Sociedade Unipessoal por Quotas", "standardized": "Limited Liability Company", "iso20275Code": "VF4C" },
    "capital": { "amount": 1000, "currency": "EUR" },
    "activities": {
      "CAE": [{ "code": "70220", "description": "Outras actividades de consultoria para os negocios e a gestao", "isAIInferred": false }],
      "NACE": [{ "code": "7022", "description": "Business and other management consultancy activities", "isAIInferred": true }],
      "ISIC": [{ "code": "7020", "description": "Management consultancy activities", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Rua de Santa Catarina, 15", "city": "Porto", "postalCode": "4000-442", "countryCode": "PT" }
  },
  "legalRepresentatives": [
    { "type": "individual", "role": { "localName": "Gerente", "standardized": "Manager" }, "individual": { "name": { "fullName": "Pedro COSTA" } } }
  ],
  "shareholders": [
    { "type": "individual", "sharePercentage": 100, "individual": { "name": { "fullName": "Pedro COSTA" } } }
  ]
}
Note: Sociedade Unipessoal por Quotas has a single shareholder (100% ownership) and typically a single manager (Gerente).
Documents are returned when "dataPoints": ["documents"] is requested.
API CategoryDocumentFormatNotes
certifiedTradeRegisterExtractCertidao de Registo ComercialPDFEmail-based purchase flow, up to 24h delivery
articleOfAssociationCertidao do Ultimo Pacto Social/Estatutos AtualizadosPDFLatest company statutes, same delivery flow
{
  "documents": {
    "certifiedTradeRegisterExtract": {
      "name": "Certidao de Registo Comercial",
      "description": "Permanent certificate from Portuguese authorities (Instituto dos Registos)",
      "type": "certifiedTradeRegisterExtract",
      "format": "pdf",
      "sku": "PRT_CERTIFIED_REGISTER_EXTRACT"
    },
    "articleOfAssociation": {
      "name": "Certidao do Ultimo Pacto Social/Estatutos Atualizados",
      "description": "Last updated company statutes from Portuguese authorities",
      "type": "articleOfAssociation",
      "format": "pdf",
      "sku": "PRT_STATUS"
    }
  }
}

Data Source Priority & Routing

For a given entity, data comes from a single primary source — the system does not merge attributes across data sources (all-or-nothing model).
Source Priority for Company Profile:
  1. Racius — A company report is retrieved from Racius. If the company is found, all structured attributes are extracted via AI parsing from the report. This is the only source for the company profile datapoint.
  2. If the company is not found on Racius, a SourceError.notFound is returned.
Source Priority for Onboarding Profile (alternative datapoint):
  1. Publications — The system queries for official commercial register publications. Up to 10 most recent publications are downloaded (HTML preferred, PDF fallback), combined chronologically, and parsed via AI.
  2. If no publications exist for the company, a SourceError.notFound is returned.
Document Retrieval:Documents are retrieved directly from the IRN (Instituto dos Registos e do Notariado) portal. This is independent of the company profile data source.

Attribute-Level Source Mapping

All company profile attributes come from a single AI parsing of the Racius HTML report:
AttributeSourceNotes
Company nameRacius (AI-parsed)Extracted from report header
Legal formRacius (AI-parsed)Enriched with ISO 20275 code
StatusRacius (AI-parsed)Enriched to standardized status
Registered addressRacius (AI-parsed)Street, city, postal code
Share capitalRacius (AI-parsed)Amount and currency
Activity codes (CAE)Racius (AI-parsed)Enriched to NACE/ISIC
Activity descriptionRacius (AI-parsed)Business purpose text
Registration dateRacius (AI-parsed)Incorporation/registration date
Legal representativesRacius (AI-parsed)Executive roles only
ShareholdersRacius (AI-parsed)Individuals and companies