Start now for free

The Smarter Way to Verify Cards

Instantly look up credit card BINs. Stop fraud before it starts. Simple, powerful, and built for your peace of mind.

Start for free

Enter the first 6 to 8 digits

XXXX XXXX
Type: Card
Brand: Unknown
Category: Unknown
Card Validity: False
Issuer: Unknown Bank
Bank Phone: Not available
Country
Unknown
Bank website Not available

Other BIN/INN by the bank

•••••• •••••• •••••• •••••• •••••• •••••• •••••• •••••• ••••••

Sign up for free to unlock the full result

trusted by

Netgate
F5
YKK
Klaviyo

How Do BIN / INN Numbers Work?

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or- less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

How BIN Lookup Prevents Fraud

Four simple steps to integrate powerful fraud prevention into your payment flow

1

Extract BIN

Identify the first 6-8 digits of the payment card. Never use full card numbers for verification.

const bin = cardNumber.slice(0, 8);
2

API Lookup

Query our real-time API to get comprehensive card data including type, issuer, and country.

const response = await fetch(`/api/lookup?bin=${bin}`);
3

Analyze Data

Check card type, country, and issuer against your fraud prevention rules.

if (data.type === 'PREPAID') {
  blockTransaction();
}
4

Prevent Fraud

Automatically block high-risk transactions while allowing legitimate customers through.

return {
  blocked: isPrepaid,
  riskScore: calculateRisk(data)
};

Enterprise-Grade Implementation

Production-ready code with proper error handling, timeouts, and security best practices

prepaid-detection.js
async function checkBinAndBlockIfPrepaid(bin, opts = {}) {
  // Validate input parameters
  if (!bin || typeof bin !== 'string') {
    return { blocked: true, error: 'Invalid bin argument' };
  }

  const apiKey = opts.apiKey;
  const userId = opts.userId;
  const timeoutMs = typeof opts.timeoutMs === 'number' ? opts.timeoutMs : 5000;
  const treatSubstring = opts.treatSubstring !== undefined ? opts.treatSubstring : true;

  // Security: Never embed API keys in client-side code
  if (!apiKey) {
    return { blocked: true, error: 'Missing apiKey, do not place real keys in client-side code' };
  }

  const controller = new AbortController();
  const id = setTimeout(() => controller.abort(), timeoutMs);

  const url = 'https://api.binsearchlookup.com/lookup?bin=' + encodeURIComponent(bin);

  try {
    const res = await fetch(url, {
      method: 'GET',
      headers: {
        'X-API-Key': apiKey,
        ...(userId ? { 'X-User-ID': userId } : {})
      },
      signal: controller.signal
    });

    clearTimeout(id);

    if (!res.ok) {
      return { blocked: true, error: 'Lookup failed, HTTP ' + res.status };
    }

    const body = await res.json();

    if (!body || !body.success || !body.data) {
      return { blocked: true, raw: body, error: 'Unexpected lookup response' };
    }

    const categoryRaw = body.data.Category;
    const category = typeof categoryRaw === 'string' ? categoryRaw.trim() : '';

    if (!category) {
      // Conservative blocking when category is missing
      return { blocked: true, category, raw: body, error: 'Missing category' };
    }

    const normalized = category.toUpperCase();
    const isPrepaid = treatSubstring ? normalized.includes('PREPAID') : normalized === 'PREPAID';

    return { blocked: !!isPrepaid, category, raw: body };
  } catch (err) {
    clearTimeout(id);
    const message = err && err.name === 'AbortError' ? 'Lookup timeout' : (err && err.message) || 'Network error';
    // Conservative blocking on network errors
    return { blocked: true, error: message };
  }
}

export { checkBinAndBlockIfPrepaid };
ENTERPRISE INTEGRATION

Production-Ready in 15 Minutes

Follow our battle-tested implementation guide trusted by Fortune 500 companies and financial institutions

1

Install SDK & Configure

Add our battle-tested SDK to your project and configure with your API keys. Includes built-in retry logic, circuit breakers, and comprehensive error handling.

terminal

npm install @binsearchlookup/sdk
# or
yarn add @binsearchlookup/sdk

# Configure with environment variables
export BIN_LOOKUP_API_KEY=sk_live_your_api_key_here
export BIN_LOOKUP_ENV=production
                            
2

Initialize Client

Create a configured client instance with automatic retries, timeout handling, and built-in monitoring.

binlookup-client.js

import { BinLookupClient } from '@binsearchlookup/sdk';

const client = new BinLookupClient({
  apiKey: process.env.BIN_LOOKUP_API_KEY,
  timeout: 5000,
  maxRetries: 3,
  environment: 'production',
  // Enterprise features
  circuitBreaker: {
    threshold: 0.5,
    interval: 30000
  },
  monitoring: {
    enabled: true,
    sampleRate: 0.1
  }
});
                            
3

Implement Fraud Detection

Add real-time BIN verification to your payment flow with comprehensive fraud rules and risk scoring.

fraud-detection.js

async function validatePayment(paymentData) {
  try {
    const bin = paymentData.cardNumber.slice(0, 8);

    // Real-time BIN lookup with automatic retries
    const result = await client.lookup(bin, {
      includeRiskScore: true,
      includeIssuerDetails: true
    });

    // Enterprise fraud rules
    const riskRules = {
      blockPrepaid: result.cardType === 'PREPAID' && paymentData.amount > 1000,
      highRiskCountry: result.countryRiskLevel === 'HIGH',
      unknownIssuer: !result.issuer.verified,
      velocityCheck: await checkTransactionVelocity(paymentData)
    };

    return {
      approved: !Object.values(riskRules).includes(true),
      riskScore: result.riskScore,
      details: result,
      rulesTriggered: Object.keys(riskRules).filter(key => riskRules[key])
    };

  } catch (error) {
    // Fallback strategy for API failures
    return await handleFallbackValidation(paymentData);
  }
}
                            

Flexible Pricing for Every Need

Free
  • 20 req/min
  • 1,000 requests/month
  • 1 API key
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file
Starter
  • 60 req/min
  • 10,000 requests/month
  • 3 API keys
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file
Pro
  • 280 req/min
  • 78,000 requests/month
  • 15 API keys
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file
Enterprise
  • 768 req/min
  • Unlimited requests/month
  • 190 API keys
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file
  • Resell isn't allowed, contact us for discussion
All plans, including Free, reset on the 1st of every month. Free is forever. Paid plans include SSO and advanced encryption.

All Countries Dataset

Single Country Dataset
  • Full dataset for one country
  • Personal or your e-commerce use only
  • No commercial resale or business use allowed
  • Format: CSV, JSON, or DB in a zip file
  • One-time purchase
Dataset Update
  • Receive the latest update for your purchased dataset
  • Price is per country
  • Format: CSV, JSON, or DB in a zip file
  • One-time update purchase
All Countries Dataset
  • Full dataset for all countries
  • Personal or your e-commerce use only
  • No commercial resale or business use allowed
  • Format: CSV, JSON, or DB in a zip file
  • One-time purchase
All Countries - Commercial License
  • Full dataset for all countries
  • Commercial resale and business use allowed
  • Sell data or build your own business
  • Format: CSV, JSON, or DB in a zip file
  • One-time purchase
You can purchase a dataset for a single country, but commercial use is not allowed. If you want to buy two countries, the price is $6,200 + $6,200 per country unless you select the All Countries Dataset. For commercial resale or distribution, you must choose the All Countries - Commercial License. Data is delivered in CSV, JSON, or DB format packed in a zip file.

BIN Lookup Frequently Asked Questions

Complete guide to Bank Identification Numbers, card verification, fraud prevention, and BINSearchLookup API integration - Updated January 2025

Quick Answers About BIN Lookup

Is BIN lookup legal?

Yes, BIN lookup is completely legal. BIN numbers are public information used for payment routing and fraud prevention. Looking up a BIN does NOT expose full card numbers, CVV codes, or personal information. BIN data is published by card networks (Visa, Mastercard) and is used by legitimate businesses worldwide for transaction validation.

How accurate is BIN lookup in 2025?

Modern BIN lookup services like BINSearchLookup maintain 99.8% accuracy through daily database updates. Our database contains over 450,000 BIN records from 200+ countries. Accuracy is verified through partnerships with major card networks and financial institutions.

Can BIN lookup reduce fraud by 64%?

Yes, our 2024 study of 1,203 merchants showed 64% average fraud reduction. The study analyzed 2.4 million transactions over 12 months with statistical significance (p < 0.001). BIN verification helps detect prepaid cards, identify geographic mismatches, and validate card authenticity in real-time.

Any questions?

Talk to our sales team to learn more about how our pricing works.

We believe in building value, not hype

Integrating the BIN Lookup API was a game changer for our e-commerce site. Fraudulent transactions dropped dramatically, and our customers feel much safer. Highly recommended!

Arash

The real-time card verification saved us countless hours in manual checks. Support is responsive, and setup was effortless. Our payment process is now seamless and secure.

John

As a developer, I appreciate the clear documentation and fast API responses. Our team reduced chargebacks by over 60% since using this tool. It's a must-have for any online business.

Steve

TL;DR: Don't wait for the future. Build it.

Start now