Formulär · Inmatning

Personnummer & Samordningsnummer

Guide till format, korrekt inmatning, validering och lagring – med interaktiv validator.

Vad är ett personnummer?

Personnumret är ett unikt identifieringsnummer som Skatteverket tilldelar alla som folkbokförs i Sverige. Det används i kontakt med myndigheter, vård, skola, bank och digitala tjänster som kräver identifiering.

Numret är en kombination av födelsedata och ett löpnummer, plus en kontrollsiffra som gör det möjligt att verifiera att numret är korrekt angivet.

Viktigt om integritet

Personnumret är en känslig personuppgift enligt GDPR. Samla inte in eller lagra personnummer utan ett tydligt, lagligt ändamål. Informera alltid användaren om varför numret behövs och hur det hanteras.

Vad är ett samordningsnummer?

Samordningsnumret tilldelas av Skatteverket till personer som inte är folkbokförda i Sverige men som ändå behöver en identitetsbeteckning – till exempel arbetstagare med tillfälliga uppdrag, EU-medborgare eller asylsökande.

Samordningsnumret har exakt samma struktur som ett personnummer, med ett viktigt undantag:

Dag + 60

Dagdelen i samordningsnumret ökas med 60. En person född den 15 i en månad får dagdelen 75 i sitt samordningsnummer (15 + 60 = 75). Möjliga dagvärden är alltså 61–91.

Det gör att ett samordningsnummer alltid kan identifieras och skiljas från ett personnummer – ett datum med dag över 31 är per definition ett samordningsnummer.

Jämförelse

Egenskap Personnummer Samordningsnummer
Tilldelar Folkbokförda i Sverige Icke folkbokförda med behov av ID
Dagdel (DD) 01–31 61–91 (dag + 60)
Antal siffror 12 12
Kontrollsiffra Luhn-algoritm Samma Luhn-algoritm
Giltighetstid Livslång (som huvudregel) Tidsbegränsad, kan förnyas

Format och struktur

Det rekommenderade formatet vid inmatning är 12-siffrigt med bindestreck:

Formatet är: fyra siffror för år (ÅÅÅÅ), två siffror för månad (MM), två siffror för dag (DD), ett bindestreck, tre siffror för löpnummer (NNN) och en kontrollsiffra (K). Totalt tretton tecken.

Exempelformat med ett fiktivt men matematiskt giltigt personnummer:

Vad varje del betyder

ÅÅÅÅ – Födelseår (4 siffror)
Fyrasiffrigt år, t.ex. 1985 eller 2003. Undanröjer tvetydighet kring vilket sekel.
MM – Födelsemånad (2 siffror)
Alltid tvåsiffrigt, med inledande nolla: 0112.
DD – Födelsedag (2 siffror)
För personnummer: 0131.
För samordningsnummer: 6191 (dag + 60).
NNN – Löpnummer (3 siffror)
Tre siffror som skiljer personer med samma födelsedag. Den tredje siffran är könsindikator: udda siffra = man, jämn siffra = kvinna (avser registrerat kön vid tilldelning).
K – Kontrollsiffra (1 siffra)
Beräknas med Luhn-algoritmen på de tio siffrorna YYMMDDNNNK (de två första årsiffrorna – seklet, t.ex. 19 – används alltså inte). Gör det möjligt att snabbt detektera inmatningsfel.

Undvik kortformatet (10 siffror)

Det äldre 10-siffriga formatet (YYMMDD-NNNN) är tvetydigt för personer födda runt sekelskiften. Använd alltid 12-siffrigt format (ÅÅÅÅMMDD-NNNN) vid inmatning och ny lagring.

Kontrollsiffran – Luhn-algoritmen

Kontrollsiffran beräknas på de 10 siffrorna YYMMDDNNNK:

  1. Multiplicera varannan siffra med 2 och varannan med 1 (börja med 2 på position 1).
  2. Om en produkt är ≥ 10, subtrahera 9 (eller summera enskilda siffror).
  3. Summera alla resultat.
  4. Summan ska vara jämnt delbar med 10. Om inte, är numret felaktigt.

Interaktiv validator

Mata in ett personnummer eller samordningsnummer

Bindestreck infogas automatiskt – eller skriv det själv. Numret valideras i realtid.

Format: ÅÅÅÅMMDD-NNNN – året ska vara fyra siffror, t.ex. 1985 eller 2003. Bindestreck läggs in automatiskt.
Giltigt nummer – extraherade uppgifter

Hur validatorn vägleder användaren

  • Automatisk formatering med skärmläsaravisering

    Bindestreck infogas automatiskt när den åttonde siffran skrivits in. Vill användaren skriva bindestrecket själv – oavsett position – respekteras det. Om det skrivs in för tidigt behålls det på plats tills tillräckligt med siffror finns för att normalisera positionen. Det möjliggör inmatning i äldre stil, t.ex. YYMMDD-NNNN, utan att bindestrecket försvinner.

    Eftersom skärmläsare i formulärläge normalt bara ekar det tecken användaren själv tryckt – inte tecken som infogats programmatiskt – annonseras bindestreckets infogande separat via en dold aria-live="polite"-region med texten "Bindestreck tillagt – ange nu de fyra sista siffrorna." Annonseringen sker med polite för att inte avbryta pågående tal, och regionen rensas när fältet nollställs så att meddelandet inte upprepas vid återbesök.

  • Felaktiga tecken visas och förklaras

    Om ett tecken som inte är en siffra skrivs in – till exempel en bokstav – lämnas det kvar i fältet och ett felmeddelande visas omedelbart. Fältet ändras alltså inte i smyg.

    Det förhindrar en vanlig tillgänglighetsfälla: om tecknet tyst togs bort och användaren sedan tryckte backsteg för att korrigera sig, skulle föregående siffra raderas i stället – utan att användaren förstår varför. För den som använder skärmläsare, röstinmatning eller tangentbordsnavigering är det avgörande att fältets innehåll alltid speglar vad som faktiskt skrivits in.

    Felmeddelandet annonseras direkt via aria-live="assertive" så att skärmläsaranvändare får återkoppling utan att behöva flytta fokus. Klistra in (Ctrl+V) hanteras separat: då rensas icke-siffror automatiskt eftersom inklistring är en avsiktlig massoperation, inte en enstaka tangenttryckning.

  • Framstegsindikator

    Tretton segment – ett per tecken i formatet ÅÅÅÅMMDD-NNNN – visar hur långt användaren kommit och färgkodas grönt vid godkänt nummer eller rött vid fel. Indikatorn är dold för skärmläsare (aria-hidden="true") eftersom samma information förmedlas via textmeddelanden; den är ett visuellt stöd, inte en primär informationskälla.

  • Specifika felmeddelanden

    Felmeddelanden förklarar vad som är fel och varför – inte bara "ogiltigt nummer".

  • Kontrollsiffran verifieras

    Luhn-algoritmen körs när alla 12 siffror är ifyllda. Om kontrollsiffran inte stämmer förklarar felmeddelandet att en siffra troligen är felaktigt inskriven och nämner vanliga misstag – transponerade siffror eller en siffra för många eller för få. Det skiljer användarens inmatningsfel från ett potentiellt systemfel och ger ett handlingsbart nästa steg.

  • Extraherad information med kopieringsknapp

    Korrekta lagringsformat visas direkt när numret godkänts, med möjlighet att kopiera det önskade formatet.

Lagring och systemintegration

Beroende på system och syfte används olika format. Välj rätt format för att undvika tvetydigheter och konverteringsproblem.

Format Exempel Användning Rekommendation
12 siffror utan bindestreck 191212121212 Databaser, API:er, filöverföringar ✅ Föredragen för lagring
12 siffror med bindestreck 19121212-1212 Visning för användare, inmatning ✅ Föredragen för gränssnitt
10 siffror med bindestreck 121212-1212 Äldre system, utskrifter ⚠ Undvik vid ny lagring
10 siffror utan bindestreck 1212121212 Äldre system, import/export ⚠ Undvik vid ny lagring

Rekommendationer för systemintegration