Finance-Bank-ID-BPRKS

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

    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 )