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.bincodes.http_klass = Net::HTTP
    # set binlist for api request (10 by default)
    config.bincobinlistdes.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