A BIN lookup API takes the first digits of a payment card (Bank Identification Number) and returns brand, type, and country as JSON — not a full PAN, and not an authorization. BankDataStack exposes that as POST https://www.bankdatastack.com/api/v1/bin/validate with header X-API-Key and JSON {"bin":"424242"}. That BIN is the official homepage example (Visa credit, United Kingdom).
Starter is $49.99/mo (1,000 requests, then $0.002; 60 req/min) with a 7-day trial on every plan. Docs: bankdatastack.com/docs.
Request: validate BIN 424242
curl -X POST "https://www.bankdatastack.com/api/v1/bin/validate" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"bin": "424242"}'
Response: official homepage sample
{
"status": "success",
"data": {
"bin": "424242",
"valid": true,
"cardBrand": "VISA",
"cardType": "CREDIT",
"countryName": "UNITED KINGDOM",
"countryCode": "GB"
}
}
Gate checkout UX on data.valid and cardBrand. This is not a “CC checker” and it is not Stripe authorization.
Use cases
- Checkout messaging. Show a Visa mark when
cardBrandisVISAbefore the customer finishes the PAN. - GEO mismatch. Compare
countryCodeto the shipping country; this sample isGB. - Credit vs debit routing.
cardTypeisCREDITon the fixture — send debit bins to a different acquirer if you have one.
Same key also runs IBAN and ABA routing on other paths. SWIFT example on the homepage uses CHASUS33 (JPMorgan Chase) — different endpoint, same X-API-Key.
Go live
1. Register and start the 7-day trial.
2. Copy X-API-Key (not Bearer).
3. POST {"bin":"424242"}
4. Read data.cardBrand.
FAQ
Is 424242 a real customer card?
No. It is the product’s published Visa test BIN.





