- Updated SepaUtilities to 1.3.3
- changed: renamed property key
dbtrPstlAdr
topstlAdr
for simplicity. The old key still works for backward compatibility, but is deprecated from now on. - changed/fixed: There was a documentation/consistency issue about some optional keys in direct
debit files, namely:
orgnlCdtrSchmeId_Nm
->orgnlCdtrSchmeId_nm
orgnlCdtrSchmeId_Id
->orgnlCdtrSchmeId_id
Now the code matches the documentation. This is why this change is not considered breaking any existing code and rather fix it. Another documentation issue effectsorgnlDbtrAgt
. In pain.008.001.02 this cannot be used, but it was checked and was mentioned in the documentation. This should not be confused with 008.001.02.austrian.003 whereorgnlDbtrAgt
can be use. In pain.008.001.02orgnlDbtrAgt_bic
is a valid keyword that was previously not documented.
pstlAdr
is now supported for all credit transfer and directed debit versions on both the debtor and the creditor.- Updated SepaUtilities to 1.3.2.
This is a new major release. It comes with many new features and changes. This also effects the interface (highlighted with bold text). The changes are as minimal as possible to make it as easy as possible to migrate to the new version, but still old code will not work with this version. To be clear: You should migrate to the new version, since version 1 is no longer supported.
- new: support for PHP 7.2, 7.3, 7.4, 8.0.
- new: support for pain.001.001.03 and pain.008.001.02
Notice that this implementation fits the new german standard that is valid from November 2016. It is said that this is compatible with the formats with the same name from 2009 that is used in many other countries but germany. But since it has fewer restrictions than the file format from 2009, you can choose witch one you need via the SepaUtilities constantsSEPA_PAIN_001_001_03
for the old version andSEPA_PAIN_001_001_03_GBIC
for the new german version of SEPA credit transfer files (respectivelySEPA_PAIN_001_001_03
andSEPA_PAIN_001_001_03_GBIC
for direct debit files). - new: support for pain.008.001.02.austrian.003
- new: an autoloader file that can be used out of the box if you don't want to use composer.
- new: SephpaMultiFile class to easier handle multiple Sephpa files.
- new: all store/download functions have now the option to store documentation files as PDF. To
use this you have to also install the package
SepaDocumentor
. See the readme for an example.
It also supports to download multiple files as a single zip file. - new:
orgId > BICOrBEI
andorgId > Othr > Id
are supported on the file level. This is needed in some countries.
It is highly recommended not to use it unless your bank requires this, and you know what you are doing. - new:
InitgPtyId
is supported on the file level. This is also needed in some countries.
It is highly recommended not to use it unless your bank requires this, and you know what you are doing. - new:
Ctry
andAdrLine
is supported in credit transfer files to specify debtor address. To make this more compact, both can be handed over an array with the keysctry
and/oradrLine
to the optiondbtrPstlAdr
. Have a look in the documentation for details. - fixed: invalid xml file if checkAndSanitize is turned off and
AmdmntInd
is not provided (issue #6) - fixed: some minor bugs no one seems to have noticed yet.
- fixed: There was a typo in the parameter
ultmtDbtr
(wasultmatDebtr
before). Make sure to adjust your code if you used this parameter. - changed: updated SepaUtilities to ~1.3.0
- changed: made generateXml private. This should not break any code, since no one should be using
- changed: corrected some doc comments this function directly. It was only public to directly access the generated xml for testing.
- changed: renamed
storeSepaFile()
tostore()
anddownloadSepaFile()
todownload()
. - changed: removed the creation date parameter from
storeSepaFile()
anddownloadSepaFile()
. - changed: the file name provided to
storeSepaFile()
anddownloadSepaFile()
should no longer contain a file ending like.xml
. This should not break any code since it was recommended not to use this. It was just for easier testing. - changed: Sephpa constructor now throws a SephpaInvalidInput exception if the input was invalid and couldn't be sanitized.
- dependency: For multi file downloads you need
libzip
. - dev: improved testing of SEPA files and added a ton of tests.
- dev: updated PHPUnit to v8 and v9 depending on PHP version.
- updated SepaUtilities to 1.1.0
- changed licence to GNU LGPL v3.0
- fixed a bug that results in invalid sepa file, if BIC is not provided for credit transfer (pain.001.003.03)
- bugfix: removed the
require
in Sephpa.php. The directory linked there does not exist. - changed default file extension for SEPA files from xsd to xml. As everyone should name the files in a useful way, the default value will be removed in the future.
- bugfix: refactoring caused a naming problem in sepa files
- added unit tests which compare the outputs to bank-validated files
- updated SepaUtilities: Sephpa 1.2.0 throws an exception if you entering a purpose (
purp
) or a category purpose (ctgypurp
) whilecheckAndSanitize
is set to true.
- Sephpa is now available via composer
- Sephpa is now splitted up into
SephpaCreditTransfer
andSephpaDirectDebit
- SepaUtilities is now a project on its own
- added namespaces
- changed the directory names
- added
$check
parameter to Sephpa constructor. It defaults to true, so Sephpa will check and sanitize all inputs its self. - added
downloadSepaFile()
andstoreSepaFile()
- moved the
SEPA_PAIN_*
constants into the Sephpa class. Call them now asSephpa::SEPA_PAIN_
. - added support for alternative language specific character replacement. Use the
SepaUtilities::FLAG_ALT_REPLACEMENT_*
constants. - added an autoloader to load required files dynamic.
- added patterns to SepaUtilities that can be used in HTML5 pattern attribute
added an autoloader to load required files dynamic.added patterns to SepaUtilities that can be used in HTML5 pattern attribute- added checkAndSanitize function to SepaUtilities
- added 'initgpty', 'mndtid', 'orgnlmndtid', 'orgnlCdtrSchmeId_nm', 'orgnlCdtrSchmeId_id', 'orgnlDbtrAcct_iban' to the fields that can be checked
- added 'orgnlCdtrSchmeId_nm' to the fields that can be sanitized
- fixed: a default timezone was added, so DateTime will work without timezone specified in the server settings
- updated readme + example.php
- Fixed some bugs in SepaUtilities
- Renamed the project to Sephpa
- Renamed SepaXmlFile.php to Sephpa.php
- runs on PHP 5.3, 5.4, 5.5 and 5.6
- Corrected many documentation strings
- added tutorial to the readme file
- added Exceptions to handle invalid input. Sephpa will not check for every invalid input, e.g. invalid iban, but for invalid combinations of flags and missing required inputs.
- added a new class SepaUtilities. This class contains helpful methods to validate and/or sanitize inputs
- added support for credit transfer pain.001.003.03
- added support for direct debit pain.008.003.02
- changed: The Sephpa class will not remove umlauts anymore. Please use the SepaUtilities to sanitize the input before handing it to Sephpa
- Bug fixed: CtgyPurp tag (Category Purpose) was written with a lower case 'c'.
- changed file encoding to utf-8
- Bug fixed: remittance information was not added to direct debit files
- First stable release
- supports SEPA credit transfer (pain.001.002.03)
- supports SEPA direct debit (pain.008.002.02)