bs2_api 0.1.0 → 0.2.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.
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Entities
5
+ class Bank
6
+ attr_accessor :ispb, :account, :customer
7
+
8
+ def initialize(args = {})
9
+ @ispb = args.fetch(:ispb, nil)
10
+ @account = args.fetch(:account, nil)
11
+ @customer = args.fetch(:customer, nil)
12
+ end
13
+
14
+ def to_hash
15
+ ActiveSupport::HashWithIndifferentAccess.new(
16
+ {
17
+ "ispb": get_ispb,
18
+ "conta": @account.to_hash,
19
+ "pessoa": @customer.to_hash
20
+ }
21
+ )
22
+ end
23
+
24
+ def self.from_response(hash_payload)
25
+ hash = ActiveSupport::HashWithIndifferentAccess.new(hash_payload)
26
+
27
+ Bs2Api::Entities::Bank.new(
28
+ ispb: hash["ispb"],
29
+ account: Bs2Api::Entities::Account.from_response(hash["conta"]),
30
+ customer: Bs2Api::Entities::Customer.from_response(hash["pessoa"])
31
+ )
32
+ end
33
+
34
+ private
35
+ def get_ispb
36
+ Bs2Api::Util::BankService.find_by_code(@account.bank_code)["ispb"]
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Entities
5
+ class Customer
6
+ attr_accessor :document, :type, :name, :business_name
7
+
8
+ TYPES = {
9
+ personal: 'CPF',
10
+ business: 'CNPJ'
11
+ }
12
+
13
+ def initialize(args = {})
14
+ @document = args.fetch(:document, nil)
15
+ @type = args.fetch(:type, 'CPF')
16
+ @name = args.fetch(:name, nil)
17
+ @business_name = args.fetch(:business_name, nil)
18
+ end
19
+
20
+ def to_hash
21
+ ActiveSupport::HashWithIndifferentAccess.new(
22
+ {
23
+ "documento": @document,
24
+ "tipoDocumento": @type,
25
+ "nome": @name,
26
+ "nomeFantasia": @business_name
27
+ }
28
+ )
29
+ end
30
+
31
+ def self.from_response(hash_payload)
32
+ hash = ActiveSupport::HashWithIndifferentAccess.new(hash_payload)
33
+
34
+ Bs2Api::Entities::Customer.new(
35
+ document: hash["documento"],
36
+ type: hash["tipoDocumento"],
37
+ name: hash["nome"],
38
+ business_name: hash["nomeFantasia"]
39
+ )
40
+ end
41
+
42
+ def personal?
43
+ @type == TYPES[:personal]
44
+ end
45
+
46
+ def business?
47
+ @type == TYPES[:business]
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Entities
5
+ class Payment
6
+ attr_accessor :id, :merchant_id, :receiver, :payer
7
+
8
+ def initialize(args = {})
9
+ @id = args.fetch(:id, nil)
10
+ @merchant_id = args.fetch(:merchant_id, nil)
11
+ @receiver = args.fetch(:receiver, nil)
12
+ @payer = args.fetch(:payer, nil)
13
+ end
14
+
15
+ def to_hash
16
+ ActiveSupport::HashWithIndifferentAccess.new(
17
+ {
18
+ "pagamentoId": @id,
19
+ "endToEndId": @merchant_id,
20
+ "recebedor": @receiver.to_hash,
21
+ "pagador": @payer.to_hash
22
+ }
23
+ )
24
+ end
25
+
26
+ def self.from_response(hash_payload)
27
+ hash = ActiveSupport::HashWithIndifferentAccess.new(hash_payload)
28
+
29
+ Bs2Api::Entities::Payment.new(
30
+ id: hash["pagamentoId"],
31
+ merchant_id: hash["endToEndId"],
32
+ receiver: Bs2Api::Entities::Bank.from_response(hash["recebedor"]),
33
+ payer: Bs2Api::Entities::Bank.from_response(hash["pagador"])
34
+ )
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Entities
5
+ class PixKey
6
+ attr_accessor :key, :type
7
+
8
+ TYPES = {
9
+ cpf: 'CPF',
10
+ cnpj: 'CNPJ',
11
+ phone: 'PHONE',
12
+ email: 'EMAIL',
13
+ random: 'EVP'
14
+ }
15
+
16
+ def initialize(args = {})
17
+ @key = args.fetch(:key, nil)
18
+ @type = args.fetch(:type, 'CPF')
19
+ end
20
+
21
+ def to_hash
22
+ ActiveSupport::HashWithIndifferentAccess.new(
23
+ {
24
+ "valor": @key,
25
+ "tipo": @type
26
+ }
27
+ )
28
+ end
29
+
30
+ def self.from_response(hash_payload)
31
+ hash = ActiveSupport::HashWithIndifferentAccess.new(hash_payload)
32
+
33
+ Bs2Api::Entities::PixKey.new(
34
+ key: hash["valor"],
35
+ type: hash["tipo"]
36
+ )
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class BadRequest < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class Base < StandardError; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class InvalidCustomer < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class InvalidPixKey < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class MissingConfiguration < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class ServerError < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class Unauthorized < Base; end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Hash
4
+ def to_query
5
+ keys.map do |key|
6
+ "#{key}=#{self[key]}"
7
+ end.join("&")
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Object
4
+ def blank?
5
+ respond_to?(:empty?) ? !!empty? : !self
6
+ end
7
+
8
+ def present?
9
+ !blank?
10
+ end
11
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Payment
5
+ class Base
6
+ def call
7
+ response = HTTP.auth("Bearer #{bearer_token}")
8
+ .headers(headers)
9
+ .post(
10
+ url,
11
+ json: payload
12
+ )
13
+
14
+ raise Bs2Api::Errors::BadRequest, response.body.to_s if !response.status.created?
15
+
16
+ Bs2Api::Entities::Payment.from_response(response.parse)
17
+ end
18
+
19
+ private
20
+ def headers
21
+ {
22
+ "Content-Type": "application/json",
23
+ "Accept": "application/json",
24
+ "Accept-Encoding": "gzip,deflate"
25
+ }
26
+ end
27
+
28
+ def bearer_token
29
+ Bs2Api::Request::Auth.token
30
+ end
31
+
32
+ def payload
33
+ no_method_error
34
+ end
35
+
36
+ def url
37
+ no_method_error
38
+ end
39
+
40
+ def no_method_error
41
+ raise NoMethodError, "Missing #{__method__} to #{self.class}"
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Payment
5
+ class Key < Base
6
+ def initialize key
7
+ @key = key
8
+ end
9
+
10
+ private
11
+ def url
12
+ "#{Bs2Api.endpoint}/pix/direto/forintegration/v1/pagamentos/chave"
13
+ end
14
+
15
+ def payload
16
+ {
17
+ "chave": @key.to_hash
18
+ }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Payment
5
+ class Manual < Base
6
+ def initialize bank
7
+ @bank = bank
8
+ end
9
+
10
+ private
11
+ def url
12
+ "#{Bs2Api.endpoint}/pix/direto/forintegration/v1/pagamentos/manual"
13
+ end
14
+
15
+ def payload
16
+ {
17
+ "recebedor": @bank.to_hash
18
+ }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Request
5
+ class Auth
6
+ class << self
7
+ def token
8
+ Bs2Api.configuration.valid?
9
+
10
+ response = create_session
11
+
12
+ raise Bs2Api::Errors::Unauthorized, response.parse["error_description"] if response.status.unauthorized?
13
+ raise Bs2Api::Errors::BadRequest, response.parse["error_description"] if response.status.bad_request?
14
+ raise Bs2Api::Errors::ServerError, response.body.to_s if !response.status.success?
15
+
16
+ response.parse["access_token"]
17
+ end
18
+
19
+ private
20
+ def create_session
21
+ HTTP.basic_auth(
22
+ user: Bs2Api.configuration.client_id,
23
+ pass: Bs2Api.configuration.client_secret
24
+ ).post(
25
+ auth_url,
26
+ body: body,
27
+ headers: headers
28
+ )
29
+ end
30
+
31
+ def headers
32
+ {
33
+ "Content-Type": "application/x-www-form-urlencoded",
34
+ "Accept": "application/json"
35
+ }
36
+ end
37
+
38
+ def body
39
+ {
40
+ grant_type: "client_credentials",
41
+ scope: "pix.write%20pix.read"
42
+ }.to_query
43
+ end
44
+
45
+ def auth_url
46
+ "#{Bs2Api.endpoint}/auth/oauth/v2/token"
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yaml'
4
+
5
+ module Bs2Api
6
+ module Util
7
+ class BankService
8
+ class << self
9
+ def find_by_code code
10
+ bank_list.find {|b| b["code"] == code }
11
+ end
12
+
13
+ private
14
+ def bank_list
15
+ @bank_list ||= YAML.load_file(File.join(__dir__, 'banks.yml'))
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,393 @@
1
+ - name: "Banco A.J. RENNER"
2
+ code: "654"
3
+ ispb: "92874270"
4
+ - name: "Banco ABC Brasil"
5
+ code: "246"
6
+ ispb: "28195667"
7
+ - name: "Banco ABN AMRO"
8
+ code: "75"
9
+ ispb: "3532415"
10
+ - name: "Banco ALFA"
11
+ code: "25"
12
+ ispb: "3323840"
13
+ - name: "Banco ARBI"
14
+ code: "213"
15
+ ispb: "54403563"
16
+ - name: "Banco AZTECA do Brasil"
17
+ code: "19"
18
+ ispb: "9391857"
19
+ - name: "Banco BARCLAYS"
20
+ code: "740"
21
+ ispb: "61146577"
22
+ - name: "Banco BBM"
23
+ code: "107"
24
+ ispb: "15114366"
25
+ - name: "Banco BMFBOVESPA"
26
+ code: "96"
27
+ ispb: "997185"
28
+ - name: "Banco BMG"
29
+ code: "318"
30
+ ispb: "61186680"
31
+ - name: "Banco BNP PARIBAS Brasil"
32
+ code: "752"
33
+ ispb: "1522368"
34
+ - name: "Banco BOA VISTA INTERATLANTICO"
35
+ code: "248"
36
+ ispb: "33485541"
37
+ - name: "Banco BONSUCESSO"
38
+ code: "218"
39
+ ispb: "71027866"
40
+ - name: "Banco BRACCE"
41
+ code: "65"
42
+ ispb: "48795256"
43
+ - name: "Banco BRADESCARD"
44
+ code: "63"
45
+ ispb: "4184779"
46
+ - name: "Banco BRADESCO"
47
+ code: "237"
48
+ ispb: "60746948"
49
+ - name: "Banco BRADESCO BBI"
50
+ code: "36"
51
+ ispb: "60746948"
52
+ - name: "Banco BRADESCO CARTÕES"
53
+ code: "204"
54
+ ispb: "59438325"
55
+ - name: "Banco BRADESCO FINANCIAMENTOS"
56
+ code: "394"
57
+ ispb: "7207996"
58
+ - name: "Banco BTG PACTUAL"
59
+ code: "208"
60
+ ispb: "30306294"
61
+ - name: "Banco CACIQUE"
62
+ code: "263"
63
+ ispb: "33349358"
64
+ - name: "Banco CAIXA GERAL – Brasil"
65
+ code: "473"
66
+ ispb: "33466988"
67
+ - name: "Banco CAPITAL"
68
+ code: "412"
69
+ ispb: "15173776"
70
+ - name: "Banco CARGILL"
71
+ code: "40"
72
+ ispb: "3609817"
73
+ - name: "Banco CEDULA"
74
+ code: "266"
75
+ ispb: "33132044"
76
+ - name: "Banco CETELEM"
77
+ code: "739"
78
+ ispb: "558456"
79
+ - name: "Banco CIFRA"
80
+ code: "233"
81
+ ispb: "62421979"
82
+ - name: "Banco CITIBANK"
83
+ code: "745"
84
+ ispb: "33479023"
85
+ - name: "Banco CLÁSSICO"
86
+ code: "241"
87
+ ispb: "31597552"
88
+ - name: "Banco COOPERATIVO do Brasil – Bancoob"
89
+ code: "756"
90
+ ispb: "2038232"
91
+ - name: "Banco COOPERATIVO SICREDI"
92
+ code: "748"
93
+ ispb: "1181521"
94
+ - name: "Banco CREDIT AGRICOLE Brasil"
95
+ code: "222"
96
+ ispb: "75647891"
97
+ - name: "Banco CREDIT SUISSE (Brasil)"
98
+ code: "505"
99
+ ispb: "32062580"
100
+ - name: "Banco da AMAZONIA"
101
+ code: "3"
102
+ ispb: "4902979"
103
+ - name: "Banco da CHINA Brasil"
104
+ code: "83"
105
+ ispb: "10690848"
106
+ - name: "Banco DAYCOVAL"
107
+ code: "707"
108
+ ispb: "62232889"
109
+ - name: "Banco de LA NACION ARGENTINA"
110
+ code: "300"
111
+ ispb: "33042151"
112
+ - name: "Banco de LA PROVINCIA de BUENOS AIRES"
113
+ code: "495"
114
+ ispb: "44189447"
115
+ - name: "Banco de LA REPUBLICA ORIENTAL DEL URUGUAY"
116
+ code: "494"
117
+ ispb: "51938876"
118
+ - name: "Banco de TOKYO MITSUBISHI UFJ Brasil"
119
+ code: "456"
120
+ ispb: "60498557"
121
+ - name: "Banco DIBENS"
122
+ code: "214"
123
+ ispb: "61199881"
124
+ - name: "Banco do BRASIL"
125
+ code: "1"
126
+ ispb: "0"
127
+ - name: "Banco do ESTADO de SERGIPE"
128
+ code: "47"
129
+ ispb: "13009717"
130
+ - name: "Banco do ESTADO do PARA"
131
+ code: "37"
132
+ ispb: "4913711"
133
+ - name: "Banco do ESTADO do RIO GRANDE do SUL (BANRISUL"
134
+ code: "41"
135
+ ispb: "92702067"
136
+ - name: "Banco do NORDESTE do Brasil"
137
+ code: "4"
138
+ ispb: "7237373"
139
+ - name: "Banco FATOR"
140
+ code: "265"
141
+ ispb: "33644196"
142
+ - name: "Banco FIBRA"
143
+ code: "224"
144
+ ispb: "58616418"
145
+ - name: "Banco FICSA"
146
+ code: "626"
147
+ ispb: "61348538"
148
+ - name: "Banco GERADOR"
149
+ code: "121"
150
+ ispb: "10664513"
151
+ - name: "Banco GUANABARA"
152
+ code: "612"
153
+ ispb: "31880826"
154
+ - name: "Banco INDUSTRIAL do Brasil"
155
+ code: "604"
156
+ ispb: "31895683"
157
+ - name: "Banco INDUSTRIAL e COMERCIAL"
158
+ code: "320"
159
+ ispb: "7450604"
160
+ - name: "Banco INDUSVAL"
161
+ code: "653"
162
+ ispb: "61024352"
163
+ - name: "Banco INTERCAP"
164
+ code: "630"
165
+ ispb: "58497702"
166
+ - name: "Banco INTERMEDIUM"
167
+ code: "77"
168
+ ispb: "416968"
169
+ - name: "Banco INVESTCRED UNIBANCO"
170
+ code: "249"
171
+ ispb: "61182408"
172
+ - name: "Banco ITAU BBA"
173
+ code: "184"
174
+ ispb: "17298092"
175
+ - name: "Banco ITAÚ HOLDING FINANCEIRA"
176
+ code: "652"
177
+ ispb: "60872504"
178
+ - name: "Banco J. SAFRA"
179
+ code: "74"
180
+ ispb: "3017677"
181
+ - name: "Banco J.P. MORGAN"
182
+ code: "376"
183
+ ispb: "33172537"
184
+ - name: "Banco JOHN DEERE"
185
+ code: "217"
186
+ ispb: "91884981"
187
+ - name: "Banco KDB do Brasil"
188
+ code: "76"
189
+ ispb: "7656500"
190
+ - name: "Banco KEB do Brasil"
191
+ code: "757"
192
+ ispb: "2318507"
193
+ - name: "Banco LUSO BRASILEIRO"
194
+ code: "600"
195
+ ispb: "59118133"
196
+ - name: "Banco MÁXIMA"
197
+ code: "243"
198
+ ispb: "33923798"
199
+ - name: "Banco MERCANTIL do BRASIL"
200
+ code: "389"
201
+ ispb: "17184037"
202
+ - name: "Banco MIZUHO do Brasil"
203
+ code: "370"
204
+ ispb: "61088183"
205
+ - name: "Banco MODAL"
206
+ code: "746"
207
+ ispb: "30723886"
208
+ - name: "Banco MORGAN STANLEY DEAN WITTER"
209
+ code: "66"
210
+ ispb: "2801938"
211
+ - name: "Banco ORIGINAL"
212
+ code: "212"
213
+ ispb: "92894922"
214
+ - name: "Banco ORIGINAL do Agronegócio"
215
+ code: "79"
216
+ ispb: "9516419"
217
+ - name: "Banco PANAMERICANO"
218
+ code: "623"
219
+ ispb: "59285411"
220
+ - name: "Banco PAULISTA"
221
+ code: "611"
222
+ ispb: "61820817"
223
+ - name: "Banco PECUNIA"
224
+ code: "613"
225
+ ispb: "60850229"
226
+ - name: "Banco PETRA"
227
+ code: "94"
228
+ ispb: "11758741"
229
+ - name: "Banco PINE"
230
+ code: "643"
231
+ ispb: "62144175"
232
+ - name: "Banco POTTENCIAL"
233
+ code: "735"
234
+ ispb: "253448"
235
+ - name: "Banco RABOBANK INTERNATIONAL Brasil"
236
+ code: "747"
237
+ ispb: "1023570"
238
+ - name: "Banco RANDON"
239
+ code: "88"
240
+ ispb: "11476673"
241
+ - name: "Banco RENDIMENTO"
242
+ code: "633"
243
+ ispb: "68900810"
244
+ - name: "Banco RIBEIRAO PRETO"
245
+ code: "741"
246
+ ispb: "517645"
247
+ - name: "Banco RODOBENS"
248
+ code: "120"
249
+ ispb: "33603457"
250
+ - name: "Banco SAFRA"
251
+ code: "422"
252
+ ispb: "58160789"
253
+ - name: "Banco SANTANDER (Brasil"
254
+ code: "33"
255
+ ispb: "90400888"
256
+ - name: "Banco SEMEAR"
257
+ code: "743"
258
+ ispb: "795423"
259
+ - name: "Banco SOCIETE GENERALE Brasil"
260
+ code: "366"
261
+ ispb: "61533584"
262
+ - name: "Banco SOFISA"
263
+ code: "637"
264
+ ispb: "60889128"
265
+ - name: "Banco SUMITOMO MITSUI Brasileiro"
266
+ code: "464"
267
+ ispb: "60518222"
268
+ - name: "Banco TOPAZIO"
269
+ code: "82"
270
+ ispb: "7679404"
271
+ - name: "Banco TRIÂNGULO"
272
+ code: "634"
273
+ ispb: "17351180"
274
+ - name: "Banco VOTORANTIM"
275
+ code: "655"
276
+ ispb: "59588111"
277
+ - name: "Banco VR"
278
+ code: "610"
279
+ ispb: "78626983"
280
+ - name: "Banco WESTERN UNION do Brasil"
281
+ code: "119"
282
+ ispb: "13720915"
283
+ - name: "Banco WOORI BANK do Brasil"
284
+ code: "124"
285
+ ispb: "15357060"
286
+ - name: "BANESTES (Banco do ESTADO do ESPIRITO SANTO"
287
+ code: "21"
288
+ ispb: "28127603"
289
+ - name: "BANIF – Banco INTERNACIONAL do FUNCHAL (Brasil)"
290
+ code: "719"
291
+ ispb: "33884941"
292
+ - name: "BANK OF AMERICA MERRILL LYNCH Banco Múltiplo"
293
+ code: "755"
294
+ ispb: "62073200"
295
+ - name: "BCV – Banco de Crédito e Varejo"
296
+ code: "250"
297
+ ispb: "50585090"
298
+ - name: "BES Investimento do Brasil – Banco de Investimento"
299
+ code: "78"
300
+ ispb: "34111187"
301
+ - name: "BM TRICURY"
302
+ code: "18"
303
+ ispb: "57839805"
304
+ - name: "BNY MELLON"
305
+ code: "17"
306
+ ispb: "42272526"
307
+ - name: "BPN Brasil Banco Múltiplo"
308
+ code: "69"
309
+ ispb: "61033106"
310
+ - name: "BRADESCO BERJ"
311
+ code: "122"
312
+ ispb: "33147315"
313
+ - name: "BRASIL PLURAL Banco Múltiplo"
314
+ code: "125"
315
+ ispb: "45246410"
316
+ - name: "BRB – Banco de Brasília"
317
+ code: "70"
318
+ ispb: "208"
319
+ - name: "BRICKELL Crédito Financiamento e Investimento"
320
+ code: "92"
321
+ ispb: "12865507"
322
+ - name: "CAIXA ECONOMICA FEDERAL"
323
+ code: "104"
324
+ ispb: "360305"
325
+ - name: "CC CREDICOAMO Crédito Rural Cooperativa"
326
+ code: "10"
327
+ ispb: "81723108"
328
+ - name: "CC UNICRED Brasil Central"
329
+ code: "112"
330
+ ispb: "4243780"
331
+ - name: "CC UNICRED do Brasil"
332
+ code: "136"
333
+ ispb: "315557"
334
+ - name: "CC UNIPRIME NORTE do PARANA"
335
+ code: "84"
336
+ ispb: "2398976"
337
+ - name: "CECOOPES – Central das Cooperativas de Economia e Crédito Mútuo"
338
+ code: "114"
339
+ ispb: "5790149"
340
+ - name: "CITIBANK N.A."
341
+ code: "477"
342
+ ispb: "33042953"
343
+ - name: "Cooperativa Central de Crédito do Estado de SP"
344
+ code: "90"
345
+ ispb: "73085573"
346
+ - name: "Cooperativa Central de Crédito NOROESTE Brasileiro"
347
+ code: "97"
348
+ ispb: "4632856"
349
+ - name: "Cooperativa Central de Crédito Urbano – CECRED"
350
+ code: "85"
351
+ ispb: "5463212"
352
+ - name: "Cooperativa de Crédito Rural da Região da Mogiana"
353
+ code: "89"
354
+ ispb: "62109566"
355
+ - name: "CREDIALIANCA Cooperativa de Crédito RURAL"
356
+ code: "98"
357
+ ispb: "78157146"
358
+ - name: "DEUTSCHE BANK – Banco ALEMÃO"
359
+ code: "487"
360
+ ispb: "62331228"
361
+ - name: "HIPERCARD Banco Múltiplo"
362
+ code: "62"
363
+ ispb: "3012230"
364
+ - name: "HSBC BANK Brasil – Banco Múltiplo"
365
+ code: "399"
366
+ ispb: "1701201"
367
+ - name: "ICBC do Brasil Banco Múltiplo"
368
+ code: "132"
369
+ ispb: "17453575"
370
+ - name: "ING BANK N.V."
371
+ code: "492"
372
+ ispb: "49336860"
373
+ - name: "ITAÚ UNIBANCO"
374
+ code: "341"
375
+ ispb: "60701190"
376
+ - name: "NOVO Banco CONTINENTAL"
377
+ code: "753"
378
+ ispb: "74828799"
379
+ - name: "PARANA Banco"
380
+ code: "254"
381
+ ispb: "14388334"
382
+ - name: "SCOTIABANK Brasil Banco Múltiplo"
383
+ code: "751"
384
+ ispb: "29030467"
385
+ - name: "UNICRED Central RS – Central de Cooperativa de Economia e Crédito Mútuo do Estado do RS"
386
+ code: "91"
387
+ ispb: "1634601"
388
+ - name: "UNICRED Central Santa Catarina"
389
+ code: "87"
390
+ ispb: "543968"
391
+ - name: "UNIPRIME Central – Central Interestadual de Cooperativa de Crédito"
392
+ code: "99"
393
+ ispb: "3046391"