A checkout bank-data API validates the three identifiers a payment form actually collects: IBAN, SWIFT/BIC, and US ABA. On BankDataStack those are three POSTs on one X-API-Key. Official samples: IBAN GB82WEST12345698765432, SWIFT CHASUS33, routing 021000021.
Starter is $49.99/mo (1,000 calls, then $0.002) with a 7-day trial. There is no live MCP host. Docs: bankdatastack.com/docs.
1. IBAN — official UK WEST
curl -X POST https://www.bankdatastack.com/api/v1/iban/validate \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"iban": "GB82WEST12345698765432"}'
{
"status": "success",
"data": {
"iban": "GB82WEST12345698765432",
"valid": true,
"countryCode": "GB",
"checkDigits": "82",
"bban": "WEST12345698765432"
}
}
2. SWIFT — official CHASUS33
curl -X POST https://www.bankdatastack.com/api/v1/swift/validate \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"swift":"CHASUS33"}'
{
"status": "success",
"message": "SWIFT code CHASUS33 is valid",
"data": {
"swiftCode": "CHASUS33",
"bank": "JPMORGAN CHASE BANK, N.A.",
"city": "NEW YORK",
"countryCode": "US"
}
}
3. ABA — official 021000021
curl -X POST https://www.bankdatastack.com/api/v1/routing/validate \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"routing_number": "021000021"}'
ACH vs wire for that RTN resolve different cities (Tampa vs New York) — see the routing docs sample dated lastUpdated 2025-11-12.
Go live
1. Register — 7-day trial.
2. Copy X-API-Key.
3. POST IBAN, SWIFT, or ABA on the matching path.
4. Gate the form on valid / bank / countryCode.




