clabe_mx 0.1.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -11
  3. data/lib/clabe/version.rb +1 -1
  4. data/lib/clabe.rb +987 -479
  5. metadata +5 -6
data/lib/clabe.rb CHANGED
@@ -2,515 +2,1023 @@ module Clabe
2
2
  ClabeValidation = Struct.new(:is_valid?, :bank_tag, :bank_name, :bank_code, :city, :errors)
3
3
 
4
4
  BANKS = {
5
- "002" => { tag: 'BANAMEX', name: 'Banco Nacional de México, S.A.' },
6
- "006" => { tag: 'BANCOMEXT', name: 'Banco Nacional de Comercio Exterior' },
7
- "009" => { tag: 'BANOBRAS', name: 'Banco Nacional de Obras y Servicios Públicos' },
8
- "012" => { tag: 'BBVA BANCOMER', name: 'BBVA Bancomer, S.A.' },
9
- "014" => { tag: 'SANTANDER', name: 'Banco Santander, S.A.' },
10
- "019" => { tag: 'BANJERCITO', name: 'Banco Nacional del Ejército, Fuerza Aérea y Armada' },
11
- "021" => { tag: 'HSBC', name: 'HSBC México, S.A.' },
12
- "022" => { tag: 'GE MONEY', name: 'GE Money Bank, S.A.' },
13
- "030" => { tag: 'BAJÍO', name: 'Banco del Bajío, S.A.' },
14
- "032" => { tag: 'IXE', name: 'IXE Banco, S.A.' },
15
- "036" => { tag: 'INBURSA', name: 'Banco Inbursa, S.A.' },
16
- "037" => { tag: 'INTERACCIONES', name: 'Banco Interacciones, S.A.' },
17
- "042" => { tag: 'MIFEL', name: 'Banca Mifel, S.A.' },
18
- "044" => { tag: 'SCOTIABANK', name: 'Scotiabank Inverlat, S.A.' },
19
- "058" => { tag: 'BANREGIO', name: 'Banco Regional de Monterrey, S.A.' },
20
- "059" => { tag: 'INVEX', name: 'Banco Invex, S.A.' },
21
- "060" => { tag: 'BANSI', name: 'Bansi, S.A.' },
22
- "062" => { tag: 'AFIRME', name: 'Banca Afirme, S.A.' },
23
- "072" => { tag: 'BANORTE', name: 'Banco Mercantil del Norte, S.A.' },
24
- "102" => { tag: 'ABNAMRO', name: 'ABN AMRO Bank México, S.A.' },
25
- "103" => { tag: 'AMERICAN EXPRESS', name: 'American Express Bank (México), S.A.' },
26
- "106" => { tag: 'BAMSA', name: 'Bank of America México, S.A.' },
27
- "108" => { tag: 'TOKYO', name: 'Bank of Tokyo-Mitsubishi UFJ (México), S.A.' },
28
- "110" => { tag: 'JP MORGAN', name: 'Banco J.P. Morgan, S.A.' },
29
- "112" => { tag: 'BMONEX', name: 'Banco Monex, S.A.' },
30
- "113" => { tag: 'VE POR MAS', name: 'Banco Ve por Mas, S.A.' },
31
- "116" => { tag: 'ING', name: 'ING Bank (México), S.A.' },
32
- "124" => { tag: 'DEUTSCHE', name: 'Deutsche Bank México, S.A.' },
33
- "126" => { tag: 'CREDIT SUISSE', name: 'Banco Credit Suisse (México), S.A.' },
34
- "127" => { tag: 'AZTECA', name: 'Banco Azteca, S.A.' },
35
- "128" => { tag: 'AUTOFIN', name: 'Banco Autofin México, S.A.' },
36
- "129" => { tag: 'BARCLAYS', name: 'Barclays Bank México, S.A.' },
37
- "130" => { tag: 'COMPARTAMOS', name: 'Banco Compartamos, S.A.' },
38
- "131" => { tag: 'FAMSA', name: 'Banco Ahorro Famsa, S.A.' },
39
- "132" => { tag: 'BMULTIVA', name: 'Banco Multiva, S.A.' },
40
- "133" => { tag: 'PRUDENTIAL', name: 'Prudencial Bank, S.A.' },
41
- "134" => { tag: 'WAL-MART', name: 'Banco Wal Mart de México Adelante, S.A.' },
42
- "135" => { tag: 'NAFIN', name: 'Nacional Financiera, S.N.C.' },
43
- "136" => { tag: 'REGIONAL', name: 'Banco Regional, S.A.' },
44
- "137" => { tag: 'BANCOPPEL', name: 'BanCoppel, S.A.' },
45
- "138" => { tag: 'ABC CAPITAL', name: 'ABC Capital, S.A. I.B.M.' },
46
- "139" => { tag: 'UBS BANK', name: 'UBS Banco, S.A.' },
47
- "140" => { tag: 'FÁCIL', name: 'Banco Fácil, S.A.' },
48
- "141" => { tag: 'VOLKSWAGEN', name: 'Volkswagen Bank S.A. Institución de Banca Múltiple' },
49
- "143" => { tag: 'CIBANCO', name: 'Consultoría Internacional Banco, S.A.' },
50
- "145" => { tag: 'BBASE', name: 'Banco BASE, S.A. de I.B.M.' },
51
- "147" => { tag: 'BANKAOOL', name: 'Bankaool, S.A., Institución de Banca Múltiple' },
52
- "148" => { tag: 'PAGATODO', name: 'Banco PagaTodo S.A., Institución de Banca Múltiple' },
53
- "150" => { tag: 'BIM', name: 'Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple' },
54
- "152" => { tag: 'BANCREA', name: 'Banco Bancrea, S.A., Institución de Banca Múltiple' },
55
- "156" => { tag: 'SABADELL', name: 'Banco Sabadell, S.A. I.B.M.' },
56
- "166" => { tag: 'BANSEFI', name: 'Banco del Ahorro Nacional y Servicios Financieros, S.N.C.' },
57
- "168" => { tag: 'HIPOTECARIA FEDERAL', name: 'Sociedad Hipotecaria Federal, S.N.C.' },
58
- "600" => { tag: 'MONEXCB', name: 'Monex Casa de Bolsa, S.A. de C.V.' },
59
- "601" => { tag: 'GBM', name: 'GBM Grupo Bursátil Mexicano, S.A. de C.V.' },
60
- "602" => { tag: 'MASARI CC.', name: 'Masari Casa de Cambio, S.A. de C.V.' },
61
- "604" => { tag: 'C.B. INBURSA', name: 'Inversora Bursátil, S.A. de C.V.' },
62
- "605" => { tag: 'VALUÉ', name: 'Valué, S.A. de C.V., Casa de Bolsa' },
63
- "606" => { tag: 'CB BASE', name: 'Base Internacional Casa de Bolsa, S.A. de C.V.' },
64
- "607" => { tag: 'TIBER', name: 'Casa de Cambio Tiber, S.A. de C.V.' },
65
- "608" => { tag: 'VECTOR', name: 'Vector Casa de Bolsa, S.A. de C.V.' },
66
- "610" => { tag: 'B&B', name: 'B y B Casa de Cambio, S.A. de C.V.' },
67
- "611" => { tag: 'INTERCAM', name: 'Intercam Casa de Cambio, S.A. de C.V.' },
68
- "613" => { tag: 'MULTIVA', name: 'Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin.' },
69
- "614" => { tag: 'ACCIVAL', name: 'Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa' },
70
- "615" => { tag: 'MERRILL LYNCH', name: 'Merrill Lynch México, S.A. de C.V., Casa de Bolsa' },
71
- "616" => { tag: 'FINAMEX', name: 'Casa de Bolsa Finamex, S.A. de C.V.' },
72
- "617" => { tag: 'VALMEX', name: 'Valores Mexicanos Casa de Bolsa, S.A. de C.V.' },
73
- "618" => { tag: 'ÚNICA', name: 'Única Casa de Cambio, S.A. de C.V.' },
74
- "619" => { tag: 'ASEGURADORA MAPFRE', name: 'MAPFRE Tepeyac S.A.' },
75
- "620" => { tag: 'AFORE PROFUTURO', name: 'Profuturo G.N.P., S.A. de C.V.' },
76
- "621" => { tag: 'CB ACTINBER', name: 'Actinver Casa de Bolsa, S.A. de C.V.' },
77
- "622" => { tag: 'ACTINVE SI', name: 'Actinver S.A. de C.V.' },
78
- "623" => { tag: 'SKANDIA', name: 'Skandia Vida S.A. de C.V.' },
79
- "624" => { tag: 'CONSULTORÍA', name: 'Consultoría Internacional Casa de Cambio, S.A. de C.V.' },
80
- "626" => { tag: 'CBDEUTSCHE', name: 'Deutsche Securities, S.A. de C.V.' },
81
- "627" => { tag: 'ZURICH', name: 'Zurich Compañía de Seguros, S.A.' },
82
- "628" => { tag: 'ZURICHVI', name: 'Zurich Vida, Compañía de Seguros, S.A.' },
83
- "629" => { tag: 'HIPOTECARIA SU CASITA', name: 'Hipotecaria su Casita, S.A. de C.V.' },
84
- "630" => { tag: 'C.B. INTERCAM', name: 'Intercam Casa de Bolsa, S.A. de C.V.' },
85
- "631" => { tag: 'C.B. VANGUARDIA', name: 'Vanguardia Casa de Bolsa, S.A. de C.V.' },
86
- "632" => { tag: 'BULLTICK C.B.', name: 'Bulltick Casa de Bolsa, S.A. de C.V.' },
87
- "633" => { tag: 'STERLING', name: 'Sterling Casa de Cambio, S.A. de C.V.' },
88
- "634" => { tag: 'FINCOMUN', name: 'Fincomún, Servicios Financieros Comunitarios, S.A. de C.V.' },
89
- "636" => { tag: 'HDI SEGUROS', name: 'HDI Seguros, S.A. de C.V.' },
90
- "637" => { tag: 'ORDER', name: 'OrderExpress Casa de Cambio , S.A. de C.V. AAC' },
91
- "638" => { tag: 'AKALA', name: 'Akala, S.A. de C.V., Sociedad Financiera Popular' },
92
- "640" => { tag: 'JP MORGAN C.B.', name: 'J.P. Morgan Casa de Bolsa, S.A. de C.V.' },
93
- "642" => { tag: 'REFORMA', name: 'Operadora de Recursos Reforma, S.A. de C.V.' },
94
- "646" => { tag: 'STP', name: 'Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R.' },
95
- "647" => { tag: 'TELECOMM', name: 'Telecomunicaciones de México' },
96
- "648" => { tag: 'EVERCORE', name: 'Evercore Casa de Bolsa, S.A. de C.V.' },
97
- "649" => { tag: 'SKANDIA', name: 'Skandia Operadora S.A. de C.V.' },
98
- "651" => { tag: 'SEGMTY', name: 'Seguros Monterrey New York Life, S.A de C.V.' },
99
- "652" => { tag: 'ASEA', name: 'Solución Asea, S.A. de C.V., Sociedad Financiera Popular' },
100
- "653" => { tag: 'KUSPIT', name: 'Kuspit Casa de Bolsa, S.A. de C.V.' },
101
- "655" => { tag: 'SOFIEXPRESS', name: 'J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.' },
102
- "656" => { tag: 'UNAGRA', name: 'UNAGRA, S.A. de C.V., S.F.P.' },
103
- "659" => { tag: 'OPCIONES EMPRESARIALES DEL NOROESTE', name: 'Opciones Empresariales Del Noreste, S.A. DE C.V.' },
104
- "670" => { tag: 'LIBERTAD', name: 'Libertad Servicios Financieros, S.A. De C.V.' },
105
- "846" => { tag: 'STP', name: 'Sistema de Transferencias y Pagos STP'},
106
- "901" => { tag: 'CLS', name: 'CLS Bank International' },
107
- "902" => { tag: 'INDEVAL', name: 'SD. INDEVAL, S.A. de C.V.' },
108
- "999" => { tag: 'N/A', name: 'N/A' }
5
+ '001' => { tag: 'BANXICO', name: 'Banco de México' },
6
+ '002' => { tag: 'BANAMEX', name: 'Banco Nacional de México, S.A.' },
7
+ '006' => { tag: 'BANCOMEXT', name: 'Banco Nacional de Comercio Exterior' },
8
+ '009' => { tag: 'BANOBRAS', name: 'Banco Nacional de Obras y Servicios Públicos' },
9
+ '012' => { tag: 'BBVA MEXICO', name: 'BBVA México, S.A.' },
10
+ '014' => { tag: 'SANTANDER', name: 'Banco Santander, S.A.' },
11
+ '019' => { tag: 'BANJERCITO', name: 'Banco Nacional del Ejército, Fuerza Aérea y Armada' },
12
+ '021' => { tag: 'HSBC', name: 'HSBC México, S.A.' },
13
+ '022' => { tag: 'GE MONEY', name: 'GE Money Bank, S.A.' },
14
+ '030' => { tag: 'BAJIO', name: 'Banco del Bajío, S.A.' },
15
+ '032' => { tag: 'IXE', name: 'IXE Banco, S.A.' },
16
+ '036' => { tag: 'INBURSA', name: 'Banco Inbursa, S.A.' },
17
+ '037' => { tag: 'INTERACCIONES', name: 'Banco Interacciones, S.A.' },
18
+ '042' => { tag: 'MIFEL', name: 'Banca Mifel, S.A.' },
19
+ '044' => { tag: 'SCOTIABANK', name: 'Scotiabank Inverlat, S.A.' },
20
+ '058' => { tag: 'BANREGIO', name: 'Banco Regional de Monterrey, S.A.' },
21
+ '059' => { tag: 'INVEX', name: 'Banco Invex, S.A.' },
22
+ '060' => { tag: 'BANSI', name: 'Bansi, S.A.' },
23
+ '062' => { tag: 'AFIRME', name: 'Banca Afirme, S.A.' },
24
+ '072' => { tag: 'BANORTE', name: 'Banco Mercantil del Norte, S.A.' },
25
+ '102' => { tag: 'ACCENDO BANCO', name: 'ABN AMRO Bank México, S.A.' },
26
+ '103' => { tag: 'AMERICAN EXPRESS', name: 'American Express Bank (México), S.A.' },
27
+ '106' => { tag: 'BAMSA', name: 'Bank of America México, S.A.' },
28
+ '108' => { tag: 'MUFG', name: 'MUFG Bank México, S.A' },
29
+ '110' => { tag: 'JP MORGAN', name: 'Banco J.P. Morgan, S.A.' },
30
+ '112' => { tag: 'BMONEX', name: 'Banco Monex, S.A.' },
31
+ '113' => { tag: 'VE POR MAS', name: 'Banco Ve por Mas, S.A.' },
32
+ '116' => { tag: 'ING', name: 'ING Bank (México), S.A.' },
33
+ '124' => { tag: 'DEUTSCHE', name: 'Deutsche Bank México, S.A.' },
34
+ '126' => { tag: 'CREDIT SUISSE', name: 'Banco Credit Suisse (México), S.A.' },
35
+ '127' => { tag: 'AZTECA', name: 'Banco Azteca, S.A.' },
36
+ '128' => { tag: 'AUTOFIN', name: 'Banco Autofin México, S.A.' },
37
+ '129' => { tag: 'BARCLAYS', name: 'Barclays Bank México, S.A.' },
38
+ '130' => { tag: 'COMPARTAMOS', name: 'Banco Compartamos, S.A.' },
39
+ '131' => { tag: 'FAMSA', name: 'Banco Ahorro Famsa, S.A.' },
40
+ '132' => { tag: 'MULTIVA BANCO', name: 'Banco Multiva, S.A.' },
41
+ '133' => { tag: 'ACTINVER', name: 'Banco Actinver, S.A.' },
42
+ '134' => { tag: 'WAL-MART', name: 'Banco Wal-Mart de México Adelante, S.A.' },
43
+ '135' => { tag: 'NAFIN', name: 'Nacional Financiera, S.N.C.' },
44
+ '136' => { tag: 'INTERBANCO', name: 'Inter Banco, S.A.' },
45
+ '137' => { tag: 'BANCOPPEL', name: 'BanCoppel, S.A.' },
46
+ '138' => { tag: 'ABC CAPITAL', name: 'ABC Capital, S.A. I.B.M.' },
47
+ '139' => { tag: 'UBS BANK', name: 'UBS Banco, S.A.' },
48
+ '140' => { tag: 'CONSUBANCO', name: 'Banco Fácil, S.A.' },
49
+ '141' => { tag: 'VOLKSWAGEN', name: 'Volkswagen Bank S.A. Institución de Banca Múltiple' },
50
+ '143' => { tag: 'CIBANCO', name: 'Consultoría Internacional Banco, S.A.' },
51
+ '145' => { tag: 'BBASE', name: 'Banco BASE, S.A. de I.B.M.' },
52
+ '147' => { tag: 'BANKAOOL', name: 'Bankaool, S.A., Institución de Banca Múltiple' },
53
+ '148' => { tag: 'PAGATODO', name: 'Banco PagaTodo S.A., Institución de Banca Múltiple' },
54
+ '150' => { tag: 'INMOBILIARIO', name: 'Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple' },
55
+ '151' => { tag: 'DONDE', name: 'Fundación Dondé Banco' },
56
+ '152' => { tag: 'BANCREA', name: 'Banco Bancrea, S.A., Institución de Banca Múltiple' },
57
+ '154' => { tag: 'BANCO COVALTO', name: 'Banco Covalto, S.A., Institución De Banca Múltiple' },
58
+ '155' => { tag: 'ICBC', name: 'Industrial and Commercial Bank of China' },
59
+ '156' => { tag: 'SABADELL', name: 'Banco Sabadell, S.A. I.B.M.' },
60
+ '157' => { tag: 'SHINHAN', name: 'Shinhan Bank' },
61
+ '158' => { tag: 'MIZUHO BANK', name: 'Mizuho Bank' },
62
+ '159' => { tag: 'BANK OF CHINA', name: 'Bank Of China' },
63
+ '160' => { tag: 'BANCO S3', name: 'Banco S3 México, S.A.' },
64
+ '166' => { tag: 'BABIEN', name: 'Banco Del Bienestar, Sociedad Nacional De Crédito, Institución De Banca De Desarrollo' },
65
+ '168' => { tag: 'HIPOTECARIA FED', name: 'Sociedad Hipotecaria Federal, S.N.C.' },
66
+ '600' => { tag: 'MONEXCB', name: 'Monex Casa de Bolsa, S.A. de C.V.' },
67
+ '601' => { tag: 'GBM', name: 'GBM Grupo Bursátil Mexicano, S.A. de C.V.' },
68
+ '602' => { tag: 'MASARI', name: 'Masari Casa de Cambio, S.A. de C.V.' },
69
+ '604' => { tag: 'C.B. INBURSA', name: 'Inversora Bursátil, S.A. de C.V.' },
70
+ '605' => { tag: 'VALUE', name: 'Valué, S.A. de C.V., Casa de Bolsa' },
71
+ '606' => { tag: 'ESTRUCTURADORES', name: 'Base Internacional Casa de Bolsa, S.A. de C.V.' },
72
+ '607' => { tag: 'TIBER', name: 'Casa de Cambio Tiber, S.A. de C.V.' },
73
+ '608' => { tag: 'VECTOR', name: 'Vector Casa de Bolsa, S.A. de C.V.' },
74
+ '610' => { tag: 'B&B', name: 'B y B Casa de Cambio, S.A. de C.V.' },
75
+ '611' => { tag: 'INTERCAM', name: 'Intercam Casa de Cambio, S.A. de C.V.' },
76
+ '613' => { tag: 'MULTIVA CBOLSA', name: 'Casa De Bolsa Multiva, S.A. DE C.V' },
77
+ '614' => { tag: 'ACCIVAL', name: 'Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa' },
78
+ '615' => { tag: 'MERRILL LYNCH', name: 'Merrill Lynch México, S.A. de C.V., Casa de Bolsa' },
79
+ '616' => { tag: 'FINAMEX', name: 'Casa de Bolsa Finamex, S.A. de C.V.' },
80
+ '617' => { tag: 'VALMEX', name: 'Valores Mexicanos Casa de Bolsa, S.A. de C.V.' },
81
+ '618' => { tag: 'ÚNICA', name: 'Única Casa de Cambio, S.A. de C.V.' },
82
+ '619' => { tag: 'ASEGURADORA MAPFRE', name: 'MAPFRE Tepeyac S.A.' },
83
+ '620' => { tag: 'PROFUTURO', name: 'Profuturo G.N.P., S.A. de C.V., Afore' },
84
+ '621' => { tag: 'CB ACTINBER', name: 'Actinver Casa de Bolsa, S.A. de C.V.' },
85
+ '622' => { tag: 'ACTINVE SI', name: 'Actinver S.A. de C.V.' },
86
+ '623' => { tag: 'SKANDIA', name: 'Skandia Vida S.A. de C.V.' },
87
+ '624' => { tag: 'CONSULTORÍA', name: 'Consultoría Internacional Casa de Cambio, S.A. de C.V.' },
88
+ '626' => { tag: 'CBDEUTSCHE', name: 'Deutsche Securities, S.A. de C.V.' },
89
+ '627' => { tag: 'ZURICH', name: 'Zurich Compañía de Seguros, S.A.' },
90
+ '628' => { tag: 'ZURICHVI', name: 'Zurich Vida, Compañía de Seguros, S.A.' },
91
+ '629' => { tag: 'HIPOTECARIA SU CASITA', name: 'Hipotecaria su Casita, S.A. de C.V.' },
92
+ '630' => { tag: 'CB INTERCAM', name: 'Intercam Casa de Bolsa, S.A. de C.V.' },
93
+ '631' => { tag: 'CI BOLSA', name: 'CI Casa de Bolsa, S.A. de C.V.' },
94
+ '632' => { tag: 'BULLTICK C.B.', name: 'Bulltick Casa de Bolsa, S.A. de C.V.' },
95
+ '633' => { tag: 'STERLING', name: 'Sterling Casa de Cambio, S.A. de C.V.' },
96
+ '634' => { tag: 'FINCOMUN', name: 'Fincomún, Servicios Financieros Comunitarios, S.A. de C.V.' },
97
+ '636' => { tag: 'HDI SEGUROS', name: 'HDI Seguros, S.A. de C.V.' },
98
+ '637' => { tag: 'ORDER', name: 'OrderExpress Casa de Cambio , S.A. de C.V. AAC' },
99
+ '638' => { tag: 'NU MEXICO', name: 'NU Mexico Financiera, S.A. DE C.V., S.F.P.' },
100
+ '640' => { tag: 'CB JPMORGAN', name: 'J.P. Morgan Casa de Bolsa, S.A. de C.V.' },
101
+ '642' => { tag: 'REFORMA', name: 'Operadora de Recursos Reforma, S.A. de C.V.' },
102
+ '646' => { tag: 'STP', name: 'Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R.' },
103
+ '647' => { tag: 'TELECOMM', name: 'Telecomunicaciones de México' },
104
+ '648' => { tag: 'TACTIV CB', name: 'TACTIV Casa de Bolsa, S.A. de C.V.' },
105
+ '649' => { tag: 'SKANDIA', name: 'Skandia Operadora S.A. de C.V.' },
106
+ '651' => { tag: 'SEGMTY', name: 'Seguros Monterrey New York Life, S.A de C.V.' },
107
+ '652' => { tag: 'CREDICAPITAL', name: 'Solución Asea, S.A. de C.V., Sociedad Financiera Popular' },
108
+ '653' => { tag: 'KUSPIT', name: 'Kuspit Casa de Bolsa, S.A. de C.V.' },
109
+ '655' => { tag: 'SOFIEXPRESS', name: 'J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.' },
110
+ '656' => { tag: 'UNAGRA', name: 'UNAGRA, S.A. de C.V., S.F.P.' },
111
+ '659' => { tag: 'ASP INTEGRA OPC', name: 'Opciones Empresariales Del Noreste, S.A. DE C.V.' },
112
+ '661' => { tag: 'ALTERNATIVOS', name: 'Servicios financieros alternativos, S.A. DE C.V., S.F.P.' },
113
+ '670' => { tag: 'LIBERTAD', name: 'Libertad Servicios Financieros, S.A. De C.V.' },
114
+ '677' => { tag: 'CAJA POP MEXICANA', name: 'Caja Popular Mexicana' },
115
+ '680' => { tag: 'CRISTOBAL COLON', name: 'Caja Popular Cristóbal Colón' },
116
+ '683' => { tag: 'CAJA TELEFONIST', name: 'Caja de Ahorro de los Telefonistas' },
117
+ '684' => { tag: 'OPM', name: 'Operadora de Pagos Moviles de Mexico, S.A. de C.V.' },
118
+ '685' => { tag: 'FONDO (FIRA)', name: 'Fondo de Garantía y Fomento para la Agricultura, Ganadería y Avicultura (FONDO)' },
119
+ '686' => { tag: 'INVERCAP', name: 'Afore InverCap S.A. de C.V.' },
120
+ '688' => { tag: 'CREDICLUB', name: 'CREDICLUB, S.A. DE C.V., S.F.P.' },
121
+ '689' => { tag: 'FOMPED', name: 'Fondo Mexicano del Petroleo para la Estabilizacion y el Desarrollo' },
122
+ '703' => { tag: 'TESORED', name: 'Tesored, S.A. De C.V.' },
123
+ '706' => { tag: 'ARCUS', name: 'Arcus F.I., S.A. DE C.V.' },
124
+ '710' => { tag: 'NVIO', name: 'NVIO Pagos México, S.A.P.I. de C.V' },
125
+ '812' => { tag: 'BBVA BANCOMER2', name: 'BBVA Bancomer, S.A.' },
126
+ '814' => { tag: 'SANTANDER2', name: 'Banco Santander, S.A.' },
127
+ '821' => { tag: 'HSBC2', name: 'HSBC México, S.A.' },
128
+ '846' => { tag: 'STP', name: 'Sistema de Transferencias y Pagos STP' },
129
+ '901' => { tag: 'CLS', name: 'CLS Bank International' },
130
+ '902' => { tag: 'INDEVAL', name: 'SD. INDEVAL, S.A. de C.V.' },
131
+ '903' => { tag: 'CODI VALIDA', name: 'CoDi Valida' },
132
+ '999' => { tag: 'N/A', name: 'N/A' },
109
133
  }.freeze
110
134
 
111
135
  CITIES = {
112
- "010" => "Aguascalientes",
113
- "012" => "Calvillo",
114
- "014" => "Jesús María",
115
- "020" => "Mexicali",
116
- "022" => "Ensenada",
117
- "027" => "Tecate, Tijuana",
118
- "028" => "La Mesa, Rosarito, Tijuana",
119
- "040" => "La Paz",
120
- "041" => "Cabo San Lucas",
121
- "042" => "Ciudad Constitución",
122
- "043" => "Guerrero Negro",
123
- "045" => "San José del Cabo",
124
- "046" => "Santa Rosalía",
125
- "050" => "Campeche",
126
- "051" => "Calkiní",
127
- "052" => "Ciudad del Carmen",
128
- "053" => "Champotón",
129
- "060" => "Gómez Palacio, Torreón",
136
+ "010" => "Aguascalientes MX-AGU",
137
+ "011" => "Asientos MX-AGU",
138
+ "012" => "Calvillo MX-AGU",
139
+ "013" => "Cosio MX-AGU",
140
+ "014" => "Jesús María MX-AGU",
141
+ "015" => "Pabellon de Arteaga MX-AGU",
142
+ "016" => "Rincon de Romos MX-AGU",
143
+ "017" => "San Fco Romo MX-AGU",
144
+ "020" => "Mexicali MX-BCN",
145
+ "021" => "Ciudad Morelos MX-BCN",
146
+ "022" => "Ensenada MX-BCN",
147
+ "023" => "Guadalupe Victoria MX-BCN",
148
+ "024" => "Rodolfo Sanchez T. MX-BCN",
149
+ "025" => "San Felipe MX-BCN",
150
+ "026" => "San Quintin MX-BCN",
151
+ "027" => "Tecate MX-BCN",
152
+ "027" => "Tijuana",
153
+ "028" => "La Mesa",
154
+ "028" => "Playas de Rosarito MX-BCN",
155
+ "028" => "Tijuana", # see first occurrence at 27
156
+ "040" => "La Paz MX-BCS",
157
+ "041" => "Cabo San Lucas MX-BCS",
158
+ "042" => "Ciudad Constitución MX-BCS",
159
+ "043" => "Guerrero Negro MX-BCS",
160
+ "044" => "Loreto MX-BCS",
161
+ "045" => "San José del Cabo MX-BCS",
162
+ "046" => "Santa Rosalía MX-BCS",
163
+ "047" => "Todos Santos MX-BCS",
164
+ "050" => "Campeche MX-CAM",
165
+ "051" => "Calkiní MX-CAM",
166
+ "052" => "Ciudad del Carmen MX-CAM",
167
+ "053" => "Champotón MX-CAM",
168
+ "054" => "Escarcega MX-CAM",
169
+ "055" => "Hopelchen MX-CAM",
170
+ "056" => "Palizada MX-CAM",
171
+ "057" => "Seybaplaya MX-CAM",
172
+ "060" => "Gómez Palacio",
173
+ "060" => "Torreón MX-COA",
174
+ "061" => "Abasolo MX-COA",
175
+ "062" => "Acuña MX-COA",
130
176
  "062" => "Ciudad Acuña",
131
- "068" => "Monclova",
132
- "071" => "Nava",
177
+ "063" => "Allende MX-COA",
178
+ "064" => "Francisco I. Madero MX-COA",
179
+ "065" => "Frontera MX-COA",
180
+ "066" => "Laguna del Rey MX-COA",
181
+ "067" => "Matamoros MX-COA",
182
+ "068" => "Monclova MX-COA",
183
+ "069" => "Morelos MX-COA",
184
+ "070" => "Muzquiz MX-COA",
185
+ "071" => "Nava MX-COA",
133
186
  "072" => "Nueva Rosita",
134
- "074" => "Parras de la Fuente",
135
- "075" => "Piedras Negras",
136
- "076" => "Ramos Arizpe",
137
- "077" => "Sabinas",
138
- "078" => "Saltillo",
139
- "080" => "San Pedro de las Colonias",
140
- "090" => "Colima",
141
- "095" => "Manzanillo",
142
- "097" => "Tecomán",
143
- "100" => "Terán, Tuxtla Gutiérrez",
144
- "103" => "Arriaga",
145
- "107" => "Cintalapa",
146
- "109" => "Comitán, Villa Las Rosas",
147
- "111" => "Chiapa de Corso",
148
- "113" => "F. Comalapa",
149
- "114" => "Huixtla",
150
- "123" => "Ocosingo",
151
- "124" => "Ocozocuautla",
152
- "125" => "Palenque",
153
- "126" => "Pichucalco",
154
- "127" => "Pijijiapan",
155
- "128" => "Reforma",
156
- "130" => "San Cristóbal de las Casas",
157
- "131" => "Simojovel",
158
- "133" => "Tapachula",
159
- "135" => "Tonala",
160
- "137" => "Venustiano Carranza",
187
+ "072" => "Nva Rosita MX-COA",
188
+ "073" => "Palau MX-COA",
189
+ "074" => "Parras de la Fuente MX-COA",
190
+ "075" => "Piedras Negras MX-COA",
191
+ "076" => "Ramos Arizpe MX-COA",
192
+ "077" => "Sabinas MX-COA",
193
+ "078" => "Saltillo MX-COA",
194
+ "079" => "San Buenaventura MX-COA",
195
+ "080" => "San Pedro de las Colonias MX-COA",
196
+ "081" => "Zaragoza MX-COA",
197
+ "090" => "Colima MX-COL",
198
+ "091" => "Armeria MX-COL",
199
+ "092" => "Comala MX-COL",
200
+ "093" => "Coquimatlan MX-COL",
201
+ "094" => "Cuauhtemoc MX-COL",
202
+ "095" => "Manzanillo MX-COL",
203
+ "096" => "Queseria MX-COL",
204
+ "097" => "Tecomán MX-COL",
205
+ "098" => "Villa de Alvarez MX-COL",
206
+ "100" => "Terán",
207
+ "100" => "Tuxtla Gutiérrez MX-CHP",
208
+ "101" => "Acapetahua MX-CHP",
209
+ "102" => "Angel Albino Corzo MX-CHP",
210
+ "103" => "Arriaga MX-CHP",
211
+ "104" => "Bochil MX-CHP",
212
+ "105" => "Cacahoatan MX-CHP",
213
+ "106" => "Catazaja MX-CHP",
214
+ "107" => "Cintalapa MX-CHP",
215
+ "108" => "Ciudad Hidalgo MX-CHP",
216
+ "109" => "Comitán de Dominguez MX-CHP",
217
+ "109" => "Villa Las Rosas",
218
+ "110" => "Copainala MX-CHP",
219
+ "111" => "Chiapa de Corso MX-CHP",
220
+ "112" => "Chicomuselo MX-CHP",
221
+ "113" => "Frontera Comalapa MX-CHP",
222
+ "114" => "Huixtla MX-CHP",
223
+ "115" => "Jiquipilas MX-CHP",
224
+ "116" => "Juarez MX-CHP",
225
+ "117" => "La Concordia MX-CHP",
226
+ "118" => "La Trinitaria MX-CHP",
227
+ "119" => "Las Margaritas MX-CHP",
228
+ "120" => "Las Rosas MX-CHP",
229
+ "121" => "Mapastepec MX-CHP",
230
+ "122" => "Motozintla MX-CHP",
231
+ "123" => "Ocosingo MX-CHP",
232
+ "124" => "Ocozocoautla MX-CHP",
233
+ "125" => "Palenque MX-CHP",
234
+ "126" => "Pichucalco MX-CHP",
235
+ "127" => "Pijijiapan MX-CHP",
236
+ "128" => "Reforma MX-CHP",
237
+ "129" => "Salto de Agua MX-CHP",
238
+ "130" => "San Cristóbal de las Casas MX-CHP",
239
+ "131" => "Simojovel MX-CHP",
240
+ "132" => "Socoltenango MX-CHP",
241
+ "133" => "Tapachula MX-CHP",
242
+ "134" => "Teopisca MX-CHP",
243
+ "135" => "Tonala MX-CHP",
244
+ "136" => "Tuxtla Chico MX-CHP",
245
+ "137" => "Venustiano Carranza MX-CHP",
246
+ "138" => "Villa Corzo MX-CHP",
161
247
  "138" => "Villa Flores",
162
- "140" => "Yajalón",
163
- "150" => "Chihuahua, Ciudad Delicias",
248
+ "140" => "Yajalón MX-CHP",
249
+ "150" => "Chihuahua MX-CHH",
250
+ "150" => "Ciudad Delicias",
251
+ "151" => "Ahumada MX-CHH",
252
+ "152" => "Anahuac MX-CHH",
164
253
  "152" => "Ciudad Anáhuac",
254
+ "153" => "Ascension MX-CHH",
255
+ "154" => "Buenaventura MX-CHH",
256
+ "155" => "Camargo MX-CHH",
165
257
  "155" => "Ciudad Camargo",
258
+ "156" => "Casas Grandes MX-CHH",
259
+ "157" => "Creel MX-CHH",
166
260
  "158" => "Ciudad Cuauhtémoc",
261
+ "158" => "Cuauhtemoc MX-CHH",
262
+ "159" => "Gomez Farias MX-CHH",
263
+ "160" => "Guachochi MX-CHH",
167
264
  "161" => "Ciudad Guerrero",
265
+ "161" => "Guerrero MX-CHH",
266
+ "162" => "Hidalgo del Parral MX-CHH",
168
267
  "162" => "Parral",
169
- "163" => "Ciudad Jiménez",
170
- "164" => "Ciudad Juárez",
268
+ "163" => "Ciudad Jiménez MX-CHH",
269
+ "164" => "Ciudad Juárez MX-CHH",
171
270
  "165" => "Ciudad Madera",
271
+ "165" => "Madera MX-CHH",
272
+ "166" => "Meoqui MX-CHH",
172
273
  "167" => "El Molino de Namiquipa",
274
+ "167" => "Namiquipa MX-CHH",
173
275
  "168" => "Nuevo Casas Grandes",
174
- "180" => "Atizapan, Chalco, Ciudad de México, Coacalco, Cuautitlán, Cuautitlán Izcalli, Ecatepec, Huehuetoca, Huixquilucan, Ixtapaluca, Los Reyes La Paz, Naucalpan, Nezahualcóyotl, Tecamac, Teotihuacán, Texcoco, Tlalnepantla",
175
- "190" => "Durango",
176
- "201" => "Tepehuanes",
177
- "202" => "Vicente Guerrero",
178
- "210" => "Guanajuato",
179
- "211" => "Abasolo",
180
- "212" => "Acámbaro",
181
- "213" => "Apaseo el Alto",
182
- "214" => "Apaseo el Grande",
183
- "215" => "Celaya",
184
- "216" => "Comonfort",
185
- "217" => "Coroneo",
186
- "218" => "Cortazar",
187
- "219" => "Cuerámaro",
188
- "220" => "Dolores Hidalgo",
189
- "222" => "Irapuato",
190
- "223" => "Jaral del Progreso",
191
- "224" => "Jerécuaro",
192
- "225" => "León",
193
- "226" => "Cd. Manuel Doblado",
194
- "227" => "Moroleón",
195
- "229" => "Pénjamo",
196
- "232" => "Romita",
197
- "233" => "Salamanca",
198
- "234" => "Salvatierra",
199
- "236" => "San Felipe",
200
- "237" => "Purísima de Bustos, San Francisco del Rincoón",
201
- "238" => "San José Iturbide",
202
- "239" => "San Luis de la Paz",
203
- "240" => "San Miguel Allende",
204
- "244" => "Silao",
205
- "247" => "Uriangato",
206
- "248" => "Valle de Santiago",
207
- "249" => "Yuriria",
208
- "260" => "Chilpancingo",
209
- "261" => "Acapulco",
210
- "263" => "Arcelia",
211
- "264" => "Atoyac de Álvarez",
212
- "266" => "Ciudad Altamirano",
213
- "267" => "Coyuca de Benítez",
214
- "270" => "Chilapa",
215
- "271" => "Huitzuco",
216
- "272" => "Iguala, La Sabana",
217
- "274" => "Cuajinicuilapa, Ometepec",
218
- "275" => "San Marcos",
219
- "276" => "Taxco",
220
- "278" => "Teloloapan",
221
- "281" => "Tlapa",
222
- "282" => "Ixtapa Zihuatanejo, Zihuatanejo",
223
- "290" => "Pachuca",
224
- "291" => "Actopan",
225
- "292" => "Apam",
226
- "293" => "Atotonilco el Grande",
227
- "294" => "Ciudad Sahagún, Teocaltiche",
228
- "295" => "Cuautepec",
229
- "296" => "Huejutla",
230
- "297" => "Huichapan",
231
- "298" => "Ixmiquilpan",
232
- "303" => "Progreso de Obregón",
233
- "305" => "Tepeapulco",
234
- "308" => "Tizayuca",
235
- "311" => "Tula de Allende",
236
- "312" => "Tulancingo",
237
- "313" => "Zacualtipán",
238
- "314" => "Zimapán",
239
- "320" => "El Salto, Guadalajara, San Pedro Tlaquepaque, Tlajomulco, Tonala, Zapopan",
240
- "326" => "Ameca",
241
- "327" => "Arandas",
242
- "330" => "Atotonilco el Alto",
276
+ "168" => "Nvo Casas Grandes MX-CHH",
277
+ "169" => "Ojinaga MX-CHH",
278
+ "170" => "Praxedis G. Guerrero MX-CHH",
279
+ "171" => "Puerto Palomas MX-CHH",
280
+ "172" => "Santa Barbara MX-CHH",
281
+ "173" => "Saucillo MX-CHH",
282
+ "180" => "Atizapan",
283
+ "180" => "Chalco",
284
+ "180" => "Ciudad de México MX-CMX",
285
+ "180" => "Coacalco",
286
+ "180" => "Cuautitlán Izcalli",
287
+ "180" => "Ecatepec",
288
+ "180" => "Huehuetoca",
289
+ "180" => "Huixquilucan",
290
+ "180" => "Ixtapaluca",
291
+ "180" => "Los Reyes la Paz",
292
+ "180" => "Naucalpan",
293
+ "180" => "Nezahualcóyotl",
294
+ "180" => "Tecamac",
295
+ "180" => "Teotihuacán",
296
+ "180" => "Texcoco",
297
+ "180" => "Tlalnepantla",
298
+ "190" => "Durango MX-DUR",
299
+ "191" => "Canatlan MX-DUR",
300
+ "192" => "Cuencame MX-DUR",
301
+ "193" => "El Salto MX-DUR",
302
+ "194" => "Guadalupe Victoria MX-DUR",
303
+ "195" => "Nazas MX-DUR",
304
+ "196" => "Nvo Ideal MX-DUR",
305
+ "197" => "San Juan del Rio MX-DUR",
306
+ "198" => "Santa Maria del Oro MX-DUR",
307
+ "199" => "Santiago Papasquiaro MX-DUR",
308
+ "200" => "Tayoltita MX-DUR",
309
+ "201" => "Tepehuanes MX-DUR",
310
+ "202" => "Vicente Guerrero MX-DUR",
311
+ "210" => "Guanajuato MX-GUA",
312
+ "211" => "Abasolo MX-GUA",
313
+ "212" => "Acámbaro MX-GUA",
314
+ "213" => "Apaseo el Alto MX-GUA",
315
+ "214" => "Apaseo el Grande MX-GUA",
316
+ "215" => "Celaya MX-GUA",
317
+ "216" => "Comonfort MX-GUA",
318
+ "217" => "Coroneo MX-GUA",
319
+ "218" => "Cortazar MX-GUA",
320
+ "219" => "Cuerámaro MX-GUA",
321
+ "220" => "Dolores Hidalgo MX-GUA",
322
+ "221" => "Huanimaro MX-GUA",
323
+ "222" => "Irapuato MX-GUA",
324
+ "223" => "Jaral del Progreso MX-GUA",
325
+ "224" => "Jerécuaro MX-GUA",
326
+ "225" => "León MX-GUA",
327
+ "226" => "Manuel Doblado MX-GUA",
328
+ "227" => "Moroleón MX-GUA",
329
+ "228" => "Ocampo MX-GUA",
330
+ "229" => "Pénjamo MX-GUA",
331
+ "230" => "Pueblo Nuevo MX-GUA",
332
+ "231" => "Purisima del Rincon MX-GUA",
333
+ "232" => "Romita MX-GUA",
334
+ "233" => "Salamanca MX-GUA",
335
+ "234" => "Salvatierra MX-GUA",
336
+ "235" => "San Diego de la Union MX-GUA",
337
+ "236" => "San Felipe Progreso MX-GUA",
338
+ "237" => "Purísima de Bustos",
339
+ "237" => "San Francisco del Rincoón MX-GUA",
340
+ "238" => "San José Iturbide MX-GUA",
341
+ "239" => "San Luis de la Paz MX-GUA",
342
+ "240" => "San Miguel de Allende MX-GUA",
343
+ "241" => "Santa Ana Pacueco MX-GUA",
344
+ "242" => "Santa Cruz de Juventino MX-GUA",
345
+ "243" => "Santiago Maravatio MX-GUA",
346
+ "244" => "Silao MX-GUA",
347
+ "245" => "Tarandacuao MX-GUA",
348
+ "246" => "Tarimoro MX-GUA",
349
+ "247" => "Uriangato MX-GUA",
350
+ "248" => "Valle de Santiago MX-GUA",
351
+ "249" => "Yuriria MX-GUA",
352
+ "260" => "Chilpancingo MX-GRO",
353
+ "261" => "Acapulco de Juarez MX-GRO",
354
+ "262" => "Apaxtla de Castrejon MX-GRO",
355
+ "263" => "Arcelia MX-GRO",
356
+ "264" => "Atoyac de Álvarez MX-GRO",
357
+ "265" => "Buenavista de Cuellar MX-GRO",
358
+ "266" => "Ciudad Altamirano MX-GRO",
359
+ "267" => "Coyuca de Benítez MX-GRO",
360
+ "268" => "Cruz Grande MX-GRO",
361
+ "269" => "Chichihualco MX-GRO",
362
+ "270" => "Chilapa de Alvarez MX-GRO",
363
+ "271" => "Huitzuco MX-GRO",
364
+ "272" => "Iguala MX-GRO",
365
+ "272" => "La Sabana",
366
+ "273" => "Olinala MX-GRO",
367
+ "274" => "Cuajinicuilapa",
368
+ "274" => "Ometepec MX-GRO",
369
+ "275" => "San Marcos MX-GRO",
370
+ "276" => "Taxco de Alarcon MX-GRO",
371
+ "277" => "Petatlan MX-GRO",
372
+ "278" => "Teloloapan MX-GRO",
373
+ "279" => "Tierra Colorada MX-GRO",
374
+ "280" => "Tixtla de Guerrero MX-GRO",
375
+ "281" => "Tlapa de Comonfort MX-GRO",
376
+ "282" => "Ixtapa Zihuatanejo MX-GRO",
377
+ "290" => "Pachuca de Soto MX-HID",
378
+ "291" => "Actopan MX-HID",
379
+ "292" => "Apam MX-HID",
380
+ "293" => "Atotonilco el Grande MX-HID",
381
+ "294" => "Ciudad Sahagún MX-HID",
382
+ "294" => "Teocaltiche",
383
+ "295" => "Cuautepec de Hinojosa MX-HID",
384
+ "296" => "Huejutla de Reyes MX-HID",
385
+ "297" => "Huichapan MX-HID",
386
+ "298" => "Ixmiquilpan MX-HID",
387
+ "299" => "Jacala MX-HID",
388
+ "300" => "Metztitlan MX-HID",
389
+ "301" => "Mixquiahuala MX-HID",
390
+ "302" => "Molango MX-HID",
391
+ "303" => "Progreso de Obregón MX-HID",
392
+ "304" => "Tasquillo MX-HID",
393
+ "305" => "Tepeapulco MX-HID",
394
+ "306" => "Tepeji del Rio MX-HID",
395
+ "307" => "Tezontepec MX-HID",
396
+ "308" => "Tizayuca MX-HID",
397
+ "309" => "Tlahuelilpan MX-HID",
398
+ "310" => "Tlaxcoapan MX-HID",
399
+ "311" => "Tula de Allende MX-HID",
400
+ "312" => "Tulancingo MX-HID",
401
+ "313" => "Zacualtipán MX-HID",
402
+ "314" => "Zimapán MX-HID",
403
+ "320" => "El Salto MX-JAL",
404
+ "320" => "Guadalajara",
405
+ "320" => "San Pedro Tlaquepaque",
406
+ "320" => "Tlajomulco",
407
+ "320" => "Tonala",
408
+ "320" => "Zapopan",
409
+ "321" => "Acatic MX-JAL",
410
+ "322" => "Acatlan de Juarez MX-JAL",
411
+ "323" => "Ahualulco de Mercado MX-JAL",
412
+ "324" => "Ajijic MX-JAL",
413
+ "325" => "Amatitan MX-JAL",
414
+ "326" => "Ameca MX-JAL",
415
+ "327" => "Arandas MX-JAL",
416
+ "328" => "Arenal MX-JAL",
417
+ "329" => "Atenguillo MX-JAL",
418
+ "330" => "Atotonilco el Alto MX-JAL",
243
419
  "331" => "Atequiza",
244
- "333" => "Autlán",
245
- "340" => "Casimiro Castillo",
246
- "341" => "Cihuatlán",
247
- "342" => "Ciudad Guzmán",
248
- "346" => "Chapala",
249
- "348" => "El Grullo",
250
- "355" => "Ixtlahuacán del Río",
251
- "356" => "Jalostotitlán",
252
- "357" => "Jamay",
253
- "361" => "La Barca",
254
- "362" => "Lagos de Moreno",
255
- "370" => "Ocotlán",
256
- "373" => "Pihuamo",
257
- "375" => "Las Juntas, Nuevo Vallarta, Pitillal, Puerto Vallarta",
258
- "381" => "San Juan de los Lagos",
259
- "384" => "San Miguel el Alto",
260
- "385" => "San Patricio Melaque",
261
- "386" => "Sayula",
262
- "387" => "Tala",
263
- "389" => "Tamazula de Gordiano",
264
- "391" => "Tecalitlán",
265
- "396" => "Tepatitlán",
266
- "397" => "Tequila",
267
- "403" => "Tototlán",
420
+ "331" => "Atotonilquillo MX-JAL",
421
+ "332" => "Atoyac MX-JAL",
422
+ "333" => "Autlán de Navarro MX-JAL",
423
+ "334" => "Ayotlan MX-JAL",
424
+ "334" => "Azteca",
425
+ "335" => "Ayutla MX-JAL",
426
+ "336" => "Bajio de San Jose MX-JAL",
427
+ "337" => "Belen del Refugio MX-JAL",
428
+ "338" => "Cañadas de Obregon MX-JAL",
429
+ "339" => "Capilla de Guadalupe MX-JAL",
430
+ "340" => "Casimiro Castillo MX-JAL",
431
+ "341" => "Cihuatlán MX-JAL",
432
+ "342" => "Ciudad Guzmán MX-JAL",
433
+ "343" => "Cocula MX-JAL",
434
+ "344" => "Ixtlixochitl MX-MEX",
435
+ "345" => "Cuquio MX-JAL",
436
+ "346" => "Chapala MX-JAL",
437
+ "347" => "Degollado MX-JAL",
438
+ "348" => "El Grullo MX-JAL",
439
+ "349" => "Encarnacion de Diaz MX-JAL",
440
+ "350" => "Estipac MX-JAL",
441
+ "351" => "Guachinango MX-JAL",
442
+ "352" => "Huejucar MX-JAL",
443
+ "353" => "Huejuquilla el Alto MX-JAL",
444
+ "354" => "Ixtlahuacan de los M. MX-JAL",
445
+ "355" => "Ixtlahuacán del Río MX-JAL",
446
+ "356" => "Jalostotitlán MX-JAL",
447
+ "357" => "Jamay MX-JAL",
448
+ "358" => "Jesus Maria MX-JAL",
449
+ "359" => "Jocotepec MX-JAL",
450
+ "360" => "Juchitlan MX-JAL",
451
+ "361" => "La Barca MX-JAL",
452
+ "362" => "Lagos de Moreno MX-JAL",
453
+ "363" => "Magdalena MX-JAL",
454
+ "364" => "Manzanilla de la Paz MX-JAL",
455
+ "365" => "Mascota MX-JAL",
456
+ "366" => "Mazamitla MX-JAL",
457
+ "367" => "Mexticacan MX-JAL",
458
+ "368" => "Mezquitic MX-JAL",
459
+ "369" => "Mixtlan MX-JAL",
460
+ "370" => "Ocotlán MX-JAL",
461
+ "371" => "Ojuelos de Jalisco MX-JAL",
462
+ "372" => "Pegueros MX-JAL",
463
+ "373" => "Pihuamo MX-JAL",
464
+ "374" => "Poncitlan MX-JAL",
465
+ "375" => "Las Juntas",
466
+ "375" => "Nuevo Vallarta",
467
+ "375" => "Pitillal",
468
+ "375" => "Puerto Vallarta MX-JAL",
469
+ "376" => "Purificacion MX-JAL",
470
+ "377" => "Quitupan MX-JAL",
471
+ "378" => "San Ignacio Cerro G. MX-JAL",
472
+ "379" => "San Jose Casas Caidas MX-JAL",
473
+ "380" => "San Jose de Gracia MX-JAL",
474
+ "381" => "San Juan de los Lagos MX-JAL",
475
+ "382" => "San Julian MX-JAL",
476
+ "383" => "San Martin Hidalgo MX-JAL",
477
+ "384" => "San Miguel el Alto MX-JAL",
478
+ "385" => "San Patricio Melaque MX-JAL",
479
+ "386" => "Sayula MX-JAL",
480
+ "387" => "Tala MX-JAL",
481
+ "388" => "Talpa de Allende MX-JAL",
482
+ "389" => "Tamazula de Gordiano MX-JAL",
483
+ "390" => "Tapalpa MX-JAL",
484
+ "391" => "Tecalitlán MX-JAL",
485
+ "392" => "Tecolotlan MX-JAL",
486
+ "393" => "Tenamaxtlan MX-JAL",
487
+ "394" => "Teocaltiche MX-JAL",
488
+ "395" => "Teocuitatlan de Corona MX-JAL",
489
+ "396" => "Tepatitlán de Morelos MX-JAL",
490
+ "397" => "Tequila MX-JAL",
491
+ "398" => "Tizapan el Alto MX-JAL",
492
+ "399" => "Toliman MX-JAL",
493
+ "400" => "Tomatlan MX-JAL",
494
+ "401" => "Tonaya MX-JAL",
495
+ "402" => "Totatiche MX-JAL",
496
+ "403" => "Tototlán MX-JAL",
268
497
  "404" => "Túxpam",
269
- "411" => "Villa Hidalgo",
270
- "413" => "Zacoalco de Torres",
271
- "414" => "Zapotiltic",
272
- "416" => "Zapotlanejo",
273
- "420" => "Toluca",
274
- "421" => "Acambay",
275
- "422" => "Almoloya de Juárez",
276
- "424" => "Amecameca",
277
- "425" => "Apaxco",
278
- "426" => "Atlacomulco",
279
- "428" => "Coatepec de Harinas",
280
- "430" => "Chicoloapan",
281
- "431" => "Chiconcuac",
282
- "432" => "El Oro",
283
- "433" => "Ixtapan de la Sal",
284
- "434" => "Ixtlahuaca",
285
- "435" => "Jilotepec",
286
- "438" => "Lerma",
287
- "441" => "Metepec",
288
- "443" => "Otumba",
289
- "445" => "San Mateo Atenco",
290
- "446" => "Tejupilco",
291
- "448" => "Temascaltepec",
292
- "449" => "Temoaya",
293
- "450" => "Tenancingo",
498
+ "404" => "Tuxpan MX-JAL",
499
+ "405" => "Union de San Antonio MX-JAL",
500
+ "406" => "Union de Tula MX-JAL",
501
+ "407" => "Valle de Guadalupe MX-JAL",
502
+ "408" => "Valle de Juarez MX-JAL",
503
+ "409" => "Villa Corona MX-JAL",
504
+ "410" => "Villa Guerrero MX-JAL",
505
+ "411" => "Villa Hidalgo MX-JAL",
506
+ "412" => "Vista Hermosa MX-JAL",
507
+ "413" => "Zacoalco de Torres MX-JAL",
508
+ "414" => "Zapotiltic MX-JAL",
509
+ "415" => "Zapotlan del Rey MX-JAL",
510
+ "416" => "Zapotlanejo MX-JAL",
511
+ "420" => "Toluca MX-MEX",
512
+ "421" => "Acambay MX-MEX",
513
+ "422" => "Almoloya de Juárez MX-MEX",
514
+ "423" => "Amatepec MX-MEX",
515
+ "424" => "Amecameca MX-MEX",
516
+ "425" => "Apaxco MX-MEX",
517
+ "426" => "Atlacomulco MX-MEX",
518
+ "427" => "Capulhuac MX-MEX",
519
+ "428" => "Coatepec de Harinas MX-MEX",
520
+ "429" => "Colorines MX-MEX",
521
+ "430" => "Chicoloapan MX-MEX",
522
+ "431" => "Chiconcuac MX-MEX",
523
+ "432" => "El Oro MX-MEX",
524
+ "433" => "Ixtapan de la Sal MX-MEX",
525
+ "434" => "Ixtlahuaca MX-MEX",
526
+ "435" => "Jilotepec MX-MEX",
527
+ "436" => "Jocotitlan MX-MEX",
528
+ "437" => "Chimalhuacan MX-MEX",
529
+ "437" => "La Paz (Reyes Acaq.) MX-MEX",
530
+ "438" => "Lerma MX-MEX",
531
+ "439" => "Luvianos MX-MEX",
532
+ "440" => "Malinalco MX-MEX",
533
+ "441" => "Metepec MX-MEX",
534
+ "442" => "Ocoyoacac MX-MEX",
535
+ "443" => "Otumba MX-MEX",
536
+ "444" => "San Felipe Progreso MX-MEX",
537
+ "445" => "San Mateo Atenco MX-MEX",
538
+ "446" => "Tejupilco MX-MEX",
539
+ "447" => "Temascalcingo MX-MEX",
540
+ "448" => "Temascaltepec MX-MEX",
541
+ "449" => "Temoaya MX-MEX",
542
+ "450" => "Tenancingo MX-MEX",
294
543
  "451" => "Tenago del Valle",
544
+ "451" => "Tenango de Arista MX-MEX",
545
+ "452" => "Texcaltitlan MX-MEX",
295
546
  "453" => "Santiago Tiangistenco",
296
- "455" => "Tultepec",
297
- "456" => "Tultitlán",
298
- "457" => "Valle de Bravo",
299
- "460" => "Villa Nicolás Romero",
300
- "463" => "Zumpango",
301
- "470" => "Morelia",
302
- "472" => "Aguililla",
303
- "476" => "Apatzingán",
304
- "480" => "Ciudad Hidalgo",
305
- "483" => "Cotija",
306
- "484" => "Cuitzeo",
307
- "492" => "Huetamo",
308
- "493" => "Jacona",
309
- "494" => "Jiquilpan",
310
- "496" => "La Piedad",
311
- "497" => "Lázaro Cárdenas",
312
- "498" => "Los Reyes",
313
- "499" => "Maravatío",
547
+ "453" => "Tianguistenco MX-MEX",
548
+ "454" => "Tonatico MX-MEX",
549
+ "455" => "Tultepec MX-MEX",
550
+ "456" => "Tultitlán MX-MEX",
551
+ "457" => "Valle de Bravo MX-MEX",
552
+ "458" => "Villa del Carbon MX-MEX",
553
+ "459" => "Villa Guerrero MX-MEX",
554
+ "460" => "Villa Nicolás Romero MX-MEX",
555
+ "461" => "Villa Victoria MX-MEX",
556
+ "462" => "Xonacatlan MX-MEX",
557
+ "463" => "Zumpango MX-MEX",
558
+ "470" => "Morelia MX-MIC",
559
+ "471" => "Acuitzio del Canje MX-MIC",
560
+ "472" => "Aguililla MX-MIC",
561
+ "473" => "Alvaro Obregon MX-MIC",
562
+ "474" => "Angamacutiro MX-MIC",
563
+ "475" => "Angangueo MX-MIC",
564
+ "476" => "Apatzingán MX-MIC",
565
+ "477" => "Ario de Rosales MX-MIC",
566
+ "478" => "Arteaga MX-MIC",
567
+ "479" => "Buenavista Tomatlan MX-MIC",
568
+ "480" => "Ciudad Hidalgo MX-MIC",
569
+ "481" => "Coalcoman de Vazquez MX-MIC",
570
+ "482" => "Contepec MX-MIC",
571
+ "483" => "Cotija de la Paz MX-MIC",
572
+ "484" => "Cuitzeo MX-MIC",
573
+ "485" => "Chavinda MX-MIC",
574
+ "486" => "Cheran MX-MIC",
575
+ "487" => "Chilchota MX-MIC",
576
+ "488" => "Churintzio MX-MIC",
577
+ "489" => "Epitacio Huerta MX-MIC",
578
+ "490" => "Gabriel Zamora MX-MIC",
579
+ "491" => "Huandacareo MX-MIC",
580
+ "492" => "Huetamo MX-MIC",
581
+ "493" => "Jacona de Plancarte MX-MIC",
582
+ "494" => "Jiquilpan de Juarez MX-MIC",
583
+ "495" => "La Huacana MX-MIC",
584
+ "496" => "La Piedad de Cabadas MX-MIC",
585
+ "497" => "Lázaro Cárdenas MX-MIC",
586
+ "498" => "Los Reyes de Salgado MX-MIC",
587
+ "499" => "Maravatío MX-MIC",
588
+ "500" => "San Jose de Gracia MX-MIC",
314
589
  "501" => "Nueva Italia",
315
- "506" => "Pátzcuaro",
316
- "508" => "Purépero",
317
- "509" => "Puruandiro",
318
- "512" => "Sahuayo",
319
- "515" => "Tacámbaro",
320
- "517" => "Tangancícuaro",
321
- "519" => "Tepalcatepec",
322
- "523" => "Tlazazalca",
323
- "528" => "Uruapan",
324
- "533" => "Yurécuaro",
325
- "534" => "Zacapu",
326
- "535" => "Zamora",
327
- "536" => "Zinapécuaro",
328
- "537" => "Zitácuaro",
329
- "540" => "Cuernavaca",
330
- "542" => "Cuautla, Oaxtepec, Morelos",
331
- "543" => "Jiutepec",
332
- "544" => "Jojutla",
333
- "545" => "Puente de Ixtla",
334
- "546" => "Temixco",
335
- "548" => "Tetecala",
336
- "549" => "Yautepec",
337
- "552" => "Zacatepec",
338
- "560" => "Tepic",
339
- "561" => "Acaponeta",
340
- "562" => "Ahuacatlán",
341
- "564" => "Compostela",
342
- "566" => "Ixtlán del Río",
343
- "571" => "San Blas",
344
- "573" => "Santiago Ixcuintla",
345
- "575" => "Túxpam",
346
- "580" => "Apodaca, Cadereyta, Cd. Guadalupe, General Escobedo, Monterrey, San Nicolás de los Garza, San Pedro Garza García, Santa Catarina",
347
- "583" => "Allende",
348
- "592" => "General Zuazua",
349
- "595" => "Linares",
350
- "597" => "Montemorelos",
351
- "599" => "Sabinas Hidalgo",
352
- "600" => "Salinas Victoria",
353
- "601" => "El Cercado, Villa de Santiago",
354
- "610" => "Oaxaca",
590
+ "501" => "Nva Italia de Ruiz MX-MIC",
591
+ "502" => "Pajacuaran MX-MIC",
592
+ "503" => "Panindicuaro MX-MIC",
593
+ "504" => "Paracho MX-MIC",
594
+ "505" => "Pastor Ortiz MX-MIC",
595
+ "506" => "Pátzcuaro MX-MIC",
596
+ "507" => "Periban MX-MIC",
597
+ "508" => "Purépero de Echaiz MX-MIC",
598
+ "509" => "Puruandiro MX-MIC",
599
+ "510" => "Querendaro MX-MIC",
600
+ "511" => "Quiroga MX-MIC",
601
+ "512" => "Sahuayo de Morelos MX-MIC",
602
+ "513" => "Santa Ana Maya MX-MIC",
603
+ "514" => "Santiago Tangamandapio MX-MIC",
604
+ "515" => "Tacámbaro Codallos MX-MIC",
605
+ "516" => "Tancitaro MX-MIC",
606
+ "517" => "Tangancícuaro Arista MX-MIC",
607
+ "518" => "Tanhuato de Guerrero MX-MIC",
608
+ "519" => "Tapalcatepec MX-MIC",
609
+ "520" => "Taretan MX-MIC",
610
+ "521" => "Tinguindin MX-MIC",
611
+ "522" => "Tlalpujahua MX-MIC",
612
+ "523" => "Tlazazalca MX-MIC",
613
+ "524" => "Tocumbo MX-MIC",
614
+ "525" => "Tuxpan MX-MIC",
615
+ "526" => "Tuzantla MX-MIC",
616
+ "527" => "Ucareo MX-MIC",
617
+ "528" => "Uruapan MX-MIC",
618
+ "529" => "Villa Jimenez MX-MIC",
619
+ "530" => "Villamar MX-MIC",
620
+ "531" => "Villa Morelos MX-MIC",
621
+ "532" => "Vista Hermosa Negrete MX-MIC",
622
+ "533" => "Yurécuaro MX-MIC",
623
+ "534" => "Zacapu MX-MIC",
624
+ "535" => "Zamora MX-MIC",
625
+ "536" => "Zinapécuaro MX-MIC",
626
+ "537" => "Zitácuaro MX-MIC",
627
+ "540" => "Cuernavaca MX-MOR",
628
+ "541" => "Axochiapan MX-MOR",
629
+ "542" => "Cuautla MX-MOR",
630
+ "542" => "Oaxtepec, Morelos",
631
+ "543" => "Jiutepec MX-MOR",
632
+ "544" => "Jojutla MX-MOR",
633
+ "545" => "Puente de Ixtla MX-MOR",
634
+ "546" => "Temixco MX-MOR",
635
+ "547" => "Tepoztlan MX-MOR",
636
+ "548" => "Tetecala MX-MOR",
637
+ "549" => "Yautepec MX-MOR",
638
+ "550" => "Yautepec MX-MOR",
639
+ "551" => "Yecapixtla MX-MOR",
640
+ "552" => "Zacatepec MX-MOR",
641
+ "560" => "Tepic MX-NAY",
642
+ "561" => "Acaponeta MX-NAY",
643
+ "562" => "Ahuacatlán MX-NAY",
644
+ "563" => "Amatlan de Cañas MX-NAY",
645
+ "564" => "Compostela MX-NAY",
646
+ "565" => "Huajicori MX-NAY",
647
+ "566" => "Ixtlán del Río MX-NAY",
648
+ "567" => "La Penita de Jaltemba MX-NAY",
649
+ "568" => "Las Varas MX-NAY",
650
+ "569" => "Rosamorada MX-NAY",
651
+ "570" => "Ruiz MX-NAY",
652
+ "571" => "San Blas MX-NAY",
653
+ "572" => "Santa Maria del Oro MX-NAY",
654
+ "573" => "Santiago Ixcuintla MX-NAY",
655
+ "574" => "Tecuala MX-NAY",
656
+ "575" => "Túxpam MX-NAY",
657
+ "576" => "Villa Hidalgo MX-NAY",
658
+ "577" => "Xalisco MX-NAY",
659
+ "580" => "Apodaca MX-NLE",
660
+ "580" => "Cadereyta",
661
+ "580" => "Ciudad Guadalupe",
662
+ "580" => "General Escobedo",
663
+ "580" => "Monterrey",
664
+ "580" => "San Nicolás de los Garza",
665
+ "580" => "San Pedro Garza García",
666
+ "580" => "Santa Catarina",
667
+ "581" => "Abasolo MX-NLE",
668
+ "582" => "Agualeguas MX-NLE",
669
+ "583" => "Allende MX-NLE",
670
+ "584" => "Anahuac MX-NLE",
671
+ "585" => "Bustamante MX-NLE",
672
+ "586" => "Cerralvo MX-NLE",
673
+ "587" => "Cienega de Flores MX-NLE",
674
+ "588" => "China MX-NLE",
675
+ "589" => "Galeana MX-NLE",
676
+ "590" => "General Bravo MX-NLE",
677
+ "591" => "General Teran MX-NLE",
678
+ "592" => "General Zuazua MX-NLE",
679
+ "593" => "Hidalgo MX-NLE",
680
+ "594" => "Lampazos de Naranjo MX-NLE",
681
+ "595" => "Linares MX-NLE",
682
+ "596" => "Los Ramones MX-NLE",
683
+ "597" => "Montemorelos MX-NLE",
684
+ "598" => "Pesqueria MX-NLE",
685
+ "599" => "Sabinas Hidalgo MX-NLE",
686
+ "600" => "Salinas Victoria MX-NLE",
687
+ "601" => "El Cercado",
688
+ "601" => "Santiago MX-NLE",
689
+ "601" => "Villa de Santiago",
690
+ "610" => "Oaxaca MX-OAX",
691
+ "611" => "Asuncion Nochixtlan MX-OAX",
692
+ "612" => "Guelatao MX-OAX",
693
+ "613" => "Heroica Cd de Tlaxiaco MX-OAX",
355
694
  "613" => "Tlaxiaco",
356
- "614" => "Huajuapan de León",
357
- "616" => "Ixtepec",
358
- "617" => "Juchitán",
359
- "619" => "Loma Bonita",
360
- "620" => "Matías Romero",
361
- "621" => "Miahuatlán",
362
- "622" => "Ocotlán",
363
- "624" => "Puerto Escondido",
364
- "626" => "Salina Cruz",
695
+ "614" => "Huajuapan de León MX-OAX",
696
+ "615" => "Huautla MX-OAX",
697
+ "616" => "Ixtepec MX-OAX",
698
+ "617" => "Juchitán de Zaragoza MX-OAX",
699
+ "618" => "La Reforma MX-OAX",
700
+ "619" => "Loma Bonita MX-OAX",
701
+ "620" => "Matías Romero MX-OAX",
702
+ "621" => "Miahuatlán MX-OAX",
703
+ "622" => "Ocotlán MX-OAX",
704
+ "623" => "Pinotepa MX-OAX",
705
+ "624" => "Puerto Escondido MX-OAX",
706
+ "625" => "Putla MX-OAX",
707
+ "626" => "Salina Cruz MX-OAX",
365
708
  "627" => "Lagunas",
709
+ "627" => "San Andres Lagunas MX-OAX",
710
+ "628" => "San Juan Bautista T. MX-OAX",
366
711
  "628" => "Tuxtepec",
712
+ "629" => "San Pedro Mixtepec MX-OAX",
367
713
  "630" => "Pochutla",
368
- "631" => "San Pedro Tapanatepec",
369
- "632" => "Santa Lucía del Camino, O",
714
+ "630" => "San Pedro Pochutla MX-OAX",
715
+ "631" => "San Pedro Tapanatepec MX-OAX",
716
+ "632" => "Santa Lucía del Camino MX-OAX",
717
+ "633" => "Santa Maria del Tule MX-OAX",
370
718
  "634" => "Bahías de Huatulco",
371
- "635" => "Santiago Juxtlahuaca",
719
+ "634" => "Santa Maria Huatulco MX-OAX",
720
+ "635" => "Santiago Juxtlahuaca MX-OAX",
372
721
  "636" => "Pinotepa Nacional",
722
+ "636" => "Santiago Pinotepa Nal MX-OAX",
723
+ "637" => "Sto Domingo Tehuantepec MX-OAX",
373
724
  "637" => "Tehuantepec",
374
- "638" => "Tlacolula",
375
- "640" => "Zimatlán",
376
- "650" => "Cholul, La Resurrecció, Puebla, San Baltazar Campech",
377
- "652" => "Acatzingo",
378
- "654" => "Atlixco",
379
- "656" => "Cuetzalan",
380
- "659" => "Huauchinango",
381
- "662" => "Izúcar de Matamoros",
382
- "667" => "San Martín Texmelucan",
725
+ "638" => "Tlacolula D Matamoros MX-OAX",
726
+ "639" => "Villa de Tamazulapam MX-OAX",
727
+ "640" => "Zimatlán MX-OAX",
728
+ "650" => "Cholula",
729
+ "650" => "Cuautlancingo MX-PUE",
730
+ "650" => "La Resurrección",
731
+ "650" => "Puebla",
732
+ "650" => "San Baltazar Campeche",
733
+ "651" => "Acatlan MX-PUE",
734
+ "652" => "Acatzingo MX-PUE",
735
+ "653" => "Amozoc MX-PUE",
736
+ "654" => "Atlixco MX-PUE",
737
+ "655" => "Ciudad Serdan MX-PUE",
738
+ "655" => "Los Heroes de Puebla MX-PUE",
739
+ "656" => "Cuetzalan MX-PUE",
740
+ "657" => "Chiautla MX-PUE",
741
+ "658" => "Chignahuapan MX-PUE",
742
+ "659" => "Huauchinango MX-PUE",
743
+ "660" => "Huejotzingo MX-PUE",
744
+ "661" => "Hueytamalco MX-PUE",
745
+ "662" => "Izúcar de Matamoros MX-PUE",
746
+ "663" => "Libres MX-PUE",
747
+ "664" => "Nealtican MX-PUE",
748
+ "665" => "Nvo Necaxa MX-PUE",
749
+ "666" => "Rafael Lara Grajales MX-PUE",
750
+ "667" => "San Martín Texmelucan MX-PUE",
383
751
  "668" => "San Felipe Hueyotlipan",
384
- "669" => "Tecamachalco",
385
- "670" => "Tehuacán",
752
+ "668" => "Sto Tomas Hueyotlipan MX-PUE",
753
+ "669" => "Tecamachalco MX-PUE",
754
+ "670" => "Tehuacán MX-PUE",
386
755
  "671" => "San Lorenzo",
387
- "672" => "Teziutlán",
388
- "674" => "Xicotepec de Juárez",
389
- "676" => "Zacatlán",
390
- "680" => "Pedro Escobed, Querétar, Villa Corregidor",
391
- "681" => "Amealco",
392
- "685" => "San Juan del Río",
393
- "686" => "Tequisquiapan",
394
- "690" => "Chetumal",
395
- "691" => "Cancún, Col. Puerto Juárez",
396
- "692" => "Cozumel",
397
- "694" => "Playa del Carmen",
398
- "700" => "San Luis Potosí",
399
- "703" => "Cerritos",
400
- "705" => "Ciudad Valles",
401
- "709" => "Matehuala",
402
- "711" => "Río Verde",
403
- "716" => "Tamuín",
404
- "730" => "Culiacán",
405
- "735" => "Concordia",
406
- "736" => "Cosala",
407
- "737" => "Choix",
408
- "738" => "El Fuerte",
409
- "739" => "Escuinapa",
410
- "740" => "Guamúchil",
411
- "741" => "Guasave",
412
- "743" => "Los Mochis, Topolobampo",
413
- "744" => "Mazatlán",
414
- "745" => "Mocorito",
415
- "746" => "Navolato",
416
- "760" => "Hermosillo",
417
- "761" => "Agua Prieta",
418
- "765" => "Caborca",
419
- "766" => "Cananea",
420
- "767" => "Ciudad Obregón, Esperanza",
421
- "769" => "Empalme",
422
- "770" => "Guaymas, San Carlos",
423
- "771" => "Huatabampo",
424
- "773" => "Magdalena",
425
- "776" => "Nacozari de García",
426
- "777" => "Navojoa",
427
- "778" => "Nogales",
428
- "779" => "Puerto Peñasco",
429
- "780" => "San Luis Río Colorado",
430
- "790" => "Tamulte, Villa Hermosa",
756
+ "671" => "Tepeaca MX-PUE",
757
+ "672" => "Teziutlán MX-PUE",
758
+ "673" => "Tlatlauquitepec MX-PUE",
759
+ "674" => "Xicotepec de Juárez MX-PUE",
760
+ "675" => "Zacapoaxtla MX-PUE",
761
+ "676" => "Zacatlán MX-PUE",
762
+ "680" => "El Pueblito Correg. MX-QUE",
763
+ "680" => "Pedro Escobedo",
764
+ "680" => "Querétaro",
765
+ "680" => "Villa Corregidora",
766
+ "681" => "Amealco MX-QUE",
767
+ "682" => "Cadereyta MX-QUE",
768
+ "683" => "Ezequiel Montes MX-QUE",
769
+ "684" => "Jalpan MX-QUE",
770
+ "685" => "San Juan del Río MX-QUE",
771
+ "686" => "Tequisquiapan MX-QUE",
772
+ "690" => "Chetumal MX-ROO",
773
+ "691" => "Cancún MX-ROO",
774
+ "691" => "Col. Puerto Juárez",
775
+ "692" => "Cozumel MX-ROO",
776
+ "693" => "Isla Mujeres MX-ROO",
777
+ "694" => "Playa del Carmen MX-ROO",
778
+ "700" => "San Luis Potosí MX-SLP",
779
+ "701" => "Axtla de Terrazas MX-SLP",
780
+ "702" => "Cardenas MX-SLP",
781
+ "703" => "Cerritos MX-SLP",
782
+ "704" => "Ciudad del Maiz MX-SLP",
783
+ "705" => "Ciudad Valles MX-SLP",
784
+ "706" => "Charcas MX-SLP",
785
+ "707" => "Ebano MX-SLP",
786
+ "708" => "Guadalcazar MX-SLP",
787
+ "709" => "Matehuala MX-SLP",
788
+ "710" => "Rayon MX-SLP",
789
+ "711" => "Río Verde MX-SLP",
790
+ "712" => "Salinas de Hidalgo MX-SLP",
791
+ "713" => "Santa Maria del Rio MX-SLP",
792
+ "714" => "Tamasopo MX-SLP",
793
+ "715" => "Tamazunchale MX-SLP",
794
+ "716" => "Tamuín MX-SLP",
795
+ "717" => "Tancanhuitz de Santos MX-SLP",
796
+ "718" => "Tanquian MX-SLP",
797
+ "719" => "Tierra Nueva MX-SLP",
798
+ "720" => "Venado MX-SLP",
799
+ "721" => "Xilitla MX-SLP",
800
+ "722" => "Villa de Arista MX-SLP",
801
+ "730" => "Culiacán MX-SIN",
802
+ "731" => "Ahome MX-SIN",
803
+ "732" => "Angostura MX-SIN",
804
+ "733" => "Badiraguato MX-SIN",
805
+ "734" => "Bamoa MX-SIN",
806
+ "735" => "Concordia MX-SIN",
807
+ "736" => "Cosala MX-SIN",
808
+ "737" => "Choix MX-SIN",
809
+ "738" => "El Fuerte MX-SIN",
810
+ "739" => "Escuinapa de Hidalgo MX-SIN",
811
+ "740" => "Guamúchil MX-SIN",
812
+ "741" => "Guasave MX-SIN",
813
+ "742" => "La Cruz de Elota MX-SIN",
814
+ "743" => "Los Mochis MX-SIN",
815
+ "743" => "Topolobampo",
816
+ "744" => "Mazatlán MX-SIN",
817
+ "745" => "Mocorito MX-SIN",
818
+ "746" => "Navolato MX-SIN",
819
+ "747" => "Quila MX-SIN",
820
+ "748" => "Rosario MX-SIN",
821
+ "749" => "San Blas MX-SIN",
822
+ "750" => "San Ignacio MX-SIN",
823
+ "760" => "Hermosillo MX-SON",
824
+ "761" => "Agua Prieta MX-SON",
825
+ "762" => "Alamos MX-SON",
826
+ "763" => "Altar MX-SON",
827
+ "764" => "Baviacora MX-SON",
828
+ "765" => "Caborca MX-SON",
829
+ "766" => "Cananea MX-SON",
830
+ "767" => "Ciudad Obregón MX-SON",
831
+ "767" => "Esperanza",
832
+ "768" => "Cumpas MX-SON",
833
+ "769" => "Empalme MX-SON",
834
+ "770" => "Guaymas MX-SON",
835
+ "770" => "San Carlos",
836
+ "771" => "Huatabampo MX-SON",
837
+ "772" => "Luis B. Sanchez MX-SON",
838
+ "773" => "Magdalena de Kino MX-SON",
839
+ "774" => "Miguel Aleman MX-SON",
840
+ "775" => "Moctezuma MX-SON",
841
+ "776" => "Nacozari de García MX-SON",
842
+ "777" => "Navojoa MX-SON",
843
+ "778" => "Nogales MX-SON",
844
+ "779" => "Puerto Peñasco MX-SON",
845
+ "780" => "San Luis Río Colorado MX-SON",
846
+ "781" => "Santa Ana MX-SON",
847
+ "782" => "Ures MX-SON",
848
+ "783" => "Villa Juarez (Irrigacion) MX-SON",
849
+ "790" => "Tamulte",
850
+ "790" => "Villa Hermosa MX-TAB",
851
+ "791" => "Balancan MX-TAB",
431
852
  "792" => "Cárdenas",
432
- "793" => "Ciudad Pemex",
433
- "794" => "Comalcalco",
434
- "796" => "Emiliano Zapata",
435
- "797" => "Frontera",
436
- "798" => "Huimanguillo",
437
- "800" => "Jalpa de Méndez",
438
- "802" => "Macuspana",
439
- "803" => "Nacajuca",
440
- "804" => "Paraíso",
441
- "805" => "Tacotalpa",
442
- "806" => "Teapa",
443
- "807" => "Tenosique",
444
- "810" => "Ciudad Victoria",
445
- "811" => "Altamira",
446
- "813" => "Ciudad Madero, Tampico",
447
- "814" => "Ciudad Mante",
448
- "818" => "Matamoros",
449
- "821" => "Colombia, Nuevo Laredo",
853
+ "792" => "Cardenas MX-TAB",
854
+ "793" => "Ciudad Pemex MX-TAB",
855
+ "794" => "Comalcalco MX-TAB",
856
+ "795" => "Cunduacan MX-TAB",
857
+ "796" => "Emiliano Zapata MX-TAB",
858
+ "797" => "Frontera MX-TAB",
859
+ "798" => "Huimanguillo MX-TAB",
860
+ "799" => "Jalapa MX-TAB",
861
+ "800" => "Jalpa de Méndez MX-TAB",
862
+ "801" => "Jonuta MX-TAB",
863
+ "802" => "Macuspana MX-TAB",
864
+ "803" => "Nacajuca MX-TAB",
865
+ "804" => "Paraíso MX-TAB",
866
+ "805" => "Tacotalpa MX-TAB",
867
+ "806" => "Teapa MX-TAB",
868
+ "807" => "Tenosique MX-TAB",
869
+ "810" => "Ciudad Victoria MX-TAM",
870
+ "811" => "Altamira MX-TAM",
871
+ "812" => "Camargo MX-TAM",
872
+ "813" => "Ciudad Madero MX-TAM",
873
+ "813" => "Tampico",
874
+ "814" => "Ciudad Mante MX-TAM",
875
+ "815" => "Ciudad Miguel Aleman MX-TAM",
876
+ "816" => "Gonzalez MX-TAM",
877
+ "817" => "Gustavo Diaz Ordaz MX-TAM",
878
+ "818" => "Matamoros MX-TAM",
879
+ "819" => "Mier MX-TAM",
880
+ "820" => "Nva Ciudad Guerrero MX-TAM",
881
+ "821" => "Colombia",
882
+ "821" => "Nuevo Laredo MX-TAM",
883
+ "822" => "Hidalgo MX-TAM",
450
884
  "822" => "Reynosa",
451
- "823" => "Río Bravo",
452
- "825" => "Soto La Marina",
453
- "826" => "Valle Hermoso",
454
- "830" => "Tlaxcala",
455
- "832" => "Apizaco",
885
+ "823" => "Río Bravo MX-TAM",
886
+ "824" => "San Fernando MX-TAM",
887
+ "825" => "Soto la Marina MX-TAM",
888
+ "826" => "Valle Hermoso MX-TAM",
889
+ "827" => "Xicotencatl MX-TAM",
890
+ "830" => "Tlaxcala MX-TLA",
891
+ "831" => "Amaxac de Guerrero MX-TLA",
892
+ "832" => "Apizaco MX-TLA",
893
+ "833" => "Calpulalpan MX-TLA",
894
+ "834" => "Chiautempan MX-TLA",
456
895
  "834" => "Santa Ana Chiautempan",
896
+ "835" => "Huamantla MX-TLA",
897
+ "836" => "Papalotla MX-TLA",
898
+ "837" => "Santa Maria Nativitas MX-TLA",
899
+ "838" => "Tlaxco MX-TLA",
900
+ "839" => "Zacatelco MX-TLA",
457
901
  "840" => "Jalapa",
458
- "841" => "Acayucan",
459
- "843" => "Agua Dulce",
460
- "845" => "Álamo",
461
- "846" => "Altotonga",
462
- "848" => "Banderilla",
463
- "849" => "Boca del Río",
464
- "852" => "Ciudad Mendoza",
465
- "853" => "Coatepec",
466
- "854" => "Coatzacoalcos",
467
- "855" => "Córdoba",
468
- "856" => "Cosamaloapan",
469
- "860" => "Cuitláhuac",
470
- "863" => "Fortín de las Flores",
471
- "864" => "Gutiérrez Zamora",
472
- "865" => "Huatusco",
473
- "867" => "Isla",
474
- "868" => "Ixtaczoquitlán",
475
- "869" => "Jáltipan",
476
- "871" => "Juan Rodríguez Clara",
902
+ "840" => "Xalapa MX-VER",
903
+ "841" => "Acayucan MX-VER",
904
+ "842" => "Adalberto Tejeda MX-VER",
905
+ "843" => "Agua Dulce MX-VER",
906
+ "844" => "Agua Dulce (Papantla) MX-VER",
907
+ "845" => "Álamo MX-VER",
908
+ "846" => "Altotonga MX-VER",
909
+ "847" => "Alvarado MX-VER",
910
+ "848" => "Banderilla MX-VER",
911
+ "849" => "Boca del Río MX-VER",
912
+ "850" => "Catemaco MX-VER",
913
+ "851" => "Cerro Azul MX-VER",
914
+ "852" => "Ciudad Mendoza MX-VER",
915
+ "853" => "Coatepec MX-VER",
916
+ "854" => "Coatzacoalcos MX-VER",
917
+ "855" => "Córdoba MX-VER",
918
+ "856" => "Cosamaloapan MX-VER",
919
+ "858" => "Coscomatepec MX-VER",
920
+ "859" => "Cosoleacaque MX-VER",
921
+ "860" => "Cuitláhuac MX-VER",
922
+ "861" => "Chicontepec MX-VER",
923
+ "862" => "El Naranjal MX-VER",
924
+ "863" => "Fortín de las Flores MX-VER",
925
+ "864" => "Gutiérrez Zamora MX-VER",
926
+ "865" => "Huatusco MX-VER",
927
+ "866" => "Hueyapan de Ocampo MX-VER",
928
+ "867" => "Isla MX-VER",
929
+ "868" => "Ixtaczoquitlán MX-VER",
930
+ "869" => "Jáltipan de Morelos MX-VER",
931
+ "870" => "Jesus Carranza MX-VER",
932
+ "871" => "Juan Rodríguez Clara MX-VER",
933
+ "872" => "La Antigua MX-VER",
477
934
  "872" => "Villa José Cardel",
478
- "873" => "Las Choapas",
935
+ "873" => "Las Choapas MX-VER",
936
+ "874" => "Lerdo de Tejada MX-VER",
937
+ "875" => "Los Naranjos MX-VER",
479
938
  "875" => "Naranjos",
480
- "876" => "Martínez de la Torre",
481
- "877" => "Minatitlán",
482
- "878" => "Misantla",
483
- "879" => "Nanchital",
484
- "882" => "Orizaba",
485
- "885" => "Papantla",
486
- "886" => "Perote",
487
- "888" => "Poza Rica",
488
- "889" => "Río Blanco",
489
- "890" => "San Andrés Tuxtla",
490
- "891" => "San Rafael",
491
- "894" => "Platón Sánchez, Tantoyuca",
492
- "895" => "Tempoal",
493
- "898" => "Tierra Blanca",
494
- "901" => "Tlapacoyan",
939
+ "876" => "Martínez de la Torre MX-VER",
940
+ "877" => "Minatitlán MX-VER",
941
+ "878" => "Misantla MX-VER",
942
+ "879" => "Nanchital MX-VER",
943
+ "880" => "Naolinco MX-VER",
944
+ "881" => "Naranjos MX-VER",
945
+ "882" => "Orizaba MX-VER",
946
+ "883" => "Ozuluama MX-VER",
947
+ "884" => "Panuco MX-VER",
948
+ "885" => "Papantla MX-VER",
949
+ "886" => "Perote MX-VER",
950
+ "887" => "Playa Vicente MX-VER",
951
+ "888" => "Poza Rica MX-VER",
952
+ "889" => "Río Blanco MX-VER",
953
+ "890" => "San Andrés Tuxtla MX-VER",
954
+ "891" => "San Rafael MX-VER",
955
+ "892" => "Soledad de Doblado MX-VER",
956
+ "893" => "Tamiahua MX-VER",
957
+ "894" => "Platón Sánchez",
958
+ "894" => "Tantoyuca MX-VER",
959
+ "895" => "Tempoal de Sanchez MX-VER",
960
+ "896" => "Teocelo MX-VER",
961
+ "897" => "Tezonapa MX-VER",
962
+ "898" => "Tierra Blanca MX-VER",
963
+ "899" => "Tihuatlan MX-VER",
964
+ "900" => "Tlacotalpan MX-VER",
965
+ "901" => "Tlapacoyan MX-VER",
966
+ "902" => "Tres Valles MX-VER",
495
967
  "903" => "Túxpam de Rodríguez Cano",
496
- "905" => "Cd. Industrial Framboyan, Veracruz",
497
- "910" => "Mérida",
498
- "913" => "Motul",
499
- "914" => "Oxkutzcab",
968
+ "903" => "Tuxpan MX-VER",
969
+ "904" => "Vega de Alatorre MX-VER",
970
+ "905" => "Ciudad Industrial Framboyan",
971
+ "905" => "Veracruz MX-VER",
972
+ "906" => "Xico MX-VER",
973
+ "910" => "Mérida MX-YUC",
974
+ "911" => "Izamal MX-YUC",
975
+ "912" => "Maxcanu MX-YUC",
976
+ "913" => "Motul MX-YUC",
977
+ "914" => "Oxkutzcab MX-YUC",
500
978
  "915" => "Progreso",
501
- "917" => "Ticul",
502
- "918" => "Tizimín",
503
- "920" => "Valladolid",
504
- "930" => "Zacatecas",
505
- "933" => "Fresnillo",
506
- "934" => "Guadalupe",
507
- "935" => "Jalpa",
508
- "936" => "Jerez de G. Salinas",
509
- "938" => "Juchipila",
510
- "939" => "Loreto",
511
- "946" => "Nochistlán",
512
- "958" => "Valparaíso",
513
- "960" => "Calera de V. Rosales"
979
+ "915" => "Puerto Progreso MX-YUC",
980
+ "916" => "Tekax MX-YUC",
981
+ "917" => "Ticul MX-YUC",
982
+ "918" => "Tizimín MX-YUC",
983
+ "919" => "Uman MX-YUC",
984
+ "920" => "Valladolid MX-YUC",
985
+ "930" => "Zacatecas MX-ZAC",
986
+ "931" => "Apozol MX-ZAC",
987
+ "932" => "Concepcion del Oro MX-ZAC",
988
+ "933" => "Fresnillo MX-ZAC",
989
+ "934" => "Guadalupe MX-ZAC",
990
+ "935" => "Jalpa MX-ZAC",
991
+ "936" => "Jerez de Garcia Salinas MX-ZAC",
992
+ "937" => "Juan Aldama MX-ZAC",
993
+ "938" => "Juchipila MX-ZAC",
994
+ "939" => "Loreto MX-ZAC",
995
+ "940" => "Luis Moya MX-ZAC",
996
+ "941" => "Miguel Auza MX-ZAC",
997
+ "942" => "Monte Escobedo MX-ZAC",
998
+ "943" => "Morelos MX-ZAC",
999
+ "944" => "Moyahua de Estrada MX-ZAC",
1000
+ "945" => "Nieves MX-ZAC",
1001
+ "946" => "Nochistlán de Mejia MX-ZAC",
1002
+ "947" => "Ojocaliente MX-ZAC",
1003
+ "948" => "Pinos MX-ZAC",
1004
+ "949" => "Rio Grande MX-ZAC",
1005
+ "950" => "Sain Alto MX-ZAC",
1006
+ "951" => "San Pedro Apulco MX-ZAC",
1007
+ "952" => "Sombrerete MX-ZAC",
1008
+ "953" => "Tabasco MX-ZAC",
1009
+ "954" => "Tepechitlan MX-ZAC",
1010
+ "955" => "Tepetongo MX-ZAC",
1011
+ "956" => "Teul de Glez. Ortega MX-ZAC",
1012
+ "957" => "Cosautlan MX-VER",
1013
+ "958" => "Valparaíso MX-ZAC",
1014
+ "959" => "Valla de Cos MX-ZAC",
1015
+ "960" => "Victor Rosales MX-ZAC",
1016
+ "961" => "Villa Gonzalez Ortega MX-ZAC",
1017
+ "962" => "Villanueva MX-ZAC",
1018
+ "974" => "Crédito Automotriz",
1019
+ "975" => "Tarjeta de Crédito",
1020
+ "969" => "Cuenta de fondos de pago electrónico",
1021
+ "974" => "Crédito personal"
514
1022
  }.freeze
515
1023
 
516
1024
  CLABE_WEIGHT_FACTOR_MAP = [3, 7, 1].freeze
@@ -518,7 +1026,7 @@ module Clabe
518
1026
  private_class_method def self.compute_checksum(clabe)
519
1027
  result = 0
520
1028
 
521
- clabe.split('')[0...17].each_with_index do |val, index|
1029
+ clabe.split("")[0...17].each_with_index do |val, index|
522
1030
  result += (val.to_i * CLABE_WEIGHT_FACTOR_MAP[index % 3]) % 10
523
1031
  end
524
1032
 
@@ -553,23 +1061,23 @@ module Clabe
553
1061
  clabe_validation[:errors] = []
554
1062
 
555
1063
  unless clabe.length == 18
556
- clabe_validation[:errors] << 'invalid length'
1064
+ clabe_validation[:errors] << "invalid length"
557
1065
  end
558
1066
 
559
1067
  unless (clabe =~ /[^0-9]/).nil?
560
- clabe_validation[:errors] << 'invalid characters'
1068
+ clabe_validation[:errors] << "invalid characters"
561
1069
  end
562
1070
 
563
1071
  if clabe_params[:bank].nil?
564
- clabe_validation[:errors] << 'invalid bank'
1072
+ clabe_validation[:errors] << "invalid bank"
565
1073
  end
566
1074
 
567
1075
  if clabe_params[:city].nil?
568
- clabe_validation[:errors] << 'invalid city'
1076
+ clabe_validation[:errors] << "invalid city"
569
1077
  end
570
1078
 
571
1079
  unless clabe_params[:checksum] == clabe_params[:real_checksum]
572
- clabe_validation[:errors] << 'must have a valid control digit'
1080
+ clabe_validation[:errors] << "must have a valid control digit"
573
1081
  end
574
1082
 
575
1083
  unless clabe_validation.errors.empty?