스페인 DNI·NIE·NIF와 확인 문자
스페인의 신분번호와 세금번호는 끝에 검증용 문자가 붙습니다. DNI와 NIE에서는 이 문자를 숫자로부터 간단한 계산으로 구하며, 계산법은 스페인 내무부가 공개합니다. 이 가이드는 세 가지 번호의 차이, 계산 과정, 그리고 확인 문자가 맞을 때 알 수 있는 것과 알 수 없는 것을 설명합니다.
서로 연결된 세 가지 번호
NIF(número de identificación fiscal)는 세금 식별번호입니다. 대부분의 사람에게 NIF는 별도의 번호가 아닙니다. 스페인 국민은 신분증인 DNI의 번호를, 외국인 거주자는 외국인 식별번호인 NIE를 NIF로 씁니다. 둘 다 없는 개인과 법인은 국세청(Agencia Tributaria)에서 NIF를 받습니다.
| 번호 | 대상 | 형식 | 예 |
|---|---|---|---|
| DNI (NIF로도 씀) | 스페인 국민 | 숫자 8자리 + 확인 문자 | 12345678Z |
| NIE (NIF로도 씀) | 외국인 | X·Y·Z + 숫자 7자리 + 확인 문자 | X1234567L |
| K·L·M NIF | DNI·NIE가 없는 사람(K: 스페인에 사는 14세 미만 국민, L: 해외 거주 국민, M: NIE가 없는 외국인) | K·L·M + 7자 + 확인 문자 | – |
| 법인·단체 NIF | 회사, 협회, 공공기관 등 | 법적 형태 문자 + 숫자 7자리 + 확인 문자 | – |
K·L·M 번호는 세무 일반 규정(Real Decreto 1065/2007 제19·20조)에 문자 하나, 영숫자 7자, 알파벳 확인 문자로 이루어진다고 나옵니다. DNI 규정(Real Decreto 255/2025 제12조)은 신분증에 번호와 확인 문자가 적힌다고만 정하고, 계산 방법은 내무부 웹사이트에 공개되어 있습니다.
DNI 문자 계산법
확인 문자는 번호를 23으로 나눈 나머지를 문자로 바꾼 것입니다.
- DNI의 숫자 8자리를 하나의 수로 봅니다.
- 23으로 나누어 나머지(0~22)를 구합니다.
- 표에서 나머지에 해당하는 문자를 찾습니다.
| 나머지 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 문자 | T | R | W | A | G | M | Y | F | P | D | X | B |
| 나머지 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | |
| 문자 | N | J | Z | S | Q | V | H | L | C | K | E |
예시(스페인 내무부의 예): 12345678 ÷ 23은 536,768이고 나머지는 14입니다(23 × 536,768 = 12,345,664, 12,345,678 − 12,345,664 = 14). 나머지 14는 Z이므로 DNI 전체는 12345678Z입니다.
코드로는 한 줄입니다. 문자는 "TRWAGMYFPDXBNJZSQVHLCKE"[번호 % 23]입니다. 문자는 23개뿐이라서 I, Ñ, O, U는 확인 문자로 나오지 않습니다. DNI 끝에 이 문자가 있다면 어딘가 잘못 옮겨 적은 것입니다.
NIE: 앞의 X·Y·Z부터 바꾸기
NIE는 X·Y·Z 가운데 한 글자, 숫자 7자리, 확인 문자로 이루어집니다. 계산하기 전에 첫 글자를 숫자로 바꿉니다. X는 0, Y는 1, Z는 2입니다. 그러면 8자리 수가 되고, 그다음은 DNI와 같습니다.
예시: X1234567은 01234567이 됩니다. 1,234,567 ÷ 23의 나머지는 19(23 × 53,676 = 1,234,548)이고 19는 L이므로 NIE는 X1234567L입니다. 같은 숫자라도 Y(11234567)나 Z(21234567)로 시작하면 문자가 달라지므로 첫 글자도 정확히 옮겨야 합니다.
확인 문자가 잡아내는 것과 증명하지 못하는 것
확인 문자는 입력 실수를 잡기 위한 장치입니다. 23은 어떤 한 자리 숫자보다도 큰 소수라서, 숫자 하나만 바꿔도 나머지가 반드시 달라집니다. 따라서 한 자리를 잘못 쓰면 항상 다른 문자가 나옵니다. 이웃한 두 자리를 서로 바꿔 써도 번호는 9 × 10의 거듭제곱의 배수만큼 달라지는데, 23은 이 값도 나누지 못하므로 이 실수도 잡힙니다. 두 자리 이상을 잘못 쓰면 우연히 같은 문자가 나올 수 있습니다.
확인 문자로는 번호가 실제로 있는지 알 수 없습니다. 8자리 수에는 모두 맞는 문자가 하나씩 있으므로, 발급된 적 없는 수백만 개의 번호도 검사를 통과합니다. 번호가 있는지는 발급 기관만 확인할 수 있습니다. DNI와 NIE는 내무부, 그 밖의 NIF는 국세청입니다.
K·L·M과 법인 NIF
세무 일반 규정은 K·L·M 번호의 구조만 정하고 확인 문자 계산법은 정하지 않습니다. 법인·단체의 NIF는 Orden EHA/451/2008이 구조를 정합니다. 법적 형태를 나타내는 문자, 무작위 7자리 숫자, 확인 문자입니다. 이 명령도 문자 목록은 있지만 확인 문자 계산법은 공개하지 않습니다. 그래서 LeedyBox 검증기는 이런 번호를 알아보고 법적 형태를 보여 주되, 마지막 문자는 검사하지 않습니다.
| 첫 글자 | 법적 형태(Orden EHA/451/2008) |
|---|---|
| A | Sociedades anónimas (주식회사) |
| B | Sociedades de responsabilidad limitada (유한회사) |
| C, D | Sociedades colectivas, sociedades comanditarias (합명·합자회사) |
| E | Comunidades de bienes, herencias yacentes 등 법인격 없는 단체 |
| F, G, H, J | 협동조합, 협회, 공동주택 소유자 공동체, 민법상 조합 |
| P, Q, R, S | 지방자치단체, 공공기관, 종교 단체, 국가·자치주 행정기관 |
| U, V | 공동 수급체(UTE), 그 밖의 형태 |
| N, W | 외국 법인, 비거주 법인의 고정사업장 |
번호를 쓰고 저장할 때
- 문자는 대문자로, 공백 없이 씁니다:
12345678Z. 문자 앞에 하이픈을 넣는 양식도 많으니, 두 번호를 비교할 때는 공백·점·하이픈을 지운 뒤 비교합니다. - DNI는 정수가 아니라 텍스트로 저장합니다. 숫자 열에 넣으면 앞자리 0과 문자가 사라집니다.
- 입력할 때 문자를 검사해 오타를 일찍 잡되, 문자가 맞는다고 본인 확인이 끝났다고 보지는 마세요.
- DNI와 NIE는 사람을 식별하는 개인정보입니다. URL, 로그, 분석 도구에 넣지 마세요.
개발용 테스트 번호
양식과 데이터베이스를 시험하려면 검사를 통과하는 예시 번호가 필요합니다. 검증기는 확인 문자가 맞는 무작위 DNI·NIE를 만들 수 있습니다. 테스트 전용입니다. 무작위 번호가 실제 사람의 번호와 같을 수 있으니, 실제 데이터·청구서·문서에 누군가의 번호로 쓰면 안 됩니다.
자주 묻는 질문
NIF와 DNI는 같은 번호인가요?
스페인 국민이라면 그렇습니다. NIF는 DNI 번호 뒤에 문자를 붙인 것입니다. 외국인 거주자는 NIE를 NIF로 쓰고, 둘 다 없는 사람은 국세청에서 K·L·M 번호를 받습니다.
CIF는 무엇인가요?
예전에 쓰던 법인 세금번호의 이름입니다. 지금 법인은 법적 형태 문자, 숫자 7자리, 확인 문자로 된 NIF를 씁니다.
제 DNI 문자가 왜 틀렸다고 나오나요?
신분증과 숫자·문자를 하나씩 대조해 보세요. I, Ñ, O, U는 언제나 틀린 문자이고, 숫자 두 개만 바꿔 써도 맞는 문자가 달라집니다.
누구의 번호인지 알 수 있나요?
아닙니다. 문자는 숫자만으로 계산하므로 소지자 정보가 들어 있지 않고, 검증기는 어디에도 번호를 조회하지 않습니다.
출처
출처: Ministerio del Interior: Cálculo del dígito de control del NIF/NIE (Internet Archive, 2025-12-30) · 확인일:
출처: BOE: Real Decreto 255/2025, de 1 de abril, por el que se regula el Documento Nacional de Identidad · 확인일:
출처: BOE: Orden EHA/451/2008 (texto consolidado, modificada por la Orden HAP/5/2016) · 확인일: