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.
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"}}
]}.
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).
{ok, <<"5500005555555559">>, mastercard} = erlcard:valid_credit_card(<<"5500005555555559">>, mastercard).
{ok, <<"5500005555555559">>, mastercard} = erlcard:valid_credit_card(<<"5500005555555559">>).
true = erlcard:valid_cvc(<<"123">>, visa).
To execute the test suite, run the following command from the project's root directory:
make ct