bankcard-bin-international
International BIN Lookup
Identify card scheme (Visa/Mastercard/JCB/AMEX), card type, issuing country and bank from the first 6-8 digits of any international card number.
Usage Cost
10 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/bankcard-bin-internationalcURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/bankcard-bin-international' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "bankcard": "4242424242"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/bankcard-bin-international"
payload = {
"bankcard": "4242424242"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/bankcard-bin-international"
payload := []byte("{\n \"bankcard\": \"4242424242\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java Example
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"bankcard\": \"4242424242\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/bankcard-bin-international"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/bankcard-bin-international';
$payload = "{\n \"bankcard\": \"4242424242\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;Response Example
{
"code": 200,
"message": "success",
"data": {
"scheme": "Visa",
"card_type": "Credit",
"country_name": "United states of america",
"country_code": "us",
"country_flag": "🇺🇸",
"currency": "United States dollar",
"currency_code": "USD",
"bank_name": "JPMORGAN CHASE BANK NA"
}
}Examples illustrate the response structure. Actual results depend on the API response.
- Authentication
- Send X-API-Key in request headers
- Rate limit
- 600 req/min
- Timeout
- 10000 ms
Send your API Key in the X-API-Key header from your backend.
Check both HTTP status and business fields before treating a call as successful.
Use retries and backoff together with rate limits in high-frequency scenarios.
Request Fields
Send requests from your server with the key in the X-API-Key header.
Request Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| bankcard | string | Unspecified | Unspecified | 4242424242 |
Request Example
{
"bankcard": "4242424242"
}- Authentication
- Send X-API-Key in request headers
- Rate limit
- 600 req/min
- Timeout
- 10000 ms
Response Fields
Examples illustrate the response structure. Actual results depend on the API response.
Response Fields
The fields below are derived from example JSON for integration reference only.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| code | number | Unspecified | Unspecified | 200 |
| message | string | Unspecified | Unspecified | success |
| data | object | Unspecified | Unspecified | {...} |
| data.scheme | string | Unspecified | Unspecified | Visa |
| data.card_type | string | Unspecified | Unspecified | Credit |
| data.country_name | string | Unspecified | Unspecified | United states of america |
| data.country_code | string | Unspecified | Unspecified | us |
| data.country_flag | string | Unspecified | Unspecified | 🇺🇸 |
| data.currency | string | Unspecified | Unspecified | United States dollar |
| data.currency_code | string | Unspecified | Unspecified | USD |
| data.bank_name | string | Unspecified | Unspecified | JPMORGAN CHASE BANK NA |
Response Example
{
"code": 200,
"message": "success",
"data": {
"scheme": "Visa",
"card_type": "Credit",
"country_name": "United states of america",
"country_code": "us",
"country_flag": "🇺🇸",
"currency": "United States dollar",
"currency_code": "USD",
"bank_name": "JPMORGAN CHASE BANK NA"
}
}API overview
Capabilities, use cases, limitations, and frequently asked questions.
International BIN Lookup
Given the first 6 digits (BIN) of an international credit/debit card, returns:
- Card scheme (Visa, Mastercard, JCB, American Express, Discover, ...)
- Card type (Credit / Debit / Prepaid)
- Issuing country + flag + currency
- Issuing bank name / website / phone
Differences vs. `bankcard-info`
bankcard-infocovers only mainland China cards- This API covers global card schemes with issuing-country identification