Inscrição estadual
Números de inscrição estadual, validados conforme a regra de cada estado.
Validar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca83 casos falham
- .NET, biblioteca83 casos falham
- Erlang, biblioteca
Valida uma inscrição estadual para um estado informado. Usa o formato e a regra de dígito verificador que o estado publica (SINTEGRA).
params.valueé a inscrição, uma string. Qualquer outro tipo, ou valor ausente, retornafalse.params.stateCodeé a sigla de duas letras do estado, sem diferenciar maiúsculas de minúsculas, e espaços nas pontas são ignorados (até a 2.4.0 o espaço tornava o estado desconhecido e o resultadofalse). Um estado desconhecido ou ausente retornafalse.- Pontuação e espaços na inscrição são ignorados. Letras são descartadas antes da verificação em todos os estados, exceto SP, onde só o
Pé aceito. - O JavaScript ainda mantém a forma da 2.3.0,
isValidIe(stateCode, ie), obsoleta. Ela responde como a forma com objeto. As outras linguagens recebem só o objeto de parâmetros. - Vários estados têm casos especiais: GO, PA, MS, MT, SP, TO, DF, PE, AL, AM, RR, MG e RO. São prefixos ou formatos extras, ou leituras onde a página do SINTEGRA é omissa ou diverge dos atos do próprio estado. Quando as fontes oficiais divergem, a biblioteca mantém o comportamento e documenta em que ele se apoia.
- AL: o terceiro dígito é o tipo de empresa e precisa ser 0, 3, 5, 7 ou 8, os cinco que a página do SINTEGRA lista. A 2.4.0 aceitava qualquer terceiro dígito.
- DF: 13 dígitos com prefixo 07 ou 08. O DF passou para 08 quando os números 07 acabaram. Nenhum ato da SEFAZ-DF anuncia isso; o prefixo se apoia no validador de CF/DF do portal da Receita DF e em notas de software. A 2.4.0 só aceitava 07.
- GO: 9 dígitos com prefixo 10, 11, 15 ou de 20 a 29. A IN 946/09-GSF (na redação da IN 1.535/22-GSE) dá 10 e 20 para pessoa jurídica e 11 para pessoa física, e a Secretaria da Economia emite o 20 para empresas novas desde 13/01/2023. A página do SINTEGRA (2022) dá de 20 a 29, e só o roteiro de crítica de 2012 dá 15. O dígito verificador segue o roteiro de 2012, com a faixa especial 10103105 a 10119997 e a inscrição 11094402 de dois dígitos, então
101031050é rejeitada. A 2.4.0 rejeitava os prefixos de 20 a 29. Nenhuma norma cita o 15 nem o 21 a 29, então as fontes oficiais divergem e todos os prefixos são aceitos. A regra do dígito verificador da página do SINTEGRA (2022) lê sempre o resto 0 ou 1 como 0; esta biblioteca segue o roteiro, como a 2.4.0. - MT: 9 dígitos, a forma que a Portaria SEFAZ-MT 59/2025 art. 8º § 1º prescreve, ou os 11 dígitos que a página do SINTEGRA mostra. A forma de 9 dígitos é verificada como a de 11 completada com dois zeros. A 2.4.0 só aceitava 11 dígitos.
- PA: 9 dígitos com prefixo 15 ou de 75 a 79, os seis que a página do SINTEGRA lista. A SEFA-PA anunciou só o 75 (08/10/2024); 76 a 79 se apoiam na página. É o comportamento da 2.4.0.
- PE: o número eFisco de 9 dígitos ou o antigo número CACEPE de 14 dígitos (13 dígitos e 1 verificador, pesos 5, 4, 3, 2, 1, 9 a 2, diferença acima de 9 menos 10). A Portaria SF 087/2007 converteu os números antigos, mas não fixou data a partir da qual eles deixam de valer. A 2.4.0 só aceitava 9 dígitos.
- SP: uma inscrição de produtor rural é
Pseguido de0MMMSSSSD000, então o caractere depois doPprecisa ser 0 (P0 + 11 dígitos). OPpode ser minúsculo. Letras diferentes dePsão rejeitadas. A 2.4.0 aceitava qualquer dígito depois doP. - MS: prefixos 28 e 50, os dois que a página do SINTEGRA (2024) dá. Um comunicado da SEFAZ-MS diz que as empresas novas começam com 50, enquanto a única norma, a Resolução/SEF 1.344/1999, dá só o 28. A regra do dígito verificador é a mesma para os dois.
- RR: o prefixo 24 é obrigatório. A página do SINTEGRA nunca o escreve: ele é lido dos dez exemplos válidos da página, que começam todos com 24.
- TO: a forma de 9 dígitos em vigor (Portaria SEFAZ-TO 676/2002, art. 3º; RICMS-TO, art. 90), sem verificação de prefixo, ou a antiga de 11 dígitos que a página do SINTEGRA documenta, cujos dígitos de tipo (3º e 4º, fora da soma do dígito verificador) precisam ser 01, 02, 03 ou 99.
- AM: a página do SINTEGRA dá uma regra com dois ramos e deixa "Resto" indefinido. A biblioteca o lê como a soma módulo 11 e dá 0 a uma soma de 0 ou 1, que é a regra comum do módulo 11 (pesos de 9 a 2, resto 0 ou 1 dando 0).
- RO: a forma de 14 dígitos (13 dígitos e o verificador) que a página do SINTEGRA dá para inscrições desde 01/08/2000. A de 9 dígitos que ela ainda mostra para a fórmula anterior (
101.62521-3) é rejeitada: esses números foram convertidos em0000000062521-3. - MG: um primeiro dígito verificador 10, vindo de uma soma que já é múltiplo de dez, é lido como 0.
- Uma inscrição só com zeros é aceita sempre que a fórmula publicada dá dígito verificador 0 para ela: AM, CE, ES, MG, PB, PE (9 dígitos), PI, PR, RJ, RS, SC, SE e SP, além de BA com 8 ou 9 dígitos, MT com 9 ou 11 dígitos e TO com 9 dígitos. Diferente de
cpf.isValidecnpj.isValid, a IE não rejeita dígitos repetidos.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
params | IsValidIeParams | sim |
params.value | string | sim |
params.stateCode | StateCode | sim |
| retorna | boolean |
Valida uma inscrição estadual para um estado. Descontinuada: a forma posicional isValidIe(stateCode, ie) continua funcionando, mas está descontinuada; use a forma com objeto isValidIe({ value, stateCode }).
- Recebe um único objeto (
IsValidIeParams):valueé a inscrição estateCodeo estado ao qual ela pertence (umStateCode, sem diferenciar maiúsculas de minúsculas e ignorando espaços em volta). - Alguns estados têm casos especiais, um prefixo ou formato que a página do SINTEGRA não traz ou um desvio proposital dela (detalhes e fontes no JSDoc em
src/is-valid-ie):- GO: os prefixos 10, 11, 15 e 20 a 29, a união de fontes que divergem: a norma (IN nº 946/09-GSF, art. 39, I, na redação da IN nº 1.535/22-GSE) traz 10, 20 e 11, a página do SINTEGRA 10, 11 e 20 a 29, o roteiro de crítica de 2012 10, 11 e 15. O dígito verificador segue o roteiro, como na 2.4.0: resto 1 dá 1 na faixa 10103105 a 10119997, e 11094402 aceita os dois dígitos, casos especiais que a página do SINTEGRA (2022) não tem.
- MT: 11 dígitos, ou os 9 dígitos que a Portaria SEFAZ-MT nº 59/2025 (art. 8º, § 1º) prevê, lidos como a forma de 11 dígitos com dois zeros à esquerda (nenhum texto oficial traz a regra do dígito verificador da forma de 9 dígitos).
- PA: os prefixos 15 e 75 a 79 que a página do SINTEGRA lista (a SEFA-PA atribui 75 desde 07/10/2024). MS: os prefixos 28 e 50 que a página do SINTEGRA traz (o 50 também está em um comunicado da SEFAZ-MS sobre o e-CCE; a única norma, a Resolução/SEF nº 1.344/1999, traz só o 28).
- DF: a regra de 13 dígitos do AC com os prefixos 07 e 08. A página do SINTEGRA não diz que o 07 é fixo; a folha de regras da SEFAZ-DF o chama de "campo fixo". O DF passou a 08 quando os números iniciados por 07 acabaram.
- RR: o prefixo 24, que a página do SINTEGRA não escreve como regra: ele vem dos dez exemplos da página.
- SP: o formato de produtor rural
P0MMMSSSSD000, com o zero depois doP; oPpode ser minúsculo. - TO: os 9 dígitos em vigor (Portaria SEFAZ-TO nº 676/2002, art. 3º; RICMS-TO, Decreto nº 2.912/2006, art. 90), ou os antigos 11 dígitos que a página do SINTEGRA documenta, com os dígitos de tipo 01, 02, 03 ou 99.
- AM: a regra do dígito verificador da página tem dois ramos e não define "Resto"; a biblioteca o lê como a soma módulo 11 e dá 0 a uma soma 0 ou 1, a regra comum de módulo 11.
- MG: um primeiro dígito verificador 10, de uma soma que já é múltiplo de dez, é lido como 0.
- PE: o formato eFisco de 9 dígitos e o antigo formato CACEPE de 14 dígitos, ambos na página do SINTEGRA (a Portaria SF nº 087/2007 converteu os números antigos, mas não fixou data a partir da qual deixam de valer).
- RO: o formato de 14 dígitos que a página do SINTEGRA dá para as inscrições desde 01/08/2000. O formato de 9 dígitos que ela ainda imprime para a fórmula anterior (
101.62521-3) é rejeitado: esses números foram convertidos para 13 dígitos mais o dígito verificador (0000000062521-3). - AL: o terceiro dígito, o tipo de empresa, deve ser 0, 3, 5, 7 ou 8, os valores que a página do SINTEGRA lista.
- Uma inscrição só de zeros é aceita em todo estado cuja fórmula publicada produz dígito verificador 0 para ela: AM, CE, ES, MG, PB, PE (9 dígitos), PI, PR, RJ, RS, SC, SE e SP, mais BA com 8 ou 9 dígitos, MT com 9 ou 11 dígitos e TO com 9 dígitos.
import { isValidIe } from '@brazilian-utils/brazilian-utils';
isValidIe({ value: '110042490114', stateCode: 'SP' }); // true
isValidIe({ value: 'P011004243002', stateCode: 'SP' }); // true (produtor rural)
isValidIe({ value: '0187634580933', stateCode: 'AC' }); // false
isValidIe({ value: '109161793', stateCode: 'go' }); // true (não diferencia maiúsculas de minúsculas)
isValidIe({ value: '109161793', stateCode: ' GO ' }); // true (espaços em volta são ignorados)
isValidIe({ value: '200000004', stateCode: 'GO' }); // true (prefixo 20)
isValidIe({ value: '130000019', stateCode: 'MT' }); // true (9 dígitos)Fonte: páginas dos estados no SINTEGRA, o roteiro de crítica de Goiás e a IN nº 946/09-GSF.
Código: brazilian-utils/javascriptTeste com JavaScript isValidIe
Casos de teste compartilhados (264) e o resultado em cada biblioteca ie.isValid
Guias
Fontes oficiais
- sintegra.gov.br/insc_est.html
- sintegra.gov.br/Cad_Estados/cad_AC.html
- sintegra.gov.br/Cad_Estados/cad_AL.html
- sintegra.gov.br/Cad_Estados/cad_AM.html
- sintegra.gov.br/Cad_Estados/cad_AP.html
- sintegra.gov.br/Cad_Estados/cad_BA.html
- sintegra.gov.br/Cad_Estados/cad_CE.html
- sintegra.gov.br/Cad_Estados/cad_DF.html
- sintegra.gov.br/Cad_Estados/cad_ES.html
- sintegra.gov.br/Cad_Estados/cad_GO.html
- sintegra.gov.br/Cad_Estados/cad_MA.html
- sintegra.gov.br/Cad_Estados/cad_MG.html
- sintegra.gov.br/Cad_Estados/cad_MS.html
- sintegra.gov.br/Cad_Estados/cad_MT.html
- sintegra.gov.br/Cad_Estados/cad_PA.html
- sintegra.gov.br/Cad_Estados/cad_PB.html
- sintegra.gov.br/Cad_Estados/cad_PE.html
- sintegra.gov.br/Cad_Estados/cad_PI.html
- sintegra.gov.br/Cad_Estados/cad_PR.html
- sintegra.gov.br/Cad_Estados/cad_RJ.html
- sintegra.gov.br/Cad_Estados/cad_RN.html
- sintegra.gov.br/Cad_Estados/cad_RO.html
- sintegra.gov.br/Cad_Estados/cad_RR.html
- sintegra.gov.br/Cad_Estados/cad_RS.html
- sintegra.gov.br/Cad_Estados/cad_SC.html
- sintegra.gov.br/Cad_Estados/cad_SE.html
- sintegra.gov.br/Cad_Estados/cad_SP.html
- sintegra.gov.br/Cad_Estados/cad_TO.html
- goias.gov.br/economia/roteiro-de-critica-da-inscricao-estadual-de-goias
- appasp.economia.go.gov.br/Legislacao/arquivos/…/IN_0946_2009.htm
- appasp.economia.go.gov.br/Legislacao/arquivos/…/IN_1535_2022.htm
- app1.sefaz.mt.gov.br/Sistema/Legislacao/…/0d06efc6c2fa7bc303258c6c004c4788
- sefaz.pe.gov.br/Legislacao/Tributaria/…/Port087_2007.htm
- site-sefa-wordpress.sefa.pa.gov.br/2024/10/…/inscricoes-estaduais-podem-iniciar-com-numeracao-75
- static.fazenda.df.gov.br/arquivos/im1_numero_inscricao_cfdf_sintegra.gif
Veja também CNPJ
Atualizado em
