IBAN Validator
Validate IBAN numbers and extract the bank code and account number. Supports all countries in the official SWIFT IBAN Registry. Returns a structured response for both valid and invalid IBANs — the valid field tells you whether the IBAN passed checksum validation.
Vue d'ensemble
Cas d'utilisation
- Payment form validation before submission
- Fintech apps processing international bank transfers
- Fraud detection pipelines verifying account details
- Accounting software importing supplier bank details
- KYC / AML workflows verifying customer bank accounts
Fonctionnalités
Points de terminaison de l'API
Validate IBAN
Validates an IBAN and returns the country, bank code, and account number. Spaces in the input are stripped automatically. Always returns HTTP 200 — check the valid field to determine whether the IBAN is valid.
https://requiems.xyz/v1/finance/iban/{iban}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| iban | string |
Requis | The IBAN to validate. Spaces are stripped. Case-insensitive. |
Essayez-le
Démo en directRequête
The IBAN to validate. Spaces are stripped. Case-insensitive.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| iban | string |
The normalised IBAN (spaces stripped, uppercased) |
| valid | boolean |
true if the IBAN passed length and ISO 13616 checksum validation |
| country | string |
Full country name (empty if the country code is not in the registry) |
| bank_code | string |
Bank identifier extracted from the BBAN (empty if country not in registry or positions not defined) |
| account | string |
Account number extracted from the BBAN (empty if country not in registry or positions not defined) |
Exemples de code
curl "https://requiems.xyz/v1/finance/iban/DE89370400440532013000" \
-H "requiems-api-key: YOUR_API_KEY"
# With spaces (URL-encoded):
curl "https://requiems.xyz/v1/finance/iban/DE89%203704%200044%200532%200130%2000" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
iban = "DE89370400440532013000"
url = f"https://requiems.xyz/v1/finance/iban/{iban}"
headers = {"requiems-api-key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers)
data = response.json()["data"]
if data["valid"]:
print(f"Country: {data['country']}")
print(f"Bank code: {data['bank_code']}")
print(f"Account: {data['account']}")
else:
print("Invalid IBAN")
const iban = "DE89370400440532013000";
const response = await fetch(
`https://requiems.xyz/v1/finance/iban/${iban}`,
{ headers: { 'requiems-api-key': 'YOUR_API_KEY' } }
);
const { data } = await response.json();
if (data.valid) {
console.log(`Country: ${data.country}`);
console.log(`Bank code: ${data.bank_code}`);
console.log(`Account: ${data.account}`);
} else {
console.log('Invalid IBAN');
}
require 'net/http'
require 'json'
iban = "DE89370400440532013000"
uri = URI("https://requiems.xyz/v1/finance/iban/#{iban}")
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)['data']
if data['valid']
puts "Country: #{data['country']}"
puts "Bank code: #{data['bank_code']}"
puts "Account: #{data['account']}"
else
puts "Invalid IBAN"
end
Réponses d'erreur
Unexpected server error (e.g. database unreachable).
Batch Validate IBANs
Validates up to 50 iban numbers in a single request. Results are returned in the same order as the input.
https://requiems.xyz/v1/finance/iban/batch
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| numbers | array<string> |
Requis | Array of iban numbers to validate (min: 1, max: 50). |
Essayez-le
Démo en directRequête
Array of iban numbers to validate (min: 1, max: 50).
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| results | array<object> |
Validation result for each number in the same order as the input. Each item has the same fields as the single validate endpoint. |
| total | integer |
Number of results returned. Matches the length of the input array. |
Exemples de code
curl -X POST "https://requiems.xyz/v1/finance/iban/batch" \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers":["GB29NWBK60161331926819","DE89370400440532013000"]}'
import requests
url = "https://requiems.xyz/v1/finance/iban/batch"
headers = {
"requiems-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {"numbers": ["GB29NWBK60161331926819", "DE89370400440532013000"]}
response = requests.post(url, headers=headers, json=payload)
for result in response.json()["data"]["results"]:
print(result["iban"], result["valid"])
const response = await fetch(
'https://requiems.xyz/v1/finance/iban/batch',
{
method: 'POST',
headers: {
'requiems-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ numbers: ['GB29NWBK60161331926819', 'DE89370400440532013000'] })
}
);
const { data } = await response.json();
data.results.forEach(r => console.log(r.iban, r.valid));
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/finance/iban/batch')
request = Net::HTTP::Post.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = { numbers: ['GB29NWBK60161331926819', 'DE89370400440532013000'] }.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
JSON.parse(response.body)['data']['results'].each do |r|
puts "#{r['iban']}: #{r['valid']}"
end
Réponses d'erreur
The numbers array is missing, empty, or contains more than 50 items.