KID og EHF

MOD10 og MOD11: slik regner du ut kontrollsifferet i et KID

Det siste sifferet i et KID er regnet ut fra alle de andre. Her går vi gjennom begge metodene med samme tall, slik at du ser forskjellen og kan kontrollere ditt eget system.

Kort fortalt

  • MOD10 (Luhn) bruker vektene 2 og 1 fra høyre og summerer tverrsummen av produktene.
  • MOD11 bruker vektene 2, 3, 4, 5, 6, 7 fra høyre og summerer hele produktene.
  • Med MOD11 kan kontrollsifferet bli en bindestrek. Det skjer når resten er 1.
  • Samme underlag gir ofte ulike kontrollsifre, så metoden må stemme med bankavtalen.

Eksempelet vi bruker

Vi tar underlaget 482106, altså alle sifrene unntatt kontrollsifferet. Begge metodene leser tallet fra høyre mot venstre. Vil du kontrollere svarene, kan du legge tallet inn i KID-kontrollen.

Slik regner du ut MOD10

MOD10 kalles også Luhn-algoritmen. Vektene veksler mellom 2 og 1, og det første sifferet fra høyre får vekt 2. Blir produktet tosifret, bruker du tverrsummen. 16 blir altså 1 + 6 = 7.

Siffer (fra høyre)VektProduktTverrsum
62123
0100
1222
2122
82167
4144
Sum18

Se på entallssifferet i summen, som her er 8. Kontrollsifferet er 10 minus dette, altså 2. Hvis entallssifferet er 0, er kontrollsifferet også 0.

KID-en blir 4821062.

Slik regner du ut MOD11

MOD11 bruker vektene 2, 3, 4, 5, 6, 7 fra høyre. Etter 7 begynner rekken på 2 igjen. Her summerer du hele produktene, uten tverrsum.

Siffer (fra høyre)VektProdukt
6212
030
144
2510
8648
4728
Sum102

Del summen på 11 og finn resten: 102 = 9 × 11 + 3, så resten er 3. Kontrollsifferet er 11 minus resten, altså 8.

KID-en blir 4821068. Samme underlag ga altså 2 med MOD10 og 8 med MOD11.

To spesialtilfeller i MOD11

  • Resten er 0: Kontrollsifferet blir 0.
  • Resten er 1: 11 − 1 = 10, som ikke får plass i ett siffer. Kontrollsifferet erstattes da med en bindestrek.

Et eksempel er underlaget 7700100. Summen blir 67, og 67 = 6 × 11 + 1. Resten er 1, så KID-en blir 7700100-.

Bindestreken er definert i MOD11, men den kan by på problemer. Betalere kan overse den, og noen fakturasystemer tar ikke imot andre tegn enn sifre. Bruker du løpenummer, kan du unngå det ved å hoppe over de tallene som gir bindestrek.

Hvilken metode bør du velge?

Bruker systemet ditt allerede en av dem, eller har banken satt opp avtalen, er valget gjort. Starter du fra bunnen av, er MOD10 ofte det enkleste fordi kontrollsifferet alltid er et siffer.

MOD10MOD11
Vekter fra høyre2, 1, 2, 1 …2, 3, 4, 5, 6, 7, 2 …
SummererTverrsum av produkteneHele produktene
KontrollsifferAlltid 0–90–9 eller bindestrek
Eksempel: 48210648210624821068

Kode du kan kopiere

Her er begge metodene i JavaScript. De tar inn underlaget som tekst og returnerer kontrollsifferet.

function mod10(underlag) {
  let sum = 0, vekt = 2;
  for (let i = underlag.length - 1; i >= 0; i--) {
    let p = Number(underlag[i]) * vekt;
    if (p > 9) p -= 9; // samme som tverrsum for tall opp til 18
    sum += p;
    vekt = vekt === 2 ? 1 : 2;
  }
  return String((10 - (sum % 10)) % 10);
}

function mod11(underlag) {
  let sum = 0, vekt = 2;
  for (let i = underlag.length - 1; i >= 0; i--) {
    sum += Number(underlag[i]) * vekt;
    vekt = vekt === 7 ? 2 : vekt + 1;
  }
  const r = 11 - (sum % 11);
  if (r === 11) return "0";
  if (r === 10) return "-";
  return String(r);
}

mod10("482106"); // "2"
mod11("482106"); // "8"

Vanlige feil når du programmerer dette

  • Starter fra venstre. Vektene skal alltid telles fra høyre. Starter du fra venstre, kan du få riktig svar på noen tall og feil på andre.
  • Tar med kontrollsifferet i utregningen. Når du lager et KID, skal det siste sifferet ikke være med i underlaget.
  • Lagrer KID som tall. Da forsvinner ledende nuller, og 0000000026 blir 26. Lagre det som tekst.
  • Kutter lange verdier. Får ikke ordrenummeret plass i formatet, må systemet gi feilmelding. Kutter det sifre, kan to ordrer få samme KID.

Test koden din med tallene i denne artikkelen, og sjekk også noen av dine egne tall i KID-kontrollen.

Kilder

KID og EHF er vårt eget produkt, så vi har en interesse i temaet. Artikkelen gir generell informasjon per 3. november 2026 og er ikke juridisk rådgivning eller regnskapsrådgivning. Sjekk gjerne med banken eller regnskapsføreren din.

Relaterte artikler