Class: AbacatePay::Clients::TransparentClient

Inherits:
Client
  • Object
show all
Defined in:
lib/abacate_pay/clients/transparent_client.rb

Overview

Client for transparent PIX checkout in the AbacatePay API.

Transparent checkout returns the QR code and copy-and-paste payload directly, so the payment stays inside your own UI.

Constant Summary collapse

URI =
"transparents"

Instance Method Summary collapse

Constructor Details

#initialize(client = nil) ⇒ TransparentClient

Returns a new instance of TransparentClient.



12
13
14
# File 'lib/abacate_pay/clients/transparent_client.rb', line 12

def initialize(client = nil)
  super(URI, client)
end

Instance Method Details

#check(id) ⇒ Resources::Transparents

Parameters:

  • id (String)

    QR code ID

Returns:



50
51
52
53
# File 'lib/abacate_pay/clients/transparent_client.rb', line 50

def check(id)
  response = request("GET", "check", params: { id: id })
  Resources::Transparents.new(response)
end

#create(data) ⇒ Resources::Transparents

Parameters:

Returns:



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/abacate_pay/clients/transparent_client.rb', line 25

def create(data)
  request_data = {
    method: "PIX",
    data: {
      amount: data.amount
    },
    expiresIn: data.expires_in,
    description: data.description
  }

  if data.customer
    request_data[:customer] = {
      name: data.customer.&.name,
      email: data.customer.&.email,
      cellphone: data.customer.&.cellphone,
      taxId: data.customer.&.tax_id
    }
  end

  response = request("POST", "create", json: request_data)
  Resources::Transparents.new(response)
end

#list(**params) ⇒ Array<Resources::Transparents>

Parameters:

  • params (Hash)

    Optional pagination params (after, before, limit)

Returns:



18
19
20
21
# File 'lib/abacate_pay/clients/transparent_client.rb', line 18

def list(**params)
  response = request("GET", "list", params: params.empty? ? nil : params)
  Array(response).map { |data| Resources::Transparents.new(data) }
end

#refund(id) ⇒ Resources::Transparents

Refunds a transparent payment in full. AbacatePay does not support partial refunds — the original amount is always returned.

Parameters:

  • id (String)

    Public charge ID (pix_char_..., card_..., char_...)

Returns:



67
68
69
70
# File 'lib/abacate_pay/clients/transparent_client.rb', line 67

def refund(id)
  response = request("POST", "refund", json: { id: id })
  Resources::Transparents.new(response)
end

#simulate_payment(id) ⇒ Resources::Transparents

Parameters:

  • id (String)

    QR code ID (dev mode only)

Returns:



57
58
59
60
# File 'lib/abacate_pay/clients/transparent_client.rb', line 57

def simulate_payment(id)
  response = request("POST", "simulate-payment", json: { id: id })
  Resources::Transparents.new(response)
end