The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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