Module: BancoBrasilPayments::Payments

Included in:
BatchPaymentsApi
Defined in:
lib/bb_payments/api/payments.rb

Overview

Pagamentos

Pagamentos que envolvem mais de um tipo de Pagamento

Implemented
  • Endpoint

    > Description

Y
  • POST /liberar-pagamentos

    > Liberar Pagamentos

Y
  • POST /cancelar-pagamentos

    > Cancelar Lote de Pagamentos

Y
  • GET /pagamentos

    > Consultar Pagamentos

N
  • GET /transferencias/id

    > Consultar um Pagamento Específico de um Lote de Transferências

Y
  • GET /id

    > Consultar um Lote de Pagamentos

N
  • GET /id/solicitacao

    > Consultar sobre a Solicitação de um Lote de Pagamentos

Instance Method Summary collapse

Instance Method Details

#cancel_payments(body, opts = {}) ⇒ Object

POST /cancelar-pagamentos Cancelar Lote de Pagamentos Efetua o Cancelamento de um Lote de Pagamentos



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/bb_payments/api/payments.rb', line 52

def cancel_payments(body, opts = {})
  validations(api_client: api_client, body: body, validate_body: true)

  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts,
                                  return_type: 'Hash<String, Array<Object>>',
                                  body: @api_client.object_to_http_body(body))

  call_api_client(api_client: api_client,
                  http_method: :POST,
                  path: '/cancelar-pagamentos',
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end

#consult_entries(debit_branch_office, debit_current_account, check_digits_debit_current_account, start_date, opts = {}) ⇒ Object

GET /lancamentos-periodo Consultar Lancamentos



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/bb_payments/api/payments.rb', line 102

def consult_entries(debit_branch_office, , , start_date,
                    opts = {})
  validations(api_client: api_client, required_params:
    { debit_branch_office: debit_branch_office,
      debit_current_account: ,
      check_digits_debit_current_account: ,
      start_date: start_date })

  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts,
                                  return_type: 'FindReleasesResponse')

  # query parameters
  query_params = client_opts[:query_params]
  query_params[@api_client.config.app_key_name.to_sym] = gw_app_key
  query_params[:numeroAgenciaDebito] = debit_branch_office
  query_params[:numeroContaCorrenteDebito] = 
  query_params[:digitoVerificadorContaCorrenteDebito] = 
  query_params[:dataInicialdeEnviodaRequisição] = start_date.strftime('%d%m%Y').to_i
  query_params[:dataFinaldeEnviodaRequisição] = opts[:end_date].strftime('%d%m%Y').to_i unless opts[:end_date].nil?
  query_params[:codigodoEstadodoPagamento] = opts[:payment_state_code].to_i unless opts[:payment_state_code].nil?
  query_params[:codigoProduto] = opts[:product_code].to_i unless opts[:product_code].nil?
  query_params[:numeroDaPosicaoDePesquisa] = opts[:index].to_i unless opts[:index].nil?

  call_api_client(api_client: api_client,
                  http_method: :GET,
                  path: '/lancamentos-periodo',
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end

#consult_payments(start_date, end_date, opts = {}) ⇒ Object

GET /pagamentos Consultar Pagamentos Consulta os pagamentos e transferências das requisição feitas para efetuar pagamentos em lote, inclusive pagamentos e transferências relacionados ao PIX. Detre as informações consulatas estão o motivo e valores devolvidos.



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/bb_payments/api/payments.rb', line 72

def consult_payments(start_date, end_date, opts = {})
  validations(api_client: api_client, required_params: { start_date: start_date, end_date: end_date })

  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts)

  # query parameters
  query_params = client_opts[:query_params]
  query_params[@api_client.config.app_key_name.to_sym] = gw_app_key
  query_params[:dataInicio] = start_date.strftime('%d%m%Y').to_i
  query_params[:dataFim] = end_date.strftime('%d%m%Y').to_i
  query_params[:agenciaDebito] = opts[:debit_branch_office] unless opts[:debit_branch_office].nil?
  query_params[:contaCorrenteDebito] = opts[:debit_current_account] unless opts[:debit_current_account].nil?
  unless opts[:check_digits_debit_current_account].nil?
    query_params[:digitoVerificadorContaCorrente] =
      opts[:check_digits_debit_current_account]
  end
  query_params[:numeroContratoPagamento] = opts[:payment_contract] unless opts[:payment_contract].nil?
  query_params[:estadoPagamento] = opts[:payment_state] unless opts[:payment_state].nil?
  query_params[:index] = opts[:index] unless opts[:index].nil?

  call_api_client(api_client: api_client,
                  http_method: :GET,
                  path: '/pagamentos',
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end

#find_batch_payments(id, opts = {}) ⇒ Object

GET /id Consulta um lote de pagamentos.



136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/bb_payments/api/payments.rb', line 136

def find_batch_payments(id, opts = {})
  validations(api_client: api_client, required_params: { id: id })

  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts,
                                  return_type: 'FindBatchResponse')

  call_api_client(api_client: api_client,
                  http_method: :GET,
                  path: id.to_s,
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end

#find_batch_transfer(id, opts = {}) ⇒ Object

GET /id/solicitacao Consulta sobre uma solicitação de requisição para efetuar um lote de pagamentos via transferência e os pagamentos deste lote.



170
171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/bb_payments/api/payments.rb', line 170

def find_batch_transfer(id, opts = {})
  validations(api_client: api_client, required_params: { id: id })

  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts)

  call_api_client(api_client: api_client,
                  http_method: :GET,
                  path: "/#{id}/solicitacao",
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end

#find_payment(id, opts = {}) ⇒ Object

GET /transferencias/id Consultar um Pagamento Específico de um Lote de Transferências.



153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/bb_payments/api/payments.rb', line 153

def find_payment(id, opts = {})
  validations(api_client: api_client, required_params: { id: id })

  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts,
                                  return_type: 'FindPaymentResponse')

  call_api_client(api_client: api_client,
                  http_method: :GET,
                  path: "/transferencias/#{id}",
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end

#liberar_pagamentos_with(id, float, opts = {}) ⇒ Object

POST /liberar-pagamentos Liberar Pagamentos Permite que a empresa efetue a liberação dos lotes de pagamentos diretamente de seu sistema de gestão - ERP.

Após o comando de liberação, o processamento do pagamento de todos os lançamentos do lote liberado dependerá da existência de saldo em conta até o horário limite para efetivação de cada um deles, da validação dos dados e demais regras pactuadas na contratação do serviço.

A situação de cada lançamento deverá se consultada posteriormente.

O mesmo lote poderá ser liberado mais de uma vez. Por exemplo: Foi enviado lançamentos com data de pagamento do dia anterior e do dia corrente. Após foi comandada a liberação do lote. Nesse caso, apenas os lançamentos com data do dia corrente seriam efetivados. Mas a empresa poderá alterar a data de pagamento dos lançamentos com data incorreta e após solicitar novamente a liberação do lote.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/bb_payments/api/payments.rb', line 31

def liberar_pagamentos_with(id, float, opts = {})
  validations(api_client: api_client, validate_body: false, required_params: { id: id, float: float })


  client_opts = build_client_opts(api_client: api_client,
                                  gw_app_key: gw_app_key,
                                  opts: opts,
                                  body: {
                                    numeroRequisicao: id,
                                    indicadorFloat: float ? 'S' : 'N'
                                  },
                                  return_type: 'Hash<String, String>')
  call_api_client(api_client: api_client,
                  http_method: :POST,
                  path: '/liberar-pagamentos',
                  data_only: opts.fetch(:data_only, true),
                  client_opts: client_opts)
end