clabe-validator
Advanced tools
Comparing version 1.0.6 to 1.1.0
224
clabe.js
@@ -1,2 +0,2 @@ | ||
// CLABE Validator v1.0.6 | ||
// CLABE Validator v1.1.0 | ||
// github.com/center-key/clabe-validator | ||
@@ -7,3 +7,3 @@ // MIT License | ||
version: '1.0.6', | ||
version: '1.1.0', | ||
@@ -28,2 +28,3 @@ calcChecksum: function(clabeNum) { | ||
var cityCode = clabeNum.substr(3, 3); | ||
var account = clabeNum.substr(6, 11); | ||
var checksum = parseInt(clabeNum.substr(17, 1)); | ||
@@ -38,3 +39,3 @@ function makeCitiesMap() { | ||
makeCitiesMap(); | ||
var bank = clabe.banksMap[parseInt(bankCode)]; | ||
var bank = clabe.banksMap[parseInt(bankCode)] || {}; | ||
var city = clabe.citiesMap[parseInt(cityCode)]; | ||
@@ -47,3 +48,3 @@ function calcChecksum() { return clabe.calcChecksum(clabeNum); } | ||
calcChecksum() !== checksum ? 'Invalid checksum, last digit should be: ' + calcChecksum() : | ||
!bank ? 'Invalid bank code' : | ||
!bank.tag ? 'Invalid bank code' : | ||
!city ? 'Invalid city code' : | ||
@@ -55,6 +56,10 @@ false | ||
return { | ||
ok: !error, | ||
error: !!error, | ||
message: error || 'Valid: ' + bank + ' (' + city + ')', | ||
bank: bank, | ||
city: city | ||
message: error || 'Valid: ' + bank.name + ' (' + city + ')', | ||
tag: bank.tag, | ||
bank: bank.name, | ||
city: city, | ||
account: account, | ||
code: { bank: bankCode, city: cityCode } | ||
}; | ||
@@ -74,103 +79,104 @@ }, | ||
banksMap: { //source: https://es.wikipedia.org/wiki/CLABE#C.C3.B3digo_de_banco (Jan 9, 2017) | ||
2: 'Banco Nacional de México', | ||
6: 'Banco Nacional de Comercio Exterior', | ||
9: 'Banco Nacional de Obras y Servicios Públicos', | ||
12: 'BBVA Bancomer', | ||
14: 'Banco Santander', | ||
19: 'Banco Nacional del Ejército', | ||
21: 'HSBC México', | ||
22: 'GE Money Bank', | ||
30: 'Banco del Bajío', | ||
32: 'IXE Banco', | ||
36: 'Banco Inbursa', | ||
37: 'Banco Interacciones', | ||
42: 'Banca Mifel', | ||
44: 'Scotiabank Inverlat', | ||
58: 'Banco Regional de Monterrey', | ||
59: 'Banco Invex', | ||
60: 'Bansi', | ||
62: 'Banca Afirme', | ||
72: 'Banco Mercantil del Norte', | ||
102: 'ABN AMRO Bank México', | ||
103: 'American Express Bank (México)', | ||
106: 'Bank of America México', | ||
108: 'Bank of Tokyo-Mitsubishi UFJ (México)', | ||
110: 'Banco J.P. Morgan', | ||
112: 'Banco Monex', | ||
113: 'Banco Ve por Mas', | ||
116: 'ING Bank (México)', | ||
124: 'Deutsche Bank México', | ||
126: 'Banco Credit Suisse (México)', | ||
127: 'Banco Azteca', | ||
128: 'Banco Autofin México', | ||
129: 'Barclays Bank México', | ||
130: 'Banco Compartamos', | ||
131: 'Banco Ahorro Famsa', | ||
132: 'Banco Multiva', | ||
133: 'Prudencial Bank', | ||
134: 'Banco Wal Mart de México Adelante', | ||
135: 'Nacional Financiera', | ||
136: 'Banco Regional', | ||
137: 'BanCoppel', | ||
138: 'Banco Amigo', | ||
139: 'UBS Banco', | ||
140: 'Banco Fácil', | ||
141: 'Volkswagen Bank', | ||
143: 'Consultoría Internacional Banco', | ||
145: 'Banco BASE de I.B.M.', | ||
147: 'Bankaool, Institución de Banca Múltiple', | ||
150: 'Banco Inmobiliario Mexicano', | ||
156: 'Banco Sabadell, S.A. I.B.M.', | ||
166: 'Banco del Ahorro Nacional y Servicios Financieros', | ||
168: 'Sociedad Hipotecaria Federal', | ||
600: 'Monex Casa de Bolsa', | ||
601: 'GBM Grupo Bursátil Mexicano', | ||
602: 'Masari Casa de Cambio', | ||
604: 'Inversora Bursátil', | ||
605: 'Valué, Casa de Bolsa', | ||
606: 'Base Internacional Casa de Bolsa', | ||
607: 'Casa de Cambio Tiber', | ||
608: 'Vector Casa de Bolsa', | ||
610: 'B y B Casa de Cambio', | ||
611: 'Intercam Casa de Cambio', | ||
613: 'Multivalores Casa de Bolsa Multiva Gpo. Fin.', | ||
614: 'Acciones y Valores Banamex', | ||
615: 'Merrill Lynch México', | ||
616: 'Casa de Bolsa Finamex', | ||
617: 'Valores Mexicanos', | ||
618: 'Única Casa de Cambio', | ||
619: 'MAPFRE Tepeyac', | ||
620: 'Profuturo G.N.P.', | ||
621: 'Actinver Casa de Bolsa', | ||
622: 'Actinver', | ||
623: 'Skandia Vida', | ||
624: 'Consultoría Internacional Casa de Cambio', | ||
626: 'Deutsche Securities, S.A. de C.V.', | ||
627: 'Zurich Compañía de Seguros', | ||
628: 'Zurich Vida, Compañía de Seguros', | ||
629: 'Hipotecaria su Casita', | ||
630: 'Intercam Casa de Bolsa', | ||
631: 'Vanguardia Casa de Bolsa', | ||
632: 'Bulltick Casa de Bolsa', | ||
633: 'Sterling Casa de Cambio', | ||
634: 'Fincomún, Servicios Financieros Comunitarios', | ||
636: 'HDI Seguros, S.A. de C.V.', | ||
637: 'OrderExpress Casa de Cambio AAC', | ||
638: 'Akala, Sociedad Financiera Popular', | ||
640: 'J.P. Morgan Casa de Bolsa', | ||
642: 'Operadora de Recursos Reforma, S.A. de C.V.', | ||
646: 'Sistema de Transferencias y Pagos STP', | ||
647: 'Telecomunicaciones de México', | ||
648: 'Evercore Casa de Bolsa, S.A. de C.V.', | ||
649: 'Skandia Operadora', | ||
651: 'Seguros Monterrey New York Life, S.A de C.V.', | ||
652: 'Solución Asea, S.A. de C.V., Sociedad Financiera Popular', | ||
653: 'Kuspit Casa de Bolsa, S.A. de C.V.', | ||
655: 'J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.', | ||
656: 'UNAGRA, S.A. de C.V., S.F.P.', | ||
659: 'Opciones Empresariales Del Noreste, S.A. DE C.V.', | ||
670: 'Libertad Servicios Financieros, S.A. De C.V.', | ||
901: 'CLS Bank International', | ||
902: 'SD. INDEVAL', | ||
999: 'N/A' | ||
2: { tag: 'BANAMEX', name: 'Banco Nacional de México, S.A.' }, | ||
6: { tag: 'BANCOMEXT', name: 'Banco Nacional de Comercio Exterior' }, | ||
9: { tag: 'BANOBRAS', name: 'Banco Nacional de Obras y Servicios Públicos' }, | ||
12: { tag: 'BBVA BANCOMER', name: 'BBVA Bancomer, S.A.' }, | ||
14: { tag: 'SANTANDER', name: 'Banco Santander, S.A.' }, | ||
19: { tag: 'BANJERCITO', name: 'Banco Nacional del Ejército, Fuerza Aérea y Armada' }, | ||
21: { tag: 'HSBC', name: 'HSBC México, S.A.' }, | ||
22: { tag: 'GE MONEY', name: 'GE Money Bank, S.A.' }, | ||
30: { tag: 'BAJÍO', name: 'Banco del Bajío, S.A.' }, | ||
32: { tag: 'IXE', name: 'IXE Banco, S.A.' }, | ||
36: { tag: 'INBURSA', name: 'Banco Inbursa, S.A.' }, | ||
37: { tag: 'INTERACCIONES', name: 'Banco Interacciones, S.A.' }, | ||
42: { tag: 'MIFEL', name: 'Banca Mifel, S.A.' }, | ||
44: { tag: 'SCOTIABANK', name: 'Scotiabank Inverlat, S.A.' }, | ||
58: { tag: 'BANREGIO', name: 'Banco Regional de Monterrey, S.A.' }, | ||
59: { tag: 'INVEX', name: 'Banco Invex, S.A.' }, | ||
60: { tag: 'BANSI', name: 'Bansi, S.A.' }, | ||
62: { tag: 'AFIRME', name: 'Banca Afirme, S.A.' }, | ||
72: { tag: 'BANORTE', name: 'Banco Mercantil del Norte, S.A.' }, | ||
102: { tag: 'ABNAMRO', name: 'ABN AMRO Bank México, S.A.' }, | ||
103: { tag: 'AMERICAN EXPRESS', name: 'American Express Bank (México), S.A.' }, | ||
106: { tag: 'BAMSA', name: 'Bank of America México, S.A.' }, | ||
108: { tag: 'TOKYO', name: 'Bank of Tokyo-Mitsubishi UFJ (México), S.A.' }, | ||
110: { tag: 'JP MORGAN', name: 'Banco J.P. Morgan, S.A.' }, | ||
112: { tag: 'BMONEX', name: 'Banco Monex, S.A.' }, | ||
113: { tag: 'VE POR MAS', name: 'Banco Ve por Mas, S.A.' }, | ||
116: { tag: 'ING', name: 'ING Bank (México), S.A.' }, | ||
124: { tag: 'DEUTSCHE', name: 'Deutsche Bank México, S.A.' }, | ||
126: { tag: 'CREDIT SUISSE', name: 'Banco Credit Suisse (México), S.A.' }, | ||
127: { tag: 'AZTECA', name: 'Banco Azteca, S.A.' }, | ||
128: { tag: 'AUTOFIN', name: 'Banco Autofin México, S.A.' }, | ||
129: { tag: 'BARCLAYS', name: 'Barclays Bank México, S.A.' }, | ||
130: { tag: 'COMPARTAMOS', name: 'Banco Compartamos, S.A.' }, | ||
131: { tag: 'FAMSA', name: 'Banco Ahorro Famsa, S.A.' }, | ||
132: { tag: 'BMULTIVA', name: 'Banco Multiva, S.A.' }, | ||
133: { tag: 'PRUDENTIAL', name: 'Prudencial Bank, S.A.' }, | ||
134: { tag: 'WAL-MART', name: 'Banco Wal Mart de México Adelante, S.A.' }, | ||
135: { tag: 'NAFIN', name: 'Nacional Financiera, S.N.C.' }, | ||
136: { tag: 'REGIONAL', name: 'Banco Regional, S.A.' }, | ||
137: { tag: 'BANCOPPEL', name: 'BanCoppel, S.A.' }, | ||
138: { tag: 'ABC CAPITAL', name: 'ABC Capital, S.A. I.B.M.' }, | ||
139: { tag: 'UBS BANK', name: 'UBS Banco, S.A.' }, | ||
140: { tag: 'FÁCIL', name: 'Banco Fácil, S.A.' }, | ||
141: { tag: 'VOLKSWAGEN', name: 'Volkswagen Bank S.A. Institución de Banca Múltiple' }, | ||
143: { tag: 'CIBanco', name: 'Consultoría Internacional Banco, S.A.' }, | ||
145: { tag: 'BBASE', name: 'Banco BASE, S.A. de I.B.M.' }, | ||
147: { tag: 'BANKAOOL', name: 'Bankaool, S.A., Institución de Banca Múltiple' }, | ||
148: { tag: 'PagaTodo', name: 'Banco PagaTodo S.A., Institución de Banca Múltiple' }, | ||
150: { tag: 'BIM', name: 'Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple' }, | ||
156: { tag: 'SABADELL', name: 'Banco Sabadell, S.A. I.B.M.' }, | ||
166: { tag: 'BANSEFI', name: 'Banco del Ahorro Nacional y Servicios Financieros, S.N.C.' }, | ||
168: { tag: 'HIPOTECARIA FEDERAL', name: 'Sociedad Hipotecaria Federal, S.N.C.' }, | ||
600: { tag: 'MONEXCB', name: 'Monex Casa de Bolsa, S.A. de C.V.' }, | ||
601: { tag: 'GBM', name: 'GBM Grupo Bursátil Mexicano, S.A. de C.V.' }, | ||
602: { tag: 'MASARI CC.', name: 'Masari Casa de Cambio, S.A. de C.V.' }, | ||
604: { tag: 'C.B. INBURSA', name: 'Inversora Bursátil, S.A. de C.V.' }, | ||
605: { tag: 'VALUÉ', name: 'Valué, S.A. de C.V., Casa de Bolsa' }, | ||
606: { tag: 'CB BASE', name: 'Base Internacional Casa de Bolsa, S.A. de C.V.' }, | ||
607: { tag: 'TIBER', name: 'Casa de Cambio Tiber, S.A. de C.V.' }, | ||
608: { tag: 'VECTOR', name: 'Vector Casa de Bolsa, S.A. de C.V.' }, | ||
610: { tag: 'B&B', name: 'B y B Casa de Cambio, S.A. de C.V.' }, | ||
611: { tag: 'INTERCAM', name: 'Intercam Casa de Cambio, S.A. de C.V.' }, | ||
613: { tag: 'MULTIVA', name: 'Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin.' }, | ||
614: { tag: 'ACCIVAL', name: 'Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa' }, | ||
615: { tag: 'MERRILL LYNCH', name: 'Merrill Lynch México, S.A. de C.V., Casa de Bolsa' }, | ||
616: { tag: 'FINAMEX', name: 'Casa de Bolsa Finamex, S.A. de C.V.' }, | ||
617: { tag: 'VALMEX', name: 'Valores Mexicanos Casa de Bolsa, S.A. de C.V.' }, | ||
618: { tag: 'ÚNICA', name: 'Única Casa de Cambio, S.A. de C.V.' }, | ||
619: { tag: 'ASEGURADORA MAPFRE', name: 'MAPFRE Tepeyac S.A.' }, | ||
620: { tag: 'AFORE PROFUTURO', name: 'Profuturo G.N.P., S.A. de C.V.' }, | ||
621: { tag: 'CB ACTINBER', name: 'Actinver Casa de Bolsa, S.A. de C.V.' }, | ||
622: { tag: 'ACTINVE SI', name: 'Actinver S.A. de C.V.' }, | ||
623: { tag: 'SKANDIA', name: 'Skandia Vida S.A. de C.V.' }, | ||
624: { tag: 'CONSULTORÍA', name: 'Consultoría Internacional Casa de Cambio, S.A. de C.V.' }, | ||
626: { tag: 'CBDEUTSCHE', name: 'Deutsche Securities, S.A. de C.V.' }, | ||
627: { tag: 'ZURICH', name: 'Zurich Compañía de Seguros, S.A.' }, | ||
628: { tag: 'ZURICHVI', name: 'Zurich Vida, Compañía de Seguros, S.A.' }, | ||
629: { tag: 'HIPOTECARIA SU CASITA', name: 'Hipotecaria su Casita, S.A. de C.V.' }, | ||
630: { tag: 'C.B. INTERCAM', name: 'Intercam Casa de Bolsa, S.A. de C.V.' }, | ||
631: { tag: 'C.B. VANGUARDIA', name: 'Vanguardia Casa de Bolsa, S.A. de C.V.' }, | ||
632: { tag: 'BULLTICK C.B.', name: 'Bulltick Casa de Bolsa, S.A. de C.V.' }, | ||
633: { tag: 'STERLING', name: 'Sterling Casa de Cambio, S.A. de C.V.' }, | ||
634: { tag: 'FINCOMUN', name: 'Fincomún, Servicios Financieros Comunitarios, S.A. de C.V.' }, | ||
636: { tag: 'HDI SEGUROS', name: 'HDI Seguros, S.A. de C.V.' }, | ||
637: { tag: 'ORDER', name: 'OrderExpress Casa de Cambio , S.A. de C.V. AAC' }, | ||
638: { tag: 'AKALA', name: 'Akala, S.A. de C.V., Sociedad Financiera Popular' }, | ||
640: { tag: 'JP MORGAN C.B.', name: 'J.P. Morgan Casa de Bolsa, S.A. de C.V.' }, | ||
642: { tag: 'REFORMA', name: 'Operadora de Recursos Reforma, S.A. de C.V.' }, | ||
646: { tag: 'STP', name: 'Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R.' }, | ||
647: { tag: 'TELECOMM', name: 'Telecomunicaciones de México' }, | ||
648: { tag: 'EVERCORE', name: 'Evercore Casa de Bolsa, S.A. de C.V.' }, | ||
649: { tag: 'SKANDIA', name: 'Skandia Operadora S.A. de C.V.' }, | ||
651: { tag: 'SEGMTY', name: 'Seguros Monterrey New York Life, S.A de C.V.' }, | ||
652: { tag: 'ASEA', name: 'Solución Asea, S.A. de C.V., Sociedad Financiera Popular' }, | ||
653: { tag: 'KUSPIT', name: 'Kuspit Casa de Bolsa, S.A. de C.V.' }, | ||
655: { tag: 'SOFIEXPRESS', name: 'J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.' }, | ||
656: { tag: 'UNAGRA', name: 'UNAGRA, S.A. de C.V., S.F.P.' }, | ||
659: { tag: 'OPCIONES EMPRESARIALES DEL NOROESTE', name: 'Opciones Empresariales Del Noreste, S.A. DE C.V.' }, | ||
670: { tag: 'LIBERTAD', name: 'Libertad Servicios Financieros, S.A. De C.V.' }, | ||
901: { tag: 'CLS', name: 'CLS Bank International' }, | ||
902: { tag: 'INDEVAL', name: 'SD. INDEVAL, S.A. de C.V.' }, | ||
999: { tag: 'N/A', name: 'N/A' } | ||
}, | ||
@@ -651,1 +657,3 @@ | ||
module.exports = clabe; //Node.js module loading system (CommonJS) | ||
if (typeof window === 'object') | ||
window.clabe = clabe; //support both global and window property |
@@ -1,2 +0,2 @@ | ||
//! CLABE Validator v1.0.6 ~ github.com/center-key/clabe-validator ~ MIT License | ||
var clabe={version:"1.0.6",calcChecksum:function(a){var o=0;return a.split("").slice(0,17).forEach(function(a,e){o+=parseInt(a)*[3,7,1][e%3]%10}),(10-o%10)%10},validate:function(a){if("string"!=typeof a)throw"clabe.validator.check(clabeNum) -- Expected string, got: "+typeof a;var e=a.substr(0,3),o=a.substr(3,3),n=parseInt(a.substr(17,1));clabe.citiesMap||(clabe.citiesMap={},clabe.cities.forEach(function(a){var e;clabe.citiesMap[a[0]]=(e=a[0],(clabe.citiesMap[e]?clabe.citiesMap[e]+", ":"")+a[1])}));var l=clabe.banksMap[parseInt(e)],i=clabe.citiesMap[parseInt(o)];function c(){return clabe.calcChecksum(a)}var r=18!==a.length?"Must be exactly 18 digits long":/[0-9]{18}/.test(a)?c()!==n?"Invalid checksum, last digit should be: "+c():l?!i&&"Invalid city code":"Invalid bank code":"Must be only numeric digits (no letters)";return{error:!!r,message:r||"Valid: "+l+" ("+i+")",bank:l,city:i}},calculate:function(a,e,o){function n(a,e){return function a(e,o){return e.length<o?a("0"+e,o):e}(""+a,e).slice(-e)}var l=n(a,3)+n(e,3)+n(o,11);return l+clabe.calcChecksum(l)},banksMap:{2:"Banco Nacional de México",6:"Banco Nacional de Comercio Exterior",9:"Banco Nacional de Obras y Servicios Públicos",12:"BBVA Bancomer",14:"Banco Santander",19:"Banco Nacional del Ejército",21:"HSBC México",22:"GE Money Bank",30:"Banco del Bajío",32:"IXE Banco",36:"Banco Inbursa",37:"Banco Interacciones",42:"Banca Mifel",44:"Scotiabank Inverlat",58:"Banco Regional de Monterrey",59:"Banco Invex",60:"Bansi",62:"Banca Afirme",72:"Banco Mercantil del Norte",102:"ABN AMRO Bank México",103:"American Express Bank (México)",106:"Bank of America México",108:"Bank of Tokyo-Mitsubishi UFJ (México)",110:"Banco J.P. Morgan",112:"Banco Monex",113:"Banco Ve por Mas",116:"ING Bank (México)",124:"Deutsche Bank México",126:"Banco Credit Suisse (México)",127:"Banco Azteca",128:"Banco Autofin México",129:"Barclays Bank México",130:"Banco Compartamos",131:"Banco Ahorro Famsa",132:"Banco Multiva",133:"Prudencial Bank",134:"Banco Wal Mart de México Adelante",135:"Nacional Financiera",136:"Banco Regional",137:"BanCoppel",138:"Banco Amigo",139:"UBS Banco",140:"Banco Fácil",141:"Volkswagen Bank",143:"Consultoría Internacional Banco",145:"Banco BASE de I.B.M.",147:"Bankaool, Institución de Banca Múltiple",150:"Banco Inmobiliario Mexicano",156:"Banco Sabadell, S.A. I.B.M.",166:"Banco del Ahorro Nacional y Servicios Financieros",168:"Sociedad Hipotecaria Federal",600:"Monex Casa de Bolsa",601:"GBM Grupo Bursátil Mexicano",602:"Masari Casa de Cambio",604:"Inversora Bursátil",605:"Valué, Casa de Bolsa",606:"Base Internacional Casa de Bolsa",607:"Casa de Cambio Tiber",608:"Vector Casa de Bolsa",610:"B y B Casa de Cambio",611:"Intercam Casa de Cambio",613:"Multivalores Casa de Bolsa Multiva Gpo. Fin.",614:"Acciones y Valores Banamex",615:"Merrill Lynch México",616:"Casa de Bolsa Finamex",617:"Valores Mexicanos",618:"Única Casa de Cambio",619:"MAPFRE Tepeyac",620:"Profuturo G.N.P.",621:"Actinver Casa de Bolsa",622:"Actinver",623:"Skandia Vida",624:"Consultoría Internacional Casa de Cambio",626:"Deutsche Securities, S.A. de C.V.",627:"Zurich Compañía de Seguros",628:"Zurich Vida, Compañía de Seguros",629:"Hipotecaria su Casita",630:"Intercam Casa de Bolsa",631:"Vanguardia Casa de Bolsa",632:"Bulltick Casa de Bolsa",633:"Sterling Casa de Cambio",634:"Fincomún, Servicios Financieros Comunitarios",636:"HDI Seguros, S.A. de C.V.",637:"OrderExpress Casa de Cambio AAC",638:"Akala, Sociedad Financiera Popular",640:"J.P. Morgan Casa de Bolsa",642:"Operadora de Recursos Reforma, S.A. de C.V.",646:"Sistema de Transferencias y Pagos STP",647:"Telecomunicaciones de México",648:"Evercore Casa de Bolsa, S.A. de C.V.",649:"Skandia Operadora",651:"Seguros Monterrey New York Life, S.A de C.V.",652:"Solución Asea, S.A. de C.V., Sociedad Financiera Popular",653:"Kuspit Casa de Bolsa, S.A. de C.V.",655:"J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.",656:"UNAGRA, S.A. de C.V., S.F.P.",659:"Opciones Empresariales Del Noreste, S.A. DE C.V.",670:"Libertad Servicios Financieros, S.A. De C.V.",901:"CLS Bank International",902:"SD. INDEVAL",999:"N/A"},cities:[[10,"Aguascalientes"],[12,"Calvillo"],[14,"Jesús María"],[20,"Mexicali"],[22,"Ensenada"],[27,"Tecate"],[27,"Tijuana"],[28,"La Mesa"],[28,"Rosarito"],[28,"Tijuana [alternate]"],[40,"La Paz"],[41,"Cabo San Lucas"],[42,"Ciudad Constitución"],[43,"Guerrero Negro"],[45,"San José del Cabo"],[46,"Santa Rosalía"],[50,"Campeche"],[51,"Calkiní"],[52,"Ciudad del Carmen"],[53,"Champotón"],[60,"Gómez Palacio"],[60,"Torreón"],[62,"Ciudad Acuña"],[68,"Monclova"],[71,"Nava"],[72,"Nueva Rosita"],[74,"Parras de la Fuente"],[75,"Piedras Negras"],[76,"Ramos Arizpe"],[77,"Sabinas"],[78,"Saltillo"],[80,"San Pedro de las Colonias"],[90,"Colima"],[95,"Manzanillo"],[97,"Tecomán"],[100,"Terán"],[100,"Tuxtla Gutiérrez"],[103,"Arriaga"],[107,"Cintalapa"],[109,"Comitán"],[109,"Villa Las Rosas"],[111,"Chiapa de Corso"],[113,"F. Comalapa"],[114,"Huixtla"],[123,"Ocosingo"],[124,"Ocozocuautla"],[125,"Palenque"],[126,"Pichucalco"],[127,"Pijijiapan"],[128,"Reforma"],[130,"San Cristóbal de las Casas"],[131,"Simojovel"],[133,"Tapachula"],[135,"Tonala"],[137,"Venustiano Carranza"],[138,"Villa Flores"],[140,"Yajalón"],[150,"Chihuahua"],[150,"Ciudad Delicias"],[152,"Ciudad Anáhuac"],[155,"Ciudad Camargo"],[158,"Ciudad Cuauhtémoc"],[161,"Ciudad Guerrero"],[162,"Parral"],[163,"Ciudad Jiménez"],[164,"Ciudad Juárez"],[165,"Ciudad Madera"],[167,"El Molino de Namiquipa"],[168,"Nuevo Casas Grandes"],[180,"Atizapan"],[180,"Chalco"],[180,"Ciudad de México"],[180,"Coacalco"],[180,"Cuautitlán Izcalli"],[180,"Cuautitlán"],[180,"Ecatepec"],[180,"Huehuetoca"],[180,"Huixquilucan"],[180,"Ixtapaluca"],[180,"Los Reyes La Paz"],[180,"Naucalpan"],[180,"Nezahualcóyotl"],[180,"Tecamac"],[180,"Teotihuacán"],[180,"Texcoco"],[180,"Tlalnepantla"],[190,"Durango"],[198,"N/A"],[201,"Tepehuanes"],[202,"Vicente Guerrero"],[210,"Guanajuato"],[211,"Abasolo"],[212,"Acámbaro"],[213,"Apaseo el Alto"],[214,"Apaseo el Grande"],[215,"Celaya"],[216,"Comonfort"],[217,"Coroneo"],[218,"Cortazar"],[219,"Cuerámaro"],[220,"Dolores Hidalgo"],[222,"Irapuato"],[223,"Jaral del Progreso"],[224,"Jerécuaro"],[225,"León"],[226,"Cd. Manuel Doblado"],[227,"Moroleón"],[229,"Pénjamo"],[232,"Romita"],[233,"Salamanca"],[234,"Salvatierra"],[236,"San Felipe"],[237,"Purísima de Bustos"],[237,"San Francisco del Rincoón"],[238,"San José Iturbide"],[239,"San Luis de la Paz"],[240,"San Miguel Allende"],[244,"Silao"],[247,"Uriangato"],[248,"Valle de Santiago"],[249,"Yuriria"],[260,"Chilpancingo"],[261,"Acapulco"],[263,"Arcelia"],[264,"Atoyac de Álvarez"],[266,"Ciudad Altamirano"],[267,"Coyuca de Benítez"],[270,"Chilapa"],[271,"Huitzuco"],[272,"Iguala"],[272,"La Sabana"],[274,"Cuajinicuilapa"],[274,"Ometepec"],[275,"San Marcos"],[276,"Taxco"],[278,"Teloloapan"],[281,"Tlapa"],[282,"Ixtapa Zihuatanejo"],[282,"Zihuatanejo"],[290,"Pachuca"],[291,"Actopan"],[292,"Apam"],[293,"Atotonilco el Grande"],[294,"Ciudad Sahagún"],[294,"Teocaltiche"],[295,"Cuautepec"],[296,"Huejutla"],[297,"Huichapan"],[298,"Ixmiquilpan"],[303,"Progreso de Obregón"],[305,"Tepeapulco"],[308,"Tizayuca"],[311,"Tula de Allende"],[312,"Tulancingo"],[313,"Zacualtipán"],[314,"Zimapán"],[320,"El Salto"],[320,"Guadalajara"],[320,"San Pedro Tlaquepaque"],[320,"Tlajomulco"],[320,"Tonala [alternate]"],[320,"Zapopan"],[326,"Ameca"],[327,"Arandas"],[330,"Atotonilco el Alto"],[331,"Atequiza"],[333,"Autlán"],[334,"Azteca"],[340,"Casimiro Castillo"],[341,"Cihuatlán"],[342,"Ciudad Guzmán"],[346,"Chapala"],[348,"El Grullo"],[355,"Ixtlahuacán del Río"],[356,"Jalostotitlán"],[357,"Jamay"],[361,"La Barca"],[362,"Lagos de Moreno"],[370,"Ocotlán"],[373,"Pihuamo"],[375,"Las Juntas"],[375,"Nuevo Vallarta"],[375,"Pitillal"],[375,"Puerto Vallarta"],[381,"San Juan de los Lagos"],[382,"N/A"],[384,"San Miguel el Alto"],[385,"San Patricio Melaque"],[386,"Sayula"],[387,"Tala"],[389,"Tamazula de Gordiano"],[391,"Tecalitlán"],[396,"Tepatitlán"],[397,"Tequila"],[403,"Tototlán"],[404,"Túxpam"],[411,"Villa Hidalgo"],[413,"Zacoalco de Torres"],[414,"Zapotiltic"],[416,"Zapotlanejo"],[420,"Toluca"],[421,"Acambay"],[422,"Almoloya de Juárez"],[424,"Amecameca"],[425,"Apaxco"],[426,"Atlacomulco"],[428,"Coatepec de Harinas"],[430,"Chicoloapan"],[431,"Chiconcuac"],[432,"El Oro"],[433,"Ixtapan de la Sal"],[434,"Ixtlahuaca"],[435,"Jilotepec"],[438,"Lerma"],[441,"Metepec"],[443,"Otumba"],[445,"San Mateo Atenco"],[446,"Tejupilco"],[448,"Temascaltepec"],[449,"Temoaya"],[450,"Tenancingo"],[451,"Tenago del Valle"],[453,"Santiago Tiangistenco"],[455,"Tultepec"],[456,"Tultitlán"],[457,"Valle de Bravo"],[460,"Villa Nicolás Romero"],[463,"Zumpango"],[470,"Morelia"],[472,"Aguililla"],[476,"Apatzingán"],[480,"Ciudad Hidalgo"],[483,"Cotija"],[484,"Cuitzeo"],[492,"Huetamo"],[493,"Jacona"],[494,"Jiquilpan"],[496,"La Piedad"],[497,"Lázaro Cárdenas"],[498,"Los Reyes"],[499,"Maravatío"],[501,"Nueva Italia"],[506,"Pátzcuaro"],[508,"Purépero"],[509,"Puruandiro"],[512,"Sahuayo"],[515,"Tacámbaro"],[517,"Tangancícuaro"],[519,"Tepalcatepec"],[523,"Tlazazalca"],[528,"Uruapan"],[533,"Yurécuaro"],[534,"Zacapu"],[535,"Zamora"],[536,"Zinapécuaro"],[537,"Zitácuaro"],[540,"Cuernavaca"],[542,"Cuautla"],[542,"Oaxtepec, Morelos"],[543,"Jiutepec"],[544,"Jojutla"],[545,"Puente de Ixtla"],[546,"Temixco"],[548,"Tetecala"],[549,"Yautepec"],[552,"Zacatepec"],[560,"Tepic"],[561,"Acaponeta"],[562,"Ahuacatlán"],[564,"Compostela"],[566,"Ixtlán del Río"],[571,"San Blas"],[573,"Santiago Ixcuintla"],[575,"Túxpam [alternate]"],[580,"Apodaca"],[580,"Cadereyta"],[580,"Cd. Guadalupe"],[580,"General Escobedo"],[580,"Monterrey"],[580,"San Nicolás de los Garza"],[580,"San Pedro Garza García"],[580,"Santa Catarina"],[583,"Allende"],[592,"General Zuazua"],[595,"Linares"],[597,"Montemorelos"],[599,"Sabinas Hidalgo"],[600,"Salinas Victoria"],[601,"El Cercado"],[601,"Villa de Santiago"],[610,"Oaxaca"],[613,"Tlaxiaco"],[614,"Huajuapan de León"],[616,"Ixtepec"],[617,"Juchitán"],[619,"Loma Bonita"],[620,"Matías Romero"],[621,"Miahuatlán"],[622,"Ocotlán [alternate]"],[624,"Puerto Escondido"],[626,"Salina Cruz"],[627,"Lagunas"],[628,"Tuxtepec"],[630,"Pochutla"],[631,"San Pedro Tapanatepec"],[632,"Santa Lucía del Camino"],[634,"Bahías de Huatulco"],[635,"Santiago Juxtlahuaca"],[636,"Pinotepa Nacional"],[637,"Tehuantepec"],[638,"Tlacolula"],[640,"Zimatlán"],[650,"Cholula"],[650,"La Resurrección"],[650,"Puebla"],[650,"San Baltazar Campeche"],[651,"N/A"],[652,"Acatzingo"],[654,"Atlixco"],[656,"Cuetzalan"],[659,"Huauchinango"],[662,"Izúcar de Matamoros"],[667,"San Martín Texmelucan"],[668,"San Felipe Hueyotlipan"],[669,"Tecamachalco"],[670,"Tehuacán"],[671,"San Lorenzo"],[672,"Teziutlán"],[674,"Xicotepec de Juárez"],[676,"Zacatlán"],[680,"Pedro Escobedo"],[680,"Querétaro"],[680,"Villa Corregidora"],[681,"Amealco"],[685,"San Juan del Río"],[686,"Tequisquiapan"],[690,"Chetumal"],[691,"Cancún"],[691,"Col. Puerto Juárez"],[692,"Cozumel"],[693,"N/A"],[694,"Playa del Carmen"],[700,"San Luis Potosí"],[703,"Cerritos"],[705,"Ciudad Valles"],[709,"Matehuala"],[711,"Río Verde"],[716,"Tamuín"],[730,"Culiacán"],[735,"Concordia"],[736,"Cosala"],[737,"Choix"],[738,"El Fuerte"],[739,"Escuinapa"],[740,"Guamúchil"],[741,"Guasave"],[743,"Los Mochis"],[743,"Topolobampo"],[744,"Mazatlán"],[745,"Mocorito"],[746,"Navolato"],[760,"Hermosillo"],[761,"Agua Prieta"],[765,"Caborca"],[766,"Cananea"],[767,"Ciudad Obregón"],[767,"Esperanza"],[769,"Empalme"],[770,"Guaymas"],[770,"San Carlos"],[771,"Huatabampo"],[773,"Magdalena"],[776,"Nacozari de García"],[777,"Navojoa"],[778,"Nogales"],[779,"Puerto Peñasco"],[780,"San Luis Río Colorado"],[790,"Tamulte"],[790,"Villa Hermosa"],[792,"Cárdenas"],[793,"Ciudad Pemex"],[794,"Comalcalco"],[796,"Emiliano Zapata"],[797,"Frontera"],[798,"Huimanguillo"],[800,"Jalpa de Méndez"],[802,"Macuspana"],[803,"Nacajuca"],[804,"Paraíso"],[805,"Tacotalpa"],[806,"Teapa"],[807,"Tenosique"],[810,"Ciudad Victoria"],[811,"Altamira"],[813,"Ciudad Madero"],[813,"Tampico"],[814,"Ciudad Mante"],[818,"Matamoros"],[821,"Colombia"],[821,"Nuevo Laredo"],[822,"Reynosa"],[823,"Río Bravo"],[825,"Soto La Marina"],[826,"Valle Hermoso"],[830,"Tlaxcala"],[832,"Apizaco"],[834,"Santa Ana Chiautempan"],[840,"Jalapa"],[841,"Acayucan"],[843,"Agua Dulce"],[845,"Álamo"],[846,"Altotonga"],[848,"Banderilla"],[849,"Boca del Río"],[852,"Ciudad Mendoza"],[853,"Coatepec"],[854,"Coatzacoalcos"],[855,"Córdoba"],[856,"Cosamaloapan"],[860,"Cuitláhuac"],[863,"Fortín de las Flores"],[864,"Gutiérrez Zamora"],[865,"Huatusco"],[867,"Isla"],[868,"Ixtaczoquitlán"],[869,"Jáltipan"],[871,"Juan Rodríguez Clara"],[872,"Villa José Cardel"],[873,"Las Choapas"],[875,"Naranjos"],[876,"Martínez de la Torre"],[877,"Minatitlán"],[878,"Misantla"],[879,"Nanchital"],[882,"Orizaba"],[885,"Papantla"],[886,"Perote"],[888,"Poza Rica"],[889,"Río Blanco"],[890,"San Andrés Tuxtla"],[891,"San Rafael"],[894,"Platón Sánchez"],[894,"Tantoyuca"],[895,"Tempoal"],[898,"Tierra Blanca"],[901,"Tlapacoyan"],[903,"Túxpam de Rodríguez Cano"],[905,"Cd. Industrial Framboyan"],[905,"Veracruz"],[910,"Mérida"],[913,"Motul"],[914,"Oxkutzcab"],[915,"Progreso"],[917,"Ticul"],[918,"Tizimín"],[920,"Valladolid"],[930,"Zacatecas"],[933,"Fresnillo"],[934,"Guadalupe"],[935,"Jalpa"],[936,"Jerez de G. Salinas"],[938,"Juchipila"],[939,"Loreto"],[946,"Nochistlán"],[958,"Valparaíso"],[960,"Calera de V. Rosales"]]};"object"==typeof module&&(module.exports=clabe); | ||
//! CLABE Validator v1.1.0 ~ github.com/center-key/clabe-validator ~ MIT License | ||
var clabe={version:"1.1.0",calcChecksum:function(a){var o=0;return a.split("").slice(0,17).forEach(function(a,e){o+=parseInt(a)*[3,7,1][e%3]%10}),(10-o%10)%10},validate:function(a){if("string"!=typeof a)throw"clabe.validator.check(clabeNum) -- Expected string, got: "+typeof a;var e=a.substr(0,3),o=a.substr(3,3),n=a.substr(6,11),t=parseInt(a.substr(17,1));clabe.citiesMap||(clabe.citiesMap={},clabe.cities.forEach(function(a){var e;clabe.citiesMap[a[0]]=(e=a[0],(clabe.citiesMap[e]?clabe.citiesMap[e]+", ":"")+a[1])}));var l=clabe.banksMap[parseInt(e)]||{},i=clabe.citiesMap[parseInt(o)];function c(){return clabe.calcChecksum(a)}var r=18!==a.length?"Must be exactly 18 digits long":/[0-9]{18}/.test(a)?c()!==t?"Invalid checksum, last digit should be: "+c():l.tag?!i&&"Invalid city code":"Invalid bank code":"Must be only numeric digits (no letters)";return{ok:!r,error:!!r,message:r||"Valid: "+l.name+" ("+i+")",tag:l.tag,bank:l.name,city:i,account:n,code:{bank:e,city:o}}},calculate:function(a,e,o){function n(a,e){return function a(e,o){return e.length<o?a("0"+e,o):e}(""+a,e).slice(-e)}var t=n(a,3)+n(e,3)+n(o,11);return t+clabe.calcChecksum(t)},banksMap:{2:{tag:"BANAMEX",name:"Banco Nacional de México, S.A."},6:{tag:"BANCOMEXT",name:"Banco Nacional de Comercio Exterior"},9:{tag:"BANOBRAS",name:"Banco Nacional de Obras y Servicios Públicos"},12:{tag:"BBVA BANCOMER",name:"BBVA Bancomer, S.A."},14:{tag:"SANTANDER",name:"Banco Santander, S.A."},19:{tag:"BANJERCITO",name:"Banco Nacional del Ejército, Fuerza Aérea y Armada"},21:{tag:"HSBC",name:"HSBC México, S.A."},22:{tag:"GE MONEY",name:"GE Money Bank, S.A."},30:{tag:"BAJÍO",name:"Banco del Bajío, S.A."},32:{tag:"IXE",name:"IXE Banco, S.A."},36:{tag:"INBURSA",name:"Banco Inbursa, S.A."},37:{tag:"INTERACCIONES",name:"Banco Interacciones, S.A."},42:{tag:"MIFEL",name:"Banca Mifel, S.A."},44:{tag:"SCOTIABANK",name:"Scotiabank Inverlat, S.A."},58:{tag:"BANREGIO",name:"Banco Regional de Monterrey, S.A."},59:{tag:"INVEX",name:"Banco Invex, S.A."},60:{tag:"BANSI",name:"Bansi, S.A."},62:{tag:"AFIRME",name:"Banca Afirme, S.A."},72:{tag:"BANORTE",name:"Banco Mercantil del Norte, S.A."},102:{tag:"ABNAMRO",name:"ABN AMRO Bank México, S.A."},103:{tag:"AMERICAN EXPRESS",name:"American Express Bank (México), S.A."},106:{tag:"BAMSA",name:"Bank of America México, S.A."},108:{tag:"TOKYO",name:"Bank of Tokyo-Mitsubishi UFJ (México), S.A."},110:{tag:"JP MORGAN",name:"Banco J.P. Morgan, S.A."},112:{tag:"BMONEX",name:"Banco Monex, S.A."},113:{tag:"VE POR MAS",name:"Banco Ve por Mas, S.A."},116:{tag:"ING",name:"ING Bank (México), S.A."},124:{tag:"DEUTSCHE",name:"Deutsche Bank México, S.A."},126:{tag:"CREDIT SUISSE",name:"Banco Credit Suisse (México), S.A."},127:{tag:"AZTECA",name:"Banco Azteca, S.A."},128:{tag:"AUTOFIN",name:"Banco Autofin México, S.A."},129:{tag:"BARCLAYS",name:"Barclays Bank México, S.A."},130:{tag:"COMPARTAMOS",name:"Banco Compartamos, S.A."},131:{tag:"FAMSA",name:"Banco Ahorro Famsa, S.A."},132:{tag:"BMULTIVA",name:"Banco Multiva, S.A."},133:{tag:"PRUDENTIAL",name:"Prudencial Bank, S.A."},134:{tag:"WAL-MART",name:"Banco Wal Mart de México Adelante, S.A."},135:{tag:"NAFIN",name:"Nacional Financiera, S.N.C."},136:{tag:"REGIONAL",name:"Banco Regional, S.A."},137:{tag:"BANCOPPEL",name:"BanCoppel, S.A."},138:{tag:"ABC CAPITAL",name:"ABC Capital, S.A. I.B.M."},139:{tag:"UBS BANK",name:"UBS Banco, S.A."},140:{tag:"FÁCIL",name:"Banco Fácil, S.A."},141:{tag:"VOLKSWAGEN",name:"Volkswagen Bank S.A. Institución de Banca Múltiple"},143:{tag:"CIBanco",name:"Consultoría Internacional Banco, S.A."},145:{tag:"BBASE",name:"Banco BASE, S.A. de I.B.M."},147:{tag:"BANKAOOL",name:"Bankaool, S.A., Institución de Banca Múltiple"},148:{tag:"PagaTodo",name:"Banco PagaTodo S.A., Institución de Banca Múltiple"},150:{tag:"BIM",name:"Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple"},156:{tag:"SABADELL",name:"Banco Sabadell, S.A. I.B.M."},166:{tag:"BANSEFI",name:"Banco del Ahorro Nacional y Servicios Financieros, S.N.C."},168:{tag:"HIPOTECARIA FEDERAL",name:"Sociedad Hipotecaria Federal, S.N.C."},600:{tag:"MONEXCB",name:"Monex Casa de Bolsa, S.A. de C.V."},601:{tag:"GBM",name:"GBM Grupo Bursátil Mexicano, S.A. de C.V."},602:{tag:"MASARI CC.",name:"Masari Casa de Cambio, S.A. de C.V."},604:{tag:"C.B. INBURSA",name:"Inversora Bursátil, S.A. de C.V."},605:{tag:"VALUÉ",name:"Valué, S.A. de C.V., Casa de Bolsa"},606:{tag:"CB BASE",name:"Base Internacional Casa de Bolsa, S.A. de C.V."},607:{tag:"TIBER",name:"Casa de Cambio Tiber, S.A. de C.V."},608:{tag:"VECTOR",name:"Vector Casa de Bolsa, S.A. de C.V."},610:{tag:"B&B",name:"B y B Casa de Cambio, S.A. de C.V."},611:{tag:"INTERCAM",name:"Intercam Casa de Cambio, S.A. de C.V."},613:{tag:"MULTIVA",name:"Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin."},614:{tag:"ACCIVAL",name:"Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa"},615:{tag:"MERRILL LYNCH",name:"Merrill Lynch México, S.A. de C.V., Casa de Bolsa"},616:{tag:"FINAMEX",name:"Casa de Bolsa Finamex, S.A. de C.V."},617:{tag:"VALMEX",name:"Valores Mexicanos Casa de Bolsa, S.A. de C.V."},618:{tag:"ÚNICA",name:"Única Casa de Cambio, S.A. de C.V."},619:{tag:"ASEGURADORA MAPFRE",name:"MAPFRE Tepeyac S.A."},620:{tag:"AFORE PROFUTURO",name:"Profuturo G.N.P., S.A. de C.V."},621:{tag:"CB ACTINBER",name:"Actinver Casa de Bolsa, S.A. de C.V."},622:{tag:"ACTINVE SI",name:"Actinver S.A. de C.V."},623:{tag:"SKANDIA",name:"Skandia Vida S.A. de C.V."},624:{tag:"CONSULTORÍA",name:"Consultoría Internacional Casa de Cambio, S.A. de C.V."},626:{tag:"CBDEUTSCHE",name:"Deutsche Securities, S.A. de C.V."},627:{tag:"ZURICH",name:"Zurich Compañía de Seguros, S.A."},628:{tag:"ZURICHVI",name:"Zurich Vida, Compañía de Seguros, S.A."},629:{tag:"HIPOTECARIA SU CASITA",name:"Hipotecaria su Casita, S.A. de C.V."},630:{tag:"C.B. INTERCAM",name:"Intercam Casa de Bolsa, S.A. de C.V."},631:{tag:"C.B. VANGUARDIA",name:"Vanguardia Casa de Bolsa, S.A. de C.V."},632:{tag:"BULLTICK C.B.",name:"Bulltick Casa de Bolsa, S.A. de C.V."},633:{tag:"STERLING",name:"Sterling Casa de Cambio, S.A. de C.V."},634:{tag:"FINCOMUN",name:"Fincomún, Servicios Financieros Comunitarios, S.A. de C.V."},636:{tag:"HDI SEGUROS",name:"HDI Seguros, S.A. de C.V."},637:{tag:"ORDER",name:"OrderExpress Casa de Cambio , S.A. de C.V. AAC"},638:{tag:"AKALA",name:"Akala, S.A. de C.V., Sociedad Financiera Popular"},640:{tag:"JP MORGAN C.B.",name:"J.P. Morgan Casa de Bolsa, S.A. de C.V."},642:{tag:"REFORMA",name:"Operadora de Recursos Reforma, S.A. de C.V."},646:{tag:"STP",name:"Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R."},647:{tag:"TELECOMM",name:"Telecomunicaciones de México"},648:{tag:"EVERCORE",name:"Evercore Casa de Bolsa, S.A. de C.V."},649:{tag:"SKANDIA",name:"Skandia Operadora S.A. de C.V."},651:{tag:"SEGMTY",name:"Seguros Monterrey New York Life, S.A de C.V."},652:{tag:"ASEA",name:"Solución Asea, S.A. de C.V., Sociedad Financiera Popular"},653:{tag:"KUSPIT",name:"Kuspit Casa de Bolsa, S.A. de C.V."},655:{tag:"SOFIEXPRESS",name:"J.P. SOFIEXPRESS, S.A. de C.V., S.F.P."},656:{tag:"UNAGRA",name:"UNAGRA, S.A. de C.V., S.F.P."},659:{tag:"OPCIONES EMPRESARIALES DEL NOROESTE",name:"Opciones Empresariales Del Noreste, S.A. DE C.V."},670:{tag:"LIBERTAD",name:"Libertad Servicios Financieros, S.A. De C.V."},901:{tag:"CLS",name:"CLS Bank International"},902:{tag:"INDEVAL",name:"SD. INDEVAL, S.A. de C.V."},999:{tag:"N/A",name:"N/A"}},cities:[[10,"Aguascalientes"],[12,"Calvillo"],[14,"Jesús María"],[20,"Mexicali"],[22,"Ensenada"],[27,"Tecate"],[27,"Tijuana"],[28,"La Mesa"],[28,"Rosarito"],[28,"Tijuana [alternate]"],[40,"La Paz"],[41,"Cabo San Lucas"],[42,"Ciudad Constitución"],[43,"Guerrero Negro"],[45,"San José del Cabo"],[46,"Santa Rosalía"],[50,"Campeche"],[51,"Calkiní"],[52,"Ciudad del Carmen"],[53,"Champotón"],[60,"Gómez Palacio"],[60,"Torreón"],[62,"Ciudad Acuña"],[68,"Monclova"],[71,"Nava"],[72,"Nueva Rosita"],[74,"Parras de la Fuente"],[75,"Piedras Negras"],[76,"Ramos Arizpe"],[77,"Sabinas"],[78,"Saltillo"],[80,"San Pedro de las Colonias"],[90,"Colima"],[95,"Manzanillo"],[97,"Tecomán"],[100,"Terán"],[100,"Tuxtla Gutiérrez"],[103,"Arriaga"],[107,"Cintalapa"],[109,"Comitán"],[109,"Villa Las Rosas"],[111,"Chiapa de Corso"],[113,"F. Comalapa"],[114,"Huixtla"],[123,"Ocosingo"],[124,"Ocozocuautla"],[125,"Palenque"],[126,"Pichucalco"],[127,"Pijijiapan"],[128,"Reforma"],[130,"San Cristóbal de las Casas"],[131,"Simojovel"],[133,"Tapachula"],[135,"Tonala"],[137,"Venustiano Carranza"],[138,"Villa Flores"],[140,"Yajalón"],[150,"Chihuahua"],[150,"Ciudad Delicias"],[152,"Ciudad Anáhuac"],[155,"Ciudad Camargo"],[158,"Ciudad Cuauhtémoc"],[161,"Ciudad Guerrero"],[162,"Parral"],[163,"Ciudad Jiménez"],[164,"Ciudad Juárez"],[165,"Ciudad Madera"],[167,"El Molino de Namiquipa"],[168,"Nuevo Casas Grandes"],[180,"Atizapan"],[180,"Chalco"],[180,"Ciudad de México"],[180,"Coacalco"],[180,"Cuautitlán Izcalli"],[180,"Cuautitlán"],[180,"Ecatepec"],[180,"Huehuetoca"],[180,"Huixquilucan"],[180,"Ixtapaluca"],[180,"Los Reyes La Paz"],[180,"Naucalpan"],[180,"Nezahualcóyotl"],[180,"Tecamac"],[180,"Teotihuacán"],[180,"Texcoco"],[180,"Tlalnepantla"],[190,"Durango"],[198,"N/A"],[201,"Tepehuanes"],[202,"Vicente Guerrero"],[210,"Guanajuato"],[211,"Abasolo"],[212,"Acámbaro"],[213,"Apaseo el Alto"],[214,"Apaseo el Grande"],[215,"Celaya"],[216,"Comonfort"],[217,"Coroneo"],[218,"Cortazar"],[219,"Cuerámaro"],[220,"Dolores Hidalgo"],[222,"Irapuato"],[223,"Jaral del Progreso"],[224,"Jerécuaro"],[225,"León"],[226,"Cd. Manuel Doblado"],[227,"Moroleón"],[229,"Pénjamo"],[232,"Romita"],[233,"Salamanca"],[234,"Salvatierra"],[236,"San Felipe"],[237,"Purísima de Bustos"],[237,"San Francisco del Rincoón"],[238,"San José Iturbide"],[239,"San Luis de la Paz"],[240,"San Miguel Allende"],[244,"Silao"],[247,"Uriangato"],[248,"Valle de Santiago"],[249,"Yuriria"],[260,"Chilpancingo"],[261,"Acapulco"],[263,"Arcelia"],[264,"Atoyac de Álvarez"],[266,"Ciudad Altamirano"],[267,"Coyuca de Benítez"],[270,"Chilapa"],[271,"Huitzuco"],[272,"Iguala"],[272,"La Sabana"],[274,"Cuajinicuilapa"],[274,"Ometepec"],[275,"San Marcos"],[276,"Taxco"],[278,"Teloloapan"],[281,"Tlapa"],[282,"Ixtapa Zihuatanejo"],[282,"Zihuatanejo"],[290,"Pachuca"],[291,"Actopan"],[292,"Apam"],[293,"Atotonilco el Grande"],[294,"Ciudad Sahagún"],[294,"Teocaltiche"],[295,"Cuautepec"],[296,"Huejutla"],[297,"Huichapan"],[298,"Ixmiquilpan"],[303,"Progreso de Obregón"],[305,"Tepeapulco"],[308,"Tizayuca"],[311,"Tula de Allende"],[312,"Tulancingo"],[313,"Zacualtipán"],[314,"Zimapán"],[320,"El Salto"],[320,"Guadalajara"],[320,"San Pedro Tlaquepaque"],[320,"Tlajomulco"],[320,"Tonala [alternate]"],[320,"Zapopan"],[326,"Ameca"],[327,"Arandas"],[330,"Atotonilco el Alto"],[331,"Atequiza"],[333,"Autlán"],[334,"Azteca"],[340,"Casimiro Castillo"],[341,"Cihuatlán"],[342,"Ciudad Guzmán"],[346,"Chapala"],[348,"El Grullo"],[355,"Ixtlahuacán del Río"],[356,"Jalostotitlán"],[357,"Jamay"],[361,"La Barca"],[362,"Lagos de Moreno"],[370,"Ocotlán"],[373,"Pihuamo"],[375,"Las Juntas"],[375,"Nuevo Vallarta"],[375,"Pitillal"],[375,"Puerto Vallarta"],[381,"San Juan de los Lagos"],[382,"N/A"],[384,"San Miguel el Alto"],[385,"San Patricio Melaque"],[386,"Sayula"],[387,"Tala"],[389,"Tamazula de Gordiano"],[391,"Tecalitlán"],[396,"Tepatitlán"],[397,"Tequila"],[403,"Tototlán"],[404,"Túxpam"],[411,"Villa Hidalgo"],[413,"Zacoalco de Torres"],[414,"Zapotiltic"],[416,"Zapotlanejo"],[420,"Toluca"],[421,"Acambay"],[422,"Almoloya de Juárez"],[424,"Amecameca"],[425,"Apaxco"],[426,"Atlacomulco"],[428,"Coatepec de Harinas"],[430,"Chicoloapan"],[431,"Chiconcuac"],[432,"El Oro"],[433,"Ixtapan de la Sal"],[434,"Ixtlahuaca"],[435,"Jilotepec"],[438,"Lerma"],[441,"Metepec"],[443,"Otumba"],[445,"San Mateo Atenco"],[446,"Tejupilco"],[448,"Temascaltepec"],[449,"Temoaya"],[450,"Tenancingo"],[451,"Tenago del Valle"],[453,"Santiago Tiangistenco"],[455,"Tultepec"],[456,"Tultitlán"],[457,"Valle de Bravo"],[460,"Villa Nicolás Romero"],[463,"Zumpango"],[470,"Morelia"],[472,"Aguililla"],[476,"Apatzingán"],[480,"Ciudad Hidalgo"],[483,"Cotija"],[484,"Cuitzeo"],[492,"Huetamo"],[493,"Jacona"],[494,"Jiquilpan"],[496,"La Piedad"],[497,"Lázaro Cárdenas"],[498,"Los Reyes"],[499,"Maravatío"],[501,"Nueva Italia"],[506,"Pátzcuaro"],[508,"Purépero"],[509,"Puruandiro"],[512,"Sahuayo"],[515,"Tacámbaro"],[517,"Tangancícuaro"],[519,"Tepalcatepec"],[523,"Tlazazalca"],[528,"Uruapan"],[533,"Yurécuaro"],[534,"Zacapu"],[535,"Zamora"],[536,"Zinapécuaro"],[537,"Zitácuaro"],[540,"Cuernavaca"],[542,"Cuautla"],[542,"Oaxtepec, Morelos"],[543,"Jiutepec"],[544,"Jojutla"],[545,"Puente de Ixtla"],[546,"Temixco"],[548,"Tetecala"],[549,"Yautepec"],[552,"Zacatepec"],[560,"Tepic"],[561,"Acaponeta"],[562,"Ahuacatlán"],[564,"Compostela"],[566,"Ixtlán del Río"],[571,"San Blas"],[573,"Santiago Ixcuintla"],[575,"Túxpam [alternate]"],[580,"Apodaca"],[580,"Cadereyta"],[580,"Cd. Guadalupe"],[580,"General Escobedo"],[580,"Monterrey"],[580,"San Nicolás de los Garza"],[580,"San Pedro Garza García"],[580,"Santa Catarina"],[583,"Allende"],[592,"General Zuazua"],[595,"Linares"],[597,"Montemorelos"],[599,"Sabinas Hidalgo"],[600,"Salinas Victoria"],[601,"El Cercado"],[601,"Villa de Santiago"],[610,"Oaxaca"],[613,"Tlaxiaco"],[614,"Huajuapan de León"],[616,"Ixtepec"],[617,"Juchitán"],[619,"Loma Bonita"],[620,"Matías Romero"],[621,"Miahuatlán"],[622,"Ocotlán [alternate]"],[624,"Puerto Escondido"],[626,"Salina Cruz"],[627,"Lagunas"],[628,"Tuxtepec"],[630,"Pochutla"],[631,"San Pedro Tapanatepec"],[632,"Santa Lucía del Camino"],[634,"Bahías de Huatulco"],[635,"Santiago Juxtlahuaca"],[636,"Pinotepa Nacional"],[637,"Tehuantepec"],[638,"Tlacolula"],[640,"Zimatlán"],[650,"Cholula"],[650,"La Resurrección"],[650,"Puebla"],[650,"San Baltazar Campeche"],[651,"N/A"],[652,"Acatzingo"],[654,"Atlixco"],[656,"Cuetzalan"],[659,"Huauchinango"],[662,"Izúcar de Matamoros"],[667,"San Martín Texmelucan"],[668,"San Felipe Hueyotlipan"],[669,"Tecamachalco"],[670,"Tehuacán"],[671,"San Lorenzo"],[672,"Teziutlán"],[674,"Xicotepec de Juárez"],[676,"Zacatlán"],[680,"Pedro Escobedo"],[680,"Querétaro"],[680,"Villa Corregidora"],[681,"Amealco"],[685,"San Juan del Río"],[686,"Tequisquiapan"],[690,"Chetumal"],[691,"Cancún"],[691,"Col. Puerto Juárez"],[692,"Cozumel"],[693,"N/A"],[694,"Playa del Carmen"],[700,"San Luis Potosí"],[703,"Cerritos"],[705,"Ciudad Valles"],[709,"Matehuala"],[711,"Río Verde"],[716,"Tamuín"],[730,"Culiacán"],[735,"Concordia"],[736,"Cosala"],[737,"Choix"],[738,"El Fuerte"],[739,"Escuinapa"],[740,"Guamúchil"],[741,"Guasave"],[743,"Los Mochis"],[743,"Topolobampo"],[744,"Mazatlán"],[745,"Mocorito"],[746,"Navolato"],[760,"Hermosillo"],[761,"Agua Prieta"],[765,"Caborca"],[766,"Cananea"],[767,"Ciudad Obregón"],[767,"Esperanza"],[769,"Empalme"],[770,"Guaymas"],[770,"San Carlos"],[771,"Huatabampo"],[773,"Magdalena"],[776,"Nacozari de García"],[777,"Navojoa"],[778,"Nogales"],[779,"Puerto Peñasco"],[780,"San Luis Río Colorado"],[790,"Tamulte"],[790,"Villa Hermosa"],[792,"Cárdenas"],[793,"Ciudad Pemex"],[794,"Comalcalco"],[796,"Emiliano Zapata"],[797,"Frontera"],[798,"Huimanguillo"],[800,"Jalpa de Méndez"],[802,"Macuspana"],[803,"Nacajuca"],[804,"Paraíso"],[805,"Tacotalpa"],[806,"Teapa"],[807,"Tenosique"],[810,"Ciudad Victoria"],[811,"Altamira"],[813,"Ciudad Madero"],[813,"Tampico"],[814,"Ciudad Mante"],[818,"Matamoros"],[821,"Colombia"],[821,"Nuevo Laredo"],[822,"Reynosa"],[823,"Río Bravo"],[825,"Soto La Marina"],[826,"Valle Hermoso"],[830,"Tlaxcala"],[832,"Apizaco"],[834,"Santa Ana Chiautempan"],[840,"Jalapa"],[841,"Acayucan"],[843,"Agua Dulce"],[845,"Álamo"],[846,"Altotonga"],[848,"Banderilla"],[849,"Boca del Río"],[852,"Ciudad Mendoza"],[853,"Coatepec"],[854,"Coatzacoalcos"],[855,"Córdoba"],[856,"Cosamaloapan"],[860,"Cuitláhuac"],[863,"Fortín de las Flores"],[864,"Gutiérrez Zamora"],[865,"Huatusco"],[867,"Isla"],[868,"Ixtaczoquitlán"],[869,"Jáltipan"],[871,"Juan Rodríguez Clara"],[872,"Villa José Cardel"],[873,"Las Choapas"],[875,"Naranjos"],[876,"Martínez de la Torre"],[877,"Minatitlán"],[878,"Misantla"],[879,"Nanchital"],[882,"Orizaba"],[885,"Papantla"],[886,"Perote"],[888,"Poza Rica"],[889,"Río Blanco"],[890,"San Andrés Tuxtla"],[891,"San Rafael"],[894,"Platón Sánchez"],[894,"Tantoyuca"],[895,"Tempoal"],[898,"Tierra Blanca"],[901,"Tlapacoyan"],[903,"Túxpam de Rodríguez Cano"],[905,"Cd. Industrial Framboyan"],[905,"Veracruz"],[910,"Mérida"],[913,"Motul"],[914,"Oxkutzcab"],[915,"Progreso"],[917,"Ticul"],[918,"Tizimín"],[920,"Valladolid"],[930,"Zacatecas"],[933,"Fresnillo"],[934,"Guadalupe"],[935,"Jalpa"],[936,"Jerez de G. Salinas"],[938,"Juchipila"],[939,"Loreto"],[946,"Nochistlán"],[958,"Valparaíso"],[960,"Calera de V. Rosales"]]};"object"==typeof module&&(module.exports=clabe),"object"==typeof window&&(window.clabe=clabe); |
{ | ||
"name": "clabe-validator", | ||
"version": "1.0.6", | ||
"version": "1.1.0", | ||
"description": "JavaScript library to analyze or create a CLABE number for a Mexican bank account", | ||
@@ -32,2 +32,5 @@ "license": "MIT", | ||
}, | ||
"engines": { | ||
"node": ">=9.9.0" | ||
}, | ||
"devDependencies": { | ||
@@ -34,0 +37,0 @@ "dna.js": "~1.4", |
@@ -8,2 +8,3 @@ # CLABE Validator | ||
[![npm](https://img.shields.io/npm/v/clabe-validator.svg)](https://www.npmjs.com/package/clabe-validator) | ||
[![Dependencies](https://david-dm.org/center-key/clabe-validator/status.svg)](https://david-dm.org/center-key/clabe-validator) | ||
[![Vulnerabilities](https://snyk.io/test/github/center-key/clabe-validator/badge.svg)](https://snyk.io/test/github/center-key/clabe-validator) | ||
@@ -52,5 +53,7 @@ [![Build](https://travis-ci.org/center-key/clabe-validator.svg)](https://travis-ci.org/center-key/clabe-validator) | ||
{ | ||
error: false, | ||
bank: 'Banco Nacional de México', | ||
city: 'Aguascalientes' | ||
ok: true, | ||
tag: 'BANAMEX', | ||
bank: 'Banco Nacional de México, S.A.', | ||
city: 'Aguascalientes', | ||
account: '07777777777' | ||
} | ||
@@ -62,3 +65,3 @@ ``` | ||
{ | ||
error: true, | ||
ok: false, | ||
message: 'Invalid city code' | ||
@@ -82,3 +85,3 @@ } | ||
const clabeNum = clabe.calculate(2, 10, 7777777777); | ||
console.log(clabeNum === '002010077777777771'); | ||
console.log(clabeNum === '002010077777777771') //true; | ||
``` | ||
@@ -85,0 +88,0 @@ |
64
spec.js
@@ -27,10 +27,24 @@ // CLABE Validator | ||
it('contains the correct code to look up a bank tag', () => { | ||
const dataSet = [ | ||
{ input: '002', expected: 'BANAMEX' }, | ||
{ input: '640', expected: 'JP MORGAN C.B.' }, | ||
{ input: '652', expected: 'ASEA' } | ||
]; | ||
function evalData(data) { | ||
const actual = { code: data.input, tag: clabe.banksMap[parseInt(data.input)].tag }; | ||
const expected = { code: data.input, tag: data.expected }; | ||
assert.deepEqual(actual, expected); | ||
} | ||
dataSet.forEach(evalData); | ||
}); | ||
it('contains the correct code to look up a bank name', () => { | ||
const dataSet = [ | ||
{ input: '002', expected: 'Banco Nacional de México' }, | ||
{ input: '640', expected: 'J.P. Morgan Casa de Bolsa' }, | ||
{ input: '002', expected: 'Banco Nacional de México, S.A.' }, | ||
{ input: '640', expected: 'J.P. Morgan Casa de Bolsa, S.A. de C.V.' }, | ||
{ input: '652', expected: 'Solución Asea, S.A. de C.V., Sociedad Financiera Popular' } | ||
]; | ||
function evalData(data) { | ||
const actual = { code: data.input, name: clabe.banksMap[parseInt(data.input)] }; | ||
const actual = { code: data.input, name: clabe.banksMap[parseInt(data.input)].name }; | ||
const expected = { code: data.input, name: data.expected }; | ||
@@ -42,5 +56,5 @@ assert.deepEqual(actual, expected); | ||
it('has a default "N/A" bank for code 999', () => { | ||
const actual = { code: 999, name: clabe.banksMap[999] }; | ||
const expected = { code: 999, name: 'N/A' }; | ||
it('has a default "N/A" bank name and tag for code 999', () => { | ||
const actual = { code: 999, tag: clabe.banksMap[999].tag, name: clabe.banksMap[999].name }; | ||
const expected = { code: 999, tag: 'N/A', name: 'N/A' }; | ||
assert.deepEqual(actual, expected); | ||
@@ -107,4 +121,4 @@ }); | ||
const result = clabe.validate(data.input); | ||
const actual = { clabe: data.input, error: result.error, message: result.message }; | ||
const expected = { clabe: data.input, error: true, message: data.expected }; | ||
const actual = { clabe: data.input, ok: result.ok, message: result.message }; | ||
const expected = { clabe: data.input, ok: false, message: data.expected }; | ||
assert.deepEqual(actual, expected); | ||
@@ -125,4 +139,4 @@ } | ||
const valid = /^Valid:/.test(result.message); | ||
const actual = { clabe: data, error: result.error, valid: valid }; | ||
const expected = { clabe: data, error: false, valid: true }; | ||
const actual = { clabe: data, ok: result.ok, valid: valid }; | ||
const expected = { clabe: data, ok: true, valid: true }; | ||
assert.deepEqual(actual, expected); | ||
@@ -133,2 +147,32 @@ } | ||
it('extracts the bank tag, bank name, and city', () => { | ||
const clabeCheck = clabe.validate('002010077777777771'); | ||
const actual = { | ||
tag: clabeCheck.tag, | ||
bank: clabeCheck.bank, | ||
city: clabeCheck.city | ||
}; | ||
const expected = { | ||
tag: 'BANAMEX', | ||
bank: 'Banco Nacional de México, S.A.', | ||
city: 'Aguascalientes' | ||
}; | ||
assert.deepEqual(actual, expected); | ||
}); | ||
it('extracts the bank code, city code, and account number', () => { | ||
const clabeCheck = clabe.validate('002010077777777771'); | ||
const actual = { | ||
bank: clabeCheck.code.bank, | ||
city: clabeCheck.code.city, | ||
account: clabeCheck.account | ||
}; | ||
const expected = { | ||
bank: '002', | ||
city: '010', | ||
account: '07777777777' | ||
}; | ||
assert.deepEqual(actual, expected); | ||
}); | ||
}); | ||
@@ -135,0 +179,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
68946
869
95