bolovsky / sepa-xml
Creates an XML file for a Single Euro Payments Area (SEPA) Credit Transfer. Altered the original for compatibility with portuguese standards
Requires
- php: >=5.3.2
This package is not auto-updated.
Last update: 2024-12-17 02:54:08 UTC
README
SEPA file generator for PHP.
Creates an XML file for a Single Euro Payments Area (SEPA) Credit Transfer and Direct Debit.
License: GNU Lesser General Public License v3.0
The version of the standard followed is: pain.001.001.03 and pain.008.001.02
Institutions and associations that should accept this format:
- Banco de Portugal
However, always verify generated files with your bank before using!
##Installation ###Composer This library is available in packagist.org, you can add it to your project via Composer.
In the "require" section of your composer.json file:
Always up to date (bleeding edge, API not guaranteed stable)
"bolovsky/sepa-xml" : "dev-master"
No namespaces, only bugfixes
"digitick/sepa-xml" : "dev-no_namespace"
##Sample Usage DirectDebit with Factory
//Set the initial information $directDebit = TransferFileFacadeFactory::createDirectDebit('test123', 'Me'); // create a payment, it's possible to create multiple payments, // "firstPayment" is the identifier for the transactions $directDebit->addPaymentInfo('firstPayment', array( 'id' => 'firstPayment', 'creditorName' => 'My Company', 'creditorAccountIBAN' => 'FI1350001540000056', 'creditorAgentBIC' => 'PSSTFRPPMON', 'seqType' => PaymentInformation::S_ONEOFF, 'creditorId' => 'DE21WVM1234567890' )); // Add a Single Transaction to the named payment $directDebit->addTransfer('firstPayment', array( 'amount' => '500', 'debtorIban' => 'FI1350001540000056', 'debtorBic' => 'OKOYFIHH', 'debtorName' => 'Their Company', 'debtorMandate' => 'AB12345', 'debtorMandateSignDate' => '13.10.2012', 'remittanceInformation' => 'Purpose of this direct debit' )); // Retrieve the resulting XML $directDebit->asXML();
##Extended Usage Credit Transfer
// Create the initiating information $groupHeader = new GroupHeader('SEPA File Identifier', 'Your Company Name'); // Some portuguese banks require Fiscal Identification Number as Id $groupHeader->setInitiatingPartyId("123456789"); $sepaFile = new CustomerCreditTransferFile($groupHeader); $transfer = new CustomerCreditTransferInformation( '0.02', // Amount 'FI1350001540000056', //IBAN of creditor 'Their Corp' //Name of Creditor ); $transfer->setBic('OKOYFIHH'); // Set the BIC explicitly $transfer->setRemittanceInformation('Transaction Description'); $sepa_transfer->setCode("SCOR"); // transaction code for this specific transfer, according to annex 5 (ISO codes billing/transfer reasons) $sepa_transfer->setReference("INV20140101A-033"); // reference number to descript this transaction, i.e. an invoice // Create a PaymentInformation the Transfer belongs to $payment = new PaymentInformation( 'Payment Info ID', 'FR1420041010050500013M02606', // IBAN the money is transferred from 'PSSTFRPPMON', // BIC 'My Corp' // Debitor Name ); // It's possible to add multiple Transfers in one Payment $payment->addTransfer($transfer); // It's possible to add multiple payments to one SEPA File $sepaFile->addPaymentInformation($payment); // Attach a dombuilder to the sepaFile to create the XML output $domBuilder = DomBuilderFactory::createDomBuilder($sepaFile); $domBuilder->asXml();