bs2_api 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env.example +3 -0
- data/.gitignore +4 -0
- data/Gemfile +6 -1
- data/Gemfile.lock +49 -7
- data/Makefile +2 -0
- data/README.md +126 -17
- data/bin/setup +1 -3
- data/bs2_api.gemspec +6 -1
- data/lib/bs2_api.rb +61 -3
- data/lib/bs2_api/configuration.rb +15 -0
- data/lib/bs2_api/entities/account.rb +59 -0
- data/lib/bs2_api/entities/bank.rb +40 -0
- data/lib/bs2_api/entities/customer.rb +51 -0
- data/lib/bs2_api/entities/payment.rb +38 -0
- data/lib/bs2_api/entities/pix_key.rb +40 -0
- data/lib/bs2_api/errors/bad_request.rb +7 -0
- data/lib/bs2_api/errors/base.rb +7 -0
- data/lib/bs2_api/errors/invalid_customer.rb +7 -0
- data/lib/bs2_api/errors/invalid_pix_key.rb +7 -0
- data/lib/bs2_api/errors/missing_configuration.rb +7 -0
- data/lib/bs2_api/errors/server_error.rb +7 -0
- data/lib/bs2_api/errors/unauthorized.rb +7 -0
- data/lib/bs2_api/initializers/hash.rb +9 -0
- data/lib/bs2_api/initializers/object.rb +11 -0
- data/lib/bs2_api/payment/base.rb +45 -0
- data/lib/bs2_api/payment/key.rb +22 -0
- data/lib/bs2_api/payment/manual.rb +22 -0
- data/lib/bs2_api/request/auth.rb +51 -0
- data/lib/bs2_api/util/bank_service.rb +20 -0
- data/lib/bs2_api/util/banks.yml +393 -0
- data/lib/bs2_api/version.rb +1 -1
- metadata +95 -4
@@ -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,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"
|