Validera personnummer online
Skriv in ett personnummer med 10 eller 12 siffror så kontrolleras kontrollsiffran enligt Luhn-algoritmen och att datumet finns. Allt sker i din webbläsare — numret skickas aldrig någonstans.
🔒 Valideringen körs lokalt i din webbläsare. Inget personnummer skickas till eller sparas på någon server.
Så kontrolleras ett personnummer
Ett svenskt personnummer består av födelsedatum (sex eller åtta siffror), ett löpnummer på tre siffror och en kontrollsiffra. Kontrollsiffran räknas ut med Luhn-algoritmen (modulus 10) över de nio första siffrorna i tioställig form:
- Multiplicera siffrorna på plats 1, 3, 5, 7 och 9 med 2 och siffrorna på plats 2, 4, 6 och 8 med 1.
- Är en produkt större än 9 tas korssumman, vilket är samma sak som att dra bort 9.
- Summera alla produkter. Kontrollsiffran är det tal som fyller upp summan till närmaste tiotal:
(10 − summa mod 10) mod 10.
Exempel för 850709-1232: de nio första siffrorna 850709123 ger produkterna 7, 5, 0, 7, 0, 9, 2, 2, 6 som summeras till 38, och (10 − 8) mod 10 = 2, vilket stämmer med sista siffran. Verktyget ovan visar samma uträkning steg för steg för just ditt nummer.
Verktyget kontrollerar också att datumdelen är ett riktigt kalenderdatum, härleder kön (näst sista siffran: udda = man, jämn = kvinna) och känner igen samordningsnummer, där dagen i födelsedatumet är ökad med 60.
Vanliga frågor
Vad är skillnaden mellan personnummer och samordningsnummer?
Samordningsnummer tilldelas personer som inte är eller har varit folkbokförda i Sverige. De ser ut som personnummer men dagen i födelsedatumet är ökad med 60, så den 9:e blir 69.
Betyder ett giltigt personnummer att personen finns?
Nej. Verktyget kontrollerar bara att numret är formellt korrekt (datum och kontrollsiffra). Det går inte att se om numret faktiskt är tilldelat någon. Det avgörs bara av Skatteverkets register.
Vad betyder plustecknet i ett personnummer?
Ett + i stället för - betyder att personen är 100 år eller äldre. Med tolvsiffrig form behövs det inte eftersom århundradet då står med.
Är det säkert att skriva in ett riktigt personnummer här?
Valideringen körs helt i din webbläsare och inget skickas iväg. Använd ändå gärna testnummer när du bara vill prova.
Behöver du validera i din egen kod?
Samma kontroll finns som ett REST-API: ett GET-anrop, ett JSON-svar. Ingen SDK att installera. Gratisnivån ger 100 anrop per dag.
GET /v1/personnummer?nummer=850709-1232 x-api-key: DIN_NYCKEL
{
"valid": true,
"normalized": "19850709-1232",
"birth_date": "1985-07-09",
"gender": "man",
"is_coordination_number": false
}
Prova API:et API-dokumentation