Class: FluvPay::Resources::InternalTransfers

Inherits:
Object
  • Object
show all
Defined in:
lib/fluvpay/resources/internal_transfers.rb

Overview

Recurso de transferências internas (conta FluvPay para conta FluvPay).

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ InternalTransfers

Returns a new instance of InternalTransfers.



11
12
13
# File 'lib/fluvpay/resources/internal_transfers.rb', line 11

def initialize(client)
  @client = client
end

Instance Method Details

#create(amount_cents:, recipient_email: nil, recipient_merchant_id: nil, description: nil, idempotency_key: nil) ⇒ Hash

Cria uma transferência interna FluvPay para FluvPay.

Escopo exigido: withdrawals.create. Idempotency-Key gerado se omitido. Não suportado em sandbox: chaves fluv_test_ recebem 403 (SANDBOX_NOT_SUPPORTED_FOR_TRANSFERS). Informe exatamente um entre recipient_email e recipient_merchant_id.

Parameters:

  • amount_cents (Integer)

    valor em centavos (100..10000000).

  • recipient_email (String, nil) (defaults to: nil)

    email do destinatário.

  • recipient_merchant_id (String, nil) (defaults to: nil)

    ULID do merchant destinatário (26 chars).

  • description (String, nil) (defaults to: nil)

    descrição (até 140 caracteres).

  • idempotency_key (String, nil) (defaults to: nil)

    Idempotency-Key; gerado se omitido.

Returns:

  • (Hash)

    a transferência criada.



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/fluvpay/resources/internal_transfers.rb', line 28

def create(amount_cents:, recipient_email: nil, recipient_merchant_id: nil,
           description: nil, idempotency_key: nil)
  body = {
    "amount_cents" => amount_cents,
    "recipient_email" => recipient_email,
    "recipient_merchant_id" => recipient_merchant_id,
    "description" => description
  }
  key = idempotency_key || FluvPay::Client.new_idempotency_key
  @client.request(:post, "/internal-transfers/", body: body, idempotency_key: key)
end

#list(direction: nil, limit: nil, offset: nil) ⇒ FluvPay::Resources::OffsetList

Lista transferências internas.

Escopo exigido: transfers.read. Envelope: limit/offset.

Parameters:

  • direction (String, nil) (defaults to: nil)

    “sent” (enviadas) ou “received” (recebidas).

  • limit (Integer, nil) (defaults to: nil)

    itens por página (1..100).

  • offset (Integer, nil) (defaults to: nil)

    deslocamento (>= 0).

Returns:



47
48
49
50
51
52
53
54
55
# File 'lib/fluvpay/resources/internal_transfers.rb', line 47

def list(direction: nil, limit: nil, offset: nil)
  params = {
    "direction" => direction,
    "limit" => limit,
    "offset" => offset
  }
  payload = @client.request(:get, "/internal-transfers/", params: params)
  OffsetList.new(payload)
end

#retrieve(transfer_id) ⇒ Hash

Recupera uma transferência interna por ID.

Parameters:

  • transfer_id (String)

    identificador da transferência.

Returns:

  • (Hash)

    a transferência.



61
62
63
# File 'lib/fluvpay/resources/internal_transfers.rb', line 61

def retrieve(transfer_id)
  @client.request(:get, "/internal-transfers/#{ERB::Util.url_encode(transfer_id.to_s)}")
end