Skip to content
barcoder

Standards/kid

KID (Norwegian payment reference)

TypePayment reference
PrimaryNO
MentionedNO
Completeness72%high

Overview

KID (kundeidentifikasjon, "customer identification") is the Norwegian structured payment reference. It is a string of up to 25 digits whose last digit is a check digit, calculated with either a modulus 10 or a modulus 11 algorithm 134. The payee prints it on the invoice or giro. The payer's bank carries it through to the payee, who uses it to match the payment to an open invoice automatically. This works through the OCR giro and AvtaleGiro services, which Nets built and Mastercard Payment Services now runs 236.

History

  • Giro infrastructure: the Norwegian banks set up their joint payment centre, Bankenes Betalingssentral (BBS), in 1972. Before that, the Postgiro had used OCR reading since 1968 11. BBS required the last line of the Norwegian giro form to be printed in the OCR-B font so that payments could be read by optical character recognition 10. Banks still label KID payments "KID (OCR)" 4.
  • Nets: the Norwegian Wikipedia describes Nets as the owner and developer of the KID system 3. Nets' System Specification OCR giro is at version 4.0, dated 30 September 2018 1.
  • Mastercard: in March 2021 Mastercard completed its €2.85 billion purchase of Nets' account-to-account business, which included AvtaleGiro/eFaktura in Norway 6. The KID developer documentation is now published under Mastercard Payment Services 2.

The sources fetched do not give the year KID itself was introduced.

Technical specification

  • Character set and length: digits only, up to 25 positions, with the check digit as the rightmost character 14. Sources disagree on the minimum length:

    • Wikipedia gives 2–25 digits 3.
    • Mastercard Payment Services' AvtaleGiro/OCR rules give 4–25 digits 2.

    In every case the length must match what the payee registered in its agreement with the bank 23.

  • Internal structure: no central rule fixes how a KID is built. Each payee designs its own KID register 3. A typical KID contains a customer ID, an optional payment type, an invoice ID and the check digit 212.

  • Multiple structures: a payee may have up to 3 KID structures per AvtaleGiro/OCR agreement. Each structure must have a different length 2.

  • MOD10 (Luhn):

    • Weights 2, 1, 2, 1… are applied from right to left.
    • The digits of the products are added, not the products themselves, so a product of 12 contributes 1+2.
    • The check digit is 10 minus the last digit of the sum, or 0 if that last digit is 0.
    • Worked example: 12345678 → 123456782 1.
  • MOD11:

    • Weights 2, 3, 4, 5, 6, 7 repeat from right to left.
    • The weighted sum is divided by 11, and the check digit is 11 minus the remainder (0 if the remainder is 0).
    • If the remainder is 1, the check digit is a minus sign - 12.
    • Worked example: 12345678 → 123456785 1.
  • Which algorithm applies: the payee chooses MOD10 or MOD11 when it registers with its bank 35. The KID itself does not show which algorithm it uses, so a payer-side validator has to try both 5.

  • Short example: 1234 becomes 12344 under MOD10 and 12343 under MOD11 9.

  • OCR giro file:

    • In Nets' fixed-width 80-character OCR giro transaction record (service code 09), the KID sits in positions 50–74.

    • The field is right-aligned, has no special characters and is padded with blanks.

    • Transaction-type codes identify how the payment arrived:

      • giro debited account (10)
      • standing orders (11)
      • AvtaleGiro (15)
      • Telegiro (16)
      • "purchase with KID" from terminal and internet payments (19)

      1

  • ISO 20022: in Nordea's corporate pain.001 format, a KID is sent as a structured creditor reference with type code SCOR. Up to 999 KIDs may be sent in one payment, and the bank validates each KID on receipt, which it does not do for other structured references 4.

  • E-invoice: in EHF / Peppol BIS Billing 3.0 invoices the KID is carried in cac:PaymentMeans/cbc:PaymentID 5.

Use cases

  • Paper and online-banking invoices (OCR giro): the payee prints the KID on the giro stub. Online banks then use KID plus account number to allocate the payment to the right open item, and the payee receives an OCR file of payments for automatic reconciliation 51.
  • Direct debit (AvtaleGiro): the KID links payer and payee in AvtaleGiro and identifies each payment claim 2. More than 15,000 Norwegian companies offer AvtaleGiro 8.
  • eFaktura: when eFaktura is combined with AvtaleGiro, the customer ID inside the KID should match the eFaktura reference 2.
  • Corporate ERP payments: bank host-to-host formats carry KIDs as SCOR references for automated payables 4.
  • Card and internet payments: the OCR giro format has transaction types for "purchase with KID" and "reversing with KID" from terminals and internet payments collected through Nets 1.
  • Mandatory-KID accounts: a payee can make KID mandatory, so the bank rejects payments that have no KID or an invalid one 23.

Implementations

There is no widely-starred KID library. The ecosystem is small and mostly Norwegian:

  • jodal/python-netsgiro (Python, 29 stars, last commit August 2022) parses OCR giro transaction files, including the 25-character KID field, and builds AvtaleGiro payment requests. Otovo AS originally developed it 8.
  • Ondkloss/norwegian-numbers.js (TypeScript, 2 stars, 2022) provides makeKidNumber and verifyKidNumber in MOD10 and MOD11 modes 9. The same author has a Python version, Ondkloss/norwegian-numbers (0 stars, last push May 2019).
  • python-stdnum (599 stars, active 2026) does not include a KID module. Its stdnum.no package covers fødselsnummer, IBAN, kontonummer, MVA and orgnr only 13.

Comparison

  • KID vs. RF Creditor Reference (ISO 11649) (ISO 11649):
    • The RF reference has the form RF + 2 check digits + up to 21 alphanumeric characters. Its check uses the same algorithm as IBAN, and it is used for cross-border invoices 7.
    • KID is numeric only (apart from the MOD11 -), allows up to 25 characters, uses a MOD10 or MOD11 check digit, and is a domestic Norwegian reference tied to the payee's agreement with its bank 124.
    • Choose KID for NOK invoices collected through OCR giro or AvtaleGiro, where banks validate it and reconcile automatically. Choose RF when the invoice crosses borders.
  • KID vs. Nordic domestic references: Finland has a similar domestic reference number alongside RF 7, and Denmark has FIK (Fælles Indbetalingskort).

Fun facts

A MOD11 KID whose remainder is 1 gets a minus sign as its check digit 12. So the same OCR giro specification that says a KID "cannot contain letters of the alphabet" still allows a KID to end in - 1.

Status

Active. Nordea's Corporate Access Payables, Appendix Norway (June 2026) still describes KID as the standard structured reference for Norwegian supplier payments, validated by the bank 4. Mastercard Payment Services continues to publish KID rules for AvtaleGiro and OCR agreements 2.

Sources

1 System Specification OCR giro (ENG), v4.0 — Nets, 2018, accessed 2026. 2 KID — developer documentation — Mastercard Payment Services, accessed 2026. 3 KID-nummer — Wikipedia (Norwegian), accessed 2026. 4 Corporate Access Payables – Appendix Norway — Nordea, 2026-06-25, accessed 2026. 5 How to extract the KID number from Norwegian invoices — Invoice Data Extraction, accessed 2026. 6 Nets Group completes the sale of its account-to-account services business to Mastercard — PaymentsJournal, 2021, accessed 2026. 7 Structure of the RF Creditor Reference (ISO 11649) — Finance Finland, October 2023, accessed 2026. 8 jodal/python-netsgiro — GitHub, accessed 2026. 9 Ondkloss/norwegian-numbers.js — GitHub, accessed 2026. 10 Norwegian Giro and OCR-B font — Microsoft Learn, 2025, accessed 2026. 11 Betalingsformidling — Store norske leksikon, accessed 2026. 12 OCR – Optical Character Reader (Norway) — Iptor, accessed 2026. 13 arthurdejong/python-stdnum — GitHub, accessed 2026.

Deployments

Found in the following country reports (grep across reports/countries/):

source · content/standards/kid/index.md