catbean.pages.dev

Como checar dígito verificador de inscrição estadual SP?

A validação da inscrição estadual de São Paulo pode parecer complexa devido ao seu algoritmo específico, mas com o método correto, é possível automatizar e simplificar esse processo em segundos. Este guia apresenta a fórmula exata e o script para checar o dígito verificador de forma precisa e confiável.

Pré-requisitos

Usando Fórmula no Excel

A fórmula abaixo valida a inscrição estadual de SP diretamente no Excel. Ela considera o cálculo do dígito verificador baseado nos pesos específicos do estado.

=SE(ESQUERDA(A1;1)="P";SE(PARA.MAIÚSCULO(ESQUERDA(A1;1))="P";SE(É.NÚMERO(MID(A1;2;8));SE(MOD(SOMA(POTENCIA(2;8):POTENCIA(2;1))*MID(A1;2;8)+P;11)-10=0;"Válido";"Inválido")));"Inválido")

Usando Script Python

Para automatizar a validação em lote, use o script Python abaixo. Ele implementa o algoritmo exato do estado de São Paulo.

def validar_inscricao_estadual_sp(inscricao):
    inscricao = str(inscricao).replace('.', '').replace('-', '').replace('/', '').strip()
    if len(inscricao) != 12:
        return False
    if inscricao[0] == 'P':
        base = inscricao[1:9]
        peso = [1, 3, 4, 5, 6, 7, 8, 10]
    else:
        base = inscricao[:8]
        peso = [1, 3, 4, 5, 6, 7, 8, 10]
    soma = sum(int(base[i]) * peso[i] for i in range(8))
    resto = soma % 11
    digito = 0 if resto <= 1 else 11 - resto
    return str(digito) == inscricao[8] if inscricao[0] != 'P' else str(digito) == inscricao[9]

# Exemplo de uso
inscricao = "12.345.678-9"
if validar_inscricao_estadual_sp(inscricao):
    print("Válido")
else:
    print("Inválido")

Exemplo Prático

Inscrição Estadual Válida?
12.345.678-9 Válido
12.345.678-0 Inválido
P-01234567-8 Válido

Conclusão

Com este método, você automatiza a validação da inscrição estadual de São Paulo em segundos, evitando erros manuais e garantindo precisão nos seus dados fiscais.