bs2_api 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86300aea3210ea0f4a86d34cc062b75ec68e1315520b240c907b2ec0cf79cd62
4
- data.tar.gz: 3515768ebac73fec3704b59f332b4c2ddd09b71a33866682ea692409653e577f
3
+ metadata.gz: ac4d8162e93c876cdd61a6be56abde26d704a31797aef6b815274c98b8e5da29
4
+ data.tar.gz: fc30a8fbac319e4b810dedac2582902a59ceeacc037f2e8a3f8fc2a8f3d87a1c
5
5
  SHA512:
6
- metadata.gz: b6ff81648836152febb2a1faa2bf1e592c5e8f3a962e25d29782a6dc99dceddb74d906a83bdfe194c95f32c27b8b1ea1c92bde3d8917d4afeda07d23c1043a4e
7
- data.tar.gz: 4f195c7cc92db0bbddb6680e2cb54113c65350deeedce4c936a9a244b91b233dd703bcc36d86c8b22b574d214ac32732e94ca2f88573ab619a83405e66d42da6
6
+ metadata.gz: 783bbec0c5ad81733d817f0958506bbfc300c75983256454d8f050e13ef7b00640ece3fb4d59858cf5aae36656435e7164893972f103a8f495661d10be5551b2
7
+ data.tar.gz: c2e1e9df5dd5040ccebcf481e6e3bb649ab2dd134a3f0be4ed50014a1543cf0de67508de31809582ddf4a850bf7333970f6284394d905c94d6c0cd4168fa90c4
data/Gemfile CHANGED
@@ -2,17 +2,4 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gemspec
6
-
7
- gem "rake", "~> 13.0"
8
- gem "httparty", "~> 0.18.1"
9
- gem "activesupport", "~> 6.1", ">= 6.1.3.2"
10
-
11
- group :test do
12
- gem "pry-byebug", "~> 3.9"
13
- gem "uuid", "~> 2.3", ">= 2.3.9"
14
- gem "rspec", "~> 3.10"
15
- gem "webmock", "~> 3.13"
16
- gem "vcr", "~> 6.0"
17
- gem "dotenv", "~> 2.7", ">= 2.7.6"
18
- end
5
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,8 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bs2_api (0.2.0)
5
- activesupport (~> 6.1, >= 6.1.3.2)
4
+ bs2_api (0.3.0)
5
+ activesupport
6
+ builder
7
+ bundler
8
+ httparty (~> 0.18.1)
9
+ rake
6
10
 
7
11
  GEM
8
12
  remote: https://rubygems.org/
@@ -15,6 +19,7 @@ GEM
15
19
  zeitwerk (~> 2.3)
16
20
  addressable (2.7.0)
17
21
  public_suffix (>= 2.0.2, < 5.0)
22
+ builder (3.2.4)
18
23
  byebug (11.1.3)
19
24
  coderay (1.1.3)
20
25
  concurrent-ruby (1.1.9)
@@ -74,12 +79,9 @@ PLATFORMS
74
79
  x86_64-linux
75
80
 
76
81
  DEPENDENCIES
77
- activesupport (~> 6.1, >= 6.1.3.2)
78
82
  bs2_api!
79
83
  dotenv (~> 2.7, >= 2.7.6)
80
- httparty (~> 0.18.1)
81
84
  pry-byebug (~> 3.9)
82
- rake (~> 13.0)
83
85
  rspec (~> 3.10)
84
86
  uuid (~> 2.3, >= 2.3.9)
85
87
  vcr (~> 6.0)
data/README.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  Integração com a API do Banco BS2: https://devs.bs2.com/manual/pix-clientes
4
4
 
5
+ TO-DO:
6
+ - Pagamentos (**Transfere** dinheiro para alguém)
7
+ - [x] Criar pagamento por Chave
8
+ - [x] Criar pagamento Manual
9
+ - [x] Confirmar pagamento
10
+ - [ ] Consultar pagamento
11
+ - Recebimentos (**Recebe** dinheiro de alguém)
12
+ - [ ] Cobrança estático
13
+ - [ ] Cobrança dinâmico
14
+ - [ ] Consultar cobrança
15
+
16
+
5
17
  ## Instalação
6
18
 
7
19
  Adicionar no seu Gemfile:
@@ -33,11 +45,11 @@ ou via initializer:
33
45
  Bs2Api.configure do |config|
34
46
  config.client_id = 'you_bs2_client_id'
35
47
  config.client_secret = 'you_bs2_client_secret'
36
- config.pix_environment = 'pix_enviroment'
48
+ config.pix_environment = 'sandbox' # ou production
37
49
  end
38
50
  ```
39
51
 
40
- ### Iniciar pagamento por Chave
52
+ ### Inicia ordem de Transferência PIX via: Chave
41
53
 
42
54
  ```ruby
43
55
  pix_key = Bs2Api::Entities::PixKey.new(
@@ -45,100 +57,86 @@ pix_key = Bs2Api::Entities::PixKey.new(
45
57
  type: 'EMAIL'
46
58
  )
47
59
 
48
- payment = Bs2Api::Payment::Key.new(pix_key).call
49
- ```
60
+ # Caso ocorra algum problema na criação, um erro será lançado
61
+ # Veja abaixo (Classes de errors) quais erros que podem ser lançados
62
+ pay_key = Bs2Api::Payment::Key.new(pix_key).call
50
63
 
51
- Tipos:
52
- ```bash
53
- CPF
54
- CNPJ
55
- PHONE
56
- EMAIL
57
- EVP (Chave aleatória)
58
- ```
64
+ pay_key.payment.id
65
+ => "96f0b3c4-4c76-4a7a-9933-9c9f86df7490" # pagamentoId gerado no BS2
66
+
67
+ pay_key.payment.merchantId
68
+ => "E710278662021061618144401750781P" # endToEndId gerado no BS2
59
69
 
70
+ ```
60
71
 
61
- ### Iniciar pagamento Manual
72
+ ### Inicia ordem de Transferência PIX via: Manual
62
73
 
63
74
  ```ruby
64
75
  account = Bs2Api::Entities::Account.new(
65
- bank_code: '341',
66
- bank_name: 'Itaú',
67
- agency: '0944',
68
- number: '09442-1',
69
- type: 'ContaCorrente'
76
+ bank_code: "218",
77
+ agency: "0993",
78
+ number: "042312",
79
+ type: "ContaCorrente" # ContaCorrente, ContaSalario ou Poupanca
70
80
  )
71
81
 
72
82
  customer = Bs2Api::Entities::Customer.new(
73
- document: '88899988811',
74
- type: 'CPF',
75
- name: 'João Silva'
83
+ document: "88899988811",
84
+ type: "CPF",
85
+ name: "Rick Sanches",
86
+ business_name: "Nome fantasia" # Utilizar apenas se for type CNPJ
76
87
  )
77
88
 
78
- receiver = Bs2Api::Entities::Bank.new(
79
- account: account,
89
+ receiver_bank = Bs2Api::Entities::Bank.new(
90
+ account: account,
80
91
  customer: customer
81
92
  )
82
93
 
83
- payment = Bs2Api::Payment::Manual.new(receiver).call
94
+ pay_manual = Bs2Api::Payment::Manual.new(receiver_bank).call
95
+
96
+ pay_manual.payment.id
97
+ => "96f0b3c4-4c76-4a7a-9933-9c9f86df7490" # UUID gerado no BS2
98
+
99
+ pay_manual.payment.merchantId
100
+ => "E710278662021061618144401750781P" # endToEndId gerado no BS2
84
101
  ```
85
102
 
86
- ### Objetos
103
+ ### Confirmar ordem de transferência
104
+ ```ruby
105
+ # Após criar um Payment é necessário confirmar
106
+ # Nessa etapa o dinheiro é de fato transferido
107
+
108
+ # Tanto a ordem de transferência via chave ou manual tem o mesmo payment.
109
+ # Caso tenha criado via chave no passo anterior:
110
+ payment = pay_key.payment
111
+
112
+ # Ou caso tenha criado a ordem via Manual no passo anterior:
113
+ payment = pay_manual.payment
87
114
 
88
- ##### Payment
115
+ amount = 10.50
116
+ confirmation = Bs2Api::Payment::Confirmation.new(payment, value: amount).call
117
+
118
+ # Caso a confirmação de problema, um erro será lançado.
119
+ raise Bs2Api::Errors::ConfirmationError
120
+
121
+ # Caso nenhum erro seja lançado (já é sucesso) porém, você pode ter certeza com
122
+ confirmation.success?
123
+ ```
124
+ ---
125
+ ### Classes de erros:
89
126
  ```ruby
90
- payment.id # pagamentoId
91
- payment.merchant_id # endToEndId
92
- payment.receiver # recebedor
93
- payment.payer # pagador
94
-
95
- payment.receiver.class
96
- => Bs2Api::Entities::Bank
97
-
98
- payment.payer.class
99
- => Bs2Api::Entities::Bank
100
-
101
- payment.payer.account # conta
102
- => Bs2Api::Entities::Account
103
-
104
- payment.payer.customer # pessoa
105
- => Bs2Api::Entities::Customer
106
-
107
- payment.to_hash
108
- {
109
- "pagamentoId"=>"123",
110
- "endToEndId"=>"456",
111
- "recebedor"=>{
112
- "ispb"=>"71027866",
113
- "conta"=>{
114
- "banco"=>"218",
115
- "bancoNome"=>"BCO BS2 S.A.",
116
- "agencia"=>"0001",
117
- "numero"=>"3134806",
118
- "tipo"=>"ContaCorrente"
119
- },
120
- "pessoa"=>{
121
- "documento"=>"25215188000116",
122
- "tipoDocumento"=>"CNPJ",
123
- "nome"=>"Teste Automatizado",
124
- "nomeFantasia"=>nil
125
- }
126
- },
127
- "pagador"=>{
128
- "ispb"=>"71027866",
129
- "conta"=>{
130
- "banco"=>"218",
131
- "bancoNome"=>"BCO BS2 S.A.",
132
- "agencia"=>"0001",
133
- "numero"=>"3134806",
134
- "tipo"=>"ContaCorrente"
135
- },
136
- "pessoa"=>{
137
- "documento"=>"25215188000116",
138
- "tipoDocumento"=>"CNPJ",
139
- "nome"=>"Teste Automatizado",
140
- "nomeFantasia"=>nil
141
- }
142
- }
143
- }
127
+ # Todos erros herdam de:
128
+ Bs2Api::Errors::Base
129
+
130
+ Bs2Api::Errors::BadRequest
131
+ Bs2Api::Errors::ConfirmationError
132
+ Bs2Api::Errors::InvalidCustomer
133
+ Bs2Api::Errors::InvalidPixKey
134
+ Bs2Api::Errors::MissingConfiguration
135
+ Bs2Api::Errors::ServerError
136
+ Bs2Api::Errors::Unauthorized
137
+
138
+ # Caso não queira tratar um erro em específico basta fazer rescue do Base
139
+ rescue Bs2Api::Errors::Base => e
140
+ puts "Erro: #{e.message}"
141
+ end
144
142
  ```
data/bs2_api.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ["kimpastro@gmail.com"]
10
10
 
11
11
  spec.summary = "Integração com a API do BS2"
12
- spec.description = "Criar pagamentos PIX"
12
+ spec.description = "Fazer transferências via PIX"
13
13
  spec.homepage = "https://github.com/kimpastro/bs2_api"
14
14
  spec.required_ruby_version = ">= 2.7.2"
15
15
 
@@ -26,5 +26,16 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
27
27
  spec.require_paths = ["lib"]
28
28
 
29
- spec.add_dependency "activesupport", "~> 6.1", ">= 6.1.3.2"
30
- end
29
+ spec.add_dependency("builder")
30
+ spec.add_dependency("bundler")
31
+ spec.add_dependency("rake")
32
+ spec.add_dependency("activesupport")
33
+ spec.add_dependency("httparty", "~> 0.18.1")
34
+
35
+ spec.add_development_dependency("pry-byebug", "~> 3.9")
36
+ spec.add_development_dependency("uuid", "~> 2.3", ">= 2.3.9")
37
+ spec.add_development_dependency("rspec", "~> 3.10")
38
+ spec.add_development_dependency("webmock", "~> 3.13")
39
+ spec.add_development_dependency("vcr", "~> 6.0")
40
+ spec.add_development_dependency("dotenv", "~> 2.7", ">= 2.7.6")
41
+ end
data/lib/bs2_api.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require 'httparty'
2
+ require "httparty"
3
3
  require "active_support/core_ext/hash/indifferent_access"
4
+ require "active_support/core_ext/hash/except"
4
5
 
5
6
  require 'bs2_api/version'
6
7
  require 'bs2_api/configuration'
@@ -10,10 +11,14 @@ require 'bs2_api/initializers/hash'
10
11
 
11
12
  require 'bs2_api/errors/base'
12
13
  require 'bs2_api/errors/invalid_pix_key'
14
+ require 'bs2_api/errors/invalid_bank'
15
+ require 'bs2_api/errors/invalid_customer'
13
16
  require 'bs2_api/errors/missing_configuration'
14
17
  require 'bs2_api/errors/unauthorized'
15
18
  require 'bs2_api/errors/bad_request'
16
19
  require 'bs2_api/errors/server_error'
20
+ require 'bs2_api/errors/confirmation_error'
21
+ require 'bs2_api/errors/missing_bank'
17
22
 
18
23
  require 'bs2_api/entities/account'
19
24
  require 'bs2_api/entities/bank'
@@ -24,6 +29,7 @@ require 'bs2_api/entities/pix_key'
24
29
  require 'bs2_api/payment/base'
25
30
  require 'bs2_api/payment/key'
26
31
  require 'bs2_api/payment/manual'
32
+ require 'bs2_api/payment/confirmation'
27
33
 
28
34
  require 'bs2_api/request/auth'
29
35
 
@@ -13,17 +13,17 @@ module Bs2Api
13
13
 
14
14
  def initialize(args = {})
15
15
  @bank_code = args.fetch(:bank_code, nil)
16
- @bank_name = args.fetch(:bank_name, nil)
17
16
  @agency = args.fetch(:agency, nil)
18
17
  @number = args.fetch(:number, nil)
19
18
  @type = args.fetch(:type, nil)
19
+ @bank_name = get_bank_name
20
20
  end
21
21
 
22
22
  def to_hash
23
23
  ActiveSupport::HashWithIndifferentAccess.new(
24
24
  {
25
25
  "banco": @bank_code,
26
- "bancoNome": bank_name,
26
+ "bancoNome": get_bank_name,
27
27
  "agencia": @agency,
28
28
  "numero": @number,
29
29
  "tipo": @type
@@ -54,6 +54,11 @@ module Bs2Api
54
54
  def saving?
55
55
  @type == TYPES[:saving]
56
56
  end
57
+
58
+ private
59
+ def get_bank_name
60
+ Bs2Api::Util::BankService.find_by_code(@bank_code)["name"]
61
+ end
57
62
  end
58
63
  end
59
64
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class ConfirmationError < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class InvalidBank < Base; end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bs2Api
4
+ module Errors
5
+ class MissingBank < Base; end
6
+ end
7
+ end
@@ -1,11 +1,18 @@
1
1
  module Bs2Api
2
2
  module Payment
3
3
  class Base
4
+ attr_reader :payment
5
+
6
+ def initialize
7
+ raise NoMethodError, "Missing #{__method__} to #{self.class}"
8
+ end
9
+
4
10
  def call
5
11
  response = post_request
6
-
7
- raise Bs2Api::Errors::BadRequest, parse_error(response) if !response.created?
8
- Bs2Api::Entities::Payment.from_response(response)
12
+ raise Bs2Api::Errors::BadRequest, parse_error(response) unless response.created?
13
+
14
+ @payment = Bs2Api::Entities::Payment.from_response(response)
15
+ self
9
16
  end
10
17
 
11
18
  private
@@ -0,0 +1,38 @@
1
+ module Bs2Api
2
+ module Payment
3
+ class Confirmation < Base
4
+ attr_reader :success
5
+
6
+ def initialize payment, value: nil
7
+ raise Bs2Api::Errors::ConfirmationError, 'invalid payment' unless payment.present? && payment.is_a?(Bs2Api::Entities::Payment)
8
+ raise Bs2Api::Errors::ConfirmationError, 'invalid value' unless value.to_f.positive?
9
+ @payment = payment
10
+
11
+ @value = value.to_f
12
+ end
13
+
14
+ def call
15
+ response = post_request
16
+ raise Bs2Api::Errors::ConfirmationError, parse_error(response) unless response.accepted?
17
+
18
+ @success = true
19
+ self
20
+ end
21
+
22
+ private
23
+ def payload
24
+ @payment.to_hash
25
+ .except!("pagamentoId", "endToEndId")
26
+ .merge("valor": @value)
27
+ end
28
+
29
+ def url
30
+ "#{Bs2Api.endpoint}/pix/direto/forintegration/v1/pagamentos/#{@payment.id}/confirmacao"
31
+ end
32
+
33
+ def success?
34
+ !!@success
35
+ end
36
+ end
37
+ end
38
+ end
@@ -4,6 +4,7 @@ module Bs2Api
4
4
  module Payment
5
5
  class Manual < Base
6
6
  def initialize bank
7
+ raise Bs2Api::Errors::InvalidBank, 'Invalid Bank' unless bank.is_a?(Bs2Api::Entities::Bank)
7
8
  @bank = bank
8
9
  end
9
10
 
@@ -7,7 +7,9 @@ module Bs2Api
7
7
  class BankService
8
8
  class << self
9
9
  def find_by_code code
10
- bank_list.find {|b| b["code"] == code }
10
+ bank = bank_list.find {|b| b["code"] == code }
11
+ raise Bs2Api::Errors::MissingBank, 'Bank not registered into util/banks.yml file' if bank.blank?
12
+ bank
11
13
  end
12
14
 
13
15
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bs2Api
4
- VERSION = "0.2.1"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bs2_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kim Pastro
@@ -10,27 +10,173 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2021-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: builder
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
13
55
  - !ruby/object:Gem::Dependency
14
56
  name: activesupport
15
57
  requirement: !ruby/object:Gem::Requirement
16
58
  requirements:
17
- - - "~>"
59
+ - - ">="
18
60
  - !ruby/object:Gem::Version
19
- version: '6.1'
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
20
66
  - - ">="
21
67
  - !ruby/object:Gem::Version
22
- version: 6.1.3.2
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: httparty
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.18.1
23
76
  type: :runtime
24
77
  prerelease: false
25
78
  version_requirements: !ruby/object:Gem::Requirement
26
79
  requirements:
27
80
  - - "~>"
28
81
  - !ruby/object:Gem::Version
29
- version: '6.1'
82
+ version: 0.18.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.9'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.9'
97
+ - !ruby/object:Gem::Dependency
98
+ name: uuid
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.3'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 2.3.9
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '2.3'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 2.3.9
117
+ - !ruby/object:Gem::Dependency
118
+ name: rspec
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '3.10'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '3.10'
131
+ - !ruby/object:Gem::Dependency
132
+ name: webmock
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3.13'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.13'
145
+ - !ruby/object:Gem::Dependency
146
+ name: vcr
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '6.0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '6.0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: dotenv
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '2.7'
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 2.7.6
169
+ type: :development
170
+ prerelease: false
171
+ version_requirements: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: '2.7'
30
176
  - - ">="
31
177
  - !ruby/object:Gem::Version
32
- version: 6.1.3.2
33
- description: Criar pagamentos PIX
178
+ version: 2.7.6
179
+ description: Fazer transferências via PIX
34
180
  email:
35
181
  - kimpastro@gmail.com
36
182
  executables: []
@@ -60,14 +206,18 @@ files:
60
206
  - lib/bs2_api/entities/pix_key.rb
61
207
  - lib/bs2_api/errors/bad_request.rb
62
208
  - lib/bs2_api/errors/base.rb
209
+ - lib/bs2_api/errors/confirmation_error.rb
210
+ - lib/bs2_api/errors/invalid_bank.rb
63
211
  - lib/bs2_api/errors/invalid_customer.rb
64
212
  - lib/bs2_api/errors/invalid_pix_key.rb
213
+ - lib/bs2_api/errors/missing_bank.rb
65
214
  - lib/bs2_api/errors/missing_configuration.rb
66
215
  - lib/bs2_api/errors/server_error.rb
67
216
  - lib/bs2_api/errors/unauthorized.rb
68
217
  - lib/bs2_api/initializers/hash.rb
69
218
  - lib/bs2_api/initializers/object.rb
70
219
  - lib/bs2_api/payment/base.rb
220
+ - lib/bs2_api/payment/confirmation.rb
71
221
  - lib/bs2_api/payment/key.rb
72
222
  - lib/bs2_api/payment/manual.rb
73
223
  - lib/bs2_api/request/auth.rb