Como validar um NISS em Portugal: algoritmo e primeiros dígitos
O que é o NISS
O NISS — Número de Identificação da Segurança Social é o identificador único de cada pessoa singular ou colectiva perante o sistema de Segurança Social português. Tem exactamente 11 dígitos e serve para inscrição, registo de remunerações, pagamento de contribuições, atribuição de prestações sociais (subsídio de desemprego, doença, parentalidade, pensões) e acesso à Segurança Social Directa (SSD) online.
Ao contrário do NIF (fiscal), o NISS é atribuído pelo Instituto da Segurança Social (ISS) e a sua estrutura codifica o tipo de titular no primeiro dígito. Trabalhadores por conta de outrem, independentes, empresas e trabalhadores estrangeiros têm todos NISS mas com primeiros dígitos distintos, o que permite identificar rapidamente a natureza do titular.
Como se valida
A validação do NISS segue um algoritmo próprio de módulo 10 ponderado. Os primeiros 10 dígitos são multiplicados por uma sequência fixa de pesos e o 11.º (dígito de controlo) é calculado a partir da soma.
Sequência de pesos, da esquerda para a direita:
pesos = [29, 23, 19, 17, 13, 11, 7, 5, 3, 2]
Algoritmo:
1. soma = sum(digito_i * peso_i) para i de 1 a 10
2. resto = soma mod 10
3. digito_controlo = 9 - resto
4. se digito_controlo == digito_11 → NISS válido
Se o resultado do passo 3 der um valor que não coincide com o 11.º dígito do NISS testado, o número é inválido — pode ser typo ou falsificação.
O primeiro dígito classifica o titular:
- 1 — cidadão nacional (pessoa singular)
- 2 — cidadão estrangeiro (pessoa singular)
- 3 — recém-nascido ou casos especiais
- 5 — empresas com estatuto jurídico próprio
- 6 — entidades de administração pública
- 7 — heranças indivisas e situações fiduciárias
- 8 — empresas em nome individual, empresários em nome individual
- 9 — condomínios, sociedades irregulares, outras entidades
Exemplo prático em Portugal
Considera o NISS fictício 11234567895. Aplicando o algoritmo:
digitos: 1 1 2 3 4 5 6 7 8 9
pesos: 29 23 19 17 13 11 7 5 3 2
produto: 29 23 38 51 52 55 42 35 24 18
soma = 367
resto = 367 mod 10 = 7
digito_controlo = 9 - 7 = 2
O 11.º dígito seria 2, não 5 — logo, este NISS é inválido. Um NISS válido para os primeiros 10 dígitos 1123456789 seria 11234567892.
O primeiro dígito 1 indica cidadão nacional. Um NISS como 25123456789 (começando por 2) corresponde a cidadão estrangeiro; 85123456789 a empresa em nome individual.
Contexto em Portugal
O NISS é atribuído automaticamente aos nascimentos registados em Portugal desde a Lei da Nacionalidade, e a qualquer cidadão estrangeiro no momento da inscrição na Segurança Social (obrigatória para trabalhar legalmente). Empresas obtêm NISS na constituição, articulado com o NIF atribuído pela AT.
O acesso à Segurança Social Directa (SSD) faz-se com NISS + senha (ou com Chave Móvel Digital / Cartão de Cidadão). É por ali que se consultam remunerações registadas, se emitem declarações de situação contributiva, se comunicam admissões e cessações de trabalhadores e se pagam contribuições dos independentes.
O empregador é obrigado a comunicar admissões nas 24 horas anteriores ao início do contrato, através da SSD. Sem essa comunicação, o trabalhador não fica registado e perde direitos.
Validar o NISS em software é útil em formulários web, portais de emprego, plataformas de facturação e sistemas HR — evita insucessos de submissão à Segurança Social por erro humano. É o equivalente ao check-digit do IBAN ou do NIF.
Erros comuns
- Confundir NISS com NIF: têm ambos 11 dígitos mas algoritmos e propósitos completamente diferentes. NIF é fiscal, NISS é social. Não são convertíveis um no outro.
- Usar algoritmos de módulo 11 (do NIF): o algoritmo do NISS é módulo 10 com pesos específicos, não o do NIF. Aplicar o algoritmo do NIF a um NISS gera falsos negativos.
- Assumir que qualquer 11 dígitos é NISS: um número aleatório de 11 dígitos tem apenas 10% de probabilidade de passar o check-digit. Validar o algoritmo antes de submeter.
- Aceitar NISS com primeiro dígito 0 ou 4: não existem NISS válidos com esses primeiros dígitos em 2026. Se o campo permite, é bug.
- Não separar espaços ou traços: alguns sistemas armazenam NISS com formatação (
1 1234 5678 92). Antes de validar, remove todos os espaços e caracteres não numéricos. - Copiar do cartão sem verificar: o cartão da Segurança Social antigo tem NISS impresso em fonte pequena e é fácil trocar 1 por 7 ou 0 por 8. Validar sempre no acto de inserção.