Class: StraddlePay::Resources::Payouts

Inherits:
Base
  • Object
show all
Defined in:
lib/straddle_pay/resources/payouts.rb

Overview

Manage ACH payout (credit) transactions.

Constant Summary

Constants inherited from Base

Base::HEADER_KEYS

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from StraddlePay::Resources::Base

Instance Method Details

#cancel(id, reason:, **options) ⇒ Hash

Cancel a payout.

Parameters:

  • id (String)

    payout ID

  • reason (String)

    cancellation reason (required)

Returns:

  • (Hash)

    cancelled payout



51
52
53
54
55
# File 'lib/straddle_pay/resources/payouts.rb', line 51

def cancel(id, reason:, **options)
  payload = { reason: reason, **options }.compact
  headers = extract_headers(payload)
  @client.put("v1/payouts/#{id}/cancel", payload, headers: headers)
end

#create(paykey:, amount:, currency:, description:, payment_date:, device:, external_id:, **options) ⇒ Hash

Create a new payout.

Parameters:

  • paykey (String)

    paykey identifier

  • amount (Integer)

    amount in cents

  • currency (String)

    three-letter currency code

  • description (String)

    payout description

  • payment_date (String)

    date in YYYY-MM-DD format

  • device (Hash)

    device info (must include :ip_address)

  • external_id (String)

    your external reference ID

Returns:

  • (Hash)

    created payout



19
20
21
22
23
24
25
26
# File 'lib/straddle_pay/resources/payouts.rb', line 19

def create(paykey:, amount:, currency:, description:, payment_date:, device:, external_id:, **options)
  payload = {
    paykey: paykey, amount: amount, currency: currency, description: description,
    payment_date: payment_date, device: device, external_id: external_id, **options
  }.compact
  headers = extract_headers(payload)
  @client.post("v1/payouts", payload, headers: headers)
end

#get(id, **options) ⇒ Hash

Retrieve a payout by ID.

Parameters:

  • id (String)

    payout ID

Returns:

  • (Hash)

    payout details



32
33
34
35
# File 'lib/straddle_pay/resources/payouts.rb', line 32

def get(id, **options)
  headers = extract_headers(options)
  @client.get("v1/payouts/#{id}", headers: headers)
end

#hold(id, reason:, **options) ⇒ Hash

Place a payout on hold.

Parameters:

  • id (String)

    payout ID

  • reason (String)

    hold reason (required)

Returns:

  • (Hash)

    held payout



62
63
64
65
66
# File 'lib/straddle_pay/resources/payouts.rb', line 62

def hold(id, reason:, **options)
  payload = { reason: reason, **options }.compact
  headers = extract_headers(payload)
  @client.put("v1/payouts/#{id}/hold", payload, headers: headers)
end

#release(id, reason:, **options) ⇒ Hash

Release a held payout.

Parameters:

  • id (String)

    payout ID

  • reason (String)

    release reason (required)

Returns:

  • (Hash)

    released payout



73
74
75
76
77
# File 'lib/straddle_pay/resources/payouts.rb', line 73

def release(id, reason:, **options)
  payload = { reason: reason, **options }.compact
  headers = extract_headers(payload)
  @client.put("v1/payouts/#{id}/release", payload, headers: headers)
end

#resubmit(id, **options) ⇒ Hash

Resubmit a failed or reversed payout.

Parameters:

  • id (String)

    payout ID

  • options (Hash)

    optional request body or header params

Returns:

  • (Hash)

    resubmitted payout



93
94
95
96
97
# File 'lib/straddle_pay/resources/payouts.rb', line 93

def resubmit(id, **options)
  payload = options.compact
  headers = extract_headers(payload)
  @client.post("v1/payouts/#{id}/resubmit", payload.empty? ? nil : payload, headers: headers)
end

#unmask(id, **options) ⇒ Hash

Retrieve unmasked payout details.

Parameters:

  • id (String)

    payout ID

Returns:

  • (Hash)

    unmasked payout details



83
84
85
86
# File 'lib/straddle_pay/resources/payouts.rb', line 83

def unmask(id, **options)
  headers = extract_headers(options)
  @client.get("v1/payouts/#{id}/unmask", headers: headers)
end

#update(id, **options) ⇒ Hash

Update a payout.

Parameters:

  • id (String)

    payout ID

Returns:

  • (Hash)

    updated payout



41
42
43
44
# File 'lib/straddle_pay/resources/payouts.rb', line 41

def update(id, **options)
  headers = extract_headers(options)
  @client.put("v1/payouts/#{id}", options, headers: headers)
end