ifsc 2.0.6 → 2.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -9
- data/CONTRIBUTING.md +2 -0
- data/README.md +63 -15
- data/ifsc.gemspec +2 -2
- data/src/IFSC.json +1 -1
- data/src/banknames.json +141 -129
- data/src/banks.json +3919 -3883
- data/src/custom-sublets.json +5 -1
- data/src/ruby/bank.rb +18 -4
- data/src/ruby/bank.rb.tpl +28 -0
- data/src/ruby/ifsc.rb +8 -1
- data/src/sublet.json +10 -9
- data/tests/ruby/bank_spec.rb +2 -5
- data/tests/ruby/ifsc_spec.rb +8 -10
- metadata +4 -3
data/src/custom-sublets.json
CHANGED
@@ -119,6 +119,10 @@
|
|
119
119
|
"YESB0VCA": "VCAX",
|
120
120
|
"YESB0VNB": "VCNB",
|
121
121
|
"YESB0WNS": "Wardha Nagri Bank",
|
122
|
+
"ICIC00ICBLP": "IXXX",
|
123
|
+
"ICIC00ICOBL": "IXXX",
|
122
124
|
"YESB0YDC": "YADX",
|
123
|
-
"YESB0ZSB": "ZISX"
|
125
|
+
"YESB0ZSB": "ZISX",
|
126
|
+
"SMCB0000001": "SMCB",
|
127
|
+
"YESB0FIN": "FINX"
|
124
128
|
}
|
data/src/ruby/bank.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
# The bank.rb file is generated from `bank.rb.tpl` using constants
|
3
|
+
# from banknames.json. Run `make generate-constants` to
|
4
|
+
# update this file
|
3
5
|
module Razorpay
|
4
6
|
module IFSC
|
5
7
|
module Bank
|
@@ -78,6 +80,7 @@ module Razorpay
|
|
78
80
|
APMC = :APMC
|
79
81
|
APMX = :APMX
|
80
82
|
APNX = :APNX
|
83
|
+
APRR = :APRR
|
81
84
|
APRX = :APRX
|
82
85
|
APSX = :APSX
|
83
86
|
ARBL = :ARBL
|
@@ -108,6 +111,7 @@ module Razorpay
|
|
108
111
|
BACX = :BACX
|
109
112
|
BADX = :BADX
|
110
113
|
BAGX = :BAGX
|
114
|
+
BALB = :BALB
|
111
115
|
BALX = :BALX
|
112
116
|
BANX = :BANX
|
113
117
|
BARA = :BARA
|
@@ -118,6 +122,7 @@ module Razorpay
|
|
118
122
|
BAUX = :BAUX
|
119
123
|
BAVX = :BAVX
|
120
124
|
BAWX = :BAWX
|
125
|
+
BBDX = :BBDX
|
121
126
|
BBKM = :BBKM
|
122
127
|
BBLX = :BBLX
|
123
128
|
BBRX = :BBRX
|
@@ -263,6 +268,7 @@ module Razorpay
|
|
263
268
|
CPSN = :CPSN
|
264
269
|
CRBX = :CRBX
|
265
270
|
CRES = :CRES
|
271
|
+
CRGB = :CRGB
|
266
272
|
CRLY = :CRLY
|
267
273
|
CRSX = :CRSX
|
268
274
|
CRUB = :CRUB
|
@@ -332,6 +338,7 @@ module Razorpay
|
|
332
338
|
DOBX = :DOBX
|
333
339
|
DOHB = :DOHB
|
334
340
|
DRGX = :DRGX
|
341
|
+
DSAX = :DSAX
|
335
342
|
DSBX = :DSBX
|
336
343
|
DSCB = :DSCB
|
337
344
|
DSHX = :DSHX
|
@@ -477,9 +484,11 @@ module Razorpay
|
|
477
484
|
ITDX = :ITDX
|
478
485
|
IUCB = :IUCB
|
479
486
|
IUCX = :IUCX
|
487
|
+
IXXX = :IXXX
|
480
488
|
JACX = :JACX
|
481
489
|
JAKA = :JAKA
|
482
490
|
JALX = :JALX
|
491
|
+
JAMX = :JAMX
|
483
492
|
JANA = :JANA
|
484
493
|
JANX = :JANX
|
485
494
|
JASB = :JASB
|
@@ -577,6 +586,7 @@ module Razorpay
|
|
577
586
|
JUCX = :JUCX
|
578
587
|
JUSX = :JUSX
|
579
588
|
JVCX = :JVCX
|
589
|
+
JXXX = :JXXX
|
580
590
|
KAAX = :KAAX
|
581
591
|
KACE = :KACE
|
582
592
|
KACX = :KACX
|
@@ -728,6 +738,7 @@ module Razorpay
|
|
728
738
|
MBCX = :MBCX
|
729
739
|
MBGX = :MBGX
|
730
740
|
MBLX = :MBLX
|
741
|
+
MCAB = :MCAB
|
731
742
|
MCAX = :MCAX
|
732
743
|
MCBL = :MCBL
|
733
744
|
MCBX = :MCBX
|
@@ -807,6 +818,7 @@ module Razorpay
|
|
807
818
|
MVCB = :MVCB
|
808
819
|
MVCX = :MVCX
|
809
820
|
MVIX = :MVIX
|
821
|
+
MXXX = :MXXX
|
810
822
|
MYAX = :MYAX
|
811
823
|
MYCX = :MYCX
|
812
824
|
MYSX = :MYSX
|
@@ -874,6 +886,7 @@ module Razorpay
|
|
874
886
|
NOSC = :NOSC
|
875
887
|
NPCX = :NPCX
|
876
888
|
NPKX = :NPKX
|
889
|
+
NPPX = :NPPX
|
877
890
|
NRDX = :NRDX
|
878
891
|
NRMX = :NRMX
|
879
892
|
NSBB = :NSBB
|
@@ -933,6 +946,7 @@ module Razorpay
|
|
933
946
|
PGCX = :PGCX
|
934
947
|
PGRX = :PGRX
|
935
948
|
PGTX = :PGTX
|
949
|
+
PHIX = :PHIX
|
936
950
|
PITX = :PITX
|
937
951
|
PJSB = :PJSB
|
938
952
|
PKBX = :PKBX
|
@@ -1147,6 +1161,7 @@ module Razorpay
|
|
1147
1161
|
SJSX = :SJSX
|
1148
1162
|
SKCX = :SKCX
|
1149
1163
|
SKKX = :SKKX
|
1164
|
+
SKNB = :SKNB
|
1150
1165
|
SKNX = :SKNX
|
1151
1166
|
SKSB = :SKSB
|
1152
1167
|
SKUX = :SKUX
|
@@ -1233,6 +1248,7 @@ module Razorpay
|
|
1233
1248
|
SVSX = :SVSX
|
1234
1249
|
SWMX = :SWMX
|
1235
1250
|
SWSX = :SWSX
|
1251
|
+
SXXX = :SXXX
|
1236
1252
|
SYNB = :SYNB
|
1237
1253
|
TACX = :TACX
|
1238
1254
|
TADX = :TADX
|
@@ -1404,6 +1420,7 @@ module Razorpay
|
|
1404
1420
|
UTZX = :UTZX
|
1405
1421
|
UUCB = :UUCB
|
1406
1422
|
UUCX = :UUCX
|
1423
|
+
UXXX = :UXXX
|
1407
1424
|
VADX = :VADX
|
1408
1425
|
VAIX = :VAIX
|
1409
1426
|
VANX = :VANX
|
@@ -1494,9 +1511,6 @@ module Razorpay
|
|
1494
1511
|
ZSLX = :ZSLX
|
1495
1512
|
ZSMX = :ZSMX
|
1496
1513
|
|
1497
|
-
SXXX = :SXXX
|
1498
|
-
JAMX = :JAMX
|
1499
|
-
|
1500
1514
|
class << self
|
1501
1515
|
def get_details(code)
|
1502
1516
|
h = data[code]
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# The bank.rb file is generated from `bank.rb.tpl` using constants
|
3
|
+
# from banknames.json. Run `make generate-constants` to
|
4
|
+
# update this file
|
5
|
+
module Razorpay
|
6
|
+
module IFSC
|
7
|
+
module Bank{{ range .Value }}
|
8
|
+
{{ . }} = :{{ . }}{{ end }}
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def get_details(code)
|
12
|
+
h = data[code]
|
13
|
+
h[:bank_code] = (h[:micr][3..5] if h.key? :micr)
|
14
|
+
h
|
15
|
+
end
|
16
|
+
|
17
|
+
def parse_json_file(file)
|
18
|
+
file = "../#{file}.json"
|
19
|
+
JSON.parse(File.read(File.join(__dir__, file)), symbolize_names: true)
|
20
|
+
end
|
21
|
+
|
22
|
+
def data
|
23
|
+
@data ||= parse_json_file 'banks'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/src/ruby/ifsc.rb
CHANGED
@@ -11,7 +11,7 @@ module Razorpay
|
|
11
11
|
class IFSC
|
12
12
|
API = 'https://ifsc.razorpay.com/'.freeze
|
13
13
|
|
14
|
-
attr_reader :bank, :ifsc, :branch, :address, :contact, :city, :district, :state
|
14
|
+
attr_reader :bank, :ifsc, :branch, :address, :contact, :city, :district, :state, :centre, :micr, :imps, :rtgs, :upi, :neft, :swift
|
15
15
|
|
16
16
|
def initialize(ifsc)
|
17
17
|
@ifsc = ifsc
|
@@ -30,6 +30,13 @@ module Razorpay
|
|
30
30
|
@district = api_data['DISTRICT']
|
31
31
|
@state = api_data['STATE']
|
32
32
|
@bankcode = api_data['BANKCODE']
|
33
|
+
@centre = api_data['CENTRE']
|
34
|
+
@imps = api_data['IMPS']
|
35
|
+
@neft = api_data['NEFT']
|
36
|
+
@rtgs = api_data['RTGS']
|
37
|
+
@upi = api_data['UPI']
|
38
|
+
@micr = api_data['MICR']
|
39
|
+
@swift = api_data['SWIFT']
|
33
40
|
@valid = true
|
34
41
|
self
|
35
42
|
end
|
data/src/sublet.json
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
{
|
2
2
|
"AKJB0000001": "AJKB",
|
3
|
-
"ANDB0007999": "CGGX",
|
4
3
|
"APBL0001001": "TSDX",
|
5
4
|
"APBL0002001": "TVDX",
|
6
5
|
"APBL0003001": "DICX",
|
@@ -155,6 +154,7 @@
|
|
155
154
|
"HDFC0CAUCBL": "ANUX",
|
156
155
|
"HDFC0CBACOB": "BACX",
|
157
156
|
"HDFC0CBCBBK": "BCBX",
|
157
|
+
"HDFC0CBCBLH": "BALB",
|
158
158
|
"HDFC0CBCBMN": "BTCX",
|
159
159
|
"HDFC0CBCCBL": "BURX",
|
160
160
|
"HDFC0CBDSCB": "BSCX",
|
@@ -256,7 +256,6 @@
|
|
256
256
|
"HDFC0CMFUCB": "MFUX",
|
257
257
|
"HDFC0CMNSAA": "SMNX",
|
258
258
|
"HDFC0CMNSBM": "MMMX",
|
259
|
-
"HDFC0CMODEL": "MDEX",
|
260
259
|
"HDFC0CMPLTB": "TMAX",
|
261
260
|
"HDFC0CMPSSB": "MVIX",
|
262
261
|
"HDFC0CMUCB1": "TMUX",
|
@@ -270,6 +269,7 @@
|
|
270
269
|
"HDFC0CNGUBL": "NGNX",
|
271
270
|
"HDFC0CNHUCB": "TNHX",
|
272
271
|
"HDFC0CNJMVB": "NJMX",
|
272
|
+
"HDFC0CNPCCB": "NPPX",
|
273
273
|
"HDFC0CNSBLD": "NGSX",
|
274
274
|
"HDFC0CNSBLN": "NABX",
|
275
275
|
"HDFC0CNSBLR": "NSRX",
|
@@ -329,7 +329,6 @@
|
|
329
329
|
"HDFC0CSINDC": "SDCX",
|
330
330
|
"HDFC0CSLCBL": "SLCX",
|
331
331
|
"HDFC0CSMMB1": "SMMX",
|
332
|
-
"HDFC0CSMPBA": "SMPX",
|
333
332
|
"HDFC0CSMSSB": "SEWX",
|
334
333
|
"HDFC0CSMUCB": "SMUX",
|
335
334
|
"HDFC0CSNCBL": "SNAX",
|
@@ -367,10 +366,9 @@
|
|
367
366
|
"HDFC0CTJCBL": "JANX",
|
368
367
|
"HDFC0CTJPCB": "JMPX",
|
369
368
|
"HDFC0CTKNSB": "KUKX",
|
370
|
-
"HDFC0CTLCBL": "LACX",
|
371
369
|
"HDFC0CTMCBL": "MVCX",
|
372
370
|
"HDFC0CTMCNB": "MNBX",
|
373
|
-
"
|
371
|
+
"HDFC0CTPHCB": "PHIX",
|
374
372
|
"HDFC0CTR384": "TUBX",
|
375
373
|
"HDFC0CTRUMC": "RUMX",
|
376
374
|
"HDFC0CTSCBL": "SNGX",
|
@@ -381,7 +379,6 @@
|
|
381
379
|
"HDFC0CTUCB1": "UTBX",
|
382
380
|
"HDFC0CTUCBL": "FGCB",
|
383
381
|
"HDFC0CTUCOB": "TAPX",
|
384
|
-
"HDFC0CTVCBL": "VIJX",
|
385
382
|
"HDFC0CTZNBK": "CCBX",
|
386
383
|
"HDFC0CUCBLM": "TUCL",
|
387
384
|
"HDFC0CUCBNR": "TUNX",
|
@@ -489,6 +486,7 @@
|
|
489
486
|
"IBKL01606BP": "TBPX",
|
490
487
|
"IBKL01642C1": "CTBX",
|
491
488
|
"IBKL01642RP": "RAKX",
|
489
|
+
"IBKL01642SD": "SRHX",
|
492
490
|
"IBKL01720GU": "TGCG",
|
493
491
|
"IBKL0186LEC": "LECX",
|
494
492
|
"IBKL01870N1": "NULX",
|
@@ -608,6 +606,7 @@
|
|
608
606
|
"ICIC00CNSBL": "CNSX",
|
609
607
|
"ICIC00COMCB": "CMCX",
|
610
608
|
"ICIC00DCBLS": "DSHX",
|
609
|
+
"ICIC00DCBSU": "DSAX",
|
611
610
|
"ICIC00DCCBG": "ZSBG",
|
612
611
|
"ICIC00DKDCB": "DKCL",
|
613
612
|
"ICIC00DUCBL": "DEUX",
|
@@ -754,7 +753,8 @@
|
|
754
753
|
"KSCB0017001": "KYDX",
|
755
754
|
"KSCB0018001": "TDBX",
|
756
755
|
"KSCB0701001": "DVDX",
|
757
|
-
"
|
756
|
+
"MAHG0004000": "MGBX",
|
757
|
+
"MDBK0000001": "MDEX",
|
758
758
|
"NVNM0000001": "NAVX",
|
759
759
|
"ORCB0ANG001": "AUBX",
|
760
760
|
"ORCB0ASK001": "TSKX",
|
@@ -886,6 +886,7 @@
|
|
886
886
|
"TNSC0015000": "TNIX",
|
887
887
|
"TNSC0160101": "PCSX",
|
888
888
|
"TSSB0000001": "SSBL",
|
889
|
+
"UBIN0CG7999": "CGGX",
|
889
890
|
"UBIN0DCBEDC": "EDSX",
|
890
891
|
"UCBA0RRBPBG": "PASX",
|
891
892
|
"UJVN0000001": "USFB",
|
@@ -1011,13 +1012,14 @@
|
|
1011
1012
|
"UTIB0STMNBI": "MUNX",
|
1012
1013
|
"UTIB0STTN01": "TTCX",
|
1013
1014
|
"UTIB0SUBBLR": "BUCL",
|
1014
|
-
"UTIB0SUICB1": "UICX",
|
1015
1015
|
"UTIB0SVNS01": "VANX",
|
1016
1016
|
"UTIB0SWJP01": "WZUX",
|
1017
1017
|
"UTIB0YCCB01": "YNCX",
|
1018
1018
|
"UUCB0000001": "UUCX",
|
1019
1019
|
"VASJ0000001": "VJSX",
|
1020
|
+
"VCOB0000001": "VIJX",
|
1020
1021
|
"WBSC0BDCB01": "BADX",
|
1022
|
+
"WBSC0BIRB02": "BBDX",
|
1021
1023
|
"WBSC0BUCB01": "BNCX",
|
1022
1024
|
"WBSC0DDCB01": "DDDX",
|
1023
1025
|
"WBSC0DJCB01": "DDCX",
|
@@ -1122,7 +1124,6 @@
|
|
1122
1124
|
"YESB0SATYA0": "SATX",
|
1123
1125
|
"YESB0SCB003": "SKCX",
|
1124
1126
|
"YESB0SCUB01": "SHMX",
|
1125
|
-
"YESB0SDB002": "SRHX",
|
1126
1127
|
"YESB0SDC001": "SOLX",
|
1127
1128
|
"YESB0SHBK01": "SSHX",
|
1128
1129
|
"YESB0SIND01": "SNDX",
|
data/tests/ruby/bank_spec.rb
CHANGED
@@ -20,11 +20,8 @@ describe Razorpay::IFSC::Bank do
|
|
20
20
|
nach_debit: true)
|
21
21
|
end
|
22
22
|
|
23
|
-
it 'should match all constants defined in
|
24
|
-
|
25
|
-
bank_constants = constants_file.select { |e| e.match(/const/) }.map { |e| e[/\s+const (\w{4})/, 1] }
|
26
|
-
|
27
|
-
bank_constants.each do |c|
|
23
|
+
it 'should match all constants defined in banknames.json' do
|
24
|
+
JSON.parse(File.read('src/banknames.json')).keys.each do |c|
|
28
25
|
expect(described_class::const_get(c)).to eq c.to_sym
|
29
26
|
end
|
30
27
|
end
|
data/tests/ruby/ifsc_spec.rb
CHANGED
@@ -5,16 +5,7 @@ require 'bank'
|
|
5
5
|
|
6
6
|
describe Razorpay::IFSC::IFSC do
|
7
7
|
let(:mocked_response) do
|
8
|
-
|
9
|
-
'BANK' => 'Kotak Mahindra Bank',
|
10
|
-
'IFSC' => 'KKBK0000261',
|
11
|
-
'BRANCH' => 'GURGAON',
|
12
|
-
'ADDRESS' => 'JMD REGENT SQUARE,MEHRAULI GURGAON ROAD,OPPOSITE BRISTOL HOTEL,',
|
13
|
-
'CONTACT' => '4131000',
|
14
|
-
'CITY' => 'GURGAON',
|
15
|
-
'DISTRICT' => 'GURGAON',
|
16
|
-
'STATE' => 'HARYAN'
|
17
|
-
}
|
8
|
+
JSON.parse(File.read 'tests/fixture/HDFC0CAGSBK.json')
|
18
9
|
end
|
19
10
|
let(:dummy_code) { 'foo' }
|
20
11
|
let(:code_double) { double('code double') }
|
@@ -36,6 +27,13 @@ describe Razorpay::IFSC::IFSC do
|
|
36
27
|
expect(fetched_code.city).to eq mocked_response['CITY']
|
37
28
|
expect(fetched_code.district).to eq mocked_response['DISTRICT']
|
38
29
|
expect(fetched_code.state).to eq mocked_response['STATE']
|
30
|
+
expect(fetched_code.centre).to eq mocked_response['CENTRE']
|
31
|
+
expect(fetched_code.micr).to eq mocked_response['MICR']
|
32
|
+
expect(fetched_code.upi).to eq mocked_response['UPI']
|
33
|
+
expect(fetched_code.imps).to eq mocked_response['IMPS']
|
34
|
+
expect(fetched_code.neft).to eq mocked_response['NEFT']
|
35
|
+
expect(fetched_code.rtgs).to eq mocked_response['RTGS']
|
36
|
+
expect(fetched_code.swift).to eq mocked_response['SWIFT']
|
39
37
|
end
|
40
38
|
|
41
39
|
it 'should set @valid to true and skip local validation' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ifsc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abhay Rana
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-08-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- src/banks.json
|
72
72
|
- src/custom-sublets.json
|
73
73
|
- src/ruby/bank.rb
|
74
|
+
- src/ruby/bank.rb.tpl
|
74
75
|
- src/ruby/ifsc.rb
|
75
76
|
- src/sublet.json
|
76
77
|
- tests/ruby/bank_spec.rb
|
@@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
97
|
- !ruby/object:Gem::Version
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
100
|
+
rubygems_version: 3.3.15
|
100
101
|
signing_key:
|
101
102
|
specification_version: 4
|
102
103
|
summary: IFSC code database to help you validate IFSC codes
|