diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 23a7b57e..242b3f2a 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -159,11 +159,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
}
protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty contact) {
- String xml = " " + XMLTools.encodeXML(contact.getName()) + "\n" //$NON-NLS-2$
+ String xml = "";
+ // According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty
+ // and ShipToTradeParty, but not both. Prefer seller assigned ID for now.
+ if (contact.getID()!=null) {
+ xml += " " + XMLTools.encodeXML(contact.getID()) + "\n";
+ }
+ else if ((contact.getGlobalIDScheme()!=null)&&(contact.getGlobalID()!=null)) {
+ xml = xml + " "
+ + XMLTools.encodeXML(contact.getGlobalID()) + "\n";
+ }
+ xml += " " + XMLTools.encodeXML(contact.getName()) + "\n"; //$NON-NLS-2$
// + " \n"
// + " xxx\n"
// + " \n"
- + " \n"
+ xml += " \n"
+ " " + XMLTools.encodeXML(contact.getZIP())
+ "\n"
+ " " + XMLTools.encodeXML(contact.getStreet())
@@ -406,9 +416,6 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " \n"
+ " \n"
+ " \n";
- // + " GE2020211\n"
- // + " 4000001987658\n"
-
xml+=getTradePartyAsXML(trans.getRecipient());
xml += " \n";