← All tools

OCR-nummer: beräkna och validera

Lägg till rätt kontrollsiffra på ett fakturanummer, eller ta reda på varför banken nekade en referens. Allt räknas ut i webbläsaren — inget skickas någonstans.

Spaces and dashes are ignored, so a reference pasted from an invoice works as-is.

Rätt kontrollsiffra, varje gång

Luhn-algoritmen med korrekt hantering av produkter över 9 — steget de flesta egna implementationer råkar hoppa över, och som gör att banken nekar filen.

Längdkontroll som Bankgirot

Längdsiffran läggs före kontrollsiffran, och kontrollsiffran räknas på basnummer plus längdsiffra. Räknar man på basnumret ensamt blir referensen tyst felaktig.

Inget lämnar webbläsaren

Beräkningen sker lokalt. Du kan klistra in riktiga fakturanummer utan att de skickas till någon server.

Vad ett OCR-nummer faktiskt är

Ett OCR-nummer är fakturans referens plus en kontrollsiffra. Banken räknar om kontrollsiffran när betalfilen läses in, och stämmer den inte avvisas posten. Därför är felet dyrt snarare än bara irriterande: betalningen kommer inte fram, och avstämningen mot bokföringen spricker.

Utöver kontrollsiffran finns en variant med längdsiffra, där referensens totala längd kodas in näst sist. Bankgirot kallar det längdkontroll, och vilken nivå som gäller bestäms i avtalet med banken.

Det vanligaste felet i egna integrationer

När längdsiffra används ska kontrollsiffran räknas på basnummer plus längdsiffra — inte på basnumret ensamt. Räknar man på basnumret och lägger till längdsiffran efteråt får man en referens som ser rimlig ut, passerar en enkel egen kontroll, och ändå nekas av banken.

Verktyget ovan visar de tre delarna separat, så det går att se exakt vilken siffra som kommer varifrån när något inte stämmer.

Varför vi byggde det

Ziikly läser fakturor från Fortnox, Bokio, Visma och e-conomic via deras API:er. OCR-referenser dyker upp i varje sådan integration, och det finns förvånansvärt lite pålitligt att kontrollera mot. Logiken bakom sidan är enhetstestad mot kända referensvärden — inte mot sig själv.

Frequently asked questions

Hur räknas kontrollsiffran ut?

Med Luhn (mod-10). Siffrorna viktas växelvis 2 och 1 från höger; produkter över 9 summeras till en siffra (12 blir 3). Kontrollsiffran är det som får summan att gå jämnt upp i tio.

Vad är längdsiffran?

Referensens totala längd — inklusive längdsiffra och kontrollsiffra — modulo 10, placerad näst sist. En referens på tolv tecken har längdsiffra 2.

Hur långt får ett OCR-nummer vara?

Högst 25 siffror enligt Bankgirot. Verktyget avvisar längre referenser med den förklaringen i stället för att räkna vidare på något banken ändå inte tar emot.

Skickas mina fakturanummer någonstans?

Nej. All beräkning sker i webbläsaren med JavaScript. Inget anrop görs och inget sparas.

OCR-nummer: beräkna och validera

Lägg till rätt kontrollsiffra på ett fakturanummer, eller ta reda på varför banken nekade en referens. Allt räknas ut i webbläsaren — inget skickas någonstans.