Finance-Bank-Postbank_de
view release on metacpan or search on metacpan
lib/Finance/Bank/Postbank_de/Account.pm view on Meta::CPAN
=encoding ISO8859-1
=head1 NAME
Finance::Bank::Postbank_de::Account - Postbank bank account class
=head1 SYNOPSIS
=for example begin
use strict;
require Crypt::SSLeay; # It's a prerequisite
use Finance::Bank::Postbank_de::Account;
my $statement = Finance::Bank::Postbank_de::Account->parse_statement(
login => 'Petra.Pfiffig',
password => '123456789',
);
# Retrieve account data :
print "Balance : ",$statement->balance->[1]," EUR\n";
# Output CSV for the transactions
for my $row ($statement->transactions) {
print join( ";", map { $row->{$_} } (qw( tradedate valuedate type comment receiver sender amount ))),"\n";
};
=for example end
=for example_testing
isa_ok($statement,"Finance::Bank::Postbank_de::Account");
my $expected = <<EOX;
Balance : 5314.05 EUR
.berweisung;111111/1000000000/37050198 FINANZKASSE 3991234 STEUERNUMMER 00703434;Finanzkasse K.ln-S.d;PETRA PFIFFIG;-328.75
.berweisung;111111/3299999999/20010020 .BERTRAG AUF SPARCARD 3299999999;Petra Pfiffig;PETRA PFIFFIG;-228.61
Gutschrift;BEZ.GE PERS.NR. 70600170/01 ARBEITGEBER U. CO;PETRA PFIFFIG;Petra Pfiffig;2780.70
.berweisung;DA 1000001;Verlagshaus Scribere GmbH;PETRA PFIFFIG;-31.50
Scheckeinreichung;EINGANG VORBEHALTEN GUTBUCHUNG 12345;PETRA PFIFFIG;Ein Fremder;1830.00
Lastschrift;MIETE 600+250 EUR OBJ22/328 SCHULSTR.7, 12345 MEINHEIM;Eigenheim KG;PETRA PFIFFIG;-850.00
Inh. Scheck;;2000123456789;PETRA PFIFFIG;-75.00
Lastschrift;TEILNEHMERNR 1234567 RUNDFUNK 0103-1203;GEZ;PETRA PFIFFIG;-84.75
Lastschrift;RECHNUNG 03121999;Telefon AG Köln;PETRA PFIFFIG;-125.80
Lastschrift;STROMKOSTEN KD.NR.1462347 JAHRESABRECHNUNG;Stadtwerke Musterstadt;PETRA PFIFFIG;-580.06
Gutschrift;KINDERGELD KINDERGELD-NR. 1462347;PETRA PFIFFIG;Arbeitsamt Bonn;154.00
EOX
for ($::_STDOUT_,$expected) {
s!\r\n!!gsm;
# Strip out all date references ...
s/^\d{8};\d{8};//gm;
s![\x80-\xff]!.!gsm;
};
is_deeply([split /\n/, $::_STDOUT_],[split /\n/, $expected],"Retrieved the correct data")
or do {
diag "--- Expected";
diag $expected;
diag "--- Got";
diag $::_STDOUT_;
};
=head1 DESCRIPTION
This module provides a rudimentary interface to the Postbank online banking system at
https://banking.postbank.de/. You will need either Crypt::SSLeay or IO::Socket::SSL
installed for HTTPS support to work with LWP.
The interface was cooked up by me without taking a look at the other Finance::Bank
modules. If you have any proposals for a change, they are welcome !
=head1 WARNING
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. T...
=head1 WARNUNG
Dieser Code beschaeftigt sich mit Online Banking, das heisst, hier geht es um Dein Geld und das bedeutet SEI VORSICHTIG ! Ich gehe
davon aus, dass Du den Quellcode persoenlich anschaust, um Dich zu vergewissern, dass ich nichts unrechtes mit Deinen Bankdaten
anfange. Diese Software finde ich persoenlich nuetzlich, aber ich stelle sie OHNE JEDE GARANTIE zur Verfuegung, weder eine
ausdrueckliche noch eine implizierte Garantie.
=head1 METHODS
=head2 new
Creates a new object. It takes three named parameters :
=over 4
=item number => '9999999999'
This is the number of the account. If you don't know it (for example, you
are reading in an account statement from disk), leave it undef.
=back
=head2 $account->parse_statement %ARGS
Parses an account statement and returns it as a hash reference. The account statement
can be passed in via two named parameters. If no parameter is given, the current statement
is fetched via the website through a call to C<get_account_statement> (is this so?).
Parameters :
=over 4
=item file => $filename
Parses the file C<$filename> instead of downloading data from the web.
=item content => $string
Parses the content of C<$string> instead of downloading data from the web.
=back
=head2 $account->iban
Returns the IBAN for the account as a string. Later, a move to L<Business::IBAN> is
planned. The IBAN is a unique identifier for every account, that identifies the country,
bank and account with that bank.
=head2 $account->transactions %ARGS
Delivers you all transactions within a statement. The transactions may be filtered
( run in 2.393 seconds using v1.01-cache-2.11-cpan-364913b4093 )