PHPackages                             abcaeffchen/sepa-documentor - 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. [PDF &amp; Document Generation](/categories/documents)
4. /
5. abcaeffchen/sepa-documentor

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

abcaeffchen/sepa-documentor
===========================

Generates file routing slips and control lists from SEPA file data

3.0.0(1y ago)2226.2k↓15.4%2[1 issues](https://github.com/AbcAeffchen/SepaDocumentor/issues)1LGPL-3.0-onlyPHPPHP &gt;=8.1CI passing

Since Nov 7Pushed 8mo ago3 watchersCompare

[ Source](https://github.com/AbcAeffchen/SepaDocumentor)[ Packagist](https://packagist.org/packages/abcaeffchen/sepa-documentor)[ Docs](https://github.com/AbcAeffchen/SepaDocumentor)[ GitHub Sponsors](https://github.com/AbcAeffchen)[ RSS](/packages/abcaeffchen-sepa-documentor/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (1)

SepaDocumentor - A Sephpa module to generate documentation files (PDF) for SEPA xml files
=========================================================================================

[](#sepadocumentor---a-sephpa-module-to-generate-documentation-files-pdf-for-sepa-xml-files)

[![Unit Tests](https://github.com/AbcAeffchen/SepaDocumentor/actions/workflows/php.yml/badge.svg)](https://github.com/AbcAeffchen/SepaDocumentor/actions/workflows/php.yml)[![Latest Stable Version](https://camo.githubusercontent.com/45acd8893fda6d8e5a00f1fb8656465a1666f2693b54aced1bd6a7770c1e886b/68747470733a2f2f706f7365722e707567782e6f72672f616263616566666368656e2f736570612d646f63756d656e746f722f762f737461626c65)](https://packagist.org/packages/abcaeffchen/sepa-documentor)[![Total Downloads](https://camo.githubusercontent.com/e96e62bcb4f93fa97db00dab98526c9916cdc3c9a012940585fda5ef59af1730/68747470733a2f2f706f7365722e707567782e6f72672f616263616566666368656e2f736570612d646f63756d656e746f722f646f776e6c6f616473)](https://packagist.org/packages/abcaeffchen/sepa-documentor)[![License](https://camo.githubusercontent.com/4992400755ad20eea8ffb5ecb277ea1e65b3d40a3bad9866cc79d7959efdb914/68747470733a2f2f706f7365722e707567782e6f72672f616263616566666368656e2f736570612d646f63756d656e746f722f6c6963656e7365)](https://packagist.org/packages/abcaeffchen/sepa-documentor)

General
-------

[](#general)

**SepaDocumentor** is a module for [Sephpa](https://github.com/AbcAeffchen/Sephpa)to create file routing slips and control lists as PDF file(s) while generating SEPA xml files.

Requirements
------------

[](#requirements)

SepaDocumentor works with PHP &gt;=8.1 and requires mPDF &gt;=8.0. It is an optional module of Sephpa &gt;= 2.0, but you can also use it with other SEPA projects as well.

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

[](#installation)

### Composer

[](#composer)

Just add

```
{
    "require": {
        "abcaeffchen/sepa-documentor": "~2.0"
    }
}
```

to your `composer.json` and include the Composer autoloader to your script. If you want to use SepaDocumentor with Sephpa, you also need to add the line `"abcaeffchen/sephpa": "~2.0.0"`

### Direct download

[](#direct-download)

You can download it here on GitHub. You need to make it available in all files, where Sephpa is used. You also have to download [mPDF](https://github.com/mpdf/mpdf) and make it available to SepaDocumentor. It integrates with Sephpa, so you don't have to do anything else.

What do the PDF files contain?
------------------------------

[](#what-do-the-pdf-files-contain)

There are two files that can be generated: File Routing Slip and Control Lists.

### File Routing Slip

[](#file-routing-slip)

The File Routing Slip contains a summary of the SEPA file. This contains the username of the creator and ID of the file, the number of transactions and the sum of the transferred money and some more information.

### Control List

[](#control-list)

This contains a detailed list of all transactions that are contained in the SEPA file.

Personalize the PDF files
-------------------------

[](#personalize-the-pdf-files)

You can modify the templates in `src/templates` to change the look of the PDF files. This files also contain the localizations. There are a german and english template included but there is a good chance that the english version is a very bad translations, since I have no clue about finance speak. So I would be happy if someone will check this and send me a correct version :)

How to use
----------

[](#how-to-use)

### With Sephpa

[](#with-sephpa)

Just use Sephpa as usual. When you call download or store, set the `addDocumentation` flag. If you want to download a file, you have to download a zip file that contains the xml file(s) and the documentation files as PDF files.

### With other SEPA libraries

[](#with-other-sepa-libraries)

#### Overview

[](#overview)

There are four functions you can use:

- `FileRoutingSlip::createText($template, $data)`: Inserts the $data array into the template. `$template` can be a path to a template or the name of a default template, and it can have any format.
- `FileRoutingSlip::createPDF($template, $data)`: The same as `createText()`, but the template needs to be in HTML format.
- `ControlList::createText($template, $data, $transactions)`: Inserts the $data array into the template and repeats the transaction block as often as needed, each filled with the values from one of the arrays in `$transactions``$template` can be a path to a template or the name of a default template, and it can have any format.
- `ControlList::createPDF($template, $data, $transactions)`: The same as `createText()`, but the template needs to be in HTML format.

#### Templates

[](#templates)

Templates can have any format. You can use

- placeholders of the form `{{KEYWORD}}`, where `KEYWORD` is a string mating `[a-zA-Z0-9_-]+`.
- conditionals
- `{{ifdef KEYWORD}} BODY {{endif KEYWORD}}`: `BODY` is only printed if `KEYWORD` is set. `BODY`can contain placeholders and other conditionals as long as the nested conditionals use other keywords.
- `{{ifndef KEYWORD}} BODY {{endif KEYWORD}}`: `BODY` is only printed if `KEYWORD` is *not* set. `BODY` can also contain placeholders and other conditionals as long as the nested conditionals use other keywords.
- `{{TRANSACTION!}} BLOCK {{/TRANSACTION!}}`: This is a spacial command block only allowed for control lists. `BLOCK` can contain any other placeholders or conditionals. This block will be repeated and interpreted for each transaction. Every unused placeholder will be removed from the output.

#### Inputs

[](#inputs)

- `$data` is a key =&gt; value array, where keys are the placeholders without the braces.
- `$transactions` is an array of key =&gt; value arrays, one for each transaction.

Not every placeholder needs to be present in the input. Keys without a corresponding placeholder will be ignored.

License
-------

[](#license)

Licensed under the LGPL v3.0 License.

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance41

Moderate activity, may be stable

Popularity39

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 97.1% 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

Every ~1316 days

Total

3

Last Release

483d ago

Major Versions

1.0.0 → 2.0.02020-04-13

2.0.0 → 3.0.02025-01-20

PHP version history (3 changes)1.0.0PHP &gt;=5.6.0

2.0.0PHP &gt;=7.0

3.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/89ca3833853fb413d7aec22e8933b3fe5d9d65398345e3104912c99147e35dd8?d=identicon)[AbcAeffchen](/maintainers/AbcAeffchen)

---

Top Contributors

[![AbcAeffchen](https://avatars.githubusercontent.com/u/5396140?v=4)](https://github.com/AbcAeffchen "AbcAeffchen (34 commits)")[![Rud5G](https://avatars.githubusercontent.com/u/27158?v=4)](https://github.com/Rud5G "Rud5G (1 commits)")

---

Tags

pdfphpsepaxmlfilessepafinanceBankingcontrol listfile routing slip

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/abcaeffchen-sepa-documentor/health.svg)

```
[![Health](https://phpackages.com/badges/abcaeffchen-sepa-documentor/health.svg)](https://phpackages.com/packages/abcaeffchen-sepa-documentor)
```

###  Alternatives

[abcaeffchen/sephpa

Generates SEPA files for credit transfers (pain.001.001.03, pain.001.002.03, pain.001.003.03, pain.001.001.09) and direct debit (pain.008.001.02, pain.008.002.02, pain.008.003.02, pain.008.001.08)

711.7M](/packages/abcaeffchen-sephpa)[digitick/sepa-xml

Creates Single Euro Payments Area (SEPA) XML files for the Direct Debit and Credit Transfer operations.

2836.0M12](/packages/digitick-sepa-xml)[dmitrirussu/php-sepa-xml-generator

Creates an XML file for a Single Euro Payments Area (SEPA) Direct Debit Payment.

5644.0k](/packages/dmitrirussu-php-sepa-xml-generator)[perryfaro/sepa

Creates an XML file for a Single Euro Payments Area (SEPA) Credit Transfer.

1148.7k](/packages/perryfaro-sepa)

PHPackages © 2026

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