bateCarimbo.
Fiscal

CPF, CNPJ, inscrição estadual e MEI: o que cada número identifica

Pessoa física e jurídica, matriz e filial na ordem do CNPJ, por que a inscrição estadual tem um formato por estado, o que é inscrição municipal e por que o MEI tem um CNPJ comum — com o impacto disso na modelagem de sistemas.

Por · Publicado em · 10 min de leitura

Todo cadastro de cliente no Brasil acaba tropeçando na mesma pergunta: o número que chegou no formulário identifica uma pessoa, uma empresa, um estabelecimento ou uma habilitação tributária? São coisas diferentes, emitidas por entes diferentes, com ciclos de vida independentes. Quem modela os quatro como se fossem variações de um mesmo campo descobre o erro tarde, geralmente quando o time fiscal pede para emitir uma nota e o dado necessário não existe em lugar nenhum.

Pessoa física e pessoa jurídica: CPF e CNPJ

A divisão mais básica é de direito civil, não de software. Pessoa física é o ser humano; pessoa jurídica é a entidade criada por um ato de constituição registrado. A Receita Federal mantém um cadastro para cada uma: o CPF para a primeira, o CNPJ para a segunda. Os dois são federais, valem em todo o território e não dependem de onde a pessoa mora ou de onde a empresa opera.

O que eles não dizem é tão importante quanto o que dizem. Nenhum dos dois autoriza a operar em nada. O CNPJ registra que a pessoa jurídica existe perante a União; não afirma que ela pode vender mercadoria, prestar serviço ou emitir documento fiscal. Essas autorizações moram em outros cadastros, de outros entes federativos, e é aí que aparecem a inscrição estadual e a municipal.

Os quatro cadastros que um sistema brasileiro costuma precisar guardar, lado a lado.
CadastroQuem emiteFormatoTem dígito verificadorOnde aparece
CPFReceita Federal, cadastro nacional único11 algarismos, sempre numéricosSim, dois dígitos calculados por módulo 11Identificação de pessoa física em qualquer cadastro, público ou privado
CNPJReceita Federal, cadastro nacional único14 posições: 8 de raiz, 4 de ordem e 2 de verificação; as 12 primeiras admitem letras a partir de 2026Sim, dois dígitos calculados por módulo 11Identificação de pessoa jurídica e de estabelecimento perante a União
Inscrição estadualSecretaria da Fazenda de cada estado e do Distrito FederalUm formato por unidade federativa, com comprimento e regra própriosQuase sempre, mas com regra específica de cada estadoCadastro de contribuinte de ICMS: quem circula mercadoria, e não quem apenas existe
Inscrição municipalPrefeitura de cada municípioSem padrão nacional; cada município define o seuVaria; muitos municípios não usam nenhumCadastro de contribuinte de ISS, para quem presta serviço no município

A coluna do emissor explica quase tudo o que vem depois. CPF e CNPJ têm um emissor só, então têm um formato só e um algoritmo só — o módulo 11, com pesos e regras de resto documentados. Inscrição estadual tem vinte e sete emissores. Inscrição municipal tem milhares.

Raiz, ordem, matriz e filiais

O CNPJ não identifica apenas a empresa: identifica o estabelecimento. As oito primeiras posições formam a raiz e pertencem à pessoa jurídica. As quatro seguintes são a ordem do estabelecimento: 0001 para o primeiro, normalmente a matriz, e os números seguintes para cada filial aberta depois. As duas últimas posições são os dígitos verificadores.

Uma rede com sete lojas tem uma raiz e sete CNPJs completos. Os catorze caracteres mudam entre eles — inclusive os dois verificadores, porque a conta é feita sobre as doze posições anteriores e a ordem faz parte da base. Por isso não dá para “derivar” o CNPJ de uma filial trocando 0001 por 0002 e mantendo o final: os DVs precisam ser recalculados.

Na modelagem, isso vira uma decisão concreta: a chave natural de “empresa” é a raiz, e a de “estabelecimento” é o CNPJ inteiro. Guardar só o número completo empurra substring(cnpj, 1, 8) para dezenas de consultas; guardar só a raiz apaga qual filial emitiu a nota. Cada filial tem endereço próprio e pode ter inscrição estadual própria enquanto a matriz não tem nenhuma. Desde 2026 raiz e ordem podem conter letras, o que reforça guardar tudo como texto; os detalhes estão no guia do CNPJ alfanumérico.

Natureza jurídica, porte e regime tributário são três coisas diferentes

Este é o ponto em que mais sistemas erram, e o erro quase sempre tem a mesma forma: um único campo chamado tipo_empresacom valores misturados do tipo “LTDA”, “MEI”, “ME” e “Simples”. Esses quatro valores respondem a perguntas distintas e mudam por motivos distintos.

Quatro dimensões independentes que costumam ser espremidas em um campo só.
DimensãoQuem defineValores típicosMuda quando
Natureza jurídicaTabela oficial de códigos usada no registro e replicada no CNPJEmpresário individual, sociedade limitada, sociedade limitada unipessoal, sociedade anônima, associação, fundaçãoHá alteração do ato constitutivo, registrada no órgão competente
PorteFaixas de receita bruta anual definidas em normaMicroempresa (ME), empresa de pequeno porte (EPP), demaisO faturamento cruza a faixa e o enquadramento é atualizado
Regime tributárioOpção da empresa, dentro do que a legislação permite para o seu casoSimples Nacional, lucro presumido, lucro realA empresa opta nas janelas previstas, ou é excluída por deixar de se enquadrar
Enquadramento como MEICondição dentro do Simples Nacional, aberta ao empresário individual que cabe nos limitesEnquadrado ou não enquadradoUltrapassa o teto, exerce atividade fora da lista permitida ou pede desenquadramento

Um exemplo concreto separa as camadas. Uma padaria pode ser uma sociedade empresária limitada (natureza jurídica), enquadrada como microempresa (porte) e optante pelo Simples Nacional (regime). No ano seguinte o faturamento cresce: o porte passa a EPP e as outras duas dimensões seguem intactas. Anos depois a empresa é excluída do Simples e vai para o lucro presumido — de novo sem mexer no contrato social.

A confusão mais cara é tratar ME e EPP como se fossem tipos societários. Não são: uma sociedade limitada, uma sociedade limitada unipessoal e um empresário individual podem todos ser microempresa. E ser ME não significa estar no Simples — o enquadramento por porte e a opção pelo regime são atos separados, com efeitos separados.

A EIRELI é o exemplo histórico dessa mistura. Ela era mesmo uma natureza jurídica, com regra de capital mínimo, e por anos apareceu em formulários ao lado de “MEI” e “ME” como se fossem opções do mesmo conjunto. A Lei nº 14.195/2021 extinguiu a figura e determinou que as EIRELIs existentes fossem transformadas em sociedades limitadas unipessoais, independentemente de alteração no ato constitutivo. Todo select que ainda ofereça “EIRELI” hoje está oferecendo um tipo que não se constitui mais. O gerador de empresas daqui foi ajustado exatamente por isso: a EIRELI saiu da lista de naturezas jurídicas e o porte virou um campo à parte, porque emitir uma ficha fictícia com os dois conceitos no mesmo campo ensinaria o erro em vez de expor o acerto.

Inscrição estadual: um formato por estado

A inscrição estadual identifica o contribuinte de ICMS no cadastro da Secretaria da Fazenda do seu estado. Ela é por estabelecimento, não por empresa: uma rede com lojas em três estados tem três inscrições, uma em cada SEFAZ, além de poder ter inscrições adicionais no mesmo estado.

Como cada unidade federativa monta o próprio cadastro, cada uma definiu o próprio formato. O comprimento varia, a posição dos dígitos verificadores varia — há estados em que o verificador não é o último caractere — e as regras de cálculo, ainda que parentes do módulo 11, usam pesos e tratamentos de resto diferentes. Não existe um algoritmo nacional, e por isso não existe um validador único: qualquer implementação séria é um mapa de UF para função, e validar uma inscrição estadual sem saber de que estado ela veio é impossível por construção.

Há ainda dois valores que quebram validadores ingênuos. O primeiro é a condição de isento: empresas não contribuintes de ICMS aparecem em documentos fiscais com a inscrição marcada como isenta, e o campo recebe uma palavra em vez de um número. O segundo é o produtor rural pessoa física, que em vários estados recebe inscrição estadual mesmo tendo CPF e não CNPJ — o caso que derruba a suposição de que inscrição estadual implica pessoa jurídica.

Inscrição municipal e quando ela aparece

Se o ICMS é estadual, o ISS é municipal, e quem presta serviço se inscreve na prefeitura. O nome muda de cidade para cidade — inscrição municipal, cadastro mobiliário, CCM — assim como o formato, a existência de dígito verificador e o próprio fato de haver um cadastro informatizado.

Para software, a consequência prática é que a inscrição municipal quase nunca deve ser validada por formato. O que faz sentido é guardá-la como texto livre, ao lado do código IBGE do município que a emitiu, e deixar a conferência para o momento da emissão da nota de serviço, quando o próprio sistema municipal responde. Validar contra um formato inventado rejeita cliente legítimo, e é um erro que só aparece em produção, no município que ninguém testou.

Uma mesma empresa pode precisar das duas. A oficina que vende peças e presta mão de obra é contribuinte dos dois impostos, e o campo “inscrição” único obriga o usuário a escolher qual dado perder.

O MEI tem um CNPJ comum

O microempreendedor individual gera uma quantidade desproporcional de bugs porque muita gente acredita que ele tem um documento próprio. Não tem. O MEI recebe um CNPJ de catorze posições, com raiz, ordem 0001 e os mesmos dois dígitos verificadores calculados pela mesma regra. Nada no número indica que aquele registro é de um MEI.

O que existe é um enquadramento. A natureza jurídica continua sendo a de empresário individual, e o MEI é uma condição dentro do Simples Nacional, com recolhimento mensal em valor fixo, sujeita a um teto anual de faturamento definido em norma e a uma lista de atividades permitidas. Quem ultrapassa o teto ou passa a exercer atividade fora da lista é desenquadrado — e segue com o mesmo CNPJ.

Três consequências valem para o código. Primeira: não existe validação de “CNPJ de MEI”; a informação vem de consulta cadastral, nunca do número. Segunda: o MEI é ponte entre pessoa física e jurídica — mesmo titular, endereço muitas vezes residencial — e é exatamente aqui que o atalho de tratar “dado de empresa” como impessoal falha. Terceira: MEI de serviço costuma não ter inscrição estadual, então o cadastro precisa aceitar CNPJ válido sem ela.

Erros de modelagem: o campo “documento” genérico

A tentação é conhecida: uma coluna documento VARCHAR(20) que recebe CPF, CNPJ, inscrição estadual e o que mais aparecer, com um tipo_documento ao lado. Ela sobrevive ao primeiro sprint e cobra o preço depois. Unicidade deixa de significar alguma coisa, porque a mesma inscrição estadual pode existir em dois estados e o índice único global barra um cliente legítimo. A validação vira um switch que adivinha o algoritmo pelo comprimento da string.

SQL
-- Cada cadastro tem emissor, formato e ciclo de vida próprios.
-- Um campo "documento" genérico apaga essas três diferenças de uma vez.
CREATE TABLE cliente (
  id             BIGSERIAL PRIMARY KEY,
  tipo_pessoa    CHAR(1) NOT NULL CHECK (tipo_pessoa IN ('F', 'J')),

  -- Guardado sem máscara. TEXT, nunca tipo numérico: zero à esquerda
  -- desaparece em coluna numérica e o CNPJ passou a aceitar letras.
  cpf            TEXT,
  cnpj           TEXT,

  -- Estadual e municipal não são do mesmo emissor que o CNPJ:
  -- sem a UF ao lado, o número não pode nem ser validado.
  ie             TEXT,
  ie_uf          CHAR(2),
  ie_isento      BOOLEAN NOT NULL DEFAULT FALSE,
  inscricao_municipal      TEXT,
  inscricao_municipal_ibge CHAR(7),

  CONSTRAINT documento_por_tipo CHECK (
    (tipo_pessoa = 'F' AND cpf IS NOT NULL AND cnpj IS NULL) OR
    (tipo_pessoa = 'J' AND cnpj IS NOT NULL AND cpf IS NULL)
  ),
  -- Inscrição estadual sem UF é um número que ninguém consegue conferir.
  CONSTRAINT ie_exige_uf CHECK (ie IS NULL OR ie_uf IS NOT NULL),
  -- Isento e número preenchido são estados mutuamente exclusivos.
  CONSTRAINT ie_isento_sem_numero CHECK (NOT (ie_isento AND ie IS NOT NULL))
);

-- Unicidade por documento, não por "documento genérico".
CREATE UNIQUE INDEX cliente_cpf_key  ON cliente (cpf)  WHERE cpf  IS NOT NULL;
CREATE UNIQUE INDEX cliente_cnpj_key ON cliente (cnpj) WHERE cnpj IS NOT NULL;
-- A mesma inscrição estadual pode repetir entre estados diferentes.
CREATE UNIQUE INDEX cliente_ie_key ON cliente (ie_uf, ie) WHERE ie IS NOT NULL;
Cada cadastro na sua coluna, com o contexto que a validação exige ao lado.

Repare no que as restrições protegem. O CHECK por tipo de pessoa impede o registro híbrido que tem CPF e CNPJ ao mesmo tempo. A exigência de ie_uf junto de ie impede guardar um número que ninguém conseguirá conferir depois. O índice único de inscrição estadual é composto com a UF, porque a unicidade é estadual e não nacional. E a flag de isento resolve, no esquema, o que muitos sistemas resolvem gravando a palavra ISENTO dentro da coluna numérica — com os problemas que isso traz na hora de exportar.

Vale separar também o que é dado de pessoa jurídica do que é dado de estabelecimento. Raiz, razão social, natureza jurídica e porte pertencem à empresa; ordem, endereço, inscrição estadual e inscrição municipal pertencem ao estabelecimento. Uma tabela para cada, ligadas pela raiz, evita a duplicação silenciosa que aparece quando a segunda filial é cadastrada.

Massa de teste por tipo de contribuinte

Um cadastro exercitado só com sociedade limitada paulista optante do Simples passa em todos os testes e quebra na primeira semana. Os cenários que merecem fixture própria são os que combinam os campos de formas que o formulário não previu:

  • Pessoa física simples: CPF, sem inscrição de espécie alguma. Confere que o formulário não exige dado de empresa de quem não é empresa.
  • Produtor rural pessoa física: CPF com inscrição estadual. Quebra a regra implícita de que inscrição estadual pressupõe CNPJ.
  • MEI de serviço: CNPJ com ordem 0001, inscrição municipal e nenhuma inscrição estadual.
  • Matriz com filiais: vários CNPJs com a mesma raiz e ordens diferentes, para exercitar agrupamento por empresa e unicidade por estabelecimento.
  • Empresa multiestadual: estabelecimentos em UFs diferentes, cada um com inscrição estadual no formato do seu estado.
  • Não contribuinte de ICMS: CNPJ ativo com inscrição estadual isenta, para o caminho em que o campo não é número.
  • Sociedade anônima de grande porte: fora do Simples, para garantir que porte e regime não estão amarrados no código.

O gerador de empresas cobre a base dessas fichas: razão social, CNPJ, natureza jurídica e porte em campos separados, com endereço coerente com a UF escolhida. Para lotes de CNPJ, inclusive alfanuméricos, o gerador de CNPJ resolve a parte numérica. Nenhum dos dois consulta cadastro algum — o número sai bem formado e não corresponde a empresa nenhuma, distinção detalhada no guia sobre CPF válido e CPF existente. A inscrição estadual de teste é o item que exige atenção manual: só um número no formato do estado escolhido exercita o validador certo.

Fontes e referências