Norwegian KID Number Generator & Validator (MOD10/MOD11)
Generate and validate Norwegian KID payment numbers using MOD10 or MOD11 check digit algorithms locally.
History
How it works
KID numbers (customer identification) appear on Norwegian invoices to match a payment to the right customer. The last digit is a check digit computed with either MOD10 (Luhn) or MOD11. Pick the algorithm your bank uses.
About this tool
KID (Kunde-IDentifikasjon, "customer identification") is a reference number of 2–25 digits used by Norwegian banks to tie an incoming payment to the right invoice or customer. The last digit is a check digit computed with either the MOD10 algorithm (Luhn, most common) or MOD11, the same principles used to validate credit cards and Norwegian personal ID numbers. This tool creates a valid KID from a base number, verifies whether a given KID is valid, and explains which algorithm is in use. Everything runs locally, neither the KID nor any customer numbers are sent anywhere.
How to use it
- To create a KID: enter the base number (e.g. invoice or customer number) and choose MOD10 or MOD11.
- The tool computes the check digit and appends it, the finished KID can be used directly on an invoice or in online banking.
- To validate a KID: paste the entire number. You’ll see whether it’s valid and which algorithm matches.
- MOD10 is the most common, use it if you don’t know what the recipient requires.
- KID must be between 2 and 25 digits, with no spaces or other characters.
Examples
1234567812345678212345678123456788000012345000067890Common use cases
- Automatically matching incoming payments to outstanding invoices in your accounting system.
- Checking that a KID entered by a customer is valid before submission, saves manual troubleshooting.
- Generating KIDs for outgoing invoices in a Node.js, PHP or .NET integration.
- Validation step in web shops and donation forms.
- Migrating old invoicing systems where KIDs must be reconstructed.
- Troubleshooting payments returned by the bank due to invalid KID.
Frequently asked questions
- What is the difference between MOD10 and MOD11?
- MOD10 (Luhn) multiplies digits alternately by 2 and 1, sums them, and looks at what’s missing to reach the next multiple of 10. Simple and always one check digit. MOD11 uses weights 2, 3, 4, 5, 6, 7, 2, 3… and modulo 11, more robust against double-digit errors, but can produce "10" which doesn’t fit in a single digit. Norwegian banks support both, MOD10 is the most common in newer systems.
- How long can a KID be?
- Between 2 and 25 digits including the check digit. Most businesses use 5–15 digits. Norwegian OCR giro slips allow up to 25 digits, which is the upper bound.
- What happens if the customer enters the wrong KID?
- Online banking usually rejects a KID with a wrong check digit on the spot. If the payment still goes through (e.g. via manual transfer), the business risks the payment not being auto-matched and having to be reconciled manually, time-consuming and error-prone.
- Can I use the same KID for multiple invoices?
- Technically possible, but then you can’t auto-match the incoming payment to the right invoice. Best practice is one unique KID per invoice. Some businesses use a fixed "customer KID" for recurring subscriptions where the same customer always pays the same amount.
Technical background
MOD10 (the Luhn algorithm) was patented by Hans Peter Luhn in 1954 and is standardised as ISO/IEC 7812-1. Reading right to left, each digit is multiplied alternately by 1 and 2. If the product is ≥ 10, its digits are summed (e.g. 12 → 1+2 = 3). The total sum must be divisible by 10; the check digit is 10 − (sum mod 10) mod 10. MOD11 uses weights 2, 3, 4, 5, 6, 7 cyclically from the right. Each digit is multiplied by its weight, mod 11 is taken, and the check digit is 11 − remainder. Remainder = 0 → check digit 0; remainder = 1 → "10", which doesn’t fit, the number must be discarded.