// staticdata.dev — creditCardTypes
// Generated file. Do not edit by hand.
// SPDX-License-Identifier: MIT

export const creditCardTypes = [
  {
    "brand": "Visa",
    "pattern": "^4[0-9]{0,}$",
    "lengths": [
      13,
      16,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "4"
    ]
  },
  {
    "brand": "Mastercard",
    "pattern": "^(5[1-5][0-9]{0,}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{0,})$",
    "lengths": [
      16
    ],
    "cvvLength": 3,
    "iinRanges": [
      "51-55",
      "2221-2720"
    ]
  },
  {
    "brand": "American Express",
    "pattern": "^3[47][0-9]{0,}$",
    "lengths": [
      15
    ],
    "cvvLength": 4,
    "iinRanges": [
      "34",
      "37"
    ]
  },
  {
    "brand": "Discover",
    "pattern": "^(6011[0-9]{0,}|64[4-9][0-9]{0,}|65[0-9]{0,}|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[01][0-9]|92[0-5])[0-9]{0,})$",
    "lengths": [
      16,
      17,
      18,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "6011",
      "644-649",
      "65",
      "622126-622925"
    ]
  },
  {
    "brand": "JCB",
    "pattern": "^35(2[89]|[3-8][0-9])[0-9]{0,}$",
    "lengths": [
      16,
      17,
      18,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "3528-3589"
    ]
  },
  {
    "brand": "Diners Club",
    "pattern": "^3(?:0[0-5]|[689][0-9])[0-9]{0,}$",
    "lengths": [
      14,
      16,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "300-305",
      "36",
      "38-39"
    ]
  },
  {
    "brand": "UnionPay",
    "pattern": "^62[0-9]{0,}$",
    "lengths": [
      16,
      17,
      18,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "62"
    ]
  },
  {
    "brand": "Maestro",
    "pattern": "^(5018|5020|5038|5893|6304|6759|676[1-3])[0-9]{0,}$",
    "lengths": [
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "5018",
      "5020",
      "5038",
      "5893",
      "6304",
      "6759",
      "6761",
      "6762",
      "6763"
    ]
  },
  {
    "brand": "Mir",
    "pattern": "^220[0-4][0-9]{0,}$",
    "lengths": [
      16,
      17,
      18,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "2200-2204"
    ]
  },
  {
    "brand": "Elo",
    "pattern": "^(401178|401179|431274|438935|451416|457393|457631|457632|504175|506699|5067[0-6][0-9]|50677[0-8]|509[0-9][0-9]{2}|627780|636297|636368|65003[1-3]|65003[5-9]|65004[0-9]|65005[0-1]|65040[5-9]|6504[1-3][0-9]|65048[5-9]|65049[0-9]|6505[0-2][0-9]|65053[0-8]|65054[1-9]|6505[5-8][0-9]|65059[0-8]|65070[0-9]|65071[0-8]|65072[0-7]|65090[1-9]|6509[1-6][0-9]|65097[0-8]|65165[2-9]|6516[6-7][0-9]|6550[0-1][0-9]|65502[1-9]|6550[3-4][0-9]|65505[0-8])[0-9]{0,}$",
    "lengths": [
      16
    ],
    "cvvLength": 3,
    "iinRanges": [
      "401178",
      "401179",
      "431274",
      "438935",
      "451416",
      "457393",
      "457631",
      "457632",
      "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"
    ]
  },
  {
    "brand": "Hipercard",
    "pattern": "^(606282|3841(0[0-9]|4[0-9]|6[0-9]|8[0-9]))[0-9]{0,}$",
    "lengths": [
      13,
      16,
      19
    ],
    "cvvLength": 3,
    "iinRanges": [
      "606282",
      "384100-384109",
      "384140-384149",
      "384160-384169",
      "384180-384189"
    ]
  },
  {
    "brand": "RuPay",
    "pattern": "^(508[5-9][0-9]{0,}|60698[5-9][0-9]{0,}|607[0-9]{0,}|608[0-4][0-9]{0,}|6521[5-9][0-9]{0,}|6522[0-5][0-9]{0,})$",
    "lengths": [
      16
    ],
    "cvvLength": 3,
    "iinRanges": [
      "5085-5089",
      "606985-606989",
      "607",
      "6080-6084",
      "65215-65225"
    ]
  }
] as const;

export type CreditCardType = (typeof creditCardTypes)[number];
