class Monzo::Transaction

Public: Transactions are movements of funds into or out of an account.

Negative transactions represent debits (ie. spending money) and
positive transactions represent credits (ie. receiving money).

Attributes

account_balance[R]
account_id[R]
amount[R]
attachments[R]
category[R]
counterparty[R]
created[R]
currency[R]
dedupe_id[R]
description[R]
id[R]
include_in_spending[R]
is_load[R]
local_amount[R]
local_currency[R]
merchant[R]
metadata[R]
notes[R]
originator[R]
scheme[R]
settled[R]
updated[R]

Public Class Methods

all(account_id) click to toggle source

Public: Find all the transactions for a given account id.

account_id - The account id to retrieve transactions from.

Returns an Array of Monzo::Transaction.

# File lib/monzo/transaction.rb, line 61
def self.all(account_id)
  response = Monzo.client.get("/transactions", :account_id => account_id)
  parsed_response = JSON.parse(response.body, :symbolize_names => true)

  parsed_response[:transactions].map do |item|
    Monzo::Transaction.new(item)
  end
end
create_annotation(transaction_id, metadata) click to toggle source

Public: Create an annotation for a given transaction id. You may store your own key-value annotations against a transaction in its metadata.

transaction_id - The transaction id to annotate. metadata - a hash of annotations to add.

Returns an instance of Monzo::Transaction with the annotations.

# File lib/monzo/transaction.rb, line 77
def self.create_annotation(transaction_id, metadata)
  data = {}
  metadata.each do |k, v|
    data["metadata[#{k.to_s}]"] = v
  end
  response = Monzo.client.patch("/transactions/#{transaction_id}", data, {})
  parsed_response = JSON.parse(response.body, :symbolize_names => true)

  Monzo::Transaction.new(parsed_response[:transaction])
end
find(transaction_id, options = {}) click to toggle source

Public: Find a transaction with the given transaction id.

transaction_id - The id to find. options - a Hash of options to request further information such as the

merchant information (optional)

Returns an instance of Monzo::Transaction.

# File lib/monzo/transaction.rb, line 49
def self.find(transaction_id, options = {})
  response = Monzo.client.get("/transactions/#{transaction_id}", options)
  parsed_response = JSON.parse(response.body, :symbolize_names => true)

  Monzo::Transaction.new(parsed_response[:transaction])
end
new(params) click to toggle source

Public: Initialize a Transaction.

params - A Hash of transaction parameters.

# File lib/monzo/transaction.rb, line 17
def initialize(params)
  @id = params[:id]
  @created = params[:created]
  @description = params[:description]
  @amount = params[:amount]
  @currency = params[:currency]
  @merchant = params[:merchant]
  @notes = params[:notes]
  @metadata = params[:metadata]
  @account_balance = params[:account_balance]
  @attachments = params[:attachments]
  @category = params[:category]
  @is_load = params[:is_load]
  @settled = params[:settled]
  @local_amount = params[:local_amount]
  @local_currency = params[:local_currency]
  @updated = params[:updated]
  @account_id = params[:account_id]
  @counterparty = params[:counterparty]
  @scheme = params[:scheme]
  @dedupe_id = params[:dedupe_id]
  @originator = params[:originator]
  @include_in_spending = params[:include_in_spending]
end