Calculadora y validador del dígito de control NIF de Portugal
Esta calculadora del dígito de control del NIF de Portugal aplica la suma de comprobación estándar de módulo once utilizada para el número de identificación fiscal portugués.
Ejecutar — gratis
Introduzca los ocho primeros dígitos para calcular el noveno, o envíe los nueve para comprobar si el dígito proporcionado coincide con el cálculo. El resultado es determinista e inmediato, por lo que resulta apropiado para formularios, importaciones, procesos contables y validaciones mediante API. Las longitudes incorrectas, los caracteres que no son dígitos y los modos no admitidos se notifican con claridad, sin corregirlos ni interpretarlos de forma silenciosa.
Elija entre calcular y validar
Use el modo de cálculo cuando ya disponga de la base de ocho dígitos de un NIF portugués y necesite obtener su dígito de control final. La respuesta incluye tanto el dígito calculado como el valor completo de nueve dígitos, de modo que puede incorporarlo directamente a una validación posterior o a sus pruebas. Use el modo de validación cuando el origen ya contenga los nueve dígitos. La validación separa los ocho primeros del noveno proporcionado, calcula el valor esperado e indica si ambos coinciden. También devuelve los dígitos proporcionado y esperado, lo que facilita diagnosticar un fallo. Conserve la entrada como cadena y no como número. Una cadena preserva exactamente todos los caracteres, incluido un cero inicial, y evita que el formato numérico de una hoja de cálculo o de un lenguaje de programación altere el identificador antes de evaluar la suma de comprobación. El modo predeterminado es validar, pero conviene indicarlo expresamente si un proceso admite ambas formas.
Cómo funciona el cálculo de módulo once
El algoritmo procesa los ocho primeros dígitos de izquierda a derecha con pesos descendentes desde nueve hasta dos. Multiplica el primer dígito por nueve, el segundo por ocho y continúa hasta multiplicar el octavo por dos. Después suma esos ocho productos y reduce el total mediante módulo once. Si el resto es cero o uno, el dígito de control es cero. Para cualquier otro resto, el dígito equivale a once menos dicho resto. La validación efectúa exactamente el mismo cálculo sobre las ocho primeras posiciones y compara el resultado con la novena. Esta capacidad no elimina espacios, puntos, guiones, prefijos de país ni etiquetas. Esta exigencia es deliberada: una limpieza automática podría presentar datos mal formados como fiables y ocultar errores en la asignación de campos anterior. Envíe únicamente dígitos ASCII del cero al nueve. El cálculo no usa red, valores aleatorios, reloj, base de datos ni conversiones dependientes de la configuración regional, por lo que una misma entrada y modo siempre generan la misma salida JSON.
Interprete el resultado y sus límites
Un resultado de validación verdadero significa que el noveno dígito concuerda con la suma de comprobación de módulo once obtenida a partir de los ocho anteriores. Es una comprobación estructural útil para detectar errores de escritura, importaciones dañadas y columnas mal asignadas, pero no demuestra que el número haya sido emitido, siga activo o pertenezca a una persona u organización determinada. Para responder a esas cuestiones necesita un registro autorizado o un proceso empresarial de verificación adecuado. Asimismo, esta calculadora evalúa deliberadamente la suma de comprobación sin imponer supuestos sobre categorías codificadas en el primer dígito. Así mantiene un alcance preciso y evita rechazar un número cuya suma es válida solo porque cambie una regla externa de asignación. En una canalización de datos, distinga un error de entrada de un resultado de validez falso: el error indica tipo, longitud, caracteres o modo incorrectos; falso indica que se comprobó un valor bien formado y el dígito no coincidió. Cada solicitud de API cuesta $0.002, y el mismo núcleo determinista puede ejecutarse en el navegador.
Qué puede hacer con ella
Revise un formulario fiscal antes de enviarlo
Valide un NIF de nueve dígitos en cuanto se introduzca y muestre un mensaje de corrección específico si su dígito de control no coincide.
Audite registros de clientes importados
Ejecute la validación sobre campos NIF tras migrar un CSV o un sistema para detectar truncamientos, transposiciones y errores de asignación.
Genere datos de prueba deterministas
Calcule el noveno dígito de una base de ocho al preparar pruebas de integración para programas de cobro, facturación o alta.
Preguntas frecuentes
¿Qué entrada requiere el modo de cálculo?
Exactamente ocho dígitos en una cadena. La respuesta devuelve el dígito de control calculado y el NIF completo de nueve dígitos.
¿Qué entrada requiere el modo de validación?
Exactamente nueve dígitos en una cadena, incluido el dígito de control en la posición final.
¿Una suma válida demuestra que el NIF fue emitido?
No. Solo demuestra que el noveno dígito proporcionado coincide con la suma calculada a partir de los ocho primeros.
¿Puedo incluir espacios, signos o un prefijo de país?
No. Envíe solo dígitos. Se rechazan los caracteres de formato para no modificar silenciosamente datos de origen mal formados.
¿Cómo se calcula el dígito de control?
Los ocho primeros dígitos se ponderan de nueve a dos, se suman y se reducen módulo once; un resto cero o uno produce cero y, en otro caso, se resta el resto de once.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. También puede usar la ejecución en el navegador para efectuar un cálculo local rápido.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/nif-portugal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"501964843"}'const res = await fetch("https://api.kit.forhosting.com/enc/nif-portugal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "501964843"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/nif-portugal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "501964843"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/nif-portugal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"501964843"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"501964843"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/nif-portugal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"number": "501964843"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.nif_portugal",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |