class CashOut::Connect::Transfer::Create
Public Instance Methods
execute()
click to toggle source
# File lib/cash_out/connect/transfer/create.rb, line 8 def execute initiate_transfer end
Private Instance Methods
initiate_transfer()
click to toggle source
# File lib/cash_out/connect/transfer/create.rb, line 14 def initiate_transfer Stripe::Transfer.create(*params) rescue *STRIPE_ERRORS => e errors.add(:stripe, e.to_s) e.json_body end
negative_payout_params()
click to toggle source
# File lib/cash_out/connect/transfer/create.rb, line 26 def negative_payout_params # Makes a transfer from the payee to the platform account for amount owed # https://stripe.com/docs/connect/account-debits#transferring-from-a-connected-account [ { amount: amount_to_payout.abs, currency: "usd", description: "", destination: platform_stripe_account.id }, { stripe_account: payee.stripe_id } ] end
params()
click to toggle source
# File lib/cash_out/connect/transfer/create.rb, line 21 def params # Stripe does not allow negative transfers, so we must change the params accordingly amount_to_payout.positive? ? positive_payout_params : negative_payout_params end
platform_stripe_account()
click to toggle source
# File lib/cash_out/connect/transfer/create.rb, line 59 def platform_stripe_account # Calling retrieve without a param retrieves the platform account # In test mode, create charges with 4000 0000 0000 0077 to add funds # https://stripe.com/docs/testing#cards-responses @platform_stripe_account ||= Stripe::Account.retrieve end
positive_payout_params()
click to toggle source
# File lib/cash_out/connect/transfer/create.rb, line 42 def positive_payout_params # Only runs when payout is positive but payout amount > charges # Makes a transfer from platform account to payee # Platform Stripe Account balance MUST be greater than transfer amount [ { amount: amount_to_payout, currency: "usd", description: "", destination: payee.stripe_id }, { stripe_account: platform_stripe_account.id, } ] end