PHPackages                             aradhell/bank-statement-exporter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. aradhell/bank-statement-exporter

ActiveLibrary

aradhell/bank-statement-exporter
================================

Exports bank statements from given input

v0.1(6y ago)61.1k1[1 PRs](https://github.com/aradhell/bank-statement-exporter/pulls)MITPHPPHP ^7.2CI passing

Since Oct 31Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/aradhell/bank-statement-exporter)[ Packagist](https://packagist.org/packages/aradhell/bank-statement-exporter)[ RSS](/packages/aradhell-bank-statement-exporter/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (2)Versions (6)Used By (0)

Installation
------------

[](#installation)

`composer require aradhell/bank-statement-exporter`

### Requirements

[](#requirements)

- PHP ^7.2
- Composer
- ext-simplexml

Usage
-----

[](#usage)

### Export CAMT

[](#export-camt)

#### Create CAMTInput

[](#create-camtinput)

```
$bookingDate = '2019-10-28'; //transaction booking date
$valueDate = '2019-10-28'; //transaction value date

$transactionBuilder = new TransactionBuilder();
$transactionCrdt = $transactionBuilder->setEntryReference('reference')
    ->setAmount(134123.11)
    ->setCurrency('EUR')
    ->setCreditDebitIndicator('CRDT')
    ->setStatus('BOOK')
    ->setBookingDate($bookingDate)
    ->setValueDate($valueDate)
    ->setAccountServicerReference('accountServicerRef')
    ->build();

$transactionBuilder->reset(); // reset builder to create a new transaction

$transactionDbit = $transactionBuilder->setEntryReference('reference')
    ->setAmount(34123.01)
    ->setCurrency('EUR')
    ->setCreditDebitIndicator('DBIT')
    ->setStatus('BOOK')
    ->setBookingDate($bookingDate)
    ->setValueDate($valueDate)
    ->setAccountServicerReference('accountServicerRef')
    ->setBankTransactionCode('544')
    ->build();

$transactions = [$transactionCrdt, $transactionDbit];

$transactionSummary = new TransactionSummary($transactions); // create transaction summary

$account = new Account('iban', 'currency', 'name'); // account info

$date = new DateTime();

$creationDateTime = $date->setTimeZone(new DateTimeZone('Europe/Amsterdam'))->format("Y-m-d\TH:i:s.uP"); //export  file creation datetime

$headers = new Headers('message_id', $creationDateTime, 'id', 'seqno'); // export file headers

$balance = [new Balance('OPBD', 'EUR', 15286.98, 'CRDT', $bookingDate)]; // example balance

$CAMTInput = new CAMTInput(
    $transactions,
    $balance,
    $account,
    $headers,
    $transactionSummary
);
```

#### Create BSExporter

[](#create-bsexporter)

```
$bsexporter = new BSExporter();

$result = $bsexporter->export($CAMTInput);
```

---

### Export MT940

[](#export-mt940)

#### Create MT940Input

[](#create-mt940input)

```
$valueDate = '191028'; // Format YYMMDD
$entryDate = '1028'; // Format MMDD

$openingBalance = new Balance('C', $valueDate, 'EUR', '541,87');
$header = new Header(
    'P191007000000001', // :20:
    'NL81INGB0006010913EUR', // :25:
    '00000', // :28C:
    $openingBalance // :60F:
);

$transactionBuilder = new TransactionBuilder();

$transaction_1 = $transactionBuilder->setValueDate($valueDate)
    ->setEntryDate($entryDate)
    ->setIndicator('C')
    ->setAmount('1234,00')
    ->setType('NTRFNONREF')
    ->build();

$transactionBuilder->reset(); // reset builder to create a new transaction

$transaction_2 = $transactionBuilder->setValueDate($valueDate)
    ->setEntryDate($entryDate)
    ->setIndicator('D')
    ->setAmount('321')
    ->setType('NTRFEREF')
    ->setBankReference('19281343127574')
    ->setDescription('/EREF/03-10-2019 13:54 0020002657175237//CNTP/NL70RABO0115600000/RABONL2U/Houtenbouwmaterialen.nl via Mollie///REMI/USTD//M0321335M12VRE6A 0020002657175237 1000006627 houtenbouwmaterialen.nl/')
    ->build();

$transactionBuilder->reset();

$transaction_3 = $transactionBuilder->setValueDate($valueDate)
    ->setIndicator('C')
    ->setAmount('852,13')
    ->setType('NTRFNONREF')
    ->setBankReference('//19278366059677')
    ->build();

$transactions = [$transaction_1, $transaction_2, $transaction_3];

$closingBalance = new Balance('C', $valueDate, 'EUR', '657,11');
$closingAvailableBalance = new Balance('C', $valueDate, 'EUR', '861,68');
$forwardValueBalance = new Balance('C', $valueDate, 'EUR', '861,68');
$footer = new Footer(
    $closingBalance, // :62F
    $closingAvailableBalance // :64:
    $forwardValueBalance // :65:
);

$MT940Input = new MT940Input($header, $transactions, $footer);
```

#### Create BSExporter

[](#create-bsexporter-1)

```
$bsexporter = new BSExporter();

$result = $bsexporter->export($MT940Input);
```

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance54

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2368d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9737ba8bbff209ca0588b8c78a29d9dd933219ac7d3079bfa6c853936b43692a?d=identicon)[alpercevik](/maintainers/alpercevik)

---

Top Contributors

[![aradhell](https://avatars.githubusercontent.com/u/6387515?v=4)](https://github.com/aradhell "aradhell (26 commits)")[![alan-togather](https://avatars.githubusercontent.com/u/56881189?v=4)](https://github.com/alan-togather "alan-togather (17 commits)")

---

Tags

bank statementcamt exportmt940 export

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/aradhell-bank-statement-exporter/health.svg)

```
[![Health](https://phpackages.com/badges/aradhell-bank-statement-exporter/health.svg)](https://phpackages.com/packages/aradhell-bank-statement-exporter)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
