credit-card-type
Version:
A library for determining credit card type
305 lines (304 loc) • 7.01 kB
JavaScript
"use strict";
var cardTypes = {
visa: {
niceType: "Visa",
type: "visa",
patterns: [4],
gaps: [4, 8, 12],
lengths: [16, 18, 19],
code: {
name: "CVV",
size: 3,
},
},
mastercard: {
niceType: "Mastercard",
type: "mastercard",
patterns: [[51, 55], [2221, 2229], [223, 229], [23, 26], [270, 271], 2720],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: "CVC",
size: 3,
},
},
"american-express": {
niceType: "American Express",
type: "american-express",
patterns: [34, 37],
gaps: [4, 10],
lengths: [15],
code: {
name: "CID",
size: 4,
},
},
"diners-club": {
niceType: "Diners Club",
type: "diners-club",
patterns: [[300, 305], 36, 38, 39],
gaps: [4, 10],
lengths: [14, 16, 19],
code: {
name: "CVV",
size: 3,
},
},
troy: {
niceType: "Troy",
type: "troy",
patterns: [
9792,
650052,
[650082, 650083],
650092,
650161,
650170,
650173,
650175,
650268,
650271,
[650273, 650274],
[650456, 650457],
650836,
[650846, 650850],
650923,
650987,
650990,
654997,
657366,
657998,
658758,
[658767, 658768],
[65083700, 65083704],
[65085800, 65085804],
[65085900, 65085901],
65086000,
[65086100, 65086105],
[65086200, 65086203],
[65875000, 65875003],
65875009,
[65875101, 65875104],
65875200,
65875501,
65875601,
65875900,
[65876000, 65876002],
[65876100, 65876103],
65876110,
[65876115, 65876116],
[65876200, 65876201],
65876500,
[65876504, 65876505],
[65876600, 65876602],
[65877100, 65877101],
[65877600, 65877602],
65877700,
[65877801, 65877802],
[65878200, 65878202],
[65878300, 65878311],
[65878400, 65878405],
[65878500, 65878505],
[65878600, 65878601],
65879800,
65880800,
65880900,
],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: "CVV",
size: 3,
},
},
discover: {
niceType: "Discover",
type: "discover",
patterns: [6011, [644, 649], 65],
gaps: [4, 8, 12],
lengths: [16, 19],
code: {
name: "CID",
size: 3,
},
},
jcb: {
niceType: "JCB",
type: "jcb",
patterns: [2131, 1800, [3528, 3589]],
gaps: [4, 8, 12],
lengths: [16, 17, 18, 19],
code: {
name: "CVV",
size: 3,
},
},
unionpay: {
niceType: "UnionPay",
type: "unionpay",
patterns: [
620,
[62100, 62182],
[62184, 62187],
[62185, 62197],
[62200, 62205],
[622010, 622999],
622018,
[62207, 62209],
[623, 626],
6270,
6272,
6276,
[627700, 627779],
[627781, 627799],
[6282, 6289],
6291,
6292,
810,
[8110, 8131],
[8132, 8151],
[8152, 8163],
[8164, 8171],
],
gaps: [4, 8, 12],
lengths: [14, 15, 16, 17, 18, 19],
code: {
name: "CVN",
size: 3,
},
},
maestro: {
niceType: "Maestro",
type: "maestro",
patterns: [
493698,
[500000, 504174],
[504176, 506698],
[506779, 508999],
[56, 59],
63,
67,
6,
],
gaps: [4, 8, 12],
lengths: [12, 13, 14, 15, 16, 17, 18, 19],
code: {
name: "CVC",
size: 3,
},
},
elo: {
niceType: "Elo",
type: "elo",
patterns: [
401178,
401179,
438935,
457631,
457632,
431274,
451416,
457393,
504175,
[506699, 506778],
[509000, 509999],
627780,
636297,
636368,
[650031, 650033],
[650035, 650051],
[650405, 650439],
[650485, 650538],
[650541, 650598],
[650700, 650718],
[650720, 650727],
[650901, 650978],
[651652, 651679],
[655000, 655019],
[655021, 655058],
],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: "CVE",
size: 3,
},
},
mir: {
niceType: "Mir",
type: "mir",
patterns: [[2200, 2204]],
gaps: [4, 8, 12],
lengths: [16, 17, 18, 19],
code: {
name: "CVP2",
size: 3,
},
},
hiper: {
niceType: "Hiper",
type: "hiper",
patterns: [637095, 63737423, 63743358, 637568, 637599, 637609, 637612],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: "CVC",
size: 3,
},
},
hipercard: {
niceType: "Hipercard",
type: "hipercard",
patterns: [606282],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: "CVC",
size: 3,
},
},
naranja: {
niceType: "Naranja",
type: "naranja",
patterns: [589562, 402918, 527572],
gaps: [4, 8, 12],
lengths: [16],
code: {
name: "CVV",
size: 3,
},
},
verve: {
niceType: "Verve",
type: "verve",
patterns: [
[506099, 506127],
506129,
[506133, 506150],
[506158, 506163],
506166,
506168,
506170,
506173,
[506176, 506180],
506184,
[506187, 506188],
506191,
506195,
506197,
507865,
507866,
[507868, 507877],
[507880, 507888],
507900,
507941,
],
gaps: [4, 8, 12],
lengths: [16, 18, 19],
code: {
name: "CVV",
size: 3,
},
},
};
module.exports = cardTypes;