Python · CSV · Validación de IBAN
Validar IBAN de un archivo CSV con Python
Verifique una lista IBAN exportada y cree un nuevo archivo CSV con el estado de validación, el nombre del banco y el BIC. El script descargable utiliza la biblioteca estándar de Python, conserva el orden de las líneas y comprueba los IBAN duplicados solo una vez por ejecución.
Este es un flujo de línea de comando local para Python versión 3.10 o posterior. Cada IBAN diferente y no vacío se envía a la API IBAN-Test. Necesita su propio token API y una cuota de solicitudes suficiente.
Descargar script para comprobar CSV
El archivo ZIP contiene iban_csv.py, un CSV de muestra, un archivo README y pruebas automatizadas. No se requieren paquetes adicionales de Python.
Estado de las pruebas: Nueve pruebas automatizadas locales cubren la construcción de solicitudes, líneas duplicadas y vacías, resultados de verificación, protección de cuotas, manejo de errores, enmascaramiento de CSV y preservación de archivos existentes. Para este ejemplo no se realizó un pase autenticado contra Live API.
1. Prepare el archivo de entrada
Exporte sus datos de origen como UTF-8 CSV. Utilice el encabezado de columna en minúsculas iban y, opcionalmente, una columna reference para asignar resultados a sus registros. El script solo incluye estas dos columnas de entrada en la salida; otras columnas no se tienen en cuenta. Mantenga su exportación original.
reference,iban
example-valid,DE89 3704 0044 0532 0130 00
example-duplicate,de89370400440532013000
example-invalid-checksum,DE00370400440532013000
example-empty,
Estas son muestras de prueba, no instrucciones de pago. Las dos primeras líneas dan como resultado el mismo IBAN normalizado. La línea vacía obtiene MISSING sin una solicitud de API. Guarde los IBAN y las referencias como texto al exportar desde una hoja de cálculo.
2. Realizar una primera pequeña comprobación
Desempaquete el paquete, abra una terminal en su directorio y verifique si Python está disponible:
python3 --version
python3 iban_csv.py sample.csv results.csv
En Windows, utilice py -3 en lugar de python3 si es necesario, dependiendo de su instalación. El programa consultará su token API sin mostrar los caracteres que ingresó. Puede encontrar el token en la descripción general de API de su cuenta IBAN-Test. No está escrito en el archivo CSV.
El límite predeterminado es 10 IBAN diferentes, no vacíos. El script los cuenta antes de la primera solicitud y se detiene cuando se exceden. El ejemplo anterior requiere dos solicitudes de API si ambas se completan con regularidad.
Si tiene éxito, el programa genera el número de líneas y solicitudes. Solo crea el archivo de salida cuando hay un resultado de verificación utilizable para cada IBAN solicitado. Por lo tanto, un error de API no deja un resultado CSV parcialmente verificado.
3. Lea el número
| columna | Significado |
|---|---|
reference, iban | Su referencia y aportes originales, con protección de fórmula tabular si es necesario. |
iban_normalized | IBAN en mayúsculas sin espacios en blanco. |
status | VALID, INVALID o MISSING. |
code, message | Código de resultado API y mensaje explicativo. Para decisiones automatizadas, utilice el código, no el texto del mensaje. |
bank, bic | Datos bancarios disponibles; Los campos pueden estar vacíos. |
checked_at_utc | Marca de tiempo UTC registrada después de la respuesta para este IBAN. Los duplicados comparten el resultado y la marca de tiempo; las entradas vacías no tienen marca de tiempo. |
VALID requiere el código 2100 y error: false. Los códigos 3100, 3101 y 3102 con error: true dan como resultado INVALID. Los fallos de autenticación, la cuota agotada, los errores del servidor y las respuestas inesperadas detienen el programa con un código de salida distinto de cero.
4. Procesar otras exportaciones y listas más grandes
Para exportar con punto y coma, seleccione el separador explícitamente. Se aplica a la entrada y a la salida:
python3 iban_csv.py customers.csv checked-customers.csv --delimiter ";"
Verifique su cuota de API restante y luego aumente el límite de solicitudes por ejecución si es necesario:
python3 iban_csv.py customers.csv checked-customers.csv --max-requests 100
Las solicitudes individuales se envían una tras otra; no es un endpoint REST por lotes. Es posible que una ejecución fallida ya haya consumido solicitudes. Un reinicio comprueba la lista nuevamente: la eliminación de duplicados se aplica dentro de una ejecución, no en varias ejecuciones. Esta plantilla no tiene repeticiones automáticas ni estados intermedios reanudables.
Para ejecuciones desatendidas, proporcione IBAN_TEST_API_TOKEN a través de la configuración de secretos del sistema de trabajo. No almacene tokens reales en el control de versiones ni los pase como argumento de línea de comando. Para ejecuciones manuales, la entrada interactiva oculta es la más sencilla.
Problemas comunes
- “CSV must have an iban header”: Verifique la ortografía exacta del encabezado de la columna, la codificación y el separador. XLSX no es CSV.
- “Choose a new output filename”: El script no sobrescribe los archivos existentes ni su entrada. Utilice un nuevo nombre de archivo para cada ejecución.
- HTTP 401 o código API 4002: Comprueba tu ficha. No reintente continuamente las autenticaciones fallidas.
- Código API 4003: La cuota se ha agotado. Detenga el trabajo y verifique su cuota antes de comenzar nuevamente.
- Error de red o JSON no válido: El flujo se detiene. Verifique la disponibilidad de conexión y API; Un error de transmisión no dice nada sobre la validez del IBAN.
Proteger los datos exportados
Sólo se envía el IBAN a la API; la referencia permanece en su flujo local. Mantenga los archivos de entrada y salida en una ubicación privada adecuada. El script antepone los valores de la tabla potencialmente ejecutables con un apóstrofo para reducir el riesgo de inyección de fórmula. Esto puede cambiar la representación literal de una referencia como =1+1. Conserve la exportación original para una coincidencia precisa.
Un IBAN válido no prueba la existencia, propiedad, saldo de la cuenta o éxito del pago. Puede encontrar información sobre los procedimientos SEPA individuales en las instrucciones del Participación SEPA de un banco. El instrucciones n8n es adecuado para un proceso visual.
Ejecutar pruebas fuera de línea incluidas
python3 -m unittest -vLas pruebas utilizan respuestas controladas y no consumen solicitudes de API. Revisan las decisiones del programa, no su token ni su información bancaria actual.
Referencias: documentación de la API de IBAN-Test, Referencia CSV de Python, Referencia de Python en solicitudes HTTP.
