# IBAN payment-form QA starter kit

Ten small, synthetic format/checksum cases covering DE, GB, FR, NO and BE,
including spaces/lowercase, invalid checksum, truncated input and invalid
characters. Every case separates format, MOD-97, national checksum, registry
match and provider scope instead of collapsing them into an ambiguous
`valid: true`. The verifier uses Python 3's standard library, no network or key.

Download `iban-cases.json` and `verify.py` into the same directory, then run:

```sh
python3 verify.py
node --test verify.test.js
```

You can import the JSON into a test runner and assert `expected_valid` after
normalizing whitespace and case. The example verifier implements only the
five country patterns in this kit; it is not a complete production validator.
The JavaScript example uses Node's built-in test runner and has no package
dependencies. `source_version` pins the interpretation of every assertion.
Format and checksum validity do not prove account existence, ownership or
payment availability. Never initiate payments to these example numbers.

For a first API call, create a key in https://ibangen.com/account. Keep the key
in an environment variable; don't commit it to a repository. Country-only
generation is available within the Free plan's 50 API-call allowance:

```sh
curl --fail-with-body https://ibangen.com/api/v1/generate \
  -H "X-API-Key: $IBANGEN_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"country":"Germany","quantity":2}'
```

This request uses two API credits. Current usage is shown in your account.
When tests require more than country-only data:

- Starter ($9/month): city targeting and smaller recurring batches.
- Pro ($29/month): a specific bank, saved datasets and repeatable workflows.
- Business ($99/month): exact BIC/branch targeting and team projects.

Documentation: https://ibangen.com/apidoc#quickstart
Debugging guide: https://ibangen.com/guides/why-valid-iban-is-rejected
Coverage preview: https://ibangen.com/bank-targeting
Plans and current quotas: https://ibangen.com/pricing
