Class: FluvPay::Resources::Charges
- Inherits:
-
Object
- Object
- FluvPay::Resources::Charges
- Defined in:
- lib/fluvpay/resources/charges.rb
Overview
Recurso de cobranças PIX: criar, recuperar e listar.
Instance Method Summary collapse
-
#create(amount_cents:, description: nil, customer: nil, expires_in_seconds: nil, affiliate_code: nil, split_rule_id: nil, pass_fee_to_payer: nil, metadata: nil, idempotency_key: nil) ⇒ Hash
Cria uma cobrança PIX.
-
#initialize(client) ⇒ Charges
constructor
A new instance of Charges.
-
#list(status: nil, page: nil, per_page: nil, sort: nil) ⇒ FluvPay::Resources::PageList
Lista cobranças.
-
#retrieve(charge_id) ⇒ Hash
Recupera uma cobrança por ID.
Constructor Details
#initialize(client) ⇒ Charges
Returns a new instance of Charges.
11 12 13 |
# File 'lib/fluvpay/resources/charges.rb', line 11 def initialize(client) @client = client end |
Instance Method Details
#create(amount_cents:, description: nil, customer: nil, expires_in_seconds: nil, affiliate_code: nil, split_rule_id: nil, pass_fee_to_payer: nil, metadata: nil, idempotency_key: nil) ⇒ Hash
Cria uma cobrança PIX.
Escopo exigido: payments.create. O header Idempotency-Key é obrigatório na API; se não for informado, o SDK gera um UUIDv4 automaticamente.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/fluvpay/resources/charges.rb', line 31 def create(amount_cents:, description: nil, customer: nil, expires_in_seconds: nil, affiliate_code: nil, split_rule_id: nil, pass_fee_to_payer: nil, metadata: nil, idempotency_key: nil) body = { "amount_cents" => amount_cents, "description" => description, "customer" => clean_customer(customer), "expires_in_seconds" => expires_in_seconds, "affiliate_code" => affiliate_code, "split_rule_id" => split_rule_id, "pass_fee_to_payer" => pass_fee_to_payer, "metadata" => } key = idempotency_key || FluvPay::Client.new_idempotency_key @client.request(:post, "/charges/", body: body, idempotency_key: key) end |
#list(status: nil, page: nil, per_page: nil, sort: nil) ⇒ FluvPay::Resources::PageList
Lista cobranças.
Escopo exigido: payments.read. Envelope: page/per_page.
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/fluvpay/resources/charges.rb', line 65 def list(status: nil, page: nil, per_page: nil, sort: nil) params = { "status" => status, "page" => page, "per_page" => per_page, "sort" => sort } payload = @client.request(:get, "/charges/", params: params) PageList.new(payload) end |
#retrieve(charge_id) ⇒ Hash
Recupera uma cobrança por ID.
Escopo exigido: payments.read.
53 54 55 |
# File 'lib/fluvpay/resources/charges.rb', line 53 def retrieve(charge_id) @client.request(:get, "/charges/#{escape(charge_id)}") end |