pschroee / php-sepa
PHP class to create German SEPA files (XML) for credit transfer and direct debit.
Installs: 26
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 4
pkg:composer/pschroee/php-sepa
This package is auto-updated.
Last update: 2026-01-09 17:29:37 UTC
README
PHP class to create German SEPA files (XML) for credit transfer and direct debit.
The versions of the standard followed are:
- pain.001.001.03_GBIC_3.xsd for credit transfers
- pain.008.001.02_GBIC_3.xsd for direct debits
Always verify the generated files at your bank before using them in production!
License: BSD 2-Clause License
Example of using SEPA Credit Transfer
$validatorFactory = new \pschroee\PhpSepa\Sepa\Validator\Factory(); $sepa = new \pschroee\PhpSepa\Sepa\CreditTransfer($validatorFactory); $sepa->setInitiator('Max Mustermann'); // Einreicher //$sepa->setId($msgId); // Nachrichtenreferenz $payment = new \pschroee\PhpSepa\Sepa\Payment($validatorFactory); $payment->setPriority('HIGH'); // Prioritaet NORM oder HIGH $payment->setAccount('Max Mustermann', 'DE02370501980001802057', 'COLSDE33'); // Auftraggaber //$payment->setAccountCurrency($currency); // Kontowaehrung //$payment->disableBatchBooking(); // deaktiviere Sammelbuchung //$payment->setDate($date); // Faelligkeitsdatum $transaction = new \pschroee\PhpSepa\Sepa\Transaction($validatorFactory); $transaction->setEndToEndId('R2017742-1') // Transaktions-ID (End-to-End) ->setName('Karl Kümmel') // Name des Zahlungspflichtigen ->setIban('DE02300209000106531065') // IBAN des Zahlungspflichtigen ->setBic('CMCIDEDD') // BIC des Zahlungspflichtigen ->setAmount(123.45) // abzubuchender Betrag ->setPurpose('SALA') // (optional) Zahlungstyp ->setReference('Rechnung R2017742 vom 17.06.2017'); // Verwendungszweck (eine Zeile, max. 140 Zeichen)) $payment->addTransaction($transaction); $transaction = new \pschroee\PhpSepa\Sepa\Transaction($validatorFactory); $transaction->setEndToEndId('R2017742-1') ->setName('Doris Dose') ->setIban('DE02500105170137075030') ->setAmount(234.56) ->setPurpose('SALA') ->setReference('Kinderfahrrad'); $payment->addTransaction($transaction); $sepa->addPayment($payment); $xml = new \pschroee\PhpSepa\Sepa\Xml($sepa); $xml->download('sepa.xml');
Example of using SEPA Direct Debit
$validatorFactory = new \pschroee\PhpSepa\Sepa\Validator\Factory(); $sepa = new \pschroee\PhpSepa\Sepa\DirectDebit($validatorFactory); $sepa->setInitiator('Max Mustermann'); // Einreicher //$sepa->setId($msgId); // Nachrichtenreferenz $payment = new \pschroee\PhpSepa\Sepa\Payment($validatorFactory); //$payment->setScope('CORE'); // Lastschriftart (CORE oder B2B) $payment->setAccount('Max Mustermann', 'DE02370501980001802057', 'COLSDE33'); // Auftraggaber //$payment->setAccountCurrency($currency); // Kontowaehrung $payment->setCreditorId('DE98ZZZ09999999999'); // Glaeubigeridentifikationsnummer //$payment->disableBatchBooking(); // deaktiviere Sammelbuchung //$payment->setDate($date); // Gewuenschter Ausfuehrungstermin $transaction = new \pschroee\PhpSepa\Sepa\Transaction($validatorFactory); $transaction->setEndToEndId('R2017742-1') // Transaktions-ID (End-to-End) ->setName('Karl Kümmel') // Name des Zahlungspflichtigen ->setIban('DE02300209000106531065') // IBAN des Zahlungspflichtigen ->setBic('CMCIDEDD') // BIC des Zahlungspflichtigen ->setAmount(123.45) // abzubuchender Betrag ->setPurpose('SALA') // (optional) Zahlungstyp ->setMandateId('M20170704-200') // Mandatsreferenz ->setMandateDate('2017-07-04') // Mandatsdatum ->setReference('Rechnung R2017742 vom 17.06.2017'); // Verwendungszweck (eine Zeile, max. 140 Zeichen)) $payment->addTransaction($transaction); $sepa->addPayment($payment); $xml = new \pschroee\PhpSepa\Sepa\Xml($sepa); $xml->download('sepa.xml');