IBAN-Test: validate an IBAN CSV with Python
Guide: https://www.iban-test.eu/guides/iban-validation-csv-python
Version 1.0 - 21 September 2026

Requires Python 3.10+ and an IBAN-Test API token. No third-party packages.
Run: python3 iban_csv.py sample.csv results.csv
Windows: py -3 iban_csv.py sample.csv results.csv
Enter your token at the hidden prompt. For unattended jobs, configure the
IBAN_TEST_API_TOKEN environment variable through your secret-management system.
Do not put tokens in source code or command-line arguments.

Input: UTF-8 CSV with lowercase iban and optional reference headers.
Other input columns are not copied. Original files are never overwritten.
Use --delimiter ";" for semicolon-separated input/output.
Default: 10 unique non-empty IBANs/run. Check quota before --max-requests 100.
Whitespace/case variants are checked once per run; blanks make no request.
Each distinct IBAN uses one REST request. No automatic retries or checkpoints.
Prior calls can consume quota even if a later call fails.

VALID = API code2100 with error false. INVALID =3100/3101/3102.
MISSING = blank input. Operational errors stop the run and do not create output.
Keep older result files separate: an unsuccessful run does not refresh them.
CSV fields which could execute as spreadsheet formulas are prefixed with an
apostrophe; this may change the literal representation of an input reference.

Only IBANs go to the API; output contains sensitive bank data. Protect both files.
Valid IBANs are not proof of account ownership/existence or successful payment.
The sample is for testing only, never payment instructions.

Offline tests: python3 -m unittest -v
Nine local tests passed. These use controlled fixtures, not real bank lookups.
An authenticated live API run has not been performed for this starter.
