Search by task, endpoint, field, or error.
BIN Lookup API
Card issuer details with the matched prefix in every response.
Pass a card prefix to look up its issuer, country, brand, type, and prepaid status when known. Each call uses one pooled request on every plan, including Free.
Send the first 6 to 11 digits as a string. Spaces and hyphens are removed, and leading zeros are preserved. Send only the prefix, not the full card number. Malformed input returns HTTP 400.
Look up a prefix
Parameters 2
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.bin("437374");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"bin": "437374",
"prefix": "437374",
"country": "VN",
"issuer": "UOB",
"brand": "visa",
"type": null,
"prepaid": null
}Response fields
- bin
- Supplied 6-11-digit card prefix with spaces and hyphens removed. Leading zeros are preserved
- prefix
- Longest recorded prefix matching the start of bin, or null when unknown. May be shorter than the supplied input
- country
- Recorded card-issuer country as an ISO 3166-1 alpha-2 code, or null when unavailable
- issuer
- Recorded issuer name, or null when unavailable
- brand
- Recorded card network or co-branded combination, or null when unavailable
- type
- Recorded card type, such as credit, debit, or charge, or null when unavailable or mixed
- prepaid
- true or false only when known. null means prepaid status is unavailable
Match precision
prefix is the longest recorded prefix that matches the start of your input. It may be shorter than bin. An eight-digit input with only a six-digit match returns that six-digit prefix.
All fields come from the one matched record. If a more specific record has a null field, it stays null. Details from a broader record are not combined with it.
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.bin("43737400");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"bin": "43737400",
"prefix": "43737400",
"country": "VN",
"issuer": "UOB",
"brand": null,
"type": "credit",
"prepaid": null
}import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.bin("40114812");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"bin": "40114812",
"prefix": "401148",
"country": "VN",
"issuer": "Techcombank",
"brand": "visa",
"type": "debit",
"prepaid": null
}Unknown prefixes and missing fields
A well-formed unknown prefix returns HTTP 200 with your normalized bin and null metadata. A known prefix can also have null issuer, country, brand, type, or prepaid details. In particular, prepaid: null means unknown, not false.
Coverage is partial. These are recorded prefix details, not a check of current allocation, card activity, ownership, available funds, or payment acceptance.
?deep=true adds deep: {} with no additional fields or charge.
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.bin("000000");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"bin": "000000",
"prefix": null,
"country": null,
"issuer": null,
"brand": null,
"type": null,
"prepaid": null
}Questions? Email