Mapping ebInterface 4.x/5.x/6.x from and to UBL 2.1.
Author: Philip Helger
The reason why this project is not in the ebinterface-mappings project is the totally different software stack used and the requirement of this project to be published on Maven central.
To build the project you need at least Java 17 (or newer) and Apache Maven 3.x. Build is quite easy: call mvn clean install in this directory and the final result will be in the target directory.
Additionally Eclipse project files for the latest Eclipse version are contained.
- Versions prior to v6 use Java 11 as the baseline.
- Versions prior to v5 use Java 1.8 as the baseline.
Add the following to your pom.xml to use this artifact, replacing x.y.z with the real version:
<dependency>
<groupId>at.austriapro</groupId>
<artifactId>ebinterface-ubl-mapping</artifactId>
<version>x.y.z</version>
</dependency>Note: prior to v4.5.0 the Maven group ID was com.helger.
v6.1.0 - 2025-11-17
- Updated to ph-commons 12.1.0
- Using JSpecify annotations
v6.0.0 - 2025-08-29
- Requires Java 17 as the minimum version
- Updated to ph-commons 12.0.0
- Removed all deprecated methods marked for removal
v5.3.5 - 2025-08-29
- Fixed the UBL to ebInterface maaping of
InvoiceRecipientsBillerID(regression from v5.3.2)
v5.3.4 - 2025-07-20
- Applying the
isPrepaidAmountSupportedwhen converting UBL Credit Notes as well - Converting the rounding amount and the prepaid amount to ebInterface (5.0+) as well
v5.3.3 - 2025-07-20
- When converting to UBL, the
LegalMonetaryTotal/TaxExclusiveAmountnow includes the sums of allowances and charges - Extended
IToEbinterfaceSettingswithisPrepaidAmountSupported - When converting to UBL, the
LegalMonetaryTotalelementsPayableRoundingAmountandPrepaidAmount(for ebInterface 5.0 onwards only)
v5.3.2 - 2025-06-27
- Removed Peppol BIS v2 mapping of
InvoiceRecipientsBillerID - Added the exception fixes of 5.3.1 also to CreditNote mapping
v5.3.1 - 2025-06-26
- Fixed potential exception, if an ebInterface has no line extension amount
v5.3.0 - 2025-05-04
- Requires ph-ebinterface 7.1.1
- Fixed the mapping of ebInterface
FurtherIdentificationfromDocumentReferencetoParty/PartyIdentification - Updated Invoice Type Codes according to EN 16931 validation rules 1.3.13
- Renamed class
AbstractConvertertoAbstractEbInterfaceUBLConverter
v5.2.7 - 2024-10-17
- Made sure the UBL invoice line
Item/Nameelement has higher precedence thanItem/Description
v5.2.6 - 2024-10-11
- Added mapping the ebInterface
Delivery/Descriptionelement to UBLDelivery/DeliveryTerms[0]/SpecialTerms[0]
v5.2.5 - 2024-10-10
- The UBL
OrderLineReferenceelement is only created if the mandatoryLineIDelement is present
v5.2.4 - 2024-09-05
- Payment Conditions are also created in ebInterface 4.2 onwards, if any other field then just the DueDate is set
v5.2.3 - 2024-07-30
- Fixed BIC mapping for output format ebInterface 4.0
- Improved empty BIC handling when creating ebInterface
v5.2.2 - 2024-05-02
- Avoid overwriting
PaymentConditions/DueDatewithnullwhen it is already set - Re-added using top-level
Invoice/DueDatewhen creating ebInterface document
v5.2.1 - 2024-04-15
- Fixed the SEPA Direct Debit mapping from UBL to ebInterface
- Fixed the SEPA Direct Debit mapping from ebInterface to UBL
- Removed the
schemeIDandschemeAgencyattributes fromTaxSchemeandTaxCategory - Fixed payment reference mapping (
PaymentIDpreferred overInstructionID). See #3
v5.2.0 - 2024-04-02
- Ensured Java 21 compatibility
- Updated to ph-ubl 9.x
v5.1.4 - 2024-02-26
- Avoid empty
RelatedDocument/Commentelements in ebInterface 4.1+ - Added support for invoice type code
218as aFinalSettlement
v5.1.3 - 2023-11-14
- ebInterface 5.0+
Discount/Commentis converted to a UBLPaymentTerms/Noteelement
v5.1.2 - 2023-11-09
- Fixed the mapping of ebInterface DocumentType
CreditNoteto UBL Invoice Type Code381
v5.1.1 - 2023-09-26
- Fixed the
DocumentCurrencyCode/@listIDattribute for all ebInterface versions != 4.2 - Avoid creating empty UBL elements
v5.1.0 - 2023-04-30
- Updated to ph-ubl 8.x
v5.0.0 - 2023-03-02
- Using Java 11 as the baseline
- Updated to ph-commons 11
- Using JAXB 4.0 as the baseline
v4.8.3 - 2022-10-12
- Added mapping of
BelowTheLineItemin ebInterface 6.1 as done in 4.3 and previously - Extracted shared customization base interfaces
v4.8.2 - 2022-08-11
- Updated to peppol-commons 8.7.6
- Added support for ebInterface 6.1 from and to UBL
v4.8.1 - 2022-04-12
- Added specific support for
InvoiceTypeCodemapping of326,386and389from UBL to ebInterface
v4.8.0 - 2021-05-03
- Updated to ph-commons 10.1
v4.7.0 - 2021-03-22
- Updated to ph-commons 10
v4.6.3 - 2020-10-28
- Fixed the application of the "EnforcedSupplierEmailAddress" when converting to ebInterface 5.0 and 6.0
v4.6.2 - 2020-10-13
- Heavily extended the allowed UBL Invoice type codes. Allowed values are now:
80,82,84,130,202,203,204,211,295,325,326,380,383,384,385,386,387,388,389,390,393,394,395,456,457,527,575,623,633,751,780,935 - Added support for UBLVersionID
2.3
v4.6.1 - 2020-09-17
- Updated to Jakarta JAXB 2.3.3
v4.6.0 - 2020-08-30
- Updated to ph-ubl 6.4.0
- Updated to ph-ebinterface 6.2.0
v4.5.8 - 2020-08-13
- Mapping UBL
AdditionalItemPropertyto ebInterfaceAdditionalInformation(ebInterface 5.0 or higher) on line level
v4.5.7 - 2020-07-08
- Using
Invoice/DueDateas an alternative toInvoice/PaymentMeans/PaymentDueDate
v4.5.6 - 2020-05-26
- Updated to ph-ebinterface 6.1.5 with ph-xsds 2.3.0 (new Maven groupId)
v4.5.5 - 2020-05-14
- Updated to support ebInterface 6.0 from and to UBL
- Fixed a divide by zero error if payableAmount is 0
v4.5.4 - 2020-04-01
- Now ebInterface 5.0
Contactemail addresses and telephone numbers are also mapped to UBL (see issue #2)
v4.5.3 - 2020-02-07
- Preferring
PaymentMeans/InstructionIDoverPaymentMeans/PaymentID - Changed the mapping of ebInterface from
PaymentReferencetoPaymentMeans/InstructionID - Updated to peppol-commons 8.x
v4.5.2 - 2019-12-17
- Made the "profile ID to process Identifier" mapping customizable
- Unified error levels between Invoice and CreditNote on the ProfileID
v4.5.1 - 2019-10-14
- Fixed a regression that payment type "41" was checked instead of "42"
v4.5.0 - 2019-10-01
- Changed all package names to
at.austriapro - Changed the Maven group
at.austriapro
v4.0.1 - 2019-09-18
- Fixed potential NPE in county code mapping from ebInterface to UBL
v4.0.0 - 2019-09-13
- Added code to convert UBL Invoice/CreditNote to ebInterface 4.0, 4.1 and 5.0
- Added code to convert ebInterface 4.0, 4.1 and 5.0 to UBL Invoice
- Added check that order reference is mandatory if an order position number is used
- Improved customizability of conversion
- Improved consistency of existing conversions
v3.0.8 - 2019-03-28
- Fixed parsing of process identifiers in "Profile" element for CreditNotes to match the Invoice rules
- Added support for the UBL version "2.2"
- CreditNotes now also transform the
PaymentMethodif present but fallback toNoPaymentif none is provided
v3.0.7 - 2019-02-27
- Avoid creating negative
Percentelement values
v3.0.6 - 2019-02-25
- Improved handling of empty
TaxCategory/IDandTaxScheme/ID
v3.0.5 - 2019-02-22
- Handling empty
PaymentChannelCodelike if it wasnull.
v3.0.4 - 2018-11-22
- Updated to ph-commons 9.2.0
v3.0.3 - 2018-06-21
- Fixed division by zero if BaseQuantity is 0
v3.0.2 - 2018-04-13
- Updated to peppol-commons 6.0.3
v3.0.1 - 2018-04-06
- Ignoring empty Description/Name/Note elements on line level
v3.0.0 - 2018-02-23
- Fixed potential NPE if UBL invoice has no
FinancialAccount - Updated to ph-commons 9.0.0
- Conversion of
TaxExemptionwas added - Some error handling details were improved
v2.2.0 - 2017-08-04
- Allow to create ebInterface 4.3 as well
- Added conversion from ebInterface 4.1/4.2/4.3 to UBL
v2.1.1 - 2016-09-27
- Requires at least ph-common 8.5.2
v2.1.0 - 2016-09-12
- Bind to ph-commons 8.5.x
v2.0.1 - 2016-08-01
v2.0.0 - 2016-07-12
- Bind to ph-commons 8.x
- Requires JDK 1.8
v1.1.0 - 2016-01-26
- Last version for JDK 6
My personal Coding Styleguide | On Twitter: @philiphelger