ForHosting KIT · Ferramentas para dev

Dígito verificador personnummer Suécia

Os nove dígitos 811228987, data de nascimento mais série, recebem o dígito verificador 4, e o personnummer fica 8112289874. Digite nove dígitos para completar um número de identidade sueco ou dez ou doze para confirmar o último dígito. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Número
811228987
Você obtém
Modo de cálculo
Compute
Entrada
811228987
Data
811228
Número de série
987

O personnummer sueco (número de identidade pessoal) é o identificador civil nacional usado em fiscalidade, saúde, banca, emprego e na maioria dos formulários públicos da Suécia. Na forma curta tem dez dígitos: seis para a data de nascimento como ano-mês-dia (YYMMDD), três de série atribuídos nesse dia e um dígito de controlo final. A forma de doze dígitos prefixa o século (YYYYMMDD mais série e controlo). O dígito de controlo não é decoração aleatória: é produzido pelo algoritmo de Luhn sobre os primeiros nove dígitos da forma curta, de modo que um único erro de digitação ou um par trocado costuma ser rejeitado antes de o número ser armazenado ou correspondente. Esta capacidade implementa apenas essa soma de verificação. O modo compute aceita exatamente nove dígitos —data mais série sem o controlo— e devolve o dígito Luhn mais a cadeia completa de dez dígitos. O modo validate aceita dez ou doze dígitos (hífenes ou sinais de mais opcionais) e indica se o dígito final coincide com o valor esperado recalculado.

Como se calcula o dígito verificador do personnummer sueco

Segundo as regras da Agência Tributária sueca (Skatteverket), o dígito de controlo do personnummer é um valor Luhn mod-10 calculado sobre nove dígitos: a data de nascimento de seis dígitos YYMMDD seguida da série de três dígitos. Da esquerda, contando as posições de um a nove, cada posição ímpar é duplicada; se o dobro de um dígito for maior que nove, subtrai-se nove (ou somam-se os dois dígitos do produto). As posições pares contribuem com o dígito sem alteração.

Os nove valores ponderados são somados; o dígito de controlo é dez menos essa soma módulo dez, módulo dez de novo, de modo que ao acrescentar o controlo a forma curta de dez dígitos fique coerente com Luhn. A validação recalcula o dígito esperado a partir da carga útil de nove dígitos e compara-o com o último dígito do número enviado.

Na forma de doze dígitos com século YYYYMMDDNNNC, a carga Luhn continua a ser os nove dígitos YYMMDDNNN — os dígitos do século são metadados de visualização para idade e ordenação, não parte dos pesos da soma de verificação. Um exemplo conhecido é a base 811228987, que produz o dígito de controlo 4 e a forma curta completa 8112289874 (muitas vezes escrita 811228-9874).

Os números de coordenação (samordningsnummer) usam o dia do mês mais sessenta e mantêm a mesma regra Luhn sobre os nove dígitos do corpo; esta ferramenta não inventa um algoritmo diferente para eles. O algoritmo é determinístico e local: sem chamada ao registo populacional, sem relógio e sem aleatoriedade.

Em comparação com ferramentas genéricas de Luhn de cartões ou IMEI, a intenção de pesquisa aqui é estreita: pessoas que precisam de uma calculadora do dígito verificador do personnummer sueco a partir de data e série, ou de um verificador de números pessoais suecos de dez ou doze dígitos, não de uma ferramenta de pagamento ou de dispositivo.

Onde os dígitos de controlo do personnummer se encaixam em fluxos suecos reais

Bancos e fintechs validam valores de personnummer de dez ou doze dígitos na abertura de conta para que uma única transposição não crie um cliente fantasma nem um registo KYC rejeitado. Jobs ETL que carregam arquivos mestres de clientes ou colaboradores suecos percorrem cada coluna personnummer num feed CSV ou XML, chamam o modo validate e colocam em quarentena as linhas em que valid é false, captando tanto edições humanas como bugs de um dígito em geradores.

Sistemas municipais e escolares aceitam frequentemente formas com hífen e compactas; remover espaços, hífenes e sinais de mais antes da verificação de dígitos mantém o contrato simples sem inventar um segundo algoritmo. Não trate um personnummer com verificação correta como prova de que o titular está vivo no registo populacional, tem cartão de identidade sueco ou está autorizado para um serviço; só prova que o dígito Luhn é coerente com a data e a série segundo os pesos oficiais do personnummer sueco.

Auditar colunas personnummer em dados mestres

Valide em lote cada personnummer num CSV de CRM, EHR ou folha de pagamento e coloque em quarentena as linhas cujo dígito de controlo já não coincida com o valor esperado recalculado.

O que é o dígito verificador de um personnummer sueco?

É o décimo dígito da forma curta do número de identidade pessoal sueco, calculado com o algoritmo de Luhn sobre a data de nascimento de seis dígitos e a série de três, de modo que erros de digitação e de leitura óptica costumam ser detetados antes de o número ser armazenado.

A ferramenta do dígito verificador do personnummer é gratuita?

A ferramenta do navegador é gratuita e corre localmente.

Como se calcula o dígito verificador do personnummer?

Pegam-se os nove dígitos de data e série e dobra-se cada dígito em posição ímpar a partir da esquerda, subtraindo nove do que passar de nove. Soma-se tudo, e o dígito verificador leva o total a um múltiplo de dez. Para 811228987, ele é 4.

A forma de doze dígitos muda o dígito verificador?

Não. Na forma de doze dígitos, os dois primeiros só indicam o século, para exibir e ordenar. O dígito verificador continua sendo calculado com os mesmos nove dígitos da forma curta.

Funciona com números de coordenação?

Sim. O número de coordenação, ou samordningsnummer, soma sessenta ao dia de nascimento, mas usa a mesma regra de Luhn sobre os nove dígitos, então a ferramenta calcula e confere do mesmo jeito.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/enc/personnummer-sweden

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/enc/personnummer-sweden \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"811228987"}'
{
  "number": "811228987"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.personnummer_sweden",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Corpos não numéricos e comprimentos incorretos falham com invalid_input em vez de um corte silencioso. A mesma aritmética pura corre grátis no navegador e ao preço publicado da API, sem consulta a registo e sem afirmar que uma soma de verificação válida implica que a pessoa viva, esteja registada ou tenha direito a um serviço.

Contrato de entrada, modos e comportamento de erro

Um comprimento incorreto é um erro explícito que nomeia o modo e o comprimento enviado —nove para compute, dez ou doze para validate— para que os formulários do cliente mostrem uma mensagem precisa sem adivinhar. Cadeias vazias, number em falta e valores de mode inválidos falham antes de qualquer soma Luhn e não são faturados. Uma cadeia bem formada que simplesmente tem o dígito de controlo errado devolve valid false sem lançar erro. Envie um campo number com o corpo do personnummer. Espaços, hífenes e sinais de mais são removidos para que formas de apresentação suecas comuns como 811228-9874 ou 19811228-9874 sejam aceites após a normalização; outra pontuação e letras são rejeitadas como entrada não numérica com invalid_input, de modo que um valor limpo em silêncio nunca chegue ao armazenamento. O modo compute é o predefinido: o motor exige exatamente nove dígitos, devolve check_digit como cadeia de um carácter, with_check como o personnummer curto de dez dígitos que pode imprimir ou persistir, e também date (YYMMDD) e serial (três dígitos) para auditoria. O modo validate aceita exatamente dez dígitos (YYMMDDNNNC) ou doze (YYYYMMDDNNNC); a resposta indica valid true quando o dígito final coincide com expected_check_digit recalculado, e inclui sempre payload (os nove dígitos Luhn), check_digit, expected_check_digit, date, serial, form ("10" ou "12") e length. Em entradas de doze dígitos a resposta também inclui century e full_date (YYYYMMDD) sem tratar o século como parte da soma Luhn. Alias como personnummer, pnr, digits e code são aceites para o mesmo campo de carga útil, de modo que integrações que já usam nomes de campo suecos não precisem de renomear. Como o caminho é parse puro sem relógio, fonte aleatória ou rede, o mesmo corpo JSON produz sempre o mesmo resultado JSON na ferramenta gratuita do navegador e na API a US$ 0,002 por pedido bem-sucedido.

Onde os dígitos de controlo do personnummer se encaixam em fluxos suecos reais

Portais de saúde e sistemas de farmácia recalculam expected_check_digit quando uma clínica lê um número ao telefone ou o cola de um cartão digitalizado, captando erros de digitação antes de arquivar uma entrada de diário ou uma receita. Empregadores e fornecedores de folha de pagamento completam bases de nove dígitos em sandboxes com o modo compute e depois armazenam with_check em colaboradores de teste que devem parecer identificadores de produção. Em todos os fluxos a promessa é a mesma: apenas dígitos após o strip opcional de separadores, comprimento fixo por modo, JSON estruturado que pode ser testado com goldens, comportamento idêntico no navegador gratuito e na API pré-paga, e invalid_input honesto quando a cadeia não é uma sequência pura de dígitos do comprimento correto.

Completar uma base de personnummer de 9 dígitos para testes

Chame o modo compute com YYMMDD mais três dígitos de série, armazene with_check e use o personnummer de dez dígitos em registos de teste de KYC, folha de pagamento ou saúde.

Validar números pessoais suecos digitados ou importados

Quando um formulário, arquivo bancário ou feed de RH enviar dez ou doze dígitos, chame o modo validate e bloqueie a inscrição se valid for false, mostrando expected_check_digit para ajudar a corrigir um único erro de digitação.

Como calculo o dígito verificador de um personnummer com esta API?

Faça POST com number definido para exatamente nove dígitos (YYMMDD mais série) e mode compute (ou omita mode). A resposta inclui check_digit e with_check (a forma curta completa de dez dígitos).

Como valido um personnummer completo de dez ou doze dígitos?

Faça POST com a cadeia de dígitos (hífenes ou sinais de mais opcionais) e mode validate. A resposta inclui valid, check_digit, expected_check_digit e payload (os nove dígitos Luhn).

O que acontece com comprimento errado, letras ou pontuação estranha?

Após remover espaços, hífenes e sinais de mais, entrada não numérica e comprimentos diferentes de nove (compute) ou dez/doze (validate) são rejeitados com invalid_input. Tarefas de validação falhadas não são faturadas.

Ver a documentação completa do KIT →