🇧🇷 Brasil · fuente pública
Receita Federal: cnpj
CNPJ — padrón completo de personas jurídicas inscritas en Brasil, todos los estados (Ativa, Baixada, Inapta, Suspensa, Nula). EI/MEI (natureza_jurídica 2135) excluidos por política jurídicas-only de Latinfo.
Cobertura publicada
- Registros
- 27,313,523
- Última actualización
- 01 ago. 2026
- Frecuencia
- monthly
- Frescura
- DELAYED
- Identificador
cnpj- Búsqueda por nombre
- No publicada
Conteo y frescura consultados desde api.latinfo.dev/sources durante el build del 2026-09-28.
Fuente primaria
- Institution: Receita Federal do Brasil — Ministério da Fazenda
- Data: CNPJ — padrón completo de personas jurídicas inscritas en Brasil, todos los estados (Ativa, Baixada, Inapta, Suspensa, Nula). EI/MEI (natureza_jurídica 2135) excluidos por política jurídicas-only de Latinfo.
- Format: CSV latin1,
;-delimited y con quoting CSV. Distribuido en 10 ZIPs de Empresas + 10 ZIPs de Estabelecimentos (~20 archivos, ~7 GB comprimidos). - Registered: https://arquivos.receitafederal.gov.br/index.php/s/YggdBLfdninEJX9 (WebDAV público, sin autenticación)
- Official layout: https://www.gov.br/receitafederal/dados/cnpj-metadados.pdf
- Alphanumeric transition: https://www.gov.br/receitafederal/pt-br/assuntos/noticias/2026/julho/antecipacao-de-atividades-para-implantacao-do-cnpj-alfanumerico
Cómo se procesa
El dataset está partido en dos tipos de archivo que deben unirse por CNPJ_BASICO (8 dígitos):
- Empresas (10 ZIPs): contiene
CNPJ_BASICO,RAZAO_SOCIAL,NATUREZA_JURIDICA. - Estabelecimentos (10 ZIPs): contiene
CNPJ_BASICO+CNPJ_ORDEM+CNPJ_DV(los 14 dígitos al unir),SITUACAO_CADASTRAL,NOME_FANTASIA,UF,MUNICIPIO,CNAE_FISCAL_PRINCIPAL.
Flujo (src/imports/br-receita-cnpj.ts):
- Descargar los 10 ZIPs de Estabelecimentos vía WebDAV y emitir TSV:
cnpj_basico \t cnpj_14 \t situacao \t nome_fantasia \t uf \t municipio \t cnae_principal→estab.tsv. - Sort externo por
cnpj_basico→estab-sorted.tsv. - Descargar los 10 ZIPs de Empresas.
- Parsear CSV con soporte de delimitadores, comillas y saltos de línea dentro de campos; emitir TSV:
cnpj_basico \t razao_social \t natureza_juridica→empresas.tsv. - Sort externo por
cnpj_basico→empresas-sorted.tsv. - En Gate 1, tomar 500 establecimientos y buscar únicamente sus empresas correspondientes; la sobremuestra compensa la exclusión de EI/MEI y debe producir al menos 100 sociedades. El import completo procesa ambos padrones íntegros.
- Streaming merge-join (inner join) por
cnpj_basico:
- Descarta filas sin match en Empresas (establecimientos sin casa matriz).
- Descarta
natureza_juridica = 2135(Empresário Individual / MEI = persona física con CPF en CNPJ_BASICO) — compliance jurídicas-only. - Emite
cnpj_14 \t razao_social \t situacao \t nome_fantasia \t uf \t municipio \t cnae_principal→merged.tsv.
- Sort por
cnpj_14→sorted.tsv. buildBinaryFiles()→.bin(12 shards × ~201 MB) +.idx(1.5 MB, prefix 5).buildSearchIndex()V3 +buildMphfFromIdx()yuploadWithManifest()a R2 mediante swap atómico.
Los ZIP validados se cachean en Mint bajo un directorio separado por mes. Los gates posteriores reutilizan el mismo snapshot, mientras que una publicación mensual nueva usa otra ruta y no puede mezclar archivos. El import completo predescarga hasta cuatro ZIP simultáneamente; cada archivo usa rangos HTTP de ~64 MB y se verifica por tamaño, ETag y CRC antes de parsearse. El miembro CSV se enumera con unzip -Z1: el importer exige exactamente un .EMPRECSV o .ESTABELE seguro y lee esa ruta, sin depender del mtime de extracciones anteriores.
El merge-join streaming opera sobre archivos ya ordenados, sin cargar en memoria. Necesario porque V8 cap a ~2^24 (~16.7M entradas en Map) es insuficiente para 71M registros.
Campos publicados
| Field | Type | Example | Notes |
|---|---|---|---|
| cnpj | string(14) | 00000000000191 | Primary ID. Las 12 primeras posiciones admiten números/letras y las 2 últimas son dígitos verificadores. Solo personas jurídicas. |
| razao_social | string | BANCO DO BRASIL SA | Razón social según Receita Federal |
| situacao | string | ATIVA | Status — valores: ATIVA, BAIXADA, INAPTA, SUSPENSA, NULA |
| nome_fantasia | string | BANCO DO BRASIL | Nombre de fantasía (puede estar vacío) |
| uf | string(2) | DF | Estado (UF) de la sede |
| municipio | string | 9701 | Código oficial de municipio publicado por Receita. No se presenta como nombre sin cruzarlo con el catálogo oficial correspondiente. |
| cnae_principal | string | 6422100 | Código CNAE de la actividad económica principal |
Limitaciones conocidas
- Código de municipio sin nombre: el snapshot actual almacena el código que publica Receita. Resolver el nombre requiere un cruce versionado con la tabla oficial; hasta entonces v1 devuelve
municipality_name: null. - 44M EI/MEI excluidos: si en el futuro Receita cambia la natureza_jurídica de EI a otro código, el filtro deja de funcionar. Monitorear en cada re-import.
- Transición alfanumérica: Receita emitirá el primer CNPJ alfanumérico el 31 de julio de 2026. El parser, checksum y contrato universal aceptan ambos formatos; los CNPJ numéricos existentes no cambian.
Estado de revisión y alcance
No se publica todavía una opinión jurídica específica aprobada para esta fuente. La ficha documenta procedencia y transformaciones; Latinfo limita su producto a entidades jurídicas.
Latinfo no está afiliado, certificado ni respaldado por la institución de origen. Para decisiones formales, verifica la evidencia en la fuente primaria. Consulta Privacidad y Términos.