Finance-Bank-ID-BCA
view release on metacpan or search on metacpan
lib/Finance/Bank/ID/BCA.pm view on Meta::CPAN
=head1 VERSION
This document describes version 0.500 of Finance::Bank::ID::BCA (from Perl distribution Finance-Bank-ID-BCA), released on 2019-05-10.
=head1 SYNOPSIS
If you just want to download banking statements, and you use Linux/Unix, you
might want to use the L<download-bca> script instead of having to deal with this
library directly.
If you want to use the library in your Perl application:
use Finance::Bank::ID::BCA;
# FBI::BCA uses Log::ger. to show logs to, for example, screen:
use Log::ger::Output 'Screen';
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";
}
};
warn if $@;
# remember to call this, otherwise you will have trouble logging in again
# for some time
$ibank->logout();
Utility routines:
# parse HTML statement directly
my $res = $ibank->parse_statement($html);
=head1 DESCRIPTION
This module provide a rudimentary interface to the web-based online banking
interface of the Indonesian B<Bank Central Asia> (BCA) at
https://ibank.klikbca.com. You will need either L<Crypt::SSLeay> or
L<IO::Socket::SSL> installed for HTTPS support to work (and strictly
Crypt::SSLeay to enable certificate verification). L<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.
This module has been tested with the following savings products: Tahapan (IDR),
BCA Dolar (USD).
Warning: This module is neither offical nor is it tested to be 100% safe!
Because of the nature of web-robots, everything may break from one day to the
other when the underlying web interface changes.
=head1 WARNING
This warning is from Simon Cozens' C<Finance::Bank::LloydsTSB>, and seems just
as apt here.
This is code for B<online banking>, and that means B<your money>, and that means
B<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 B<NO
GUARANTEE>, explicit or implied.
=head1 ERROR HANDLING AND DEBUGGING
Most methods die() when encountering errors, so you can use eval() to trap them.
Full response headers and bodies are dumped to a separate logger. See
documentation on C<new()> below and the sample script in examples/ subdirectory
in the distribution.
=head1 ATTRIBUTES
=head1 METHODS
=for Pod::Coverage (BUILD|get_estatement)
=head2 new(%args)
Create a new instance. %args keys:
=over 4
=item * username
Optional if you are just using utility methods like C<parse_statement()> and not
C<login()> etc.
=item * password
Optional if you are just using utility methods like C<parse_statement()> and not
C<login()> etc.
=item * mech
Optional. A L<WWW::Mechanize>-like object. By default this module instantiate a
new L<Finance::BankUtils::ID::Mechanize> (a WWW::Mechanize subclass) object to
( run in 1.950 second using v1.01-cache-2.11-cpan-13bb782fe5a )