Finance::Bank::ID::BCA is a Perl module that provides a rudimentary interface to the web-based online banking interface of the Indonesian Bank Central Asia (BCA) at https://ibank.klikbca.com. You will need either Crypt::SSLeay or IO::Socket::SSL installed for HTTPS support to work (and strictly Crypt::SSLeay to enable certificate verification). WWW::Mechanize is required but you can supply your own mech-like object.
This module can only login to the retail/personal version of the site (KlikBCA perorangan) and not the corporate/business version (KlikBCA bisnis) as the later requires VPN and token input on login. But this module can parse statement page from both versions.
Warning: This module is neither offical nor is it tested to be 100% save! Because of the nature of web-robots, everything may break from one day to the other when the underlying web interface changes.
SYNOPSIS
use Finance::Bank::ID::BCA;
# FBI::BCA uses Log::Any. to show logs using, e.g., Log4perl:
use Log::Log4perl qw(:easy);
use Log::Any::Adapter;
Log::Log4perl->easy_init($DEBUG);
Log::Any::Adapter->set('Log4perl');
my $ibank = Finance::Bank::ID::BCA->new(
username => 'ABCDEFGH1234', # opt if only using parse_statement()
password => '123456', # idem
verify_https => 1, # default is 0
#https_ca_dir => '/etc/ssl/certs', # default is already /etc/ssl/certs
);
eval {
$ibank->login(); # dies on error
my @accts = $ibank->list_accounts();
my $bal = $ibank->check_balance($acct); # $acct is optional
my $stmt = $ibank->get_statement(
account => ..., # opt, default account will be used if undef
days => 31, # opt
start_date => DateTime->new(year=>2009, month=>10, day=>6),
# opt, takes precedence over 'days'
end_date => DateTime->today, # opt, takes precedence over 'days'
);
print "Transactions: ";
for my $tx (@{ $stmt->{transactions} }) {
print "$tx->{date} $tx->{amount} $tx->{description}\n";
}
};
# remember to call this, otherwise you will have trouble logging in again
# for some time
if ($ibank->logged_in) { $ibank->logout() }
# utility routines
my $res = $ibank->parse_statement($html);
Product's homepage
Requirements:
· Perl