Python · CSV · Validation des IBAN
Valider les IBAN d’un fichier CSV avec Python
Vérifiez une liste IBAN exportée et créez un nouveau fichier CSV avec le résultat de validation, le nom de la banque et le BIC. Le script téléchargeable utilise la bibliothèque standard Python, préserve l'ordre des lignes et vérifie les IBAN en double une seule fois par exécution.
Il s'agit d'un flux de ligne de commande locale pour Python version 3.10 ou ultérieure. Chaque IBAN différent et non vide est envoyé à l'API IBAN-Test. Vous avez besoin de votre propre jeton API et d'un quota de requêtes suffisant.
Télécharger le script pour la vérification CSV
Le fichier ZIP contient iban_csv.py, un exemple CSV, un README et des tests automatisés. Aucun package Python supplémentaire n’est requis.
État des tests : Neuf tests automatisés locaux couvrent la construction des requêtes, les lignes en double et vides, les résultats de vérification, la protection des quotas, la gestion des erreurs, le masquage CSV et la préservation des fichiers existants. Une passe authentifiée sur l'API Live n'a pas été effectuée pour cet exemple.
1. Préparer le fichier d'entrée
Exportez vos données sources au format CSV UTF-8. Utilisez l'en-tête de colonne en minuscules iban et éventuellement une colonne reference pour mapper les résultats à vos enregistrements. Le script inclut uniquement ces deux colonnes d'entrée dans la sortie ; les autres colonnes ne sont pas prises en compte. Conservez votre exportation originale.
reference,iban
example-valid,DE89 3704 0044 0532 0130 00
example-duplicate,de89370400440532013000
example-invalid-checksum,DE00370400440532013000
example-empty,
Il s’agit d’échantillons de test et non d’instructions de paiement. Les deux premières lignes donnent le même IBAN normalisé. La ligne vide obtient MISSING sans requête API. Enregistrez les IBAN et les références sous forme de texte lors de l'exportation à partir d'une feuille de calcul.
2. Effectuez une première petite vérification
Décompressez le package, ouvrez un terminal dans son répertoire et vérifiez si Python est disponible :
python3 --version
python3 iban_csv.py sample.csv results.csv
Sous Windows, utilisez py -3 au lieu de python3 si nécessaire, en fonction de votre installation. Le programme interrogera votre jeton API sans afficher les caractères que vous avez saisis. Vous pouvez trouver le jeton dans l'aperçu de l'API de votre compte IBAN-Test. Il n'est pas écrit dans le fichier CSV.
La limite par défaut est 10 IBAN différents et non vides. Le script les compte avant la première requête et s'arrête lorsqu'ils sont dépassés. L'exemple ci-dessus nécessite deux requêtes API si les deux se terminent régulièrement.
En cas de succès, le programme affiche le nombre de lignes et de requêtes. Il ne crée le fichier de sortie que lorsqu'il existe un résultat de contrôle utilisable pour chaque IBAN demandé. Par conséquent, une erreur API ne laisse pas de résultat CSV partiellement vérifié.
3. Lisez le numéro
| Colonne | Signification |
|---|---|
reference, iban | Votre référence et votre saisie originales, avec protection par formule tabulaire si nécessaire. |
iban_normalized | IBAN en majuscules sans espace blanc. |
status | VALID, INVALID ou MISSING. |
code, message | Code de résultat de l'API et message explicatif. Pour les décisions automatisées, utilisez le code et non le texte du message. |
bank, bic | Coordonnées bancaires disponibles ; Les champs peuvent être vides. |
checked_at_utc | Horodatage UTC enregistré après la réponse pour cet IBAN. Les doublons partagent le résultat et l'horodatage ; les entrées vides n'ont pas d'horodatage. |
VALID nécessite les codes 2100 et error: false. Les codes 3100, 3101 et 3102 avec error: true donnent INVALID. Un échec d'authentification, un quota épuisé, des erreurs de serveur et des réponses inattendues arrêtent le programme avec un code de sortie différent de zéro.
4. Traitez d'autres exportations et des listes plus grandes
Pour exporter avec un point-virgule, sélectionnez explicitement le séparateur. Il s'applique aux entrées et aux sorties :
python3 iban_csv.py customers.csv checked-customers.csv --delimiter ";"
Vérifiez votre quota d'API restant, puis augmentez la limite de requêtes par exécution si nécessaire :
python3 iban_csv.py customers.csv checked-customers.csv --max-requests 100
Les demandes individuelles sont envoyées les unes après les autres ; ce n'est pas un point de terminaison de collection REST. Une exécution ayant échoué peut avoir déjà consommé des requêtes. Un redémarrage vérifie à nouveau la liste : le nettoyage des doublons s'applique au sein d'une seule exécution, et non sur plusieurs exécutions. Ce modèle n'a ni répétitions automatiques ni statuts intermédiaires pouvant être repris.
Pour les exécutions sans surveillance, fournissez IBAN_TEST_API_TOKEN via la configuration des secrets de votre système de travail. Ne stockez pas de vrais jetons dans le contrôle de version et ne les transmettez pas comme argument de ligne de commande. Pour les exécutions manuelles, la saisie interactive masquée est la plus simple.
Problèmes courants
- “CSV must have an iban header”: Vérifiez l'orthographe exacte de l'en-tête de colonne, l'encodage et le séparateur. XLSX n'est pas CSV.
- “Choose a new output filename”: Le script n'écrase pas les fichiers existants ni leurs entrées. Utilisez un nouveau nom de fichier pour chaque exécution.
- HTTP 401 ou code API 4002 : Vérifiez votre jeton. Ne réessayez pas continuellement les authentifications ayant échoué.
- Code API 4003 : Le quota est épuisé. Arrêtez le travail et vérifiez votre quota avant de le redémarrer.
- Erreur réseau ou JSON invalide : Le flux s'arrête. Vérifier la connexion et la disponibilité de l'API ; Une erreur de transmission ne dit rien sur la validité de l'IBAN.
Protéger les données exportées
Seul l'IBAN est envoyé à l'API ; la référence reste dans votre flux local. Conservez les fichiers d’entrée et de sortie dans un emplacement privé approprié. Le script préfixe les valeurs de table potentiellement exécutables avec une apostrophe pour réduire le risque d'injection de formule. Cela peut modifier la représentation littérale d'une référence telle que =1+1. Conservez l’exportation originale pour une correspondance précise.
Un IBAN valide ne prouve pas l'existence d'un compte, sa propriété, son solde ou la réussite du paiement. Des informations sur les différentes procédures SEPA sont disponibles dans les instructions du Participation SEPA d'une banque. Le mode d'emploi n8n convient à un processus visuel.
Exécutez des tests hors ligne inclus
python3 -m unittest -vLes tests utilisent des réponses contrôlées et ne consomment pas de requêtes API. Ils examinent les décisions du programme, et non votre jeton ou vos informations bancaires actuelles.
Références : documentation de l’API IBAN-Test, Référence Python CSV, Référence Python sur les requêtes HTTP.
