If you've ever sourced products from China, you've probably seen an 18-character code on your supplier's business licence. It looks something like this:
91440300MA5FJK2W30
This is the Unified Social Credit Identifier (USCI) — China's equivalent of a company registration number. And buried in its last character is a check digit based on ISO 7064 Mod 31-3.
What the code tells you
The 18 characters encode specific information:
- Position 1: Registration authority type
- Position 2: Organization category
- Positions 3-9: Regional code (maps to province/city/district)
- Positions 10-17: Organization identifier
- Position 18: Check digit (ISO 7064 Mod 31-3)
The check digit math
The validation uses a weighted sum mod 31, with weights cycling through powers of 3. Here's a JavaScript implementation:
function validateUSCI(code) {
const CHARS = '0123456789ABCDEFGHJKLMNPQRTUWXY';
const WEIGHTS = [1,3,9,27,19,26,16,17,20,29,25,13,8,24,10,30,28];
let sum = 0;
for (let i = 0; i < 17; i++) {
sum += CHARS.indexOf(code[i]) * WEIGHTS[i];
}
const remainder = sum % 31;
const expected = remainder === 0 ? '0' : CHARS[31 - remainder];
return expected === code[17];
}
Note: USCI uses a custom character set — no I, O, S, V, Z (to avoid visual confusion with 1, 0, 5, U, 2).
How well does it work?
I ran an exhaustive test: for every position in every sample code, I substituted every possible character and checked whether the check digit caught the error.
Result: 100% detection of single-character substitutions across 2.9 million simulated errors.
For comparison, the US VIN (Vehicle Identification Number) check digit only catches 92.5% of single-character errors.
The full dataset is on Zenodo: https://zenodo.org/records/15589531
Why this matters
If a supplier sends you a business licence with a typo in the registration code — or a completely fabricated code — the check digit catches it instantly, before you spend time on a manual lookup.
Some other findings from our research:
- 42.5% of NHTSA-registered Chinese manufacturers can't be found by English name alone in China's registry
- 25.4% of China's "little giant" manufacturers don't have import/export in their registered business scope
- 53.4% of those manufacturers have changed their company name at least once
I built a free tool that does this validation plus a manual cross-reference against official Chinese registry data:
https://currawongweb.com/verify/
The research papers and datasets are all open access. Happy to answer questions about the methodology.
Top comments (0)