Skip to content

silviucpp/erlcard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

erlcard

Build Status GitHub License Hex.pm Version

erlcard is an Erlang library that validates popular debit and credit card numbers against regular expressions and the Luhn algorithm. It also supports validation of the CVC code.

Installation

To add erlcard as a dependency in your rebar3 project, include the following in your rebar.config:

{deps, [
  {erlcard, ".*", {git, "https://github.com/silviucpp/erlcard.git", "master"}}
]}.

Usage

All available card types are defined in erlcard.hrl:

-define(CARD_TYPE_AMEX, amex).
-define(CARD_TYPE_DANKORT, dankort).
-define(CARD_TYPE_DINERSCLUB, dinersclub).
-define(CARD_TYPE_DISCOVER, discover).
-define(CARD_TYPE_FORBRUGSFORENINGEN, forbrugsforeningen).
-define(CARD_TYPE_JCB, jcb).
-define(CARD_TYPE_MAESTRO, maestro).
-define(CARD_TYPE_MASTERCARD, mastercard).
-define(CARD_TYPE_UNIONPAY, unionpay).
-define(CARD_TYPE_VISA, visa).
-define(CARD_TYPE_VISAELECTRON, visaelectron).

Validating Card Numbers

When the Card Type is Known

{ok, <<"5500005555555559">>, mastercard} = erlcard:valid_credit_card(<<"5500005555555559">>, mastercard).

When the Card Type is Unknown

{ok, <<"5500005555555559">>, mastercard} = erlcard:valid_credit_card(<<"5500005555555559">>).

Validating CVC Codes

true = erlcard:valid_cvc(<<"123">>, visa).

Running Tests

To execute the test suite, run the following command from the project's root directory:

make ct