Skip to main content

verifica-es 🇪🇸

PyPI version License: MIT Python Versions Zero Dependencies Tests

Librería ultraligera (cero dependencias externas en su núcleo), herramienta de línea de comandos (CLI) y API REST de alta velocidad para la validación y verificación de documentos y formatos oficiales de España.


✨ Características

  • ⚡ Zero Dependencies: La librería base utiliza únicamente la biblioteca estándar de Python (ultrarrápida y sin vulnerabilidades externas).
  • 🪪 Documentos de Identidad: Validación oficial de DNI, NIE y CIF (AEAT con reglas de control por tipo de entidad jurídica).
  • 🏦 Bancario & Contacto: Validación de IBAN español (módulo 97) y números de teléfono fijos y móviles.
  • 📍 Geografía: Validación de Códigos Postales con resolución automática de la provincia correspondiente (de 01 a 52).
  • 🚗 Vehículos: Validación de Matrículas (sistema moderno europeo y formato histórico provincial).
  • 🔍 Auto-detección: Función unificada para detectar automáticamente si un identificador es DNI, NIE o CIF.
  • 💻 CLI Integrada: Comando de consola verifica-es listo para usar en scripts o terminal.
  • 🚀 API REST lista para producción: Servidor FastAPI modular incluido.

📦 Instalación

Como librería de Python (Zero dependencies):

pip install verifica-es

Con soporte para la API REST (FastAPI + Uvicorn):

pip install "verifica-es[api]"

🚀 Uso en Python

import verifica_es as ves

# 1. Documentos de Identidad
ves.verificar_dni("12345678Z")  # -> True
ves.verificar_nie("X1234567L")  # -> True
ves.verificar_cif("B86660149")  # -> True (Sociedad Limitada)
ves.verificar_cif("P2807900B")  # -> True (Organismo con control de letra)

# Detección automática
ves.verificar_documento_identidad("B86660149")
# -> {'tipo': 'CIF', 'valido': True}

# 2. Códigos Postales y Provincias
ves.verificar_codigo_postal("35001")  # -> True
ves.obtener_provincia_codigo_postal("35001")
# -> 'Las Palmas'

ves.obtener_provincia_codigo_postal("28013")
# -> 'Madrid'

# 3. Bancario y Contacto
ves.verificar_iban("ES9121000418450200051332")  # -> True
ves.verificar_telefono("+34 612 34 56 78")        # -> True

# 4. Matrículas de Vehículos
ves.verificar_matricula("1234BBB")     # -> True (Formato moderno)
ves.verificar_matricula("GC-1234-AB")  # -> True (Formato clásico)

🖥️ Uso desde la Terminal (CLI)

Una vez instalada la librería, dispones del comando verifica-es:

# Validar DNI / NIE / CIF
verifica-es dni 12345678Z
verifica-es nie X1234567L
verifica-es cif B86660149

# Auto-detectar tipo de documento
verifica-es doc B86660149
# [VALIDO] 'B86660149' [Tipo detectado: CIF]

# Validar Código Postal (muestra la provincia)
verifica-es cp 35001
# [VALIDO] '35001' (Provincia: Las Palmas)

# Validar Matrícula
verifica-es matricula 1234BBB

# Validar IBAN o Teléfono
verifica-es iban ES9121000418450200051332
verifica-es telefono 612345678

🌐 Uso como API REST (FastAPI)

Para arrancar el servidor localmente con recarga en vivo:

uvicorn app.main:app --reload

Accede a la documentación interactiva Swagger UI en: http://localhost:8000/docs

Endpoints disponibles:

  • GET /api/validar-dni?dni=...
  • GET /api/validar-nie?nie=...
  • GET /api/validar-cif?cif=...
  • GET /api/validar-documento?documento=...
  • GET /api/validar-iban?iban=...
  • GET /api/validar-telefono?telefono=...
  • GET /api/validar-codigo-postal?cp=...
  • GET /api/validar-matricula?matricula=...

🧪 Pruebas Automatizadas

Ejecutar la suite completa de 36 tests con pytest:

pytest

📄 Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Desarrollado con ❤️ por Alejandro Tacoronte González.

Release files for verifica-es 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for verifica-es 1.1.2
File Size Uploaded
verifica_es-1.1.2.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for verifica-es 1.1.2
File Interpreter ABI Platform
verifica_es-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 40.3 kB

Release files / verifica_es-1.1.2.tar.gz

Download URL verifica_es-1.1.2.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d7851cccbd431e6a51a9a5e16ffa8f1f22e1341e2a75324a04cfe7b630152a7f
BLAKE2b-256 checksum
How to use checksums
a70fbeaed0da4d3e2d1581b7801c3dc2092bd2239dfc34a6877079063a16b84e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / verifica_es-1.1.2-py3-none-any.whl

Download URL verifica_es-1.1.2-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
033c1429a845e20d7d21c4b627f39422080a4c6f8f9b9778b98f27a415b42461
BLAKE2b-256 checksum
How to use checksums
5e1dd0ea3d98ad5ab8f1a558ed453ddaf738543f263d4c1f58096f8b920ac82d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page