Skip to main content

Credit card BIN validation using bin-cc data

Project description

Credit Card Identifier - Python Library

Python library for credit card BIN validation and identification.

Supported Card Brands

  • American Express (amex)
  • Aura
  • BaneseCard
  • Diners Club
  • Discover
  • Elo
  • Hipercard
  • JCB
  • Maestro
  • Mastercard
  • UnionPay
  • Visa

Installation

pip install creditcard-identifier

Usage

Module Functions

from creditcard_identifier import find_brand, is_supported

# Identify card brand
brand = find_brand('4012001037141112')
print(brand)  # {'name': 'visa', 'regexp_bin': '...', ...}

# Check if card is supported
supported = is_supported('4012001037141112')
print(supported)  # True

Using the Validator Class

from creditcard_identifier import CreditCardValidator

validator = CreditCardValidator()

# Identify brand
brand = validator.find_brand('4012001037141112')
print(brand['name'])  # 'visa'

# Get detailed brand info
detailed = validator.find_brand('4012001037141112', detailed=True)
print(detailed['scheme'])  # 'visa'
print(detailed['matched_pattern'])  # {'bin': '^4', 'length': [13, 16, 19], ...}

# Check if supported
supported = validator.is_supported('4012001037141112')
print(supported)  # True

# Validate CVV
valid = validator.validate_cvv('123', 'visa')
print(valid)  # True

# Get brand info
info = validator.get_brand_info('visa')
print(info['regexp_bin'])

# Get detailed brand info
detailed = validator.get_brand_info_detailed('amex')
print(detailed)

# List all brands
brands = validator.list_brands()
print(brands)
# ['amex', 'aura', 'banesecard', 'diners', 'discover', 'elo', 'hipercard', 'jcb', 'maestro', 'mastercard', 'unionpay', 'visa']

# Validate card number using Luhn algorithm
from creditcard_identifier.validator import luhn
is_valid = luhn('4012001037141112')
print(is_valid)  # True

# Or using validator instance
is_valid = validator.luhn('4012001037141112')
print(is_valid)  # True

API

Module Functions

find_brand(card_number, detailed=False)

Identify the credit card brand.

Parameters:

  • card_number (str): The credit card number
  • detailed (bool): If True, returns detailed brand info (default: False)

Returns: (dict) Brand dict or None if not found

is_supported(card_number)

Check if the card number is supported.

Parameters:

  • card_number (str): The credit card number

Returns: (bool) True if supported, False otherwise

CreditCardValidator Class

__init__()

Initialize validator with embedded brand data.

find_brand(card_number, detailed=False)

Identify the credit card brand.

Parameters:

  • card_number (str): The credit card number
  • detailed (bool): If True, returns detailed brand info with matched pattern

Returns: (dict) Brand dict or None if not found

is_supported(card_number)

Check if card number is supported.

Parameters:

  • card_number (str): The credit card number

Returns: (bool) True if supported, False otherwise

validate_cvv(cvv, brand_or_name)

Validate CVV for a specific brand.

Parameters:

  • cvv (str): CVV code
  • brand_or_name (str | dict): Brand name or brand dict from find_brand

Returns: (bool) True if valid, False otherwise

get_brand_info(brand_name)

Get information about a specific brand.

Parameters:

  • brand_name (str): Brand name

Returns: (dict) Brand information or None if not found

get_brand_info_detailed(scheme)

Get detailed information about a specific brand.

Parameters:

  • scheme (str): Scheme name (e.g., 'visa', 'mastercard')

Returns: (dict) Detailed brand information or None if not found

list_brands()

List all supported brands.

Returns: (list) List of brand names

luhn(number)

Validate a credit card number using the Luhn algorithm.

Parameters:

  • number (str): Credit card number (digits only)

Returns: (bool) True if valid according to Luhn algorithm

Raises: TypeError if input is not a string

Data Source

This library uses the BIN data from the bin-cc project.

The data is embedded directly in the package for optimal performance.

Development

Install in Development Mode

cd libs/python
pip install -e .

Run Tests

python -m pytest tests/

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

creditcard_identifier-2.1.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

creditcard_identifier-2.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file creditcard_identifier-2.1.0.tar.gz.

File metadata

  • Download URL: creditcard_identifier-2.1.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for creditcard_identifier-2.1.0.tar.gz
Algorithm Hash digest
SHA256 d0cc02582b684f36f1f8b627503a884206a1305e3e71cc1a86381cfd1bc2b1ad
MD5 281ea93600e3bad8e913cacfc0225e5c
BLAKE2b-256 a7af816ddfa58b81589b009eaa2bc78ada8440b9bf7a283c9786ef1731ee25f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for creditcard_identifier-2.1.0.tar.gz:

Publisher: release.yml on renatovico/bin-cc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file creditcard_identifier-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for creditcard_identifier-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2388dd63fca74e38c0bc7bc67588ab2f13cfb37c868db771907e2031d7e54588
MD5 afd3c22a49e28e86fe2c92c8597fbeb4
BLAKE2b-256 ddd2bd7ef8900829919f743287d27d7774f2c755802fcb179a0d5372e00709ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for creditcard_identifier-2.1.0-py3-none-any.whl:

Publisher: release.yml on renatovico/bin-cc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page