There is no OSGi interface for a PaymentExport


There is an interface to export payments in org.adempiere.base/src/org/compiere/util/ It is not supported via OSGi and I would like to create a way to implement a kind of "IPaymentExportFactory" in an OSGi plugin.

I am working on an Online Banking Interface to support the new SEPA online transactions. While doing that I saw that the interface for PaymentProcessors does only allow one Payment at a time. With SEPA (and the older german DTAUS format) you can send many payment transactions in one turn. This saves bank charges, is faster and depending on your bank security mechanism you have to authorize every transaction with a PIN and TAN.

So there is a need for an interface to send many payments in one turn to your bank. After seeing through the code It seems the best way if I use the already used PaymentExport interface. It only lacks of OSGi plugin support. The PaymentProcessor interface is very far away from working with many transactions and it is an abstract base class that deals with HTTP connections. The HBCI online banking interface I need to implement does work with a whole new library and does not need anything of the PaymentProcessor stuff. I would like to use a simpler interface with just one method like PaymentExport already is.

What do you think?




Carlos Ruiz
October 27, 2017, 8:58 AM

Hi ,

as a fragment - the test I did I set the host plugin to org.adempiere.base - you say yours is in org.adempiere.ui.zk, that can be the cause about not being able to load it.
This option is intended for backward compatibility, so the old classes must keep working, you don't need to change them, or add new methods.

If you change your class to use/add the new way, then do I think is better you migrate to the plugin approach (not a fragment). You can see the attachment de.bozem.sepa_ModifiedNewApproach.tbz for an example about how to implement it.

Michael Powacht
October 27, 2017, 9:14 AM

Hi Carlos, adding to above, I just realized I wouldn't have had to implement these methods as they were defined as Java8-"default" methods in interface PaymentExport.
So the problem must lie somewhere else.

Michael Powacht
October 27, 2017, 9:15 AM

Thanks Carlos, I'll check that out if it's possible via host plug-in org.adempiere.base.

Michael Powacht
October 31, 2017, 12:18 AM

Hi Carlos,
I had to rebuild the fragment using Java Execution environment 1.8 instead of 1.7 and it seems to work as expected.

Carlos Ruiz
August 3, 2018, 9:09 AM

Committed a fix here
the previous commit made the Document No field read-only - disabling the feature to renumber checks when printing.


Markus Bozem


Thomas Bayen



Tested By



Fix versions