NAME Finance::Bank::CooperativeUKPersonal - Access to UK Cooperative personal bank accounts SYNOPSIS use Finance::Bank::CooperativeUKPersonal my $conf = { sortCode => $sortCode, # numeric, without dashes, accountNumber => $accountNumber, securityCode => $securityCode, memorableDate => $memorableDate, # dd/mm/yyyy memorableName => $memorableName, firstSchool => $firstSchool, lastSchool => $lastSchool, birthPlace => $birthplace }; # Connect to bank & login my $bank = Finance::Bank::CooperativeUKPersonal->new($conf); $bank->connect(); # get account summary (all accounts table) my $accounts = $bank->accountSummary(); # get available statements for an account # includes dated statements & recent items statement my $statements = $bank->availableStatements( $accounts->[0] ); # fetch a statement - dated or recent items my $transactions = $bank->statement( $statements->[0] ); DESCRIPTION This module provides an interface to the Co-operative UK personal online banking website, with access to recent transactions and statements. METHODS new, connect - combine to start your session my $conf = { sortCode => $sortCode, # numeric, without dashes, accountNumber => $accountNumber, securityCode => $securityCode, memorableDate => $memorableDate, # dd/mm/yyyy memorableName => $memorableName, firstSchool => $firstSchool, lastSchool => $lastSchool, birthPlace => $birthplace }; # Connect to bank & login my $bank = Finance::Bank::CooperativeUKPersonal->new($conf); $bank->connect(); "new()" configures your connection, "connect()" connects to the co-op website. The co-op expires sessions after 10 minutes of inactivity, so "connect()" can be used at any point to reconnect. accountSummary - summary listing of bank accounts Parses the initial account summary table shown after logging into the Co-Op bank website. Returns a reference to an array of account hashrefs. e.g. $accounts = $bank->accountSummary(); returns $accounts = [ { 'accountNumber' => $accountNumber, 'sortCode' => $sortCode, 'href' => $href, 'name' => $name, 'availableBalance' => $balance } ]; If your balance is in credit, the co-op appends 'CR' to the available balance. I do not know how they indicate overdrawn accounts. availableStatements - list of availalable statements for an account Returns a list of available statements for an account as a reference to an array of hashrefs. $statements = $bank->availableStatements($accounts->[0]); returns $statements = [ { 'name' => $name, 'href' => $href } ]; In the returned hashref, 'name' is either 'Recent Items' or the statement's issued date in dd/mm/yyyy format. statement - list of transaction rows in a statement Returns a list of transactions in a statement as a reference to an array of hashrefs. $transactions = $bank->statement($statements->[1]); returns $transactions = [ { 'reference' => $referenceString, 'date' => $date, # 'dd/mm/yyyy', 'withdrawal' => $withdrawal 'deposit' => $deposit, 'balance' => $balance # not present in recent items statement }, ]; If your balance is in credit, the co-op appends 'CR' to the available balance. I do not know how they indicate overdrawn accounts. CAVEATS As this module accesses your bank account, you should ensure you store your configuration data and any received transaction information in a secure place. AUTHOR Stephen Patterson