/kid

KID-nummer generator og validator (MOD10 & MOD11)

Generer og valider KID-nummer med enten MOD10 eller MOD11 kontrollsiffer lokalt i nettleseren.

-

Slik fungerer det

KID-nummer (kundeidentifikasjon) brukes på norske fakturaer for å koble en innbetaling til riktig kunde. Det siste sifferet er et kontrollsiffer beregnet med enten MOD10 (Luhn) eller MOD11. Velg algoritmen banken din bruker.

Om dette verktøyet

KID (Kunde-IDentifikasjon) er et referansenummer på 2–25 sifre som norske banker bruker for å knytte en innbetaling til riktig faktura eller kunde. Det siste sifferet er et kontrollsiffer beregnet med enten MOD10-algoritmen (Luhn, vanligst) eller MOD11, samme prinsipper som brukes i kredittkort- og fødselsnummer-validering. Dette verktøyet lager gyldig KID fra et grunnlagsnummer, sjekker om et gitt KID er gyldig, og forklarer hvilken algoritme som er brukt. Alt kjøres lokalt i nettleseren, verken KID eller kundenumre sendes noe sted.

Slik bruker du det

  1. For å lage KID: skriv inn grunnlagsnummeret (f.eks. faktura- eller kundenummer) og velg MOD10 eller MOD11.
  2. Verktøyet beregner kontrollsifferet og legger det til på slutten, det ferdige KID kan brukes rett i faktura eller nettbank.
  3. For å sjekke et KID: lim inn hele nummeret. Du får bekreftet om det er gyldig, og hvilken algoritme som stemmer.
  4. MOD10 er vanligst, bruk den hvis du ikke vet hva mottakeren krever.
  5. KID må være mellom 2 og 25 sifre, uten mellomrom eller andre tegn.

Eksempler

MOD10 (Luhn)
Inn12345678
Ut123456782
Grunnlaget «12345678» får kontrollsifferet 2 med MOD10. Samme algoritme som brukes på kredittkort.
MOD11
Inn12345678
Ut123456788
Samme grunnlag får kontrollsifferet 8 med MOD11. MOD11 kan gi «10» som kontrollsiffer, da må enten nummeret forkastes eller markeres med `-`.
Typisk fakturakontroll
Inn000012345000067890
Vanlig oppbygging: kundenummer + fakturanummer + kontrollsiffer, med nuller foran for fast lengde. Bedriften velger selv formatet.

Vanlige bruksområder

  • Automatisk sammenstilling av innkommende betalinger med utestående fakturaer i regnskapssystemet.
  • Sjekke at et KID skrevet inn av en kunde er gyldig før innsending, sparer manuell feilsøking.
  • Generere KID-er for utgående fakturaer i en Node.js-, PHP- eller .NET-integrasjon.
  • Valideringssteg i nettbutikker og donasjonsformularer.
  • Migrere gamle fakturasystemer der KID må rekonstrueres.
  • Feilsøke returnerte betalinger fra banken pga. ugyldig KID.

Ofte stilte spørsmål

Hva er forskjellen på MOD10 og MOD11?
MOD10 (Luhn) multipliserer sifrene vekselvis med 2 og 1, summerer og ser hva som mangler for å nå neste tier. Enkelt og alltid ett kontrollsiffer. MOD11 bruker vektene 2, 3, 4, 5, 6, 7, 2, 3… og modulo 11, mer robust mot dobbeltfeil, men kan gi «10» som ikke passer i ett siffer. Norske banker støtter begge, MOD10 er vanligst i nyere systemer.
Hvor lang kan et KID være?
Fra 2 til 25 sifre inkludert kontrollsifferet. De fleste bedrifter bruker 5–15 sifre. Norske OCR-giroskjema tillater maks 25 sifre, som er den ytre grensen.
Hva skjer hvis kunden skriver feil KID?
Nettbanken avviser vanligvis KID med feil kontrollsiffer på stedet. Går betalingen likevel gjennom (f.eks. via manuell overføring), risikerer bedriften at innbetalingen ikke kan sammenstilles automatisk og må matches manuelt, som er tidkrevende og feilbelagt.
Kan jeg bruke samme KID for flere fakturaer?
Det er teknisk mulig, men da kan du ikke automatisk sammenstille innkommende betaling med riktig faktura. Best praksis er ett unikt KID per faktura. Noen bedrifter bruker en fast «kunde-KID» for løpende abonnementer der én kunde alltid betaler samme beløp.

Teknisk bakgrunn

MOD10 (Luhn-algoritmen) ble patentert av Hans Peter Luhn i 1954 og er standardisert som ISO/IEC 7812-1. Fra høyre venstre multipliseres hvert siffer vekselvis med 1 og 2. Blir produktet ≥ 10, summeres sifrene i produktet (f.eks. 12 → 1+2=3). Totalsummen skal være delelig med 10; kontrollsifferet er 10 minus (sum mod 10) mod 10. MOD11 bruker vektene 2, 3, 4, 5, 6, 7 syklisk fra høyre. Sum multipliseres med hvert siffer, mod 11 tas, og kontrollsifferet er 11 minus resten. Rest = 0 gir kontrollsiffer 0; rest = 1 gir «10» som ikke får plass, nummeret må da forkastes.