Stapelvalidierung
Validieren Sie bis zu 100 IBANs in einem einzigen API-Aufruf. Jede IBAN wird unabhängig verarbeitet — eine ungültige IBAN beeinträchtigt die anderen nicht. 60 % günstiger als Einzelabfragen.
Endpunkt
POST https://api.ibanforge.com/v1/iban/batch
Kosten: $0.002 USDC pro IBAN (z. B. 10 IBANs = $0.020, 100 IBANs = $0.200)
Anfrage
Header
| Header | Wert | Erforderlich |
|---|---|---|
| Content-Type | application/json | Ja |
| X-PAYMENT | x402-Zahlungstoken | Ja |
Body
{
"ibans": [
"CH93 0076 2011 6238 5295 7",
"DE89 3704 0044 0532 0130 00",
"GB29 NWBK 6016 1331 9268 19",
"INVALID123"
]
}
| Feld | Typ | Beschreibung |
|---|---|---|
| ibans | string[] | Array der zu validierenden IBANs. 1 bis 100 Einträge. |
Antwort
Erfolg (200)
{
"results": [
{
"iban": "CH9300762011623852957",
"valid": true,
"country": { "code": "CH", "name": "Switzerland" },
"check_digits": "93",
"bban": { "bank_code": "00762", "account_number": "011623852957" },
"bic": { "code": "UBSWCHZH", "bank_name": "UBS SWITZERLAND AG", "city": "ZURICH" },
"sepa": { "member": true, "schemes": ["SCT", "SDD"], "vop_required": false },
"issuer": { "type": "bank", "name": "UBS SWITZERLAND AG" },
"risk_indicators": {
"issuer_type": "bank",
"country_risk": "standard",
"test_bic": false,
"sepa_reachable": true,
"vop_coverage": false
},
"formatted": "CH93 0076 2011 6238 5295 7",
"cost_usdc": 0.005
},
{
"iban": "DE89370400440532013000",
"valid": true,
"country": { "code": "DE", "name": "Germany" },
"check_digits": "89",
"bban": { "bank_code": "37040044", "account_number": "0532013000" },
"bic": { "code": "COBADEFF", "bank_name": "COMMERZBANK AG", "city": "FRANKFURT AM MAIN" },
"sepa": { "member": true, "schemes": ["SCT", "SDD", "SCT_INST"], "vop_required": true },
"issuer": { "type": "bank", "name": "COMMERZBANK AG" },
"risk_indicators": {
"issuer_type": "bank",
"country_risk": "standard",
"test_bic": false,
"sepa_reachable": true,
"vop_coverage": true
},
"formatted": "DE89 3704 0044 0532 0130 00",
"cost_usdc": 0.005
},
{
"iban": "INVALID123",
"valid": false,
"error": "invalid_format",
"error_detail": "IBAN contains invalid characters. Only letters and digits are allowed.",
"cost_usdc": 0.005
}
],
"count": 3,
"valid_count": 2,
"cost_usdc": 0.006,
"processing_ms": 2.45
}
Antwortfelder
Oberste Ebene:
| Feld | Typ | Beschreibung |
|---|---|---|
| results | array | Array der Validierungsergebnisse, in derselben Reihenfolge wie die Eingabe |
| count | number | Gesamtanzahl der verarbeiteten IBANs |
| valid_count | number | Anzahl der gültigen IBANs |
| cost_usdc | number | Gesamtkosten für diesen Stapel |
| processing_ms | number | Gesamte Verarbeitungszeit |
Jedes Element in results hat dieselbe Struktur wie die Einzelvalidierungsantwort, einschließlich sepa, issuer und risk_indicators für gültige IBANs.
Fehler
| Status | Code | Beschreibung |
|---|---|---|
| 400 | empty_batch | Das ibans-Array ist leer |
| 400 | batch_too_large | Mehr als 100 IBANs eingereicht |
| 400 | invalid_request | Der Anfrage-Body ist kein gültiges JSON oder das Feld ibans fehlt |
Codebeispiele
cURL
curl -X POST https://api.ibanforge.com/v1/iban/batch \
-H "Content-Type: application/json" \
-d '{
"ibans": [
"CH9300762011623852957",
"DE89370400440532013000",
"FR7630006000011234567890189"
]
}'
Python
import requests
response = requests.post(
"https://api.ibanforge.com/v1/iban/batch",
json={
"ibans": [
"CH9300762011623852957",
"DE89370400440532013000",
"FR7630006000011234567890189",
]
},
)
data = response.json()
print(f"Valid: {data['valid_count']}/{data['count']}")
for result in data["results"]:
if result["valid"]:
risk = result["risk_indicators"]["country_risk"]
issuer = result["issuer"]["type"]
print(f" {result['iban']} — {result['country']['name']} ({issuer}, risk: {risk})")
else:
print(f" INVALID — {result['error_detail']}")
TypeScript
const response = await fetch(
"https://api.ibanforge.com/v1/iban/batch",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
ibans: [
"CH9300762011623852957",
"DE89370400440532013000",
"FR7630006000011234567890189",
],
}),
}
);
const data = await response.json();
console.log(`Valid: ${data.valid_count}/${data.count}`);
for (const result of data.results) {
if (result.valid) {
console.log(` ${result.iban} — ${result.issuer.type}, risk: ${result.risk_indicators.country_risk}`);
} else {
console.log(` INVALID — ${result.error_detail}`);
}
}