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 50+ 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.