:visa:

:rules: 
- :length:
  - 13
  - 16
  - 19
  :prefixes: 
  - '4'
:options: 
  :brand_name: Visa

:mastercard:

:rules: 
- :length:
  - 16
  :prefixes: 
  - '2221'
  - '2222'
  - '2223'
  - '2224'
  - '2225'
  - '2226'
  - '2227'
  - '2228'
  - '2229'
  - '223'
  - '224'
  - '225'
  - '226'
  - '227'
  - '228'
  - '229'
  - '23'
  - '24'
  - '25'
  - '26'
  - '271'
  - '2720'
  - '51'
  - '52'
  - '53'
  - '54'
  - '55'
:options: 
  :brand_name: MasterCard

:amex:

:rules: 
- :length:
  - 15
  :prefixes: 
  - '34'
  - '37'
:options: 
  :brand_name: American Express

:diners:

:rules: 
- :length:
  - 14
  :prefixes: 
  - '300'
  - '301'
  - '302'
  - '303'
  - '304'
  - '305'
  - '36'
  - '38'
:options: 
  :brand_name: Diners Club

:jcb:

:rules: 
- :length:
  - 15
  - 16
  :prefixes: 
  - '3528'
  - '3529'
  - '353'
  - '354'
  - '355'
  - '356'
  - '357'
  - '358'
- :length:
  - 15
  :prefixes: 
  - '1800'
  - '2131'
- :length:
  - 19
  :prefixes: 
  - '357266'
:options: 
  :brand_name: JCB

:solo:

:rules: 
- :length:
  - 16
  - 18
  - 19
  :prefixes: 
  - '6334'
  - '6767'

:switch:

:rules: 
- :length:
  - 16
  - 18
  - 19
  :prefixes: 
  - '633110'
  - '633312'
  - '633304'
  - '633303'
  - '633301'
  - '633300'

:maestro:

:rules: 
- :length:
  - 12
  - 13
  - 14
  - 15
  - 16
  - 17
  - 18
  - 19
  :prefixes: 
  - '500'
  - '5010'
  - '5011'
  - '5012'
  - '5013'
  - '5014'
  - '5015'
  - '5016'
  - '5017'
  - '5018'
  - '502'
  - '503'
  - '504'
  - '505'
  - '506'
  - '507'
  - '508'
  - '509'
  - '56'
  - '57'
  - '58'
  - '59'
  - '6010'
  - '6012'
  - '6013'
  - '6014'
  - '6015'
  - '6016'
  - '6017'
  - '6018'
  - '6019'
  - '602'
  - '603'
  - '604'
  - '605'
  - '6060'
  - '616788'
  - '62183'
  - '62186'
  - '62188'
  - '62198'
  - '62199'
  - '6220'
  - '622110'
  - '627089'
  - '62709601'
  - '6271'
  - '6272'
  - '6273'
  - '6274'
  - '6275'
  - '6276'
  - '6277'
  - '6278'
  - '6279'
  - '6280'
  - '6281'
  - '6294'
  - '6301'
  - '630490'
  - '633857'
  - '63609'
  - '6361'
  - '636392'
  - '636708'
  - '637043'
  - '637102'
  - '637118'
  - '637187'
  - '637529'
  - '639'
  - '640'
  - '641'
  - '642'
  - '643'
  - '670'
  - '671'
  - '672'
  - '673'
  - '674'
  - '675'
  - '677'
  - '6760'
  - '6761'
  - '6762'
  - '6763'
  - '6764'
  - '6765'
  - '6766'
  - '6768'
  - '6769'
  - '6771'
  - '679'

:unionpay:

:rules: 
- :length:
  - 16
  - 17
  - 18
  - 19
  :prefixes: 
  - '620'
  - '6210'
  - '6212'
  - '6213'
  - '6214'
  - '6215'
  - '6216'
  - '6217'
  - '621977'
  - '622126'
  - '622127'
  - '622128'
  - '622129'
  - '62213'
  - '62214'
  - '62215'
  - '62216'
  - '62217'
  - '62218'
  - '62220'
  - '62221'
  - '62222'
  - '62223'
  - '62224'
  - '62225'
  - '62226'
  - '62227'
  - '62228'
  - '62229'
  - '6223'
  - '6224'
  - '6225'
  - '6226'
  - '6227'
  - '6228'
  - '6229'
  - '623'
  - '624'
  - '625'
  - '626'
  - '62702'
  - '62704'
  - '62706'
  - '62707'
  - '6282'
  - '6283'
  - '6284'
  - '6291'
  - '6292'
  - '632062'
  - '685800'
  - '69075'
:options: 
  :skip_luhn: true
  :brand_name: China UnionPay

:dankort:

:rules: 
- :length:
  - 16
  :prefixes: 
  - '5019'

:rupay:

:rules: 
- :length:
  - 16
  :prefixes: 
  - '6061'
  - '6062'
  - '6063'
  - '6064'
  - '6065'
  - '6066'
  - '6067'
  - '6068'
  - '6069'
  - '607'
  - '608'
:options: 
  :skip_luhn: true

:hipercard:

:rules: 
- :length:
  - 19
  :prefixes: 
  - '384'
  - '606282'
  - '637095'
  - '637568'
  - '637599'
  - '637609'
  - '637612'

:elo:

:rules: 
- :length:
  - 16
  :prefixes: 
  - '401178'
  - '401179'
  - '431274'
  - '438935'
  - '451416'
  - '457393'
  - '457631'
  - '457632'
  - '504175'
  - '506699'
  - '50670'
  - '50671'
  - '506717'
  - '506718'
  - '50672'
  - '506720'
  - '506721'
  - '506724'
  - '506725'
  - '506726'
  - '506727'
  - '506728'
  - '506729'
  - '50673'
  - '50674'
  - '50675'
  - '50676'
  - '506770'
  - '506771'
  - '506772'
  - '506773'
  - '506774'
  - '506775'
  - '506776'
  - '506777'
  - '506778'
  - '50900'
  - '509013'
  - '50902'
  - '509031'
  - '509033'
  - '509035'
  - '509036'
  - '509037'
  - '509038'
  - '509039'
  - '50904'
  - '509050'
  - '509051'
  - '509052'
  - '509053'
  - '509064'
  - '509066'
  - '509067'
  - '509068'
  - '509069'
  - '509072'
  - '509074'
  - '509076'
  - '509077'
  - '509078'
  - '509079'
  - '509080'
  - '509081'
  - '509082'
  - '509083'
  - '509085'
  - '636297'
  - '636368'
  - '650031'
  - '650032'
  - '650033'
  - '650035'
  - '650036'
  - '650037'
  - '650038'
  - '650039'
  - '65004'
  - '650050'
  - '650051'
  - '650405'
  - '650406'
  - '650407'
  - '650408'
  - '650409'
  - '65041'
  - '65042'
  - '65043'
  - '650485'
  - '650486'
  - '650487'
  - '650488'
  - '650489'
  - '65049'
  - '65050'
  - '65051'
  - '65052'
  - '650530'
  - '650531'
  - '650532'
  - '650533'
  - '650534'
  - '650535'
  - '650536'
  - '650537'
  - '650538'
  - '650541'
  - '650700'
  - '650720'
  - '650901'
  - '650921'
  - '650922'
  - '650923'
  - '650924'
  - '650925'
  - '650926'
  - '650927'
  - '650928'
  - '650929'
  - '65093'
  - '65094'
  - '65095'
  - '65096'
  - '650970'
  - '650971'
  - '650972'
  - '650973'
  - '650974'
  - '650975'
  - '650976'
  - '650977'
  - '650978'
  - '651652'
  - '65500'
  - '65501'
  - '655021'
  - '65503'
  - '65504'
:options: 
  :skip_luhn: true
  :brand_name: Elo

:mir:

:rules: 
- :length:
  - 16
  :prefixes: 
  - '2200'
  - '2201'
  - '2202'
  - '2203'
  - '2204'

:discover:

:rules: 
- :length:
  - 16
  - 19
  :prefixes: 
  - '300'
  - '301'
  - '302'
  - '303'
  - '304'
  - '305'
  - '3095'
  - '36'
  - '38'
  - '39'
  - '60110'
  - '60112'
  - '60113'
  - '60114'
  - '601174'
  - '601177'
  - '601178'
  - '601179'
  - '601186'
  - '601187'
  - '601188'
  - '601189'
  - '60119'
  - '644'
  - '645'
  - '646'
  - '647'
  - '648'
  - '649'
  - '65'
:options: 
  :brand_name: Discover