Dígito verificador ou consulta: como validar a inscrição estadual
O dígito verificador diz se a inscrição estadual foi digitada certo. Só a consulta ao cadastro diz se ela existe, está ativa e pertence ao seu cliente.
Um não substitui o outro. Valide o número no formulário e consulte antes de gravar ou faturar.
O que cada método detecta#
| Problema | Formato e dígito verificador | Consulta ao cadastro |
|---|---|---|
| Dígito trocado, faltando ou sobrando | Sim | Sim |
| Tamanho ou prefixo errado para a UF | Sim | Sim |
| Zeros à esquerda apagados pela planilha | Completa e avisa | — |
| Número com dígito certo, mas que não existe | Não | Sim |
| IE suspensa, baixada, inapta ou não habilitada | Não | Sim |
| IE de outro CNPJ ou CPF | Não | Sim |
| Custo | Grátis, sem rede | Uma chamada de API |
Na NF-e, cada um evita rejeições diferentes#
| Código | Mensagem | Quem evita |
|---|---|---|
| 209 e 210 | IE do emitente ou do destinatário inválida | Validação de formato e dígito |
| 233 | IE do destinatário não cadastrada | Consulta |
| 234 e 624 | IE do destinatário não vinculada ao CNPJ (ou ao CPF) | Consulta |
| 306 | IE do destinatário não está ativa na UF | Consulta |
| 232 | IE do destinatário não informada (e ele tem IE ativa) | Consulta |
A 209 e a 210 saem de erro no tamanho, na composição ou no dígito verificador. Antes da conta, a SEFAZ despreza os zeros à esquerda (MOC 7.0, Anexo I).
Formato e dígito: rápido e sem custo#
- Barra o erro de digitação no formulário, antes de qualquer chamada.
- Roda no navegador ou no servidor. A IE não sai da sua máquina.
- Completa os zeros à esquerda que a planilha apagou e avisa quantos entraram.
Teste no validador de inscrição estadual das 27 UFs: detecta a UF pelo número e confere uma lista inteira de uma vez. No código, use a biblioteca aberta validador-ie (MIT), no npm e no PyPI:
import { validarIE } from "validador-ie"; // npm install validador-ie
validarIE("110.042.490.114", "SP");
// { valida: true, formatada: "110.042.490.114", zerosCompletados: 0 }
validarIE("110.042.490.115", "SP");
// { valida: false, motivo: "dígito verificador inválido" } 110.042.490.114 é o exemplo do roteiro oficial de cálculo da SEFAZ-SP. O segundo número troca só o último dígito.
Consulta: o que só ela responde#
O dígito certo não prova que a inscrição existe. Para isso, consulte o cadastro do estado:
curl -H "X-API-Key: SUA_CHAVE" \
"https://api.fiscalapi.com.br/api/consultar?uf=SP&cnpj=12345678000199" | Campo | Responde |
|---|---|
| results | As inscrições do CNPJ na UF. Vazia = nenhuma |
| inscricao_estadual | Se a IE do seu cadastro está na lista, ela é deste CNPJ |
| situacao_ie | Habilitado ou Não habilitado. Quando o estado informa, situacao_cadastral diz o motivo (ex.: Baixado - NÃO HABILITADO) |
| situacao_nfe | Documentos eletrônicos que o contribuinte está habilitado a emitir (ex.: NFe, NFCe, NFe) |
Também dá para consultar pela própria IE (ie=) ou pelo CPF (cpf=), no caso de produtor rural. O CNPJ do exemplo é fictício.
Use os dois#
- No formulário: valide formato e dígito. Recuse na hora, com o motivo.
- Ao salvar: consulte pelo CNPJ ou CPF na UF do cliente. Confira se a IE digitada está na lista e ativa.
- Antes de faturar: reconsulte se a última consulta estiver antiga.
O passo 1 evita gastar consulta com número digitado errado. O passo 2 pega o que o dígito não vê. O passo a passo com código está em como validar a IE no cadastro de clientes.
Perguntas frequentes#
Se o dígito verificador confere, a IE está ativa? Não. O cálculo só mostra que o número foi digitado certo. A inscrição pode não existir, estar suspensa ou ser de outro contribuinte.
Dá para validar IE sem internet? Sim, o formato e o dígito. A biblioteca validador-ie roda local, em JavaScript ou Python. A situação cadastral exige consulta.
Quantos dígitos tem a inscrição estadual? De 8 a 14, conforme a UF. O Rio de Janeiro usa 8, Minas Gerais usa 13. A tabela dos 27 estados está no validador.
A NF-e aceita IE com pontos e traços? Não. O campo da IE leva só os algarismos, sem ponto, barra ou hífen.
Fontes#
- MOC 7.0, Anexo I: Leiaute e Regras de Validação da NF-e e da NFC-e (PDF), Confaz: campos C17 e E17; regras C17-20, E17-50 e 5E17-10 a 5E17-50
- Rotina de consistência da IE (SEFAZ-SP): exemplo 110.042.490.114
- validador-ie, biblioteca aberta da FiscalAPI
- Documentação da consulta de IE, FiscalAPI
Artigos relacionados#
Consulte dados fiscais via API
Consulte Inscrições Estaduais, CNPJs e Certidões Negativas via API REST. Dados direto da SEFAZ e Receita Federal. Planos a partir de R$ 19,99/mês.
Criar conta →