CNAE

Classificação Nacional de Atividades Econômicas: os códigos de subclasse da tabela CNAE-Subclasses 2.3.

  • Matriz de paridade

Validar

Verifica se um código de subclasse CNAE existe na tabela CNAE-Subclasses 2.3 (a revisão atual das subclasses da CNAE 2.0).

  • Mesmas regras de entrada de cbo.isValid, com 7 dígitos e a máscara NNNN-N/NN. Dígitos sem máscara são completados com zeros à esquerda até 7, um valor com máscara é lido como está escrito, e outras strings são rejeitadas.
  • Qualquer sequência de separadores (espaço, ., - ou /) é aceita em cada limite entre os grupos, ou nenhum: 6201--5//01 é válido. Espaços nas pontas são ignorados. Até a 2.4.0 um único separador era aceito e 6201--5//01 era rejeitado.
  • Um número só é lido se for um inteiro seguro não negativo, e é completado com zeros à esquerda até 7 dígitos como os dígitos sem máscara (111301 vira 0111301). Número negativo, fracionário ou inseguro é rejeitado.
ParâmetroTipoObrigatório
valuestring | numbersim
retornaboolean

Valida um código de subclasse CNAE (Classificação Nacional de Atividades Econômicas) contra a tabela CNAE-Subclasses 2.3, a revisão de subclasses atual da CNAE 2.0.

  • Mesmas regras de isValidCbo, com 7 dígitos e a máscara NNNN-N/NN.
import { isValidCnae } from '@brazilian-utils/brazilian-utils';

isValidCnae('6201-5/01'); // true
isValidCnae('6201501'); // true
isValidCnae(111301); // true (completado para 7 dígitos, ou seja, '0111301')
isValidCnae('111301'); // true (completado do mesmo jeito que um número)
isValidCnae('0000000'); // false
isValidCnae('0111abc301'); // false (não é uma forma documentada)
isValidCnae(-111301); // false (não é um inteiro seguro não negativo)

Fonte: CNAE-Subclasses 2.3 na CONCLA/IBGE e a API de subclasses do IBGE.

Código: brazilian-utils/javascript
Teste com JavaScript isValidCnae
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (23) e o resultado em cada biblioteca cnae.isValid

Formatar

Formata um código de subclasse CNAE com a máscara NNNN-N/NN. Só a estrutura muda (use cnae.isValid para verificar o código).

  • A máscara é aplicada até onde os dígitos vão, então um valor sendo digitado é mascarado progressivamente.
  • options.pad (padrão false) primeiro completa o valor com zeros à esquerda até 7 dígitos. Um número é tratado como a string dos seus dígitos, então só é completado com pad.
  • Uma string é lida pelos seus dígitos: os outros caracteres são descartados e dígitos depois do último da máscara são ignorados.
  • Um valor vazio, ou sem dígitos, retorna uma string vazia mesmo com pad. null e undefined também retornam uma string vazia. Até a 2.4.0 o pad retornava a máscara toda de zeros (0000-0/00).
  • Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro retorna uma string vazia (a 2.4.0 lia os dígitos de qualquer número, descartando sinal e ponto decimal).
ParâmetroTipoObrigatório
valuestring | numbersim
optionsFormatCnaeOptionsnão
options.padbooleannão
retornastring

Formata um código de subclasse CNAE (Classificação Nacional de Atividades Econômicas). Só a estrutura muda; use isValidCnae para conferir um código com a tabela.

  • Opções (FormatCnaeOptions): pad (padrão false) completa antes o valor com zeros à esquerda até os 7 dígitos de um código completo. Sem ele a máscara é aplicada até onde o valor vai. Um valor vazio, ou sem dígitos, devolve '' mesmo com pad.
  • Caracteres fora da máscara são descartados, e um número só é lido como a string dos seus dígitos quando é um inteiro seguro não negativo: um número negativo, fracionário ou inseguro retorna '', já que o sinal e o ponto decimal não são caracteres da máscara. Retorna '' quando não há dígito algum.
import { formatCnae } from '@brazilian-utils/brazilian-utils';

formatCnae('6201501'); // 6201-5/01
formatCnae('62'); // 62 (máscara aplicada até onde o valor vai)
formatCnae('62015'); // 6201-5
formatCnae('62', { pad: true }); // 0000-0/62 (completado até 7 dígitos antes)
formatCnae(111301, { pad: true }); // 0111-3/01
formatCnae('abc6201501'); // 6201-5/01 (só os dígitos são lidos)
formatCnae(-6201501); // '' (não é um inteiro seguro não negativo)
Código: brazilian-utils/javascript
Teste com JavaScript formatCnae
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (32) e o resultado em cada biblioteca cnae.format

Interpretar

Remove a formatação do CNAE e mantém somente os dígitos, limitados a 7 dígitos.

  • Não completa nada com zeros à esquerda. Um código parcial fica como está escrito.
  • Retorna string vazia quando não há nenhum dígito (null e undefined incluídos).
  • Um número só é lido se for um inteiro seguro não negativo. Número negativo, fracionário, não finito ou inseguro retorna uma string vazia (a 2.4.0 lia os dígitos de qualquer número, descartando sinal e ponto decimal).
ParâmetroTipoObrigatório
valuestring | numbersim
retornastring

Remove a formatação do CNAE (Classificação Nacional de Atividades Econômicas), mantém apenas os dígitos e limita o resultado aos 7 dígitos de um código de subclasse completo.

  • Mesmas regras de parseCbo: nada é completado com zeros à esquerda aqui.
import { parseCnae } from '@brazilian-utils/brazilian-utils';

parseCnae('6201-5/01'); // '6201501'
parseCnae('62'); // '62' (um código parcial é mantido como está)
Código: brazilian-utils/javascript
Teste com JavaScript parseCnae
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (10) e o resultado em cada biblioteca cnae.parse

Consultar

Consulta um código de subclasse CNAE na tabela CNAE-Subclasses 2.3 e retorna o código (7 dígitos sem máscara) e a descrição oficial.

Essa tabela é a revisão atual das subclasses da CNAE 2.0.

  • Mesmas regras de entrada de cbo.get, com 7 dígitos e a máscara NNNN-N/NN, inclusive uma sequência de separadores entre os grupos (6201--5//01 retorna o registro).
  • Retorna null para um código desconhecido ou para um valor fora das formas aceitas.
  • Retorna null exatamente quando cnae.isValid retorna false.
ParâmetroTipoObrigatório
valuestring | numbersim
retornaCnae | null

Consulta um código de subclasse CNAE (Classificação Nacional de Atividades Econômicas) e retorna seu código e a descrição oficial. O resultado é um registro Cnae: { code, description }.

  • Mesmas regras de getCbo, com 7 dígitos e a máscara NNNN-N/NN.
  • code retorna com os 7 dígitos sem máscara; passe-o para formatCnae para obter a forma NNNN-N/NN.
import { formatCnae, getCnae } from '@brazilian-utils/brazilian-utils';

getCnae('6201-5/01'); // { code: '6201501', description: 'DESENVOLVIMENTO DE PROGRAMAS DE COMPUTADOR SOB ENCOMENDA' }
getCnae(111301); // { code: '0111301', description: 'CULTIVO DE ARROZ' } (completado para 7 dígitos)
getCnae('111301'); // { code: '0111301', description: 'CULTIVO DE ARROZ' } (completado do mesmo jeito)
getCnae('0000000'); // null
getCnae('0111abc301'); // null (não é uma forma documentada)
formatCnae(getCnae('6201501')?.code); // 6201-5/01 (aplicar a máscara é trabalho do formatador)

Fonte: CNAE-Subclasses 2.3 na CONCLA/IBGE e a API de subclasses do IBGE.

Código: brazilian-utils/javascript
Teste com JavaScript getCnae
As entradas começam com o primeiro caso compartilhado. Mude uma para ver o novo resultado.

Roda @brazilian-utils/brazilian-utils 2.5.0 no seu navegador.

Casos de teste compartilhados (13) e o resultado em cada biblioteca cnae.get

Fontes oficiais

Veja também CNPJ

Atualizado em

Nesta página