Unified parser for several bank statement formats from Belgian banks. Supports CODA, MT940 and CSV (BNP Paribas / Belfius / KBC / ING)
You can install Codelicious/BelgianBankStatement using Composer. You can read more about Composer and its main repository at
http://packagist.org. First install Composer for your project using the instructions on the
Packagist home page, then define your dependency on Codelicious/BelgianBankStatement in your composer.json
file.
{
"require": {
"codelicious/php-belgianbankstatement-parser": "^2.0"
}
}
Or you can execute the following command in your project root to install this library:
composer require codelicious/php-belgianbankstatement-parser
<?php
use Codelicious\BelgianBankStatement;
$parser = new Parser();
$statement = $parser->parseFile('coda-file.cod', 'coda');
echo $statement->getDate()->format('Y-m-d') . "\n";
foreach ($statement->getTransactions() as $transaction) {
echo $transaction->getAccount()->getName() . ": " . $transaction->getAmount() . "\n";
}
echo $statement->newBalance() . "\n";
It's possible that non UTF-8 characters are present in the statements. In order to unify the encoding of your ingested statements, you might want to consider converting the encoding to UTF-8 before parsing.
if (mb_detect_encoding($content, ['UTF-8', 'ISO-8859-1']) === 'ISO-8859-1') {
// use mb_convert_encoding($content, to_encoding, from_encoding) to convert to UTF-8
$content = mb_convert_encoding($content, "UTF-8", "ISO-8859-1");
}
Codelicious\BelgianBankStatement\Statement
Date
- Date of the supplied file (format YYYY-MM-DD)Account
- Account for which the statements were created. An object implementingCodelicious\BelgianBankStatement\Account
InitialBalance
- Balance of the account before the transactions were processed. Up to 3 decimals.NewBalance
- Balance of the account after the transactions were processed. Up to 3 decimals.Transactions
- A list of transactions implemented asCodelicious\BelgianBankStatement\Transaction
Codelicious\BelgianBankStatement\Account
Name
- Name of the holder of the accountBic
- Bankcode of the accountNumber
- Banknumber of the accountCurrencyCode
- Currency of the accountCountryCode
- Country of the account
Codelicious\BelgianBankStatement\Transaction
Account
- Account of the other party of the transaction. An object implementingCodelicious\BelgianBankStatement\Account
TransactionDate
- Date on which the transaction was requestedValutaDate
- Date on which the transaction was executed by the bankAmount
- Amount of the transaction. Up to 3 decimals. A negative number for credit transactions.Message
- Message of the transactionStructuredMessage
- Structured messages of the transaction (if available)