A CVR number (Det Centrale Virksomhedsregister) is the 8-digit identifier issued to every business registered in Denmark, and it underpins Danish public e-invoicing through Nemhandel and Peppol. This validator runs the official weighted modulo-11 check in your browser and formats the DK-standard display used as a Peppol participant identifier, so you can verify a CVR before routing an invoice to an access point.
How it works
A CVR carries a built-in check digit verified with a weighted modulo-11 algorithm:
- Take all 8 digits, including the check digit (the last one).
- Multiply them by the positional weights 2, 7, 6, 5, 4, 3, 2, 1.
- Add the products to get a weighted sum.
- The CVR is valid if
sum mod 11is 0.
Because the final weight is 1 and multiplies the check digit itself, the algorithm self-corrects — only a check digit that makes the whole sum divisible by 11 will pass. A remainder of 1 is impossible for a legitimately issued CVR, which is why such inputs are rejected.
Nemhandel / Peppol use
In Danish e-invoicing the CVR forms the Peppol participant identifier under scheme 0184, written as DK followed by the 8 digits (for example DK12345674). The access point validates this checksum before it will accept and route a document, so a failed check stops an invoice before it is sent.
Example
For a CVR such as 12345674, multiply each digit by its weight, sum the products, and if the total divides evenly by 11 (remainder 0) the number passes. Change any single digit and the remainder becomes non-zero, so the tool reports it invalid.
Notes
A valid checksum confirms structural correctness, not registration — a deregistered company can still have a checksum-valid CVR. Always confirm active status in the official CVR registry (Virk.dk) for compliance work. Everything is computed locally, so the CVR you enter never leaves your browser.