class BloomRemit2::Remittance

Attributes

account_name[R]
account_number[R]
client_external_id[R]
dest_currency[R]
destination_currency[R]
flat_fee_in_orig_currency[R]
flat_fee_in_origin_currency[R]
forex_margin[R]
id[R]
orig_currency[R]
origin_currency[R]
paid_in_orig_currency[R]
partner_id[R]
payout_method[R]
recipient[R]
sender_id[R]
status[R]
teller_id[R]

Public Class Methods

cancel(sender_id, remittance_id) click to toggle source

Cancel a remittance

Note that this changes the status of the remittance to 'cancelled' and refunds the partner credits used, but does not delete it from the database.

@param sender_id [String] id of sender associated with this remittance @param remittance_id [String] id of remittance

# File lib/bloom_remit2/remittance.rb, line 46
def cancel(sender_id, remittance_id)
  remittance = Client.delete(path_with_id(sender_id, remittance_id))
end
execute(sender_id, remittance_hash, staging: false) click to toggle source

Initiate a new money transfer by providing a recipient_id and remittance hash

# File lib/bloom_remit2/remittance.rb, line 5
def execute(sender_id, remittance_hash, staging: false)
  result = Client.post(path(sender_id), remittance_hash, staging)
  remittance = result['remittance'].with_indifferent_access
  new(
    remittance[:id],
    remittance[:partner_id],
    remittance[:orig_currency],
    remittance[:dest_currency],
    remittance[:paid_in_orig_currency],
    remittance[:forex_margin],
    remittance[:flat_fee_in_orig_currency],
    remittance[:payout_method],
    remittance[:status],
    remittance[:account_name],
    remittance[:account_number],
    remittance[:teller_id],
    remittance[:sender_id],
    remittance[:client_external_id],
    recipient: Recipient.new(
      remittance[:recipient_id],
      remittance[:sender_id],
      nil,
      nil,
      nil,
      nil,
      nil,
      nil,
      nil,
      nil,
      nil
    )
  )
end
list(sender_id) click to toggle source

Show all remittances belonging to the given sender

@param sender_id [String] id of sender to list remittances for @return remittances [Array] array with BloomRemit2::Remittance instances

# File lib/bloom_remit2/remittance.rb, line 54
def list(sender_id)
  remittances = Client.get(path(sender_id))
  remittances['remittance_ids'].map { |id| new(id) }
end
new( id, partner_id=nil, orig_currency=nil, dest_currency=nil, paid_in_orig_currency=nil, forex_margin=nil, flat_fee_in_orig_currency=nil, payout_method=nil, status=nil, account_name=nil, account_number=nil, teller_id=nil, sender_id=nil, client_external_id=nil, recipient: nil ) click to toggle source
# File lib/bloom_remit2/remittance.rb, line 117
def initialize(
  id,
  partner_id=nil,
  orig_currency=nil,
  dest_currency=nil,
  paid_in_orig_currency=nil,
  forex_margin=nil,
  flat_fee_in_orig_currency=nil,
  payout_method=nil,
  status=nil,
  account_name=nil,
  account_number=nil,
  teller_id=nil,
  sender_id=nil,
  client_external_id=nil,
  recipient: nil
)
  @id = id
  @partner_id = partner_id
  @orig_currency = orig_currency 
  @dest_currency = dest_currency 
  @paid_in_orig_currency = paid_in_orig_currency 
  @forex_margin = forex_margin 
  @flat_fee_in_orig_currency = flat_fee_in_orig_currency
  @payout_method = payout_method 
  @status = status
  @account_name = account_name
  @account_number = account_number
  @teller_id = teller_id
  @sender_id = sender_id
  @client_external_id = client_external_id
  @recipient = recipient
end
path(sender_id) click to toggle source
# File lib/bloom_remit2/remittance.rb, line 102
def path(sender_id)
  "api/v1/partners/#{BloomRemit2.configuration.api_token}/senders/#{sender_id}/remittances"
end
path_with_id(sender_id, remittance_id) click to toggle source
# File lib/bloom_remit2/remittance.rb, line 106
def path_with_id(sender_id, remittance_id)
  "#{path(sender_id)}/#{remittance_id}"
end
retrieve(sender_id, remittance_id) click to toggle source

Show information about a given remittance with their associated recipient

All information about the given remittance and recipient are returned with this call. Important fields to note include status and receivable_in_dest_currency.

@param sender_id [String] id of sender associated with this remittance @param remittance_id [String] id of remittance @return remittance [BloomRemit2::Remittance]

# File lib/bloom_remit2/remittance.rb, line 67
def retrieve(sender_id, remittance_id)
  result = Client.get(path_with_id(sender_id, remittance_id)).with_indifferent_access
  remittance = result['remittance'].with_indifferent_access
  recipient = result['recipient'].with_indifferent_access
  new(
    remittance[:id],
    remittance[:partner_id],
    remittance[:orig_currency],
    remittance[:dest_currency],
    remittance[:paid_in_orig_currency],
    remittance[:forex_margin],
    remittance[:flat_fee_in_orig_currency],
    remittance[:payout_method],
    remittance[:status],
    remittance[:account_name],
    remittance[:account_number],
    remittance[:teller_id],
    remittance[:sender_id],
    remittance[:client_external_id],
    recipient: Recipient.new(
      recipient[:id],
      recipient[:sender_id],
      recipient[:first_name],
      recipient[:last_name],
      recipient[:email],
      recipient[:mobile],
      recipient[:address],
      nil,
      nil,
      recipient[:country],
      nil
    )
  )
end