bank_routing 0.0.1

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.
@@ -0,0 +1,368 @@
1
+ {
2
+ "zip_ext": {
3
+ "0000": ""
4
+ },
5
+ "new_routing_number": {
6
+ "000000000": ""
7
+ },
8
+ "name": {
9
+ "J.P. MORGAN CHASE BANK, N.A.": "J.P. Morgan Chase",
10
+ "JP MORGAN CHASE BANK, N.A.": "J.P. Morgan Chase",
11
+ "JPMORGAN CHASE BANK, NA": "J.P. Morgan Chase",
12
+ "BANK OF AMERICA, N.A.": "Bank of America",
13
+ "BANK OF AMERICA": "Bank of America",
14
+ "WELLS FARGO BANK NA": "Wells Fargo",
15
+ "CITIBANK NA": "Citibank",
16
+ "U.S. BANK NATIONAL ASSOCIATION": "U.S. Bank",
17
+ "PNC BANK, NA": "PNC Bank",
18
+ "THE BANK OF NEW YORK MELLON": "BNY Mellon",
19
+ "TD BANK NA": "TD Bank",
20
+ "HSBC NATIONAL BANK USA": "HSBC Bank USA",
21
+ "SUNTRUST BANK": "Suntrust",
22
+ "STATE STREET BANK AND TRUST COMPANY": "State Street",
23
+ "BRANCH BANKING AND TRUST COMPANY": "BB&T",
24
+ "REGIONS BANK": "Regions",
25
+ "CAPITAL ONE, NATIONAL ASSOCIATION": "Capital One",
26
+ "FIA Card Services, National Association": "FIA Card Services",
27
+ "FIFTH THIRD BANK": "Fifth Third Bank",
28
+ "ING Bank, fsb": "ING",
29
+ "RBS CITIZENS, NATIONAL ASSOCIATION": "Citizens Bank",
30
+ "KeyBank National Association": "KeyBank",
31
+ "THE NORTHERN TRUST COMPANY": "Northern Trust",
32
+ "UNION BANK": "Union Bank",
33
+ "UNION BANK, NATIONAL ASSOCIATION": "Union Bank",
34
+ "MORGAN STANLEY BANK, NATIONAL ASSOCIATION": "Morgan Stanley",
35
+ "CHARLES SCHWAB BANK": "Charles Schwab",
36
+ "MANUFACTURERS & TRADERS TRUST CO.": "M&T Bank",
37
+ "CITIBANK (SOUTH DAKOTA), N.A.": "Citibank",
38
+ "SOVEREIGN BANK": "Sovereign Bank",
39
+ "COMPASS BANK": "BBVA Compass Bank",
40
+ "BBVA COMPASS BANK": "BBVA Compass Bank",
41
+ "USAA FEDERAL SAVINGS BANK": "USAA",
42
+ "COMERICA BANK": "Comerica",
43
+ "THE HUNTINGTON NATIONAL BANK": "Huntington",
44
+ "BANK OF THE WEST": "Bank of the West",
45
+ "M&I MARSHALL & ILSLEY BANK": "M&I Bank",
46
+ "BMO HARRIS BANK,N.A.": "BMO Harris Bank",
47
+ "ALLY BANK": "Ally",
48
+ "DISCOVER BANK": "Discover Bank",
49
+ "GOLDMAN SACHS BANK USA": "Goldman Sachs Bank",
50
+ "CAPITAL ONE BANK (USA), N.A.": "Capital One Bank",
51
+ "E*TRADE SECURITIES": "E*TRADE",
52
+ "E*TRADE Bank": "E*TRADE",
53
+ "UBS AG": "UBS Bank",
54
+ "UBS BANK USA": "UBS Bank USA",
55
+ "HUDSON CITY SAVINGS BANK": "Hudson City",
56
+ "CITIZENS BANK": "Citizens Bank",
57
+ "CITIZENS BANK OF PENNSYLVANIA": "Citizens Bank",
58
+ "DEUTSCHE BANK TRUST COMPANY, DE": "Deutsche Bank",
59
+ "SYNOVUS BANK": "Synovus Bank",
60
+ "RBC BANK (GA)": "RBC Bank",
61
+ "RBC BANK (USA)": "RBC Bank",
62
+ "BANCO POPULAR DE PUERTO RICO": "Popular",
63
+ "NEW YORK COMMUNITY BANK": "New York Community Bank",
64
+ "AMERICAN EXPRESS BANK FSB": "American Express",
65
+ "FIRST REPUBLIC BANK": "First Republic Bank",
66
+ "CITY NATIONAL BANK": "City National",
67
+ "PEOPLE'S UNITED BANK": "People's United Bank",
68
+ "BOKF, N.A.": "BOK Financial",
69
+ "FIRST-CITIZENS BANK & TRUST COMPANY": "First Citizens Bank",
70
+ "EAST WEST BANK": "East West Bank",
71
+ "COMMERCE BANK": "Commerce Bank",
72
+ "SILICON VALLEY BANK": "Silicon Valley Bank",
73
+ "FIRST TENNESSEE BANK": "First Tennessee Bank",
74
+ "ONEWEST BANK, FSB": "OneWest Bank",
75
+ "WELLS FARGO BANK": "Wells Fargo",
76
+ "FROST NATIONAL BANK": "Frost National Bank",
77
+ "ASSOCIATED BANK, NA": "Associated Bank",
78
+ "WEBSTER BANK": "Webster Bank",
79
+ "AMERICAN EXPRESS CENTURION BANK": "AMEX Centurion",
80
+ "GE MONEY BANK": "GE Capital",
81
+ "GE CAPITAL RETAIL BANK": "GE Capital",
82
+ "FIRST NIAGARA BANK, NA": "First Niagra",
83
+ "ZIONS FIRST NATIONAL BANK": "Zions Bank",
84
+ "TCF NATIONAL BANK": "TCF Bank",
85
+ "FIRSTBANK PUERTO RICO": "FirstBank",
86
+ "ASTORIA FEDERAL SAVINGS": "Astoria Federal Savings",
87
+ "FIRSTMERIT BANK N.A.": "FirstMerit Bank",
88
+ "BANCORPSOUTH BANK": "BancCorp South",
89
+ "FIRST HAWAIIAN BANK": "First Hawaiian",
90
+ "THE PRIVATEBANK AND TRUST COMPANY": "The PrivateBank",
91
+ "SIGNATURE BANK": "Signature Bank",
92
+ "FIRST NATIONAL BANK OF OMAHA": "First National Bank of Omaha",
93
+ "BANK OF HAWAII": "Bank of Hawaii",
94
+ "VALLEY NATIONAL BANK": "Valley National Bank",
95
+ "FIRSTBANK": "FirstBank",
96
+ "EVERBANK": "EverBank",
97
+ "STATE FARM BANK FSB": "State Farm",
98
+ "ARVEST BANK": "Arvest",
99
+ "UMPQUA BANK": "Umpqua Bank",
100
+ "METLIFE BANK, N.A.(METLIFE DIVISION)": "MetLife",
101
+ "SUSQUEHANNA BANK": "Susquehanna",
102
+ "CALIFORNIA BANK & TRUST": "California Bank & Trust",
103
+ "BNY MELLON-BPS": "BNY Mellon",
104
+ "UMB BANK": "UMB Bank",
105
+ "UMB BANK,N.A.": "UMB Bank",
106
+ "UMB BANK, NATIONAL ASSOCIATION": "UMB Bank",
107
+ "THIRD FEDERAL SAVINGS AND LOAN": "Third Federal",
108
+ "WASHINGTON FEDERAL": "Washington Federal",
109
+ "AMEGY BANK, NA": "Amegy Bank",
110
+ "BANK OF CHINA, NEW YORK": "Bank of China",
111
+ "BANK OF CHINA, LOS ANGELES BRANCH": "Bank of China",
112
+ "TD BANK N.A.": "TD Bank",
113
+ "IBERIABANK": "IBERIABANK",
114
+ "MB FINANCIAL BANK N.A.": "MB Financial Bank",
115
+ "FLAGSTAR BANK": "Flagstar",
116
+ "PROSPERITY BANK": "Prosperity Bank",
117
+ "RABOBANK NA": "Rabobank",
118
+ "FIRST NATIONAL BANK OF PENNSYLVANIA": "First National Bank of Pennsylvania",
119
+ "TRUSTMARK NATIONAL BANK": "Trustmark",
120
+ "FIRST CITIZENS BANK & TRUST COMPANY": "First Citizens Bank",
121
+ "SCOTTRADE BANK": "Scottrade",
122
+ "CATHAY BANK": "Cathay Bank",
123
+ "BANKUNITED, NATIONAL ASSOCIATION": "BankUnited",
124
+ "BANKUNITED": "BankUnited",
125
+ "EMIGRANT BANK": "Emigrant",
126
+ "BARCLAYS BANK DELAWARE": "Barclays Bank Delaware",
127
+ "STERLING SAVINGS BANK": "Sterling Bank",
128
+ "INVESTORS BANK": "Investors Bank",
129
+ "RAYMOND JAMES BANK, NA": "Raymond James Bank",
130
+ "UNITED COMMUNITY BANK": "United Community Bank",
131
+ "BANCO POPULAR NORTH AMERICA": "Popular",
132
+ "INTERNATIONAL BANK OF COMMERCE": "IBC",
133
+ "FIRST MIDWEST BANK": "First Midwest Bank",
134
+ "GREAT WESTERN BANK": "Great Western Bank",
135
+ "MIDFIRST BANK": "MidFirst Bank",
136
+ "FULTON BANK N.A.": "Fulton Bank",
137
+ "FULTON BANK": "Fulton Bank",
138
+ "FIRST BANK": "First Bank",
139
+ "BMW BANK OF NORTH AMERICA": "BMW",
140
+ "SALLIE MAE BANK": "Sallie Mae",
141
+ "NORTHWEST SAVINGS BANK": "Northwest Savings Bank",
142
+ "OLD NATIONAL BANK": "Old National Bank",
143
+ "EASTERN BANK": "Eastern Bank",
144
+ "NATIONAL PENN BANK": "National Penn",
145
+ "ISRAEL DISCOUNT BANK OF NEW YORK-LA": "IDB Bank",
146
+ "ISRAEL DISCOUNT BANK OF NEW YORK,MI": "IDB Bank",
147
+ "FIRST INTERSTATE BANK": "First Interstate Bank",
148
+ "APPLE BANK FOR SAVINGS": "Apple Bank",
149
+ "FIRST FINANCIAL BANK, NA": "First Financial Bank",
150
+ "CAPMARK BANK": "Capmark Bank",
151
+ "TEXAS CAPITAL BANK": "Texas Capital Bank",
152
+ "THE PROVIDENT BANK": "Provident Bank",
153
+ "CAPITOL FEDERAL SAVINGS BANK": "Capitol Federal",
154
+ "THE PARK NATIONAL BANK": "Park National Bank",
155
+ "DOLLAR BANK": "Dollar Bank",
156
+ "SANTA BARBARA BANK & TRUST NA": "Santa Barbara Bank & Trust",
157
+ "SANTA BARBARA BANK & TRUST": "Santa Barbara Bank & Trust",
158
+ "MERCANTIL COMMERCEBANK NATL ASSOC": "Mercantil Commercebank",
159
+ "BANCO SANTANDER,DE PR": "Banco Santander",
160
+ "BANCO SANTANDER DE PR": "Banco Santander",
161
+ "BANCO SANTANDER DE PUERTO RICO": "Banco Santander",
162
+ "CAPITALSOURCE BANK": "CapitalSource Bank",
163
+ "FIRST COMMONWEALTH BANK": "First Commonwealth",
164
+ "PACIFIC WESTERN BANK": "Pacific Western Bank",
165
+ "CITIZENS BUSINESS BANK": "Citizens Business Bank",
166
+ "BANCFIRST": "BancFirst",
167
+ "HANCOCK BANK": "Hancock Bank",
168
+ "CHEMICAL BANK": "Chemical Bank",
169
+ "CHEMICAL BANK SHORELINE": "Chemical Bank",
170
+ "CHEMICAL BANK NORTH": "Chemical Bank",
171
+ "CHEMICAL BANK KEY STATE": "Chemical Bank",
172
+ "CHEMICAL BANK CENTRAL": "Chemical Bank",
173
+ "CHEMICAL BANK THUMB AREA": "Chemical Bank",
174
+ "CHEMICAL BANK MICHIGAN": "Chemical Bank",
175
+ "CHEMICAL BANK WEST-EBS SERVICES": "Chemical Bank",
176
+ "CHEMICAL BANK MONTCALM": "Chemical Bank",
177
+ "CHEMICAL BANK & TRUST COMPANY": "Chemical Bank",
178
+ "DORAL BANK, FSB": "Doral Bank",
179
+ "DORAL BANK": "Doral Bank",
180
+ "CIT BANK": "CIT Bank",
181
+ "NBT BANK, NATIONAL ASSOCIATION": "NBT Bank",
182
+ "WESBANCO BANK INC": "Wesbanco",
183
+ "WESBANCO BANK WHEELING": "Wesbanco",
184
+ "WESBANCO BANK, INC": "Wesbanco",
185
+ "MUTUAL OF OMAHA BANK": "Mutual of Omaha Bank",
186
+ "STERLING BANK & TRUST FSB": "Sterling Bank",
187
+ "STERLING BANK": "Sterling Bank",
188
+ "BANK LEUMI USA": "Bank Leumi USA",
189
+ "WESTAMERICA BANK": "Westamerica Bank",
190
+ "PLAINSCAPITAL BANK": "PlainsCapital Bank",
191
+ "AMERICAN SAVINGS BANK, FSB": "American Savings Bank",
192
+ "COMMUNITY BANK, NA": "Community Bank, N.A.",
193
+ "BANKATLANTIC": "BankAtlantic",
194
+ "BENEFICIAL SAVINGS BANK": "Beneficial Bank",
195
+ "BENEFICIAL SAVING BANK": "Beneficial Bank",
196
+ "BENEFICIAL BANK": "Beneficial Bank",
197
+ "JOHNSON BANK": "Johnson Bank",
198
+ "PINNACLE NATIONAL BANK": "Pinnacle Bank",
199
+ "AMERIPRISE BANK, FSB": "Ameriprise Financial",
200
+ "RIDGEWOOD SAVINGS BANK": "Ridgewood Savings Bank",
201
+ "NATIONAL BANK OF ARIZONA": "National Bank of Arizona",
202
+ "RENASANT BANK": "Renasant Bank",
203
+ "STATE BANK OF INDIA": "State Bank of India",
204
+ "STATE BANK OF INDIA CALIFORNIA": "State Bank of India",
205
+ "STATE BANK OF INDIA (CALIFORNIA)": "State Bank of India",
206
+ "FIRST SOURCE BANK SOUTH BEND": "1st Source Bank",
207
+ "ROCKLAND TRUST COMPANY": "Rockland Trust",
208
+ "TRUSTCO BANK": "TrustCo Bank",
209
+ "NEVADA STATE BANK": "Nevada State Bank",
210
+ "COLUMBIA STATE BANK": "Columbia Bank",
211
+ "MIDDLESEX SAVINGS": "Middlesex Savings Bank",
212
+ "S & T BANK": "S&T Bank",
213
+ "SCOTIABANK DE PUERTO RICO": "Scotiabank de Puerto Rico",
214
+ "BANNER BANK": "Banner Bank",
215
+ "OCEAN BANK": "Ocean Bank",
216
+ "CARTER BANK & TRUST": "Carter Bank & Trust",
217
+ "SCBT": "SCBT",
218
+ "SAFRA NATIONAL BANK OF NEW YORK": "Safra National Bank of New York",
219
+ "FLUSHING SAVINGS BANK,FSB": "Flushing Bank",
220
+ "FLUSHING SAVINGS BANK, F.S.B.": "Flushing Bank",
221
+ "FLUSHING SAVINGS BANK": "Flushing Bank",
222
+ "WASHINGTON TRUST BANK": "Washington Trust Bank",
223
+ "FIRST MERCHANTS BANK": "First Merchants Bank",
224
+ "CENTRAL PACIFIC BANK": "Central Pacific Bank",
225
+ "UNION FIRST MARKET BANK": "Union First Market Bank",
226
+ "COLE TAYLOR BANK/YORKTOWN": "Cole Taylor Bank",
227
+ "COLE TAYLOR BANK ASHLAND": "Cole Taylor Bank",
228
+ "FARMERS AND MERCHANTS BANK": "Farmers & Merchants Bank",
229
+ "TOWNEBANK": "TowneBank",
230
+ "NATIONWIDE BANK": "Nationwide Bank",
231
+ "INTRUST BANK, NA": "INTRUST Bank",
232
+ "INTRUST BANK, N. A.": "INTRUST Bank",
233
+ "CENTENNIAL BANK": "Centennial Bank",
234
+ "LUTHER BURBANK SAVINGS": "Luther Burbank Savings",
235
+ "UNITED BANK": "United Bank",
236
+ "WOODFOREST NATIONAL BANK": "Woodforest National Bank",
237
+ "AMALGAMATED BANK": "Amalgamated Bank",
238
+ "BANCO BILBAO VIZCAYA ARGENTARIA": "Banco Bilbao Vizcaya Argentaria",
239
+ "BANCO BILBAO VIZCAYA ARGENTARIA PR": "Banco Bilbao Vizcaya Argentaria",
240
+ "FIRST SECURITY BANK": "First Security Bank",
241
+ "SUN NATIONAL BANK": "Sun National Bank",
242
+ "FIRST NATIONAL BANK": "First National Bank",
243
+ "BUSEY BANK": "Busey",
244
+ "BUSEY BANK, N.A.": "Busey",
245
+ "WILMINGTON SAVINGS FUND SOCIETY FSB": "WSFS Bank",
246
+ "CITY NATIONAL BANK OF FLORIDA": "City National Bank",
247
+ "COMMUNITY TRUST BANK, INC.": "Community Trust Bank",
248
+ "GREAT SOUTHERN BANK": "Great Southern",
249
+ "LIBERTY BANK": "Liberty Bank",
250
+ "ANCHORBANK S.S.B.": "AnchorBank",
251
+ "BOSTON PRIVATE BANK & TRUST COMPANY": "Boston Private Bank & Trust Company",
252
+ "BEAL BANK SSB": "Beal Bank",
253
+ "BEAL BANK": "Beal Bank",
254
+ "BEAL BANK USA": "Beal Bank",
255
+ "BANK HAPOALIM": "Bank Hapoalim",
256
+ "PINNACLE BANK": "Pinnacle Bank",
257
+ "SANDY SPRING BANK": "Sandy Spring Bank",
258
+ "THE BANCORP.COM": "The Bancorp Bank",
259
+ "THE BANCORP BANK": "The Bancorp Bank",
260
+ "BANK OF THE OZARKS": "Bank of the Ozarks",
261
+ "BANK OF THE OZARKS, WCA": "Bank of the Ozarks",
262
+ "AMERIS BANK": "Ameris Bank",
263
+ "AMERICAN BANKING CO DBA AMERIS BANK": "Ameris Bank",
264
+ "DIME SVG BK WILLIAMSBURGH": "Dime",
265
+ "ORIENTAL BANK AND TRUST": "Oriental",
266
+ "BANK MIDWEST NA": "Bank Midwest",
267
+ "BANK MIDWEST": "Bank Midwest",
268
+ "BANK MIDWEST, N.A.": "Bank Midwest",
269
+ "ENTERPRISE BANK & TRUST": "Enterprise Bank & Trust",
270
+ "ENTERPRISE BANK & TRUST CO.": "Enterprise Bank & Trust",
271
+ "HANMI BANK": "Hanmi Bank",
272
+ "HANMI BANK (FIRST GLOBAL BANK)": "Hanmi Bank",
273
+ "BANK OF NEVADA": "Bank of Nevada",
274
+ "STELLARONE BANK": "StellarOne",
275
+ "MECHANICS BANK": "Mechanics Bank",
276
+ "FIRST FEDERAL SAVINGS AND LOAN ASSO": "First Federal",
277
+ "FIRST FEDERAL SAVINGS AND LOAN": "First Federal",
278
+ "LAKE CITY BANK": "Lake City Bank",
279
+ "FIRST AMERICAN BANK": "First American Bank",
280
+ "FIRST AMERICAN BANK, N.A.": "First American Bank",
281
+ "WILSHIRE STATE BANK": "Wilshire State Bank",
282
+ "STATE BANK AND TRUST COMPANY": "State Bank & Trust Company",
283
+ "WHITNEY BANK": "Whitney Bank",
284
+ "VIRGINIA COMMERCE BANK": "Virginia Commerce Bank",
285
+ "FIRST PLACE BANK": "First Place Bank",
286
+ "HUDSON VALLEY BANK": "Hudson Valley Bank",
287
+ "BERKSHIRE BANK": "Berkshire Bank",
288
+ "AMARILLO NATIONAL BANK": "Amarillo National Bank",
289
+ "SUSQUEHANNA BANK": "Susquehanna",
290
+ "SUSQUEHANNA BANK DV": "Susquehanna",
291
+ "SUSQUEHANNA BANK PA": "Susquehanna",
292
+ "LAKELAND BANK": "Lakeland Bank",
293
+ "INDEPENDENT BANK": "Independent Bank",
294
+ "CITY NATIONAL BANK OF WEST VIRGINIA": "City National Bank",
295
+ "MAINSOURCE BANK": "MainSource",
296
+ "SOUTHSIDE BANK": "Southside Bank",
297
+ "AMERICAN STATE BANK": "Prosperity Bank",
298
+ "PRINCIPAL BANK": "Principal Bank",
299
+ "BBCN BANK": "BBCN Bank",
300
+ "BREMER BANK, NA": "Bremer Bank",
301
+ "BREMER BANK NA": "Bremer Bank",
302
+ "BREMER BANK, N.A. MARSHALL": "Bremer Bank",
303
+ "PEOPLES UNITED BANK": "People's United Bank",
304
+ "CAPITAL CITY BANK": "Capital City Bank",
305
+ "PARKWAY BANK AND TRUST COMPANY": "Parkway Bank",
306
+ "PARKWAY BANK ARIZONA": "Parkway Bank",
307
+ "KEARNY FEDERAL SAVINGS BANK": "Kearny Federal Savings",
308
+ "VIEWPOINT BANK": "ViewPoint Bank",
309
+ "VIEWPOINT BANK, NATIONAL ASSOCIATION": "ViewPoint Bank",
310
+ "BANK OF TOKYO-MITSUBISHI UFJ LTD": "Bank of Tokyo-Mitsubishi UFJ",
311
+ "THE BANK OF TOKYO-MITSUBISHI UFJ LTD": "Bank of Tokyo-Mitsubishi UFJ",
312
+ "PROVIDENT BANK": "Provident Bank",
313
+ "FREMONT BANK": "Fremont Bank",
314
+ "MORTON COMMUNITY BANK": "Morton Community Bank",
315
+ "HOMESTREET BANK": "HomeStreet Bank",
316
+ "CENTURY BANK & TRUST CO": "Century Bank",
317
+ "CENTURY BANK AND TRUST CO": "Century Bank",
318
+ "THE WASHINGTON TRUST COMPANY": "Washington Trust",
319
+ "WASHINGTON TRUST COMPANY": "Washington Trust",
320
+ "BANK MUTUAL": "Bank Mutual",
321
+ "BANK OF HAMPTON ROADS": "Bank of Hampton Roads",
322
+ "AMERICAN CHARTERED BANK": "American Chartered Bank",
323
+ "UNION BANK & TRUST COMPANY": "Union Bank & Trust Company",
324
+ "UNITED CENTRAL BANK": "United Central Bank",
325
+ "ALPINE BANK": "Alpine Bank",
326
+ "BANK OF INDIA": "Bank of India",
327
+ "BROADWAY NATIONAL BANK": "Broadway Bank",
328
+ "SABADELL UNITED BANK, NA": "Sabadell United Bank",
329
+ "FIVE STAR BANK": "Five Star Bank",
330
+ "STANDARD BANK & TRUST COMPANY": "Standard Bank",
331
+ "STANDARD BANK & TRUST CO.": "Standard Bank",
332
+ "STANDARD BANK & TRUST CO": "Standard Bank",
333
+ "CAPITAL BANK": "Capital Bank",
334
+ "LIBERTY BANK OF ARKANSAS": "Liberty Bank of Arkansas",
335
+ "REPUBLIC BANK & TRUST CO.": "Republic Bank",
336
+ "REPUBLIC BANK & TRUST CO": "Republic Bank",
337
+ "COBIZ BANK": "Colorado Business Bank",
338
+ "YADKIN VALLEY BANK & TRUST COMPANY": "Yadkin Valley Bank",
339
+ "STILLWATER NATL. BANK & TRUST CO.": "SNB",
340
+ "STILLWATER NATIONAL BANK": "SNB",
341
+ "STILLWATER NATIONAL BANK & TRUST CO.": "SNB",
342
+ "WEST COAST BANK": "West Coast Bank",
343
+ "WEST COAST BANK (CENTENNIAL BANK)": "West Coast Bank",
344
+ "WEST COAST BANK (BANK OF NEWPORT)": "West Coast Bank",
345
+ "WEST COAST BANK (THE COMMERCIAL BK)": "West Coast Bank",
346
+ "WEST COAST BANK (BANK OF VANCOUVER)": "West Coast Bank",
347
+ "COMMUNITY BANK": "Community Bank",
348
+ "BROOKLINE BANK": "Brookline Bank",
349
+ "METRO BANK": "Metro Bank",
350
+ "FIRSTRUST SVGS BANK": "Firstrust Bank",
351
+ "FIRSTRUST BANK": "Firstrust Bank",
352
+ "OLD SECOND NATL BK AURORA": "Old Second",
353
+ "OLD SECOND NATL BANK": "Old Second",
354
+ "UNION SAVINGS BANK": "Union Savings Bank",
355
+ "INTER NATIONAL BANK": "Inter National Bank",
356
+ "FIRST FINANCIAL BANK": "First Financial Bank",
357
+ "SALEM FIVE CENTS SAVINGS BANK": "Salem Five",
358
+ "SALEM FIVE CENTS SVGS BK": "Salem Five",
359
+ "VECTRA BANK COLORADO": "Vectra Bank Colorado",
360
+ "BANKTRUST": "BankTrust",
361
+ "BANK OF NORTH CAROLINA": "Bank of North Carolina",
362
+ "TRI COUNTIES BANK": "Tri Counties Bank",
363
+ "NEW YORK COMMERCIAL BANK": "New York Commercial Bank",
364
+ "BURKE & HERBERT BK & TR CO": "Burke & Herbert Bank",
365
+ "BURKE & HERBERT BK MERCHANT CAPTURE": "Burke & Herbert Bank",
366
+ "FIRST BANK & TRUST": "First Bank & Trust"
367
+ }
368
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "114994196": {
3
+ "prepaid_card": true,
4
+ "possible_fraud_vector": true
5
+ }
6
+ }
@@ -0,0 +1,334 @@
1
+ require 'logger'
2
+ require 'yajl'
3
+
4
+ class RoutingNumber
5
+
6
+ class InvalidStore < StandardError; end
7
+
8
+ class StoreBase
9
+
10
+ def initialize(opts = {})
11
+ @options = opts
12
+ @logger = opts.delete(:logger)
13
+ end
14
+
15
+ def log
16
+ @logger ||= Logger.new(STDOUT)
17
+ end
18
+
19
+ def options
20
+ @options
21
+ end
22
+
23
+ def loaded?
24
+ @loaded
25
+ end
26
+
27
+ def loaded!
28
+ @loaded = true
29
+ end
30
+
31
+ def loading!
32
+ return false if loading?
33
+ @loading = true
34
+ end
35
+
36
+ def loading?
37
+ @loading
38
+ end
39
+
40
+ def done_loading!
41
+ @loading = false
42
+ loaded!
43
+ end
44
+
45
+ def save(num,obj)
46
+ puts "Don't know how to save!"
47
+ end
48
+
49
+ def get(num)
50
+ puts "Don't know how to get!"
51
+ end
52
+
53
+ def shutdown!
54
+ end
55
+
56
+ def reconnect!
57
+ end
58
+
59
+ end
60
+
61
+ class MemStore < StoreBase
62
+
63
+ def initialize(opts = {})
64
+ @options = opts
65
+ @vals = {}
66
+ end
67
+
68
+ def save(num,obj)
69
+ @vals[num.to_s] = obj
70
+ end
71
+
72
+ def get(num)
73
+ @vals[num.to_s]
74
+ end
75
+
76
+ def shutdown!
77
+ @vals = nil
78
+ end
79
+
80
+ end
81
+
82
+ class RedisStore < StoreBase
83
+
84
+ LOADED_KEY = "LoadedRoutingNumbers".freeze
85
+ LOADING_KEY = "#{LOADED_KEY}::loading".freeze
86
+ STORAGE_KEY = "RoutingNumberLookup"
87
+
88
+ def initialize(*args)
89
+ super(*args)
90
+ require 'redis'
91
+ end
92
+
93
+ def loaded?
94
+ store.exists(LOADED_KEY)
95
+ end
96
+
97
+ def loaded!
98
+ store.set(LOADED_KEY,"yes")
99
+ store.expire(LOADED_KEY,60*60*24*7)
100
+ end
101
+
102
+ def loading!
103
+ store.setnx(LOADING_KEY,"yup")
104
+ end
105
+
106
+ def loading?
107
+ loading!
108
+ end
109
+
110
+ def done_loading!
111
+ store.del(LOADING_KEY)
112
+ loaded!
113
+ end
114
+
115
+ def save(num,obj)
116
+ store.hset(STORAGE_KEY,num.to_s,Yajl::Encoder.encode(obj))
117
+ end
118
+
119
+ def get(num)
120
+ if cnt = store.hget(STORAGE_KEY,num.to_s)
121
+ Yajl::Parser.new(symbolize_keys: true).parse(cnt)
122
+ else
123
+ nil
124
+ end
125
+ end
126
+
127
+ def store
128
+ @store ||= (
129
+ log.info "Connecting to Redis."
130
+ log.debug "Connection settings: #{options.inspect}"
131
+ Redis.new(options)
132
+ )
133
+ end
134
+
135
+ def reconnect!
136
+ @store = nil
137
+ store
138
+ end
139
+
140
+ def shutdown!
141
+ @store = nil
142
+ end
143
+
144
+ end
145
+
146
+ # class MemcacheStore < StoreBase
147
+ #
148
+ #
149
+ #
150
+ # end
151
+
152
+ Stores = {
153
+ default: MemStore,
154
+ memory: MemStore,
155
+ redis: RedisStore,
156
+ # memcached: MemcachedStore
157
+ }
158
+
159
+ class << self
160
+
161
+ FORMAT = [
162
+ [:route,9],
163
+ [:office_code,1],
164
+ [:servicing_frb_number,9],
165
+ [:record_type_code,1],
166
+ [:change_date,6],
167
+ [:new_routing_number,9],
168
+ [:name,36],
169
+ [:address,36],
170
+ [:city,20],
171
+ [:state,2],
172
+ [:zip,5],
173
+ [:zip_ext,4],
174
+ [:phone_area,3],
175
+ [:phone_prefix,3],
176
+ [:phone_suffix,4],
177
+ [:institution_status_code,1],
178
+ [:data_view_code,1],
179
+ [:filler,5]
180
+ ].freeze
181
+
182
+ DefaultOptions = {
183
+ store_in: :memory,
184
+ routing_data_url: "https://www.fededirectory.frb.org/FedACHdir.txt",
185
+ routing_data_file: File.expand_path(File.dirname(__FILE__)) + "/FedACHdir.txt",
186
+ fetch_fed_data: false,
187
+ store_opts: {},
188
+ mapping_file: File.expand_path(File.dirname(__FILE__) + "/mappings.json"),
189
+ metadata_file: File.expand_path(File.dirname(__FILE__) + "/metadata.json")
190
+ }.freeze
191
+
192
+ def init!(opts = {})
193
+ return if @initted
194
+ @options = options.merge(opts)
195
+ if options[:store_in]
196
+ store_in options[:store_in], options[:store_opts]
197
+ end
198
+ unless store.loaded?
199
+ log.info "Loading routing numbers..."
200
+ load_routing_numbers
201
+ log.info "Done loading routing numbers."
202
+ end
203
+ @initted = true
204
+ end
205
+
206
+ def options=(opts)
207
+ @options = options.merge(opts)
208
+ end
209
+
210
+ def get(num)
211
+ init!(options)
212
+ if cnt = store.get(num.to_s)
213
+ cnt
214
+ else
215
+ nil
216
+ end
217
+ end
218
+ alias_method :[], :get
219
+ alias_method :find, :get
220
+
221
+ def store_in(name, opts={})
222
+ raise InvalidStore unless s_cls = Stores[name.to_sym]
223
+ return if @store.is_a?(s_cls)
224
+ @store.shutdown! if @store
225
+ @store = s_cls.new(opts.merge(logger: log))
226
+ @initted = false
227
+ options[:store_in] = name.to_sym
228
+ options[:store_opts] = opts
229
+ init!
230
+ end
231
+
232
+ def reconnect!
233
+ log.info "Reconnecting!"
234
+ store.reconnect!
235
+ end
236
+
237
+ private
238
+
239
+ def store
240
+ @store ||= default_store
241
+ end
242
+
243
+ def default_store
244
+ Stores[:default].new(logger: log)
245
+ end
246
+
247
+ def options
248
+ @options ||= DefaultOptions.dup
249
+ end
250
+
251
+ def get_raw_data
252
+ unless options[:fetch_fed_data]
253
+ log.info "Using routing data from local file at: #{options[:routing_data_file]}"
254
+ File.new(options[:routing_data_file])
255
+ else
256
+ log.info "Getting new bank routing data from: #{options[:routing_data_url]}"
257
+ require 'typhoeus'
258
+ Typhoeus::Request.get(options[:routing_data_url], :ssl_verifypeer => false).body
259
+ end
260
+ end
261
+
262
+ def load_routing_numbers(data=get_raw_data)
263
+ if store.loading!
264
+ loading!
265
+ data.each_line do |line|
266
+ process_line line
267
+ end
268
+ store.done_loading!
269
+ done_loading!
270
+ end
271
+ end
272
+
273
+ def process_line(line)
274
+ obj = unpack_line(line)
275
+ rt = obj.delete(:route)
276
+ store.save rt, obj.merge(:routingnumber_id => rt.to_s).merge(@metadata[rt.to_s] || {})
277
+ @cur += 1
278
+ if @cur % 10 == 0
279
+ tm = Time.now - @st_time
280
+ print "\r #{@cur} loaded (#{tm.round(2)} seconds ~ #{tm > 0 ? (@cur / tm).round(0) : "?"}/sec) "
281
+ end
282
+ end
283
+
284
+ def pretty_maps
285
+ @pretty_maps
286
+ end
287
+
288
+ def loading!
289
+ @cur = 0
290
+ @st_time = Time.now
291
+ @pretty_maps = Yajl::Parser.parse(IO.read(options[:mapping_file]))
292
+ @metadata = Yajl::Parser.parse(IO.read(options[:metadata_file]))
293
+ end
294
+
295
+ def done_loading!
296
+ tm = Time.now - @st_time
297
+ print "\r #{@cur} loaded (#{tm.round(2)} seconds ~ #{tm > 0 ? (@cur / tm).round(0) : "?"}/sec) \n"
298
+ @cur = @st_time = @pretty_maps = @metadata = nil
299
+ end
300
+
301
+ def unpack_line(line)
302
+ vals = line.unpack(unpack_template)
303
+ obj = {}
304
+ FORMAT.each_with_index do |(name,length),i|
305
+ val = vals[i]
306
+ obj[name] = converted(name,val)
307
+ end
308
+ obj[:zip] = "#{obj.delete(:zip)}#{(ext = obj.delete(:zip_ext)) and ext.size > 0 ? "-#{ext}" : ""}"
309
+ obj[:phone] = "#{obj.delete(:phone_area)}-#{obj.delete(:phone_prefix)}-#{obj.delete(:phone_suffix)}"
310
+ obj.delete(:garbage)
311
+ obj
312
+ end
313
+
314
+ def converted(name,val)
315
+ if pretty_maps[name.to_s] and (v = pretty_maps[name.to_s][val])
316
+ v
317
+ else
318
+ val
319
+ end
320
+ end
321
+
322
+ def unpack_template
323
+ @unpack_format ||= FORMAT.map do |(name,length)|
324
+ "A#{length}"
325
+ end.join
326
+ end
327
+
328
+ def log
329
+ @logger ||= Logger.new(STDOUT)
330
+ end
331
+
332
+ end
333
+
334
+ end