digitick/sepa-xml
Creates Single Euro Payments Area (SEPA) XML files for the Direct Debit and Credit Transfer operations.
3.1.0
6.7M downloads/mo
#2188 most downloaded on Packagist
php-sepa-xml/php-sepa-xml
What this package is like to depend on
Last release 3 months ago
04 May 2026
Release timing varies
gaps range from 3 weeks to 1.8 years
Most releases are documented
notes for 27 of 32 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
32 releases · first in 2013
2 releases in the last 12 months
see the full history below
Release timeline
32 releases · Jul 2013 to May 2026Releases
latest 32-
3.1.004 May 2026Nothing published for this version
-
3.0.011 Nov 2025Release notes
Open source →Version 3.0.0
Please note that there is no major change between 2.x and 3.0. The later was required because the team had to do a BC change in
BaseTransferInformationremoving some elements in #215What's Changed
- Make the UETR element NULL by default. by @BorislavSabev in #219
- HotFix always include the Creditor Agent element by @BorislavSabev in #218
- Hotfix pmnt tp inf on the transaction level by @BorislavSabev in #217
These were done in response to:
#212
#214
#215Full Changelog: 2.3.2...3.0.0
-
2.3.226 Aug 2025Release notes
Open source →What's Changed
- Update docs by @BorislavSabev in #203
- Fix purpose code usage example by @BorislavSabev in #204
- Allow id in $paymentInformation to be a string by @derrabus in #205
- Allow debtorAdrLine in
$transferInformationto be an array by @derrabus in #206
New Contributors
Full Changelog: 2.3.1...2.3.2
-
2.3.120 Aug 2025Release notes
Open source →Fixed
- HotFix ramsey/uuid version constraint definition which was preventing v2.3.0 from installing on platforms with php >= 8.1 as explained in #200
-
2.3.020 Aug 2025Release notes
Open source →Changelog
Fixed
- HotFix ramsey/uuid version constraint definition which was preventing v2.3.0 from installing on platforms with php >= 8.1 as explained in #200
Release notes
Open source →Added
- Added support for
pain.001.001.09,pain.001.001.10,pain.001.001.12 - Added retrofitted support for
pain.001.001.04,pain.001.001.05,pain.001.001.06,pain.001.001.07,pain.001.001.08(Provided as "should work") - Added support for
pain.008.001.09,pain.008.001.10,pain.008.001.11 - Added retrofitted support for
pain.008.001.03,pain.008.001.04,pain.008.001.05,pain.008.001.06,pain.008.001.07,pain.008.001.08(Provided as "should work") - Added
MessageFormatclass that eases checking the exact format version used - Added support for
Purpose Codeto Customer Credit Transfers (CdtTrfTxInf->Purp) when usingpain.001.xxx.nn - Added
Flr(floor) in Customer addresses for DirectDebit & CreditTransfer (standards' version support varies) - Added
StrtNm,BldgNb,PstCdandTwnNmin Customer addresses for CreditTransfer (standards' version support varies) - Added
UETR(UUIDv4) in the PaymentIdentification. The UUID is automatically generated or can be set externally. A getter and a setter are available. - Added
localInstrumentProprietarysupport in SCTs - Added
setCategoryPurposeCode()&getCategoryPurposeCode()to be able to pass the payment category in TransferInformation - Added an
asDom()method in the DomBuilder allowing to get the built DomDocument object for further manipulation - Added a
Sanitizerclass with the capability to replace the default sanitization logic or fully disable it. Check the docs for more info - Added Dependabot support
- Added phpfaker/faker as a dev dependency. We are going to migrate all tests to use Faker data in the future.
Changed
- Changed the default format to
pain.001.001.09for CreditTransfers (waspain.001.002.03) andpain.008.001.09for DirectDebits (waspain.008.002.02) - Changed the way we check which element should exist in what standards' version
- Updated most test cases to run against all supported pain format versions
Fixed
- Fixed XML file placement order for
LocalInstrumentCode - Converted all interfaces using DateTime to use DateTimeInterface
- Switched from using DateTime instances internally to DateTimeImmutable instances
- Fixed PHPUnit config file
- Fixed PHPUnit deprecations
- Small changes in PHPUnit Fixtures
- Updated GitHub actions
-- Run phpstan, phpunit on PR against master
-- Prepare to automatically run
rector, check for changes and commit them - Updated all dependencies to their latest versions -- Updated rector/rector and phpstan/phpstan to version 2.x -- Updated phpunit/phpunit to version 10.x
- Ran rector/rector manually and integrated the changes
- Fixed all PHPStan errors up to level 4
Special thanks to our new contributors @mkszepp, @larsiinger & @fidelodz for their submissions!
-
2.2.116 May 2024Release notes
Open source →Closed issues:
- Add apostrophe to StringHelper.php as per the Extended Character Set #162
Release notes
Open source →Closed issues:
- Add apostrophe to StringHelper.php as per the Extended Character Set #162
-
2.2.012 Jul 2022Nothing published for this version
-
2.1.111 Mar 2022Nothing published for this version
-
2.1.020 May 2021Nothing published for this version
-
2.0.106 Jan 2021Nothing published for this version
-
2.0.002 Sep 2020Release notes
Open source →Closed issues:
- PaymentInformation::getLocalInstrumentCode() must be of the type int or null, string returned #105
Release notes
Open source →Closed issues:
- PaymentInformation::getLocalInstrumentCode() must be of the type int or null, string returned #105
-
1.6.213 Feb 2020 -
1.6.104 Nov 2019Release notes
Open source →Release notes
Open source → -
1.6.006 Jun 2019 -
1.5.011 Feb 2019 -
1.4.016 Nov 2018Release notes
Open source →Closed issues:
- Amount is always divided by 100 #73
- CreDtTm bad string length #70
- BIC optional #69
- Output is not ISO 20022 XSD comliant #65
- Add pain.008.003.02 support #59
- Make sure <ReqdColltnDt> is a TARGET2 day #58
Merged pull requests:
-
1.3.030 Jan 2018Release notes
Open source →Release notes
Open source → -
1.2.131 Aug 2017 -
1.2.031 Aug 2017Release notes
Open source →Closed issues:
Merged pull requests:
- Allow common slashes in sanitized strings #60 (keltuo)
- Setters for organization id and identification scheme #53 (Jontsa)
- Better headers formatting #51 (caseycs)
- Update README.md #50 (BorislavSabev)
- Update Util\StringHelper - add some more chars #48 (BorislavSabev)
- Update string helper #46 (monofone)
- Directdebit bic optional #45 (monofone)
- Fix #43 #44 (amenk)
- Don't add RemittanceElement when there is no RemittanceInformation #41 (gertvr)
- Update amendments with compliance to SDD Rulebook v9 #39 (jarnovanleeuwen)
Release notes
Open source →Closed issues:
Merged pull requests:
- Allow common slashes in sanitized strings #60 (keltuo)
- Setters for organization id and identification scheme #53 (Jontsa)
- Better headers formatting #51 (caseycs)
- Update README.md #50 (BorislavSabev)
- Update Util\StringHelper - add some more chars #48 (BorislavSabev)
- Update string helper #46 (monofone)
- Directdebit bic optional #45 (monofone)
- Fix #43 #44 (amenk)
- Don't add RemittanceElement when there is no RemittanceInformation #41 (gertvr)
- Update amendments with compliance to SDD Rulebook v9 #39 (jarnovanleeuwen)
-
1.1.401 Jan 2017Release notes
Open source →Closed issues:
- BtchBookg element #36
Merged pull requests:
- Update PaymentInformation.php #38 (andreasschroth)
Release notes
Open source →Closed issues:
- BtchBookg element #36
Merged pull requests:
- Update PaymentInformation.php #38 (andreasschroth)
-
1.1.318 Nov 2016 -
1.1.202 Nov 2016Release notes
Open source →Closed issues:
- No luck getting diaeresis/trema in the XML #30
- CustomerCreditFacade missing from current stable #25
- Actual status? #13
- Referenced XSD version should be updated to 008.003.02 for direct debit #12
Merged pull requests:
Release notes
Open source →Closed issues:
- No luck getting diaeresis/trema in the XML #30
- CustomerCreditFacade missing from current stable #25
- Actual status? #13
- Referenced XSD version should be updated to 008.003.02 for direct debit #12
Merged pull requests:
-
1.1.114 Dec 2015Release notes
Open source →Implemented enhancements:
Fixed bugs:
- Add: Missing CustomerCreditFacade #16 (BenjaminPaap)
Closed issues:
- Refactor Documentation #21
- Missing class CustomerCreditFacade #14
- Excess data in pain.008.001.02 #10
Merged pull requests:
- Install compatible PHPUnit version and use it on Travis CI #24 (xabbuh)
- Tests for all schemas #23 (BenjaminPaap)
- Split the docs into two parts to get a better overview #22 (monofone)
- Updated README with CreditTransfer facade example #19 (monofone)
- Remove PHP7 from allow_failures #17 (soullivaneuh)
Release notes
Open source →Implemented enhancements:
Fixed bugs:
- Add: Missing CustomerCreditFacade #16 (BenjaminPaap)
Closed issues:
- Refactor Documentation #21
- Missing class CustomerCreditFacade #14
- Excess data in pain.008.001.02 #10
Merged pull requests:
- Install compatible PHPUnit version and use it on Travis CI #24 (xabbuh)
- Tests for all schemas #23 (BenjaminPaap)
- Split the docs into two parts to get a better overview #22 (monofone)
- Updated README with CreditTransfer facade example #19 (monofone)
- Remove PHP7 from allow_failures #17 (soullivaneuh)
-
1.1.025 Nov 2015 -
1.0.015 Dec 2014Release notes
Open source →Merged pull requests:
- Fixed: Custom EndToEndId in DirectDebits #6 (BenjaminPaap)
- [TASK] Fixed travis build state #5 (monofone)
- [TASK] Changed the order for creating the timestamp #3 (monofone)
- Allow setting an optional EndToEndId #1 (BenjaminPaap)
Release notes
Open source →Merged pull requests:
- Fixed: Custom EndToEndId in DirectDebits #6 (BenjaminPaap)
- [TASK] Fixed travis build state #5 (monofone)
- [TASK] Changed the order for creating the timestamp #3 (monofone)
- Allow setting an optional EndToEndId #1 (BenjaminPaap)
-
0.10.119 Dec 2013 -
0.10.024 Oct 2013 -
0.9.305 Sep 2013 -
0.9.205 Sep 2013 -
0.9.112 Jul 2013 -
2.0-rc212 Aug 2020 -
2.0-rc119 Jun 2020Release notes
Open source →Closed issues:
- Payment Info CIF/NIF (id) Required #98
- [Question] Schema pain.008.002.02 is inofficial? #91
- Debitor name and end-to-end id not sanitized #90
- Impossible to add PstlAdr in format pain.008.001.02 #88
Merged pull requests:
- Php 7.2 / Phpunit 9 / PSR-4 / Refacto tests #101 (VincentLanglet)
- Add throws tag #100 (VincentLanglet)
- Increase php versions to run tests for #97 (monofone)
Important changes:
- The direct debit transfer amount has been changed from string to int. You must add the amount as integer cent values, otherwise the SEPA export may contain wrong amounts.
Release notes
Open source →Closed issues:
- Payment Info CIF/NIF (id) Required #98
- [Question] Schema pain.008.002.02 is inofficial? #91
- Debitor name and end-to-end id not sanitized #90
- Impossible to add PstlAdr in format pain.008.001.02 #88
Merged pull requests:
- Php 7.2 / Phpunit 9 / PSR-4 / Refacto tests #101 (VincentLanglet)
- Add throws tag #100 (VincentLanglet)
- Increase php versions to run tests for #97 (monofone)
Important changes:
- The direct debit transfer amount has been changed from string to int. You must add the amount as integer cent values, otherwise the SEPA export may contain wrong amounts.