Documentos

Inscrição Estadual: O Que É, Para Que Serve e Como Validar por Estado

Entenda a Inscrição Estadual (IE), as regras de validação por estado, e descubra como validar e gerar IE em Python usando validate_docbr.

26 de fevereiro de 20268 min de leituraDevThru

A Inscrição Estadual (IE) é o registro obrigatório para empresas que comercializam produtos e pagam ICMS. Se você desenvolve sistemas fiscais, ERPs ou e-commerces, precisa entender como a IE funciona — e por que ela é tão complexa.

Neste guia, vamos explicar o que é a IE, por que cada estado tem regras diferentes, como validar e como gerar números válidos para testes.

O Que É a Inscrição Estadual?

A Inscrição Estadual é um número de registro no cadastro de contribuintes do ICMS mantido pela SEFAZ (Secretaria da Fazenda) de cada estado. Funciona como um "CPF da empresa" para fins de impostos estaduais.

Toda empresa que vende produtos ou presta serviços de transporte e comunicação precisa de uma IE. Prestadores de serviço puros (que pagam ISS em vez de ICMS) são isentos.

💡 IE vs. CNPJ: O CNPJ é federal e identifica a empresa na Receita Federal. A IE é estadual e identifica o contribuinte na SEFAZ do seu estado. Uma empresa pode ter múltiplas IEs se operar em estados diferentes.

Por Que a IE É Tão Complexa para Desenvolvedores?

Ao contrário do CPF e CNPJ (que seguem um único padrão nacional), a IE tem 27 formatos diferentes — um para cada estado. Isso significa:

  • Cada estado tem um número diferente de dígitos (de 8 a 14)
  • As máscaras de formatação variam entre estados
  • Os algoritmos de validação do dígito verificador são diferentes
  • Alguns estados usam letras (ex: São Paulo para indústria/comércio)

Formato por Estado

Veja os formatos mais comuns:

EstadoUFFormatoDígitosExemplo
São PauloSPNNN.NNN.NNN.NNN12110.042.490.114
Rio de JaneiroRJNN.NNN.NN-N877.281.42-3
Minas GeraisMGNNN.NNN.NNN/NNNN13062.307.904/0081
BahiaBANNN.NNN.NNN9123.456.789
ParanáPRNNN.NNNNN-NN10123.45678-50
Rio Grande do SulRSNNN/NNNNNNN10224/0658949
Distrito FederalDFNNNNNNNNNNNNN130730000100109

Onde a IE Aparece em Sistemas Fiscais?

A Inscrição Estadual é obrigatória em diversos documentos fiscais eletrônicos:

NF-e (Nota Fiscal Eletrônica)

O campo <IE> do emitente é obrigatório. Se estiver ausente ou inválido, a SEFAZ rejeita a nota com o erro 212 — "IE do emitente não cadastrada".

<emit>
    <CNPJ>11222333000181</CNPJ>
    <xNome>Empresa Exemplo LTDA</xNome>
    <IE>110042490114</IE>
    <CRT>1</CRT>
</emit>

CT-e (Conhecimento de Transporte)

Obrigatória para transportadoras. O campo segue o mesmo padrão do NF-e.

SPED Fiscal

A IE é chave para cruzamento de dados fiscais. Inconsistências entre IE e CNPJ geram notificações da SEFAZ.

Como Validar uma Inscrição Estadual

A validação de IE é mais complexa que CPF/CNPJ porque cada estado tem seu próprio algoritmo. Veja o exemplo para São Paulo:

Validação para SP (12 dígitos)

function validarIE_SP(ie) {
    // Remove formatação
    ie = ie.replace(/\D/g, '');
    
    if (ie.length !== 12) return false;
    
    // Primeiro dígito verificador (posição 9)
    const pesos1 = [1, 3, 4, 5, 6, 7, 8, 10];
    let soma = 0;
    for (let i = 0; i < 8; i++) {
        soma += parseInt(ie[i]) * pesos1[i];
    }
    let resto = soma % 11;
    let dig1 = resto < 10 ? resto : 0;
    
    if (parseInt(ie[8]) !== dig1) return false;
    
    // Segundo dígito verificador (posição 12)
    const pesos2 = [3, 2, 10, 9, 8, 7, 6, 5, 4, 3, 2];
    soma = 0;
    for (let i = 0; i < 11; i++) {
        soma += parseInt(ie[i]) * pesos2[i];
    }
    resto = soma % 11;
    let dig2 = resto < 10 ? resto : 0;
    
    return parseInt(ie[11]) === dig2;
}

console.log(validarIE_SP('110042490114')); // true

Abordagem Genérica

Para validar IE de qualquer estado, você pode usar bibliotecas que já implementam os 27 algoritmos:

// Node.js: usando a lib 'br-validations'
// npm install br-validations
const { validateIE } = require('br-validations');

console.log(validateIE('110042490114', 'SP')); // true
console.log(validateIE('77281423', 'RJ'));      // true

Guia Prático: Validar Inscrição Estadual em Python com validate_docbr

A forma mais robusta e recomendada para desenvolvedores Python validarem Inscrição Estadual de qualquer estado é usar o pacote validate_docbr. Ele abstrai toda a complexidade dos cálculos de dígitos verificadores.

Primeiro, instale a biblioteca:

pip install validate-docbr

Depois, importe a classe IE e utilize os métodos validate() para checar um número e generate() para testes automatizados. O grande diferencial é que você pode (e deve) passar a sigla do estado (UF):

from validate_docbr import IE

ie = IE()

# Validação (retorna True ou False)
# O primeiro argumento é a Inscrição Estadual, o segundo é a UF
is_valid_sp = ie.validate('110042490114', 'SP')
is_valid_rj = ie.validate('77.281.42-3', 'RJ')
print(f"IE de SP é válida? {is_valid_sp}") # True

# Geração de números válidos para testes de software
# Isso é essencial em mocks de testes unitários ou end-to-end (E2E)
fake_ie_sp = ie.generate('SP')          # Gera uma IE válida de São Paulo sem máscara
fake_ie_sp_masked = ie.generate('SP', mask=True) # Gera com máscara (ex: 110.042.490.114)

print(f"IE Falsa de SP gerada: {fake_ie_sp_masked}")

Usar a ferramenta certa como o validate_docbr previne erros críticos na emissão de notas fiscais no seu backend Python, assegurando que o seu software rejeite inscrições incorretas antes de chamar as APIs da SEFAZ.

Situações Cadastrais da IE

Uma IE pode ter diferentes status na SEFAZ:

StatusSignificadoImpacto
AtivaContribuinte regularPode emitir NF-e normalmente
SuspensaTemporariamente inativaNão pode emitir NF-e
CassadaCancelada pela SEFAZEmpresa com irregularidades graves
NulaAnulada (nunca deveria existir)Registro inválido desde a origem
BaixadaEmpresa encerrou atividadesIE permanentemente inativa
⚠️ Para testes: Ao testar sistemas fiscais, use IEs geradas por ferramentas de teste. Nunca use IEs reais de empresas em desenvolvimento — isso pode gerar problemas com a SEFAZ.

IE Isenta e Não Contribuinte

Nem todos os destinatários de uma NF-e têm IE. Nesses casos:

  • ISENTO — Empresa isenta de IE (ex: prestadores de serviço puros)
  • Não Contribuinte — Pessoa física ou empresa sem atividade de ICMS

Na NF-e, isso é representado pelo campo <indIEDest>:

<!-- 1 = Contribuinte ICMS (informar IE) -->
<indIEDest>1</indIEDest>
<IE>110042490114</IE>

<!-- 2 = Contribuinte Isento -->
<indIEDest>2</indIEDest>

<!-- 9 = Não Contribuinte -->
<indIEDest>9</indIEDest>

Perguntas Frequentes

MEI precisa de Inscrição Estadual?

Sim, se o MEI vender produtos. A IE é obtida automaticamente ao se registrar como MEI em atividades de comércio. MEIs de serviços são isentos.

Uma empresa pode ter mais de uma IE?

Sim. Empresas que operam em múltiplos estados podem ter uma IE em cada estado onde possuem estabelecimento. Cada filial com CNPJ diferente terá sua própria IE.

Como consultar a situação cadastral de uma IE?

Através do portal SINTEGRA (sintegra.gov.br) ou diretamente no site da SEFAZ do estado. A consulta é gratuita e retorna dados do contribuinte.

🛠️ Experimente na prática

Use nossas ferramentas online gratuitas — sem cadastro, direto no navegador.

Inscrição EstadualICMSSEFAZdocumentos brasileirosnota fiscalvalidaçãoPythonvalidate_docbr