NAME

Finance::Bank::Cahoot - Check your Cahoot bank accounts from Perl

SYNOPSIS

  use Finance::Bank::Cahoot;
  my @accounts = Finance::Bank::Cahoot->check_balance(
      username => "xxxxxxxxxx",
      password   => "xxxxxx",
      memorable_address   => "xxxxxx",
      maiden_name   => "xxxxxx",
      memorable_date   => "xxxxxx"
  );

  foreach (@accounts) {
      printf "%25s : %18s : GBP %8.2f (%8.2f)\n",
        $_->{name}, $_->{account}, $_->{current_balance}, $_->{available_balance};
	  print "recent transactions: \n";
	  my @transactions = $_->statement;
	  foreach (@transactions) {
			printf "%25s : %14s : GBP -%8.2f +%8.2f\n",
			  $_->{name}, $_->{date}, $_->{amount_debit}, $_->{amount_credit};
	  }
  }

DESCRIPTION

This module provides a rudimentary interface to the Cahoot online
banking system at http://www.cahoot.com. 

DEPENDENCIES

You will need either Crypt::SSLeay or IO::Socket::SSL installed 
for HTTPS support to work with LWP.  This module also depends on 
WWW::Mechanize for screen-scraping.

CLASS METHODS

    check_balance( username => $u, password => $p, memorable_address => $a, maiden_name => $m, memorable_date => $d)

Return an array of account objects, one for each of your bank accounts.

ACCOUNT OBJECT METHODS

    $ac->name
    $ac->account
    $ac->account_type
    $ac->available_balance
    $ac->current_balance
 
Return the account name, account number, account type and available/current balances
as signed floating point values.

    $ac->statement

Return an array of hashes for the most recent transactions. (payee name, date, debit amount and credit amount)

TRANSACTION HASH KEYS

    $tr->name
    $tr->date
    $tr->amount_debit
    $tr->amount_credit

WARNING

This warning is from Simon Cozens' Finance::Bank::LloydsTSB, and seems
just as apt here.

This is code for online banking, and that means your money, and
that means BE CAREFUL. You are encouraged, nay, expected, to audit
the source of this module yourself to reassure yourself that I am not
doing anything untoward with your banking data. This software is useful
to me, but is provided under NO GUARANTEE, explicit or implied.

NOTES

This has only been tested on my Cahoot accounts. This only represents a subset of the 
accounts available. They should all follow a consistent layout for the statement method
but this is not guaranteed to be the case.

THANKS

Chris Ball for Finance::Bank::HSBC, Simon Cozens for Finance::Bank::LloydsTSB,
Andy Lester (and Skud, by continuation) for WWW::Mechanize.

AUTHOR

Andy Kelk mopoke@cpan.org
