python-sepaxml
                                
                                 python-sepaxml copied to clipboard
                                
                                    python-sepaxml copied to clipboard
                            
                            
                            
                        SEPA Direct Debit XML generation in python
SEPA XML Generator
.. image:: https://travis-ci.org/raphaelm/python-sepaxml.svg?branch=master :target: https://travis-ci.org/raphaelm/python-sepaxml
.. image:: https://codecov.io/gh/raphaelm/python-sepaxml/branch/master/graph/badge.svg :target: https://codecov.io/gh/raphaelm/python-sepaxml
.. image:: http://img.shields.io/pypi/v/sepaxml.svg :target: https://pypi.python.org/pypi/sepaxml
This is a python implementation to generate SEPA XML files.
Limitations
Supported standards:
- SEPA PAIN.001.001.03
- SEPA PAIN.001.003.03
- SEPA PAIN.008.001.02
- SEPA PAIN.008.002.02
- SEPA PAIN.008.003.02
Usage
Direct debit """"""""""""
Example:
.. code:: python
from sepaxml import SepaDD
import datetime, uuid
config = {
    "name": "Test von Testenstein",
    "IBAN": "NL50BANK1234567890",
    "BIC": "BANKNL2A",
    "batch": True,
    "creditor_id": "DE26ZZZ00000000000",  # supplied by your bank or financial authority
    "currency": "EUR",  # ISO 4217
    # "instrument": "B2B"  # - default is CORE (B2C)
}
sepa = SepaDD(config, schema="pain.008.001.02", clean=True)
payment = {
    "name": "Test von Testenstein",
    "IBAN": "NL50BANK1234567890",
    "BIC": "BANKNL2A",
    "amount": 5000,  # in cents
    "type": "RCUR",  # FRST,RCUR,OOFF,FNAL
    "collection_date": datetime.date.today(),
    "mandate_id": "1234",
    "mandate_date": datetime.date.today(),
    "description": "Test transaction",
    # "endtoend_id": str(uuid.uuid1())  # autogenerated if obmitted
}
sepa.add_payment(payment)
print(sepa.export(validate=True))
Credit transfer """""""""""""""
Example:
.. code:: python
from sepaxml import SepaTransfer
import datetime, uuid
config = {
    "name": "Test von Testenstein",
    "IBAN": "NL50BANK1234567890",
    "BIC": "BANKNL2A",
    "batch": True,
    # For non-SEPA transfers, set "domestic" to True, necessary e.g. for CH/LI
    "currency": "EUR",  # ISO 4217
}
sepa = SepaTransfer(config, clean=True)
payment = {
    "name": "Test von Testenstein",
    "IBAN": "NL50BANK1234567890",
    "BIC": "BANKNL2A",
    "amount": 5000,  # in cents
    "execution_date": datetime.date.today() + datetime.timedelta(days=2),
    "description": "Test transaction",
    # "endtoend_id": str(uuid.uuid1())  # optional
}
sepa.add_payment(payment)
print(sepa.export(validate=True))
Development
To run the included tests::
pip install -r requirements_dev.txt
py.test tests
To automatically sort your Imports as required by CI::
pip install isort
isort -rc .
Credits and License
Maintainer: Raphael Michel [email protected]
This basically started as a properly packaged, python 3 tested version
of the PySepaDD_ implementation that was released by The Congressus under the MIT license.
Thanks for your work!
License: MIT
.. _PySepaDD: https://github.com/congressus/PySepaDD