Identifier checkdigit
| Property | Value |
|---|---|
| A technical identifier, unique in a certain context. Technical key | IDENTIFIER_CHECKDIGIT
|
| The human-friendly name shown for this concept in the user interface, used instead of the technical name to improve readability and understanding. Display name | Identifier checkdigit |
| Informal and comprehensive human-readable definition of a concept. Description | This category covers data quality rules that verify the integrity of identifiers containing checksums or checkdigits. When an identifier type is known to include a checksum or checkdigit component, this validation ensures the identifier is mathematically consistent with its specified algorithm. Common examples include VAT numbers, company registration numbers, and tax identifiers that embed validation digits. By detecting inconsistencies in the checkdigit, these rules can identify data entry errors, corrupted data, and invalid identifier values. This is essential for maintaining data accuracy and preventing the use of malformed identifiers in business processes. The validation contributes to the Accuracy dimension by ensuring identifiers conform to their mathematical specifications. |
| Hierachical parent concept of a concept. Parent | Checkdigit |
Data quality rules
CDQ manages 105 data quality rules in this category.
| Data quality rule | The country a linked concept is active or generally relevant for. Country scope | Informal and comprehensive human-readable definition of a concept. Description | Criticality<br/>Specifies how critical of the violation of a data quality rule.<br/>ERROR: Indicates a critical data quality rule violation that requires correction.<br/>WARNING: Indicates a potential data quality issue that should be reviewed.<br/>INFO: Indicates an informational finding with no immediate impact on data quality. Criticality
|
Rule release status<br/>The release status in terms of development progress or maturity of a data quality rule.<br/>IDEA: Initial rule definition that documents a business requirement but is not yet active in services.<br/>PLANNED: Rule is specified and scheduled for implementation, but not yet active in services.<br/>DRAFT: Rule concept is being prepared or refined but is not yet finalized for implementation or execution.<br/>HYPERCARE: Rule is newly released and under increased observation to ensure stable behaviour and correct results.<br/>RELEASED: Rule has passed verification and is actively executed in productive CDQ services.<br/>DEACTIVATED: Rule is temporarily removed from the active rule set because it needs correction or clarification before re release.<br/>BLOCKED: Rule cannot be released because something it depends on is missing, for example a data source or a clarification.<br/>ARCHIVED: Rule is permanently retired and no longer maintained or intended for future activation. Rule release status
|
|---|---|---|---|---|
Checkdigit of state tax number (Brasil - Acre (AC))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Acre. A number whose check digit does not match the calculation for that state is flagged. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Alagoas (AL))ACCURACY
|
BR (Brazil) | For the Brazilian state of Alagoas this rule recalculates the check digit of the state tax number and reports any value that does not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Amapa (AP))ACCURACY
|
BR (Brazil) | This rule checks the state tax number of the Brazilian state of Amapa against the check digit rules defined for that state, and flags a value that fails the calculation. | INFO
|
RELEASED(2024-04-16)
|
Checkdigit of state tax number (Brasil - Amazonas (AM))ACCURACY
|
BR (Brazil) | The check digit of the state tax number issued in the Brazilian state of Amazonas is verified here. A number that does not satisfy the state's check digit calculation is reported. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Bahia (BA))ACCURACY
|
BR (Brazil) | This rule recalculates the check digit of the state tax number as defined for the Brazilian state of Bahia and flags every value that does not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Ceara (CE))ACCURACY
|
BR (Brazil) | For the Brazilian state of Ceara the state tax number carries a check digit. This rule recomputes it and reports a number whose check digit is wrong. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Espirito Santo (ES))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Espirito Santo. A number that fails the calculation is flagged. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Federal District (DF))ACCURACY
|
BR (Brazil) | For the Brazilian Federal District this rule recalculates the check digit of the state tax number and reports values that do not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Goias (GO))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Goias, flagging values that fail the calculation. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Maranhao (MA))ACCURACY
|
BR (Brazil) | The state tax number of the Brazilian state of Maranhao is checked here against the check digit rules defined for that state. A mismatch is reported. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Mato Grosso (MT))ACCURACY
|
BR (Brazil) | This rule checks the state tax number of the Brazilian state of Mato Grosso against the check digit rules defined for that state, and flags a mismatch. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Mato Grosso do Sul (MS))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Mato Grosso do Sul. A value that fails the calculation is flagged. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Minas Gerais (MG))ACCURACY
|
BR (Brazil) | The check digit of the state tax number issued in the Brazilian state of Minas Gerais is recomputed here. A number that does not satisfy the calculation is reported. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Para (PA))ACCURACY
|
BR (Brazil) | This rule recalculates the check digit of the state tax number issued in the Brazilian state of Para and flags any value that does not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Paraiba (PB))ACCURACY
|
BR (Brazil) | For the Brazilian state of Paraiba this rule verifies the check digit of the state tax number and reports numbers that fail the state's calculation. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Parana (PR))ACCURACY
|
BR (Brazil) | This rule checks the check digit of the state tax number as defined for the Brazilian state of Parana, flagging a value that does not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Pernambuco (PE))ACCURACY
|
BR (Brazil) | The check digit of the state tax number issued in the Brazilian state of Pernambuco is recalculated here, and any number that fails the check is reported. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Piaui (PI))ACCURACY
|
BR (Brazil) | This rule verifies the state tax number of the Brazilian state of Piaui against the check digit rules of that state and flags a mismatch. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Rio Grande do Norte (RN))ACCURACY
|
BR (Brazil) | For the Brazilian state of Rio Grande do Norte this rule recomputes the check digit of the state tax number and reports any mismatch. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Rio Grande do Sul (RS))ACCURACY
|
BR (Brazil) | This rule checks the check digit of the state tax number as defined for the Brazilian state of Rio Grande do Sul, flagging numbers that do not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Rio de Janeiro (RJ))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Rio de Janeiro. A number that fails the state's calculation is flagged. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Rondonia (RO))ACCURACY
|
BR (Brazil) | For the Brazilian state of Rondonia this rule recomputes the check digit of the state tax number and reports every value that does not match. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Roraima (RR))ACCURACY
|
BR (Brazil) | This rule checks the check digit of the state tax number as defined for the Brazilian state of Roraima, flagging numbers that fail the calculation. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Santa Catarina (SC))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Santa Catarina and flags every value that fails. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Sao Paulo (SP))ACCURACY
|
BR (Brazil) | For the Brazilian state of Sao Paulo this rule recalculates the check digit of the state tax number and reports a number whose check digit is wrong. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Sergipe (SE))ACCURACY
|
BR (Brazil) | The state tax number of the Brazilian state of Sergipe carries a check digit, which this rule recalculates. A number whose check digit is wrong is reported. | INFO
|
RELEASED(2021-09-10)
|
Checkdigit of state tax number (Brasil - Tocantins (TO))ACCURACY
|
BR (Brazil) | This rule verifies the check digit of the state tax number as defined for the Brazilian state of Tocantins and flags any value that does not match. | INFO
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (Business Registration Number (South Korea))ACCURACY
|
KR (South Korea) | The tenth digit of the South Korean business registration number is a check digit. Ignoring whitespaces, hyphens and dots, the first nine digits are multiplied by the weights 1, 3, 7, 1, 3, 7, 1, 3 and 5 and the products are summed, the integer part of the ninth digit multiplied by 5 and divided by 10 is added to the sum. The check digit is (10 - (sum mod 10)) mod 10. This rule recomputes it and flags a number whose last digit does not match.
The tax office code (digits one to three) and the type-of-business code (digits four and five) are deliberately not validated against a list of codes, because these code lists change over time. |
ERROR
|
HYPERCARE
|
Identifier checkdigit invalid (CDI number (Argentina))ACCURACY
|
AR (Argentina) | The last of the eleven digits of the Argentine CDI number is a check digit. Ignoring whitespaces, dots and hyphens, the first ten digits are multiplied by the weights 5, 4, 3, 2, 7, 6, 5, 4, 3 and 2 and the products are summed. The check digit is 11 minus the remainder of that sum divided by 11, where a result of 11 becomes 0, a result of 10 cannot occur in a validly assigned number. This is the same algorithm that AFIP uses for the CUIT. The prefix is checked by the format rule and is not validated here. This rule recalculates the check digit and flags a CDI whose last digit does not match. | ERROR
|
HYPERCARE
|
Identifier checkdigit invalid (CPF number (Brazil))ACCURACY
|
BR (Brazil) | This rule recalculates the check digit of the Brazilian CPF number and flags a value whose check digit does not match, which normally indicates a typing error in the identifier. | ERROR
|
IDEA
|
Identifier checkdigit invalid (CUIL number (Argentina))ACCURACY
|
AR (Argentina) | The last of the eleven digits of the Argentine CUIL number is a check digit. Ignoring whitespaces, dots and hyphens, the first ten digits are multiplied by the weights 5, 4, 3, 2, 7, 6, 5, 4, 3 and 2 and the products are summed. The check digit is 11 minus the remainder of that sum divided by 11, where a result of 11 becomes 0, a result of 10 cannot occur in a validly assigned number. This is the same algorithm that AFIP uses for the CUIT. The prefix is checked by the format rule and is not validated here. This rule recalculates the check digit and flags a CUIL whose last digit does not match. | ERROR
|
HYPERCARE
|
Identifier checkdigit invalid (CVR number (Denmark))ACCURACY
|
DK (Denmark) | The Danish CVR number carries a check digit. This rule recomputes it and reports a CVR number that fails the check. | ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (Company identification number (Switzerland))ACCURACY
|
CH (Switzerland) | The last digit of the Swiss company identification number is a MOD11 checksum digit calculated with the weighting pattern 5, 4, 3, 2, 7, 6, 5, 4. This rule recomputes that digit and flags a value that does not match. It accepts any correctly formatted Swiss UID, if the format itself is invalid, which the separate rule on the format of the Swiss company identification number covers, this rule fails immediately. | ERROR
|
RELEASED(2020-01-01)
|
Identifier checkdigit invalid (DEA Registration Number (United States))ACCURACY
|
US (United States of America) | This rule recalculates the check digit of the United States DEA Registration Number and flags any value that does not match.
The calculation works as follows, illustrated with the DEA number AL455178 without its check digit. First the first, third and fifth digits are added, here 4 plus 5 plus 7, giving 16. Then the second, fourth and sixth digits are added and the total is multiplied by two, here 5 plus 1 plus 8, giving 14, which doubled is 28. Both totals are then added together, here 16 plus 28, giving 44. The second digit of that total is the check digit, in this example 4. |
ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (DIC number (Czech Republic))ACCURACY
|
CZ (Czechia) | This rule recomputes the check digit of the Czech DIC number and reports a value whose check digit does not match. | ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (European value added tax identifier (Czech Republic))ACCURACY
|
CZ (Czechia) | This rule verifies the check digit of the Czech European value added tax identifier and flags a value that does not satisfy the calculation. | ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (GST number (India))ACCURACY
|
IN (India) | This rule verifies the check digit of the Indian Goods and Services Tax number (GST). The first fourteen characters form the GST number itself and the fifteenth character is the check digit derived from them.
The calculation first turns every character into a code: the digits 0 to 9 stand for the values 0 to 9, and the letters A to Z stand for the values 10 to 35, so that A is 10, B is 11 and so on up to Z, which is 35. Each code is then multiplied by a multiplier, which is 1 for the odd positions and 2 for the even positions of the GST number. The resulting product is divided by 36, and the quotient and the remainder of that division are added together to give the hash of that character. This is repeated for each of the fourteen characters. The check digit is then derived from these hashes. The hashes of all fourteen characters are added to a sum, that sum is divided by 36 and the quotient is taken, and the quotient is subtracted from 36 to yield the checksum code. The alphanumeric character corresponding to that checksum code, using the same character-to-value mapping, is the check digit of the GST number. A GST number whose fifteenth character differs from this result is flagged. |
ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (Global location number)ACCURACY
|
WORLD (World) | This rule recalculates the check digit of the Global Location Number and reports a value whose check digit does not match. | ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (Harmonized Sales Tax number (Canada))ACCURACY
|
CA (Canada) | This rule verifies the check digit of the Canadian Harmonized Sales Tax number (HST). The first nine digits of the HST number are the Canadian business number, and their ninth digit is the check digit.
All odd-positioned digits except the ninth are added together. All even-positioned digits are strung together as one number and multiplied by two, and the digits of that result are added together. The two totals are added, and that sum is subtracted from the nearest higher multiple of ten. The result must equal the ninth digit. The program identifier and the reference number are checked by the format rule and are not validated here. |
ERROR
|
HYPERCARE
|
Identifier checkdigit invalid (ICO number (Czech Republic))ACCURACY
|
CZ (Czechia) | The Czech ICO number carries a check digit. This rule recalculates it and flags an ICO number that fails the check. | ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (NIF number (Portugal))ACCURACY
|
PT (Portugal) | This rule verifies the check digit of the Portuguese NIF number and flags any value that does not satisfy the calculation. | ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (NIP number (Poland))ACCURACY
|
PL (Poland) | This rule verifies the check digit of the Polish NIP number, which is its tenth and last digit.
The calculation multiplies the first nine digits of the NIP by the weights 6, 5, 7, 2, 3, 4, 5, 6 and 7 respectively, adds up the results of these multiplications and takes that sum modulo 11. A NIP number whose last digit differs from the result is flagged. |
ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (NIT number (Colombia))ACCURACY
|
CO (Colombia) | For the Colombian NIT number this rule recalculates the check digit and reports a number whose check digit is wrong. | ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (National Provider Identifier (United States))ACCURACY
|
US (United States of America) | This rule recalculates the check digit of the United States National Provider Identifier and flags any value that does not match.
Starting from the rightmost digit, which is the check digit itself, the value of every second digit is doubled. All individual digits are then added together, whereby a doubled value with two digits is first split into its digits and those are added, so a doubled 8 of 16 contributes 1 plus 6. The number 24 is added to that total, the units digit of the result is taken, for example 7 if the total is 67, and unless that units digit is zero it is subtracted from 10. The resulting number is the check digit. |
ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (National business register identifier (Austria))ACCURACY
|
AT (Austria) | This rule verifies the check digit of the Austrian national business register identifier and flags any value that does not match.
The calculation applies a weight to each digit of the identifier, multiplies each digit by its weight, adds up the results and takes that sum modulo 17. The remainder is then looked up in a reference table, which yields the checksum letter of the identifier. |
ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (Organization Number (Norway))ACCURACY
|
NO (Norway) | This rule recomputes the check digit of the Norwegian Organization Number and reports a value whose check digit does not match. | ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (Organization Registration Number (Sweden))ACCURACY
|
SE (Sweden) | This rule verifies the check digit of the Swedish organization registration number, which is calculated with the Luhn algorithm. A number that fails the check is flagged. | ERROR
|
RELEASED(2024-04-16)
|
Identifier checkdigit invalid (Personal Identification Number (Croatia))ACCURACY
|
HR (Croatia) | The last of the eleven digits of the Croatian personal identification number (Osobni identifikacijski broj, OIB) is a check digit calculated with ISO 7064 MOD 11,10. Ignoring whitespaces, dots and hyphens, the check starts with the value 10, for each of the first ten digits, the digit is added, the sum is taken modulo 10 (a result of 0 counts as 10), doubled and taken modulo 11. The OIB is valid when that result plus the check digit, taken modulo 10, equals 1. This rule recalculates the check digit and flags an OIB that fails the check. The ten leading digits are assigned randomly and carry no further meaning, so they are not validated otherwise. | ERROR
|
HYPERCARE
|
Identifier checkdigit invalid (Quebec Sales Tax number (Canada))ACCURACY
|
CA (Canada) | This rule verifies the check digit of the Quebec Sales Tax number in Canada and flags a value that does not match.
Starting from the ninth digit, each digit is multiplied by a factor, the factors forming a circular sequence of the values 2 through 7 beginning on the right. The results are added up and the total is divided by 11, for example 183 divided by 11, which gives 16 with a remainder of 7. If the remainder is 0 the check digit is 1, and if the remainder is 1 the check digit is 0. For every other remainder the check digit is the difference between 11 and the remainder. |
ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (REGON (Poland))ACCURACY
|
PL (Poland) | This rule verifies the check digit of the Polish REGON identifier, which is its last digit.
For a nine-digit REGON the first eight digits are multiplied by the weights 8, 9, 2, 3, 4, 5, 6 and 7 respectively, the results are added up and the sum is taken modulo 11, the remainder is the check digit. The fourteen-digit REGON follows the same logic, but its first thirteen digits carry the weights 2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4 and 8. |
ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (RIF number (Venezuela))ACCURACY
|
VE (Venezuela) | This rule verifies the check digit of the Venezuelan RIF number. The identifier is ten characters long and consists of one leading letter, eight digits and a final check digit. The leading letter states the kind of entity the RIF belongs to: V for a Venezuelan, E for a foreigner, J for a legal entity, C for a township or communal council, P for a passport and G for a government entity. The remaining characters C2 to C9 are digits and C10 is the check digit.
The calculation uses a weight M1 derived from the leading letter, namely 1 for V, 2 for E, 3 for J, 3 for C, 4 for P and 5 for G, and the weights 3, 2, 7, 6, 5, 4, 3 and 2 for the positions M2 to M9. A1 is then the sum of M1 multiplied by 4 and each of the weights M2 to M9 multiplied by the corresponding digit C2 to C9. A2 is A1 modulo 11, and A3 is 11 minus A2. If A3 is 9 or less the check digit C10 equals A3, if A3 is greater than 9 the check digit is 0. |
ERROR
|
IDEA
|
Identifier checkdigit invalid (RUC number (Ecuador))ACCURACY
|
EC (Ecuador) | This rule recalculates the check digit of the Ecuadorian RUC number and flags a value whose check digit does not match. | ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (RUC number (Paraguay))ACCURACY
|
PY (Paraguay) | The Paraguayan RUC number carries a check digit. This rule recomputes it and reports a number that fails the check. | ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (RUC number (Peru))ACCURACY
|
PE (Peru) | This rule verifies the check digit of the Peruvian RUC number, a ten-digit identifier in which every position carries a weight, namely 5, 4, 3, 2, 7, 6, 5, 4, 3 and 2 for the positions C1 to C10.
Each digit is multiplied by its weight, so C1 by 5, C2 by 4, C3 by 3, C4 by 2, C5 by 7, C6 by 6, C7 by 5, C8 by 4, C9 by 3 and C10 by 2. The products are added up, the remainder of that sum modulo 11 is taken, that remainder is subtracted from 11 and the check digit is the remainder of the result modulo 10. |
ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (RUT number (Chile))ACCURACY
|
CL (Chile) | This rule verifies the check digit of the Chilean RUT number and flags any value that does not satisfy the calculation. | ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (RUT number (Uruguay))ACCURACY
|
UY (Uruguay) | For the Uruguayan RUT number this rule recalculates the check digit and reports a number whose check digit is wrong. | ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (Tax Identification Number (Serbia))ACCURACY
|
RS (Serbia) | The Serbian tax identification number is nine digits long, for example 123456788, of which the first eight are the identification number itself and the ninth is a checksum digit calculated according to ISO 7064, MOD 11-10. This rule recalculates that digit and flags a number that does not match. | ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (Tax Identification Number (Vietnam))ACCURACY
|
VN (Viet Nam) | This rule recomputes the check digit of the Vietnamese tax identification number and reports a value whose check digit does not match. | ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (Tax Registration Number (Belarus))ACCURACY
|
BY (Byelorussian SSR) | This rule verifies the check digit of the Belarusian tax registration number. The identifier is nine characters long, numeric for organisations and alphanumeric for individuals, with the first eight characters carrying the weights 29, 23, 19, 17, 13, 7, 5 and 3.
Each of the first eight characters is multiplied by its weight, so C1 by 29, C2 by 23, C3 by 19, C4 by 17, C5 by 13, C6 by 7, C7 by 5 and C8 by 3. The products are added up and the check digit is the remainder of that sum modulo 11. |
ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (Tax identification number (South Africa))ACCURACY
|
ZA (South Africa) | This rule verifies the check digit of the South African tax identification number, which is the last of its ten digits and follows a modulus 10 test.
The digits in the odd positions one, three, five, seven and nine are each multiplied by two, and whenever such a product exceeds 9 its two digits are added together to give a single-digit value, so 18 becomes 1 plus 8, which is 9. These calculated values are then added to the digits in the even positions two, four, six and eight. The last character of that total is subtracted from 10 to obtain the check digit: if the last digit of the total is greater than zero, the check digit equals 10 minus that last digit, and if the last digit of the total is zero, the check digit is zero as well. A tax reference number whose tenth digit differs from this result does not pass the modulus 10 test and is flagged. |
ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (Tax number (Romania))ACCURACY
|
RO (Romania) | This rule verifies the checksum digit of the Romanian tax number. Every digit of the number is multiplied by the digit in the same position of the constant 279146358279, all these products are added together and the sum is divided by 11. If the remainder is 10 the checksum digit is 1, otherwise it is the remainder itself. A tax number whose checksum digit differs from this result is flagged. | ERROR
|
RELEASED(2020-12-28)
|
Identifier checkdigit invalid (Tax number (Turkey))ACCURACY
|
TR (Turkey) | This rule recomputes the check digit of the Turkish tax number and flags a value that does not match. | ERROR
|
RELEASED(2020-01-01)
|
Identifier checkdigit invalid (VAT number (Italy))ACCURACY
|
IT (Italy) | The 11th and last digit of the Italian VAT number (Partita IVA) is a check digit calculated over the preceding 10 digits with the Luhn algorithm, also known as the modulus 10 algorithm, as laid down in D.M. 23/12/1976 n. 13813, art. 9: reading the first 10 digits from the left, every digit in an even position is doubled and reduced by 9 if the result exceeds 9, the resulting values are added to the digits in odd positions, and the check digit is the amount needed to raise that total to the next multiple of 10.
This rule reports values whose final digit does not match that calculation. Spaces, dots and hyphens are ignored. A value that is not 11 digits long cannot be checked and is reported by this rule as well, where the format itself is at fault, see Identifier format invalid (VAT number (Italy)). Only the check digit is examined. The three digits on positions 8 to 10, which identify the issuing office, are deliberately not restricted to the provincial codes: alongside those, real numbers carry 888 for registrations under the franchise regime and 999 for non-resident direct registrations, and the list of provincial codes changes over time, so checking those positions against a fixed list would reject valid identifiers. Group VAT numbers (Gruppo IVA) are ordinary 11-digit values here, because membership of a group is recorded in the register rather than encoded in the number, and they are therefore checked in exactly the same way as the number of a single taxpayer. |
ERROR
|
HYPERCARE
|
Identifier checkdigit invalid (VAT number (Norway))ACCURACY
|
NO (Norway) | The Norwegian VAT number carries a check digit, which this rule recalculates. A number that fails the check is reported. | ERROR
|
DRAFT
|
Identifier checkdigit invalid (VAT registration number (Israel))ACCURACY
|
IL (Israel) | The rightmost digit of the Israeli VAT registration number is a check digit calculated with the Luhn algorithm. This rule recomputes it and flags a number that fails the check. | ERROR
|
RELEASED(2021-09-10)
|
Identifier checkdigit invalid (VAT registration number (Switzerland))ACCURACY
|
CH (Switzerland) | The last digit of the Swiss VAT registration number is a MOD11 checksum digit calculated with the weighting pattern 5, 4, 3, 2, 7, 6, 5, 4. This rule recalculates that digit and flags a value that does not match. It accepts any correctly formatted Swiss VAT identifier, if the format itself is invalid, which the separate rule on the format of the Swiss VAT registration number covers, this rule fails immediately. | ERROR
|
RELEASED(2020-12-28)
|
Invalid checksum of ABN AU (Australia)ACCURACY
|
AU (Australia) | The Australian Business Number is eleven digits long and consists of a nine-digit identifier preceded by two check digits. This rule verifies the number against those check digits, which are derived with a modulus 89 calculation, meaning the remainder after dividing by 89.
For the positions C1 to C11 the weights M11 down to M1 are 10, 1, 3, 5, 7, 9, 11, 13, 15, 17 and 19. The first digit has 1 subtracted from it before being weighted, all weighted values are added together, and for a valid ABN that total modulo 89 is zero. Any other result is flagged. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of ACN AU (Australia)ACCURACY
|
AU (Australia) | The Australian Company Number is a nine-digit number whose last digit is a check digit calculated with a modified modulus 10 calculation. This rule recomputes the check digit and reports a number that fails the check. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of AR CUIT (Argentina)ACCURACY
|
AR (Argentina) | This rule verifies the check digit of the Argentine CUIT number. The last of its eleven digits is a check digit calculated according to the algorithm laid down by AFIP, the federal tax agency. The rule recalculates that digit and flags a CUIT whose check digit is not correct. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of BN CA (Canada)ACCURACY
|
CA (Canada) | The Canadian business number consists of exactly nine digits and must be correct because it also forms part of the GST/HST number. Its ninth digit is a check digit calculated as follows.
All odd-positioned digits except the ninth are added together. All even-positioned digits are then strung together as one number and multiplied by two, and the digits of that result are added together. The two totals are added, and that sum is subtracted from the nearest higher multiple of ten. The result must equal the ninth digit, if it does not, the rule is violated. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of BTW NUMBER (Belgium)ACCURACY
|
BE (Belgium) | This rule verifies the checksum of the Belgian BTW number, which is calculated using modulo 97. A number whose checksum does not match is flagged. | ERROR
|
ARCHIVED(2020-01-01)
|
Invalid checksum of CIF number (Spain)ACCURACY
|
ES (Spain) | This rule verifies the checksum letter of the Spanish CIF number.
First the seven digits of the identifier are added together to give sum A. Then each digit in an odd position is multiplied by two and the results are added, whereby a product with two digits is first reduced to a single digit by adding its digits, so a 6 becomes 6 times 2, which is 12, and then 1 plus 2, which is 3, while a 2 becomes 2 times 2, which is 4, this gives sum B. The two sums are added to give C. The last digit of C is subtracted from 10 and the result is the control code, so a C of 14 has a last digit of 4 and yields 10 minus 4, which is 6. If the last digit of C is zero, for example when C is 30, no subtraction is performed and the control code is 0. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of CNPJ (Brazil)ACCURACY
|
BR (Brazil) | The last two digits of a Brazilian CNPJ are check digits derived from the preceding digits with a modulus 11 algorithm. This rule recalculates them and flags a CNPJ whose check digits do not match.
For the first check digit, the digits are multiplied from right to left by a decreasing sequence starting at 9, the products are added up and the total is taken modulo 11, the remainder is the thirteenth character. The same step is then repeated including that thirteenth character, the products are added up again and the total is taken modulo 11, and this remainder is the fourteenth character. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID AT (Austria)ACCURACY
|
AT (Austria) | This rule verifies the checksum of the Austrian European VAT number (format ATU followed by 8 digits, the last digit is the check digit computed per the Austrian finance administration algorithm). It detects plausible-looking but incorrect VAT IDs. | ERROR
|
HYPERCARE
|
Invalid checksum of EU VAT ID BE (Belgium)ACCURACY
|
BE (Belgium) | This rule verifies the checksum of the Belgian European VAT number. The last two digits are calculated using modulo 97, as 97 minus the remainder of the first eight digits divided by 97. A VAT number whose last two digits differ from this result is flagged. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID DE (Germany)ACCURACY
|
DE (Germany) | This rule verifies the checksum of the German European VAT number, whose ninth digit is derived from the digits C1 to C8 in an iterative procedure.
The procedure starts with P set to 10. For each position N from 1 to 8, S is the digit at that position plus P, M is S modulo 10, and if M is zero it is set to 10, P is then twice M modulo 11. After the last position R is 11 minus P. If R equals 10 the ninth digit is 0, otherwise the ninth digit is R. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID DK (Denmark)ACCURACY
|
DK (Denmark) | This rule validates the checksum of the Danish European VAT number. A dividend R is calculated by multiplying the digits C1 to C8 by the factors 2, 7, 6, 5, 4, 3, 2 and 1 respectively and adding the products. If R is divisible by 11 the number is correct according to the checksum check, otherwise it is flagged. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID EE (Estonia)ACCURACY
|
EE (Estonia) | This rule verifies the checksum of the Estonian European VAT number, which has nine digits of which the ninth is the checksum digit.
A1 is calculated as 3 times C1 plus 7 times C2 plus 1 times C3 plus 3 times C4 plus 7 times C5 plus 1 times C6 plus 3 times C7 plus 7 times C8. A2 is A1 rounded up to the next multiple of ten, and the ninth digit is A2 minus A1. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID EL (Greece)ACCURACY
|
GR (Greece) | This rule verifies the checksum of the Greek European VAT number. A1 is calculated as 256 times C1 plus 128 times C2 plus 64 times C3 plus 32 times C4 plus 16 times C5 plus 8 times C6 plus 4 times C7 plus 2 times C8, A2 is A1 modulo 11, and the check digit C9 is A2 modulo 10. A VAT number whose ninth digit differs from this result is flagged. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID FI (Finland)ACCURACY
|
FI (Finland) | This rule verifies the checksum of the Finnish European VAT number, whose last digit is a check digit calculated with the Mod 11-2 algorithm.
R is 11 minus the remainder, modulo 11, of 7 times C1 plus 9 times C2 plus 10 times C3 plus 5 times C4 plus 8 times C5 plus 4 times C6 plus 2 times C7. If R is 10 the VAT number is invalid. If R is 11 the check digit C8 is 0, otherwise the check digit is R. |
ERROR
|
RELEASED(2020-01-01)
|
Invalid checksum of EU VAT ID FR (France)ACCURACY
|
FR (France) | This rule verifies the checksum of the French European VAT number, which consists of eleven characters. The check differs between the old and the new style of the identifier.
In the old style the first two characters are the remainder of the last nine characters followed by the digits 1 and 2, divided by 97. In the new style each of the first two characters is translated into a numeric check character, S1 for the first and S2 for the second. If the first character is numeric the second is alphabetic and S is S1 multiplied by 24 plus S2 minus 10, if the first character is alphabetic S is S1 multiplied by 34 plus S2 minus 100, and P is S divided by 11 plus 1. R1 is S modulo 11 and R2 is the last nine characters plus P, modulo 11, for a valid number R1 and R2 are equal. The check character values are 0 for 0 up to 9 for 9, and then 10 for A, 11 for B, 12 for C, 13 for D, 14 for E, 15 for F, 16 for G, 17 for H, 18 for J, 19 for K, 20 for L, 21 for M, 22 for N, 23 for P, 24 for Q, 25 for R, 26 for S, 27 for T, 28 for U, 29 for V, 30 for W, 31 for X, 32 for Y and 33 for Z. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID HR (Croatia)ACCURACY
|
HR (Croatia) | This rule validates the checksum of the Croatian European VAT number, which follows the international standard ISO 7064 MOD 11,10.
The first digit is added to 10. The sum is divided by 10 and the remainder is kept, if that remainder is 0 it is replaced by 10, giving the subtotal. The subtotal is multiplied by two, the result is divided by 11 and the remainder is kept, which mathematically cannot be 0 because the previous result is always an even number. The next digit is then added to that remainder, and these steps are repeated until all digits have been processed. If the remainder of the final step is 1 the check digit is 0, otherwise the check digit is the difference between 11 and that remainder. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID HU (Hungary)ACCURACY
|
HU (Hungary) | This rule verifies the check digit of the Hungarian European VAT number. The identifier has eight digits, of which the eighth is the check digit derived from the first seven.
The sum A is calculated as 9 times C1 plus 7 times C2 plus 3 times C3 plus 1 times C4 plus 9 times C5 plus 7 times C6 plus 3 times C7. If the ones digit of A is zero the check digit is 0, otherwise the ones digit is subtracted from 10 and the result is the check digit. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID IE (Ireland)ACCURACY
|
IE (Ireland) | This rule verifies the checksum of the Irish European VAT number. The identifier has the positions C1 to C9, where C1 to C7 are digits, C8 is the checksum letter and C9 is optional and may be a letter in the range A to I or the letter W.
In reverse order each character is multiplied by a weight beginning at 2, so C7 by 2, C6 by 3, C5 by 4, C4 by 5, C3 by 6, C2 by 7, C1 by 8 and the numeric value of C9 by 9. The numeric value of C9 is 1 for A, 2 for B, 3 for C, 4 for D, 5 for E, 6 for F, 7 for G, 8 for H and 9 for I, while a W or an absent character in position nine counts as 0. The products are added up and the remainder of that sum modulo 23 indicates the position in the alphabet of the checksum letter. |
ERROR
|
RELEASED(2021-09-10)
|
Invalid checksum of EU VAT ID IT (Italy)ACCURACY
|
IT (Italy) | This rule checks the checksum of the European VAT number in Italy using the following logic:
where:
|
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID LU (Luxembourg)ACCURACY
|
LU (Luxembourg) | This rule verifies the checksum of the European VAT number in Luxembourg. The last two digits are the remainder of the first six digits divided by 89. A VAT number whose last two digits differ from that result is flagged. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID LV (Latvia)ACCURACY
|
LV (Latvia) | This rule verifies the checksum of the Latvian European VAT number, whose last digit is the check digit.
A1 is calculated as 9 times C1 plus 1 times C2 plus 4 times C3 plus 8 times C4 plus 3 times C5 plus 10 times C6 plus 2 times C7 plus 5 times C8 plus 7 times C9 plus 6 times C10, and R is 3 minus A1 modulo 11. If R is smaller than minus one the check digit is R plus 11, if R is greater than minus one the check digit is R itself, and if R equals minus one the VAT number is invalid. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID MT (Malta)ACCURACY
|
MT (Malta) | This rule verifies the checksum of the Maltese European VAT number, whose last two digits are the check digits.
A1 is calculated as 3 times C1 plus 4 times C2 plus 6 times C3 plus 7 times C4 plus 8 times C5 plus 9 times C6, and R is 37 minus A1 modulo 37. If R is 00 the last two digits are 37, otherwise they are R. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID NL (The Netherlands)ACCURACY
|
NL (Netherlands) | This rule verifies the checksum of the Dutch European VAT number using modulo 11. A1 is calculated as 9 times C1 plus 8 times C2 plus 7 times C3 plus 6 times C4 plus 5 times C5 plus 4 times C6 plus 3 times C7 plus 2 times C8, and A2 is A1 modulo 11. If A2 is 10 the number is invalid, otherwise the ninth digit must equal A2. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID PL (Poland)ACCURACY
|
PL (Poland) | This rule verifies the checksum of the Polish European VAT number. A1 is calculated as 6 times C1 plus 5 times C2 plus 7 times C3 plus 2 times C4 plus 3 times C5 plus 4 times C6 plus 5 times C7 plus 6 times C8 plus 7 times C9, and R is A1 modulo 11. If R is 10 the VAT number is invalid, otherwise the tenth digit must equal R. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID PT (Portugal)ACCURACY
|
PT (Portugal) | This rule verifies the checksum of the Portuguese European VAT number. R is 11 minus the remainder, modulo 11, of 9 times C1 plus 8 times C2 plus 7 times C3 plus 6 times C4 plus 5 times C5 plus 4 times C6 plus 3 times C7 plus 2 times C8. If R is 10 or 11 it is set to 0, and the ninth digit must equal R. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID RO (Romania)ACCURACY
|
RO (Romania) | This rule verifies the checksum of the Romanian European VAT number. If the number is shorter than ten digits, leading zeros are assumed for the calculation.
A1 is calculated as 7 times C1 plus 5 times C2 plus 3 times C3 plus 2 times C4 plus 1 times C5 plus 7 times C6 plus 5 times C7 plus 3 times C8 plus 2 times C9. A2 is A1 multiplied by 10 and R1 is A2 modulo 11. If R1 is 10 the check digit R is 0, otherwise R equals R1, and the tenth digit must equal R. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID SE (Sweden)ACCURACY
|
SE (Sweden) | This rule verifies the checksum of the Swedish European VAT number, whose tenth digit is the check digit.
For each digit in an odd position a value S is derived as the integer part of the digit divided by 5, plus twice the digit modulo 10. R is the sum of these values for the positions one, three, five, seven and nine. The check digit is then 10 minus the sum of R and the digits in positions two, four, six and eight, taken modulo 10, and the result taken modulo 10 again. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID SI (Slovenia)ACCURACY
|
SI (Slovenia) | This rule verifies the checksum of the Slovenian European VAT number. A1 is calculated as 8 times C1 plus 7 times C2 plus 6 times C3 plus 5 times C4 plus 4 times C5 plus 3 times C6 plus 2 times C7, and R is 11 minus A1 modulo 11. If R is 10 the eighth digit is 0, if R is 11 the number is invalid, otherwise the eighth digit must equal R. | ERROR
|
RELEASED(2020-12-28)
|
Invalid checksum of EU VAT ID SK (Slovakia)ACCURACY
|
SK (the Slovak Republic) | This rule verifies the checksum of the Slovak European VAT number using modulo 11: the ten digits of the identifier taken as a whole number must be divisible by 11 without a remainder. Any other result is flagged. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of EU VAT ID UK (United Kingdom)ACCURACY
|
GB (United Kingdom of Great Britain and Northern Ireland) | This rule verifies the checksum of the European VAT number in the United Kingdom. For the standard nine-character format the eighth and ninth digits are the check digits.
R1 is the remainder, modulo 97, of 8 times C1 plus 7 times C2 plus 6 times C3 plus 5 times C4 plus 4 times C5 plus 3 times C6 plus 2 times C7 plus the two-digit value formed by C8 and C9. R2 is the same expression with 55 added, again modulo 97. Either R1 or R2 must be zero for the number to be valid. Two restrictions apply to the ranges of the identifier. For the MOD97 variant the number must not fall in the ranges 0100000 to 0999999, 9490001 to 9700000 or 9990001 to 9999999. For the MOD9755 variant it must not fall in the ranges 0000001 to 0100000 or 0100001 to 1000000. |
ERROR
|
ARCHIVED
|
Invalid checksum of FR SIREN (France)ACCURACY
|
FR (France) | This rule verifies the check digit of the French SIREN. The ninth digit of the SIREN is the check digit and it is validated with a modulus 10 calculation. A SIREN whose check digit does not match is flagged. | ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of FR SIRET (France)ACCURACY
|
FR (France) | This rule verifies the checksum of the French SIRET. The check digit is calculated with a modulus 10, also known as Luhn, algorithm, further detail on the calculation is available in the additional information of the rule. A SIRET that fails the check is flagged. | ERROR
|
RELEASED(2021-09-10)
|
Invalid checksum of Fiscal code (Italy)ACCURACY
|
IT (Italy) | This rule checks the checkdigit of the Fiscal code (Italy). This checksum rule should be applied only for the identifier which is 16 characters long. In case of 11 digits the same logic as here shoule be applied: https://meta.cdq.ch/Invalid_checksum_of_EU_VAT_ID_IT_(Italy) for checking the checksum.
The checksum is done in the following way. Starting from the preceding 15 characters, a check digit is determined as follows:
|
ERROR
|
HYPERCARE
|
Invalid checksum of GST CA (Canada)ACCURACY
|
CA (Canada) | This rule verifies the check digit of the Canadian Goods and Services Tax number (GST). The first nine digits of the GST are the Canadian business number, and their ninth digit is the check digit.
All odd-positioned digits except the ninth are added together. All even-positioned digits are strung together as one number and multiplied by two, and the digits of that result are added together. The two totals are added, and that sum is subtracted from the nearest higher multiple of ten. The result must equal the ninth digit. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of INN (Russia)ACCURACY
|
RU (Russian Federation) | This rule verifies the check digits of the Russian INN, which exists in a ten-digit and a twelve-digit form.
For the ten-digit INN a check sum is calculated with the weighting coefficients 2, 4, 10, 3, 5, 9, 4, 6, 8 and 0. The check number is the remainder of that check sum divided by 11, and if the check number is greater than 9 it is recalculated as the remainder of the check number divided by 10. The result is compared with the tenth digit of the INN, if they are equal the INN is considered correct. For the twelve-digit INN two check numbers are calculated. The first uses the weighting coefficients 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 and 0 over eleven digits, taking the remainder of the check sum divided by 11 and, if that is greater than 9, the remainder of the check number divided by 10. The second uses the weighting coefficients 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 and 0 over twelve digits, again taking the remainder of the check sum divided by 11 and, if greater than 9, the remainder of the check number divided by 10. The first check number is compared with the eleventh digit and the second with the twelfth digit, the INN is correct only when both match. |
ERROR
|
RELEASED(2020-10-12)
|
Invalid checksum of NIF number (Spain)ACCURACY
|
ES (Spain) | This rule verifies the checksum letter of the Spanish NIF number. The eight digits of the number are divided by 23 and the remainder is translated into a letter according to the reference table defined for the identifier. A NIF whose letter does not match is flagged. | ERROR
|
RELEASED(2024-04-16)
|
Invalid checksum of National business register identifier (Austria)ACCURACY
|
AT (Austria) | This rule verifies the checksum of the Austrian national business register identifier.
A weight is applied to each digit of the identifier, each digit is multiplied by its weight, the products are added up and the sum is taken modulo 17. The remainder is then looked up in a reference table, which yields the checksum letter. Any difference from the letter in the identifier results in a rule violation. |
ERROR
|
ARCHIVED(2020-10-12)
|
Invalid checksum of Numero de Identificacion de Extranjero (Spain)ACCURACY
|
ES (Spain) | This rule verifies the checksum letter of the Spanish Numero de Identificacion de Extranjero. The leading letter is first replaced by a digit, with X becoming 0, Y becoming 1 and Z becoming 2. The resulting eight-digit number is divided by 23 and the remainder is translated into a letter according to the reference table defined for the identifier. A value whose letter does not match is flagged. | ERROR
|
RELEASED(2021-09-10)
|
Invalid checksum of Polish Tax IdentifierACCURACY
|
PL (Poland) | This rule verifies the check digit of the Polish tax identifier, which is its eleventh and last digit. The first ten digits are multiplied by the weights 9, 7, 3, 1, 9, 7, 3, 1, 9 and 7 respectively and the products are added up. That sum is taken modulo 10, and the remainder is the check digit. | ERROR
|
RELEASED(2024-04-16)
|