No release in over a year
Fetch credit card info from www.bincodes.com with configurable fallback to https://github.com/hugolantaume/credit_card_bins data. Also provides caching results for decreasing bincodesAPI request count/
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

CreditCardInfo

The Issuer Identification Number (IIN), previously known as Bank Identification Number (BIN) is the first six numbers of a credit card. These identify the institution that issued the card to the card holder and provide useful information about the card that can help make your payments flow smarter.

Uses 3 data providers: * First binlist.net API. * Second bincodes.com API (require registration and api key). * Third 'credit_card_bins' gem data.

Installation

Add this line to your application's Gemfile:

gem 'credit_card_info'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install credit_card_info

Configuration

CreditCardInfo::Config.configure do |config|
    # Provider request order
    config.data_providers = %w[Binlist Bincodes CreditCardBins]

    config.bincodes.api_key = "your_api_key"
    config.bincodes.api_url = "https://api.bincodes.com"
    
    # class for make HttpRequests
    config.bincodes.http_klass = Net::HTTP
    # set timeout for api request (10 by default)
    config.bincodes.timeout = 10

    config.binlist.api_url = "https://lookup.binlist.net/"
    # class for make HttpRequests
    config.binlist.http_klass = Net::HTTP
    # set binlist for api request (10 by default)
    config.binlist.timeout = 10
    
    # set cache provider class, Rails.cache by default when using in Rails application
    config.cache.provider = Rails.cache
    # set cache keys lifeitime, default is 31 day
    config.cache.ttl = 2678400
    # set cache keys prefix, result key will be prefix:bin
    config.cache.key_prefix = "ccinfo"
    
    # also you can use custom logger instance, default is Rails.logger for Rails apps, and stdout for others
    config.logger = Logger.new($stdout)
end

Usage

You just need make call:

bin = '515735'
CreditCardInfo.fetch(bin)
# { 
#   bin: "515735", 
#   bank: "CITIBANK, N.A.", 
#   card: "MASTERCARD", 
#   type: "CREDIT", 
#   level: "WORLD CARD", 
#   country: "United States", 
#   countrycode: "US"
# }

By default that call will be search firstly via binlist.net, and if find nothing will search via bincodes.com, and if find nothing will search via credit_card_bins gem. You can change requests order, by data_providers section.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request