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.
Descripción general
Casos de uso
- 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
Funcionalidades
Puntos finales de la 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}
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| iban | string |
Obligatorio | The IBAN to validate. Spaces are stripped. Case-insensitive. |
Pruébalo
Demostración en vivoSolicitud
The IBAN to validate. Spaces are stripped. Case-insensitive.
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| 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) |
Ejemplos de código
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
Respuestas de error
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
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| numbers | array<string> |
Obligatorio | Array of iban numbers to validate (min: 1, max: 50). |
Pruébalo
Demostración en vivoSolicitud
Array of iban numbers to validate (min: 1, max: 50).
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| 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. |
Ejemplos de código
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
Respuestas de error
The numbers array is missing, empty, or contains more than 50 items.