Chilean RUT Validator

Validate Chilean RUT numbers in bulk — format and check digit.

RUTs are validated in your browser — never sent anywhere

Check the format and mod-11 check digit — one RUT or a whole list

Example loaded — edit it or clear it

Total
Valid
Invalid

What this validator checks — and what it cannot confirm

The RUT — Rol Único Tributario — is the tax and identity number that Chile assigns to every person, company, and organization. It appears on invoices, contracts, tax filings, and every formal transaction in the country, so entering it wrong has consequences: an electronic invoice (DTE) with an incorrect RUT will not validate, and a database full of bad RUTs breaks reconciliation downstream. This validator checks one RUT or hundreds at a time — paste them one per line — and tells you exactly what is wrong with each one.

The format is simple: 7 or 8 digits followed by a hyphen and a single verification character, which is a digit from 0 to 9 or the letter K. People write it with dots as thousands separators — 12.345.678-5 — or without. The tool normalizes all of these: it strips dots, dashes, and spaces, uppercases any trailing K, and checks the result.

The check character is computed with a mod-11 algorithm. Working from right to left, each digit is multiplied by a weight that cycles through 2, 3, 4, 5, 6, 7, then back to 2. The products are summed, the sum is divided by 11, and the digit is 11 minus the remainder — with two exceptions: when the result is 11 the digit is 0, and when the result is 10 the digit is K. This is the same mod-11 family used by ISBNs, IBANs, and the Mexican RFC, so changing a single digit in the RUT body almost always breaks the check character.

What no outside tool can confirm is whether the RUT is actually registered with the SII (Servicio de Impuestos Internos). A structurally perfect RUT can still be unassigned or inactive. Treat this validator as the cheap, bulk first filter — clean the data before invoicing or loading into a system — and the SII's own lookup as the final source of truth. Everything runs in your browser: the RUTs you paste are never sent to any server.

The RUT structure

PartLengthContentExample
Body7–8 digitsThe sequential number assigned by the SII12.345.678
Separator1 characterA hyphen (cosmetic, not part of the number)-
Check digit1 character0–9 or the letter K, computed with mod-115

The dots used as thousands separators (12.345.678) are purely cosmetic and have no algorithmic significance. Some systems store the RUT without dots or hyphen (123456785), others include the hyphen but not the dots (12345678-5). This validator accepts all three formats.

The check digit algorithm, step by step

The last character of a RUT is not random: it is computed from the body digits using a modulo-11 algorithm. Starting from the rightmost digit, multiply each by a weight cycling through 2, 3, 4, 5, 6, 7, then back to 2. Sum the products, divide by 11, and subtract the remainder from 11. If the result is 11, the digit is 0; if 10, the digit is K; otherwise it is the number itself.

RUT body: 1 2 3 4 5 6 7 8
Weights:   3 2 7 6 5 4 3 2  (right to left: 2,3,4,5,6,7,2,3)

1×3 = 3
2×2 = 4
3×7 = 21
4×6 = 24
5×5 = 25
6×4 = 24
7×3 = 21
8×2 = 16

Sum = 138
138 mod 11 = 6
11 − 6 = 5  →  12.345.678-5
Worked example: the check digit for 12345678 is 5.

Validating RUTs in Excel, Google Sheets, and SQL

To quickly filter a RUT column for basic format errors, the regular expression below catches anything that is not even RUT-shaped. It does not replace the check digit — that needs the full mod-11 algorithm, which this page runs in bulk — but it instantly discards junk entries.

Google Sheets (A2 = RUT, without dots):
=REGEXMATCH(A2, "^[0-9]{7,8}-[0-9Kk]$")

Excel 365 (2024 and later):
=REGEXTEST(A2, "^[0-9]{7,8}-[0-9Kk]$")

Strip dots before validating:
=SUBSTITUTE(A2, ".", "")
Basic format check — catches missing digits or non-numeric characters, but does not verify the check digit.
-- PostgreSQL: find RUTs with bad format
SELECT rut FROM clientes
WHERE REPLACE(rut, '.', '') !~ '^[0-9]{7,8}-[0-9Kk]$';

-- MySQL 8
SELECT rut FROM clientes
WHERE REPLACE(rut, '.', '') NOT REGEXP '^[0-9]{7,8}-[0-9Kk]$';
SQL queries to find invalid-format RUTs in a table. The check digit is beyond what a regex can do: validate it here in bulk, or in code.

FAQ

Does this validator confirm the RUT is registered with the SII?

No — and no outside tool can. This checks the format and the mod-11 check digit, which is enough to catch typos and invented numbers. To confirm a RUT is actually enrolled and active, use the SII's own lookup on its website. The efficient workflow is to bulk-clean here first, then query the SII only for the entries that passed.

What does the K mean as a check digit?

When the mod-11 algorithm yields 10, the check digit cannot be a single number, so K is used instead. It is just as valid as any digit — roughly 1 in 11 RUTs end in K. The letter is always uppercase.

Is it safe to paste real RUTs?

Yes. Validation runs entirely in your browser with JavaScript: the RUTs are never sent to any server, there are no accounts or logging, and you can prove it by disconnecting from the internet after the page loads — the tool keeps working.

Related tools