Importing a payment file with hundreds of IBANs and looping through a validation call per row adds latency and burns quota fast. Most teams either skip validation entirely or pull in a full banking SDK they don't need.
POST /api/v1/validate/batch sends up to 100 IBANs in a single request, runs MOD-97 checks against ISO 13616 specs for 85 countries, and returns a per-IBAN result plus aggregate counts:
curl --request POST \
--url 'https://iban-validator-parser-api.p.rapidapi.com/api/v1/validate/batch' \
--header 'x-rapidapi-key: YOUR_RAPIDAPI_KEY' \
--header 'x-rapidapi-host: iban-validator-parser-api.p.rapidapi.com' \
--header 'content-type: application/json' \
--data '{"ibans":["DE89370400440532013000","GB29NWBK60161331926819","INVALID123"]}'
Response includes validCount, invalidCount, and a results array — each entry carries the original IBAN so you can map back to source rows without index juggling. Need the bank code and account number too? GET /api/v1/parse?iban=... returns bankCode, accountNumber, and the display-formatted formattedIBAN (DE89 3704 0044 0532 0130 00) for a single IBAN.
const res = await fetch(
'https://iban-validator-parser-api.p.rapidapi.com/api/v1/validate/batch',
{
method: 'POST',
headers: {
'x-rapidapi-key': process.env.RAPIDAPI_KEY,
'x-rapidapi-host': 'iban-validator-parser-api.p.rapidapi.com',
'content-type': 'application/json',
},
body: JSON.stringify({ ibans }),
}
);
const { results, validCount, invalidCount } = await res.json();
No npm install, no external dependencies — built on Node.js built-ins.
Free tier on RapidAPI: https://rapidapi.com/danieligel/api/iban-validator-parser-api
Do you validate IBANs before storing them, or only at payment time?
Top comments (0)