DEV Community

Daniel Igel
Daniel Igel

Posted on

Validate 100 IBANs at once: batch payment validation without a banking API

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"]}'
Enter fullscreen mode Exit fullscreen mode

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();
Enter fullscreen mode Exit fullscreen mode

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)