Validador de GSTIN Índia
Validador online de Goods and Services Tax Identification Number da Índia.
Como funciona a validação do GSTIN?
A validação verifica o comprimento (exatamente 15 caracteres) e audita o formato regex. Ela valida se os dois primeiros dígitos correspondem a um estado legítimo na Índia e extrai a seção correspondente ao PAN.
Por fim, o algoritmo realiza o cálculo do Módulo 36 alternativo sobre as primeiras 14 posições com pesos [1, 2, 1, 2...] e valida se confere com o dígito verificador.
Anatomia & Estrutura do GSTIN (Goods and Services Tax Number)
O GSTIN indiano possui 15 caracteres alfanuméricos estruturados em 5 partes:
| Posição | Campo | Tamanho | Significado & Regra | Exemplo |
|---|---|---|---|---|
| 1 e 2 | Código do Estado | 2 dígitos | Código estadual/territorial oficial (01 a 37 conforme censo indiano) | 27 |
| 3 a 12 | PAN da Entidade | 10 chars | Permanent Account Number do titular (formato AAAAA9999A) | AAPFU0939F |
| 13 | Contagem de Registro | 1 char | Número de registros da mesma entidade no mesmo estado (1-9, A-Z) | 1 |
| 14 | Caractere Padrão | 1 char | Fixo na letra 'Z' por regulamentação da GSTN | Z |
| 15 | Dígito Verificador | 1 char | Calculado pelo algoritmo Módulo 36 ponderado alternante | 5 |
Algoritmo Oficial (Módulo 36 Ponderado Alternante — GSTN)
O GSTIN utiliza Módulo 36 com pesos alternados [1, 2, 1, 2...]:
factor = val * (pos%2 === 0 ? 1 : 2); sum += floor(factor/36) + (factor%36); Check = (36 - (sum%36))%36
- 1. Mapeie cada caractere para 0-35 (0-9=0-9, A-Z=10-35).
- 2. Para posições pares use peso 1; para ímpares use peso 2.
- 3. Multiplique o valor pelo peso: factor = val × peso.
- 4. Adicione ao total: floor(factor / 36) + (factor % 36).
- 5. Calcule o resto por 36 e obtenha o caractere verificador final correspondente.