← Back to home

πŸ‡»πŸ‡³ Validate CCCD / Tax / Bank Account β€” Decode Vietnamese Citizen IDs

3 Vietnamese ID tools: (1) Validate Vietnamese tax code (MST) checksum 10/13 digits, (2) Decode 12-digit citizen ID (CCCD) β†’ province + gender + birth year, (3) Detect VN bank from account number. Validates format + checksum OFFLINE β€” no lookup APIs called.

MST checksumCCCD decode10 banksOffline
⚠️ Validate format + checksum OFFLINE β€” no calls to General Department of Taxation / Ministry of Public Security. Data stays in your browser.

Why use this tool

πŸ†”
Decode 12-digit CCCD

Enter '079094123456' β†’ 'HCMC, Male, born 1994'. Useful for devs to validate signup forms instantly.

🏒
Standard MST checksum

10-digit MST uses weights [31,29,23,19,17,13,7,5,3] + mod 11. Tool validates per General Department of Taxation formula.

🏦
Detect 10 VN banks

Vietcombank 13 digits, MB 9-16, ACB 6-7... Tool pattern-matches length for likely-matching banks.

πŸ”’
100% offline

Does NOT call Tax Department or Ministry of Public Security APIs. Privacy: PII never leaves your browser. Only format + checksum checks.

How to use

  1. 1Pick a tab: CCCD / MST / STK.
  2. 2Enter the number β†’ tool validates + decodes instantly.
  3. 3CCCD shows province + gender + birth year. MST shows checksum status. STK shows likely banks.

VN ID Validation β€” privacy-aware

Vietnamese backends often need to validate CCCD/MST during user signup: ecommerce KYC, banking eKYC, digital contracts. Offline validation (format + checksum) is step 1 β€” enough to filter 95% of bad input before calling paid verification APIs.

**12-digit CCCD** format: AAA + B + CC + DDDDDD. AAA = province code (3 digits, e.g. 001 = Hanoi, 079 = HCMC). B = gender + century (0/1 = male/female 20th c., 2/3 = 21st c., 4/5 = 22nd c.). CC = 2-digit birth year. DDDDDD = random sequence. The tool decodes the first 3 parts; doesn't verify existence.

**10-digit MST** checksum: weights [31,29,23,19,17,13,7,5,3]. sum(weight * digit) mod 11, take 10 minus that mod 10 β†’ check digit. Starting digit β‰₯ 8 = individual, < 8 = company. 13-digit MST = 10 main digits + dash + 3-digit branch code.

**Bank account numbers** have no national standard β€” each bank uses its own pattern (Vietcombank 13 digits starting 001, MB 9-16, ACB 6-7). The tool only checks length-pattern match, doesn't verify existence (needs each bank's API).

⚠️ **Privacy matters**: tool is 100% client-side, does NOT upload CCCD/MST/STK to any server. Real existence checks need the Tax Department's or Napas's APIs β€” and that's PII / sensitive data, requires consent + encryption.

  • βœ“MST 10/13-digit checksum
  • βœ“12-digit CCCD decode β†’ province/gender/birth year
  • βœ“63 province CCCD codes
  • βœ“10 VN bank pattern match
  • βœ“100% offline, no API calls
  • βœ“Clear privacy disclaimer

FAQ

If validation passes, does the CCCD actually exist?

NOT guaranteed. The tool only checks format + checksum. A CCCD can pass format yet not be issued. To verify existence β†’ call the Ministry of Public Security API (only granted to authorized banks / businesses).

MST personal vs company difference?

Tool auto-detects via the first digit: β‰₯ 8 (8-9) = individual, < 8 = business / organization. Checksum formula is identical.

Why doesn't my 13-digit Vietcombank account match?

Tool uses pattern length ranges. If the STK falls outside that range, no match. The bank may have changed format β€” open an issue.

Are the values I enter saved?

NO. 100% browser-side JS. Disable internet after page load β€” still works.