Finance::Bank::Wachovia version 0.01
==================================

NAME
      Finance::Bank::Wachovia - access account info from Perl

      * Account numbers
      * Account names
      * Account balances (posted and available)
      * Account transaction data (in all their detailed glory)

      Does not (yet) provide any means to transfer money or pay bills.

SYNOPSIS
      Since this version uses the website to get account info, it will need
      the information to login: There are two ways to login via the wachovia
      website, and depending on which login method you use, that decides
      which parameters you'll provide to the new() method.  If you use the
      Customer access number method (left form on the website) then provide
      "customer_access_number", "pin", and "code_word".  If you use the user
      id method (right form on the website) then provide "user_id" and "pass-
      word".

        use Finance::Bank::Wachovia;

        # Two different types of login information,
        # if you login using can/pin/codeword:
        my $wachovia  = Finance::Bank::Wachovia->new(
            customer_access_number => '123456789',
            pin                    => '1234',
            code_word              => 'blah'
        ) or die Finance::Bank::Wachovia->ErrStr();

        # OR if you login using user_id/password:
        $wachovia = Finance::Bank::Wachovia->new(
            user_id  => 'foo',
            password => 'bar'
        ) or die Finance::Bank::Wachovia->ErrStr();

        my @account_numbers  = $wachovia->account_numbers();
        my @account_names    = $wachovia->account_names();
        my @account_balances = $wachovia->account_balances();

        my $account = $wachovia->account( $account_numbers[0] )
              or die $wachovia->ErrStr();;
        print "Number: ",      $account->number, "\n";
        print "Name: ",        $account->name, "\n";
        print "Type: ",        $account->type, "\n";
        print "Avail. Bal.: ", $account->available_balance, "\n";
        print "Posted.Bal.: ", $account->posted_balance, "\n";

        my $transactions = $account->transactions
              or die $account->ErrStr;

        foreach my $t ( @$transactions ){
              print "Date: ",     $t->date,              "\n",
                    "Action: ",   $t->action,            "\n",
                    "Desc: ",     $t->description,       "\n",
                    "Withdrawal", $t->withdrawal_amount, "\n",
                    "Deposit",    $t->deposit_amount,    "\n",
                    "Balance",    $t->balance,           "\n",
                    "seq_no",     $t->seq_no,            "\n",
                    "trans_code", $t->trans_code,        "\n",
                    "check_num",  $t->check_num,         "\n";
        }

DESCRIPTION
      Internally uses WWW::Mechanize to scrape the bank's website.  The idea
      was to keep the interface as logical as possible.  The user is com-
      pletely abstracted from how the data is obtained, and to a large degree
      so is the module itself.  In case wachovia ever offers an XML inter-
      face, or soap, or DBI (right) this should be an easy module to add
      to/modify, but the application interface will not change, so YOUR code
      won't have to either.


INSTALLATION

To install this module type the following:

  perl Makefile.PL
  make
  make test
  make install

DEPENDENCIES

This module requires these other modules and libraries:

 WWW::Mechanize
 HTTP::Cookies

COPYRIGHT AND LICENCE

Copyright (C) 2004 Jim Garvin

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.