PHPackages                             digitick/sepa-xml - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. digitick/sepa-xml

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

digitick/sepa-xml
=================

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

3.0.0(6mo ago)2836.0M↓20.8%112[1 PRs](https://github.com/php-sepa-xml/php-sepa-xml/pulls)8LGPL-3.0-or-laterPHPPHP &gt;=7.2CI passing

Since Jul 12Pushed 1mo ago21 watchersCompare

[ Source](https://github.com/php-sepa-xml/php-sepa-xml)[ Packagist](https://packagist.org/packages/digitick/sepa-xml)[ RSS](/packages/digitick-sepa-xml/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (34)Used By (8)

php-sepa-xml
============

[](#php-sepa-xml)

[![Build Status](https://github.com/php-sepa-xml/php-sepa-xml/actions/workflows/phpunit.yml/badge.svg)](https://github.com/php-sepa-xml/php-sepa-xml/actions/workflows/phpunit.yml)

SEPA / ISO20022 file generator for PHP.

Creates XML files for the Single Euro Payments Area (SEPA) Credit Transfer and Direct Debit Payments Initiation messages. These SEPA XML messages are a subset of the "ISO20022 Universal financial industry message scheme".

License: GNU Lesser General Public License v3.0

The versions of the [ISO20022 standard](https://www.iso20022.org/) supported are:

- For Credit Transfers:
    - pain.001.001.03
    - pain.001.001.04
    - pain.001.001.05
    - pain.001.001.06
    - pain.001.001.07
    - pain.001.001.08
    - pain.001.001.09 (The minimum version recommended)
    - pain.001.001.11
    - pain.001.001.12
    - Credit Transfer [Variants](https://www.iso20022.org/catalogue-messages/additional-content-messages/variants):
        - pain.001.002.03 (STPCreditTransferInitiationV03)
        - pain.001.003.03 (EUSTPCreditTransferInitiationV03)
- For Direct Debits:
    - pain.008.001.02
    - pain.008.001.03
    - pain.008.001.04
    - pain.008.001.05
    - pain.008.001.06
    - pain.008.001.07
    - pain.008.001.08 (The minimum version recommended)
    - pain.008.001.10
    - pain.008.001.11
    - Direct Debit [Variants](https://www.iso20022.org/catalogue-messages/additional-content-messages/variants):
        - pain.008.002.02
        - pain.008.003.02

We do not claim 100% support of those formats but the files produced by this library are validated against the official XSDs and they pass the validation. I you're missing a field or two please submit a PR. The library accepts a custom ISO20022 format so in theory you can use any of the versions in between the ones on the officially supported list.

Institutions that should accept these formats:

- Any bank that is part of the SEPA network and works with the ISO20022 standard

Institutions that are confirmed to accept these formats:

- Deutsche Kreditwirtschaft
- Fédération bancaire française
- ING (tested on direct credit, use *pain.001.001.03*)
- Commerzbank (tested on Credit Transfer, use *pain.001.001.03*)
- Spain: CaixaBank
- Spain: SantanderBank
- Netherlands: direct-debit (pain.008.001.02) at RABO-bank (thanks @rodekker)
- Austria: Raiffeisenbank direct-debit (pain.008.001.08) 2025-10-29
- Austria: Volksbank direct-debit (pain.008.001.08) 2025-10-29

Always verify generated files with your bank before using in production! If you encounter an institution that does accept this library's generated files please notify us to add it to the list or send a PR!

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

[](#installation)

### Composer

[](#composer)

This library is available in [packagist.org as digitick/sepa-xml](https://packagist.org/packages/digitick/sepa-xml), you can add it to your project via Composer:

```
composer require digitick/sepa-xml

```

Please note that the library still carries it's original name (namely `digitick/sepa-xml`) as we don't want to confuse people. The latest versions are developed by the [php-sepa-xml community](https://github.com/php-sepa-xml) and the packagist alias (`digitick/sepa-xml`) points here. In the near future we may switch to `php-sepa-xml/php-sepa-xml` as that is already the official package name.

Documentation
-------------

[](#documentation)

Check out our docs at:

- [handling Direct Debits](doc/direct_debit.md)
- [handling Credit Transfers](doc/credit_transfer.md)
- [handling string sanitization](doc/string_sanitization.md)

### ISO20022 Message Names

[](#iso20022-message-names)

ISO20022 messages follow a specific naming convention which can be denoted to the following pattern: `MessageType.MessageSubType.MessageVariant.MessageVersion`

For e.g. pain.001.001.12 should be decoded as:

- MessageType: 'PAIN' - Payments Initiation
- MessageSubType: '001' - CustomerCreditTransferInitiation
- MessageVariant: '001'
- MessageVersion: '12'

Development
-----------

[](#development)

Want to contribute? Please check out our [Dev docs](doc/dev_setup.md)

Any Questions?
--------------

[](#any-questions)

Feel free to open an issue. We will try to reply to the best of our knowledge.

External Resources
------------------

[](#external-resources)

- [Official ISO20022 Website](https://www.iso20022.org/)
- [ISO20022 Message Catalog](https://www.iso20022.org/full_catalogue.page)
- [ISO 20022 in XMLdation's wiki](https://wiki.xmldation.com/General_Information/ISO_20022)
- [InstdAmt vs. EqvtAmt](https://wiki.xmldation.com/General_Information/ISO_20022/Difference_between_InstdAmt_and_EqvtAmt)
- [CreditorIdentifier explanation](http://www.sepaforcorporates.com/sepa-direct-debits/sepa-creditor-identifier/)
- [SEPA Externded Character Set reference](http://www.sepahungary.hu/uploads/files/EPC217-08%20Best%20Practices%20-SEPA%20Requirements%20for%20Character%20Set.pdf)
- [ECB SEPA gateway page](http://www.ecb.europa.eu/paym/retpaym/html/index.en.html)
- [SEPA for Corporates Blog](http://www.sepaforcorporates.com/)

###  Health Score

67

—

FairBetter than 100% of packages

Maintenance79

Regular maintenance activity

Popularity65

Solid adoption and visibility

Community44

Growing community involvement

Maturity69

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

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 ~150 days

Recently: every ~136 days

Total

31

Last Release

189d ago

Major Versions

0.10.1 → 1.0.02014-12-15

1.6.2 → 2.0-rc12020-06-19

2.3.2 → 3.0.02025-11-11

PHP version history (2 changes)0.9.1PHP &gt;=5.3.2

2.0-rc1PHP &gt;=7.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/4a0c15298bde9fac0fb1224859b69b1be1d17f747fc03d2b435e2028ea14f0d3?d=identicon)[monofone](/maintainers/monofone)

![](https://avatars.githubusercontent.com/u/396685?v=4)[Benjamin Paap](/maintainers/BenjaminPaap)[@BenjaminPaap](https://github.com/BenjaminPaap)

![](https://www.gravatar.com/avatar/7aca1429033f54a4fb64668cabe7e9ed94f2ea5cb5f3b18613202e0813de575c?d=identicon)[BorislavSabev](/maintainers/BorislavSabev)

![](https://avatars.githubusercontent.com/u/842206?v=4)[Digitick](/maintainers/digitick)[@digitick](https://github.com/digitick)

---

Top Contributors

[![BorislavSabev](https://avatars.githubusercontent.com/u/1708306?v=4)](https://github.com/BorislavSabev "BorislavSabev (94 commits)")[![ianare](https://avatars.githubusercontent.com/u/697242?v=4)](https://github.com/ianare "ianare (61 commits)")[![monofone](https://avatars.githubusercontent.com/u/373163?v=4)](https://github.com/monofone "monofone (54 commits)")[![BenjaminPaap](https://avatars.githubusercontent.com/u/396685?v=4)](https://github.com/BenjaminPaap "BenjaminPaap (21 commits)")[![VincentLanglet](https://avatars.githubusercontent.com/u/9052536?v=4)](https://github.com/VincentLanglet "VincentLanglet (13 commits)")[![MTijn](https://avatars.githubusercontent.com/u/3725681?v=4)](https://github.com/MTijn "MTijn (11 commits)")[![eusonlito](https://avatars.githubusercontent.com/u/644551?v=4)](https://github.com/eusonlito "eusonlito (9 commits)")[![Mauro1442](https://avatars.githubusercontent.com/u/95709453?v=4)](https://github.com/Mauro1442 "Mauro1442 (8 commits)")[![stollr](https://avatars.githubusercontent.com/u/1118790?v=4)](https://github.com/stollr "stollr (7 commits)")[![allphat](https://avatars.githubusercontent.com/u/1798897?v=4)](https://github.com/allphat "allphat (7 commits)")[![ch3ric](https://avatars.githubusercontent.com/u/858068?v=4)](https://github.com/ch3ric "ch3ric (4 commits)")[![xabbuh](https://avatars.githubusercontent.com/u/1957048?v=4)](https://github.com/xabbuh "xabbuh (3 commits)")[![beinbm](https://avatars.githubusercontent.com/u/995872?v=4)](https://github.com/beinbm "beinbm (3 commits)")[![denis-sokolov](https://avatars.githubusercontent.com/u/113721?v=4)](https://github.com/denis-sokolov "denis-sokolov (3 commits)")[![mabjavaid](https://avatars.githubusercontent.com/u/62252347?v=4)](https://github.com/mabjavaid "mabjavaid (3 commits)")[![markusramsak](https://avatars.githubusercontent.com/u/6324059?v=4)](https://github.com/markusramsak "markusramsak (3 commits)")[![persteinhorst](https://avatars.githubusercontent.com/u/6418121?v=4)](https://github.com/persteinhorst "persteinhorst (3 commits)")[![vaites](https://avatars.githubusercontent.com/u/478660?v=4)](https://github.com/vaites "vaites (3 commits)")[![jjk-jacky](https://avatars.githubusercontent.com/u/1540519?v=4)](https://github.com/jjk-jacky "jjk-jacky (2 commits)")[![momobulle](https://avatars.githubusercontent.com/u/1569428?v=4)](https://github.com/momobulle "momobulle (2 commits)")

---

Tags

xmlsepaBanking

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Type Coverage Yes

### Embed Badge

![Health badge](/badges/digitick-sepa-xml/health.svg)

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

###  Alternatives

[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[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)[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)
