Building a payment form, writing unit tests, or integrating with a banking API? You need test IBANs — numbers that pass validation but will not accidentally trigger real transactions.
Using real IBANs in development is risky:
- A misconfigured staging environment could initiate real transfers
- Real IBANs are personal financial data covered by GDPR and PCI requirements
- Storing real banking data in dev environments violates most security policies
Sample Test IBANs by Country
All of these pass standard IBAN validation:
Western Europe
| Country | IBAN | Length |
|---|---|---|
| Germany | DE89 3704 0044 0532 0130 00 |
22 |
| France | FR76 3000 6000 0112 3456 7890 189 |
27 |
| Spain | ES91 2100 0418 4502 0005 1332 |
24 |
| Italy | IT60 X054 2811 1010 0000 0123 456 |
27 |
| Netherlands | NL91 ABNA 0417 1643 00 |
18 |
| Belgium | BE68 5390 0754 7034 |
16 |
| Austria | AT61 1904 3002 3457 3201 |
20 |
| Ireland | IE29 AIBK 9311 5212 3456 78 |
22 |
Northern Europe
| Country | IBAN | Length |
|---|---|---|
| United Kingdom | GB29 NWBK 6016 1331 9268 19 |
22 |
| Sweden | SE45 5000 0000 0583 9825 7466 |
24 |
| Denmark | DK50 0040 0440 1162 43 |
18 |
| Norway | NO93 8601 1117 947 |
15 |
| Finland | FI21 1234 5600 0007 85 |
18 |
Eastern Europe
| Country | IBAN | Length |
|---|---|---|
| Poland | PL61 1090 1014 0000 0712 1981 2874 |
28 |
| Czech Republic | CZ65 0800 0000 1920 0014 5399 |
24 |
| Hungary | HU42 1177 3016 1111 1018 0000 0000 |
28 |
| Romania | RO49 AAAA 1B31 0075 9384 0000 |
24 |
Need test IBANs for countries not listed here? Use our random IBAN generator to create valid test numbers for supported countries instantly.
How Test IBANs Are Generated
The process involves four steps:
- Pick a country — determines the IBAN length and format
- Choose a bank code — use a real bank code format for realistic testing
- Generate an account number — random digits matching the country's length
- Calculate check digits — using the MOD-97 algorithm
For a detailed explanation, see our IBAN validation guide.
Unit Testing with IBANs
Your test suite should cover:
Valid cases:
DE89370400440532013000✓GB29NWBK60161331926819✓FR7630006000011234567890189✓
Invalid cases:
- Wrong check digits:
DE00370400440532013000✗ - Invalid country:
XX89370400440532013000✗ - Incorrect length ✗
- Empty string ✗
Edge cases:
- IBANs with spaces
- Lowercase letters
- Mixed formatting
Payment Provider Test IBANs
When testing with payment APIs, use their designated test IBANs:
- Stripe:
DE89370400440532013000(success),DE62370400440532013001(failed charge) - Adyen:
NL13TEST0123456789(success),NL36TEST0236169114(refused)
Always check your provider's documentation for specific test behaviors.
Form Testing Checklist
| Scenario | Expected |
|---|---|
| Standard valid IBAN | Accept |
| Valid IBAN with spaces | Accept after cleanup |
| Valid IBAN in lowercase | Accept after normalization |
| Wrong check digits | Reject with clear error |
| Wrong length for country | Reject |
| Invalid country code | Reject |
| Empty field | Required field error |
| Random text | Format error |
Best Practices
Do:
- Use structurally valid test IBANs
- Test multiple countries (not just German IBANs)
- Test edge cases: shortest (Norway, 15 chars) and longest (Malta, 31 chars)
- Separate test and production environments
- Document test IBANs in a shared test data dictionary
Don't:
- Use real IBANs in tests (even your own)
- Hardcode test IBANs in production code
- Assume all IBANs are the same length (15–34 characters)
- Skip country-specific testing
- Use test IBANs from one payment provider with another
Multi-Currency Testing
| Currency | Country | Test IBAN |
|---|---|---|
| EUR | Germany | DE89 3704 0044 0532 0130 00 |
| GBP | UK | GB29 NWBK 6016 1331 9268 19 |
| CHF | Switzerland | CH93 0076 2011 6238 5295 7 |
| SEK | Sweden | SE45 5000 0000 0583 9825 7466 |
| NOK | Norway | NO93 8601 1117 947 |
| PLN | Poland | PL61 1090 1014 0000 0712 1981 2874 |
| CZK | Czech Republic | CZ65 0800 0000 1920 0014 5399 |
The golden rule: if you are testing anything that touches bank account numbers, use test IBANs with no exceptions. Generate fresh test IBANs with our Random IBAN Generator.