Finance-Bank-ID-BPRKS
view release on metacpan or search on metacpan
Finance::Bank::ID::BPRKS - Check your BPR KS accounts from Perl
VERSION
This document describes version 0.06 of Finance::Bank::ID::BPRKS (from
Perl distribution Finance-Bank-ID-BPRKS), released on 2017-07-10.
SYNOPSIS
use Finance::Bank::ID::BPRKS;
# FBI::BPRKS 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::BPRKS->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 @cards = $ibank->list_cards();
my $bal = $ibank->check_balance($card); # $card is optional
my $stmt = $ibank->get_statement(
card => ..., # opt, default card will be used if undef
days => 30, # opt
start_date => DateTime->new(year=>2012, month=>6, day=>1),
# 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);
Also see the examples/ subdirectory in the distribution for a sample
script using this module.
DESCRIPTION
RELEASE NOTE: This is an early release. Only parse_statement() for a
single statement page is implemented.
This module provide a rudimentary interface to the web-based online
banking interface of the Indonesian BPR Karyajatnika Sadaya (BPR KS,
BPRKS) at https://ib.bprks.co.id. 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 individual edition of the site. I
haven't checked out the other versions.
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.
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.
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 "new()" below and the sample script in examples/
subdirectory in the distribution.
ATTRIBUTES
skip_NEXT => BOOL
If set to true, then statement with NEXT status will be skipped.
METHODS
new(%args)
Create a new instance. %args keys:
* username
Optional if you are just using utility methods like
"parse_statement()" and not "login()" etc.
* password
Optional if you are just using utility methods like
"parse_statement()" and not "login()" etc.
* mech
Optional. A WWW::Mechanize-like object. By default this module
instantiate a new Finance::BankUtils::ID::Mechanize (a
WWW::Mechanize subclass) object to retrieve web pages, but if you
want to use a custom/different one, you are allowed to do so here.
Use cases include: you want to retry and increase timeout due to
slow/unreliable network connection (using
WWW::Mechanize::Plugin::Retry), you want to slow things down using
WWW::Mechanize::Sleepy, you want to use IE engine using
Win32::IE::Mechanize, etc.
* verify_https
( run in 1.850 second using v1.01-cache-2.11-cpan-99c4e6809bf )