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.

1.4M+ BIN ranges, 98% accuracy, 200+ countries

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 payment security - trusted by BINSearchLookup
F5 cyber security - trusted by BINSearchLookup
YKK zipper factory - trusted by BINSearchLookup
Klaviyo tech - trusted by BINSearchLookup
★★★★★
4.8/5

854 Verified Merchant Reviews
From Stripe Partners, PayPal Partners

Proven Results
64%

Average Fraud Reduction

47%

Chargeback Decrease

Security Certified
  • ✓ Payments processed via Stripe (PCI DSS Level 1 certified, 3D Secure enforced). We are not PCI DSS Level 1 certified, but follow best practices and never store card data.
  • SOC 1
  • 99% Uptime SLA

The Fraud Problem You're Facing Right Now

$340–$1,200

Cost per fraudulent order (2.5–3.5× multiplier including chargebacks, fees, lost merchandise)

5+ Chargebacks

Triggers merchant account review & 25 - 50% rate increases

8.4× Higher Risk

Prepaid cards generate chargebacks at 8.4× the rate of credit cards

Average merchant loses $50K–$200K annually to preventable fraud.

Calculate Your Potential Savings

See your exact ROI with your real business numbers

10,000
Adjust from 1,000 to 100,000
$
Your typical order value
3%
Typical fraud rate in your industry

Current Monthly Loss

Alert
$2,250

With BINLookup (-64%)

Protected
$810

Monthly Savings

$1,440

Per month, every month

ROI on Pro Plan ($99/mo)

14.5×

Start for Free. Pay Only When You Scale.

Free
  • 20 req/min
  • 1,000 requests/month
  • 1 API key
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file

No credit card required

Starter
  • 60 req/min
  • 10,000 requests/month
  • 3 API keys
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file
⭐ Most Popular - Best ROI
Pro
  • 280 req/min
  • 78,000 requests/month
  • 15 API keys
  • Encrypted data
  • SSO included
  • Format: CSV, JSON, or DB in a zip file

Avg merchant saves $1,440/month

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
  • Custom SLA Contracts
All plans, including Free, reset on the 1st of every month. Free is forever. Paid plans include SSO and advanced encryption.

What Happens After You Sign Up?

You'll be preventing fraud in 15 minutes. Here's exactly what to expect:

1

Instant Account Setup

Enter your email, create password. No credit card. Takes 30 seconds. You're immediately logged into your dashboard.

Time: 30 seconds
2

Get Your API Keys

Dashboard shows your X-API-Key and X-User-ID. Click "Copy" button. These are your credentials to authenticate requests.

Time: 10 seconds
3

Copy/Paste Code

Choose your language (JS, Python, PHP, etc.). Copy pre-written code. Paste into your checkout flow. Change API keys to yours.

Time: 5 minutes
4

Test With Real BIN

Try BIN 559994 (KOHO prepaid). See it detect "PREPAID" in Category field. Verify your blocking logic works correctly.

Time: 2 minutes
5

Deploy to Production

Push to production. Monitor dashboard for real-time stats. Watch as prepaid cards get blocked automatically at checkout.

Time: 7 minutes

Start Saving Money

Fraud attempts blocked. Chargebacks prevented. Watch your fraud rate drop 64% within 30 days. Upgrade when ROI is clear.

Results in 30 days
Get Started Now - Free Forever Plan

Total setup time: 15 minutes • No credit card • Cancel anytime

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.
Technical Documentation

How Do BIN / IIN Numbers Work?

Complete technical guide to Bank Identification Numbers and their role in payment security

A Bank Identification Number (BIN), also known as Issuer Identification Number (IIN), is the first 6 to 8 digits of a payment card number. These digits serve as a unique identifier that reveals critical information about the card: the issuing bank or financial institution, the card network (Visa, Mastercard, American Express, Discover), the card type (credit, debit, prepaid, or virtual), and the country of origin.

The Anatomy of a BIN Number

BIN numbers follow the international ISO/IEC 7812 standard for identification cards. Hover over each section to explore what each digit position reveals:

5599
9412
3456
7898
CARDHOLDER
JOHN DOE
EXPIRES
12/28

Hover over the card digits above to explore each section

Real-World Example

BIN 559994 (KOHO Mastercard)

BIN: 559994
Brand: MASTERCARD
Type: DEBIT
Category: PREPAID
Issuer: KOHO Financial Inc.
Country: Canada (CA)
Breakdown
5 = Mastercard (Banking/Financial MII)
59994 = KOHO Financial Incorporated
Canadian fintech offering prepaid debit cards with no credit check required

How BIN Lookup Prevents Fraud in Real-Time

When a customer enters their card details at checkout, instantly verify the BIN to detect high-risk transactions before processing the payment.

Prepaid Card Detection

Block prepaid, virtual, or disposable cards commonly used in fraud schemes and to avoid recurring charges.

Geographic Mismatch

Flag transactions where billing address doesn't match the card's issuing country—a common fraud indicator.

Card Type Verification

Verify if the card is credit, debit, or prepaid. Control which card types you accept for stronger protection.

Issuer Validation

Identify the issuing bank for tiered risk scoring based on historical fraud patterns and databases.

Proven Results from 1,200+ Merchants

64%
Average Fraud Reduction
47%
Chargeback Decrease
$12.4K
Monthly Savings (Mid-Size)
3-5x
ROI Within 90 Days

Why BIN Lookup Delivers Outsized ROI

Each prevented fraud case doesn't just save the transaction amount - it avoids multiple downstream costs that compound the financial impact:

Hidden Costs of a Single Fraudulent Transaction:

Chargeback fees: $15.00 per dispute (Stripe)
Lost merchandise: Full product cost
Processing fees: 2.9% + $0.30 (non-refundable)
Shipping costs: Unrecoverable
Staff time: $50-200 investigation hours
Risk penalties: Higher rates if >0.75% chargeback rate

Total cost per fraud case: Typically 2.5-3.5x the transaction amount

The Math: If BIN lookup prevents just 5 fraudulent $100 orders per month, you save $1,250-$1,750 monthly - while our Pro plan costs only $99/month. That's a 12-17x return on investment.

Common Use Cases Across Industries

E-Commerce & Digital Goods

Block prepaid cards on high-value digital purchases (software licenses, game codes, gift cards) where fraudsters can instantly resell stolen products. Reduce fraud by 78% on digital goods.

SaaS & Subscription Services

Prevent virtual/disposable card abuse where users sign up for free trials with Privacy.com or Revolut virtual cards to avoid recurring charges. Increase trial-to-paid conversion by 64%.

Travel & Hospitality

Verify international bookings by matching billing country with card issuing country. Flag mismatches for manual review to prevent cross-border fraud.

Marketplace Platforms

Protect sellers by screening buyer payment methods. Implement seller protection policies that exclude high-risk card types from coverage disputes.

Payment Processors

Route transactions intelligently based on card type, apply dynamic risk scoring, and optimize approval rates while minimizing fraud exposure.

How to Implement BIN Lookup

STEP 1
Extract the BIN from Card Number
// JavaScript Example
const cardNumber = "5599941234567890";
const bin = cardNumber.slice(0, 8); // "559994"
STEP 2
Query BINSearchLookup API
curl -H "X-API-Key: your_key_here" \
     -H "X-User-ID: your_id_here" \
     "https://api.binsearchlookup.com/lookup?bin=559994"
STEP 3
Block High-Risk Cards
// Block if prepaid/virtual
if (response.data.Category.toUpperCase().includes('PREPAID')) {
  blockTransaction("Prepaid cards not accepted");
}

Ready to Reduce Fraud by 64%?

Start with 1,000 free API requests per month. Create a free account - no credit card required.

No credit card required • 1,000 free requests/month • Full API access

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;

  // 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,
        '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' };
    }

    // Check if category contains PREPAID (handles "PREPAID", "PREPAID CARD", "BUSINESS PREPAID", etc.)
    const normalized = category.toUpperCase();
    const isPrepaid = normalized.includes('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 (.env file)
export X_API_KEY=bsl_your_api_key_here
export X_USER_ID=your_user_id_here
export BIN_LOOKUP_ENV=production
                            
curl-example.sh
# Direct API call with curl
curl -H "X-API-Key: bsl_your_api_key_here" \
     -H "X-User-ID: your-user-id-here" \
     "https://api.binsearchlookup.com/lookup?bin=559994"

# Example response:
{
  "bin": "559994",
  "success": true,
  "data": {
    "BIN": "559994",
    "Brand": "MASTERCARD",
    "Type": "DEBIT",
    "Category": "PREPAID",
    "Issuer": "KOHO FINANCIAL INCORPORATED",
    "isoCode2": "CA",
    "isoCode3": "CAN",
    "CountryName": "CANADA",
    "similarBins": [],
    "cached": false,
    "responseTime": 2
  },
  "statusCode": 200,
  "responseTime": 15
}
                            

Complete API Documentation

For detailed integration guides, advanced features, SDKs, authentication methods, rate limits, and API reference, visit our comprehensive developer documentation.

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.X_API_KEY,  // e.g., bsl_6d8f0738da8fb792...
  userId: process.env.X_USER_ID,  // e.g., 0cceab85-bfe0-4267-990e-ba178d49658a
  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);
  }
}
                            

BIN Lookup Frequently Asked Questions

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

What is BIN lookup and how does it work?
BIN lookup (Bank Identification Number) is the process of verifying the first 6-8 digits of a payment card to identify the issuing bank, card brand, card type, and country of origin.
What information can a BIN lookup return, and how accurate is it?
Typical fields include BIN/IIN, Brand (network), Type (credit/debit/prepaid), Category (product class), Issuer Name, isoCode2/isoCode3 and CountryName. Accuracy depends on sources and update frequency.
Is it legal to lookup BIN details and how to use them responsibly?
BIN lookups are legal for verification, fraud filtering, and reconciliation. Use results only for legitimate business purposes.
Why does a BIN lookup show prepaid or debit card when the holder says otherwise?
The BIN/IIN indicates the product type at issuance. Issuers may reissue, reprogram, or remap ranges over time.
Can BIN lookup detect card country and currency?
BIN lookup returns the issuing country via isoCode2/isoCode3 and CountryName. Currency is not reliably encoded in IIN/BIN data.
Do BINs identify the exact bank branch or personal account?
No. The IIN/BIN identifies the issuing institution and product block but does not identify individual branches or account holders.
How to detect and block prepaid cards with BIN lookup?
To detect prepaid cards, check the Category field in the API response. If it contains "PREPAID" (case insensitive), the card is prepaid.
What's the difference between 6-digit and 8-digit BINs?
BIN and IIN are functionally identical. 'Bank Identification Number' (BIN) was the original term. 'Issuer Identification Number' (IIN) is the updated ISO standard term.
How should merchants use BIN lookups to reduce fraud and chargebacks?
Use BIN data as one signal among others in a layered defense.
Is BIN lookup the same as IIN lookup?
BIN and IIN refer to the same concept, but the terms reflect different conventions.
How to interpret BIN fields like Brand, Type, and Category?
Brand = payment network (e.g., Visa, Mastercard); Type = credit, debit, or prepaid; Category = product class or program name.
What programming languages are supported for API integration?
Yes! We provide complete REST API access with detailed documentation, code examples in JavaScript, Python, PHP and SDKs.
How often is the BIN database updated?
Our database receives weekly updates from network and issuer sources, with critical changes processed within 24-48 hours.
How do you handle data privacy and security?
We are PCI DSS compliant and follow strict data protection protocols. We never store full card numbers, only BIN data.
What to do if a BIN lookup returns empty results or errors?
Empty results may indicate unassigned BIN ranges, test card numbers, or coverage gaps.
How much does BIN lookup service cost?
We offer a free tier with 100 requests/hour for testing and small-scale use. Paid plans start at $19/month for 10,000 requests.

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.

How accurate is BIN lookup in 2025?

Modern BIN lookup services like BINSearchLookup maintain 99% accuracy through daily database updates.

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.

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 Free with 1,000 Requests/Month