gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [libeufin] branch master updated: Returning INI response to


From: gnunet
Subject: [GNUnet-SVN] [libeufin] branch master updated: Returning INI response to client.
Date: Mon, 21 Oct 2019 15:43:51 +0200

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new a3701e7  Returning INI response to client.
a3701e7 is described below

commit a3701e78f0be0479ea96d9220c46a0b34122caa4
Author: Marcello Stanisci <address@hidden>
AuthorDate: Mon Oct 21 15:40:33 2019 +0200

    Returning INI response to client.
---
 .../ebics/keyresponse/AccountHolderRoleType.java   |   84 +
 .../ebics/keyresponse/AccountNumberRoleType.java   |   84 +
 .../messages/ebics/keyresponse/AccountType.java    |  620 +++++++
 .../ebics/keyresponse/AddressInfoType.java         |  265 +++
 .../messages/ebics/keyresponse/AmountType.java     |  104 ++
 .../ebics/keyresponse/AttributedAccountType.java   |  967 ++++++++++
 .../ebics/keyresponse/AuthOrderInfoType.java       |  262 +++
 .../AuthenticationCertificateInfoType.java         |   78 +
 .../keyresponse/AuthenticationPubKeyInfoType.java  |   78 +
 .../ebics/keyresponse/AuthorisationLevelType.java  |   70 +
 .../ebics/keyresponse/BankCodeRoleType.java        |   84 +
 .../messages/ebics/keyresponse/BankInfoType.java   |  147 ++
 .../keyresponse/BankSignatureDataSigBookType.java  |  139 ++
 .../keyresponse/CanonicalizationMethodType.java    |  109 ++
 .../ebics/keyresponse/CertificateInfoType.java     |  115 ++
 .../messages/ebics/keyresponse/CurrencyCode.java   | 1183 ++++++++++++
 .../ebics/keyresponse/DSAKeyValueType.java         |  227 +++
 .../messages/ebics/keyresponse/DataDigestType.java |   99 +
 .../ebics/keyresponse/DataEncryptionInfoType.java  |  206 +++
 .../ebics/keyresponse/DataTransferRequestType.java |  386 ++++
 .../keyresponse/DataTransferResponseType.java      |  355 ++++
 .../ebics/keyresponse/DigestMethodType.java        |  111 ++
 .../keyresponse/EbicsKeyManagementResponse.java    |  927 ++++++++++
 .../keyresponse/EncryptionCertificateInfoType.java |   78 +
 .../keyresponse/EncryptionPubKeyInfoType.java      |   78 +
 .../ebics/keyresponse/FDLOrderParamsType.java      |  232 +++
 .../ebics/keyresponse/FULOrderParamsType.java      |  106 ++
 .../messages/ebics/keyresponse/FileFormatType.java |  102 ++
 .../ebics/keyresponse/GenericOrderParamsType.java  |   78 +
 .../ebics/keyresponse/H3KRequestOrderDataType.java |  190 ++
 .../keyresponse/HAAResponseOrderDataType.java      |  114 ++
 .../ebics/keyresponse/HCARequestOrderDataType.java |  200 +++
 .../ebics/keyresponse/HCSRequestOrderDataType.java |  228 +++
 .../ebics/keyresponse/HIARequestOrderDataType.java |  200 +++
 .../keyresponse/HKDResponseOrderDataType.java      |  140 ++
 .../keyresponse/HPBResponseOrderDataType.java      |  169 ++
 .../ebics/keyresponse/HPDAccessParamsType.java     |  274 +++
 .../ebics/keyresponse/HPDProtocolParamsType.java   |  713 ++++++++
 .../keyresponse/HPDResponseOrderDataType.java      |   99 +
 .../messages/ebics/keyresponse/HPDVersionType.java |  234 +++
 .../ebics/keyresponse/HSARequestOrderDataType.java |  200 +++
 .../ebics/keyresponse/HTDReponseOrderDataType.java |  137 ++
 .../ebics/keyresponse/HVDOrderParamsType.java      |  199 ++
 .../keyresponse/HVDResponseOrderDataType.java      |  240 +++
 .../ebics/keyresponse/HVEOrderParamsType.java      |  199 ++
 .../ebics/keyresponse/HVSOrderParamsType.java      |  199 ++
 .../ebics/keyresponse/HVSRequestOrderDataType.java |  109 ++
 .../ebics/keyresponse/HVTAccountInfoType.java      |   41 +
 .../ebics/keyresponse/HVTOrderFlagsType.java       |  155 ++
 .../ebics/keyresponse/HVTOrderInfoType.java        |  520 ++++++
 .../ebics/keyresponse/HVTOrderParamsType.java      |  295 +++
 .../ebics/keyresponse/HVTResponseOrderData.java    |   39 +
 .../keyresponse/HVTResponseOrderDataType.java      |  149 ++
 .../ebics/keyresponse/HVUOrderDetailsType.java     |  291 +++
 .../ebics/keyresponse/HVUOrderParamsType.java      |  116 ++
 .../ebics/keyresponse/HVUOriginatorInfoType.java   |  203 +++
 .../keyresponse/HVUResponseOrderDataType.java      |  114 ++
 .../ebics/keyresponse/HVUSigningInfoType.java      |  117 ++
 .../ebics/keyresponse/HVZOrderDetailsType.java     | 1190 ++++++++++++
 .../ebics/keyresponse/HVZOrderParamsType.java      |  116 ++
 .../keyresponse/HVZResponseOrderDataType.java      |  114 ++
 .../messages/ebics/keyresponse/KeyInfoType.java    |  142 ++
 .../KeyMgmntResponseMutableHeaderType.java         |  175 ++
 .../messages/ebics/keyresponse/KeyValueType.java   |   92 +
 .../messages/ebics/keyresponse/ManifestType.java   |  111 ++
 .../messages/ebics/keyresponse/ObjectFactory.java  | 1893 ++++++++++++++++++++
 .../messages/ebics/keyresponse/ObjectType.java     |  171 ++
 .../ebics/keyresponse/OrderAttributeType.java      |   62 +
 .../ebics/keyresponse/OrderSignatureDataType.java  |  190 ++
 .../messages/ebics/keyresponse/OrderTType.java     |  723 ++++++++
 .../messages/ebics/keyresponse/PGPDataType.java    |  105 ++
 .../messages/ebics/keyresponse/Parameter.java      |  196 ++
 .../ebics/keyresponse/PartnerInfoType.java         |  310 ++++
 .../keyresponse/PreValidationAccountAuthType.java  |   73 +
 .../keyresponse/PreValidationRequestType.java      |  147 ++
 .../ebics/keyresponse/PubKeyDigestType.java        |  100 ++
 .../PubKeyInfoTypeAtEbicsSignatures.java           |  143 ++
 .../keyresponse/PubKeyInfoTypeAtEbicsTypes.java    |  144 ++
 .../PubKeyValueTypeAtEbicsSignatures.java          |  140 ++
 .../keyresponse/PubKeyValueTypeAtEbicsTypes.java   |  140 ++
 .../ebics/keyresponse/RSAKeyValueType.java         |   93 +
 .../messages/ebics/keyresponse/ReferenceType.java  |  214 +++
 .../ebics/keyresponse/RetrievalMethodType.java     |  127 ++
 .../messages/ebics/keyresponse/SPKIDataType.java   |   83 +
 .../keyresponse/SignatureCertificateInfoType.java  |   78 +
 .../ebics/keyresponse/SignatureMethodType.java     |  115 ++
 .../ebics/keyresponse/SignaturePropertiesType.java |  111 ++
 .../ebics/keyresponse/SignaturePropertyType.java   |  144 ++
 .../ebics/keyresponse/SignaturePubKeyInfoType.java |   78 +
 .../keyresponse/SignaturePubKeyOrderDataType.java  |  172 ++
 .../messages/ebics/keyresponse/SignatureType.java  |  195 ++
 .../ebics/keyresponse/SignatureValueType.java      |   99 +
 .../messages/ebics/keyresponse/SignedInfoType.java |  167 ++
 .../messages/ebics/keyresponse/SignerInfoType.java |  319 ++++
 .../ebics/keyresponse/StandardOrderParamsType.java |  169 ++
 .../ebics/keyresponse/TransactionPhaseType.java    |   76 +
 .../keyresponse/TransferReceiptRequestType.java    |  103 ++
 .../keyresponse/TransferReceiptResponseType.java   |  144 ++
 .../messages/ebics/keyresponse/TransferType.java   |   68 +
 .../messages/ebics/keyresponse/TransformType.java  |  116 ++
 .../messages/ebics/keyresponse/TransformsType.java |   76 +
 .../messages/ebics/keyresponse/UserInfoType.java   |  258 +++
 .../ebics/keyresponse/UserPermissionType.java      |  258 +++
 .../keyresponse/UserSignatureDataSigBookType.java  |  211 +++
 .../messages/ebics/keyresponse/X509DataType.java   |  100 ++
 .../ebics/keyresponse/X509IssuerSerialType.java    |   98 +
 .../messages/ebics/keyresponse/package-info.java   |    9 +
 sandbox/src/main/kotlin/HEVResponse.kt             |   33 +-
 sandbox/src/main/kotlin/INIResponse.kt             |   12 -
 sandbox/src/main/kotlin/KeyManagementResponse.kt   |   42 +
 sandbox/src/main/kotlin/Main.kt                    |   36 +-
 sandbox/src/test/kotlin/DbTest.kt                  |    5 +-
 sandbox/src/test/kotlin/JaxbTest.kt                |   15 +-
 sandbox/src/test/kotlin/MarshalNonJaxbTest.kt      |   40 +
 .../test/resources/ebics_ini_request_sample.xml    |    2 +-
 115 files changed, 23545 insertions(+), 56 deletions(-)

diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountHolderRoleType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountHolderRoleType.java
new file mode 100644
index 0000000..358dd34
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountHolderRoleType.java
@@ -0,0 +1,84 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AccountHolderRoleType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="AccountHolderRoleType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token";>
+ *     &lt;enumeration value="Originator"/>
+ *     &lt;enumeration value="Recipient"/>
+ *     &lt;enumeration value="Presenter"/>
+ *     &lt;enumeration value="Other"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "AccountHolderRoleType")
+@XmlEnum
+public enum AccountHolderRoleType {
+
+
+    /**
+     * Auftraggeber
+     * 
+     */
+    @XmlEnumValue("Originator")
+    ORIGINATOR("Originator"),
+
+    /**
+     * Empfänger
+     * 
+     */
+    @XmlEnumValue("Recipient")
+    RECIPIENT("Recipient"),
+
+    /**
+     * Überbringer, Einreicher
+     * 
+     */
+    @XmlEnumValue("Presenter")
+    PRESENTER("Presenter"),
+
+    /**
+     * andere Rolle
+     * 
+     */
+    @XmlEnumValue("Other")
+    OTHER("Other");
+    private final String value;
+
+    AccountHolderRoleType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static AccountHolderRoleType fromValue(String v) {
+        for (AccountHolderRoleType c: AccountHolderRoleType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountNumberRoleType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountNumberRoleType.java
new file mode 100644
index 0000000..fa2baac
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountNumberRoleType.java
@@ -0,0 +1,84 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AccountNumberRoleType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="AccountNumberRoleType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token";>
+ *     &lt;enumeration value="Originator"/>
+ *     &lt;enumeration value="Recipient"/>
+ *     &lt;enumeration value="Charges"/>
+ *     &lt;enumeration value="Other"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "AccountNumberRoleType")
+@XmlEnum
+public enum AccountNumberRoleType {
+
+
+    /**
+     * Auftraggeberkonto
+     * 
+     */
+    @XmlEnumValue("Originator")
+    ORIGINATOR("Originator"),
+
+    /**
+     * Empfängerkonto
+     * 
+     */
+    @XmlEnumValue("Recipient")
+    RECIPIENT("Recipient"),
+
+    /**
+     * Gebührenkonto
+     * 
+     */
+    @XmlEnumValue("Charges")
+    CHARGES("Charges"),
+
+    /**
+     * andere Kontorolle
+     * 
+     */
+    @XmlEnumValue("Other")
+    OTHER("Other");
+    private final String value;
+
+    AccountNumberRoleType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static AccountNumberRoleType fromValue(String v) {
+        for (AccountNumberRoleType c: AccountNumberRoleType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountType.java
new file mode 100644
index 0000000..0c5eb08
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AccountType.java
@@ -0,0 +1,620 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für Kontoinformationen.
+ * 
+ * <p>Java class for AccountType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AccountType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;choice maxOccurs="2">
+ *           &lt;element name="AccountNumber">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>AccountNumberType">
+ *                   &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *           &lt;element name="NationalAccountNumber">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+ *                   &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *         &lt;/choice>
+ *         &lt;choice maxOccurs="2">
+ *           &lt;element name="BankCode">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension base="&lt;urn:org:ebics:H004>BankCodeType">
+ *                   &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+ *                   &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *           &lt;element name="NationalBankCode">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+ *                   &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *         &lt;/choice>
+ *         &lt;element name="AccountHolder" 
type="{urn:org:ebics:H004}AccountHolderType" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Currency" 
type="{urn:org:ebics:H004}CurrencyBaseType" default="EUR" />
+ *       &lt;attribute name="Description" 
type="{urn:org:ebics:H004}AccountDescriptionType" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AccountType", propOrder = {
+    "accountNumberOrNationalAccountNumber",
+    "bankCodeOrNationalBankCode",
+    "accountHolder"
+})
+@XmlSeeAlso({
+    tech.libeufin.messages.ebics.keyresponse.PartnerInfoType.AccountInfo.class,
+    PreValidationAccountAuthType.class
+})
+public class AccountType {
+
+    @XmlElements({
+        @XmlElement(name = "AccountNumber", type = 
AccountType.AccountNumber.class),
+        @XmlElement(name = "NationalAccountNumber", type = 
AccountType.NationalAccountNumber.class)
+    })
+    protected List<Object> accountNumberOrNationalAccountNumber;
+    @XmlElements({
+        @XmlElement(name = "BankCode", type = AccountType.BankCode.class),
+        @XmlElement(name = "NationalBankCode", type = 
AccountType.NationalBankCode.class)
+    })
+    protected List<Object> bankCodeOrNationalBankCode;
+    @XmlElement(name = "AccountHolder")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String accountHolder;
+    @XmlAttribute(name = "Currency")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String currency;
+    @XmlAttribute(name = "Description")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    protected String description;
+
+    /**
+     * Gets the value of the accountNumberOrNationalAccountNumber property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
accountNumberOrNationalAccountNumber property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAccountNumberOrNationalAccountNumber().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AccountType.AccountNumber }
+     * {@link AccountType.NationalAccountNumber }
+     * 
+     * 
+     */
+    public List<Object> getAccountNumberOrNationalAccountNumber() {
+        if (accountNumberOrNationalAccountNumber == null) {
+            accountNumberOrNationalAccountNumber = new ArrayList<Object>();
+        }
+        return this.accountNumberOrNationalAccountNumber;
+    }
+
+    /**
+     * Gets the value of the bankCodeOrNationalBankCode property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
bankCodeOrNationalBankCode property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getBankCodeOrNationalBankCode().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AccountType.BankCode }
+     * {@link AccountType.NationalBankCode }
+     * 
+     * 
+     */
+    public List<Object> getBankCodeOrNationalBankCode() {
+        if (bankCodeOrNationalBankCode == null) {
+            bankCodeOrNationalBankCode = new ArrayList<Object>();
+        }
+        return this.bankCodeOrNationalBankCode;
+    }
+
+    /**
+     * Gets the value of the accountHolder property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAccountHolder() {
+        return accountHolder;
+    }
+
+    /**
+     * Sets the value of the accountHolder property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAccountHolder(String value) {
+        this.accountHolder = value;
+    }
+
+    /**
+     * Gets the value of the currency property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCurrency() {
+        if (currency == null) {
+            return "EUR";
+        } else {
+            return currency;
+        }
+    }
+
+    /**
+     * Sets the value of the currency property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCurrency(String value) {
+        this.currency = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>AccountNumberType">
+     *       &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class AccountNumber {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "international")
+        protected Boolean international;
+
+        /**
+         * Datentyp für eine Kontonummer (national/international).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the international property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isInternational() {
+            if (international == null) {
+                return false;
+            } else {
+                return international;
+            }
+        }
+
+        /**
+         * Sets the value of the international property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setInternational(Boolean value) {
+            this.international = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>BankCodeType">
+     *       &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *       &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class BankCode {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "international")
+        protected Boolean international;
+        @XmlAttribute(name = "Prefix")
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String prefix;
+
+        /**
+         * Datentyp für eine Bankleitzahl (national/international).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the international property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isInternational() {
+            if (international == null) {
+                return false;
+            } else {
+                return international;
+            }
+        }
+
+        /**
+         * Sets the value of the international property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setInternational(Boolean value) {
+            this.international = value;
+        }
+
+        /**
+         * Gets the value of the prefix property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getPrefix() {
+            return prefix;
+        }
+
+        /**
+         * Sets the value of the prefix property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setPrefix(String value) {
+            this.prefix = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+     *       &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class NationalAccountNumber {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "format", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        @XmlSchemaType(name = "token")
+        protected String format;
+
+        /**
+         * Datentyp für eine Kontonummer (freies Format).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the format property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getFormat() {
+            return format;
+        }
+
+        /**
+         * Sets the value of the format property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setFormat(String value) {
+            this.format = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+     *       &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class NationalBankCode {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "format", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        @XmlSchemaType(name = "token")
+        protected String format;
+
+        /**
+         * Datentyp für eine Bankleitzahl (freies Format).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the format property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getFormat() {
+            return format;
+        }
+
+        /**
+         * Sets the value of the format property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setFormat(String value) {
+            this.format = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AddressInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AddressInfoType.java
new file mode 100644
index 0000000..7bfdc26
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AddressInfoType.java
@@ -0,0 +1,265 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for address information with regard to distributed signature 
(order types HKD, HTD).
+ * 
+ * <p>Java class for AddressInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AddressInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="Name" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="Street" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="PostCode" 
type="{http://www.w3.org/2001/XMLSchema}token"; minOccurs="0"/>
+ *         &lt;element name="City" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="Region" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="Country" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AddressInfoType", propOrder = {
+    "name",
+    "street",
+    "postCode",
+    "city",
+    "region",
+    "country",
+    "any"
+})
+public class AddressInfoType {
+
+    @XmlElement(name = "Name")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String name;
+    @XmlElement(name = "Street")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String street;
+    @XmlElement(name = "PostCode")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String postCode;
+    @XmlElement(name = "City")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String city;
+    @XmlElement(name = "Region")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String region;
+    @XmlElement(name = "Country")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String country;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the street property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStreet() {
+        return street;
+    }
+
+    /**
+     * Sets the value of the street property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStreet(String value) {
+        this.street = value;
+    }
+
+    /**
+     * Gets the value of the postCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPostCode() {
+        return postCode;
+    }
+
+    /**
+     * Sets the value of the postCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPostCode(String value) {
+        this.postCode = value;
+    }
+
+    /**
+     * Gets the value of the city property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCity() {
+        return city;
+    }
+
+    /**
+     * Sets the value of the city property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCity(String value) {
+        this.city = value;
+    }
+
+    /**
+     * Gets the value of the region property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRegion() {
+        return region;
+    }
+
+    /**
+     * Sets the value of the region property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRegion(String value) {
+        this.region = value;
+    }
+
+    /**
+     * Gets the value of the country property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCountry() {
+        return country;
+    }
+
+    /**
+     * Sets the value of the country property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCountry(String value) {
+        this.country = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AmountType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AmountType.java
new file mode 100644
index 0000000..115527a
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AmountType.java
@@ -0,0 +1,104 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für einen Betrag inkl. Währungscode-Attribut (Default = "EUR").
+ * 
+ * <p>Java class for AmountType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AmountType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;urn:org:ebics:H004>AmountValueType">
+ *       &lt;attribute name="Currency" 
type="{urn:org:ebics:H004}CurrencyBaseType" default="EUR" />
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AmountType", propOrder = {
+    "value"
+})
+public class AmountType {
+
+    @XmlValue
+    protected BigDecimal value;
+    @XmlAttribute(name = "Currency")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String currency;
+
+    /**
+     * Datentyp für einen Betragswert (ohne Währung).
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigDecimal }
+     *     
+     */
+    public BigDecimal getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigDecimal }
+     *     
+     */
+    public void setValue(BigDecimal value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the currency property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCurrency() {
+        if (currency == null) {
+            return "EUR";
+        } else {
+            return currency;
+        }
+    }
+
+    /**
+     * Sets the value of the currency property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCurrency(String value) {
+        this.currency = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AttributedAccountType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AttributedAccountType.java
new file mode 100644
index 0000000..e8cf87b
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AttributedAccountType.java
@@ -0,0 +1,967 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für Kontoinformationen inkl. der Eigenschaftszuordnung innerhalb 
einer Zahlungstransaktion.
+ * 
+ * <p>Java class for AttributedAccountType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AttributedAccountType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;choice maxOccurs="2">
+ *           &lt;element name="AccountNumber">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>AccountNumberType">
+ *                   &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}AccountNumberRoleType" />
+ *                   &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+ *                   &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *           &lt;element name="NationalAccountNumber">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+ *                   &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}AccountNumberRoleType" />
+ *                   &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+ *                   &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *         &lt;/choice>
+ *         &lt;choice maxOccurs="2">
+ *           &lt;element name="BankCode">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension base="&lt;urn:org:ebics:H004>BankCodeType">
+ *                   &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}BankCodeRoleType" />
+ *                   &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+ *                   &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+ *                   &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *           &lt;element name="NationalBankCode">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+ *                   &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}BankCodeRoleType" />
+ *                   &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+ *                   &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *         &lt;/choice>
+ *         &lt;element name="AccountHolder" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;urn:org:ebics:H004>AccountHolderType">
+ *                 &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}AccountHolderRoleType" />
+ *                 &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Currency" 
type="{urn:org:ebics:H004}CurrencyBaseType" default="EUR" />
+ *       &lt;attribute name="Description" 
type="{urn:org:ebics:H004}AccountDescriptionType" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttributedAccountType", propOrder = {
+    "accountNumberOrNationalAccountNumber",
+    "bankCodeOrNationalBankCode",
+    "accountHolder"
+})
+@XmlSeeAlso({
+    HVTAccountInfoType.class
+})
+public class AttributedAccountType {
+
+    @XmlElements({
+        @XmlElement(name = "AccountNumber", type = 
AttributedAccountType.AccountNumber.class),
+        @XmlElement(name = "NationalAccountNumber", type = 
AttributedAccountType.NationalAccountNumber.class)
+    })
+    protected List<Object> accountNumberOrNationalAccountNumber;
+    @XmlElements({
+        @XmlElement(name = "BankCode", type = 
AttributedAccountType.BankCode.class),
+        @XmlElement(name = "NationalBankCode", type = 
AttributedAccountType.NationalBankCode.class)
+    })
+    protected List<Object> bankCodeOrNationalBankCode;
+    @XmlElement(name = "AccountHolder")
+    protected AttributedAccountType.AccountHolder accountHolder;
+    @XmlAttribute(name = "Currency")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String currency;
+    @XmlAttribute(name = "Description")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    protected String description;
+
+    /**
+     * Gets the value of the accountNumberOrNationalAccountNumber property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
accountNumberOrNationalAccountNumber property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAccountNumberOrNationalAccountNumber().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AttributedAccountType.AccountNumber }
+     * {@link AttributedAccountType.NationalAccountNumber }
+     * 
+     * 
+     */
+    public List<Object> getAccountNumberOrNationalAccountNumber() {
+        if (accountNumberOrNationalAccountNumber == null) {
+            accountNumberOrNationalAccountNumber = new ArrayList<Object>();
+        }
+        return this.accountNumberOrNationalAccountNumber;
+    }
+
+    /**
+     * Gets the value of the bankCodeOrNationalBankCode property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
bankCodeOrNationalBankCode property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getBankCodeOrNationalBankCode().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AttributedAccountType.BankCode }
+     * {@link AttributedAccountType.NationalBankCode }
+     * 
+     * 
+     */
+    public List<Object> getBankCodeOrNationalBankCode() {
+        if (bankCodeOrNationalBankCode == null) {
+            bankCodeOrNationalBankCode = new ArrayList<Object>();
+        }
+        return this.bankCodeOrNationalBankCode;
+    }
+
+    /**
+     * Gets the value of the accountHolder property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AttributedAccountType.AccountHolder }
+     *     
+     */
+    public AttributedAccountType.AccountHolder getAccountHolder() {
+        return accountHolder;
+    }
+
+    /**
+     * Sets the value of the accountHolder property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AttributedAccountType.AccountHolder }
+     *     
+     */
+    public void setAccountHolder(AttributedAccountType.AccountHolder value) {
+        this.accountHolder = value;
+    }
+
+    /**
+     * Gets the value of the currency property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCurrency() {
+        if (currency == null) {
+            return "EUR";
+        } else {
+            return currency;
+        }
+    }
+
+    /**
+     * Sets the value of the currency property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCurrency(String value) {
+        this.currency = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>AccountHolderType">
+     *       &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}AccountHolderRoleType" />
+     *       &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class AccountHolder {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "Role", required = true)
+        protected AccountHolderRoleType role;
+        @XmlAttribute(name = "Description")
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        @XmlSchemaType(name = "normalizedString")
+        protected String description;
+
+        /**
+         * Datentyp für den Namen des Kontoinhabers.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the role property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link AccountHolderRoleType }
+         *     
+         */
+        public AccountHolderRoleType getRole() {
+            return role;
+        }
+
+        /**
+         * Sets the value of the role property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link AccountHolderRoleType }
+         *     
+         */
+        public void setRole(AccountHolderRoleType value) {
+            this.role = value;
+        }
+
+        /**
+         * Gets the value of the description property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getDescription() {
+            return description;
+        }
+
+        /**
+         * Sets the value of the description property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setDescription(String value) {
+            this.description = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>AccountNumberType">
+     *       &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}AccountNumberRoleType" />
+     *       &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+     *       &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class AccountNumber {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "Role", required = true)
+        protected AccountNumberRoleType role;
+        @XmlAttribute(name = "Description")
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        @XmlSchemaType(name = "normalizedString")
+        protected String description;
+        @XmlAttribute(name = "international")
+        protected Boolean international;
+
+        /**
+         * Datentyp für eine Kontonummer (national/international).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the role property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link AccountNumberRoleType }
+         *     
+         */
+        public AccountNumberRoleType getRole() {
+            return role;
+        }
+
+        /**
+         * Sets the value of the role property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link AccountNumberRoleType }
+         *     
+         */
+        public void setRole(AccountNumberRoleType value) {
+            this.role = value;
+        }
+
+        /**
+         * Gets the value of the description property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getDescription() {
+            return description;
+        }
+
+        /**
+         * Sets the value of the description property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setDescription(String value) {
+            this.description = value;
+        }
+
+        /**
+         * Gets the value of the international property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isInternational() {
+            if (international == null) {
+                return false;
+            } else {
+                return international;
+            }
+        }
+
+        /**
+         * Sets the value of the international property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setInternational(Boolean value) {
+            this.international = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>BankCodeType">
+     *       &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}BankCodeRoleType" />
+     *       &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+     *       &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *       &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class BankCode {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "Role", required = true)
+        protected BankCodeRoleType role;
+        @XmlAttribute(name = "Description")
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        @XmlSchemaType(name = "normalizedString")
+        protected String description;
+        @XmlAttribute(name = "international")
+        protected Boolean international;
+        @XmlAttribute(name = "Prefix")
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String prefix;
+
+        /**
+         * Datentyp für eine Bankleitzahl (national/international).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the role property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link BankCodeRoleType }
+         *     
+         */
+        public BankCodeRoleType getRole() {
+            return role;
+        }
+
+        /**
+         * Sets the value of the role property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link BankCodeRoleType }
+         *     
+         */
+        public void setRole(BankCodeRoleType value) {
+            this.role = value;
+        }
+
+        /**
+         * Gets the value of the description property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getDescription() {
+            return description;
+        }
+
+        /**
+         * Sets the value of the description property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setDescription(String value) {
+            this.description = value;
+        }
+
+        /**
+         * Gets the value of the international property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isInternational() {
+            if (international == null) {
+                return false;
+            } else {
+                return international;
+            }
+        }
+
+        /**
+         * Sets the value of the international property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setInternational(Boolean value) {
+            this.international = value;
+        }
+
+        /**
+         * Gets the value of the prefix property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getPrefix() {
+            return prefix;
+        }
+
+        /**
+         * Sets the value of the prefix property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setPrefix(String value) {
+            this.prefix = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+     *       &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}AccountNumberRoleType" />
+     *       &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+     *       &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class NationalAccountNumber {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "Role", required = true)
+        protected AccountNumberRoleType role;
+        @XmlAttribute(name = "Description")
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        @XmlSchemaType(name = "normalizedString")
+        protected String description;
+        @XmlAttribute(name = "format", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        @XmlSchemaType(name = "token")
+        protected String format;
+
+        /**
+         * Datentyp für eine Kontonummer (freies Format).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the role property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link AccountNumberRoleType }
+         *     
+         */
+        public AccountNumberRoleType getRole() {
+            return role;
+        }
+
+        /**
+         * Sets the value of the role property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link AccountNumberRoleType }
+         *     
+         */
+        public void setRole(AccountNumberRoleType value) {
+            this.role = value;
+        }
+
+        /**
+         * Gets the value of the description property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getDescription() {
+            return description;
+        }
+
+        /**
+         * Sets the value of the description property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setDescription(String value) {
+            this.description = value;
+        }
+
+        /**
+         * Gets the value of the format property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getFormat() {
+            return format;
+        }
+
+        /**
+         * Sets the value of the format property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setFormat(String value) {
+            this.format = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+     *       &lt;attribute name="Role" use="required" 
type="{urn:org:ebics:H004}BankCodeRoleType" />
+     *       &lt;attribute name="Description" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; />
+     *       &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class NationalBankCode {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "Role", required = true)
+        protected BankCodeRoleType role;
+        @XmlAttribute(name = "Description")
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        @XmlSchemaType(name = "normalizedString")
+        protected String description;
+        @XmlAttribute(name = "format", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        @XmlSchemaType(name = "token")
+        protected String format;
+
+        /**
+         * Datentyp für eine Bankleitzahl (freies Format).
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the role property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link BankCodeRoleType }
+         *     
+         */
+        public BankCodeRoleType getRole() {
+            return role;
+        }
+
+        /**
+         * Sets the value of the role property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link BankCodeRoleType }
+         *     
+         */
+        public void setRole(BankCodeRoleType value) {
+            this.role = value;
+        }
+
+        /**
+         * Gets the value of the description property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getDescription() {
+            return description;
+        }
+
+        /**
+         * Sets the value of the description property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setDescription(String value) {
+            this.description = value;
+        }
+
+        /**
+         * Gets the value of the format property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getFormat() {
+            return format;
+        }
+
+        /**
+         * Sets the value of the format property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setFormat(String value) {
+            this.format = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthOrderInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthOrderInfoType.java
new file mode 100644
index 0000000..b3f8ecb
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthOrderInfoType.java
@@ -0,0 +1,262 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for user permissions with regard to distributed signatures (order 
types HKD, HTD).
+ * 
+ * <p>Java class for AuthOrderInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AuthOrderInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderType" 
type="{urn:org:ebics:H004}OrderTBaseType"/>
+ *         &lt;element name="FileFormat" 
type="{urn:org:ebics:H004}FileFormatType" minOccurs="0"/>
+ *         &lt;element name="TransferType" 
type="{urn:org:ebics:H004}TransferType"/>
+ *         &lt;element name="OrderFormat" 
type="{urn:org:ebics:H004}OrderFormatType" minOccurs="0"/>
+ *         &lt;element name="Description" 
type="{urn:org:ebics:H004}OrderDescriptionType"/>
+ *         &lt;element name="NumSigRequired" 
type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"; minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AuthOrderInfoType", propOrder = {
+    "orderType",
+    "fileFormat",
+    "transferType",
+    "orderFormat",
+    "description",
+    "numSigRequired",
+    "any"
+})
+public class AuthOrderInfoType {
+
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "TransferType", required = true)
+    @XmlSchemaType(name = "token")
+    protected TransferType transferType;
+    @XmlElement(name = "OrderFormat")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderFormat;
+    @XmlElement(name = "Description", required = true)
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String description;
+    @XmlElement(name = "NumSigRequired", defaultValue = "0")
+    @XmlSchemaType(name = "nonNegativeInteger")
+    protected BigInteger numSigRequired;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the transferType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TransferType }
+     *     
+     */
+    public TransferType getTransferType() {
+        return transferType;
+    }
+
+    /**
+     * Sets the value of the transferType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TransferType }
+     *     
+     */
+    public void setTransferType(TransferType value) {
+        this.transferType = value;
+    }
+
+    /**
+     * Gets the value of the orderFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderFormat() {
+        return orderFormat;
+    }
+
+    /**
+     * Sets the value of the orderFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderFormat(String value) {
+        this.orderFormat = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the numSigRequired property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getNumSigRequired() {
+        return numSigRequired;
+    }
+
+    /**
+     * Sets the value of the numSigRequired property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setNumSigRequired(BigInteger value) {
+        this.numSigRequired = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthenticationCertificateInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthenticationCertificateInfoType.java
new file mode 100644
index 0000000..418b339
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthenticationCertificateInfoType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Data type for public for identification and authentication.
+ * 
+ * <p>Java class for AuthenticationCertificateInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AuthenticationCertificateInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}CertificateInfoType">
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationVersion" 
type="{urn:org:ebics:H004}AuthenticationVersionType"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AuthenticationCertificateInfoType", propOrder = {
+    "authenticationVersion"
+})
+public class AuthenticationCertificateInfoType
+    extends CertificateInfoType
+{
+
+    @XmlElement(name = "AuthenticationVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String authenticationVersion;
+
+    /**
+     * Gets the value of the authenticationVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAuthenticationVersion() {
+        return authenticationVersion;
+    }
+
+    /**
+     * Sets the value of the authenticationVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAuthenticationVersion(String value) {
+        this.authenticationVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthenticationPubKeyInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthenticationPubKeyInfoType.java
new file mode 100644
index 0000000..90eeebb
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthenticationPubKeyInfoType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für öffentlichen Authentfikationsschlüssel.
+ * 
+ * <p>Java class for AuthenticationPubKeyInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="AuthenticationPubKeyInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}PubKeyInfoType">
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationVersion" 
type="{urn:org:ebics:H004}AuthenticationVersionType"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AuthenticationPubKeyInfoType", propOrder = {
+    "authenticationVersion"
+})
+public class AuthenticationPubKeyInfoType
+    extends PubKeyInfoTypeAtEbicsTypes
+{
+
+    @XmlElement(name = "AuthenticationVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String authenticationVersion;
+
+    /**
+     * Gets the value of the authenticationVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAuthenticationVersion() {
+        return authenticationVersion;
+    }
+
+    /**
+     * Sets the value of the authenticationVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAuthenticationVersion(String value) {
+        this.authenticationVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthorisationLevelType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthorisationLevelType.java
new file mode 100644
index 0000000..c99e500
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/AuthorisationLevelType.java
@@ -0,0 +1,70 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AuthorisationLevelType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="AuthorisationLevelType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token";>
+ *     &lt;length value="1"/>
+ *     &lt;enumeration value="E"/>
+ *     &lt;enumeration value="A"/>
+ *     &lt;enumeration value="B"/>
+ *     &lt;enumeration value="T"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "AuthorisationLevelType")
+@XmlEnum
+public enum AuthorisationLevelType {
+
+
+    /**
+     * Einzelunterschrift
+     * 
+     */
+    E,
+
+    /**
+     * Erstunterschrift
+     * 
+     */
+    A,
+
+    /**
+     * Zweitunterschrift
+     * 
+     */
+    B,
+
+    /**
+     * Transportunterschrift
+     * 
+     */
+    T;
+
+    public String value() {
+        return name();
+    }
+
+    public static AuthorisationLevelType fromValue(String v) {
+        return valueOf(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankCodeRoleType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankCodeRoleType.java
new file mode 100644
index 0000000..ac15d81
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankCodeRoleType.java
@@ -0,0 +1,84 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for BankCodeRoleType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="BankCodeRoleType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token";>
+ *     &lt;enumeration value="Originator"/>
+ *     &lt;enumeration value="Recipient"/>
+ *     &lt;enumeration value="Correspondent"/>
+ *     &lt;enumeration value="Other"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "BankCodeRoleType")
+@XmlEnum
+public enum BankCodeRoleType {
+
+
+    /**
+     * Auftraggeberbank
+     * 
+     */
+    @XmlEnumValue("Originator")
+    ORIGINATOR("Originator"),
+
+    /**
+     * Empfängerbank
+     * 
+     */
+    @XmlEnumValue("Recipient")
+    RECIPIENT("Recipient"),
+
+    /**
+     * Korrespondenzbank
+     * 
+     */
+    @XmlEnumValue("Correspondent")
+    CORRESPONDENT("Correspondent"),
+
+    /**
+     * andere Bankrolle
+     * 
+     */
+    @XmlEnumValue("Other")
+    OTHER("Other");
+    private final String value;
+
+    BankCodeRoleType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static BankCodeRoleType fromValue(String v) {
+        for (BankCodeRoleType c: BankCodeRoleType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankInfoType.java
new file mode 100644
index 0000000..6d1cc67
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankInfoType.java
@@ -0,0 +1,147 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für VEU-Kreditinstitutsinformationen (HKD, HTD).
+ * 
+ * <p>Java class for BankInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="BankInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="HostID" type="{urn:org:ebics:H004}HostIDType"/>
+ *         &lt;element ref="{urn:org:ebics:H004}Parameter" 
maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BankInfoType", propOrder = {
+    "hostID",
+    "parameter",
+    "any"
+})
+public class BankInfoType {
+
+    @XmlElement(name = "HostID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String hostID;
+    @XmlElement(name = "Parameter")
+    protected List<Parameter> parameter;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the hostID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getHostID() {
+        return hostID;
+    }
+
+    /**
+     * Sets the value of the hostID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setHostID(String value) {
+        this.hostID = value;
+    }
+
+    /**
+     * Gets the value of the parameter property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the parameter 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getParameter().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Parameter }
+     * 
+     * 
+     */
+    public List<Parameter> getParameter() {
+        if (parameter == null) {
+            parameter = new ArrayList<Parameter>();
+        }
+        return this.parameter;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankSignatureDataSigBookType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankSignatureDataSigBookType.java
new file mode 100644
index 0000000..2fa034c
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/BankSignatureDataSigBookType.java
@@ -0,0 +1,139 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for digital signature data transferred using EBICS.
+ * 
+ * <p>Java class for BankSignatureDataSigBookType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="BankSignatureDataSigBookType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderSignature" maxOccurs="0" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;urn:org:ebics:H004>SignatureType">
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "BankSignatureDataSigBookType", propOrder = {
+    "any"
+})
+public class BankSignatureDataSigBookType {
+
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>SignatureType">
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class OrderSignature {
+
+        @XmlValue
+        protected byte[] value;
+
+        /**
+         * Datentyp für kryptographische Unterschriften.
+         * 
+         * @return
+         *     possible object is
+         *     byte[]
+         */
+        public byte[] getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     byte[]
+         */
+        public void setValue(byte[] value) {
+            this.value = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CanonicalizationMethodType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CanonicalizationMethodType.java
new file mode 100644
index 0000000..a124a03
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CanonicalizationMethodType.java
@@ -0,0 +1,109 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CanonicalizationMethodType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CanonicalizationMethodType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;any maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Algorithm" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CanonicalizationMethodType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class CanonicalizationMethodType {
+
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Algorithm", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String algorithm;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the algorithm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Sets the value of the algorithm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAlgorithm(String value) {
+        this.algorithm = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CertificateInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CertificateInfoType.java
new file mode 100644
index 0000000..9038bd7
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CertificateInfoType.java
@@ -0,0 +1,115 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data Type for Certificates for the bank-technical signature for 
authorisation (ES)
+ * 
+ * <p>Java class for CertificateInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="CertificateInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CertificateInfoType", propOrder = {
+    "x509Data",
+    "any"
+})
+@XmlSeeAlso({
+    AuthenticationCertificateInfoType.class,
+    EncryptionCertificateInfoType.class,
+    SignatureCertificateInfoType.class
+})
+public class CertificateInfoType {
+
+    @XmlElement(name = "X509Data", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
+    protected X509DataType x509Data;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the x509Data property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link X509DataType }
+     *     
+     */
+    public X509DataType getX509Data() {
+        return x509Data;
+    }
+
+    /**
+     * Sets the value of the x509Data property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link X509DataType }
+     *     
+     */
+    public void setX509Data(X509DataType value) {
+        this.x509Data = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CurrencyCode.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CurrencyCode.java
new file mode 100644
index 0000000..dba1e93
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/CurrencyCode.java
@@ -0,0 +1,1183 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CurrencyCode.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="CurrencyCode">
+ *   &lt;restriction base="{urn:org:ebics:H004}CurrencyBaseType">
+ *     &lt;length value="3"/>
+ *     &lt;enumeration value="AFN"/>
+ *     &lt;enumeration value="ALL"/>
+ *     &lt;enumeration value="AMD"/>
+ *     &lt;enumeration value="ANG"/>
+ *     &lt;enumeration value="AOA"/>
+ *     &lt;enumeration value="ARS"/>
+ *     &lt;enumeration value="AUD"/>
+ *     &lt;enumeration value="AWG"/>
+ *     &lt;enumeration value="AZM"/>
+ *     &lt;enumeration value="BAM"/>
+ *     &lt;enumeration value="BBD"/>
+ *     &lt;enumeration value="BDT"/>
+ *     &lt;enumeration value="BGN"/>
+ *     &lt;enumeration value="BHD"/>
+ *     &lt;enumeration value="BMD"/>
+ *     &lt;enumeration value="BND"/>
+ *     &lt;enumeration value="BOB"/>
+ *     &lt;enumeration value="BRL"/>
+ *     &lt;enumeration value="BSD"/>
+ *     &lt;enumeration value="BTN"/>
+ *     &lt;enumeration value="BWP"/>
+ *     &lt;enumeration value="BYR"/>
+ *     &lt;enumeration value="BZD"/>
+ *     &lt;enumeration value="CAD"/>
+ *     &lt;enumeration value="CDF"/>
+ *     &lt;enumeration value="CHF"/>
+ *     &lt;enumeration value="CLP"/>
+ *     &lt;enumeration value="CNY"/>
+ *     &lt;enumeration value="COP"/>
+ *     &lt;enumeration value="CRC"/>
+ *     &lt;enumeration value="CSD"/>
+ *     &lt;enumeration value="CUP"/>
+ *     &lt;enumeration value="CVE"/>
+ *     &lt;enumeration value="CYP"/>
+ *     &lt;enumeration value="CZK"/>
+ *     &lt;enumeration value="DJV"/>
+ *     &lt;enumeration value="DKK"/>
+ *     &lt;enumeration value="DOP"/>
+ *     &lt;enumeration value="DZD"/>
+ *     &lt;enumeration value="ECS"/>
+ *     &lt;enumeration value="EEK"/>
+ *     &lt;enumeration value="EGP"/>
+ *     &lt;enumeration value="ETB"/>
+ *     &lt;enumeration value="EUR"/>
+ *     &lt;enumeration value="FJD"/>
+ *     &lt;enumeration value="FKP"/>
+ *     &lt;enumeration value="GBP"/>
+ *     &lt;enumeration value="GEL"/>
+ *     &lt;enumeration value="GHC"/>
+ *     &lt;enumeration value="GIP"/>
+ *     &lt;enumeration value="GMD"/>
+ *     &lt;enumeration value="GNF"/>
+ *     &lt;enumeration value="GTQ"/>
+ *     &lt;enumeration value="GYD"/>
+ *     &lt;enumeration value="HKD"/>
+ *     &lt;enumeration value="HNL"/>
+ *     &lt;enumeration value="HRK"/>
+ *     &lt;enumeration value="HTG"/>
+ *     &lt;enumeration value="HUF"/>
+ *     &lt;enumeration value="IDR"/>
+ *     &lt;enumeration value="ILS"/>
+ *     &lt;enumeration value="INR"/>
+ *     &lt;enumeration value="IQD"/>
+ *     &lt;enumeration value="IRR"/>
+ *     &lt;enumeration value="ISK"/>
+ *     &lt;enumeration value="JMD"/>
+ *     &lt;enumeration value="JOD"/>
+ *     &lt;enumeration value="JPY"/>
+ *     &lt;enumeration value="KES"/>
+ *     &lt;enumeration value="KGS"/>
+ *     &lt;enumeration value="KHR"/>
+ *     &lt;enumeration value="KMF"/>
+ *     &lt;enumeration value="KPW"/>
+ *     &lt;enumeration value="KRW"/>
+ *     &lt;enumeration value="KWD"/>
+ *     &lt;enumeration value="KYD"/>
+ *     &lt;enumeration value="KZT"/>
+ *     &lt;enumeration value="LAK"/>
+ *     &lt;enumeration value="LBP"/>
+ *     &lt;enumeration value="LKR"/>
+ *     &lt;enumeration value="LRD"/>
+ *     &lt;enumeration value="LSL"/>
+ *     &lt;enumeration value="LTL"/>
+ *     &lt;enumeration value="LVL"/>
+ *     &lt;enumeration value="LYD"/>
+ *     &lt;enumeration value="MAD"/>
+ *     &lt;enumeration value="MDL"/>
+ *     &lt;enumeration value="MGF"/>
+ *     &lt;enumeration value="MKD"/>
+ *     &lt;enumeration value="MMK"/>
+ *     &lt;enumeration value="MNT"/>
+ *     &lt;enumeration value="MOP"/>
+ *     &lt;enumeration value="MRO"/>
+ *     &lt;enumeration value="MTL"/>
+ *     &lt;enumeration value="MUR"/>
+ *     &lt;enumeration value="MVR"/>
+ *     &lt;enumeration value="MWK"/>
+ *     &lt;enumeration value="MXN"/>
+ *     &lt;enumeration value="MYR"/>
+ *     &lt;enumeration value="MZM"/>
+ *     &lt;enumeration value="NAD"/>
+ *     &lt;enumeration value="NGN"/>
+ *     &lt;enumeration value="NIO"/>
+ *     &lt;enumeration value="NOK"/>
+ *     &lt;enumeration value="NPR"/>
+ *     &lt;enumeration value="NZD"/>
+ *     &lt;enumeration value="OMR"/>
+ *     &lt;enumeration value="PAB"/>
+ *     &lt;enumeration value="PEN"/>
+ *     &lt;enumeration value="PGK"/>
+ *     &lt;enumeration value="PHP"/>
+ *     &lt;enumeration value="PKR"/>
+ *     &lt;enumeration value="PLN"/>
+ *     &lt;enumeration value="PYG"/>
+ *     &lt;enumeration value="QAR"/>
+ *     &lt;enumeration value="ROL"/>
+ *     &lt;enumeration value="RUB"/>
+ *     &lt;enumeration value="RWF"/>
+ *     &lt;enumeration value="SAR"/>
+ *     &lt;enumeration value="SBD"/>
+ *     &lt;enumeration value="SCR"/>
+ *     &lt;enumeration value="SDD"/>
+ *     &lt;enumeration value="SEK"/>
+ *     &lt;enumeration value="SGD"/>
+ *     &lt;enumeration value="SHP"/>
+ *     &lt;enumeration value="SIT"/>
+ *     &lt;enumeration value="SKK"/>
+ *     &lt;enumeration value="SLL"/>
+ *     &lt;enumeration value="SOS"/>
+ *     &lt;enumeration value="SRD"/>
+ *     &lt;enumeration value="STD"/>
+ *     &lt;enumeration value="SVC"/>
+ *     &lt;enumeration value="SYP"/>
+ *     &lt;enumeration value="SZL"/>
+ *     &lt;enumeration value="THB"/>
+ *     &lt;enumeration value="TJS"/>
+ *     &lt;enumeration value="TMM"/>
+ *     &lt;enumeration value="TND"/>
+ *     &lt;enumeration value="TOP"/>
+ *     &lt;enumeration value="TRL"/>
+ *     &lt;enumeration value="TRY"/>
+ *     &lt;enumeration value="TTD"/>
+ *     &lt;enumeration value="TWD"/>
+ *     &lt;enumeration value="TZS"/>
+ *     &lt;enumeration value="UAH"/>
+ *     &lt;enumeration value="UGX"/>
+ *     &lt;enumeration value="USD"/>
+ *     &lt;enumeration value="UYU"/>
+ *     &lt;enumeration value="UZS"/>
+ *     &lt;enumeration value="VEB"/>
+ *     &lt;enumeration value="VND"/>
+ *     &lt;enumeration value="VUV"/>
+ *     &lt;enumeration value="WST"/>
+ *     &lt;enumeration value="XAF"/>
+ *     &lt;enumeration value="XCD"/>
+ *     &lt;enumeration value="XOF"/>
+ *     &lt;enumeration value="XPF"/>
+ *     &lt;enumeration value="XTS"/>
+ *     &lt;enumeration value="XXX"/>
+ *     &lt;enumeration value="YER"/>
+ *     &lt;enumeration value="ZAR"/>
+ *     &lt;enumeration value="ZMK"/>
+ *     &lt;enumeration value="ZWD"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "CurrencyCode")
+@XmlEnum
+public enum CurrencyCode {
+
+
+    /**
+     * Afghanistan: Afghani
+     * 
+     */
+    AFN,
+
+    /**
+     * Albanien: Lek
+     * 
+     */
+    ALL,
+
+    /**
+     * Armenien: Dram
+     * 
+     */
+    AMD,
+
+    /**
+     * Niederländische Antillen: Gulden
+     * 
+     */
+    ANG,
+
+    /**
+     * Angola: Kwanza
+     * 
+     */
+    AOA,
+
+    /**
+     * Argentinien: Peso
+     * 
+     */
+    ARS,
+
+    /**
+     * Australien: Dollar
+     * 
+     */
+    AUD,
+
+    /**
+     * Aruba: Florin
+     * 
+     */
+    AWG,
+
+    /**
+     * Aserbaidschan: Manat
+     * 
+     */
+    AZM,
+
+    /**
+     * Bosnien und Herzegowina: Konvertible Mark
+     * 
+     */
+    BAM,
+
+    /**
+     * Barbados: Dollar
+     * 
+     */
+    BBD,
+
+    /**
+     * Bangladesch: Taka
+     * 
+     */
+    BDT,
+
+    /**
+     * Bulgarien: Lew
+     * 
+     */
+    BGN,
+
+    /**
+     * Bahrain: Dinar
+     * 
+     */
+    BHD,
+
+    /**
+     * Bermuda: Dollar
+     * 
+     */
+    BMD,
+
+    /**
+     * Brunei: Dollar
+     * 
+     */
+    BND,
+
+    /**
+     * Bolivien: Boliviano
+     * 
+     */
+    BOB,
+
+    /**
+     * Brasilien: Real
+     * 
+     */
+    BRL,
+
+    /**
+     * Bahamas: Dollar
+     * 
+     */
+    BSD,
+
+    /**
+     * Bhutan: Ngultrum
+     * 
+     */
+    BTN,
+
+    /**
+     * Botswana: Pula
+     * 
+     */
+    BWP,
+
+    /**
+     * Weißrussland (Belarus): Rubel
+     * 
+     */
+    BYR,
+
+    /**
+     * Belize: Dollar
+     * 
+     */
+    BZD,
+
+    /**
+     * Kanada: Dollar
+     * 
+     */
+    CAD,
+
+    /**
+     * Demokratische Republik Kongo: Franc
+     * 
+     */
+    CDF,
+
+    /**
+     * Schweiz: Franken
+     * 
+     */
+    CHF,
+
+    /**
+     * Chile: Peso
+     * 
+     */
+    CLP,
+
+    /**
+     * China (Volksrepublik): Renminbi Yuan
+     * 
+     */
+    CNY,
+
+    /**
+     * Kolumbien: Peso
+     * 
+     */
+    COP,
+
+    /**
+     * Costa Rica: Colón
+     * 
+     */
+    CRC,
+
+    /**
+     * Serbien: Dinar
+     * 
+     */
+    CSD,
+
+    /**
+     * Kuba: Peso
+     * 
+     */
+    CUP,
+
+    /**
+     * Kap Verde: Escudo
+     * 
+     */
+    CVE,
+
+    /**
+     * Zypern (griechischer Teil): Pfund
+     * 
+     */
+    CYP,
+
+    /**
+     * Tschechien: Krone
+     * 
+     */
+    CZK,
+
+    /**
+     * Dschibuti: Franc
+     * 
+     */
+    DJV,
+
+    /**
+     * Dänemark: Krone
+     * 
+     */
+    DKK,
+
+    /**
+     * Dominikanische Republik: Peso
+     * 
+     */
+    DOP,
+
+    /**
+     * Algerien: Dinar
+     * 
+     */
+    DZD,
+
+    /**
+     * Ecuador (bis 2000): Sucre
+     * 
+     */
+    ECS,
+
+    /**
+     * Estland: Krone
+     * 
+     */
+    EEK,
+
+    /**
+     * Ägypten: Pfund
+     * 
+     */
+    EGP,
+
+    /**
+     * Äthiopien: Birr
+     * 
+     */
+    ETB,
+
+    /**
+     * Europäische Währungsunion: Euro
+     * 
+     */
+    EUR,
+
+    /**
+     * Fidschi: Dollar
+     * 
+     */
+    FJD,
+
+    /**
+     * Falklandinseln: Pfund
+     * 
+     */
+    FKP,
+
+    /**
+     * Vereinigtes Königreich: Pfund
+     * 
+     */
+    GBP,
+
+    /**
+     * Georgien: Lari
+     * 
+     */
+    GEL,
+
+    /**
+     * Ghana: Cedi
+     * 
+     */
+    GHC,
+
+    /**
+     * Gibraltar: Pfund
+     * 
+     */
+    GIP,
+
+    /**
+     * Gambia: Dalasi
+     * 
+     */
+    GMD,
+
+    /**
+     * Guinea: Franc
+     * 
+     */
+    GNF,
+
+    /**
+     * Guatemala: Quetzal
+     * 
+     */
+    GTQ,
+
+    /**
+     * Guyana: Dollar
+     * 
+     */
+    GYD,
+
+    /**
+     * Hongkong: Dollar
+     * 
+     */
+    HKD,
+
+    /**
+     * Honduras: Lempira
+     * 
+     */
+    HNL,
+
+    /**
+     * Kroatien: Kuna
+     * 
+     */
+    HRK,
+
+    /**
+     * Haiti: Gourde
+     * 
+     */
+    HTG,
+
+    /**
+     * Ungarn: Forint
+     * 
+     */
+    HUF,
+
+    /**
+     * Indonesien: Rupiah
+     * 
+     */
+    IDR,
+
+    /**
+     * Israel: Schekel
+     * 
+     */
+    ILS,
+
+    /**
+     * Indien: Rupie
+     * 
+     */
+    INR,
+
+    /**
+     * Irak: Dinar
+     * 
+     */
+    IQD,
+
+    /**
+     * Iran: Rial
+     * 
+     */
+    IRR,
+
+    /**
+     * Island: Krone
+     * 
+     */
+    ISK,
+
+    /**
+     * Jamaika: Dollar
+     * 
+     */
+    JMD,
+
+    /**
+     * Jordanien: Dinar
+     * 
+     */
+    JOD,
+
+    /**
+     * Japan: Yen
+     * 
+     */
+    JPY,
+
+    /**
+     * Kenia: Schilling
+     * 
+     */
+    KES,
+
+    /**
+     * Kirgisistan: Som
+     * 
+     */
+    KGS,
+
+    /**
+     * Kambodscha: Riel
+     * 
+     */
+    KHR,
+
+    /**
+     * Komoren: Franc
+     * 
+     */
+    KMF,
+
+    /**
+     * Nordkorea: Won
+     * 
+     */
+    KPW,
+
+    /**
+     * Südkorea: Won
+     * 
+     */
+    KRW,
+
+    /**
+     * Kuwait: Dinar
+     * 
+     */
+    KWD,
+
+    /**
+     * Kaimaninseln: Dollar
+     * 
+     */
+    KYD,
+
+    /**
+     * Kasachstan: Tenge
+     * 
+     */
+    KZT,
+
+    /**
+     * Laos: Kip
+     * 
+     */
+    LAK,
+
+    /**
+     * Libanon: Pfund
+     * 
+     */
+    LBP,
+
+    /**
+     * Sri Lanka: Rupie
+     * 
+     */
+    LKR,
+
+    /**
+     * Liberia: Dollar
+     * 
+     */
+    LRD,
+
+    /**
+     * Lesotho: Loti
+     * 
+     */
+    LSL,
+
+    /**
+     * Litauen: Litas
+     * 
+     */
+    LTL,
+
+    /**
+     * Lettland: Lats
+     * 
+     */
+    LVL,
+
+    /**
+     * Libyen: Dinar
+     * 
+     */
+    LYD,
+
+    /**
+     * Marokko: Dirham
+     * 
+     */
+    MAD,
+
+    /**
+     * Moldawien: Leu
+     * 
+     */
+    MDL,
+
+    /**
+     * Madagaskar: Franc
+     * 
+     */
+    MGF,
+
+    /**
+     * Mazedonien: Denar
+     * 
+     */
+    MKD,
+
+    /**
+     * Myanmar: Kyat
+     * 
+     */
+    MMK,
+
+    /**
+     * Mongolei: Tugrik
+     * 
+     */
+    MNT,
+
+    /**
+     * Macau: Pataca
+     * 
+     */
+    MOP,
+
+    /**
+     * Mauretanien: Ouguiya
+     * 
+     */
+    MRO,
+
+    /**
+     * Malta: Lira
+     * 
+     */
+    MTL,
+
+    /**
+     * Mauritius: Rupie
+     * 
+     */
+    MUR,
+
+    /**
+     * Malediven: Rufiyaa
+     * 
+     */
+    MVR,
+
+    /**
+     * Malawi: Kwacha
+     * 
+     */
+    MWK,
+
+    /**
+     * Mexiko: Peso
+     * 
+     */
+    MXN,
+
+    /**
+     * Malaysia: Ringgit
+     * 
+     */
+    MYR,
+
+    /**
+     * Mosambik: Metical
+     * 
+     */
+    MZM,
+
+    /**
+     * Namibia: Dollar
+     * 
+     */
+    NAD,
+
+    /**
+     * Nigeria: Naira
+     * 
+     */
+    NGN,
+
+    /**
+     * Nicaragua: Cordoba Oro
+     * 
+     */
+    NIO,
+
+    /**
+     * Norwegen: Krone
+     * 
+     */
+    NOK,
+
+    /**
+     * Nepal: Rupie
+     * 
+     */
+    NPR,
+
+    /**
+     * Neuseeland: Dollar
+     * 
+     */
+    NZD,
+
+    /**
+     * Oman: Rial
+     * 
+     */
+    OMR,
+
+    /**
+     * Panama: Balboa
+     * 
+     */
+    PAB,
+
+    /**
+     * Peru: Nuevo Sol
+     * 
+     */
+    PEN,
+
+    /**
+     * Papua-Neuguinea: Kina
+     * 
+     */
+    PGK,
+
+    /**
+     * Philippinen: Peso
+     * 
+     */
+    PHP,
+
+    /**
+     * Pakistan: Rupie
+     * 
+     */
+    PKR,
+
+    /**
+     * Polen: Zloty
+     * 
+     */
+    PLN,
+
+    /**
+     * Paraguay: Guaraní
+     * 
+     */
+    PYG,
+
+    /**
+     * Katar: Riyal
+     * 
+     */
+    QAR,
+
+    /**
+     * Rumänien: Leu
+     * 
+     */
+    ROL,
+
+    /**
+     * Russland: Rubel
+     * 
+     */
+    RUB,
+
+    /**
+     * Ruanda: Franc
+     * 
+     */
+    RWF,
+
+    /**
+     * Saudi-Arabien: Riyal
+     * 
+     */
+    SAR,
+
+    /**
+     * Salomonen: Dollar
+     * 
+     */
+    SBD,
+
+    /**
+     * Seychellen: Rupie
+     * 
+     */
+    SCR,
+
+    /**
+     * Sudan: Dinar
+     * 
+     */
+    SDD,
+
+    /**
+     * Schweden: Krone
+     * 
+     */
+    SEK,
+
+    /**
+     * Singapur: Dollar
+     * 
+     */
+    SGD,
+
+    /**
+     * St. Helena: Pfund
+     * 
+     */
+    SHP,
+
+    /**
+     * Slowenien: Tolar
+     * 
+     */
+    SIT,
+
+    /**
+     * Slowakei: Krone
+     * 
+     */
+    SKK,
+
+    /**
+     * Sierra Leone: Leone
+     * 
+     */
+    SLL,
+
+    /**
+     * Somalia: Schilling
+     * 
+     */
+    SOS,
+
+    /**
+     * Suriname: Dollar
+     * 
+     */
+    SRD,
+
+    /**
+     * São Tomé und Príncipe: Dobra
+     * 
+     */
+    STD,
+
+    /**
+     * El Salvador: Colón
+     * 
+     */
+    SVC,
+
+    /**
+     * Syrien: Pfund
+     * 
+     */
+    SYP,
+
+    /**
+     * Swasiland: Lilangeni
+     * 
+     */
+    SZL,
+
+    /**
+     * Thailand: Baht
+     * 
+     */
+    THB,
+
+    /**
+     * Tadschikistan: Somoni
+     * 
+     */
+    TJS,
+
+    /**
+     * Turkmenistan: Manat
+     * 
+     */
+    TMM,
+
+    /**
+     * Tunesien: Dinar
+     * 
+     */
+    TND,
+
+    /**
+     * Tonga: Pa'anga
+     * 
+     */
+    TOP,
+
+    /**
+     * Türkei: Lira
+     * 
+     */
+    TRL,
+
+    /**
+     * Türkei: Neue Lira (ab 2005)
+     * 
+     */
+    TRY,
+
+    /**
+     * Trinidad und Tobago: Dollar
+     * 
+     */
+    TTD,
+
+    /**
+     * Taiwan: Dollar
+     * 
+     */
+    TWD,
+
+    /**
+     * Tansania: Schilling
+     * 
+     */
+    TZS,
+
+    /**
+     * Ukraine: Hrywnja
+     * 
+     */
+    UAH,
+
+    /**
+     * Uganda: Shilling
+     * 
+     */
+    UGX,
+
+    /**
+     * USA: Dollar
+     * 
+     */
+    USD,
+
+    /**
+     * Uruguay: Peso
+     * 
+     */
+    UYU,
+
+    /**
+     * Usbekistan: Sum
+     * 
+     */
+    UZS,
+
+    /**
+     * Venezuela: Bolivar
+     * 
+     */
+    VEB,
+
+    /**
+     * Vietnam: Dong
+     * 
+     */
+    VND,
+
+    /**
+     * Vanuatu: Vatu
+     * 
+     */
+    VUV,
+
+    /**
+     * Samoa: Tala
+     * 
+     */
+    WST,
+
+    /**
+     * Zentralafrikanische Wirtschafts- und Währungsunion: CFA-Franc
+     * 
+     */
+    XAF,
+
+    /**
+     * Ostkaribische Währungsunion: Dollar
+     * 
+     */
+    XCD,
+
+    /**
+     * Westafrikanische Wirtschafts- und Währungsunion: CFA-Franc
+     * 
+     */
+    XOF,
+
+    /**
+     * Neukaledonien: CFP-Franc
+     * 
+     */
+    XPF,
+
+    /**
+     * Spezialcode für Testzwecke; keine existierende Währung
+     * 
+     */
+    XTS,
+
+    /**
+     * keine Währung
+     * 
+     */
+    XXX,
+
+    /**
+     * Jemen: Rial
+     * 
+     */
+    YER,
+
+    /**
+     * Südafrika: Rand
+     * 
+     */
+    ZAR,
+
+    /**
+     * Sambia: Kwacha
+     * 
+     */
+    ZMK,
+
+    /**
+     * Simbabwe: Dollar
+     * 
+     */
+    ZWD;
+
+    public String value() {
+        return name();
+    }
+
+    public static CurrencyCode fromValue(String v) {
+        return valueOf(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DSAKeyValueType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DSAKeyValueType.java
new file mode 100644
index 0000000..ad92499
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DSAKeyValueType.java
@@ -0,0 +1,227 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for DSAKeyValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DSAKeyValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;sequence minOccurs="0">
+ *           &lt;element name="P" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *           &lt;element name="Q" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *         &lt;/sequence>
+ *         &lt;element name="G" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"; minOccurs="0"/>
+ *         &lt;element name="Y" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *         &lt;element name="J" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"; minOccurs="0"/>
+ *         &lt;sequence minOccurs="0">
+ *           &lt;element name="Seed" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *           &lt;element name="PgenCounter" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *         &lt;/sequence>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DSAKeyValueType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "p",
+    "q",
+    "g",
+    "y",
+    "j",
+    "seed",
+    "pgenCounter"
+})
+public class DSAKeyValueType {
+
+    @XmlElement(name = "P")
+    protected byte[] p;
+    @XmlElement(name = "Q")
+    protected byte[] q;
+    @XmlElement(name = "G")
+    protected byte[] g;
+    @XmlElement(name = "Y", required = true)
+    protected byte[] y;
+    @XmlElement(name = "J")
+    protected byte[] j;
+    @XmlElement(name = "Seed")
+    protected byte[] seed;
+    @XmlElement(name = "PgenCounter")
+    protected byte[] pgenCounter;
+
+    /**
+     * Gets the value of the p property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getP() {
+        return p;
+    }
+
+    /**
+     * Sets the value of the p property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setP(byte[] value) {
+        this.p = value;
+    }
+
+    /**
+     * Gets the value of the q property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getQ() {
+        return q;
+    }
+
+    /**
+     * Sets the value of the q property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setQ(byte[] value) {
+        this.q = value;
+    }
+
+    /**
+     * Gets the value of the g property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getG() {
+        return g;
+    }
+
+    /**
+     * Sets the value of the g property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setG(byte[] value) {
+        this.g = value;
+    }
+
+    /**
+     * Gets the value of the y property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getY() {
+        return y;
+    }
+
+    /**
+     * Sets the value of the y property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setY(byte[] value) {
+        this.y = value;
+    }
+
+    /**
+     * Gets the value of the j property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getJ() {
+        return j;
+    }
+
+    /**
+     * Sets the value of the j property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setJ(byte[] value) {
+        this.j = value;
+    }
+
+    /**
+     * Gets the value of the seed property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getSeed() {
+        return seed;
+    }
+
+    /**
+     * Sets the value of the seed property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setSeed(byte[] value) {
+        this.seed = value;
+    }
+
+    /**
+     * Gets the value of the pgenCounter property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getPgenCounter() {
+        return pgenCounter;
+    }
+
+    /**
+     * Sets the value of the pgenCounter property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setPgenCounter(byte[] value) {
+        this.pgenCounter = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataDigestType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataDigestType.java
new file mode 100644
index 0000000..60f9a15
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataDigestType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for DataDigestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DataDigestType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;urn:org:ebics:H004>DigestType">
+ *       &lt;attribute name="SignatureVersion" 
type="{urn:org:ebics:H004}SignatureVersionType" default="A004" />
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DataDigestType", propOrder = {
+    "value"
+})
+public class DataDigestType {
+
+    @XmlValue
+    protected byte[] value;
+    @XmlAttribute(name = "SignatureVersion")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String signatureVersion;
+
+    /**
+     * Datentyp für Hashwerte.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setValue(byte[] value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the signatureVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSignatureVersion() {
+        if (signatureVersion == null) {
+            return "A004";
+        } else {
+            return signatureVersion;
+        }
+    }
+
+    /**
+     * Sets the value of the signatureVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSignatureVersion(String value) {
+        this.signatureVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataEncryptionInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataEncryptionInfoType.java
new file mode 100644
index 0000000..43fbd34
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataEncryptionInfoType.java
@@ -0,0 +1,206 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for the modelling of information regarding the encryption of 
signature and order data.
+ * 
+ * <p>Java class for DataEncryptionInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DataEncryptionInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="EncryptionPubKeyDigest">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;urn:org:ebics:H004>PubKeyDigestType">
+ *                 &lt;attribute name="Version" use="required" 
type="{urn:org:ebics:H004}EncryptionVersionType" />
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="TransactionKey" 
type="{urn:org:ebics:H004}SymmetricKeyType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DataEncryptionInfoType", propOrder = {
+    "encryptionPubKeyDigest",
+    "transactionKey",
+    "any"
+})
+@XmlSeeAlso({
+    
tech.libeufin.messages.ebics.keyresponse.EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo.class,
+    
tech.libeufin.messages.ebics.keyresponse.DataTransferRequestType.DataEncryptionInfo.class,
+    
tech.libeufin.messages.ebics.keyresponse.DataTransferResponseType.DataEncryptionInfo.class
+})
+public class DataEncryptionInfoType {
+
+    @XmlElement(name = "EncryptionPubKeyDigest", required = true)
+    protected DataEncryptionInfoType.EncryptionPubKeyDigest 
encryptionPubKeyDigest;
+    @XmlElement(name = "TransactionKey", required = true)
+    protected byte[] transactionKey;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the encryptionPubKeyDigest property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataEncryptionInfoType.EncryptionPubKeyDigest }
+     *     
+     */
+    public DataEncryptionInfoType.EncryptionPubKeyDigest 
getEncryptionPubKeyDigest() {
+        return encryptionPubKeyDigest;
+    }
+
+    /**
+     * Sets the value of the encryptionPubKeyDigest property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataEncryptionInfoType.EncryptionPubKeyDigest }
+     *     
+     */
+    public void 
setEncryptionPubKeyDigest(DataEncryptionInfoType.EncryptionPubKeyDigest value) {
+        this.encryptionPubKeyDigest = value;
+    }
+
+    /**
+     * Gets the value of the transactionKey property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getTransactionKey() {
+        return transactionKey;
+    }
+
+    /**
+     * Sets the value of the transactionKey property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setTransactionKey(byte[] value) {
+        this.transactionKey = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>PubKeyDigestType">
+     *       &lt;attribute name="Version" use="required" 
type="{urn:org:ebics:H004}EncryptionVersionType" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class EncryptionPubKeyDigest
+        extends PubKeyDigestType
+    {
+
+        @XmlAttribute(name = "Version", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String version;
+
+        /**
+         * Gets the value of the version property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getVersion() {
+            return version;
+        }
+
+        /**
+         * Sets the value of the version property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setVersion(String value) {
+            this.version = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataTransferRequestType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataTransferRequestType.java
new file mode 100644
index 0000000..65bc6f8
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataTransferRequestType.java
@@ -0,0 +1,386 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für den Transfer von Auftragsdaten (Anfrage).
+ * 
+ * <p>Java class for DataTransferRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DataTransferRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;choice>
+ *           &lt;sequence>
+ *             &lt;element name="DataEncryptionInfo">
+ *               &lt;complexType>
+ *                 &lt;complexContent>
+ *                   &lt;extension 
base="{urn:org:ebics:H004}DataEncryptionInfoType">
+ *                     &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                   &lt;/extension>
+ *                 &lt;/complexContent>
+ *               &lt;/complexType>
+ *             &lt;/element>
+ *             &lt;element name="SignatureData">
+ *               &lt;complexType>
+ *                 &lt;simpleContent>
+ *                   &lt;extension 
base="&lt;urn:org:ebics:H004>SignatureDataType">
+ *                     &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                   &lt;/extension>
+ *                 &lt;/simpleContent>
+ *               &lt;/complexType>
+ *             &lt;/element>
+ *           &lt;/sequence>
+ *           &lt;sequence>
+ *             &lt;element name="OrderData">
+ *               &lt;complexType>
+ *                 &lt;simpleContent>
+ *                   &lt;extension base="&lt;urn:org:ebics:H004>OrderDataType">
+ *                     &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+ *                   &lt;/extension>
+ *                 &lt;/simpleContent>
+ *               &lt;/complexType>
+ *             &lt;/element>
+ *           &lt;/sequence>
+ *         &lt;/choice>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DataTransferRequestType", propOrder = {
+    "dataEncryptionInfo",
+    "signatureData",
+    "orderData",
+    "any"
+})
+public class DataTransferRequestType {
+
+    @XmlElement(name = "DataEncryptionInfo")
+    protected DataTransferRequestType.DataEncryptionInfo dataEncryptionInfo;
+    @XmlElement(name = "SignatureData")
+    protected DataTransferRequestType.SignatureData signatureData;
+    @XmlElement(name = "OrderData")
+    protected DataTransferRequestType.OrderData orderData;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the dataEncryptionInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataTransferRequestType.DataEncryptionInfo }
+     *     
+     */
+    public DataTransferRequestType.DataEncryptionInfo getDataEncryptionInfo() {
+        return dataEncryptionInfo;
+    }
+
+    /**
+     * Sets the value of the dataEncryptionInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataTransferRequestType.DataEncryptionInfo }
+     *     
+     */
+    public void 
setDataEncryptionInfo(DataTransferRequestType.DataEncryptionInfo value) {
+        this.dataEncryptionInfo = value;
+    }
+
+    /**
+     * Gets the value of the signatureData property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataTransferRequestType.SignatureData }
+     *     
+     */
+    public DataTransferRequestType.SignatureData getSignatureData() {
+        return signatureData;
+    }
+
+    /**
+     * Sets the value of the signatureData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataTransferRequestType.SignatureData }
+     *     
+     */
+    public void setSignatureData(DataTransferRequestType.SignatureData value) {
+        this.signatureData = value;
+    }
+
+    /**
+     * Gets the value of the orderData property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataTransferRequestType.OrderData }
+     *     
+     */
+    public DataTransferRequestType.OrderData getOrderData() {
+        return orderData;
+    }
+
+    /**
+     * Sets the value of the orderData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataTransferRequestType.OrderData }
+     *     
+     */
+    public void setOrderData(DataTransferRequestType.OrderData value) {
+        this.orderData = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;extension base="{urn:org:ebics:H004}DataEncryptionInfoType">
+     *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *     &lt;/extension>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class DataEncryptionInfo
+        extends DataEncryptionInfoType
+    {
+
+        @XmlAttribute(name = "authenticate", required = true)
+        protected boolean authenticate;
+
+        /**
+         * Gets the value of the authenticate property.
+         * 
+         */
+        public boolean isAuthenticate() {
+            return authenticate;
+        }
+
+        /**
+         * Sets the value of the authenticate property.
+         * 
+         */
+        public void setAuthenticate(boolean value) {
+            this.authenticate = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>OrderDataType">
+     *       &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class OrderData {
+
+        @XmlValue
+        protected byte[] value;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Datentyp für binäre Auftragsdaten (komprimiert, verschlüsselt und 
kodiert).
+         * 
+         * @return
+         *     possible object is
+         *     byte[]
+         */
+        public byte[] getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     byte[]
+         */
+        public void setValue(byte[] value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>SignatureDataType">
+     *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class SignatureData {
+
+        @XmlValue
+        protected byte[] value;
+        @XmlAttribute(name = "authenticate", required = true)
+        protected boolean authenticate;
+
+        /**
+         * Datentyp für binäre Signaturdaten (komprimiert, verschlüsselt und 
kodiert).
+         * 
+         * @return
+         *     possible object is
+         *     byte[]
+         */
+        public byte[] getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     byte[]
+         */
+        public void setValue(byte[] value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the authenticate property.
+         * 
+         */
+        public boolean isAuthenticate() {
+            return authenticate;
+        }
+
+        /**
+         * Sets the value of the authenticate property.
+         * 
+         */
+        public void setAuthenticate(boolean value) {
+            this.authenticate = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataTransferResponseType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataTransferResponseType.java
new file mode 100644
index 0000000..c6af887
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DataTransferResponseType.java
@@ -0,0 +1,355 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für den Transfer von Auftragsdaten (Antwort).
+ * 
+ * <p>Java class for DataTransferResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DataTransferResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;sequence minOccurs="0">
+ *           &lt;element name="DataEncryptionInfo">
+ *             &lt;complexType>
+ *               &lt;complexContent>
+ *                 &lt;extension 
base="{urn:org:ebics:H004}DataEncryptionInfoType">
+ *                   &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                 &lt;/extension>
+ *               &lt;/complexContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *           &lt;element name="SignatureData" maxOccurs="0" minOccurs="0">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;urn:org:ebics:H004>SignatureDataType">
+ *                   &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *         &lt;/sequence>
+ *         &lt;element name="OrderData">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;urn:org:ebics:H004>OrderDataType">
+ *                 &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DataTransferResponseType", propOrder = {
+    "dataEncryptionInfo",
+    "orderData",
+    "any"
+})
+public class DataTransferResponseType {
+
+    @XmlElement(name = "DataEncryptionInfo")
+    protected DataTransferResponseType.DataEncryptionInfo dataEncryptionInfo;
+    @XmlElement(name = "OrderData", required = true)
+    protected DataTransferResponseType.OrderData orderData;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the dataEncryptionInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataTransferResponseType.DataEncryptionInfo }
+     *     
+     */
+    public DataTransferResponseType.DataEncryptionInfo getDataEncryptionInfo() 
{
+        return dataEncryptionInfo;
+    }
+
+    /**
+     * Sets the value of the dataEncryptionInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataTransferResponseType.DataEncryptionInfo }
+     *     
+     */
+    public void 
setDataEncryptionInfo(DataTransferResponseType.DataEncryptionInfo value) {
+        this.dataEncryptionInfo = value;
+    }
+
+    /**
+     * Gets the value of the orderData property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataTransferResponseType.OrderData }
+     *     
+     */
+    public DataTransferResponseType.OrderData getOrderData() {
+        return orderData;
+    }
+
+    /**
+     * Sets the value of the orderData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataTransferResponseType.OrderData }
+     *     
+     */
+    public void setOrderData(DataTransferResponseType.OrderData value) {
+        this.orderData = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;extension base="{urn:org:ebics:H004}DataEncryptionInfoType">
+     *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *     &lt;/extension>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class DataEncryptionInfo
+        extends DataEncryptionInfoType
+    {
+
+        @XmlAttribute(name = "authenticate", required = true)
+        protected boolean authenticate;
+
+        /**
+         * Gets the value of the authenticate property.
+         * 
+         */
+        public boolean isAuthenticate() {
+            return authenticate;
+        }
+
+        /**
+         * Sets the value of the authenticate property.
+         * 
+         */
+        public void setAuthenticate(boolean value) {
+            this.authenticate = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>OrderDataType">
+     *       &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class OrderData {
+
+        @XmlValue
+        protected byte[] value;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Datentyp für binäre Auftragsdaten (komprimiert, verschlüsselt und 
kodiert).
+         * 
+         * @return
+         *     possible object is
+         *     byte[]
+         */
+        public byte[] getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     byte[]
+         */
+        public void setValue(byte[] value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>SignatureDataType">
+     *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class SignatureData {
+
+        @XmlValue
+        protected byte[] value;
+        @XmlAttribute(name = "authenticate", required = true)
+        protected boolean authenticate;
+
+        /**
+         * Datentyp für binäre Signaturdaten (komprimiert, verschlüsselt und 
kodiert).
+         * 
+         * @return
+         *     possible object is
+         *     byte[]
+         */
+        public byte[] getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     byte[]
+         */
+        public void setValue(byte[] value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the authenticate property.
+         * 
+         */
+        public boolean isAuthenticate() {
+            return authenticate;
+        }
+
+        /**
+         * Sets the value of the authenticate property.
+         * 
+         */
+        public void setAuthenticate(boolean value) {
+            this.authenticate = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DigestMethodType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DigestMethodType.java
new file mode 100644
index 0000000..2f84a68
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/DigestMethodType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for DigestMethodType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="DigestMethodType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Algorithm" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DigestMethodType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class DigestMethodType {
+
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Algorithm", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String algorithm;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the algorithm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Sets the value of the algorithm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAlgorithm(String value) {
+        this.algorithm = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EbicsKeyManagementResponse.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EbicsKeyManagementResponse.java
new file mode 100644
index 0000000..89813f4
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EbicsKeyManagementResponse.java
@@ -0,0 +1,927 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="header">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;sequence>
+ *                   &lt;element name="static">
+ *                     &lt;complexType>
+ *                       &lt;complexContent>
+ *                         &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                           &lt;sequence>
+ *                           &lt;/sequence>
+ *                         &lt;/restriction>
+ *                       &lt;/complexContent>
+ *                     &lt;/complexType>
+ *                   &lt;/element>
+ *                   &lt;element name="mutable" 
type="{urn:org:ebics:H004}KeyMgmntResponseMutableHeaderType"/>
+ *                 &lt;/sequence>
+ *                 &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="body">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;sequence>
+ *                   &lt;element name="DataTransfer" minOccurs="0">
+ *                     &lt;complexType>
+ *                       &lt;complexContent>
+ *                         &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                           &lt;sequence>
+ *                             &lt;element name="DataEncryptionInfo">
+ *                               &lt;complexType>
+ *                                 &lt;complexContent>
+ *                                   &lt;extension 
base="{urn:org:ebics:H004}DataEncryptionInfoType">
+ *                                     &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                                   &lt;/extension>
+ *                                 &lt;/complexContent>
+ *                               &lt;/complexType>
+ *                             &lt;/element>
+ *                             &lt;element name="OrderData">
+ *                               &lt;complexType>
+ *                                 &lt;simpleContent>
+ *                                   &lt;extension 
base="&lt;urn:org:ebics:H004>OrderDataType">
+ *                                     &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+ *                                   &lt;/extension>
+ *                                 &lt;/simpleContent>
+ *                               &lt;/complexType>
+ *                             &lt;/element>
+ *                             &lt;any processContents='lax' 
namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ *                           &lt;/sequence>
+ *                         &lt;/restriction>
+ *                       &lt;/complexContent>
+ *                     &lt;/complexType>
+ *                   &lt;/element>
+ *                   &lt;element name="ReturnCode">
+ *                     &lt;complexType>
+ *                       &lt;simpleContent>
+ *                         &lt;extension 
base="&lt;urn:org:ebics:H004>ReturnCodeType">
+ *                           &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                         &lt;/extension>
+ *                       &lt;/simpleContent>
+ *                     &lt;/complexType>
+ *                   &lt;/element>
+ *                   &lt;element name="TimestampBankParameter" minOccurs="0">
+ *                     &lt;complexType>
+ *                       &lt;simpleContent>
+ *                         &lt;extension 
base="&lt;urn:org:ebics:H004>TimestampType">
+ *                           &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+ *                         &lt;/extension>
+ *                       &lt;/simpleContent>
+ *                     &lt;/complexType>
+ *                   &lt;/element>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *       &lt;attGroup ref="{urn:org:ebics:H004}VersionAttrGroup"/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "header",
+    "body"
+})
+@XmlRootElement(name = "ebicsKeyManagementResponse")
+public class EbicsKeyManagementResponse {
+
+    @XmlElement(required = true)
+    protected EbicsKeyManagementResponse.Header header;
+    @XmlElement(required = true)
+    protected EbicsKeyManagementResponse.Body body;
+    @XmlAttribute(name = "Version", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String version;
+    @XmlAttribute(name = "Revision")
+    protected Integer revision;
+
+    /**
+     * Gets the value of the header property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EbicsKeyManagementResponse.Header }
+     *     
+     */
+    public EbicsKeyManagementResponse.Header getHeader() {
+        return header;
+    }
+
+    /**
+     * Sets the value of the header property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EbicsKeyManagementResponse.Header }
+     *     
+     */
+    public void setHeader(EbicsKeyManagementResponse.Header value) {
+        this.header = value;
+    }
+
+    /**
+     * Gets the value of the body property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EbicsKeyManagementResponse.Body }
+     *     
+     */
+    public EbicsKeyManagementResponse.Body getBody() {
+        return body;
+    }
+
+    /**
+     * Sets the value of the body property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EbicsKeyManagementResponse.Body }
+     *     
+     */
+    public void setBody(EbicsKeyManagementResponse.Body value) {
+        this.body = value;
+    }
+
+    /**
+     * Gets the value of the version property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getVersion() {
+        return version;
+    }
+
+    /**
+     * Sets the value of the version property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setVersion(String value) {
+        this.version = value;
+    }
+
+    /**
+     * Gets the value of the revision property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Integer }
+     *     
+     */
+    public Integer getRevision() {
+        return revision;
+    }
+
+    /**
+     * Sets the value of the revision property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Integer }
+     *     
+     */
+    public void setRevision(Integer value) {
+        this.revision = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;sequence>
+     *         &lt;element name="DataTransfer" minOccurs="0">
+     *           &lt;complexType>
+     *             &lt;complexContent>
+     *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *                 &lt;sequence>
+     *                   &lt;element name="DataEncryptionInfo">
+     *                     &lt;complexType>
+     *                       &lt;complexContent>
+     *                         &lt;extension 
base="{urn:org:ebics:H004}DataEncryptionInfoType">
+     *                           &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *                         &lt;/extension>
+     *                       &lt;/complexContent>
+     *                     &lt;/complexType>
+     *                   &lt;/element>
+     *                   &lt;element name="OrderData">
+     *                     &lt;complexType>
+     *                       &lt;simpleContent>
+     *                         &lt;extension 
base="&lt;urn:org:ebics:H004>OrderDataType">
+     *                           &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+     *                         &lt;/extension>
+     *                       &lt;/simpleContent>
+     *                     &lt;/complexType>
+     *                   &lt;/element>
+     *                   &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+     *                 &lt;/sequence>
+     *               &lt;/restriction>
+     *             &lt;/complexContent>
+     *           &lt;/complexType>
+     *         &lt;/element>
+     *         &lt;element name="ReturnCode">
+     *           &lt;complexType>
+     *             &lt;simpleContent>
+     *               &lt;extension 
base="&lt;urn:org:ebics:H004>ReturnCodeType">
+     *                 &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *               &lt;/extension>
+     *             &lt;/simpleContent>
+     *           &lt;/complexType>
+     *         &lt;/element>
+     *         &lt;element name="TimestampBankParameter" minOccurs="0">
+     *           &lt;complexType>
+     *             &lt;simpleContent>
+     *               &lt;extension base="&lt;urn:org:ebics:H004>TimestampType">
+     *                 &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *               &lt;/extension>
+     *             &lt;/simpleContent>
+     *           &lt;/complexType>
+     *         &lt;/element>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "dataTransfer",
+        "returnCode",
+        "timestampBankParameter"
+    })
+    public static class Body {
+
+        @XmlElement(name = "DataTransfer")
+        protected EbicsKeyManagementResponse.Body.DataTransfer dataTransfer;
+        @XmlElement(name = "ReturnCode", required = true)
+        protected EbicsKeyManagementResponse.Body.ReturnCode returnCode;
+        @XmlElement(name = "TimestampBankParameter")
+        protected EbicsKeyManagementResponse.Body.TimestampBankParameter 
timestampBankParameter;
+
+        /**
+         * Gets the value of the dataTransfer property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link EbicsKeyManagementResponse.Body.DataTransfer }
+         *     
+         */
+        public EbicsKeyManagementResponse.Body.DataTransfer getDataTransfer() {
+            return dataTransfer;
+        }
+
+        /**
+         * Sets the value of the dataTransfer property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link EbicsKeyManagementResponse.Body.DataTransfer }
+         *     
+         */
+        public void 
setDataTransfer(EbicsKeyManagementResponse.Body.DataTransfer value) {
+            this.dataTransfer = value;
+        }
+
+        /**
+         * Gets the value of the returnCode property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link EbicsKeyManagementResponse.Body.ReturnCode }
+         *     
+         */
+        public EbicsKeyManagementResponse.Body.ReturnCode getReturnCode() {
+            return returnCode;
+        }
+
+        /**
+         * Sets the value of the returnCode property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link EbicsKeyManagementResponse.Body.ReturnCode }
+         *     
+         */
+        public void setReturnCode(EbicsKeyManagementResponse.Body.ReturnCode 
value) {
+            this.returnCode = value;
+        }
+
+        /**
+         * Gets the value of the timestampBankParameter property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link EbicsKeyManagementResponse.Body.TimestampBankParameter }
+         *     
+         */
+        public EbicsKeyManagementResponse.Body.TimestampBankParameter 
getTimestampBankParameter() {
+            return timestampBankParameter;
+        }
+
+        /**
+         * Sets the value of the timestampBankParameter property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link EbicsKeyManagementResponse.Body.TimestampBankParameter }
+         *     
+         */
+        public void 
setTimestampBankParameter(EbicsKeyManagementResponse.Body.TimestampBankParameter
 value) {
+            this.timestampBankParameter = value;
+        }
+
+
+        /**
+         * <p>Java class for anonymous complex type.
+         * 
+         * <p>The following schema fragment specifies the expected content 
contained within this class.
+         * 
+         * <pre>
+         * &lt;complexType>
+         *   &lt;complexContent>
+         *     &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+         *       &lt;sequence>
+         *         &lt;element name="DataEncryptionInfo">
+         *           &lt;complexType>
+         *             &lt;complexContent>
+         *               &lt;extension 
base="{urn:org:ebics:H004}DataEncryptionInfoType">
+         *                 &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+         *               &lt;/extension>
+         *             &lt;/complexContent>
+         *           &lt;/complexType>
+         *         &lt;/element>
+         *         &lt;element name="OrderData">
+         *           &lt;complexType>
+         *             &lt;simpleContent>
+         *               &lt;extension 
base="&lt;urn:org:ebics:H004>OrderDataType">
+         *                 &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+         *               &lt;/extension>
+         *             &lt;/simpleContent>
+         *           &lt;/complexType>
+         *         &lt;/element>
+         *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+         *       &lt;/sequence>
+         *     &lt;/restriction>
+         *   &lt;/complexContent>
+         * &lt;/complexType>
+         * </pre>
+         * 
+         * 
+         */
+        @XmlAccessorType(XmlAccessType.FIELD)
+        @XmlType(name = "", propOrder = {
+            "dataEncryptionInfo",
+            "orderData",
+            "any"
+        })
+        public static class DataTransfer {
+
+            @XmlElement(name = "DataEncryptionInfo", required = true)
+            protected 
EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo 
dataEncryptionInfo;
+            @XmlElement(name = "OrderData", required = true)
+            protected EbicsKeyManagementResponse.Body.DataTransfer.OrderData 
orderData;
+            @XmlAnyElement(lax = true)
+            protected List<Object> any;
+
+            /**
+             * Gets the value of the dataEncryptionInfo property.
+             * 
+             * @return
+             *     possible object is
+             *     {@link 
EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo }
+             *     
+             */
+            public 
EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo 
getDataEncryptionInfo() {
+                return dataEncryptionInfo;
+            }
+
+            /**
+             * Sets the value of the dataEncryptionInfo property.
+             * 
+             * @param value
+             *     allowed object is
+             *     {@link 
EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo }
+             *     
+             */
+            public void 
setDataEncryptionInfo(EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo
 value) {
+                this.dataEncryptionInfo = value;
+            }
+
+            /**
+             * Gets the value of the orderData property.
+             * 
+             * @return
+             *     possible object is
+             *     {@link 
EbicsKeyManagementResponse.Body.DataTransfer.OrderData }
+             *     
+             */
+            public EbicsKeyManagementResponse.Body.DataTransfer.OrderData 
getOrderData() {
+                return orderData;
+            }
+
+            /**
+             * Sets the value of the orderData property.
+             * 
+             * @param value
+             *     allowed object is
+             *     {@link 
EbicsKeyManagementResponse.Body.DataTransfer.OrderData }
+             *     
+             */
+            public void 
setOrderData(EbicsKeyManagementResponse.Body.DataTransfer.OrderData value) {
+                this.orderData = value;
+            }
+
+            /**
+             * Gets the value of the any property.
+             * 
+             * <p>
+             * This accessor method returns a reference to the live list,
+             * not a snapshot. Therefore any modification you make to the
+             * returned list will be present inside the JAXB object.
+             * This is why there is not a <CODE>set</CODE> method for the any 
property.
+             * 
+             * <p>
+             * For example, to add a new item, do as follows:
+             * <pre>
+             *    getAny().add(newItem);
+             * </pre>
+             * 
+             * 
+             * <p>
+             * Objects of the following type(s) are allowed in the list
+             * {@link Element }
+             * {@link Object }
+             * 
+             * 
+             */
+            public List<Object> getAny() {
+                if (any == null) {
+                    any = new ArrayList<Object>();
+                }
+                return this.any;
+            }
+
+
+            /**
+             * <p>Java class for anonymous complex type.
+             * 
+             * <p>The following schema fragment specifies the expected content 
contained within this class.
+             * 
+             * <pre>
+             * &lt;complexType>
+             *   &lt;complexContent>
+             *     &lt;extension 
base="{urn:org:ebics:H004}DataEncryptionInfoType">
+             *       &lt;attGroup 
ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+             *     &lt;/extension>
+             *   &lt;/complexContent>
+             * &lt;/complexType>
+             * </pre>
+             * 
+             * 
+             */
+            @XmlAccessorType(XmlAccessType.FIELD)
+            @XmlType(name = "")
+            public static class DataEncryptionInfo
+                extends DataEncryptionInfoType
+            {
+
+                @XmlAttribute(name = "authenticate", required = true)
+                protected boolean authenticate;
+
+                /**
+                 * Gets the value of the authenticate property.
+                 * 
+                 */
+                public boolean isAuthenticate() {
+                    return authenticate;
+                }
+
+                /**
+                 * Sets the value of the authenticate property.
+                 * 
+                 */
+                public void setAuthenticate(boolean value) {
+                    this.authenticate = value;
+                }
+
+            }
+
+
+            /**
+             * <p>Java class for anonymous complex type.
+             * 
+             * <p>The following schema fragment specifies the expected content 
contained within this class.
+             * 
+             * <pre>
+             * &lt;complexType>
+             *   &lt;simpleContent>
+             *     &lt;extension base="&lt;urn:org:ebics:H004>OrderDataType">
+             *       &lt;anyAttribute processContents='lax' 
namespace='urn:org:ebics:H004'/>
+             *     &lt;/extension>
+             *   &lt;/simpleContent>
+             * &lt;/complexType>
+             * </pre>
+             * 
+             * 
+             */
+            @XmlAccessorType(XmlAccessType.FIELD)
+            @XmlType(name = "", propOrder = {
+                "value"
+            })
+            public static class OrderData {
+
+                @XmlValue
+                protected byte[] value;
+                @XmlAnyAttribute
+                private Map<QName, String> otherAttributes = new 
HashMap<QName, String>();
+
+                /**
+                 * Datentyp für binäre Auftragsdaten (komprimiert, 
verschlüsselt und kodiert).
+                 * 
+                 * @return
+                 *     possible object is
+                 *     byte[]
+                 */
+                public byte[] getValue() {
+                    return value;
+                }
+
+                /**
+                 * Sets the value of the value property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     byte[]
+                 */
+                public void setValue(byte[] value) {
+                    this.value = value;
+                }
+
+                /**
+                 * Gets a map that contains attributes that aren't bound to 
any typed property on this class.
+                 * 
+                 * <p>
+                 * the map is keyed by the name of the attribute and 
+                 * the value is the string value of the attribute.
+                 * 
+                 * the map returned by this method is live, and you can add 
new attribute
+                 * by updating the map directly. Because of this design, 
there's no setter.
+                 * 
+                 * 
+                 * @return
+                 *     always non-null
+                 */
+                public Map<QName, String> getOtherAttributes() {
+                    return otherAttributes;
+                }
+
+            }
+
+        }
+
+
+        /**
+         * <p>Java class for anonymous complex type.
+         * 
+         * <p>The following schema fragment specifies the expected content 
contained within this class.
+         * 
+         * <pre>
+         * &lt;complexType>
+         *   &lt;simpleContent>
+         *     &lt;extension base="&lt;urn:org:ebics:H004>ReturnCodeType">
+         *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+         *     &lt;/extension>
+         *   &lt;/simpleContent>
+         * &lt;/complexType>
+         * </pre>
+         * 
+         * 
+         */
+        @XmlAccessorType(XmlAccessType.FIELD)
+        @XmlType(name = "", propOrder = {
+            "value"
+        })
+        public static class ReturnCode {
+
+            @XmlValue
+            @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+            protected String value;
+            @XmlAttribute(name = "authenticate", required = true)
+            protected boolean authenticate;
+
+            /**
+             * Datentyp für Antwortcodes.
+             * 
+             * @return
+             *     possible object is
+             *     {@link String }
+             *     
+             */
+            public String getValue() {
+                return value;
+            }
+
+            /**
+             * Sets the value of the value property.
+             * 
+             * @param value
+             *     allowed object is
+             *     {@link String }
+             *     
+             */
+            public void setValue(String value) {
+                this.value = value;
+            }
+
+            /**
+             * Gets the value of the authenticate property.
+             * 
+             */
+            public boolean isAuthenticate() {
+                return authenticate;
+            }
+
+            /**
+             * Sets the value of the authenticate property.
+             * 
+             */
+            public void setAuthenticate(boolean value) {
+                this.authenticate = value;
+            }
+
+        }
+
+
+        /**
+         * <p>Java class for anonymous complex type.
+         * 
+         * <p>The following schema fragment specifies the expected content 
contained within this class.
+         * 
+         * <pre>
+         * &lt;complexType>
+         *   &lt;simpleContent>
+         *     &lt;extension base="&lt;urn:org:ebics:H004>TimestampType">
+         *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+         *     &lt;/extension>
+         *   &lt;/simpleContent>
+         * &lt;/complexType>
+         * </pre>
+         * 
+         * 
+         */
+        @XmlAccessorType(XmlAccessType.FIELD)
+        @XmlType(name = "", propOrder = {
+            "value"
+        })
+        public static class TimestampBankParameter {
+
+            @XmlValue
+            protected XMLGregorianCalendar value;
+            @XmlAttribute(name = "authenticate", required = true)
+            protected boolean authenticate;
+
+            /**
+             * Datentyp für Zeitstempel.
+             * 
+             * @return
+             *     possible object is
+             *     {@link XMLGregorianCalendar }
+             *     
+             */
+            public XMLGregorianCalendar getValue() {
+                return value;
+            }
+
+            /**
+             * Sets the value of the value property.
+             * 
+             * @param value
+             *     allowed object is
+             *     {@link XMLGregorianCalendar }
+             *     
+             */
+            public void setValue(XMLGregorianCalendar value) {
+                this.value = value;
+            }
+
+            /**
+             * Gets the value of the authenticate property.
+             * 
+             */
+            public boolean isAuthenticate() {
+                return authenticate;
+            }
+
+            /**
+             * Sets the value of the authenticate property.
+             * 
+             */
+            public void setAuthenticate(boolean value) {
+                this.authenticate = value;
+            }
+
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;sequence>
+     *         &lt;element name="static">
+     *           &lt;complexType>
+     *             &lt;complexContent>
+     *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *                 &lt;sequence>
+     *                 &lt;/sequence>
+     *               &lt;/restriction>
+     *             &lt;/complexContent>
+     *           &lt;/complexType>
+     *         &lt;/element>
+     *         &lt;element name="mutable" 
type="{urn:org:ebics:H004}KeyMgmntResponseMutableHeaderType"/>
+     *       &lt;/sequence>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}AuthenticationMarker"/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "_static",
+        "mutable"
+    })
+    public static class Header {
+
+        @XmlElement(name = "static", required = true)
+        protected EbicsKeyManagementResponse.Header.Static _static;
+        @XmlElement(required = true)
+        protected KeyMgmntResponseMutableHeaderType mutable;
+        @XmlAttribute(name = "authenticate", required = true)
+        protected boolean authenticate;
+
+        /**
+         * Gets the value of the static property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link EbicsKeyManagementResponse.Header.Static }
+         *     
+         */
+        public EbicsKeyManagementResponse.Header.Static getStatic() {
+            return _static;
+        }
+
+        /**
+         * Sets the value of the static property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link EbicsKeyManagementResponse.Header.Static }
+         *     
+         */
+        public void setStatic(EbicsKeyManagementResponse.Header.Static value) {
+            this._static = value;
+        }
+
+        /**
+         * Gets the value of the mutable property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link KeyMgmntResponseMutableHeaderType }
+         *     
+         */
+        public KeyMgmntResponseMutableHeaderType getMutable() {
+            return mutable;
+        }
+
+        /**
+         * Sets the value of the mutable property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link KeyMgmntResponseMutableHeaderType }
+         *     
+         */
+        public void setMutable(KeyMgmntResponseMutableHeaderType value) {
+            this.mutable = value;
+        }
+
+        /**
+         * Gets the value of the authenticate property.
+         * 
+         */
+        public boolean isAuthenticate() {
+            return authenticate;
+        }
+
+        /**
+         * Sets the value of the authenticate property.
+         * 
+         */
+        public void setAuthenticate(boolean value) {
+            this.authenticate = value;
+        }
+
+
+        /**
+         * <p>Java class for anonymous complex type.
+         * 
+         * <p>The following schema fragment specifies the expected content 
contained within this class.
+         * 
+         * <pre>
+         * &lt;complexType>
+         *   &lt;complexContent>
+         *     &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+         *       &lt;sequence>
+         *       &lt;/sequence>
+         *     &lt;/restriction>
+         *   &lt;/complexContent>
+         * &lt;/complexType>
+         * </pre>
+         * 
+         * 
+         */
+        @XmlAccessorType(XmlAccessType.FIELD)
+        @XmlType(name = "")
+        public static class Static {
+
+
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EncryptionCertificateInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EncryptionCertificateInfoType.java
new file mode 100644
index 0000000..cefbac8
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EncryptionCertificateInfoType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Data type for encryption key.
+ * 
+ * <p>Java class for EncryptionCertificateInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="EncryptionCertificateInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}CertificateInfoType">
+ *       &lt;sequence>
+ *         &lt;element name="EncryptionVersion" 
type="{urn:org:ebics:H004}EncryptionVersionType"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "EncryptionCertificateInfoType", propOrder = {
+    "encryptionVersion"
+})
+public class EncryptionCertificateInfoType
+    extends CertificateInfoType
+{
+
+    @XmlElement(name = "EncryptionVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String encryptionVersion;
+
+    /**
+     * Gets the value of the encryptionVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getEncryptionVersion() {
+        return encryptionVersion;
+    }
+
+    /**
+     * Sets the value of the encryptionVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setEncryptionVersion(String value) {
+        this.encryptionVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EncryptionPubKeyInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EncryptionPubKeyInfoType.java
new file mode 100644
index 0000000..3cf9330
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/EncryptionPubKeyInfoType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für öffentliche Verschlüsselungsschlüssel.
+ * 
+ * <p>Java class for EncryptionPubKeyInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="EncryptionPubKeyInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}PubKeyInfoType">
+ *       &lt;sequence>
+ *         &lt;element name="EncryptionVersion" 
type="{urn:org:ebics:H004}EncryptionVersionType"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "EncryptionPubKeyInfoType", propOrder = {
+    "encryptionVersion"
+})
+public class EncryptionPubKeyInfoType
+    extends PubKeyInfoTypeAtEbicsTypes
+{
+
+    @XmlElement(name = "EncryptionVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String encryptionVersion;
+
+    /**
+     * Gets the value of the encryptionVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getEncryptionVersion() {
+        return encryptionVersion;
+    }
+
+    /**
+     * Sets the value of the encryptionVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setEncryptionVersion(String value) {
+        this.encryptionVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FDLOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FDLOrderParamsType.java
new file mode 100644
index 0000000..8837a9a
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FDLOrderParamsType.java
@@ -0,0 +1,232 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart FDL.
+ * 
+ * <p>Java class for FDLOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="FDLOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="DateRange" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;sequence>
+ *                   &lt;element name="Start" 
type="{urn:org:ebics:H004}DateType"/>
+ *                   &lt;element name="End" 
type="{urn:org:ebics:H004}DateType"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element ref="{urn:org:ebics:H004}Parameter" 
maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="FileFormat" 
type="{urn:org:ebics:H004}FileFormatType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FDLOrderParamsType", propOrder = {
+    "dateRange",
+    "parameter",
+    "fileFormat"
+})
+public class FDLOrderParamsType {
+
+    @XmlElement(name = "DateRange")
+    protected FDLOrderParamsType.DateRange dateRange;
+    @XmlElement(name = "Parameter")
+    protected List<Parameter> parameter;
+    @XmlElement(name = "FileFormat", required = true)
+    protected FileFormatType fileFormat;
+
+    /**
+     * Gets the value of the dateRange property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FDLOrderParamsType.DateRange }
+     *     
+     */
+    public FDLOrderParamsType.DateRange getDateRange() {
+        return dateRange;
+    }
+
+    /**
+     * Sets the value of the dateRange property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FDLOrderParamsType.DateRange }
+     *     
+     */
+    public void setDateRange(FDLOrderParamsType.DateRange value) {
+        this.dateRange = value;
+    }
+
+    /**
+     * Gets the value of the parameter property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the parameter 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getParameter().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Parameter }
+     * 
+     * 
+     */
+    public List<Parameter> getParameter() {
+        if (parameter == null) {
+            parameter = new ArrayList<Parameter>();
+        }
+        return this.parameter;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;sequence>
+     *         &lt;element name="Start" type="{urn:org:ebics:H004}DateType"/>
+     *         &lt;element name="End" type="{urn:org:ebics:H004}DateType"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "start",
+        "end"
+    })
+    public static class DateRange {
+
+        @XmlElement(name = "Start", required = true)
+        @XmlSchemaType(name = "date")
+        protected XMLGregorianCalendar start;
+        @XmlElement(name = "End", required = true)
+        @XmlSchemaType(name = "date")
+        protected XMLGregorianCalendar end;
+
+        /**
+         * Gets the value of the start property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getStart() {
+            return start;
+        }
+
+        /**
+         * Sets the value of the start property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setStart(XMLGregorianCalendar value) {
+            this.start = value;
+        }
+
+        /**
+         * Gets the value of the end property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getEnd() {
+            return end;
+        }
+
+        /**
+         * Sets the value of the end property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setEnd(XMLGregorianCalendar value) {
+            this.end = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FULOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FULOrderParamsType.java
new file mode 100644
index 0000000..d77e5bf
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FULOrderParamsType.java
@@ -0,0 +1,106 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart FUL.
+ * 
+ * <p>Java class for FULOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="FULOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{urn:org:ebics:H004}Parameter" 
maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="FileFormat" 
type="{urn:org:ebics:H004}FileFormatType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FULOrderParamsType", propOrder = {
+    "parameter",
+    "fileFormat"
+})
+public class FULOrderParamsType {
+
+    @XmlElement(name = "Parameter")
+    protected List<Parameter> parameter;
+    @XmlElement(name = "FileFormat", required = true)
+    protected FileFormatType fileFormat;
+
+    /**
+     * Gets the value of the parameter property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the parameter 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getParameter().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Parameter }
+     * 
+     * 
+     */
+    public List<Parameter> getParameter() {
+        if (parameter == null) {
+            parameter = new ArrayList<Parameter>();
+        }
+        return this.parameter;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FileFormatType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FileFormatType.java
new file mode 100644
index 0000000..7110050
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/FileFormatType.java
@@ -0,0 +1,102 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für das Dateiformat.
+ * 
+ * <p>Java class for FileFormatType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="FileFormatType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>token">
+ *       &lt;attribute name="CountryCode" 
type="{urn:org:ebics:H004}CountryCodeType" />
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FileFormatType", propOrder = {
+    "value"
+})
+public class FileFormatType {
+
+    @XmlValue
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String value;
+    @XmlAttribute(name = "CountryCode")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String countryCode;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the countryCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCountryCode() {
+        return countryCode;
+    }
+
+    /**
+     * Sets the value of the countryCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCountryCode(String value) {
+        this.countryCode = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/GenericOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/GenericOrderParamsType.java
new file mode 100644
index 0000000..5a006ed
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/GenericOrderParamsType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für beliebige Auftragsarten.
+ * 
+ * <p>Java class for GenericOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="GenericOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{urn:org:ebics:H004}Parameter" 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GenericOrderParamsType", propOrder = {
+    "parameter"
+})
+public class GenericOrderParamsType {
+
+    @XmlElement(name = "Parameter")
+    protected List<Parameter> parameter;
+
+    /**
+     * Gets the value of the parameter property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the parameter 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getParameter().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Parameter }
+     * 
+     * 
+     */
+    public List<Parameter> getParameter() {
+        if (parameter == null) {
+            parameter = new ArrayList<Parameter>();
+        }
+        return this.parameter;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/H3KRequestOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/H3KRequestOrderDataType.java
new file mode 100644
index 0000000..956730e
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/H3KRequestOrderDataType.java
@@ -0,0 +1,190 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Order type for order data H3K (request: initialise all three user's keys).
+ * 
+ * <p>Java class for H3KRequestOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="H3KRequestOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="SignatureCertificateInfo" 
type="{urn:org:ebics:H004}SignatureCertificateInfoType"/>
+ *         &lt;element name="AuthenticationCertificateInfo" 
type="{urn:org:ebics:H004}AuthenticationCertificateInfoType"/>
+ *         &lt;element name="EncryptionCertificateInfo" 
type="{urn:org:ebics:H004}EncryptionCertificateInfoType"/>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "H3KRequestOrderDataType", propOrder = {
+    "signatureCertificateInfo",
+    "authenticationCertificateInfo",
+    "encryptionCertificateInfo",
+    "partnerID",
+    "userID"
+})
+public class H3KRequestOrderDataType {
+
+    @XmlElement(name = "SignatureCertificateInfo", required = true)
+    protected SignatureCertificateInfoType signatureCertificateInfo;
+    @XmlElement(name = "AuthenticationCertificateInfo", required = true)
+    protected AuthenticationCertificateInfoType authenticationCertificateInfo;
+    @XmlElement(name = "EncryptionCertificateInfo", required = true)
+    protected EncryptionCertificateInfoType encryptionCertificateInfo;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+
+    /**
+     * Gets the value of the signatureCertificateInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignatureCertificateInfoType }
+     *     
+     */
+    public SignatureCertificateInfoType getSignatureCertificateInfo() {
+        return signatureCertificateInfo;
+    }
+
+    /**
+     * Sets the value of the signatureCertificateInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignatureCertificateInfoType }
+     *     
+     */
+    public void setSignatureCertificateInfo(SignatureCertificateInfoType 
value) {
+        this.signatureCertificateInfo = value;
+    }
+
+    /**
+     * Gets the value of the authenticationCertificateInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthenticationCertificateInfoType }
+     *     
+     */
+    public AuthenticationCertificateInfoType 
getAuthenticationCertificateInfo() {
+        return authenticationCertificateInfo;
+    }
+
+    /**
+     * Sets the value of the authenticationCertificateInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthenticationCertificateInfoType }
+     *     
+     */
+    public void 
setAuthenticationCertificateInfo(AuthenticationCertificateInfoType value) {
+        this.authenticationCertificateInfo = value;
+    }
+
+    /**
+     * Gets the value of the encryptionCertificateInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionCertificateInfoType }
+     *     
+     */
+    public EncryptionCertificateInfoType getEncryptionCertificateInfo() {
+        return encryptionCertificateInfo;
+    }
+
+    /**
+     * Sets the value of the encryptionCertificateInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionCertificateInfoType }
+     *     
+     */
+    public void setEncryptionCertificateInfo(EncryptionCertificateInfoType 
value) {
+        this.encryptionCertificateInfo = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HAAResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HAAResponseOrderDataType.java
new file mode 100644
index 0000000..48f06e4
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HAAResponseOrderDataType.java
@@ -0,0 +1,114 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlList;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HAA (Antwort: abrufbare 
Auftragsarten abholen).
+ * 
+ * <p>Java class for HAAResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HAAResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderTypes" 
type="{urn:org:ebics:H004}OrderTListType"/>
+ *         &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HAAResponseOrderDataType", propOrder = {
+    "orderTypes",
+    "any"
+})
+public class HAAResponseOrderDataType {
+
+    @XmlList
+    @XmlElement(name = "OrderTypes", required = true)
+    protected List<String> orderTypes;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderTypes property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderTypes 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderTypes().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getOrderTypes() {
+        if (orderTypes == null) {
+            orderTypes = new ArrayList<String>();
+        }
+        return this.orderTypes;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HCARequestOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HCARequestOrderDataType.java
new file mode 100644
index 0000000..479dc3d
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HCARequestOrderDataType.java
@@ -0,0 +1,200 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HCA (Anfrage: Änderung der 
Teilnehmerschlüssel für Authentifikation und Verschlüsselung).
+ * 
+ * <p>Java class for HCARequestOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HCARequestOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationPubKeyInfo" 
type="{urn:org:ebics:H004}AuthenticationPubKeyInfoType"/>
+ *         &lt;element name="EncryptionPubKeyInfo" 
type="{urn:org:ebics:H004}EncryptionPubKeyInfoType"/>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HCARequestOrderDataType", propOrder = {
+    "authenticationPubKeyInfo",
+    "encryptionPubKeyInfo",
+    "partnerID",
+    "userID",
+    "any"
+})
+public class HCARequestOrderDataType {
+
+    @XmlElement(name = "AuthenticationPubKeyInfo", required = true)
+    protected AuthenticationPubKeyInfoType authenticationPubKeyInfo;
+    @XmlElement(name = "EncryptionPubKeyInfo", required = true)
+    protected EncryptionPubKeyInfoType encryptionPubKeyInfo;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the authenticationPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public AuthenticationPubKeyInfoType getAuthenticationPubKeyInfo() {
+        return authenticationPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the authenticationPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public void setAuthenticationPubKeyInfo(AuthenticationPubKeyInfoType 
value) {
+        this.authenticationPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the encryptionPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public EncryptionPubKeyInfoType getEncryptionPubKeyInfo() {
+        return encryptionPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the encryptionPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public void setEncryptionPubKeyInfo(EncryptionPubKeyInfoType value) {
+        this.encryptionPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HCSRequestOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HCSRequestOrderDataType.java
new file mode 100644
index 0000000..6c8a741
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HCSRequestOrderDataType.java
@@ -0,0 +1,228 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HCS (Anfrage: Schlüsselwechsel 
aller Schlüssel).
+ * 
+ * <p>Java class for HCSRequestOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HCSRequestOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationPubKeyInfo" 
type="{urn:org:ebics:H004}AuthenticationPubKeyInfoType"/>
+ *         &lt;element name="EncryptionPubKeyInfo" 
type="{urn:org:ebics:H004}EncryptionPubKeyInfoType"/>
+ *         &lt;element ref="{http://www.ebics.org/S001}SignaturePubKeyInfo"/>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HCSRequestOrderDataType", propOrder = {
+    "authenticationPubKeyInfo",
+    "encryptionPubKeyInfo",
+    "signaturePubKeyInfo",
+    "partnerID",
+    "userID",
+    "any"
+})
+public class HCSRequestOrderDataType {
+
+    @XmlElement(name = "AuthenticationPubKeyInfo", required = true)
+    protected AuthenticationPubKeyInfoType authenticationPubKeyInfo;
+    @XmlElement(name = "EncryptionPubKeyInfo", required = true)
+    protected EncryptionPubKeyInfoType encryptionPubKeyInfo;
+    @XmlElement(name = "SignaturePubKeyInfo", namespace = 
"http://www.ebics.org/S001";, required = true)
+    protected SignaturePubKeyInfoType signaturePubKeyInfo;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the authenticationPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public AuthenticationPubKeyInfoType getAuthenticationPubKeyInfo() {
+        return authenticationPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the authenticationPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public void setAuthenticationPubKeyInfo(AuthenticationPubKeyInfoType 
value) {
+        this.authenticationPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the encryptionPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public EncryptionPubKeyInfoType getEncryptionPubKeyInfo() {
+        return encryptionPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the encryptionPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public void setEncryptionPubKeyInfo(EncryptionPubKeyInfoType value) {
+        this.encryptionPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the signaturePubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignaturePubKeyInfoType }
+     *     
+     */
+    public SignaturePubKeyInfoType getSignaturePubKeyInfo() {
+        return signaturePubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the signaturePubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignaturePubKeyInfoType }
+     *     
+     */
+    public void setSignaturePubKeyInfo(SignaturePubKeyInfoType value) {
+        this.signaturePubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HIARequestOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HIARequestOrderDataType.java
new file mode 100644
index 0000000..ba0d1d9
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HIARequestOrderDataType.java
@@ -0,0 +1,200 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HIA (Anfrage: Initialisierung 
der Teilnehmerschlüssel für Authentifikation und Verschlüsselung).
+ * 
+ * <p>Java class for HIARequestOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HIARequestOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationPubKeyInfo" 
type="{urn:org:ebics:H004}AuthenticationPubKeyInfoType"/>
+ *         &lt;element name="EncryptionPubKeyInfo" 
type="{urn:org:ebics:H004}EncryptionPubKeyInfoType"/>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HIARequestOrderDataType", propOrder = {
+    "authenticationPubKeyInfo",
+    "encryptionPubKeyInfo",
+    "partnerID",
+    "userID",
+    "any"
+})
+public class HIARequestOrderDataType {
+
+    @XmlElement(name = "AuthenticationPubKeyInfo", required = true)
+    protected AuthenticationPubKeyInfoType authenticationPubKeyInfo;
+    @XmlElement(name = "EncryptionPubKeyInfo", required = true)
+    protected EncryptionPubKeyInfoType encryptionPubKeyInfo;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the authenticationPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public AuthenticationPubKeyInfoType getAuthenticationPubKeyInfo() {
+        return authenticationPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the authenticationPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public void setAuthenticationPubKeyInfo(AuthenticationPubKeyInfoType 
value) {
+        this.authenticationPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the encryptionPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public EncryptionPubKeyInfoType getEncryptionPubKeyInfo() {
+        return encryptionPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the encryptionPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public void setEncryptionPubKeyInfo(EncryptionPubKeyInfoType value) {
+        this.encryptionPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HKDResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HKDResponseOrderDataType.java
new file mode 100644
index 0000000..e966aa2
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HKDResponseOrderDataType.java
@@ -0,0 +1,140 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Order data for order type HKD (response: receive customer based information 
on the customer and the customer's user.
+ * 
+ * <p>Java class for HKDResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HKDResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="PartnerInfo" 
type="{urn:org:ebics:H004}PartnerInfoType"/>
+ *         &lt;element name="UserInfo" type="{urn:org:ebics:H004}UserInfoType" 
maxOccurs="unbounded"/>
+ *         &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HKDResponseOrderDataType", propOrder = {
+    "partnerInfo",
+    "userInfo",
+    "any"
+})
+public class HKDResponseOrderDataType {
+
+    @XmlElement(name = "PartnerInfo", required = true)
+    protected PartnerInfoType partnerInfo;
+    @XmlElement(name = "UserInfo", required = true)
+    protected List<UserInfoType> userInfo;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PartnerInfoType }
+     *     
+     */
+    public PartnerInfoType getPartnerInfo() {
+        return partnerInfo;
+    }
+
+    /**
+     * Sets the value of the partnerInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PartnerInfoType }
+     *     
+     */
+    public void setPartnerInfo(PartnerInfoType value) {
+        this.partnerInfo = value;
+    }
+
+    /**
+     * Gets the value of the userInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the userInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getUserInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link UserInfoType }
+     * 
+     * 
+     */
+    public List<UserInfoType> getUserInfo() {
+        if (userInfo == null) {
+            userInfo = new ArrayList<UserInfoType>();
+        }
+        return this.userInfo;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPBResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPBResponseOrderDataType.java
new file mode 100644
index 0000000..f8b6fac
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPBResponseOrderDataType.java
@@ -0,0 +1,169 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HPB (Antwort: Transfer der 
Bankschlüssel).
+ * 
+ * <p>Java class for HPBResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HPBResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationPubKeyInfo" 
type="{urn:org:ebics:H004}AuthenticationPubKeyInfoType"/>
+ *         &lt;element name="EncryptionPubKeyInfo" 
type="{urn:org:ebics:H004}EncryptionPubKeyInfoType"/>
+ *         &lt;element ref="{http://www.ebics.org/S001}SignaturePubKeyInfo"; 
maxOccurs="0" minOccurs="0"/>
+ *         &lt;element name="HostID" type="{urn:org:ebics:H004}HostIDType"/>
+ *         &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HPBResponseOrderDataType", propOrder = {
+    "authenticationPubKeyInfo",
+    "encryptionPubKeyInfo",
+    "hostID",
+    "any"
+})
+public class HPBResponseOrderDataType {
+
+    @XmlElement(name = "AuthenticationPubKeyInfo", required = true)
+    protected AuthenticationPubKeyInfoType authenticationPubKeyInfo;
+    @XmlElement(name = "EncryptionPubKeyInfo", required = true)
+    protected EncryptionPubKeyInfoType encryptionPubKeyInfo;
+    @XmlElement(name = "HostID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String hostID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the authenticationPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public AuthenticationPubKeyInfoType getAuthenticationPubKeyInfo() {
+        return authenticationPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the authenticationPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public void setAuthenticationPubKeyInfo(AuthenticationPubKeyInfoType 
value) {
+        this.authenticationPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the encryptionPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public EncryptionPubKeyInfoType getEncryptionPubKeyInfo() {
+        return encryptionPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the encryptionPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public void setEncryptionPubKeyInfo(EncryptionPubKeyInfoType value) {
+        this.encryptionPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the hostID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getHostID() {
+        return hostID;
+    }
+
+    /**
+     * Sets the value of the hostID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setHostID(String value) {
+        this.hostID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDAccessParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDAccessParamsType.java
new file mode 100644
index 0000000..8091e0b
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDAccessParamsType.java
@@ -0,0 +1,274 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für HPD-Zugangsparameter.
+ * 
+ * <p>Java class for HPDAccessParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HPDAccessParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="URL" maxOccurs="unbounded">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension 
base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+ *                 &lt;attribute name="valid_from" 
type="{urn:org:ebics:H004}TimestampType" />
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="Institute">
+ *           &lt;simpleType>
+ *             &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}normalizedString";>
+ *               &lt;maxLength value="80"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="HostID" type="{urn:org:ebics:H004}HostIDType" 
minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HPDAccessParamsType", propOrder = {
+    "url",
+    "institute",
+    "hostID",
+    "any"
+})
+public class HPDAccessParamsType {
+
+    @XmlElement(name = "URL", required = true)
+    protected List<HPDAccessParamsType.URL> url;
+    @XmlElement(name = "Institute", required = true)
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    protected String institute;
+    @XmlElement(name = "HostID")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String hostID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the url property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the url property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getURL().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HPDAccessParamsType.URL }
+     * 
+     * 
+     */
+    public List<HPDAccessParamsType.URL> getURL() {
+        if (url == null) {
+            url = new ArrayList<HPDAccessParamsType.URL>();
+        }
+        return this.url;
+    }
+
+    /**
+     * Gets the value of the institute property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getInstitute() {
+        return institute;
+    }
+
+    /**
+     * Sets the value of the institute property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setInstitute(String value) {
+        this.institute = value;
+    }
+
+    /**
+     * Gets the value of the hostID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getHostID() {
+        return hostID;
+    }
+
+    /**
+     * Sets the value of the hostID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setHostID(String value) {
+        this.hostID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>anyURI">
+     *       &lt;attribute name="valid_from" 
type="{urn:org:ebics:H004}TimestampType" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class URL {
+
+        @XmlValue
+        @XmlSchemaType(name = "anyURI")
+        protected String value;
+        @XmlAttribute(name = "valid_from")
+        protected XMLGregorianCalendar validFrom;
+
+        /**
+         * Gets the value of the value property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the validFrom property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getValidFrom() {
+            return validFrom;
+        }
+
+        /**
+         * Sets the value of the validFrom property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setValidFrom(XMLGregorianCalendar value) {
+            this.validFrom = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDProtocolParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDProtocolParamsType.java
new file mode 100644
index 0000000..b761543
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDProtocolParamsType.java
@@ -0,0 +1,713 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for HPD's parameters regarding the EBICS protocol.
+ * 
+ * <p>Java class for HPDProtocolParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HPDProtocolParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="Version" 
type="{urn:org:ebics:H004}HPDVersionType"/>
+ *         &lt;element name="Recovery" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="PreValidation" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="X509Data" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+ *                 &lt;attribute name="persistent" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="ClientDataDownload" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="DownloadableOrderData" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HPDProtocolParamsType", propOrder = {
+    "version",
+    "recovery",
+    "preValidation",
+    "x509Data",
+    "clientDataDownload",
+    "downloadableOrderData",
+    "any"
+})
+public class HPDProtocolParamsType {
+
+    @XmlElement(name = "Version", required = true)
+    protected HPDVersionType version;
+    @XmlElement(name = "Recovery")
+    protected HPDProtocolParamsType.Recovery recovery;
+    @XmlElement(name = "PreValidation")
+    protected HPDProtocolParamsType.PreValidation preValidation;
+    @XmlElement(name = "X509Data")
+    protected HPDProtocolParamsType.X509Data x509Data;
+    @XmlElement(name = "ClientDataDownload")
+    protected HPDProtocolParamsType.ClientDataDownload clientDataDownload;
+    @XmlElement(name = "DownloadableOrderData")
+    protected HPDProtocolParamsType.DownloadableOrderData 
downloadableOrderData;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the version property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDVersionType }
+     *     
+     */
+    public HPDVersionType getVersion() {
+        return version;
+    }
+
+    /**
+     * Sets the value of the version property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDVersionType }
+     *     
+     */
+    public void setVersion(HPDVersionType value) {
+        this.version = value;
+    }
+
+    /**
+     * Gets the value of the recovery property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDProtocolParamsType.Recovery }
+     *     
+     */
+    public HPDProtocolParamsType.Recovery getRecovery() {
+        return recovery;
+    }
+
+    /**
+     * Sets the value of the recovery property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDProtocolParamsType.Recovery }
+     *     
+     */
+    public void setRecovery(HPDProtocolParamsType.Recovery value) {
+        this.recovery = value;
+    }
+
+    /**
+     * Gets the value of the preValidation property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDProtocolParamsType.PreValidation }
+     *     
+     */
+    public HPDProtocolParamsType.PreValidation getPreValidation() {
+        return preValidation;
+    }
+
+    /**
+     * Sets the value of the preValidation property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDProtocolParamsType.PreValidation }
+     *     
+     */
+    public void setPreValidation(HPDProtocolParamsType.PreValidation value) {
+        this.preValidation = value;
+    }
+
+    /**
+     * Gets the value of the x509Data property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDProtocolParamsType.X509Data }
+     *     
+     */
+    public HPDProtocolParamsType.X509Data getX509Data() {
+        return x509Data;
+    }
+
+    /**
+     * Sets the value of the x509Data property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDProtocolParamsType.X509Data }
+     *     
+     */
+    public void setX509Data(HPDProtocolParamsType.X509Data value) {
+        this.x509Data = value;
+    }
+
+    /**
+     * Gets the value of the clientDataDownload property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDProtocolParamsType.ClientDataDownload }
+     *     
+     */
+    public HPDProtocolParamsType.ClientDataDownload getClientDataDownload() {
+        return clientDataDownload;
+    }
+
+    /**
+     * Sets the value of the clientDataDownload property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDProtocolParamsType.ClientDataDownload }
+     *     
+     */
+    public void setClientDataDownload(HPDProtocolParamsType.ClientDataDownload 
value) {
+        this.clientDataDownload = value;
+    }
+
+    /**
+     * Gets the value of the downloadableOrderData property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDProtocolParamsType.DownloadableOrderData }
+     *     
+     */
+    public HPDProtocolParamsType.DownloadableOrderData 
getDownloadableOrderData() {
+        return downloadableOrderData;
+    }
+
+    /**
+     * Sets the value of the downloadableOrderData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDProtocolParamsType.DownloadableOrderData }
+     *     
+     */
+    public void 
setDownloadableOrderData(HPDProtocolParamsType.DownloadableOrderData value) {
+        this.downloadableOrderData = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class ClientDataDownload {
+
+        @XmlAttribute(name = "supported")
+        protected Boolean supported;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Gets the value of the supported property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isSupported() {
+            if (supported == null) {
+                return true;
+            } else {
+                return supported;
+            }
+        }
+
+        /**
+         * Sets the value of the supported property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setSupported(Boolean value) {
+            this.supported = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class DownloadableOrderData {
+
+        @XmlAttribute(name = "supported")
+        protected Boolean supported;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Gets the value of the supported property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isSupported() {
+            if (supported == null) {
+                return true;
+            } else {
+                return supported;
+            }
+        }
+
+        /**
+         * Sets the value of the supported property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setSupported(Boolean value) {
+            this.supported = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+
+    /**
+     * Optional support flag, default = true.
+     * 
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class PreValidation {
+
+        @XmlAttribute(name = "supported")
+        protected Boolean supported;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Gets the value of the supported property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isSupported() {
+            if (supported == null) {
+                return true;
+            } else {
+                return supported;
+            }
+        }
+
+        /**
+         * Sets the value of the supported property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setSupported(Boolean value) {
+            this.supported = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class Recovery {
+
+        @XmlAttribute(name = "supported")
+        protected Boolean supported;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Gets the value of the supported property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isSupported() {
+            if (supported == null) {
+                return true;
+            } else {
+                return supported;
+            }
+        }
+
+        /**
+         * Sets the value of the supported property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setSupported(Boolean value) {
+            this.supported = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}OptSupportFlag"/>
+     *       &lt;attribute name="persistent" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class X509Data {
+
+        @XmlAttribute(name = "persistent")
+        protected Boolean persistent;
+        @XmlAttribute(name = "supported")
+        protected Boolean supported;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Gets the value of the persistent property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isPersistent() {
+            if (persistent == null) {
+                return false;
+            } else {
+                return persistent;
+            }
+        }
+
+        /**
+         * Sets the value of the persistent property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setPersistent(Boolean value) {
+            this.persistent = value;
+        }
+
+        /**
+         * Gets the value of the supported property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public boolean isSupported() {
+            if (supported == null) {
+                return true;
+            } else {
+                return supported;
+            }
+        }
+
+        /**
+         * Sets the value of the supported property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setSupported(Boolean value) {
+            this.supported = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDResponseOrderDataType.java
new file mode 100644
index 0000000..54f0eca
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDResponseOrderDataType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HPD (Antwort: Bankparameter 
abholen).
+ * 
+ * <p>Java class for HPDResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HPDResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AccessParams" 
type="{urn:org:ebics:H004}HPDAccessParamsType"/>
+ *         &lt;element name="ProtocolParams" 
type="{urn:org:ebics:H004}HPDProtocolParamsType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HPDResponseOrderDataType", propOrder = {
+    "accessParams",
+    "protocolParams"
+})
+public class HPDResponseOrderDataType {
+
+    @XmlElement(name = "AccessParams", required = true)
+    protected HPDAccessParamsType accessParams;
+    @XmlElement(name = "ProtocolParams", required = true)
+    protected HPDProtocolParamsType protocolParams;
+
+    /**
+     * Gets the value of the accessParams property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDAccessParamsType }
+     *     
+     */
+    public HPDAccessParamsType getAccessParams() {
+        return accessParams;
+    }
+
+    /**
+     * Sets the value of the accessParams property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDAccessParamsType }
+     *     
+     */
+    public void setAccessParams(HPDAccessParamsType value) {
+        this.accessParams = value;
+    }
+
+    /**
+     * Gets the value of the protocolParams property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HPDProtocolParamsType }
+     *     
+     */
+    public HPDProtocolParamsType getProtocolParams() {
+        return protocolParams;
+    }
+
+    /**
+     * Sets the value of the protocolParams property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HPDProtocolParamsType }
+     *     
+     */
+    public void setProtocolParams(HPDProtocolParamsType value) {
+        this.protocolParams = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDVersionType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDVersionType.java
new file mode 100644
index 0000000..6f0c70c
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HPDVersionType.java
@@ -0,0 +1,234 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlList;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für HPD-Versionsinformationen.
+ * 
+ * <p>Java class for HPDVersionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HPDVersionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="Protocol">
+ *           &lt;simpleType>
+ *             &lt;list itemType="{urn:org:ebics:H004}ProtocolVersionType" />
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Authentication">
+ *           &lt;simpleType>
+ *             &lt;list 
itemType="{urn:org:ebics:H004}AuthenticationVersionType" />
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Encryption">
+ *           &lt;simpleType>
+ *             &lt;list itemType="{urn:org:ebics:H004}EncryptionVersionType" />
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Signature">
+ *           &lt;simpleType>
+ *             &lt;list 
itemType="{http://www.ebics.org/S001}SignatureVersionType"; />
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HPDVersionType", propOrder = {
+    "protocol",
+    "authentication",
+    "encryption",
+    "signature",
+    "any"
+})
+public class HPDVersionType {
+
+    @XmlList
+    @XmlElement(name = "Protocol", required = true)
+    protected List<String> protocol;
+    @XmlList
+    @XmlElement(name = "Authentication", required = true)
+    protected List<String> authentication;
+    @XmlList
+    @XmlElement(name = "Encryption", required = true)
+    protected List<String> encryption;
+    @XmlList
+    @XmlElement(name = "Signature", required = true)
+    protected List<String> signature;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the protocol property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the protocol 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getProtocol().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getProtocol() {
+        if (protocol == null) {
+            protocol = new ArrayList<String>();
+        }
+        return this.protocol;
+    }
+
+    /**
+     * Gets the value of the authentication property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
authentication property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAuthentication().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getAuthentication() {
+        if (authentication == null) {
+            authentication = new ArrayList<String>();
+        }
+        return this.authentication;
+    }
+
+    /**
+     * Gets the value of the encryption property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the encryption 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getEncryption().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getEncryption() {
+        if (encryption == null) {
+            encryption = new ArrayList<String>();
+        }
+        return this.encryption;
+    }
+
+    /**
+     * Gets the value of the signature property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the signature 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSignature().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getSignature() {
+        if (signature == null) {
+            signature = new ArrayList<String>();
+        }
+        return this.signature;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HSARequestOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HSARequestOrderDataType.java
new file mode 100644
index 0000000..f1d99bf
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HSARequestOrderDataType.java
@@ -0,0 +1,200 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HSA (Anfrage: Initialisierung 
der Teilnehmerschlüssel für Authentifikation und Verschlüsselung, bankfachlich 
signiert mit FTAM-Schlüssel).
+ * 
+ * <p>Java class for HSARequestOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HSARequestOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AuthenticationPubKeyInfo" 
type="{urn:org:ebics:H004}AuthenticationPubKeyInfoType"/>
+ *         &lt;element name="EncryptionPubKeyInfo" 
type="{urn:org:ebics:H004}EncryptionPubKeyInfoType"/>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HSARequestOrderDataType", propOrder = {
+    "authenticationPubKeyInfo",
+    "encryptionPubKeyInfo",
+    "partnerID",
+    "userID",
+    "any"
+})
+public class HSARequestOrderDataType {
+
+    @XmlElement(name = "AuthenticationPubKeyInfo", required = true)
+    protected AuthenticationPubKeyInfoType authenticationPubKeyInfo;
+    @XmlElement(name = "EncryptionPubKeyInfo", required = true)
+    protected EncryptionPubKeyInfoType encryptionPubKeyInfo;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the authenticationPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public AuthenticationPubKeyInfoType getAuthenticationPubKeyInfo() {
+        return authenticationPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the authenticationPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthenticationPubKeyInfoType }
+     *     
+     */
+    public void setAuthenticationPubKeyInfo(AuthenticationPubKeyInfoType 
value) {
+        this.authenticationPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the encryptionPubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public EncryptionPubKeyInfoType getEncryptionPubKeyInfo() {
+        return encryptionPubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the encryptionPubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionPubKeyInfoType }
+     *     
+     */
+    public void setEncryptionPubKeyInfo(EncryptionPubKeyInfoType value) {
+        this.encryptionPubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HTDReponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HTDReponseOrderDataType.java
new file mode 100644
index 0000000..6855c0c
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HTDReponseOrderDataType.java
@@ -0,0 +1,137 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HTD (Antwort: Kunden- und 
Teilnehmerdaten des Teilnehmers abholen).
+ * 
+ * <p>Java class for HTDReponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HTDReponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="PartnerInfo" 
type="{urn:org:ebics:H004}PartnerInfoType"/>
+ *         &lt;element name="UserInfo" 
type="{urn:org:ebics:H004}UserInfoType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HTDReponseOrderDataType", propOrder = {
+    "partnerInfo",
+    "userInfo",
+    "any"
+})
+public class HTDReponseOrderDataType {
+
+    @XmlElement(name = "PartnerInfo", required = true)
+    protected PartnerInfoType partnerInfo;
+    @XmlElement(name = "UserInfo", required = true)
+    protected UserInfoType userInfo;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PartnerInfoType }
+     *     
+     */
+    public PartnerInfoType getPartnerInfo() {
+        return partnerInfo;
+    }
+
+    /**
+     * Sets the value of the partnerInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PartnerInfoType }
+     *     
+     */
+    public void setPartnerInfo(PartnerInfoType value) {
+        this.partnerInfo = value;
+    }
+
+    /**
+     * Gets the value of the userInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link UserInfoType }
+     *     
+     */
+    public UserInfoType getUserInfo() {
+        return userInfo;
+    }
+
+    /**
+     * Sets the value of the userInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link UserInfoType }
+     *     
+     */
+    public void setUserInfo(UserInfoType value) {
+        this.userInfo = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVDOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVDOrderParamsType.java
new file mode 100644
index 0000000..fdd0e06
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVDOrderParamsType.java
@@ -0,0 +1,199 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart HVD.
+ * 
+ * <p>Java class for HVDOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVDOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;group ref="{urn:org:ebics:H004}HVRequestStructure"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVDOrderParamsType", propOrder = {
+    "partnerID",
+    "orderType",
+    "fileFormat",
+    "orderID",
+    "any"
+})
+public class HVDOrderParamsType {
+
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "OrderID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVDResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVDResponseOrderDataType.java
new file mode 100644
index 0000000..6c97844
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVDResponseOrderDataType.java
@@ -0,0 +1,240 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HVD (Antwort: VEU-Status 
abrufen).
+ * 
+ * <p>Java class for HVDResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVDResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="DataDigest" 
type="{urn:org:ebics:H004}DataDigestType"/>
+ *         &lt;element name="DisplayFile" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *         &lt;element name="OrderDataAvailable" 
type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *         &lt;element name="OrderDataSize" 
type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/>
+ *         &lt;element name="OrderDetailsAvailable" 
type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *         &lt;element name="BankSignature" 
type="{urn:org:ebics:H004}SignatureType" maxOccurs="0" minOccurs="0"/>
+ *         &lt;element name="SignerInfo" 
type="{urn:org:ebics:H004}SignerInfoType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVDResponseOrderDataType", propOrder = {
+    "dataDigest",
+    "displayFile",
+    "orderDataAvailable",
+    "orderDataSize",
+    "orderDetailsAvailable",
+    "signerInfo",
+    "any"
+})
+public class HVDResponseOrderDataType {
+
+    @XmlElement(name = "DataDigest", required = true)
+    protected DataDigestType dataDigest;
+    @XmlElement(name = "DisplayFile", required = true)
+    protected byte[] displayFile;
+    @XmlElement(name = "OrderDataAvailable")
+    protected boolean orderDataAvailable;
+    @XmlElement(name = "OrderDataSize", required = true)
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger orderDataSize;
+    @XmlElement(name = "OrderDetailsAvailable")
+    protected boolean orderDetailsAvailable;
+    @XmlElement(name = "SignerInfo")
+    protected List<SignerInfoType> signerInfo;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the dataDigest property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataDigestType }
+     *     
+     */
+    public DataDigestType getDataDigest() {
+        return dataDigest;
+    }
+
+    /**
+     * Sets the value of the dataDigest property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataDigestType }
+     *     
+     */
+    public void setDataDigest(DataDigestType value) {
+        this.dataDigest = value;
+    }
+
+    /**
+     * Gets the value of the displayFile property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getDisplayFile() {
+        return displayFile;
+    }
+
+    /**
+     * Sets the value of the displayFile property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setDisplayFile(byte[] value) {
+        this.displayFile = value;
+    }
+
+    /**
+     * Gets the value of the orderDataAvailable property.
+     * 
+     */
+    public boolean isOrderDataAvailable() {
+        return orderDataAvailable;
+    }
+
+    /**
+     * Sets the value of the orderDataAvailable property.
+     * 
+     */
+    public void setOrderDataAvailable(boolean value) {
+        this.orderDataAvailable = value;
+    }
+
+    /**
+     * Gets the value of the orderDataSize property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getOrderDataSize() {
+        return orderDataSize;
+    }
+
+    /**
+     * Sets the value of the orderDataSize property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setOrderDataSize(BigInteger value) {
+        this.orderDataSize = value;
+    }
+
+    /**
+     * Gets the value of the orderDetailsAvailable property.
+     * 
+     */
+    public boolean isOrderDetailsAvailable() {
+        return orderDetailsAvailable;
+    }
+
+    /**
+     * Sets the value of the orderDetailsAvailable property.
+     * 
+     */
+    public void setOrderDetailsAvailable(boolean value) {
+        this.orderDetailsAvailable = value;
+    }
+
+    /**
+     * Gets the value of the signerInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the signerInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSignerInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link SignerInfoType }
+     * 
+     * 
+     */
+    public List<SignerInfoType> getSignerInfo() {
+        if (signerInfo == null) {
+            signerInfo = new ArrayList<SignerInfoType>();
+        }
+        return this.signerInfo;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVEOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVEOrderParamsType.java
new file mode 100644
index 0000000..56d65d4
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVEOrderParamsType.java
@@ -0,0 +1,199 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart HVE.
+ * 
+ * <p>Java class for HVEOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVEOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;group ref="{urn:org:ebics:H004}HVRequestStructure"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVEOrderParamsType", propOrder = {
+    "partnerID",
+    "orderType",
+    "fileFormat",
+    "orderID",
+    "any"
+})
+public class HVEOrderParamsType {
+
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "OrderID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVSOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVSOrderParamsType.java
new file mode 100644
index 0000000..1667454
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVSOrderParamsType.java
@@ -0,0 +1,199 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart HVS.
+ * 
+ * <p>Java class for HVSOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVSOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;group ref="{urn:org:ebics:H004}HVRequestStructure"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVSOrderParamsType", propOrder = {
+    "partnerID",
+    "orderType",
+    "fileFormat",
+    "orderID",
+    "any"
+})
+public class HVSOrderParamsType {
+
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "OrderID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVSRequestOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVSRequestOrderDataType.java
new file mode 100644
index 0000000..20d2d68
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVSRequestOrderDataType.java
@@ -0,0 +1,109 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HVS (Anfrage: VEU-Storno).
+ * 
+ * <p>Java class for HVSRequestOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVSRequestOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="CancelledDataDigest" 
type="{urn:org:ebics:H004}DataDigestType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVSRequestOrderDataType", propOrder = {
+    "cancelledDataDigest",
+    "any"
+})
+public class HVSRequestOrderDataType {
+
+    @XmlElement(name = "CancelledDataDigest", required = true)
+    protected DataDigestType cancelledDataDigest;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the cancelledDataDigest property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataDigestType }
+     *     
+     */
+    public DataDigestType getCancelledDataDigest() {
+        return cancelledDataDigest;
+    }
+
+    /**
+     * Sets the value of the cancelledDataDigest property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataDigestType }
+     *     
+     */
+    public void setCancelledDataDigest(DataDigestType value) {
+        this.cancelledDataDigest = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTAccountInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTAccountInfoType.java
new file mode 100644
index 0000000..7fff551
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTAccountInfoType.java
@@ -0,0 +1,41 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Data type for account information regarding order type HVT.
+ * 
+ * <p>Java class for HVTAccountInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVTAccountInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}AttributedAccountType">
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVTAccountInfoType")
+public class HVTAccountInfoType
+    extends AttributedAccountType
+{
+
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderFlagsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderFlagsType.java
new file mode 100644
index 0000000..4b4dbba
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderFlagsType.java
@@ -0,0 +1,155 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+
+
+/**
+ * Datentyp für HVT-Auftragsflags.
+ * 
+ * <p>Java class for HVTOrderFlagsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVTOrderFlagsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;attribute name="completeOrderData" use="required" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; />
+ *       &lt;attribute name="fetchLimit" use="required">
+ *         &lt;simpleType>
+ *           &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger";>
+ *             &lt;totalDigits value="10"/>
+ *           &lt;/restriction>
+ *         &lt;/simpleType>
+ *       &lt;/attribute>
+ *       &lt;attribute name="fetchOffset" use="required">
+ *         &lt;simpleType>
+ *           &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger";>
+ *             &lt;totalDigits value="10"/>
+ *           &lt;/restriction>
+ *         &lt;/simpleType>
+ *       &lt;/attribute>
+ *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVTOrderFlagsType")
+@XmlSeeAlso({
+    
tech.libeufin.messages.ebics.keyresponse.HVTOrderParamsType.OrderFlags.class
+})
+public class HVTOrderFlagsType {
+
+    @XmlAttribute(name = "completeOrderData", required = true)
+    protected boolean completeOrderData;
+    @XmlAttribute(name = "fetchLimit", required = true)
+    protected BigInteger fetchLimit;
+    @XmlAttribute(name = "fetchOffset", required = true)
+    protected BigInteger fetchOffset;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the completeOrderData property.
+     * 
+     */
+    public boolean isCompleteOrderData() {
+        return completeOrderData;
+    }
+
+    /**
+     * Sets the value of the completeOrderData property.
+     * 
+     */
+    public void setCompleteOrderData(boolean value) {
+        this.completeOrderData = value;
+    }
+
+    /**
+     * Gets the value of the fetchLimit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getFetchLimit() {
+        return fetchLimit;
+    }
+
+    /**
+     * Sets the value of the fetchLimit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setFetchLimit(BigInteger value) {
+        this.fetchLimit = value;
+    }
+
+    /**
+     * Gets the value of the fetchOffset property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getFetchOffset() {
+        return fetchOffset;
+    }
+
+    /**
+     * Sets the value of the fetchOffset property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setFetchOffset(BigInteger value) {
+        this.fetchOffset = value;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderInfoType.java
new file mode 100644
index 0000000..0af3392
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderInfoType.java
@@ -0,0 +1,520 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für HVT-Auftragsinformationen.
+ * 
+ * <p>Java class for HVTOrderInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVTOrderInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderFormat" 
type="{urn:org:ebics:H004}OrderFormatType" minOccurs="0"/>
+ *         &lt;element name="AccountInfo" 
type="{urn:org:ebics:H004}HVTAccountInfoType" maxOccurs="3" minOccurs="2"/>
+ *         &lt;element name="ExecutionDate" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension 
base="&lt;http://www.w3.org/2001/XMLSchema>date">
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="Amount">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;urn:org:ebics:H004>AmountValueType">
+ *                 &lt;attribute name="isCredit" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; />
+ *                 &lt;attribute name="Currency" 
type="{urn:org:ebics:H004}CurrencyBaseType" />
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="Description" maxOccurs="4" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension 
base="&lt;http://www.w3.org/2001/XMLSchema>string">
+ *                 &lt;attribute name="Type" use="required">
+ *                   &lt;simpleType>
+ *                     &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}token";>
+ *                       &lt;enumeration value="Purpose"/>
+ *                       &lt;enumeration value="Details"/>
+ *                       &lt;enumeration value="Comment"/>
+ *                     &lt;/restriction>
+ *                   &lt;/simpleType>
+ *                 &lt;/attribute>
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVTOrderInfoType", propOrder = {
+    "orderFormat",
+    "accountInfo",
+    "executionDate",
+    "amount",
+    "description",
+    "any"
+})
+public class HVTOrderInfoType {
+
+    @XmlElement(name = "OrderFormat")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderFormat;
+    @XmlElement(name = "AccountInfo", required = true)
+    protected List<HVTAccountInfoType> accountInfo;
+    @XmlElement(name = "ExecutionDate")
+    protected HVTOrderInfoType.ExecutionDate executionDate;
+    @XmlElement(name = "Amount", required = true)
+    protected HVTOrderInfoType.Amount amount;
+    @XmlElement(name = "Description")
+    protected List<HVTOrderInfoType.Description> description;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderFormat() {
+        return orderFormat;
+    }
+
+    /**
+     * Sets the value of the orderFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderFormat(String value) {
+        this.orderFormat = value;
+    }
+
+    /**
+     * Gets the value of the accountInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the accountInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAccountInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HVTAccountInfoType }
+     * 
+     * 
+     */
+    public List<HVTAccountInfoType> getAccountInfo() {
+        if (accountInfo == null) {
+            accountInfo = new ArrayList<HVTAccountInfoType>();
+        }
+        return this.accountInfo;
+    }
+
+    /**
+     * Gets the value of the executionDate property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVTOrderInfoType.ExecutionDate }
+     *     
+     */
+    public HVTOrderInfoType.ExecutionDate getExecutionDate() {
+        return executionDate;
+    }
+
+    /**
+     * Sets the value of the executionDate property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVTOrderInfoType.ExecutionDate }
+     *     
+     */
+    public void setExecutionDate(HVTOrderInfoType.ExecutionDate value) {
+        this.executionDate = value;
+    }
+
+    /**
+     * Gets the value of the amount property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVTOrderInfoType.Amount }
+     *     
+     */
+    public HVTOrderInfoType.Amount getAmount() {
+        return amount;
+    }
+
+    /**
+     * Sets the value of the amount property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVTOrderInfoType.Amount }
+     *     
+     */
+    public void setAmount(HVTOrderInfoType.Amount value) {
+        this.amount = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the description 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getDescription().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HVTOrderInfoType.Description }
+     * 
+     * 
+     */
+    public List<HVTOrderInfoType.Description> getDescription() {
+        if (description == null) {
+            description = new ArrayList<HVTOrderInfoType.Description>();
+        }
+        return this.description;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>AmountValueType">
+     *       &lt;attribute name="isCredit" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; />
+     *       &lt;attribute name="Currency" 
type="{urn:org:ebics:H004}CurrencyBaseType" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class Amount {
+
+        @XmlValue
+        protected BigDecimal value;
+        @XmlAttribute(name = "isCredit")
+        protected Boolean isCredit;
+        @XmlAttribute(name = "Currency")
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String currency;
+
+        /**
+         * Datentyp für einen Betragswert (ohne Währung).
+         * 
+         * @return
+         *     possible object is
+         *     {@link BigDecimal }
+         *     
+         */
+        public BigDecimal getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link BigDecimal }
+         *     
+         */
+        public void setValue(BigDecimal value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the isCredit property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public Boolean isIsCredit() {
+            return isCredit;
+        }
+
+        /**
+         * Sets the value of the isCredit property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setIsCredit(Boolean value) {
+            this.isCredit = value;
+        }
+
+        /**
+         * Gets the value of the currency property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getCurrency() {
+            return currency;
+        }
+
+        /**
+         * Sets the value of the currency property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setCurrency(String value) {
+            this.currency = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
+     *       &lt;attribute name="Type" use="required">
+     *         &lt;simpleType>
+     *           &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}token";>
+     *             &lt;enumeration value="Purpose"/>
+     *             &lt;enumeration value="Details"/>
+     *             &lt;enumeration value="Comment"/>
+     *           &lt;/restriction>
+     *         &lt;/simpleType>
+     *       &lt;/attribute>
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class Description {
+
+        @XmlValue
+        protected String value;
+        @XmlAttribute(name = "Type", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String type;
+
+        /**
+         * Gets the value of the value property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the type property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getType() {
+            return type;
+        }
+
+        /**
+         * Sets the value of the type property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setType(String value) {
+            this.type = value;
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>date">
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class ExecutionDate {
+
+        @XmlValue
+        @XmlSchemaType(name = "date")
+        protected XMLGregorianCalendar value;
+
+        /**
+         * Gets the value of the value property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setValue(XMLGregorianCalendar value) {
+            this.value = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderParamsType.java
new file mode 100644
index 0000000..5620ac9
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTOrderParamsType.java
@@ -0,0 +1,295 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for additional order parameters for order type HVT.
+ * 
+ * <p>Java class for HVTOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVTOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;group ref="{urn:org:ebics:H004}HVRequestStructure"/>
+ *         &lt;element name="OrderFlags">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;extension base="{urn:org:ebics:H004}HVTOrderFlagsType">
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/extension>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element ref="{urn:org:ebics:H004}Parameter" 
maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVTOrderParamsType", propOrder = {
+    "partnerID",
+    "orderType",
+    "fileFormat",
+    "orderID",
+    "orderFlags",
+    "parameter",
+    "any"
+})
+public class HVTOrderParamsType {
+
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "OrderID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlElement(name = "OrderFlags", required = true)
+    protected HVTOrderParamsType.OrderFlags orderFlags;
+    @XmlElement(name = "Parameter")
+    protected List<Parameter> parameter;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the orderFlags property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVTOrderParamsType.OrderFlags }
+     *     
+     */
+    public HVTOrderParamsType.OrderFlags getOrderFlags() {
+        return orderFlags;
+    }
+
+    /**
+     * Sets the value of the orderFlags property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVTOrderParamsType.OrderFlags }
+     *     
+     */
+    public void setOrderFlags(HVTOrderParamsType.OrderFlags value) {
+        this.orderFlags = value;
+    }
+
+    /**
+     * Generic key-value parameters Gets the value of the parameter property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the parameter 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getParameter().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Parameter }
+     * 
+     * 
+     */
+    public List<Parameter> getParameter() {
+        if (parameter == null) {
+            parameter = new ArrayList<Parameter>();
+        }
+        return this.parameter;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;extension base="{urn:org:ebics:H004}HVTOrderFlagsType">
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/extension>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class OrderFlags
+        extends HVTOrderFlagsType
+    {
+
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTResponseOrderData.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTResponseOrderData.java
new file mode 100644
index 0000000..eaa4cfd
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTResponseOrderData.java
@@ -0,0 +1,39 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}HVTResponseOrderDataType">
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+public class HVTResponseOrderData
+    extends HVTResponseOrderDataType
+{
+
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTResponseOrderDataType.java
new file mode 100644
index 0000000..7e2b5d8
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVTResponseOrderDataType.java
@@ -0,0 +1,149 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Antwort mit Einzelauftraginfos für Auftragsart HVT (Antwort 
VEU-Transaktionsdetails abrufen mit completeOrderData="false").
+ * 
+ * <p>Java class for HVTResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVTResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="NumOrderInfos" 
type="{urn:org:ebics:H004}NumOrderInfosType"/>
+ *         &lt;element name="OrderInfo" 
type="{urn:org:ebics:H004}HVTOrderInfoType" maxOccurs="unbounded"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVTResponseOrderDataType", propOrder = {
+    "numOrderInfos",
+    "orderInfo",
+    "any"
+})
+@XmlSeeAlso({
+    HVTResponseOrderData.class
+})
+public class HVTResponseOrderDataType {
+
+    @XmlElement(name = "NumOrderInfos", required = true)
+    @XmlSchemaType(name = "nonNegativeInteger")
+    protected BigInteger numOrderInfos;
+    @XmlElement(name = "OrderInfo", required = true)
+    protected List<HVTOrderInfoType> orderInfo;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the numOrderInfos property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getNumOrderInfos() {
+        return numOrderInfos;
+    }
+
+    /**
+     * Sets the value of the numOrderInfos property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setNumOrderInfos(BigInteger value) {
+        this.numOrderInfos = value;
+    }
+
+    /**
+     * Gets the value of the orderInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HVTOrderInfoType }
+     * 
+     * 
+     */
+    public List<HVTOrderInfoType> getOrderInfo() {
+        if (orderInfo == null) {
+            orderInfo = new ArrayList<HVTOrderInfoType>();
+        }
+        return this.orderInfo;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOrderDetailsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOrderDetailsType.java
new file mode 100644
index 0000000..543a9a9
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOrderDetailsType.java
@@ -0,0 +1,291 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für HVU-Auftragsdetails.
+ * 
+ * <p>Java class for HVUOrderDetailsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVUOrderDetailsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderType" 
type="{urn:org:ebics:H004}OrderTBaseType"/>
+ *         &lt;element name="FileFormat" 
type="{urn:org:ebics:H004}FileFormatType" minOccurs="0"/>
+ *         &lt;element name="OrderID" type="{urn:org:ebics:H004}OrderIDType"/>
+ *         &lt;element name="OrderDataSize" 
type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/>
+ *         &lt;element name="SigningInfo" 
type="{urn:org:ebics:H004}HVUSigningInfoType"/>
+ *         &lt;element name="SignerInfo" 
type="{urn:org:ebics:H004}SignerInfoType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="OriginatorInfo" 
type="{urn:org:ebics:H004}HVUOriginatorInfoType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVUOrderDetailsType", propOrder = {
+    "orderType",
+    "fileFormat",
+    "orderID",
+    "orderDataSize",
+    "signingInfo",
+    "signerInfo",
+    "originatorInfo",
+    "any"
+})
+public class HVUOrderDetailsType {
+
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "OrderID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlElement(name = "OrderDataSize", required = true)
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger orderDataSize;
+    @XmlElement(name = "SigningInfo", required = true)
+    protected HVUSigningInfoType signingInfo;
+    @XmlElement(name = "SignerInfo")
+    protected List<SignerInfoType> signerInfo;
+    @XmlElement(name = "OriginatorInfo", required = true)
+    protected HVUOriginatorInfoType originatorInfo;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the orderDataSize property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getOrderDataSize() {
+        return orderDataSize;
+    }
+
+    /**
+     * Sets the value of the orderDataSize property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setOrderDataSize(BigInteger value) {
+        this.orderDataSize = value;
+    }
+
+    /**
+     * Gets the value of the signingInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVUSigningInfoType }
+     *     
+     */
+    public HVUSigningInfoType getSigningInfo() {
+        return signingInfo;
+    }
+
+    /**
+     * Sets the value of the signingInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVUSigningInfoType }
+     *     
+     */
+    public void setSigningInfo(HVUSigningInfoType value) {
+        this.signingInfo = value;
+    }
+
+    /**
+     * Gets the value of the signerInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the signerInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSignerInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link SignerInfoType }
+     * 
+     * 
+     */
+    public List<SignerInfoType> getSignerInfo() {
+        if (signerInfo == null) {
+            signerInfo = new ArrayList<SignerInfoType>();
+        }
+        return this.signerInfo;
+    }
+
+    /**
+     * Gets the value of the originatorInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVUOriginatorInfoType }
+     *     
+     */
+    public HVUOriginatorInfoType getOriginatorInfo() {
+        return originatorInfo;
+    }
+
+    /**
+     * Sets the value of the originatorInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVUOriginatorInfoType }
+     *     
+     */
+    public void setOriginatorInfo(HVUOriginatorInfoType value) {
+        this.originatorInfo = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOrderParamsType.java
new file mode 100644
index 0000000..22ee2a4
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOrderParamsType.java
@@ -0,0 +1,116 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlList;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart HVU.
+ * 
+ * <p>Java class for HVUOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVUOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderTypes" 
type="{urn:org:ebics:H004}OrderTListType" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVUOrderParamsType", propOrder = {
+    "orderTypes",
+    "any"
+})
+public class HVUOrderParamsType {
+
+    @XmlList
+    @XmlElement(name = "OrderTypes")
+    protected List<String> orderTypes;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderTypes property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderTypes 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderTypes().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getOrderTypes() {
+        if (orderTypes == null) {
+            orderTypes = new ArrayList<String>();
+        }
+        return this.orderTypes;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOriginatorInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOriginatorInfoType.java
new file mode 100644
index 0000000..7194936
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUOriginatorInfoType.java
@@ -0,0 +1,203 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Datentyp für Informationen zum Ersteller eines HVU-Auftrags.
+ * 
+ * <p>Java class for HVUOriginatorInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVUOriginatorInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *         &lt;element name="Name" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="Timestamp" 
type="{urn:org:ebics:H004}TimestampType"/>
+ *         &lt;any namespace='urn:org:ebics:H004' maxOccurs="unbounded" 
minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVUOriginatorInfoType", propOrder = {
+    "partnerID",
+    "userID",
+    "name",
+    "timestamp",
+    "any"
+})
+public class HVUOriginatorInfoType {
+
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlElement(name = "Name")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String name;
+    @XmlElement(name = "Timestamp", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar timestamp;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the timestamp property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTimestamp() {
+        return timestamp;
+    }
+
+    /**
+     * Sets the value of the timestamp property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTimestamp(XMLGregorianCalendar value) {
+        this.timestamp = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUResponseOrderDataType.java
new file mode 100644
index 0000000..1e546fb
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUResponseOrderDataType.java
@@ -0,0 +1,114 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Auftragsdaten für Auftragsart HVU (Antwort: VEU-Übersicht 
abholen).
+ * 
+ * <p>Java class for HVUResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVUResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderDetails" 
type="{urn:org:ebics:H004}HVUOrderDetailsType" maxOccurs="unbounded"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVUResponseOrderDataType", propOrder = {
+    "orderDetails",
+    "any"
+})
+public class HVUResponseOrderDataType {
+
+    @XmlElement(name = "OrderDetails", required = true)
+    protected List<HVUOrderDetailsType> orderDetails;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderDetails property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderDetails 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderDetails().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HVUOrderDetailsType }
+     * 
+     * 
+     */
+    public List<HVUOrderDetailsType> getOrderDetails() {
+        if (orderDetails == null) {
+            orderDetails = new ArrayList<HVUOrderDetailsType>();
+        }
+        return this.orderDetails;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUSigningInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUSigningInfoType.java
new file mode 100644
index 0000000..5834774
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVUSigningInfoType.java
@@ -0,0 +1,117 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Datentyp für Informationen zu den HVU-Unterschriftsmodalitäten.
+ * 
+ * <p>Java class for HVUSigningInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVUSigningInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;attribute name="readyToBeSigned" use="required" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; />
+ *       &lt;attribute name="NumSigRequired" use="required" 
type="{http://www.w3.org/2001/XMLSchema}positiveInteger"; />
+ *       &lt;attribute name="NumSigDone" use="required" 
type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVUSigningInfoType")
+public class HVUSigningInfoType {
+
+    @XmlAttribute(name = "readyToBeSigned", required = true)
+    protected boolean readyToBeSigned;
+    @XmlAttribute(name = "NumSigRequired", required = true)
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger numSigRequired;
+    @XmlAttribute(name = "NumSigDone", required = true)
+    @XmlSchemaType(name = "nonNegativeInteger")
+    protected BigInteger numSigDone;
+
+    /**
+     * Gets the value of the readyToBeSigned property.
+     * 
+     */
+    public boolean isReadyToBeSigned() {
+        return readyToBeSigned;
+    }
+
+    /**
+     * Sets the value of the readyToBeSigned property.
+     * 
+     */
+    public void setReadyToBeSigned(boolean value) {
+        this.readyToBeSigned = value;
+    }
+
+    /**
+     * Gets the value of the numSigRequired property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getNumSigRequired() {
+        return numSigRequired;
+    }
+
+    /**
+     * Sets the value of the numSigRequired property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setNumSigRequired(BigInteger value) {
+        this.numSigRequired = value;
+    }
+
+    /**
+     * Gets the value of the numSigDone property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getNumSigDone() {
+        return numSigDone;
+    }
+
+    /**
+     * Sets the value of the numSigDone property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setNumSigDone(BigInteger value) {
+        this.numSigDone = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZOrderDetailsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZOrderDetailsType.java
new file mode 100644
index 0000000..677bdd1
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZOrderDetailsType.java
@@ -0,0 +1,1190 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für HVZ-Auftragsdetails.
+ * 
+ * <p>Java class for HVZOrderDetailsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVZOrderDetailsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderType" 
type="{urn:org:ebics:H004}OrderTBaseType"/>
+ *         &lt;element name="FileFormat" 
type="{urn:org:ebics:H004}FileFormatType" minOccurs="0"/>
+ *         &lt;element name="OrderID" type="{urn:org:ebics:H004}OrderIDType"/>
+ *         &lt;element name="DataDigest" 
type="{urn:org:ebics:H004}DataDigestType"/>
+ *         &lt;element name="OrderDataAvailable" 
type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *         &lt;element name="OrderDataSize" 
type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/>
+ *         &lt;element name="OrderDetailsAvailable" 
type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ *         &lt;group ref="{urn:org:ebics:H004}HVZPaymentOrderDetailsStructure" 
minOccurs="0"/>
+ *         &lt;element name="SigningInfo" 
type="{urn:org:ebics:H004}HVUSigningInfoType"/>
+ *         &lt;element name="SignerInfo" 
type="{urn:org:ebics:H004}SignerInfoType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="OriginatorInfo" 
type="{urn:org:ebics:H004}HVUOriginatorInfoType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVZOrderDetailsType", propOrder = {
+    "orderType",
+    "fileFormat",
+    "orderID",
+    "dataDigest",
+    "orderDataAvailable",
+    "orderDataSize",
+    "orderDetailsAvailable",
+    "totalOrders",
+    "totalAmount",
+    "currency",
+    "firstOrderInfo",
+    "signingInfo",
+    "signerInfo",
+    "originatorInfo",
+    "any"
+})
+public class HVZOrderDetailsType {
+
+    @XmlElement(name = "OrderType", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderType;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "OrderID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlElement(name = "DataDigest", required = true)
+    protected DataDigestType dataDigest;
+    @XmlElement(name = "OrderDataAvailable")
+    protected boolean orderDataAvailable;
+    @XmlElement(name = "OrderDataSize", required = true)
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger orderDataSize;
+    @XmlElement(name = "OrderDetailsAvailable")
+    protected boolean orderDetailsAvailable;
+    @XmlElement(name = "TotalOrders")
+    @XmlSchemaType(name = "nonNegativeInteger")
+    protected BigInteger totalOrders;
+    @XmlElement(name = "TotalAmount")
+    protected HVZOrderDetailsType.TotalAmount totalAmount;
+    @XmlElement(name = "Currency")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String currency;
+    @XmlElement(name = "FirstOrderInfo")
+    protected HVZOrderDetailsType.FirstOrderInfo firstOrderInfo;
+    @XmlElement(name = "SigningInfo", required = true)
+    protected HVUSigningInfoType signingInfo;
+    @XmlElement(name = "SignerInfo")
+    protected List<SignerInfoType> signerInfo;
+    @XmlElement(name = "OriginatorInfo", required = true)
+    protected HVUOriginatorInfoType originatorInfo;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderType() {
+        return orderType;
+    }
+
+    /**
+     * Sets the value of the orderType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderType(String value) {
+        this.orderType = value;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the dataDigest property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DataDigestType }
+     *     
+     */
+    public DataDigestType getDataDigest() {
+        return dataDigest;
+    }
+
+    /**
+     * Sets the value of the dataDigest property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DataDigestType }
+     *     
+     */
+    public void setDataDigest(DataDigestType value) {
+        this.dataDigest = value;
+    }
+
+    /**
+     * Gets the value of the orderDataAvailable property.
+     * 
+     */
+    public boolean isOrderDataAvailable() {
+        return orderDataAvailable;
+    }
+
+    /**
+     * Sets the value of the orderDataAvailable property.
+     * 
+     */
+    public void setOrderDataAvailable(boolean value) {
+        this.orderDataAvailable = value;
+    }
+
+    /**
+     * Gets the value of the orderDataSize property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getOrderDataSize() {
+        return orderDataSize;
+    }
+
+    /**
+     * Sets the value of the orderDataSize property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setOrderDataSize(BigInteger value) {
+        this.orderDataSize = value;
+    }
+
+    /**
+     * Gets the value of the orderDetailsAvailable property.
+     * 
+     */
+    public boolean isOrderDetailsAvailable() {
+        return orderDetailsAvailable;
+    }
+
+    /**
+     * Sets the value of the orderDetailsAvailable property.
+     * 
+     */
+    public void setOrderDetailsAvailable(boolean value) {
+        this.orderDetailsAvailable = value;
+    }
+
+    /**
+     * Gets the value of the totalOrders property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getTotalOrders() {
+        return totalOrders;
+    }
+
+    /**
+     * Sets the value of the totalOrders property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setTotalOrders(BigInteger value) {
+        this.totalOrders = value;
+    }
+
+    /**
+     * Gets the value of the totalAmount property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVZOrderDetailsType.TotalAmount }
+     *     
+     */
+    public HVZOrderDetailsType.TotalAmount getTotalAmount() {
+        return totalAmount;
+    }
+
+    /**
+     * Sets the value of the totalAmount property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVZOrderDetailsType.TotalAmount }
+     *     
+     */
+    public void setTotalAmount(HVZOrderDetailsType.TotalAmount value) {
+        this.totalAmount = value;
+    }
+
+    /**
+     * Gets the value of the currency property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getCurrency() {
+        return currency;
+    }
+
+    /**
+     * Sets the value of the currency property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setCurrency(String value) {
+        this.currency = value;
+    }
+
+    /**
+     * Gets the value of the firstOrderInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVZOrderDetailsType.FirstOrderInfo }
+     *     
+     */
+    public HVZOrderDetailsType.FirstOrderInfo getFirstOrderInfo() {
+        return firstOrderInfo;
+    }
+
+    /**
+     * Sets the value of the firstOrderInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVZOrderDetailsType.FirstOrderInfo }
+     *     
+     */
+    public void setFirstOrderInfo(HVZOrderDetailsType.FirstOrderInfo value) {
+        this.firstOrderInfo = value;
+    }
+
+    /**
+     * Gets the value of the signingInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVUSigningInfoType }
+     *     
+     */
+    public HVUSigningInfoType getSigningInfo() {
+        return signingInfo;
+    }
+
+    /**
+     * Sets the value of the signingInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVUSigningInfoType }
+     *     
+     */
+    public void setSigningInfo(HVUSigningInfoType value) {
+        this.signingInfo = value;
+    }
+
+    /**
+     * Gets the value of the signerInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the signerInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSignerInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link SignerInfoType }
+     * 
+     * 
+     */
+    public List<SignerInfoType> getSignerInfo() {
+        if (signerInfo == null) {
+            signerInfo = new ArrayList<SignerInfoType>();
+        }
+        return this.signerInfo;
+    }
+
+    /**
+     * Gets the value of the originatorInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link HVUOriginatorInfoType }
+     *     
+     */
+    public HVUOriginatorInfoType getOriginatorInfo() {
+        return originatorInfo;
+    }
+
+    /**
+     * Sets the value of the originatorInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link HVUOriginatorInfoType }
+     *     
+     */
+    public void setOriginatorInfo(HVUOriginatorInfoType value) {
+        this.originatorInfo = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;sequence>
+     *         &lt;element name="OrderPartyInfo" 
type="{http://www.w3.org/2001/XMLSchema}normalizedString"; minOccurs="0"/>
+     *         &lt;element name="AccountInfo" minOccurs="0">
+     *           &lt;complexType>
+     *             &lt;complexContent>
+     *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *                 &lt;sequence>
+     *                   &lt;choice maxOccurs="2">
+     *                     &lt;element name="AccountNumber">
+     *                       &lt;complexType>
+     *                         &lt;simpleContent>
+     *                           &lt;extension 
base="&lt;urn:org:ebics:H004>AccountNumberType">
+     *                             &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *                           &lt;/extension>
+     *                         &lt;/simpleContent>
+     *                       &lt;/complexType>
+     *                     &lt;/element>
+     *                     &lt;element name="NationalAccountNumber">
+     *                       &lt;complexType>
+     *                         &lt;simpleContent>
+     *                           &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+     *                             &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+     *                           &lt;/extension>
+     *                         &lt;/simpleContent>
+     *                       &lt;/complexType>
+     *                     &lt;/element>
+     *                   &lt;/choice>
+     *                   &lt;choice maxOccurs="2">
+     *                     &lt;element name="BankCode">
+     *                       &lt;complexType>
+     *                         &lt;simpleContent>
+     *                           &lt;extension 
base="&lt;urn:org:ebics:H004>BankCodeType">
+     *                             &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+     *                             &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+     *                           &lt;/extension>
+     *                         &lt;/simpleContent>
+     *                       &lt;/complexType>
+     *                     &lt;/element>
+     *                     &lt;element name="NationalBankCode">
+     *                       &lt;complexType>
+     *                         &lt;simpleContent>
+     *                           &lt;extension 
base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+     *                             &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+     *                           &lt;/extension>
+     *                         &lt;/simpleContent>
+     *                       &lt;/complexType>
+     *                     &lt;/element>
+     *                   &lt;/choice>
+     *                 &lt;/sequence>
+     *               &lt;/restriction>
+     *             &lt;/complexContent>
+     *           &lt;/complexType>
+     *         &lt;/element>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "orderPartyInfo",
+        "accountInfo"
+    })
+    public static class FirstOrderInfo {
+
+        @XmlElement(name = "OrderPartyInfo")
+        @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+        @XmlSchemaType(name = "normalizedString")
+        protected String orderPartyInfo;
+        @XmlElement(name = "AccountInfo")
+        protected HVZOrderDetailsType.FirstOrderInfo.AccountInfo accountInfo;
+
+        /**
+         * Gets the value of the orderPartyInfo property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getOrderPartyInfo() {
+            return orderPartyInfo;
+        }
+
+        /**
+         * Sets the value of the orderPartyInfo property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setOrderPartyInfo(String value) {
+            this.orderPartyInfo = value;
+        }
+
+        /**
+         * Gets the value of the accountInfo property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link HVZOrderDetailsType.FirstOrderInfo.AccountInfo }
+         *     
+         */
+        public HVZOrderDetailsType.FirstOrderInfo.AccountInfo getAccountInfo() 
{
+            return accountInfo;
+        }
+
+        /**
+         * Sets the value of the accountInfo property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link HVZOrderDetailsType.FirstOrderInfo.AccountInfo }
+         *     
+         */
+        public void 
setAccountInfo(HVZOrderDetailsType.FirstOrderInfo.AccountInfo value) {
+            this.accountInfo = value;
+        }
+
+
+        /**
+         * <p>Java class for anonymous complex type.
+         * 
+         * <p>The following schema fragment specifies the expected content 
contained within this class.
+         * 
+         * <pre>
+         * &lt;complexType>
+         *   &lt;complexContent>
+         *     &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+         *       &lt;sequence>
+         *         &lt;choice maxOccurs="2">
+         *           &lt;element name="AccountNumber">
+         *             &lt;complexType>
+         *               &lt;simpleContent>
+         *                 &lt;extension 
base="&lt;urn:org:ebics:H004>AccountNumberType">
+         *                   &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+         *                 &lt;/extension>
+         *               &lt;/simpleContent>
+         *             &lt;/complexType>
+         *           &lt;/element>
+         *           &lt;element name="NationalAccountNumber">
+         *             &lt;complexType>
+         *               &lt;simpleContent>
+         *                 &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+         *                   &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+         *                 &lt;/extension>
+         *               &lt;/simpleContent>
+         *             &lt;/complexType>
+         *           &lt;/element>
+         *         &lt;/choice>
+         *         &lt;choice maxOccurs="2">
+         *           &lt;element name="BankCode">
+         *             &lt;complexType>
+         *               &lt;simpleContent>
+         *                 &lt;extension 
base="&lt;urn:org:ebics:H004>BankCodeType">
+         *                   &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+         *                   &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+         *                 &lt;/extension>
+         *               &lt;/simpleContent>
+         *             &lt;/complexType>
+         *           &lt;/element>
+         *           &lt;element name="NationalBankCode">
+         *             &lt;complexType>
+         *               &lt;simpleContent>
+         *                 &lt;extension 
base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+         *                   &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+         *                 &lt;/extension>
+         *               &lt;/simpleContent>
+         *             &lt;/complexType>
+         *           &lt;/element>
+         *         &lt;/choice>
+         *       &lt;/sequence>
+         *     &lt;/restriction>
+         *   &lt;/complexContent>
+         * &lt;/complexType>
+         * </pre>
+         * 
+         * 
+         */
+        @XmlAccessorType(XmlAccessType.FIELD)
+        @XmlType(name = "", propOrder = {
+            "accountNumberOrNationalAccountNumber",
+            "bankCodeOrNationalBankCode"
+        })
+        public static class AccountInfo {
+
+            @XmlElements({
+                @XmlElement(name = "AccountNumber", type = 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.AccountNumber.class),
+                @XmlElement(name = "NationalAccountNumber", type = 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalAccountNumber.class)
+            })
+            protected List<Object> accountNumberOrNationalAccountNumber;
+            @XmlElements({
+                @XmlElement(name = "BankCode", type = 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.BankCode.class),
+                @XmlElement(name = "NationalBankCode", type = 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalBankCode.class)
+            })
+            protected List<Object> bankCodeOrNationalBankCode;
+
+            /**
+             * Gets the value of the accountNumberOrNationalAccountNumber 
property.
+             * 
+             * <p>
+             * This accessor method returns a reference to the live list,
+             * not a snapshot. Therefore any modification you make to the
+             * returned list will be present inside the JAXB object.
+             * This is why there is not a <CODE>set</CODE> method for the 
accountNumberOrNationalAccountNumber property.
+             * 
+             * <p>
+             * For example, to add a new item, do as follows:
+             * <pre>
+             *    getAccountNumberOrNationalAccountNumber().add(newItem);
+             * </pre>
+             * 
+             * 
+             * <p>
+             * Objects of the following type(s) are allowed in the list
+             * {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.AccountNumber }
+             * {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalAccountNumber }
+             * 
+             * 
+             */
+            public List<Object> getAccountNumberOrNationalAccountNumber() {
+                if (accountNumberOrNationalAccountNumber == null) {
+                    accountNumberOrNationalAccountNumber = new 
ArrayList<Object>();
+                }
+                return this.accountNumberOrNationalAccountNumber;
+            }
+
+            /**
+             * Gets the value of the bankCodeOrNationalBankCode property.
+             * 
+             * <p>
+             * This accessor method returns a reference to the live list,
+             * not a snapshot. Therefore any modification you make to the
+             * returned list will be present inside the JAXB object.
+             * This is why there is not a <CODE>set</CODE> method for the 
bankCodeOrNationalBankCode property.
+             * 
+             * <p>
+             * For example, to add a new item, do as follows:
+             * <pre>
+             *    getBankCodeOrNationalBankCode().add(newItem);
+             * </pre>
+             * 
+             * 
+             * <p>
+             * Objects of the following type(s) are allowed in the list
+             * {@link HVZOrderDetailsType.FirstOrderInfo.AccountInfo.BankCode }
+             * {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalBankCode }
+             * 
+             * 
+             */
+            public List<Object> getBankCodeOrNationalBankCode() {
+                if (bankCodeOrNationalBankCode == null) {
+                    bankCodeOrNationalBankCode = new ArrayList<Object>();
+                }
+                return this.bankCodeOrNationalBankCode;
+            }
+
+
+            /**
+             * <p>Java class for anonymous complex type.
+             * 
+             * <p>The following schema fragment specifies the expected content 
contained within this class.
+             * 
+             * <pre>
+             * &lt;complexType>
+             *   &lt;simpleContent>
+             *     &lt;extension 
base="&lt;urn:org:ebics:H004>AccountNumberType">
+             *       &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+             *     &lt;/extension>
+             *   &lt;/simpleContent>
+             * &lt;/complexType>
+             * </pre>
+             * 
+             * 
+             */
+            @XmlAccessorType(XmlAccessType.FIELD)
+            @XmlType(name = "", propOrder = {
+                "value"
+            })
+            public static class AccountNumber {
+
+                @XmlValue
+                @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+                protected String value;
+                @XmlAttribute(name = "international")
+                protected Boolean international;
+
+                /**
+                 * Datentyp für eine Kontonummer (national/international).
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getValue() {
+                    return value;
+                }
+
+                /**
+                 * Sets the value of the value property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setValue(String value) {
+                    this.value = value;
+                }
+
+                /**
+                 * Gets the value of the international property.
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link Boolean }
+                 *     
+                 */
+                public boolean isInternational() {
+                    if (international == null) {
+                        return false;
+                    } else {
+                        return international;
+                    }
+                }
+
+                /**
+                 * Sets the value of the international property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link Boolean }
+                 *     
+                 */
+                public void setInternational(Boolean value) {
+                    this.international = value;
+                }
+
+            }
+
+
+            /**
+             * <p>Java class for anonymous complex type.
+             * 
+             * <p>The following schema fragment specifies the expected content 
contained within this class.
+             * 
+             * <pre>
+             * &lt;complexType>
+             *   &lt;simpleContent>
+             *     &lt;extension base="&lt;urn:org:ebics:H004>BankCodeType">
+             *       &lt;attribute name="international" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; default="false" />
+             *       &lt;attribute name="Prefix" 
type="{urn:org:ebics:H004}BankCodePrefixType" />
+             *     &lt;/extension>
+             *   &lt;/simpleContent>
+             * &lt;/complexType>
+             * </pre>
+             * 
+             * 
+             */
+            @XmlAccessorType(XmlAccessType.FIELD)
+            @XmlType(name = "", propOrder = {
+                "value"
+            })
+            public static class BankCode {
+
+                @XmlValue
+                @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+                protected String value;
+                @XmlAttribute(name = "international")
+                protected Boolean international;
+                @XmlAttribute(name = "Prefix")
+                @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+                protected String prefix;
+
+                /**
+                 * Datentyp für eine Bankleitzahl (national/international).
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getValue() {
+                    return value;
+                }
+
+                /**
+                 * Sets the value of the value property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setValue(String value) {
+                    this.value = value;
+                }
+
+                /**
+                 * Gets the value of the international property.
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link Boolean }
+                 *     
+                 */
+                public boolean isInternational() {
+                    if (international == null) {
+                        return false;
+                    } else {
+                        return international;
+                    }
+                }
+
+                /**
+                 * Sets the value of the international property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link Boolean }
+                 *     
+                 */
+                public void setInternational(Boolean value) {
+                    this.international = value;
+                }
+
+                /**
+                 * Gets the value of the prefix property.
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getPrefix() {
+                    return prefix;
+                }
+
+                /**
+                 * Sets the value of the prefix property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setPrefix(String value) {
+                    this.prefix = value;
+                }
+
+            }
+
+
+            /**
+             * <p>Java class for anonymous complex type.
+             * 
+             * <p>The following schema fragment specifies the expected content 
contained within this class.
+             * 
+             * <pre>
+             * &lt;complexType>
+             *   &lt;simpleContent>
+             *     &lt;extension 
base="&lt;urn:org:ebics:H004>NationalAccountNumberType">
+             *       &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+             *     &lt;/extension>
+             *   &lt;/simpleContent>
+             * &lt;/complexType>
+             * </pre>
+             * 
+             * 
+             */
+            @XmlAccessorType(XmlAccessType.FIELD)
+            @XmlType(name = "", propOrder = {
+                "value"
+            })
+            public static class NationalAccountNumber {
+
+                @XmlValue
+                @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+                protected String value;
+                @XmlAttribute(name = "format", required = true)
+                @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+                @XmlSchemaType(name = "token")
+                protected String format;
+
+                /**
+                 * Datentyp für eine Kontonummer (freies Format).
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getValue() {
+                    return value;
+                }
+
+                /**
+                 * Sets the value of the value property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setValue(String value) {
+                    this.value = value;
+                }
+
+                /**
+                 * Gets the value of the format property.
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getFormat() {
+                    return format;
+                }
+
+                /**
+                 * Sets the value of the format property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setFormat(String value) {
+                    this.format = value;
+                }
+
+            }
+
+
+            /**
+             * <p>Java class for anonymous complex type.
+             * 
+             * <p>The following schema fragment specifies the expected content 
contained within this class.
+             * 
+             * <pre>
+             * &lt;complexType>
+             *   &lt;simpleContent>
+             *     &lt;extension 
base="&lt;urn:org:ebics:H004>NationalBankCodeType">
+             *       &lt;attribute name="format" use="required" 
type="{http://www.w3.org/2001/XMLSchema}token"; />
+             *     &lt;/extension>
+             *   &lt;/simpleContent>
+             * &lt;/complexType>
+             * </pre>
+             * 
+             * 
+             */
+            @XmlAccessorType(XmlAccessType.FIELD)
+            @XmlType(name = "", propOrder = {
+                "value"
+            })
+            public static class NationalBankCode {
+
+                @XmlValue
+                @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+                protected String value;
+                @XmlAttribute(name = "format", required = true)
+                @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+                @XmlSchemaType(name = "token")
+                protected String format;
+
+                /**
+                 * Datentyp für eine Bankleitzahl (freies Format).
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getValue() {
+                    return value;
+                }
+
+                /**
+                 * Sets the value of the value property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setValue(String value) {
+                    this.value = value;
+                }
+
+                /**
+                 * Gets the value of the format property.
+                 * 
+                 * @return
+                 *     possible object is
+                 *     {@link String }
+                 *     
+                 */
+                public String getFormat() {
+                    return format;
+                }
+
+                /**
+                 * Sets the value of the format property.
+                 * 
+                 * @param value
+                 *     allowed object is
+                 *     {@link String }
+                 *     
+                 */
+                public void setFormat(String value) {
+                    this.format = value;
+                }
+
+            }
+
+        }
+
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>AmountValueType">
+     *       &lt;attribute name="isCredit" 
type="{http://www.w3.org/2001/XMLSchema}boolean"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class TotalAmount {
+
+        @XmlValue
+        protected BigDecimal value;
+        @XmlAttribute(name = "isCredit")
+        protected Boolean isCredit;
+
+        /**
+         * Datentyp für einen Betragswert (ohne Währung).
+         * 
+         * @return
+         *     possible object is
+         *     {@link BigDecimal }
+         *     
+         */
+        public BigDecimal getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link BigDecimal }
+         *     
+         */
+        public void setValue(BigDecimal value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the isCredit property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Boolean }
+         *     
+         */
+        public Boolean isIsCredit() {
+            return isCredit;
+        }
+
+        /**
+         * Sets the value of the isCredit property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Boolean }
+         *     
+         */
+        public void setIsCredit(Boolean value) {
+            this.isCredit = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZOrderParamsType.java
new file mode 100644
index 0000000..ae6d2cf
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZOrderParamsType.java
@@ -0,0 +1,116 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlList;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter für Auftragsart HVZ.
+ * 
+ * <p>Java class for HVZOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVZOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderTypes" 
type="{urn:org:ebics:H004}OrderTListType" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVZOrderParamsType", propOrder = {
+    "orderTypes",
+    "any"
+})
+public class HVZOrderParamsType {
+
+    @XmlList
+    @XmlElement(name = "OrderTypes")
+    protected List<String> orderTypes;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderTypes property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderTypes 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderTypes().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getOrderTypes() {
+        if (orderTypes == null) {
+            orderTypes = new ArrayList<String>();
+        }
+        return this.orderTypes;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZResponseOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZResponseOrderDataType.java
new file mode 100644
index 0000000..9a7d8eb
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/HVZResponseOrderDataType.java
@@ -0,0 +1,114 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Order data for order type HVZ (response: receive summary of orders 
currently stored in the distributed signature processing unit with additional 
informations).
+ * 
+ * <p>Java class for HVZResponseOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="HVZResponseOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderDetails" 
type="{urn:org:ebics:H004}HVZOrderDetailsType" maxOccurs="unbounded"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "HVZResponseOrderDataType", propOrder = {
+    "orderDetails",
+    "any"
+})
+public class HVZResponseOrderDataType {
+
+    @XmlElement(name = "OrderDetails", required = true)
+    protected List<HVZOrderDetailsType> orderDetails;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderDetails property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderDetails 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderDetails().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link HVZOrderDetailsType }
+     * 
+     * 
+     */
+    public List<HVZOrderDetailsType> getOrderDetails() {
+        if (orderDetails == null) {
+            orderDetails = new ArrayList<HVZOrderDetailsType>();
+        }
+        return this.orderDetails;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyInfoType.java
new file mode 100644
index 0000000..c8023f5
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyInfoType.java
@@ -0,0 +1,142 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for KeyInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;choice maxOccurs="unbounded">
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}KeyName"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}KeyValue"/>
+ *         &lt;element 
ref="{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}PGPData"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SPKIData"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}MgmtData"/>
+ *         &lt;any processContents='lax' namespace='##other'/>
+ *       &lt;/choice>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "KeyInfoType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class KeyInfoType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "PGPData", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "MgmtData", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "KeyName", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "RetrievalMethod", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "KeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "X509Data", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "SPKIData", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false)
+    })
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link PGPDataType }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link Object }
+     * {@link JAXBElement }{@code <}{@link RetrievalMethodType }{@code >}
+     * {@link JAXBElement }{@code <}{@link KeyValueType }{@code >}
+     * {@link String }
+     * {@link Element }
+     * {@link JAXBElement }{@code <}{@link X509DataType }{@code >}
+     * {@link JAXBElement }{@code <}{@link SPKIDataType }{@code >}
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyMgmntResponseMutableHeaderType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyMgmntResponseMutableHeaderType.java
new file mode 100644
index 0000000..3233091
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyMgmntResponseMutableHeaderType.java
@@ -0,0 +1,175 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für den variablen EBICS-Header.
+ * 
+ * <p>Java class for KeyMgmntResponseMutableHeaderType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyMgmntResponseMutableHeaderType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderID" type="{urn:org:ebics:H004}OrderIDType" 
minOccurs="0"/>
+ *         &lt;element name="ReturnCode" 
type="{urn:org:ebics:H004}ReturnCodeType"/>
+ *         &lt;element name="ReportText" 
type="{urn:org:ebics:H004}ReportTextType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "KeyMgmntResponseMutableHeaderType", propOrder = {
+    "orderID",
+    "returnCode",
+    "reportText",
+    "any"
+})
+public class KeyMgmntResponseMutableHeaderType {
+
+    @XmlElement(name = "OrderID")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String orderID;
+    @XmlElement(name = "ReturnCode", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String returnCode;
+    @XmlElement(name = "ReportText", required = true)
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String reportText;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getOrderID() {
+        return orderID;
+    }
+
+    /**
+     * Sets the value of the orderID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setOrderID(String value) {
+        this.orderID = value;
+    }
+
+    /**
+     * Gets the value of the returnCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReturnCode() {
+        return returnCode;
+    }
+
+    /**
+     * Sets the value of the returnCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReturnCode(String value) {
+        this.returnCode = value;
+    }
+
+    /**
+     * Gets the value of the reportText property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReportText() {
+        return reportText;
+    }
+
+    /**
+     * Sets the value of the reportText property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReportText(String value) {
+        this.reportText = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyValueType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyValueType.java
new file mode 100644
index 0000000..22cd66a
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/KeyValueType.java
@@ -0,0 +1,92 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for KeyValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;choice>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/>
+ *         &lt;any processContents='lax' namespace='##other'/>
+ *       &lt;/choice>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "KeyValueType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class KeyValueType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "DSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false)
+    })
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link Element }
+     * {@link Object }
+     * {@link JAXBElement }{@code <}{@link RSAKeyValueType }{@code >}
+     * {@link JAXBElement }{@code <}{@link DSAKeyValueType }{@code >}
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ManifestType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ManifestType.java
new file mode 100644
index 0000000..0b0d871
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ManifestType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for ManifestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ManifestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Reference"; 
maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ManifestType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "reference"
+})
+public class ManifestType {
+
+    @XmlElement(name = "Reference", required = true)
+    protected List<ReferenceType> reference;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the reference property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the reference 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getReference().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ReferenceType }
+     * 
+     * 
+     */
+    public List<ReferenceType> getReference() {
+        if (reference == null) {
+            reference = new ArrayList<ReferenceType>();
+        }
+        return this.reference;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ObjectFactory.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ObjectFactory.java
new file mode 100644
index 0000000..b6379f2
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ObjectFactory.java
@@ -0,0 +1,1893 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the tech.libeufin.messages.ebics.keyresponse package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _HVTResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HVTResponseOrderData");
+    private final static QName _KeyInfo_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "KeyInfo");
+    private final static QName _HPBResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HPBResponseOrderData");
+    private final static QName _GenericOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "GenericOrderParams");
+    private final static QName _HSARequestOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HSARequestOrderData");
+    private final static QName _ebicsSignatureDataAtEbicsOrders_QNAME = new 
QName("urn:org:ebics:H004", "EBICSSignatureData");
+    private final static QName _HVDResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HVDResponseOrderData");
+    private final static QName _HCARequestOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HCARequestOrderData");
+    private final static QName _SignatureProperty_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SignatureProperty");
+    private final static QName _HVEOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "HVEOrderParams");
+    private final static QName _EBICSOrderData_QNAME = new 
QName("urn:org:ebics:H004", "EBICSOrderData");
+    private final static QName _RSAKeyValue_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "RSAKeyValue");
+    private final static QName _HCSRequestOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HCSRequestOrderData");
+    private final static QName _HVSOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "HVSOrderParams");
+    private final static QName _SignatureMethod_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SignatureMethod");
+    private final static QName _Object_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "Object");
+    private final static QName _BankSignatureData_QNAME = new 
QName("urn:org:ebics:H004", "BankSignatureData");
+    private final static QName _FDLOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "FDLOrderParams");
+    private final static QName _PGPData_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "PGPData");
+    private final static QName _RetrievalMethod_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "RetrievalMethod");
+    private final static QName _SignaturePubKeyOrderData_QNAME = new 
QName("http://www.ebics.org/S001";, "SignaturePubKeyOrderData");
+    private final static QName _DSAKeyValue_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "DSAKeyValue");
+    private final static QName _HVSRequestOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HVSRequestOrderData");
+    private final static QName _OrderSignatureData_QNAME = new 
QName("http://www.ebics.org/S001";, "OrderSignatureData");
+    private final static QName _H3KRequestOrderData_QNAME = new 
QName("urn:org:ebics:H004", "H3KRequestOrderData");
+    private final static QName _HTDResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HTDResponseOrderData");
+    private final static QName _SPKIData_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SPKIData");
+    private final static QName _HIARequestOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HIARequestOrderData");
+    private final static QName _HVZResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HVZResponseOrderData");
+    private final static QName _SignatureValue_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SignatureValue");
+    private final static QName _UserSignatureData_QNAME = new 
QName("http://www.ebics.org/S001";, "UserSignatureData");
+    private final static QName _OrderParams_QNAME = new 
QName("urn:org:ebics:H004", "OrderParams");
+    private final static QName _KeyValue_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "KeyValue");
+    private final static QName _Transforms_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "Transforms");
+    private final static QName _HVUResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HVUResponseOrderData");
+    private final static QName _SignaturePubKeyInfo_QNAME = new 
QName("http://www.ebics.org/S001";, "SignaturePubKeyInfo");
+    private final static QName _HVUOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "HVUOrderParams");
+    private final static QName _DigestMethod_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "DigestMethod");
+    private final static QName _X509Data_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "X509Data");
+    private final static QName _AuthSignature_QNAME = new 
QName("urn:org:ebics:H004", "AuthSignature");
+    private final static QName _KeyName_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "KeyName");
+    private final static QName _Signature_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "Signature");
+    private final static QName _MgmtData_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "MgmtData");
+    private final static QName _HAAResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HAAResponseOrderData");
+    private final static QName _HVZOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "HVZOrderParams");
+    private final static QName _SignatureProperties_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SignatureProperties");
+    private final static QName _HPDResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HPDResponseOrderData");
+    private final static QName _FULOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "FULOrderParams");
+    private final static QName _Transform_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "Transform");
+    private final static QName _HKDResponseOrderData_QNAME = new 
QName("urn:org:ebics:H004", "HKDResponseOrderData");
+    private final static QName _HVDOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "HVDOrderParams");
+    private final static QName _StandardOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "StandardOrderParams");
+    private final static QName _Reference_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "Reference");
+    private final static QName _DigestValue_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "DigestValue");
+    private final static QName _HVTOrderParams_QNAME = new 
QName("urn:org:ebics:H004", "HVTOrderParams");
+    private final static QName _CanonicalizationMethod_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "CanonicalizationMethod");
+    private final static QName _SignedInfo_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SignedInfo");
+    private final static QName _ebicsSignatureDataAtEbicsSignatures_QNAME = 
new QName("http://www.ebics.org/S001";, "EBICSSignatureData");
+    private final static QName _Manifest_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "Manifest");
+    private final static QName _PGPDataTypePGPKeyID_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "PGPKeyID");
+    private final static QName _PGPDataTypePGPKeyPacket_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "PGPKeyPacket");
+    private final static QName _X509DataTypeX509IssuerSerial_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "X509IssuerSerial");
+    private final static QName _X509DataTypeX509CRL_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "X509CRL");
+    private final static QName _X509DataTypeX509SubjectName_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "X509SubjectName");
+    private final static QName _X509DataTypeX509SKI_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "X509SKI");
+    private final static QName _X509DataTypeX509Certificate_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "X509Certificate");
+    private final static QName _SignatureMethodTypeHMACOutputLength_QNAME = 
new QName("http://www.w3.org/2000/09/xmldsig#";, "HMACOutputLength");
+    private final static QName _TransformTypeXPath_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "XPath");
+    private final static QName _SPKIDataTypeSPKISexp_QNAME = new 
QName("http://www.w3.org/2000/09/xmldsig#";, "SPKISexp");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of 
schema derived classes for package: tech.libeufin.messages.ebics.keyresponse
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link EbicsKeyManagementResponse }
+     * 
+     */
+    public EbicsKeyManagementResponse createEbicsKeyManagementResponse() {
+        return new EbicsKeyManagementResponse();
+    }
+
+    /**
+     * Create an instance of {@link Parameter }
+     * 
+     */
+    public Parameter createParameter() {
+        return new Parameter();
+    }
+
+    /**
+     * Create an instance of {@link UserSignatureDataSigBookType }
+     * 
+     */
+    public UserSignatureDataSigBookType createUserSignatureDataSigBookType() {
+        return new UserSignatureDataSigBookType();
+    }
+
+    /**
+     * Create an instance of {@link AccountType }
+     * 
+     */
+    public AccountType createAccountType() {
+        return new AccountType();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferResponseType }
+     * 
+     */
+    public DataTransferResponseType createDataTransferResponseType() {
+        return new DataTransferResponseType();
+    }
+
+    /**
+     * Create an instance of {@link DataEncryptionInfoType }
+     * 
+     */
+    public DataEncryptionInfoType createDataEncryptionInfoType() {
+        return new DataEncryptionInfoType();
+    }
+
+    /**
+     * Create an instance of {@link AttributedAccountType }
+     * 
+     */
+    public AttributedAccountType createAttributedAccountType() {
+        return new AttributedAccountType();
+    }
+
+    /**
+     * Create an instance of {@link UserInfoType }
+     * 
+     */
+    public UserInfoType createUserInfoType() {
+        return new UserInfoType();
+    }
+
+    /**
+     * Create an instance of {@link HPDAccessParamsType }
+     * 
+     */
+    public HPDAccessParamsType createHPDAccessParamsType() {
+        return new HPDAccessParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HVZOrderDetailsType }
+     * 
+     */
+    public HVZOrderDetailsType createHVZOrderDetailsType() {
+        return new HVZOrderDetailsType();
+    }
+
+    /**
+     * Create an instance of {@link HVZOrderDetailsType.FirstOrderInfo }
+     * 
+     */
+    public HVZOrderDetailsType.FirstOrderInfo 
createHVZOrderDetailsTypeFirstOrderInfo() {
+        return new HVZOrderDetailsType.FirstOrderInfo();
+    }
+
+    /**
+     * Create an instance of {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo }
+     * 
+     */
+    public HVZOrderDetailsType.FirstOrderInfo.AccountInfo 
createHVZOrderDetailsTypeFirstOrderInfoAccountInfo() {
+        return new HVZOrderDetailsType.FirstOrderInfo.AccountInfo();
+    }
+
+    /**
+     * Create an instance of {@link PartnerInfoType }
+     * 
+     */
+    public PartnerInfoType createPartnerInfoType() {
+        return new PartnerInfoType();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderInfoType }
+     * 
+     */
+    public HVTOrderInfoType createHVTOrderInfoType() {
+        return new HVTOrderInfoType();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferRequestType }
+     * 
+     */
+    public DataTransferRequestType createDataTransferRequestType() {
+        return new DataTransferRequestType();
+    }
+
+    /**
+     * Create an instance of {@link SignerInfoType }
+     * 
+     */
+    public SignerInfoType createSignerInfoType() {
+        return new SignerInfoType();
+    }
+
+    /**
+     * Create an instance of {@link HPDProtocolParamsType }
+     * 
+     */
+    public HPDProtocolParamsType createHPDProtocolParamsType() {
+        return new HPDProtocolParamsType();
+    }
+
+    /**
+     * Create an instance of {@link EbicsKeyManagementResponse.Body }
+     * 
+     */
+    public EbicsKeyManagementResponse.Body 
createEbicsKeyManagementResponseBody() {
+        return new EbicsKeyManagementResponse.Body();
+    }
+
+    /**
+     * Create an instance of {@link 
EbicsKeyManagementResponse.Body.DataTransfer }
+     * 
+     */
+    public EbicsKeyManagementResponse.Body.DataTransfer 
createEbicsKeyManagementResponseBodyDataTransfer() {
+        return new EbicsKeyManagementResponse.Body.DataTransfer();
+    }
+
+    /**
+     * Create an instance of {@link EbicsKeyManagementResponse.Header }
+     * 
+     */
+    public EbicsKeyManagementResponse.Header 
createEbicsKeyManagementResponseHeader() {
+        return new EbicsKeyManagementResponse.Header();
+    }
+
+    /**
+     * Create an instance of {@link BankSignatureDataSigBookType }
+     * 
+     */
+    public BankSignatureDataSigBookType createBankSignatureDataSigBookType() {
+        return new BankSignatureDataSigBookType();
+    }
+
+    /**
+     * Create an instance of {@link StandardOrderParamsType }
+     * 
+     */
+    public StandardOrderParamsType createStandardOrderParamsType() {
+        return new StandardOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link FDLOrderParamsType }
+     * 
+     */
+    public FDLOrderParamsType createFDLOrderParamsType() {
+        return new FDLOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderParamsType }
+     * 
+     */
+    public HVTOrderParamsType createHVTOrderParamsType() {
+        return new HVTOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HVZOrderParamsType }
+     * 
+     */
+    public HVZOrderParamsType createHVZOrderParamsType() {
+        return new HVZOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HAAResponseOrderDataType }
+     * 
+     */
+    public HAAResponseOrderDataType createHAAResponseOrderDataType() {
+        return new HAAResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVSOrderParamsType }
+     * 
+     */
+    public HVSOrderParamsType createHVSOrderParamsType() {
+        return new HVSOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HPDResponseOrderDataType }
+     * 
+     */
+    public HPDResponseOrderDataType createHPDResponseOrderDataType() {
+        return new HPDResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link FULOrderParamsType }
+     * 
+     */
+    public FULOrderParamsType createFULOrderParamsType() {
+        return new FULOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link SignatureType }
+     * 
+     */
+    public SignatureType createSignatureType() {
+        return new SignatureType();
+    }
+
+    /**
+     * Create an instance of {@link HVEOrderParamsType }
+     * 
+     */
+    public HVEOrderParamsType createHVEOrderParamsType() {
+        return new HVEOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HCSRequestOrderDataType }
+     * 
+     */
+    public HCSRequestOrderDataType createHCSRequestOrderDataType() {
+        return new HCSRequestOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVSRequestOrderDataType }
+     * 
+     */
+    public HVSRequestOrderDataType createHVSRequestOrderDataType() {
+        return new HVSRequestOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link H3KRequestOrderDataType }
+     * 
+     */
+    public H3KRequestOrderDataType createH3KRequestOrderDataType() {
+        return new H3KRequestOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HTDReponseOrderDataType }
+     * 
+     */
+    public HTDReponseOrderDataType createHTDReponseOrderDataType() {
+        return new HTDReponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HKDResponseOrderDataType }
+     * 
+     */
+    public HKDResponseOrderDataType createHKDResponseOrderDataType() {
+        return new HKDResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVDOrderParamsType }
+     * 
+     */
+    public HVDOrderParamsType createHVDOrderParamsType() {
+        return new HVDOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HPBResponseOrderDataType }
+     * 
+     */
+    public HPBResponseOrderDataType createHPBResponseOrderDataType() {
+        return new HPBResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link GenericOrderParamsType }
+     * 
+     */
+    public GenericOrderParamsType createGenericOrderParamsType() {
+        return new GenericOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HSARequestOrderDataType }
+     * 
+     */
+    public HSARequestOrderDataType createHSARequestOrderDataType() {
+        return new HSARequestOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HIARequestOrderDataType }
+     * 
+     */
+    public HIARequestOrderDataType createHIARequestOrderDataType() {
+        return new HIARequestOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVZResponseOrderDataType }
+     * 
+     */
+    public HVZResponseOrderDataType createHVZResponseOrderDataType() {
+        return new HVZResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVTResponseOrderData }
+     * 
+     */
+    public HVTResponseOrderData createHVTResponseOrderData() {
+        return new HVTResponseOrderData();
+    }
+
+    /**
+     * Create an instance of {@link HCARequestOrderDataType }
+     * 
+     */
+    public HCARequestOrderDataType createHCARequestOrderDataType() {
+        return new HCARequestOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link Parameter.Value }
+     * 
+     */
+    public Parameter.Value createParameterValue() {
+        return new Parameter.Value();
+    }
+
+    /**
+     * Create an instance of {@link HVUOrderParamsType }
+     * 
+     */
+    public HVUOrderParamsType createHVUOrderParamsType() {
+        return new HVUOrderParamsType();
+    }
+
+    /**
+     * Create an instance of {@link HVUResponseOrderDataType }
+     * 
+     */
+    public HVUResponseOrderDataType createHVUResponseOrderDataType() {
+        return new HVUResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVDResponseOrderDataType }
+     * 
+     */
+    public HVDResponseOrderDataType createHVDResponseOrderDataType() {
+        return new HVDResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link PubKeyDigestType }
+     * 
+     */
+    public PubKeyDigestType createPubKeyDigestType() {
+        return new PubKeyDigestType();
+    }
+
+    /**
+     * Create an instance of {@link FileFormatType }
+     * 
+     */
+    public FileFormatType createFileFormatType() {
+        return new FileFormatType();
+    }
+
+    /**
+     * Create an instance of {@link EncryptionPubKeyInfoType }
+     * 
+     */
+    public EncryptionPubKeyInfoType createEncryptionPubKeyInfoType() {
+        return new EncryptionPubKeyInfoType();
+    }
+
+    /**
+     * Create an instance of {@link HVTResponseOrderDataType }
+     * 
+     */
+    public HVTResponseOrderDataType createHVTResponseOrderDataType() {
+        return new HVTResponseOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link HVUSigningInfoType }
+     * 
+     */
+    public HVUSigningInfoType createHVUSigningInfoType() {
+        return new HVUSigningInfoType();
+    }
+
+    /**
+     * Create an instance of {@link AuthenticationCertificateInfoType }
+     * 
+     */
+    public AuthenticationCertificateInfoType 
createAuthenticationCertificateInfoType() {
+        return new AuthenticationCertificateInfoType();
+    }
+
+    /**
+     * Create an instance of {@link AmountType }
+     * 
+     */
+    public AmountType createAmountType() {
+        return new AmountType();
+    }
+
+    /**
+     * Create an instance of {@link KeyMgmntResponseMutableHeaderType }
+     * 
+     */
+    public KeyMgmntResponseMutableHeaderType 
createKeyMgmntResponseMutableHeaderType() {
+        return new KeyMgmntResponseMutableHeaderType();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderFlagsType }
+     * 
+     */
+    public HVTOrderFlagsType createHVTOrderFlagsType() {
+        return new HVTOrderFlagsType();
+    }
+
+    /**
+     * Create an instance of {@link HVUOrderDetailsType }
+     * 
+     */
+    public HVUOrderDetailsType createHVUOrderDetailsType() {
+        return new HVUOrderDetailsType();
+    }
+
+    /**
+     * Create an instance of {@link EncryptionCertificateInfoType }
+     * 
+     */
+    public EncryptionCertificateInfoType createEncryptionCertificateInfoType() 
{
+        return new EncryptionCertificateInfoType();
+    }
+
+    /**
+     * Create an instance of {@link SignatureCertificateInfoType }
+     * 
+     */
+    public SignatureCertificateInfoType createSignatureCertificateInfoType() {
+        return new SignatureCertificateInfoType();
+    }
+
+    /**
+     * Create an instance of {@link CertificateInfoType }
+     * 
+     */
+    public CertificateInfoType createCertificateInfoType() {
+        return new CertificateInfoType();
+    }
+
+    /**
+     * Create an instance of {@link PreValidationRequestType }
+     * 
+     */
+    public PreValidationRequestType createPreValidationRequestType() {
+        return new PreValidationRequestType();
+    }
+
+    /**
+     * Create an instance of {@link PubKeyInfoTypeAtEbicsTypes }
+     * 
+     */
+    public PubKeyInfoTypeAtEbicsTypes createPubKeyInfoTypeAtEbicsTypes() {
+        return new PubKeyInfoTypeAtEbicsTypes();
+    }
+
+    /**
+     * Create an instance of {@link TransferReceiptRequestType }
+     * 
+     */
+    public TransferReceiptRequestType createTransferReceiptRequestType() {
+        return new TransferReceiptRequestType();
+    }
+
+    /**
+     * Create an instance of {@link AuthOrderInfoType }
+     * 
+     */
+    public AuthOrderInfoType createAuthOrderInfoType() {
+        return new AuthOrderInfoType();
+    }
+
+    /**
+     * Create an instance of {@link BankInfoType }
+     * 
+     */
+    public BankInfoType createBankInfoType() {
+        return new BankInfoType();
+    }
+
+    /**
+     * Create an instance of {@link HPDVersionType }
+     * 
+     */
+    public HPDVersionType createHPDVersionType() {
+        return new HPDVersionType();
+    }
+
+    /**
+     * Create an instance of {@link HVUOriginatorInfoType }
+     * 
+     */
+    public HVUOriginatorInfoType createHVUOriginatorInfoType() {
+        return new HVUOriginatorInfoType();
+    }
+
+    /**
+     * Create an instance of {@link HVTAccountInfoType }
+     * 
+     */
+    public HVTAccountInfoType createHVTAccountInfoType() {
+        return new HVTAccountInfoType();
+    }
+
+    /**
+     * Create an instance of {@link TransferReceiptResponseType }
+     * 
+     */
+    public TransferReceiptResponseType createTransferReceiptResponseType() {
+        return new TransferReceiptResponseType();
+    }
+
+    /**
+     * Create an instance of {@link PubKeyValueTypeAtEbicsTypes }
+     * 
+     */
+    public PubKeyValueTypeAtEbicsTypes createPubKeyValueTypeAtEbicsTypes() {
+        return new PubKeyValueTypeAtEbicsTypes();
+    }
+
+    /**
+     * Create an instance of {@link AuthenticationPubKeyInfoType }
+     * 
+     */
+    public AuthenticationPubKeyInfoType createAuthenticationPubKeyInfoType() {
+        return new AuthenticationPubKeyInfoType();
+    }
+
+    /**
+     * Create an instance of {@link AddressInfoType }
+     * 
+     */
+    public AddressInfoType createAddressInfoType() {
+        return new AddressInfoType();
+    }
+
+    /**
+     * Create an instance of {@link DataDigestType }
+     * 
+     */
+    public DataDigestType createDataDigestType() {
+        return new DataDigestType();
+    }
+
+    /**
+     * Create an instance of {@link UserPermissionType }
+     * 
+     */
+    public UserPermissionType createUserPermissionType() {
+        return new UserPermissionType();
+    }
+
+    /**
+     * Create an instance of {@link PreValidationAccountAuthType }
+     * 
+     */
+    public PreValidationAccountAuthType createPreValidationAccountAuthType() {
+        return new PreValidationAccountAuthType();
+    }
+
+    /**
+     * Create an instance of {@link PGPDataType }
+     * 
+     */
+    public PGPDataType createPGPDataType() {
+        return new PGPDataType();
+    }
+
+    /**
+     * Create an instance of {@link KeyValueType }
+     * 
+     */
+    public KeyValueType createKeyValueType() {
+        return new KeyValueType();
+    }
+
+    /**
+     * Create an instance of {@link DSAKeyValueType }
+     * 
+     */
+    public DSAKeyValueType createDSAKeyValueType() {
+        return new DSAKeyValueType();
+    }
+
+    /**
+     * Create an instance of {@link ReferenceType }
+     * 
+     */
+    public ReferenceType createReferenceType() {
+        return new ReferenceType();
+    }
+
+    /**
+     * Create an instance of {@link RetrievalMethodType }
+     * 
+     */
+    public RetrievalMethodType createRetrievalMethodType() {
+        return new RetrievalMethodType();
+    }
+
+    /**
+     * Create an instance of {@link TransformsType }
+     * 
+     */
+    public TransformsType createTransformsType() {
+        return new TransformsType();
+    }
+
+    /**
+     * Create an instance of {@link CanonicalizationMethodType }
+     * 
+     */
+    public CanonicalizationMethodType createCanonicalizationMethodType() {
+        return new CanonicalizationMethodType();
+    }
+
+    /**
+     * Create an instance of {@link DigestMethodType }
+     * 
+     */
+    public DigestMethodType createDigestMethodType() {
+        return new DigestMethodType();
+    }
+
+    /**
+     * Create an instance of {@link ManifestType }
+     * 
+     */
+    public ManifestType createManifestType() {
+        return new ManifestType();
+    }
+
+    /**
+     * Create an instance of {@link SignaturePropertyType }
+     * 
+     */
+    public SignaturePropertyType createSignaturePropertyType() {
+        return new SignaturePropertyType();
+    }
+
+    /**
+     * Create an instance of {@link X509DataType }
+     * 
+     */
+    public X509DataType createX509DataType() {
+        return new X509DataType();
+    }
+
+    /**
+     * Create an instance of {@link SignedInfoType }
+     * 
+     */
+    public SignedInfoType createSignedInfoType() {
+        return new SignedInfoType();
+    }
+
+    /**
+     * Create an instance of {@link RSAKeyValueType }
+     * 
+     */
+    public RSAKeyValueType createRSAKeyValueType() {
+        return new RSAKeyValueType();
+    }
+
+    /**
+     * Create an instance of {@link SPKIDataType }
+     * 
+     */
+    public SPKIDataType createSPKIDataType() {
+        return new SPKIDataType();
+    }
+
+    /**
+     * Create an instance of {@link SignatureValueType }
+     * 
+     */
+    public SignatureValueType createSignatureValueType() {
+        return new SignatureValueType();
+    }
+
+    /**
+     * Create an instance of {@link KeyInfoType }
+     * 
+     */
+    public KeyInfoType createKeyInfoType() {
+        return new KeyInfoType();
+    }
+
+    /**
+     * Create an instance of {@link SignaturePropertiesType }
+     * 
+     */
+    public SignaturePropertiesType createSignaturePropertiesType() {
+        return new SignaturePropertiesType();
+    }
+
+    /**
+     * Create an instance of {@link SignatureMethodType }
+     * 
+     */
+    public SignatureMethodType createSignatureMethodType() {
+        return new SignatureMethodType();
+    }
+
+    /**
+     * Create an instance of {@link ObjectType }
+     * 
+     */
+    public ObjectType createObjectType() {
+        return new ObjectType();
+    }
+
+    /**
+     * Create an instance of {@link TransformType }
+     * 
+     */
+    public TransformType createTransformType() {
+        return new TransformType();
+    }
+
+    /**
+     * Create an instance of {@link X509IssuerSerialType }
+     * 
+     */
+    public X509IssuerSerialType createX509IssuerSerialType() {
+        return new X509IssuerSerialType();
+    }
+
+    /**
+     * Create an instance of {@link SignaturePubKeyInfoType }
+     * 
+     */
+    public SignaturePubKeyInfoType createSignaturePubKeyInfoType() {
+        return new SignaturePubKeyInfoType();
+    }
+
+    /**
+     * Create an instance of {@link SignaturePubKeyOrderDataType }
+     * 
+     */
+    public SignaturePubKeyOrderDataType createSignaturePubKeyOrderDataType() {
+        return new SignaturePubKeyOrderDataType();
+    }
+
+    /**
+     * Create an instance of {@link OrderSignatureDataType }
+     * 
+     */
+    public OrderSignatureDataType createOrderSignatureDataType() {
+        return new OrderSignatureDataType();
+    }
+
+    /**
+     * Create an instance of {@link PubKeyInfoTypeAtEbicsSignatures }
+     * 
+     */
+    public PubKeyInfoTypeAtEbicsSignatures 
createPubKeyInfoTypeAtEbicsSignatures() {
+        return new PubKeyInfoTypeAtEbicsSignatures();
+    }
+
+    /**
+     * Create an instance of {@link PubKeyValueTypeAtEbicsSignatures }
+     * 
+     */
+    public PubKeyValueTypeAtEbicsSignatures 
createPubKeyValueTypeAtEbicsSignatures() {
+        return new PubKeyValueTypeAtEbicsSignatures();
+    }
+
+    /**
+     * Create an instance of {@link 
UserSignatureDataSigBookType.OrderSignature }
+     * 
+     */
+    public UserSignatureDataSigBookType.OrderSignature 
createUserSignatureDataSigBookTypeOrderSignature() {
+        return new UserSignatureDataSigBookType.OrderSignature();
+    }
+
+    /**
+     * Create an instance of {@link AccountType.AccountNumber }
+     * 
+     */
+    public AccountType.AccountNumber createAccountTypeAccountNumber() {
+        return new AccountType.AccountNumber();
+    }
+
+    /**
+     * Create an instance of {@link AccountType.NationalAccountNumber }
+     * 
+     */
+    public AccountType.NationalAccountNumber 
createAccountTypeNationalAccountNumber() {
+        return new AccountType.NationalAccountNumber();
+    }
+
+    /**
+     * Create an instance of {@link AccountType.BankCode }
+     * 
+     */
+    public AccountType.BankCode createAccountTypeBankCode() {
+        return new AccountType.BankCode();
+    }
+
+    /**
+     * Create an instance of {@link AccountType.NationalBankCode }
+     * 
+     */
+    public AccountType.NationalBankCode createAccountTypeNationalBankCode() {
+        return new AccountType.NationalBankCode();
+    }
+
+    /**
+     * Create an instance of {@link 
DataTransferResponseType.DataEncryptionInfo }
+     * 
+     */
+    public DataTransferResponseType.DataEncryptionInfo 
createDataTransferResponseTypeDataEncryptionInfo() {
+        return new DataTransferResponseType.DataEncryptionInfo();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferResponseType.SignatureData }
+     * 
+     */
+    public DataTransferResponseType.SignatureData 
createDataTransferResponseTypeSignatureData() {
+        return new DataTransferResponseType.SignatureData();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferResponseType.OrderData }
+     * 
+     */
+    public DataTransferResponseType.OrderData 
createDataTransferResponseTypeOrderData() {
+        return new DataTransferResponseType.OrderData();
+    }
+
+    /**
+     * Create an instance of {@link 
DataEncryptionInfoType.EncryptionPubKeyDigest }
+     * 
+     */
+    public DataEncryptionInfoType.EncryptionPubKeyDigest 
createDataEncryptionInfoTypeEncryptionPubKeyDigest() {
+        return new DataEncryptionInfoType.EncryptionPubKeyDigest();
+    }
+
+    /**
+     * Create an instance of {@link AttributedAccountType.AccountNumber }
+     * 
+     */
+    public AttributedAccountType.AccountNumber 
createAttributedAccountTypeAccountNumber() {
+        return new AttributedAccountType.AccountNumber();
+    }
+
+    /**
+     * Create an instance of {@link 
AttributedAccountType.NationalAccountNumber }
+     * 
+     */
+    public AttributedAccountType.NationalAccountNumber 
createAttributedAccountTypeNationalAccountNumber() {
+        return new AttributedAccountType.NationalAccountNumber();
+    }
+
+    /**
+     * Create an instance of {@link AttributedAccountType.BankCode }
+     * 
+     */
+    public AttributedAccountType.BankCode 
createAttributedAccountTypeBankCode() {
+        return new AttributedAccountType.BankCode();
+    }
+
+    /**
+     * Create an instance of {@link AttributedAccountType.NationalBankCode }
+     * 
+     */
+    public AttributedAccountType.NationalBankCode 
createAttributedAccountTypeNationalBankCode() {
+        return new AttributedAccountType.NationalBankCode();
+    }
+
+    /**
+     * Create an instance of {@link AttributedAccountType.AccountHolder }
+     * 
+     */
+    public AttributedAccountType.AccountHolder 
createAttributedAccountTypeAccountHolder() {
+        return new AttributedAccountType.AccountHolder();
+    }
+
+    /**
+     * Create an instance of {@link UserInfoType.UserID }
+     * 
+     */
+    public UserInfoType.UserID createUserInfoTypeUserID() {
+        return new UserInfoType.UserID();
+    }
+
+    /**
+     * Create an instance of {@link HPDAccessParamsType.URL }
+     * 
+     */
+    public HPDAccessParamsType.URL createHPDAccessParamsTypeURL() {
+        return new HPDAccessParamsType.URL();
+    }
+
+    /**
+     * Create an instance of {@link HVZOrderDetailsType.TotalAmount }
+     * 
+     */
+    public HVZOrderDetailsType.TotalAmount 
createHVZOrderDetailsTypeTotalAmount() {
+        return new HVZOrderDetailsType.TotalAmount();
+    }
+
+    /**
+     * Create an instance of {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.AccountNumber }
+     * 
+     */
+    public HVZOrderDetailsType.FirstOrderInfo.AccountInfo.AccountNumber 
createHVZOrderDetailsTypeFirstOrderInfoAccountInfoAccountNumber() {
+        return new 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.AccountNumber();
+    }
+
+    /**
+     * Create an instance of {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalAccountNumber }
+     * 
+     */
+    public 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalAccountNumber 
createHVZOrderDetailsTypeFirstOrderInfoAccountInfoNationalAccountNumber() {
+        return new 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalAccountNumber();
+    }
+
+    /**
+     * Create an instance of {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.BankCode }
+     * 
+     */
+    public HVZOrderDetailsType.FirstOrderInfo.AccountInfo.BankCode 
createHVZOrderDetailsTypeFirstOrderInfoAccountInfoBankCode() {
+        return new HVZOrderDetailsType.FirstOrderInfo.AccountInfo.BankCode();
+    }
+
+    /**
+     * Create an instance of {@link 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalBankCode }
+     * 
+     */
+    public HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalBankCode 
createHVZOrderDetailsTypeFirstOrderInfoAccountInfoNationalBankCode() {
+        return new 
HVZOrderDetailsType.FirstOrderInfo.AccountInfo.NationalBankCode();
+    }
+
+    /**
+     * Create an instance of {@link PartnerInfoType.AccountInfo }
+     * 
+     */
+    public PartnerInfoType.AccountInfo createPartnerInfoTypeAccountInfo() {
+        return new PartnerInfoType.AccountInfo();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderInfoType.ExecutionDate }
+     * 
+     */
+    public HVTOrderInfoType.ExecutionDate 
createHVTOrderInfoTypeExecutionDate() {
+        return new HVTOrderInfoType.ExecutionDate();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderInfoType.Amount }
+     * 
+     */
+    public HVTOrderInfoType.Amount createHVTOrderInfoTypeAmount() {
+        return new HVTOrderInfoType.Amount();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderInfoType.Description }
+     * 
+     */
+    public HVTOrderInfoType.Description createHVTOrderInfoTypeDescription() {
+        return new HVTOrderInfoType.Description();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferRequestType.DataEncryptionInfo 
}
+     * 
+     */
+    public DataTransferRequestType.DataEncryptionInfo 
createDataTransferRequestTypeDataEncryptionInfo() {
+        return new DataTransferRequestType.DataEncryptionInfo();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferRequestType.SignatureData }
+     * 
+     */
+    public DataTransferRequestType.SignatureData 
createDataTransferRequestTypeSignatureData() {
+        return new DataTransferRequestType.SignatureData();
+    }
+
+    /**
+     * Create an instance of {@link DataTransferRequestType.OrderData }
+     * 
+     */
+    public DataTransferRequestType.OrderData 
createDataTransferRequestTypeOrderData() {
+        return new DataTransferRequestType.OrderData();
+    }
+
+    /**
+     * Create an instance of {@link SignerInfoType.Permission }
+     * 
+     */
+    public SignerInfoType.Permission createSignerInfoTypePermission() {
+        return new SignerInfoType.Permission();
+    }
+
+    /**
+     * Create an instance of {@link HPDProtocolParamsType.Recovery }
+     * 
+     */
+    public HPDProtocolParamsType.Recovery 
createHPDProtocolParamsTypeRecovery() {
+        return new HPDProtocolParamsType.Recovery();
+    }
+
+    /**
+     * Create an instance of {@link HPDProtocolParamsType.PreValidation }
+     * 
+     */
+    public HPDProtocolParamsType.PreValidation 
createHPDProtocolParamsTypePreValidation() {
+        return new HPDProtocolParamsType.PreValidation();
+    }
+
+    /**
+     * Create an instance of {@link HPDProtocolParamsType.X509Data }
+     * 
+     */
+    public HPDProtocolParamsType.X509Data 
createHPDProtocolParamsTypeX509Data() {
+        return new HPDProtocolParamsType.X509Data();
+    }
+
+    /**
+     * Create an instance of {@link HPDProtocolParamsType.ClientDataDownload }
+     * 
+     */
+    public HPDProtocolParamsType.ClientDataDownload 
createHPDProtocolParamsTypeClientDataDownload() {
+        return new HPDProtocolParamsType.ClientDataDownload();
+    }
+
+    /**
+     * Create an instance of {@link 
HPDProtocolParamsType.DownloadableOrderData }
+     * 
+     */
+    public HPDProtocolParamsType.DownloadableOrderData 
createHPDProtocolParamsTypeDownloadableOrderData() {
+        return new HPDProtocolParamsType.DownloadableOrderData();
+    }
+
+    /**
+     * Create an instance of {@link EbicsKeyManagementResponse.Body.ReturnCode 
}
+     * 
+     */
+    public EbicsKeyManagementResponse.Body.ReturnCode 
createEbicsKeyManagementResponseBodyReturnCode() {
+        return new EbicsKeyManagementResponse.Body.ReturnCode();
+    }
+
+    /**
+     * Create an instance of {@link 
EbicsKeyManagementResponse.Body.TimestampBankParameter }
+     * 
+     */
+    public EbicsKeyManagementResponse.Body.TimestampBankParameter 
createEbicsKeyManagementResponseBodyTimestampBankParameter() {
+        return new EbicsKeyManagementResponse.Body.TimestampBankParameter();
+    }
+
+    /**
+     * Create an instance of {@link 
EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo }
+     * 
+     */
+    public EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo 
createEbicsKeyManagementResponseBodyDataTransferDataEncryptionInfo() {
+        return new 
EbicsKeyManagementResponse.Body.DataTransfer.DataEncryptionInfo();
+    }
+
+    /**
+     * Create an instance of {@link 
EbicsKeyManagementResponse.Body.DataTransfer.OrderData }
+     * 
+     */
+    public EbicsKeyManagementResponse.Body.DataTransfer.OrderData 
createEbicsKeyManagementResponseBodyDataTransferOrderData() {
+        return new EbicsKeyManagementResponse.Body.DataTransfer.OrderData();
+    }
+
+    /**
+     * Create an instance of {@link EbicsKeyManagementResponse.Header.Static }
+     * 
+     */
+    public EbicsKeyManagementResponse.Header.Static 
createEbicsKeyManagementResponseHeaderStatic() {
+        return new EbicsKeyManagementResponse.Header.Static();
+    }
+
+    /**
+     * Create an instance of {@link 
BankSignatureDataSigBookType.OrderSignature }
+     * 
+     */
+    public BankSignatureDataSigBookType.OrderSignature 
createBankSignatureDataSigBookTypeOrderSignature() {
+        return new BankSignatureDataSigBookType.OrderSignature();
+    }
+
+    /**
+     * Create an instance of {@link StandardOrderParamsType.DateRange }
+     * 
+     */
+    public StandardOrderParamsType.DateRange 
createStandardOrderParamsTypeDateRange() {
+        return new StandardOrderParamsType.DateRange();
+    }
+
+    /**
+     * Create an instance of {@link FDLOrderParamsType.DateRange }
+     * 
+     */
+    public FDLOrderParamsType.DateRange createFDLOrderParamsTypeDateRange() {
+        return new FDLOrderParamsType.DateRange();
+    }
+
+    /**
+     * Create an instance of {@link HVTOrderParamsType.OrderFlags }
+     * 
+     */
+    public HVTOrderParamsType.OrderFlags createHVTOrderParamsTypeOrderFlags() {
+        return new HVTOrderParamsType.OrderFlags();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVTResponseOrderData }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HVTResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HVTResponseOrderData> 
createHVTResponseOrderData(HVTResponseOrderData value) {
+        return new 
JAXBElement<HVTResponseOrderData>(_HVTResponseOrderData_QNAME, 
HVTResponseOrderData.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link KeyInfoType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"KeyInfo")
+    public JAXBElement<KeyInfoType> createKeyInfo(KeyInfoType value) {
+        return new JAXBElement<KeyInfoType>(_KeyInfo_QNAME, KeyInfoType.class, 
null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HPBResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HPBResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HPBResponseOrderDataType> 
createHPBResponseOrderData(HPBResponseOrderDataType value) {
+        return new 
JAXBElement<HPBResponseOrderDataType>(_HPBResponseOrderData_QNAME, 
HPBResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
GenericOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"GenericOrderParams", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "OrderParams")
+    public JAXBElement<GenericOrderParamsType> 
createGenericOrderParams(GenericOrderParamsType value) {
+        return new 
JAXBElement<GenericOrderParamsType>(_GenericOrderParams_QNAME, 
GenericOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HSARequestOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HSARequestOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HSARequestOrderDataType> 
createHSARequestOrderData(HSARequestOrderDataType value) {
+        return new 
JAXBElement<HSARequestOrderDataType>(_HSARequestOrderData_QNAME, 
HSARequestOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Object 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"EBICSSignatureData")
+    public JAXBElement<Object> createebicsSignatureDataAtEbicsOrders(Object 
value) {
+        return new JAXBElement<Object>(_ebicsSignatureDataAtEbicsOrders_QNAME, 
Object.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVDResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HVDResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HVDResponseOrderDataType> 
createHVDResponseOrderData(HVDResponseOrderDataType value) {
+        return new 
JAXBElement<HVDResponseOrderDataType>(_HVDResponseOrderData_QNAME, 
HVDResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HCARequestOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HCARequestOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HCARequestOrderDataType> 
createHCARequestOrderData(HCARequestOrderDataType value) {
+        return new 
JAXBElement<HCARequestOrderDataType>(_HCARequestOrderData_QNAME, 
HCARequestOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignaturePropertyType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SignatureProperty")
+    public JAXBElement<SignaturePropertyType> 
createSignatureProperty(SignaturePropertyType value) {
+        return new 
JAXBElement<SignaturePropertyType>(_SignatureProperty_QNAME, 
SignaturePropertyType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVEOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "HVEOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<HVEOrderParamsType> 
createHVEOrderParams(HVEOrderParamsType value) {
+        return new JAXBElement<HVEOrderParamsType>(_HVEOrderParams_QNAME, 
HVEOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Object 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "EBICSOrderData")
+    public JAXBElement<Object> createEBICSOrderData(Object value) {
+        return new JAXBElement<Object>(_EBICSOrderData_QNAME, Object.class, 
null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
RSAKeyValueType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"RSAKeyValue")
+    public JAXBElement<RSAKeyValueType> createRSAKeyValue(RSAKeyValueType 
value) {
+        return new JAXBElement<RSAKeyValueType>(_RSAKeyValue_QNAME, 
RSAKeyValueType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HCSRequestOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HCSRequestOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HCSRequestOrderDataType> 
createHCSRequestOrderData(HCSRequestOrderDataType value) {
+        return new 
JAXBElement<HCSRequestOrderDataType>(_HCSRequestOrderData_QNAME, 
HCSRequestOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVSOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "HVSOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<HVSOrderParamsType> 
createHVSOrderParams(HVSOrderParamsType value) {
+        return new JAXBElement<HVSOrderParamsType>(_HVSOrderParams_QNAME, 
HVSOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignatureMethodType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SignatureMethod")
+    public JAXBElement<SignatureMethodType> 
createSignatureMethod(SignatureMethodType value) {
+        return new JAXBElement<SignatureMethodType>(_SignatureMethod_QNAME, 
SignatureMethodType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ObjectType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"Object")
+    public JAXBElement<ObjectType> createObject(ObjectType value) {
+        return new JAXBElement<ObjectType>(_Object_QNAME, ObjectType.class, 
null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
BankSignatureDataSigBookType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"BankSignatureData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSSignatureData")
+    public JAXBElement<BankSignatureDataSigBookType> 
createBankSignatureData(BankSignatureDataSigBookType value) {
+        return new 
JAXBElement<BankSignatureDataSigBookType>(_BankSignatureData_QNAME, 
BankSignatureDataSigBookType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
FDLOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "FDLOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<FDLOrderParamsType> 
createFDLOrderParams(FDLOrderParamsType value) {
+        return new JAXBElement<FDLOrderParamsType>(_FDLOrderParams_QNAME, 
FDLOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link PGPDataType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"PGPData")
+    public JAXBElement<PGPDataType> createPGPData(PGPDataType value) {
+        return new JAXBElement<PGPDataType>(_PGPData_QNAME, PGPDataType.class, 
null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
RetrievalMethodType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"RetrievalMethod")
+    public JAXBElement<RetrievalMethodType> 
createRetrievalMethod(RetrievalMethodType value) {
+        return new JAXBElement<RetrievalMethodType>(_RetrievalMethod_QNAME, 
RetrievalMethodType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignaturePubKeyOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.ebics.org/S001";, name = 
"SignaturePubKeyOrderData")
+    public JAXBElement<SignaturePubKeyOrderDataType> 
createSignaturePubKeyOrderData(SignaturePubKeyOrderDataType value) {
+        return new 
JAXBElement<SignaturePubKeyOrderDataType>(_SignaturePubKeyOrderData_QNAME, 
SignaturePubKeyOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
DSAKeyValueType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"DSAKeyValue")
+    public JAXBElement<DSAKeyValueType> createDSAKeyValue(DSAKeyValueType 
value) {
+        return new JAXBElement<DSAKeyValueType>(_DSAKeyValue_QNAME, 
DSAKeyValueType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVSRequestOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HVSRequestOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HVSRequestOrderDataType> 
createHVSRequestOrderData(HVSRequestOrderDataType value) {
+        return new 
JAXBElement<HVSRequestOrderDataType>(_HVSRequestOrderData_QNAME, 
HVSRequestOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
OrderSignatureDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.ebics.org/S001";, name = 
"OrderSignatureData")
+    public JAXBElement<OrderSignatureDataType> 
createOrderSignatureData(OrderSignatureDataType value) {
+        return new 
JAXBElement<OrderSignatureDataType>(_OrderSignatureData_QNAME, 
OrderSignatureDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
H3KRequestOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"H3KRequestOrderData")
+    public JAXBElement<H3KRequestOrderDataType> 
createH3KRequestOrderData(H3KRequestOrderDataType value) {
+        return new 
JAXBElement<H3KRequestOrderDataType>(_H3KRequestOrderData_QNAME, 
H3KRequestOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HTDReponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HTDResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HTDReponseOrderDataType> 
createHTDResponseOrderData(HTDReponseOrderDataType value) {
+        return new 
JAXBElement<HTDReponseOrderDataType>(_HTDResponseOrderData_QNAME, 
HTDReponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link SPKIDataType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SPKIData")
+    public JAXBElement<SPKIDataType> createSPKIData(SPKIDataType value) {
+        return new JAXBElement<SPKIDataType>(_SPKIData_QNAME, 
SPKIDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HIARequestOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HIARequestOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HIARequestOrderDataType> 
createHIARequestOrderData(HIARequestOrderDataType value) {
+        return new 
JAXBElement<HIARequestOrderDataType>(_HIARequestOrderData_QNAME, 
HIARequestOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVZResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HVZResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HVZResponseOrderDataType> 
createHVZResponseOrderData(HVZResponseOrderDataType value) {
+        return new 
JAXBElement<HVZResponseOrderDataType>(_HVZResponseOrderData_QNAME, 
HVZResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignatureValueType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SignatureValue")
+    public JAXBElement<SignatureValueType> 
createSignatureValue(SignatureValueType value) {
+        return new JAXBElement<SignatureValueType>(_SignatureValue_QNAME, 
SignatureValueType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
UserSignatureDataSigBookType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.ebics.org/S001";, name = 
"UserSignatureData", substitutionHeadNamespace = "http://www.ebics.org/S001";, 
substitutionHeadName = "EBICSSignatureData")
+    public JAXBElement<UserSignatureDataSigBookType> 
createUserSignatureData(UserSignatureDataSigBookType value) {
+        return new 
JAXBElement<UserSignatureDataSigBookType>(_UserSignatureData_QNAME, 
UserSignatureDataSigBookType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Object 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "OrderParams")
+    public JAXBElement<Object> createOrderParams(Object value) {
+        return new JAXBElement<Object>(_OrderParams_QNAME, Object.class, null, 
value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link KeyValueType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"KeyValue")
+    public JAXBElement<KeyValueType> createKeyValue(KeyValueType value) {
+        return new JAXBElement<KeyValueType>(_KeyValue_QNAME, 
KeyValueType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
TransformsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"Transforms")
+    public JAXBElement<TransformsType> createTransforms(TransformsType value) {
+        return new JAXBElement<TransformsType>(_Transforms_QNAME, 
TransformsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVUResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HVUResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HVUResponseOrderDataType> 
createHVUResponseOrderData(HVUResponseOrderDataType value) {
+        return new 
JAXBElement<HVUResponseOrderDataType>(_HVUResponseOrderData_QNAME, 
HVUResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignaturePubKeyInfoType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.ebics.org/S001";, name = 
"SignaturePubKeyInfo")
+    public JAXBElement<SignaturePubKeyInfoType> 
createSignaturePubKeyInfo(SignaturePubKeyInfoType value) {
+        return new 
JAXBElement<SignaturePubKeyInfoType>(_SignaturePubKeyInfo_QNAME, 
SignaturePubKeyInfoType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVUOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "HVUOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<HVUOrderParamsType> 
createHVUOrderParams(HVUOrderParamsType value) {
+        return new JAXBElement<HVUOrderParamsType>(_HVUOrderParams_QNAME, 
HVUOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
DigestMethodType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"DigestMethod")
+    public JAXBElement<DigestMethodType> createDigestMethod(DigestMethodType 
value) {
+        return new JAXBElement<DigestMethodType>(_DigestMethod_QNAME, 
DigestMethodType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link X509DataType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"X509Data")
+    public JAXBElement<X509DataType> createX509Data(X509DataType value) {
+        return new JAXBElement<X509DataType>(_X509Data_QNAME, 
X509DataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link SignatureType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "AuthSignature")
+    public JAXBElement<SignatureType> createAuthSignature(SignatureType value) 
{
+        return new JAXBElement<SignatureType>(_AuthSignature_QNAME, 
SignatureType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"KeyName")
+    public JAXBElement<String> createKeyName(String value) {
+        return new JAXBElement<String>(_KeyName_QNAME, String.class, null, 
value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link SignatureType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"Signature")
+    public JAXBElement<SignatureType> createSignature(SignatureType value) {
+        return new JAXBElement<SignatureType>(_Signature_QNAME, 
SignatureType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"MgmtData")
+    public JAXBElement<String> createMgmtData(String value) {
+        return new JAXBElement<String>(_MgmtData_QNAME, String.class, null, 
value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HAAResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HAAResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HAAResponseOrderDataType> 
createHAAResponseOrderData(HAAResponseOrderDataType value) {
+        return new 
JAXBElement<HAAResponseOrderDataType>(_HAAResponseOrderData_QNAME, 
HAAResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVZOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "HVZOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<HVZOrderParamsType> 
createHVZOrderParams(HVZOrderParamsType value) {
+        return new JAXBElement<HVZOrderParamsType>(_HVZOrderParams_QNAME, 
HVZOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignaturePropertiesType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SignatureProperties")
+    public JAXBElement<SignaturePropertiesType> 
createSignatureProperties(SignaturePropertiesType value) {
+        return new 
JAXBElement<SignaturePropertiesType>(_SignatureProperties_QNAME, 
SignaturePropertiesType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HPDResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HPDResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HPDResponseOrderDataType> 
createHPDResponseOrderData(HPDResponseOrderDataType value) {
+        return new 
JAXBElement<HPDResponseOrderDataType>(_HPDResponseOrderData_QNAME, 
HPDResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
FULOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "FULOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<FULOrderParamsType> 
createFULOrderParams(FULOrderParamsType value) {
+        return new JAXBElement<FULOrderParamsType>(_FULOrderParams_QNAME, 
FULOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link TransformType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"Transform")
+    public JAXBElement<TransformType> createTransform(TransformType value) {
+        return new JAXBElement<TransformType>(_Transform_QNAME, 
TransformType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HKDResponseOrderDataType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"HKDResponseOrderData", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "EBICSOrderData")
+    public JAXBElement<HKDResponseOrderDataType> 
createHKDResponseOrderData(HKDResponseOrderDataType value) {
+        return new 
JAXBElement<HKDResponseOrderDataType>(_HKDResponseOrderData_QNAME, 
HKDResponseOrderDataType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVDOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "HVDOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<HVDOrderParamsType> 
createHVDOrderParams(HVDOrderParamsType value) {
+        return new JAXBElement<HVDOrderParamsType>(_HVDOrderParams_QNAME, 
HVDOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
StandardOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = 
"StandardOrderParams", substitutionHeadNamespace = "urn:org:ebics:H004", 
substitutionHeadName = "OrderParams")
+    public JAXBElement<StandardOrderParamsType> 
createStandardOrderParams(StandardOrderParamsType value) {
+        return new 
JAXBElement<StandardOrderParamsType>(_StandardOrderParams_QNAME, 
StandardOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ReferenceType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"Reference")
+    public JAXBElement<ReferenceType> createReference(ReferenceType value) {
+        return new JAXBElement<ReferenceType>(_Reference_QNAME, 
ReferenceType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"DigestValue")
+    public JAXBElement<byte[]> createDigestValue(byte[] value) {
+        return new JAXBElement<byte[]>(_DigestValue_QNAME, byte[].class, null, 
((byte[]) value));
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
HVTOrderParamsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "urn:org:ebics:H004", name = "HVTOrderParams", 
substitutionHeadNamespace = "urn:org:ebics:H004", substitutionHeadName = 
"OrderParams")
+    public JAXBElement<HVTOrderParamsType> 
createHVTOrderParams(HVTOrderParamsType value) {
+        return new JAXBElement<HVTOrderParamsType>(_HVTOrderParams_QNAME, 
HVTOrderParamsType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
CanonicalizationMethodType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"CanonicalizationMethod")
+    public JAXBElement<CanonicalizationMethodType> 
createCanonicalizationMethod(CanonicalizationMethodType value) {
+        return new 
JAXBElement<CanonicalizationMethodType>(_CanonicalizationMethod_QNAME, 
CanonicalizationMethodType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
SignedInfoType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SignedInfo")
+    public JAXBElement<SignedInfoType> createSignedInfo(SignedInfoType value) {
+        return new JAXBElement<SignedInfoType>(_SignedInfo_QNAME, 
SignedInfoType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Object 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.ebics.org/S001";, name = 
"EBICSSignatureData")
+    public JAXBElement<Object> 
createebicsSignatureDataAtEbicsSignatures(Object value) {
+        return new 
JAXBElement<Object>(_ebicsSignatureDataAtEbicsSignatures_QNAME, Object.class, 
null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ManifestType 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"Manifest")
+    public JAXBElement<ManifestType> createManifest(ManifestType value) {
+        return new JAXBElement<ManifestType>(_Manifest_QNAME, 
ManifestType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"PGPKeyID", scope = PGPDataType.class)
+    public JAXBElement<byte[]> createPGPDataTypePGPKeyID(byte[] value) {
+        return new JAXBElement<byte[]>(_PGPDataTypePGPKeyID_QNAME, 
byte[].class, PGPDataType.class, ((byte[]) value));
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"PGPKeyPacket", scope = PGPDataType.class)
+    public JAXBElement<byte[]> createPGPDataTypePGPKeyPacket(byte[] value) {
+        return new JAXBElement<byte[]>(_PGPDataTypePGPKeyPacket_QNAME, 
byte[].class, PGPDataType.class, ((byte[]) value));
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link 
X509IssuerSerialType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"X509IssuerSerial", scope = X509DataType.class)
+    public JAXBElement<X509IssuerSerialType> 
createX509DataTypeX509IssuerSerial(X509IssuerSerialType value) {
+        return new 
JAXBElement<X509IssuerSerialType>(_X509DataTypeX509IssuerSerial_QNAME, 
X509IssuerSerialType.class, X509DataType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"X509CRL", scope = X509DataType.class)
+    public JAXBElement<byte[]> createX509DataTypeX509CRL(byte[] value) {
+        return new JAXBElement<byte[]>(_X509DataTypeX509CRL_QNAME, 
byte[].class, X509DataType.class, ((byte[]) value));
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"X509SubjectName", scope = X509DataType.class)
+    public JAXBElement<String> createX509DataTypeX509SubjectName(String value) 
{
+        return new JAXBElement<String>(_X509DataTypeX509SubjectName_QNAME, 
String.class, X509DataType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"X509SKI", scope = X509DataType.class)
+    public JAXBElement<byte[]> createX509DataTypeX509SKI(byte[] value) {
+        return new JAXBElement<byte[]>(_X509DataTypeX509SKI_QNAME, 
byte[].class, X509DataType.class, ((byte[]) value));
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"X509Certificate", scope = X509DataType.class)
+    public JAXBElement<byte[]> createX509DataTypeX509Certificate(byte[] value) 
{
+        return new JAXBElement<byte[]>(_X509DataTypeX509Certificate_QNAME, 
byte[].class, X509DataType.class, ((byte[]) value));
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"HMACOutputLength", scope = SignatureMethodType.class)
+    public JAXBElement<BigInteger> 
createSignatureMethodTypeHMACOutputLength(BigInteger value) {
+        return new 
JAXBElement<BigInteger>(_SignatureMethodTypeHMACOutputLength_QNAME, 
BigInteger.class, SignatureMethodType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String 
}{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"XPath", scope = TransformType.class)
+    public JAXBElement<String> createTransformTypeXPath(String value) {
+        return new JAXBElement<String>(_TransformTypeXPath_QNAME, 
String.class, TransformType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code 
>}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#";, name = 
"SPKISexp", scope = SPKIDataType.class)
+    public JAXBElement<byte[]> createSPKIDataTypeSPKISexp(byte[] value) {
+        return new JAXBElement<byte[]>(_SPKIDataTypeSPKISexp_QNAME, 
byte[].class, SPKIDataType.class, ((byte[]) value));
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ObjectType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ObjectType.java
new file mode 100644
index 0000000..d9ab60c
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ObjectType.java
@@ -0,0 +1,171 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ObjectType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ObjectType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ *         &lt;any processContents='lax'/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *       &lt;attribute name="MimeType" 
type="{http://www.w3.org/2001/XMLSchema}string"; />
+ *       &lt;attribute name="Encoding" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ObjectType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class ObjectType {
+
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+    @XmlAttribute(name = "MimeType")
+    protected String mimeType;
+    @XmlAttribute(name = "Encoding")
+    @XmlSchemaType(name = "anyURI")
+    protected String encoding;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the mimeType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMimeType() {
+        return mimeType;
+    }
+
+    /**
+     * Sets the value of the mimeType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMimeType(String value) {
+        this.mimeType = value;
+    }
+
+    /**
+     * Gets the value of the encoding property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getEncoding() {
+        return encoding;
+    }
+
+    /**
+     * Sets the value of the encoding property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setEncoding(String value) {
+        this.encoding = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderAttributeType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderAttributeType.java
new file mode 100644
index 0000000..d49bbf8
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderAttributeType.java
@@ -0,0 +1,62 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for OrderAttributeType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="OrderAttributeType">
+ *   &lt;restriction base="{urn:org:ebics:H004}OrderAttributeBaseType">
+ *     &lt;enumeration value="OZHNN"/>
+ *     &lt;enumeration value="UZHNN"/>
+ *     &lt;enumeration value="DZHNN"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "OrderAttributeType")
+@XmlEnum
+public enum OrderAttributeType {
+
+
+    /**
+     * Auftragsdaten mit Unterschrift, ZIP-komprimiert, hybrid verschlüsselt
+     * 
+     */
+    OZHNN,
+
+    /**
+     * Unterschrift, ZIP-komprimiert, hybrid verschlüsselt
+     * 
+     */
+    UZHNN,
+
+    /**
+     * Auftragsdaten ohne Unterschrift, ZIP-komprimiert, hybrid verschlüsselt
+     * 
+     */
+    DZHNN;
+
+    public String value() {
+        return name();
+    }
+
+    public static OrderAttributeType fromValue(String v) {
+        return valueOf(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderSignatureDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderSignatureDataType.java
new file mode 100644
index 0000000..555eec4
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderSignatureDataType.java
@@ -0,0 +1,190 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Data type according for a digital signature (either autorising an order or 
applied for transportation), structured format.
+ * 
+ * <p>Java class for OrderSignatureDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="OrderSignatureDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="SignatureVersion" 
type="{http://www.ebics.org/S001}SignatureVersionType"/>
+ *         &lt;element name="SignatureValue" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *         &lt;element name="PartnerID" 
type="{http://www.ebics.org/S001}PartnerIDType"/>
+ *         &lt;element name="UserID" 
type="{http://www.ebics.org/S001}UserIDType"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"; 
minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OrderSignatureDataType", namespace = 
"http://www.ebics.org/S001";, propOrder = {
+    "signatureVersion",
+    "signatureValue",
+    "partnerID",
+    "userID",
+    "x509Data"
+})
+public class OrderSignatureDataType {
+
+    @XmlElement(name = "SignatureVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String signatureVersion;
+    @XmlElement(name = "SignatureValue", required = true)
+    protected byte[] signatureValue;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlElement(name = "X509Data", namespace = 
"http://www.w3.org/2000/09/xmldsig#";)
+    protected X509DataType x509Data;
+
+    /**
+     * Gets the value of the signatureVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSignatureVersion() {
+        return signatureVersion;
+    }
+
+    /**
+     * Sets the value of the signatureVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSignatureVersion(String value) {
+        this.signatureVersion = value;
+    }
+
+    /**
+     * Gets the value of the signatureValue property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getSignatureValue() {
+        return signatureValue;
+    }
+
+    /**
+     * Sets the value of the signatureValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setSignatureValue(byte[] value) {
+        this.signatureValue = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Parameter for X509Data
+     * 
+     * @return
+     *     possible object is
+     *     {@link X509DataType }
+     *     
+     */
+    public X509DataType getX509Data() {
+        return x509Data;
+    }
+
+    /**
+     * Sets the value of the x509Data property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link X509DataType }
+     *     
+     */
+    public void setX509Data(X509DataType value) {
+        this.x509Data = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderTType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderTType.java
new file mode 100644
index 0000000..7aadbab
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/OrderTType.java
@@ -0,0 +1,723 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for OrderTType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="OrderTType">
+ *   &lt;restriction base="{urn:org:ebics:H004}OrderTBaseType">
+ *     &lt;length value="3"/>
+ *     &lt;enumeration value="HSA"/>
+ *     &lt;enumeration value="HIA"/>
+ *     &lt;enumeration value="HPB"/>
+ *     &lt;enumeration value="HCA"/>
+ *     &lt;enumeration value="HPD"/>
+ *     &lt;enumeration value="HVU"/>
+ *     &lt;enumeration value="HVD"/>
+ *     &lt;enumeration value="HVT"/>
+ *     &lt;enumeration value="HVE"/>
+ *     &lt;enumeration value="HVS"/>
+ *     &lt;enumeration value="HKD"/>
+ *     &lt;enumeration value="HAA"/>
+ *     &lt;enumeration value="HVU"/>
+ *     &lt;enumeration value="HVD"/>
+ *     &lt;enumeration value="HVT"/>
+ *     &lt;enumeration value="HVE"/>
+ *     &lt;enumeration value="HVS"/>
+ *     &lt;enumeration value="AAE"/>
+ *     &lt;enumeration value="AEA"/>
+ *     &lt;enumeration value="AIA"/>
+ *     &lt;enumeration value="AKA"/>
+ *     &lt;enumeration value="AWV"/>
+ *     &lt;enumeration value="AZM"/>
+ *     &lt;enumeration value="AZV"/>
+ *     &lt;enumeration value="AZ2"/>
+ *     &lt;enumeration value="AZ4"/>
+ *     &lt;enumeration value="DDG"/>
+ *     &lt;enumeration value="DHB"/>
+ *     &lt;enumeration value="DTE"/>
+ *     &lt;enumeration value="DTI"/>
+ *     &lt;enumeration value="DTM"/>
+ *     &lt;enumeration value="DTV"/>
+ *     &lt;enumeration value="DT2"/>
+ *     &lt;enumeration value="DT4"/>
+ *     &lt;enumeration value="EAB"/>
+ *     &lt;enumeration value="ECS"/>
+ *     &lt;enumeration value="EDC"/>
+ *     &lt;enumeration value="EEA"/>
+ *     &lt;enumeration value="EEZ"/>
+ *     &lt;enumeration value="EIB"/>
+ *     &lt;enumeration value="EIK"/>
+ *     &lt;enumeration value="ESA"/>
+ *     &lt;enumeration value="ESM"/>
+ *     &lt;enumeration value="ESR"/>
+ *     &lt;enumeration value="ESZ"/>
+ *     &lt;enumeration value="ESU"/>
+ *     &lt;enumeration value="EUE"/>
+ *     &lt;enumeration value="GAB"/>
+ *     &lt;enumeration value="GAK"/>
+ *     &lt;enumeration value="GKT"/>
+ *     &lt;enumeration value="IDD"/>
+ *     &lt;enumeration value="IIB"/>
+ *     &lt;enumeration value="IIK"/>
+ *     &lt;enumeration value="INT"/>
+ *     &lt;enumeration value="IZG"/>
+ *     &lt;enumeration value="IZL"/>
+ *     &lt;enumeration value="IZV"/>
+ *     &lt;enumeration value="MAO"/>
+ *     &lt;enumeration value="MCV"/>
+ *     &lt;enumeration value="MC2"/>
+ *     &lt;enumeration value="MC4"/>
+ *     &lt;enumeration value="POZ"/>
+ *     &lt;enumeration value="RDT"/>
+ *     &lt;enumeration value="RFT"/>
+ *     &lt;enumeration value="STA"/>
+ *     &lt;enumeration value="VMK"/>
+ *     &lt;enumeration value="WPA"/>
+ *     &lt;enumeration value="WPB"/>
+ *     &lt;enumeration value="WPC"/>
+ *     &lt;enumeration value="WPD"/>
+ *     &lt;enumeration value="INI"/>
+ *     &lt;enumeration value="PTK"/>
+ *     &lt;enumeration value="PUB"/>
+ *     &lt;enumeration value="HCA"/>
+ *     &lt;enumeration value="SPR"/>
+ *     &lt;enumeration value="VPB"/>
+ *     &lt;enumeration value="FIN"/>
+ *     &lt;enumeration value="IZS"/>
+ *     &lt;enumeration value="SSP"/>
+ *     &lt;enumeration value="ATA"/>
+ *     &lt;enumeration value="BKA"/>
+ *     &lt;enumeration value="BZK"/>
+ *     &lt;enumeration value="DKI"/>
+ *     &lt;enumeration value="DMI"/>
+ *     &lt;enumeration value="DSW"/>
+ *     &lt;enumeration value="ESG"/>
+ *     &lt;enumeration value="ESP"/>
+ *     &lt;enumeration value="FTB"/>
+ *     &lt;enumeration value="FTD"/>
+ *     &lt;enumeration value="IBK"/>
+ *     &lt;enumeration value="IBW"/>
+ *     &lt;enumeration value="IBU"/>
+ *     &lt;enumeration value="IKK"/>
+ *     &lt;enumeration value="IKU"/>
+ *     &lt;enumeration value="IKW"/>
+ *     &lt;enumeration value="KTH"/>
+ *     &lt;enumeration value="KTR"/>
+ *     &lt;enumeration value="KKZ"/>
+ *     &lt;enumeration value="TST"/>
+ *     &lt;enumeration value="UPD"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "OrderTType")
+@XmlEnum
+public enum OrderTType {
+
+
+    /**
+     * Senden der Public Keys für Authentifikation und Verschlüsselung, 
bankfachlich signiert mit FTAM-Signaturschlüssel
+     * 
+     */
+    HSA("HSA"),
+
+    /**
+     * Senden der Public Keys zur Authentifikation und zur Verschlüsselung
+     * 
+     */
+    HIA("HIA"),
+
+    /**
+     * Abholen der Public Keys der Bank
+     * 
+     */
+    HPB("HPB"),
+
+    /**
+     * Ändern der Public Keys zur Authentifikation und zur Verschlüsselung
+     * 
+     */
+    HCA("HCA"),
+
+    /**
+     * Abholen Bankparameter für internetbasierten Standard
+     * 
+     */
+    HPD("HPD"),
+
+    /**
+     * Abholen VEU Übersicht
+     * 
+     */
+    HVU("HVU"),
+
+    /**
+     * Abholen VEU Auftragsdaten (Daten-trägerbegleitzettel)
+     * 
+     */
+    HVD("HVD"),
+
+    /**
+     * Abholen VEU Auftragsdaten ( Transakti-onsdetails gemäß Parametervorgabe)
+     * 
+     */
+    HVT("HVT"),
+
+    /**
+     * Senden EU zu bestehendem VEU-Auftrag
+     * 
+     */
+    HVE("HVE"),
+
+    /**
+     * Senden Stornierung für bestehenden VEU-Auftrag
+     * 
+     */
+    HVS("HVS"),
+
+    /**
+     * Abholen Konfigurationsdaten des Teilnehmers
+     * 
+     */
+    HKD("HKD"),
+
+    /**
+     * Abholen Übersicht zu abrufbaren Aufträgen
+     * 
+     */
+    HAA("HAA"),
+
+    /**
+     * Senden Importakkreditiv Änderung
+     * 
+     */
+    AAE("AAE"),
+
+    /**
+     * Senden Exportakkreditive
+     * 
+     */
+    AEA("AEA"),
+
+    /**
+     * Senden Import-Akkreditive Avisierung
+     * 
+     */
+    AIA("AIA"),
+
+    /**
+     * Abholen Import-Akkreditive
+     * 
+     */
+    AKA("AKA"),
+
+    /**
+     * AWV-Meldung senden
+     * 
+     */
+    AWV("AWV"),
+
+    /**
+     * AZV im Magnetbandformat senden (Satzlänge variabel)
+     * 
+     */
+    AZM("AZM"),
+
+    /**
+     * AZV im Diskettenformat senden
+     * 
+     */
+    AZV("AZV"),
+
+    /**
+     * AZV im Magnetbandformat senden (Satzlängenfeld 2 Bytes)
+     * 
+     */
+    @XmlEnumValue("AZ2")
+    AZ_2("AZ2"),
+
+    /**
+     * AZV im Magnetbandformat senden (Satzlängenfeld 4 Bytes)
+     * 
+     */
+    @XmlEnumValue("AZ4")
+    AZ_4("AZ4"),
+
+    /**
+     * Abholen Devisenhandelsbestätigung
+     * 
+     */
+    DDG("DDG"),
+
+    /**
+     * Senden Devisenhandelsbestätigung
+     * 
+     */
+    DHB("DHB"),
+
+    /**
+     * Eilauftrag (IZV im DTAUS0-Format) senden
+     * 
+     */
+    DTE("DTE"),
+
+    /**
+     * IZV-Datei abholen
+     * 
+     */
+    DTI("DTI"),
+
+    /**
+     * MCV-Datei abholen (Format analog MCV)
+     * 
+     */
+    DTM("DTM"),
+
+    /**
+     * Zahlungsverkehrsdateien von Service-Rechenzentren senden
+     * 
+     */
+    DTV("DTV"),
+
+    /**
+     * MC2-Datei abholen (Format analog MC2)
+     * 
+     */
+    @XmlEnumValue("DT2")
+    DT_2("DT2"),
+
+    /**
+     * MC4-Datei abholen (Format analog MC4)
+     * 
+     */
+    @XmlEnumValue("DT4")
+    DT_4("DT4"),
+
+    /**
+     * Exportakkreditive abholen
+     * 
+     */
+    EAB("EAB"),
+
+    /**
+     * Senden electronic-cash Lastschriftdatei
+     * 
+     */
+    ECS("ECS"),
+
+    /**
+     * Senden Maestro-Lastschriftdatei
+     * 
+     */
+    EDC("EDC"),
+
+    /**
+     * EDIFACT abholen ASCII
+     * 
+     */
+    EEA("EEA"),
+
+    /**
+     * EDIFACT abholen EBCDIC
+     * 
+     */
+    EEZ("EEZ"),
+
+    /**
+     * Ausführungsanzeige (Exportinkasso) Bank an Kunde abholen
+     * 
+     */
+    EIB("EIB"),
+
+    /**
+     * Senden Exportinkassi
+     * 
+     */
+    EIK("EIK"),
+
+    /**
+     * EDIFACT senden ASCII
+     * 
+     */
+    ESA("ESA"),
+
+    /**
+     * EU-Standardüberweisung (Zahlungsart 13) im Magnetbandformat 
(Satzlängenfeld 4 Bytes)
+     * 
+     */
+    ESM("ESM"),
+
+    /**
+     * Einreichung von EDIFACT-Lastschriften
+     * 
+     */
+    ESR("ESR"),
+
+    /**
+     * EDIFACT senden EBCDIC
+     * 
+     */
+    ESZ("ESZ"),
+
+    /**
+     * EU-Standardüberweisung (Zahlungsart 13)
+     * 
+     */
+    ESU("ESU"),
+
+    /**
+     * Taggleiche grenzüberschreitende Euro-Eilzahlung
+     * 
+     */
+    EUE("EUE"),
+
+    /**
+     * Abholen Garantien
+     * 
+     */
+    GAB("GAB"),
+
+    /**
+     * Senden Garantien
+     * 
+     */
+    GAK("GAK"),
+
+    /**
+     * GeldKarte-Umsatz senden (Datenaufbau gemäß GeldKarte-Spezifikation)
+     * 
+     */
+    GKT("GKT"),
+
+    /**
+     * Internationale Lastschriften
+     * 
+     */
+    IDD("IDD"),
+
+    /**
+     * Abholen Importinkassi
+     * 
+     */
+    IIB("IIB"),
+
+    /**
+     * Senden Importinkassi
+     * 
+     */
+    IIK("IIK"),
+
+    /**
+     * Internationaler Zahlungsverkehr
+     * 
+     */
+    INT("INT"),
+
+    /**
+     * Inlandszahlungsverkehrsauftrag senden (nur Gutschriften)
+     * 
+     */
+    IZG("IZG"),
+
+    /**
+     * Inlandszahlungsverkehrsauftrag senden (nur Lastschriften)
+     * 
+     */
+    IZL("IZL"),
+
+    /**
+     * Inlandszahlungsverkehrsauftrag senden
+     * 
+     */
+    IZV("IZV"),
+
+    /**
+     * Abholen Magnetband-Datei aus optischer Beleglesung
+     * 
+     */
+    MAO("MAO"),
+
+    /**
+     * Senden IZV-Magnetbandformat (Satzlängenfeld 4 Bytes)
+     * 
+     */
+    MCV("MCV"),
+
+    /**
+     * Senden IZV-Magnetbandformat (Satzlängenfeld 2 Bytes)
+     * 
+     */
+    @XmlEnumValue("MC2")
+    MC_2("MC2"),
+
+    /**
+     * Senden IZV-Magnetbandformat (Satzlänge variabel)
+     * 
+     */
+    @XmlEnumValue("MC4")
+    MC_4("MC4"),
+
+    /**
+     * Senden POZ-Datei
+     * 
+     */
+    POZ("POZ"),
+
+    /**
+     * Rücklastschrift an Kunde
+     * 
+     */
+    RDT("RDT"),
+
+    /**
+     * Request for Transfer
+     * 
+     */
+    RFT("RFT"),
+
+    /**
+     * Abholen Swift-Tagesauszüge
+     * 
+     */
+    STA("STA"),
+
+    /**
+     * Abholen kurzfristige Vormerkposten
+     * 
+     */
+    VMK("VMK"),
+
+    /**
+     * Abholen Wertpapierabrechnung
+     * 
+     */
+    WPA("WPA"),
+
+    /**
+     * Abholen Wertpapierausführungsanzeige
+     * 
+     */
+    WPB("WPB"),
+
+    /**
+     * Abholen Depotaufstellung
+     * 
+     */
+    WPC("WPC"),
+
+    /**
+     * Abholen sonstige WP-Umsätze
+     * 
+     */
+    WPD("WPD"),
+
+    /**
+     * Initialisierung der bankfachlichen EU des Teilnehmers.
+     * 
+     */
+    INI("INI"),
+
+    /**
+     * Abholen Kundenprotokoll
+     * 
+     */
+    PTK("PTK"),
+
+    /**
+     * Senden Public Key zur Unterschriftenverifizierung
+     * 
+     */
+    PUB("PUB"),
+
+    /**
+     * Sperren der Zugangsberechtigung
+     * 
+     */
+    SPR("SPR"),
+
+    /**
+     * Abholen Public Key der Bank zur Verschlüsselung
+     * 
+     */
+    VPB("VPB"),
+
+    /**
+     * EDIFACT-FINPAY senden
+     * 
+     */
+    FIN("FIN"),
+
+    /**
+     * Informationen von Zentralstellen
+     * 
+     */
+    IZS("IZS"),
+
+    /**
+     * ec-Karten-Sperrdatei
+     * 
+     */
+    SSP("SSP"),
+
+    /**
+     * Teilausnutzung Importakkreditiv (Kreditinstitut an Kunde)
+     * 
+     */
+    ATA("ATA"),
+
+    /**
+     * Auftragsart für elektronische Kontoauszüge
+     * 
+     */
+    BKA("BKA"),
+
+    /**
+     * Barzahlungskarte
+     * 
+     */
+    BZK("BZK"),
+
+    /**
+     * Devisenkursinformationen abholen (Euro)
+     * 
+     */
+    DKI("DKI"),
+
+    /**
+     * Abholen Devisenmarktinformationen
+     * 
+     */
+    DMI("DMI"),
+
+    /**
+     * Abholen Devisenswapinformationen
+     * 
+     */
+    DSW("DSW"),
+
+    /**
+     * ESG-Datei für Elektronische Zweitunterschrift abholen
+     * 
+     */
+    ESG("ESG"),
+
+    /**
+     * ESP-Datei für Elektronische Zweitunterschrift senden
+     * 
+     */
+    ESP("ESP"),
+
+    /**
+     * Abholen/Senden beliebige Datei
+     * 
+     */
+    FTB("FTB"),
+
+    /**
+     * Freie Textdatei senden/abholen
+     * 
+     */
+    FTD("FTD"),
+
+    /**
+     * Abholen Institutsbestätigungsdatei (Komplettbestand)
+     * 
+     */
+    IBK("IBK"),
+
+    /**
+     * Abholen Institutsbestätigungsdatei (Komplettbestand weitere Datei)
+     * 
+     */
+    IBW("IBW"),
+
+    /**
+     * Abholen Institutsbestätigungsdatei (tägliches Update)
+     * 
+     */
+    IBU("IBU"),
+
+    /**
+     * Senden Institutskonten (Komplettbestand begrenzt auf 170 MB)
+     * 
+     */
+    IKK("IKK"),
+
+    /**
+     * Senden Institutskonten (tägliches Update)
+     * 
+     */
+    IKU("IKU"),
+
+    /**
+     * Senden Institutskonten (Komplettbestand weitere Datei)
+     * 
+     */
+    IKW("IKW"),
+
+    /**
+     * KTOHIN: Automatisiertes Verfahren für die Änderung von Kontonummern und 
Bankleitzahlen
+     * 
+     */
+    KTH("KTH"),
+
+    /**
+     * KTORUECK: Automatisiertes Verfahren für die Änderung von Kontonummern 
und Bankleitzahlen 
+     * 
+     */
+    KTR("KTR"),
+
+    /**
+     * Kontenkonzentration und Saldenausgleich
+     * 
+     */
+    KKZ("KKZ"),
+
+    /**
+     * Senden/Abholen Testdatei (ASCII)
+     * 
+     */
+    TST("TST"),
+
+    /**
+     * Updates abholen
+     * 
+     */
+    UPD("UPD");
+    private final String value;
+
+    OrderTType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static OrderTType fromValue(String v) {
+        for (OrderTType c: OrderTType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PGPDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PGPDataType.java
new file mode 100644
index 0000000..fc05be7
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PGPDataType.java
@@ -0,0 +1,105 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for PGPDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PGPDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;choice>
+ *         &lt;sequence>
+ *           &lt;element name="PGPKeyID" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *           &lt;element name="PGPKeyPacket" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"; minOccurs="0"/>
+ *           &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;/sequence>
+ *         &lt;sequence>
+ *           &lt;element name="PGPKeyPacket" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *           &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;/sequence>
+ *       &lt;/choice>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PGPDataType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class PGPDataType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "PGPKeyPacket", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "PGPKeyID", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false)
+    })
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+
+    /**
+     * Gets the rest of the content model. 
+     * 
+     * <p>
+     * You are getting this "catch-all" property because of the following 
reason: 
+     * The field name "PGPKeyPacket" is used by two different parts of a 
schema. See: 
+     * line 218 of 
file:/home/marcello/prog/libeufin/libeufin/sandbox/src/main/resources/xmldsig-core-schema.xsd
+     * line 213 of 
file:/home/marcello/prog/libeufin/libeufin/sandbox/src/main/resources/xmldsig-core-schema.xsd
+     * <p>
+     * To get rid of this property, apply a property customization to one 
+     * of both of the following declarations to change their names: 
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+     * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/Parameter.java 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/Parameter.java
new file mode 100644
index 0000000..61ca80f
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/Parameter.java
@@ -0,0 +1,196 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="Name" 
type="{http://www.w3.org/2001/XMLSchema}token"/>
+ *         &lt;element name="Value">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension 
base="&lt;http://www.w3.org/2001/XMLSchema>anySimpleType">
+ *                 &lt;attribute name="Type" use="required" 
type="{http://www.w3.org/2001/XMLSchema}NCName"; />
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "name",
+    "value"
+})
+@XmlRootElement(name = "Parameter")
+public class Parameter {
+
+    @XmlElement(name = "Name", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String name;
+    @XmlElement(name = "Value", required = true)
+    protected Parameter.Value value;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Parameter.Value }
+     *     
+     */
+    public Parameter.Value getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Parameter.Value }
+     *     
+     */
+    public void setValue(Parameter.Value value) {
+        this.value = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension 
base="&lt;http://www.w3.org/2001/XMLSchema>anySimpleType">
+     *       &lt;attribute name="Type" use="required" 
type="{http://www.w3.org/2001/XMLSchema}NCName"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class Value {
+
+        @XmlValue
+        @XmlSchemaType(name = "anySimpleType")
+        protected Object value;
+        @XmlAttribute(name = "Type", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        @XmlSchemaType(name = "NCName")
+        protected String type;
+
+        /**
+         * Gets the value of the value property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Object }
+         *     
+         */
+        public Object getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Object }
+         *     
+         */
+        public void setValue(Object value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the type property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getType() {
+            return type;
+        }
+
+        /**
+         * Sets the value of the type property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setType(String value) {
+            this.type = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PartnerInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PartnerInfoType.java
new file mode 100644
index 0000000..6ea0459
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PartnerInfoType.java
@@ -0,0 +1,310 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlList;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for customer data with regard to distributed signatures (order 
types HKD, HTD).
+ * 
+ * <p>Java class for PartnerInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PartnerInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="AddressInfo" 
type="{urn:org:ebics:H004}AddressInfoType"/>
+ *         &lt;element name="BankInfo" 
type="{urn:org:ebics:H004}BankInfoType"/>
+ *         &lt;element name="AccountInfo" maxOccurs="unbounded" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;extension base="{urn:org:ebics:H004}AccountType">
+ *                 &lt;sequence>
+ *                   &lt;element name="UsageOrderTypes" 
type="{urn:org:ebics:H004}OrderTListType" minOccurs="0"/>
+ *                   &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *                 &lt;/sequence>
+ *                 &lt;attribute name="ID" use="required" 
type="{urn:org:ebics:H004}AccountIDType" />
+ *               &lt;/extension>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="OrderInfo" 
type="{urn:org:ebics:H004}AuthOrderInfoType" maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PartnerInfoType", propOrder = {
+    "addressInfo",
+    "bankInfo",
+    "accountInfo",
+    "orderInfo"
+})
+public class PartnerInfoType {
+
+    @XmlElement(name = "AddressInfo", required = true)
+    protected AddressInfoType addressInfo;
+    @XmlElement(name = "BankInfo", required = true)
+    protected BankInfoType bankInfo;
+    @XmlElement(name = "AccountInfo")
+    protected List<PartnerInfoType.AccountInfo> accountInfo;
+    @XmlElement(name = "OrderInfo", required = true)
+    protected List<AuthOrderInfoType> orderInfo;
+
+    /**
+     * Gets the value of the addressInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AddressInfoType }
+     *     
+     */
+    public AddressInfoType getAddressInfo() {
+        return addressInfo;
+    }
+
+    /**
+     * Sets the value of the addressInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AddressInfoType }
+     *     
+     */
+    public void setAddressInfo(AddressInfoType value) {
+        this.addressInfo = value;
+    }
+
+    /**
+     * Gets the value of the bankInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BankInfoType }
+     *     
+     */
+    public BankInfoType getBankInfo() {
+        return bankInfo;
+    }
+
+    /**
+     * Sets the value of the bankInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BankInfoType }
+     *     
+     */
+    public void setBankInfo(BankInfoType value) {
+        this.bankInfo = value;
+    }
+
+    /**
+     * Gets the value of the accountInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the accountInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAccountInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PartnerInfoType.AccountInfo }
+     * 
+     * 
+     */
+    public List<PartnerInfoType.AccountInfo> getAccountInfo() {
+        if (accountInfo == null) {
+            accountInfo = new ArrayList<PartnerInfoType.AccountInfo>();
+        }
+        return this.accountInfo;
+    }
+
+    /**
+     * Gets the value of the orderInfo property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderInfo 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderInfo().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AuthOrderInfoType }
+     * 
+     * 
+     */
+    public List<AuthOrderInfoType> getOrderInfo() {
+        if (orderInfo == null) {
+            orderInfo = new ArrayList<AuthOrderInfoType>();
+        }
+        return this.orderInfo;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;extension base="{urn:org:ebics:H004}AccountType">
+     *       &lt;sequence>
+     *         &lt;element name="UsageOrderTypes" 
type="{urn:org:ebics:H004}OrderTListType" minOccurs="0"/>
+     *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+     *       &lt;/sequence>
+     *       &lt;attribute name="ID" use="required" 
type="{urn:org:ebics:H004}AccountIDType" />
+     *     &lt;/extension>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "usageOrderTypes",
+        "any"
+    })
+    public static class AccountInfo
+        extends AccountType
+    {
+
+        @XmlList
+        @XmlElement(name = "UsageOrderTypes")
+        protected List<String> usageOrderTypes;
+        @XmlAnyElement(lax = true)
+        protected List<Object> any;
+        @XmlAttribute(name = "ID", required = true)
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String id;
+
+        /**
+         * Gets the value of the usageOrderTypes property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the 
usageOrderTypes property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getUsageOrderTypes().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link String }
+         * 
+         * 
+         */
+        public List<String> getUsageOrderTypes() {
+            if (usageOrderTypes == null) {
+                usageOrderTypes = new ArrayList<String>();
+            }
+            return this.usageOrderTypes;
+        }
+
+        /**
+         * Gets the value of the any property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the any 
property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getAny().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link Element }
+         * {@link Object }
+         * 
+         * 
+         */
+        public List<Object> getAny() {
+            if (any == null) {
+                any = new ArrayList<Object>();
+            }
+            return this.any;
+        }
+
+        /**
+         * Gets the value of the id property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getID() {
+            return id;
+        }
+
+        /**
+         * Sets the value of the id property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setID(String value) {
+            this.id = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PreValidationAccountAuthType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PreValidationAccountAuthType.java
new file mode 100644
index 0000000..02a53dd
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PreValidationAccountAuthType.java
@@ -0,0 +1,73 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Datentyp für Kontenberechtigungsdaten zur Vorabprüfung.
+ * 
+ * <p>Java class for PreValidationAccountAuthType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PreValidationAccountAuthType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}AccountType">
+ *       &lt;sequence>
+ *         &lt;element name="Amount" type="{urn:org:ebics:H004}AmountType" 
minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PreValidationAccountAuthType", propOrder = {
+    "amount"
+})
+public class PreValidationAccountAuthType
+    extends AccountType
+{
+
+    @XmlElement(name = "Amount")
+    protected AmountType amount;
+
+    /**
+     * Gets the value of the amount property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AmountType }
+     *     
+     */
+    public AmountType getAmount() {
+        return amount;
+    }
+
+    /**
+     * Sets the value of the amount property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AmountType }
+     *     
+     */
+    public void setAmount(AmountType value) {
+        this.amount = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PreValidationRequestType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PreValidationRequestType.java
new file mode 100644
index 0000000..770613f
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PreValidationRequestType.java
@@ -0,0 +1,147 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for pre-validation (request).
+ * 
+ * <p>Java class for PreValidationRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PreValidationRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="DataDigest" 
type="{urn:org:ebics:H004}DataDigestType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="AccountAuthorisation" 
type="{urn:org:ebics:H004}PreValidationAccountAuthType" maxOccurs="unbounded" 
minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PreValidationRequestType", propOrder = {
+    "dataDigest",
+    "accountAuthorisation",
+    "any"
+})
+public class PreValidationRequestType {
+
+    @XmlElement(name = "DataDigest")
+    protected List<DataDigestType> dataDigest;
+    @XmlElement(name = "AccountAuthorisation")
+    protected List<PreValidationAccountAuthType> accountAuthorisation;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the dataDigest property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the dataDigest 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getDataDigest().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link DataDigestType }
+     * 
+     * 
+     */
+    public List<DataDigestType> getDataDigest() {
+        if (dataDigest == null) {
+            dataDigest = new ArrayList<DataDigestType>();
+        }
+        return this.dataDigest;
+    }
+
+    /**
+     * Gets the value of the accountAuthorisation property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
accountAuthorisation property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAccountAuthorisation().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PreValidationAccountAuthType }
+     * 
+     * 
+     */
+    public List<PreValidationAccountAuthType> getAccountAuthorisation() {
+        if (accountAuthorisation == null) {
+            accountAuthorisation = new 
ArrayList<PreValidationAccountAuthType>();
+        }
+        return this.accountAuthorisation;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyDigestType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyDigestType.java
new file mode 100644
index 0000000..b6dd6b6
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyDigestType.java
@@ -0,0 +1,100 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Datentyp für Hashwerte und Attribute von öffentlichen Schlüsseln.
+ * 
+ * <p>Java class for PubKeyDigestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PubKeyDigestType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;urn:org:ebics:H004>DigestType">
+ *       &lt;attribute name="Algorithm" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PubKeyDigestType", propOrder = {
+    "value"
+})
+@XmlSeeAlso({
+    
tech.libeufin.messages.ebics.keyresponse.DataEncryptionInfoType.EncryptionPubKeyDigest.class
+})
+public class PubKeyDigestType {
+
+    @XmlValue
+    protected byte[] value;
+    @XmlAttribute(name = "Algorithm", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String algorithm;
+
+    /**
+     * Datentyp für Hashwerte.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setValue(byte[] value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the algorithm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Sets the value of the algorithm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAlgorithm(String value) {
+        this.algorithm = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyInfoTypeAtEbicsSignatures.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyInfoTypeAtEbicsSignatures.java
new file mode 100644
index 0000000..1c974a9
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyInfoTypeAtEbicsSignatures.java
@@ -0,0 +1,143 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für die Darstellung eines öffentlichen RSA-Schlüssels als 
Exponent-Modulus-Kombination oder als X509-Zertifikat.
+ * 
+ * <p>Java class for PubKeyInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PubKeyInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;sequence>
+ *           &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"; 
minOccurs="0"/>
+ *           &lt;element name="PubKeyValue" 
type="{http://www.ebics.org/S001}PubKeyValueType"/>
+ *         &lt;/sequence>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PubKeyInfoType", namespace = "http://www.ebics.org/S001";, 
propOrder = {
+    "x509Data",
+    "pubKeyValue",
+    "any"
+})
+@XmlSeeAlso({
+    SignaturePubKeyInfoType.class
+})
+public class PubKeyInfoTypeAtEbicsSignatures {
+
+    @XmlElement(name = "X509Data", namespace = 
"http://www.w3.org/2000/09/xmldsig#";)
+    protected X509DataType x509Data;
+    @XmlElement(name = "PubKeyValue", required = true)
+    protected PubKeyValueTypeAtEbicsSignatures pubKeyValue;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the x509Data property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link X509DataType }
+     *     
+     */
+    public X509DataType getX509Data() {
+        return x509Data;
+    }
+
+    /**
+     * Sets the value of the x509Data property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link X509DataType }
+     *     
+     */
+    public void setX509Data(X509DataType value) {
+        this.x509Data = value;
+    }
+
+    /**
+     * Gets the value of the pubKeyValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PubKeyValueTypeAtEbicsSignatures }
+     *     
+     */
+    public PubKeyValueTypeAtEbicsSignatures getPubKeyValue() {
+        return pubKeyValue;
+    }
+
+    /**
+     * Sets the value of the pubKeyValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PubKeyValueTypeAtEbicsSignatures }
+     *     
+     */
+    public void setPubKeyValue(PubKeyValueTypeAtEbicsSignatures value) {
+        this.pubKeyValue = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyInfoTypeAtEbicsTypes.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyInfoTypeAtEbicsTypes.java
new file mode 100644
index 0000000..b76e9ed
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyInfoTypeAtEbicsTypes.java
@@ -0,0 +1,144 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für die Darstellung eines öffentlichen RSA-Schlüssels als 
Exponent-Modulus-Kombination oder als X509-Zertifikat.
+ * 
+ * <p>Java class for PubKeyInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PubKeyInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;sequence>
+ *           &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"; 
minOccurs="0"/>
+ *           &lt;element name="PubKeyValue" 
type="{urn:org:ebics:H004}PubKeyValueType"/>
+ *         &lt;/sequence>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PubKeyInfoType", propOrder = {
+    "x509Data",
+    "pubKeyValue",
+    "any"
+})
+@XmlSeeAlso({
+    EncryptionPubKeyInfoType.class,
+    AuthenticationPubKeyInfoType.class
+})
+public class PubKeyInfoTypeAtEbicsTypes {
+
+    @XmlElement(name = "X509Data", namespace = 
"http://www.w3.org/2000/09/xmldsig#";)
+    protected X509DataType x509Data;
+    @XmlElement(name = "PubKeyValue", required = true)
+    protected PubKeyValueTypeAtEbicsTypes pubKeyValue;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the x509Data property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link X509DataType }
+     *     
+     */
+    public X509DataType getX509Data() {
+        return x509Data;
+    }
+
+    /**
+     * Sets the value of the x509Data property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link X509DataType }
+     *     
+     */
+    public void setX509Data(X509DataType value) {
+        this.x509Data = value;
+    }
+
+    /**
+     * Gets the value of the pubKeyValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PubKeyValueTypeAtEbicsTypes }
+     *     
+     */
+    public PubKeyValueTypeAtEbicsTypes getPubKeyValue() {
+        return pubKeyValue;
+    }
+
+    /**
+     * Sets the value of the pubKeyValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PubKeyValueTypeAtEbicsTypes }
+     *     
+     */
+    public void setPubKeyValue(PubKeyValueTypeAtEbicsTypes value) {
+        this.pubKeyValue = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyValueTypeAtEbicsSignatures.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyValueTypeAtEbicsSignatures.java
new file mode 100644
index 0000000..298ba6c
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyValueTypeAtEbicsSignatures.java
@@ -0,0 +1,140 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für die Exponent-Modulus-Darstellung eines öffentlichen 
RSA-Schlüssels.
+ * 
+ * <p>Java class for PubKeyValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PubKeyValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/>
+ *         &lt;element name="TimeStamp" 
type="{http://www.ebics.org/S001}TimestampType"; minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PubKeyValueType", namespace = "http://www.ebics.org/S001";, 
propOrder = {
+    "rsaKeyValue",
+    "timeStamp",
+    "any"
+})
+public class PubKeyValueTypeAtEbicsSignatures {
+
+    @XmlElement(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
+    protected RSAKeyValueType rsaKeyValue;
+    @XmlElement(name = "TimeStamp")
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar timeStamp;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the rsaKeyValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RSAKeyValueType }
+     *     
+     */
+    public RSAKeyValueType getRSAKeyValue() {
+        return rsaKeyValue;
+    }
+
+    /**
+     * Sets the value of the rsaKeyValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RSAKeyValueType }
+     *     
+     */
+    public void setRSAKeyValue(RSAKeyValueType value) {
+        this.rsaKeyValue = value;
+    }
+
+    /**
+     * Gets the value of the timeStamp property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTimeStamp() {
+        return timeStamp;
+    }
+
+    /**
+     * Sets the value of the timeStamp property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTimeStamp(XMLGregorianCalendar value) {
+        this.timeStamp = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyValueTypeAtEbicsTypes.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyValueTypeAtEbicsTypes.java
new file mode 100644
index 0000000..05251d6
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/PubKeyValueTypeAtEbicsTypes.java
@@ -0,0 +1,140 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für die Exponent-Modulus-Darstellung eines öffentlichen 
RSA-Schlüssels.
+ * 
+ * <p>Java class for PubKeyValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PubKeyValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/>
+ *         &lt;element name="TimeStamp" 
type="{urn:org:ebics:H004}TimestampType" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PubKeyValueType", propOrder = {
+    "rsaKeyValue",
+    "timeStamp",
+    "any"
+})
+public class PubKeyValueTypeAtEbicsTypes {
+
+    @XmlElement(name = "RSAKeyValue", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, required = true)
+    protected RSAKeyValueType rsaKeyValue;
+    @XmlElement(name = "TimeStamp")
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar timeStamp;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the rsaKeyValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RSAKeyValueType }
+     *     
+     */
+    public RSAKeyValueType getRSAKeyValue() {
+        return rsaKeyValue;
+    }
+
+    /**
+     * Sets the value of the rsaKeyValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RSAKeyValueType }
+     *     
+     */
+    public void setRSAKeyValue(RSAKeyValueType value) {
+        this.rsaKeyValue = value;
+    }
+
+    /**
+     * Gets the value of the timeStamp property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTimeStamp() {
+        return timeStamp;
+    }
+
+    /**
+     * Sets the value of the timeStamp property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTimeStamp(XMLGregorianCalendar value) {
+        this.timeStamp = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/RSAKeyValueType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/RSAKeyValueType.java
new file mode 100644
index 0000000..964d8fa
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/RSAKeyValueType.java
@@ -0,0 +1,93 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RSAKeyValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RSAKeyValueType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="Modulus" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *         &lt;element name="Exponent" 
type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RSAKeyValueType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "modulus",
+    "exponent"
+})
+public class RSAKeyValueType {
+
+    @XmlElement(name = "Modulus", required = true)
+    protected byte[] modulus;
+    @XmlElement(name = "Exponent", required = true)
+    protected byte[] exponent;
+
+    /**
+     * Gets the value of the modulus property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getModulus() {
+        return modulus;
+    }
+
+    /**
+     * Sets the value of the modulus property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setModulus(byte[] value) {
+        this.modulus = value;
+    }
+
+    /**
+     * Gets the value of the exponent property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getExponent() {
+        return exponent;
+    }
+
+    /**
+     * Sets the value of the exponent property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setExponent(byte[] value) {
+        this.exponent = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ReferenceType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ReferenceType.java
new file mode 100644
index 0000000..d4db63b
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/ReferenceType.java
@@ -0,0 +1,214 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for ReferenceType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ReferenceType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms"; 
minOccurs="0"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *       &lt;attribute name="URI" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *       &lt;attribute name="Type" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ReferenceType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "transforms",
+    "digestMethod",
+    "digestValue"
+})
+public class ReferenceType {
+
+    @XmlElement(name = "Transforms")
+    protected TransformsType transforms;
+    @XmlElement(name = "DigestMethod", required = true)
+    protected DigestMethodType digestMethod;
+    @XmlElement(name = "DigestValue", required = true)
+    protected byte[] digestValue;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+    @XmlAttribute(name = "URI")
+    @XmlSchemaType(name = "anyURI")
+    protected String uri;
+    @XmlAttribute(name = "Type")
+    @XmlSchemaType(name = "anyURI")
+    protected String type;
+
+    /**
+     * Gets the value of the transforms property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TransformsType }
+     *     
+     */
+    public TransformsType getTransforms() {
+        return transforms;
+    }
+
+    /**
+     * Sets the value of the transforms property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TransformsType }
+     *     
+     */
+    public void setTransforms(TransformsType value) {
+        this.transforms = value;
+    }
+
+    /**
+     * Gets the value of the digestMethod property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link DigestMethodType }
+     *     
+     */
+    public DigestMethodType getDigestMethod() {
+        return digestMethod;
+    }
+
+    /**
+     * Sets the value of the digestMethod property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link DigestMethodType }
+     *     
+     */
+    public void setDigestMethod(DigestMethodType value) {
+        this.digestMethod = value;
+    }
+
+    /**
+     * Gets the value of the digestValue property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getDigestValue() {
+        return digestValue;
+    }
+
+    /**
+     * Sets the value of the digestValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setDigestValue(byte[] value) {
+        this.digestValue = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+    /**
+     * Gets the value of the uri property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getURI() {
+        return uri;
+    }
+
+    /**
+     * Sets the value of the uri property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setURI(String value) {
+        this.uri = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/RetrievalMethodType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/RetrievalMethodType.java
new file mode 100644
index 0000000..c960ad4
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/RetrievalMethodType.java
@@ -0,0 +1,127 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RetrievalMethodType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="RetrievalMethodType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms"; 
minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="URI" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *       &lt;attribute name="Type" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RetrievalMethodType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "transforms"
+})
+public class RetrievalMethodType {
+
+    @XmlElement(name = "Transforms")
+    protected TransformsType transforms;
+    @XmlAttribute(name = "URI")
+    @XmlSchemaType(name = "anyURI")
+    protected String uri;
+    @XmlAttribute(name = "Type")
+    @XmlSchemaType(name = "anyURI")
+    protected String type;
+
+    /**
+     * Gets the value of the transforms property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link TransformsType }
+     *     
+     */
+    public TransformsType getTransforms() {
+        return transforms;
+    }
+
+    /**
+     * Sets the value of the transforms property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link TransformsType }
+     *     
+     */
+    public void setTransforms(TransformsType value) {
+        this.transforms = value;
+    }
+
+    /**
+     * Gets the value of the uri property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getURI() {
+        return uri;
+    }
+
+    /**
+     * Sets the value of the uri property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setURI(String value) {
+        this.uri = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SPKIDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SPKIDataType.java
new file mode 100644
index 0000000..6ca3f58
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SPKIDataType.java
@@ -0,0 +1,83 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for SPKIDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SPKIDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence maxOccurs="unbounded">
+ *         &lt;element name="SPKISexp" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *         &lt;any processContents='lax' namespace='##other' minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SPKIDataType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "spkiSexpAndAny"
+})
+public class SPKIDataType {
+
+    @XmlElementRef(name = "SPKISexp", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class)
+    @XmlAnyElement(lax = true)
+    protected List<Object> spkiSexpAndAny;
+
+    /**
+     * Gets the value of the spkiSexpAndAny property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
spkiSexpAndAny property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSPKISexpAndAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getSPKISexpAndAny() {
+        if (spkiSexpAndAny == null) {
+            spkiSexpAndAny = new ArrayList<Object>();
+        }
+        return this.spkiSexpAndAny;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureCertificateInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureCertificateInfoType.java
new file mode 100644
index 0000000..8ad8c17
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureCertificateInfoType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Data type for public authorisation (ES) key.
+ * 
+ * <p>Java class for SignatureCertificateInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignatureCertificateInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{urn:org:ebics:H004}CertificateInfoType">
+ *       &lt;sequence>
+ *         &lt;element name="SignatureVersion" 
type="{urn:org:ebics:H004}SignatureVersionType"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureCertificateInfoType", propOrder = {
+    "signatureVersion"
+})
+public class SignatureCertificateInfoType
+    extends CertificateInfoType
+{
+
+    @XmlElement(name = "SignatureVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String signatureVersion;
+
+    /**
+     * Gets the value of the signatureVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSignatureVersion() {
+        return signatureVersion;
+    }
+
+    /**
+     * Sets the value of the signatureVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSignatureVersion(String value) {
+        this.signatureVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureMethodType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureMethodType.java
new file mode 100644
index 0000000..e9342a8
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureMethodType.java
@@ -0,0 +1,115 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for SignatureMethodType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignatureMethodType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="HMACOutputLength" 
type="{http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType"; minOccurs="0"/>
+ *         &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Algorithm" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureMethodType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class SignatureMethodType {
+
+    @XmlElementRef(name = "HMACOutputLength", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false)
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Algorithm", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String algorithm;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the algorithm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Sets the value of the algorithm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAlgorithm(String value) {
+        this.algorithm = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePropertiesType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePropertiesType.java
new file mode 100644
index 0000000..295d54e
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePropertiesType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignaturePropertiesType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignaturePropertiesType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element 
ref="{http://www.w3.org/2000/09/xmldsig#}SignatureProperty"; 
maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignaturePropertiesType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "signatureProperty"
+})
+public class SignaturePropertiesType {
+
+    @XmlElement(name = "SignatureProperty", required = true)
+    protected List<SignaturePropertyType> signatureProperty;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the signatureProperty property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
signatureProperty property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSignatureProperty().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link SignaturePropertyType }
+     * 
+     * 
+     */
+    public List<SignaturePropertyType> getSignatureProperty() {
+        if (signatureProperty == null) {
+            signatureProperty = new ArrayList<SignaturePropertyType>();
+        }
+        return this.signatureProperty;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePropertyType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePropertyType.java
new file mode 100644
index 0000000..12c2993
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePropertyType.java
@@ -0,0 +1,144 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for SignaturePropertyType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignaturePropertyType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;choice maxOccurs="unbounded">
+ *         &lt;any processContents='lax' namespace='##other'/>
+ *       &lt;/choice>
+ *       &lt;attribute name="Target" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignaturePropertyType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class SignaturePropertyType {
+
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Target", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String target;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the target property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getTarget() {
+        return target;
+    }
+
+    /**
+     * Sets the value of the target property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setTarget(String value) {
+        this.target = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePubKeyInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePubKeyInfoType.java
new file mode 100644
index 0000000..223e595
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePubKeyInfoType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Datentyp für öffentliche bankfachliche Schlüssel.
+ * 
+ * <p>Java class for SignaturePubKeyInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignaturePubKeyInfoType">
+ *   &lt;complexContent>
+ *     &lt;extension base="{http://www.ebics.org/S001}PubKeyInfoType";>
+ *       &lt;sequence>
+ *         &lt;element name="SignatureVersion" 
type="{http://www.ebics.org/S001}SignatureVersionType"/>
+ *       &lt;/sequence>
+ *     &lt;/extension>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignaturePubKeyInfoType", namespace = 
"http://www.ebics.org/S001";, propOrder = {
+    "signatureVersion"
+})
+public class SignaturePubKeyInfoType
+    extends PubKeyInfoTypeAtEbicsSignatures
+{
+
+    @XmlElement(name = "SignatureVersion", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String signatureVersion;
+
+    /**
+     * Gets the value of the signatureVersion property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSignatureVersion() {
+        return signatureVersion;
+    }
+
+    /**
+     * Sets the value of the signatureVersion property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSignatureVersion(String value) {
+        this.signatureVersion = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePubKeyOrderDataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePubKeyOrderDataType.java
new file mode 100644
index 0000000..0c74a74
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignaturePubKeyOrderDataType.java
@@ -0,0 +1,172 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Public Key Dateien unabhängig von der Auftragsart / 
Geschäftsvorfall.
+ * 
+ * <p>Java class for SignaturePubKeyOrderDataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignaturePubKeyOrderDataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="SignaturePubKeyInfo" 
type="{http://www.ebics.org/S001}SignaturePubKeyInfoType"/>
+ *         &lt;element name="PartnerID" 
type="{http://www.ebics.org/S001}PartnerIDType"/>
+ *         &lt;element name="UserID" 
type="{http://www.ebics.org/S001}UserIDType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignaturePubKeyOrderDataType", namespace = 
"http://www.ebics.org/S001";, propOrder = {
+    "signaturePubKeyInfo",
+    "partnerID",
+    "userID",
+    "any"
+})
+public class SignaturePubKeyOrderDataType {
+
+    @XmlElement(name = "SignaturePubKeyInfo", required = true)
+    protected SignaturePubKeyInfoType signaturePubKeyInfo;
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the signaturePubKeyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignaturePubKeyInfoType }
+     *     
+     */
+    public SignaturePubKeyInfoType getSignaturePubKeyInfo() {
+        return signaturePubKeyInfo;
+    }
+
+    /**
+     * Sets the value of the signaturePubKeyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignaturePubKeyInfoType }
+     *     
+     */
+    public void setSignaturePubKeyInfo(SignaturePubKeyInfoType value) {
+        this.signaturePubKeyInfo = value;
+    }
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureType.java
new file mode 100644
index 0000000..782abec
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureType.java
@@ -0,0 +1,195 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignatureType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignatureType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SignedInfo"/>
+ *         &lt;element 
ref="{http://www.w3.org/2000/09/xmldsig#}SignatureValue"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}KeyInfo"; 
minOccurs="0"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Object"; 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "signedInfo",
+    "signatureValue",
+    "keyInfo",
+    "object"
+})
+public class SignatureType {
+
+    @XmlElement(name = "SignedInfo", required = true)
+    protected SignedInfoType signedInfo;
+    @XmlElement(name = "SignatureValue", required = true)
+    protected SignatureValueType signatureValue;
+    @XmlElement(name = "KeyInfo")
+    protected KeyInfoType keyInfo;
+    @XmlElement(name = "Object")
+    protected List<ObjectType> object;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the signedInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignedInfoType }
+     *     
+     */
+    public SignedInfoType getSignedInfo() {
+        return signedInfo;
+    }
+
+    /**
+     * Sets the value of the signedInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignedInfoType }
+     *     
+     */
+    public void setSignedInfo(SignedInfoType value) {
+        this.signedInfo = value;
+    }
+
+    /**
+     * Gets the value of the signatureValue property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignatureValueType }
+     *     
+     */
+    public SignatureValueType getSignatureValue() {
+        return signatureValue;
+    }
+
+    /**
+     * Sets the value of the signatureValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignatureValueType }
+     *     
+     */
+    public void setSignatureValue(SignatureValueType value) {
+        this.signatureValue = value;
+    }
+
+    /**
+     * Gets the value of the keyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link KeyInfoType }
+     *     
+     */
+    public KeyInfoType getKeyInfo() {
+        return keyInfo;
+    }
+
+    /**
+     * Sets the value of the keyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link KeyInfoType }
+     *     
+     */
+    public void setKeyInfo(KeyInfoType value) {
+        this.keyInfo = value;
+    }
+
+    /**
+     * Gets the value of the object property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the object 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getObject().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ObjectType }
+     * 
+     * 
+     */
+    public List<ObjectType> getObject() {
+        if (object == null) {
+            object = new ArrayList<ObjectType>();
+        }
+        return this.object;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureValueType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureValueType.java
new file mode 100644
index 0000000..4438975
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignatureValueType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignatureValueType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignatureValueType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>base64Binary">
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureValueType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "value"
+})
+public class SignatureValueType {
+
+    @XmlValue
+    protected byte[] value;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setValue(byte[] value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignedInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignedInfoType.java
new file mode 100644
index 0000000..6f9e1ed
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignedInfoType.java
@@ -0,0 +1,167 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignedInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignedInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element 
ref="{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod"/>
+ *         &lt;element 
ref="{http://www.w3.org/2000/09/xmldsig#}SignatureMethod"/>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Reference"; 
maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignedInfoType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "canonicalizationMethod",
+    "signatureMethod",
+    "reference"
+})
+public class SignedInfoType {
+
+    @XmlElement(name = "CanonicalizationMethod", required = true)
+    protected CanonicalizationMethodType canonicalizationMethod;
+    @XmlElement(name = "SignatureMethod", required = true)
+    protected SignatureMethodType signatureMethod;
+    @XmlElement(name = "Reference", required = true)
+    protected List<ReferenceType> reference;
+    @XmlAttribute(name = "Id")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlID
+    @XmlSchemaType(name = "ID")
+    protected String id;
+
+    /**
+     * Gets the value of the canonicalizationMethod property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link CanonicalizationMethodType }
+     *     
+     */
+    public CanonicalizationMethodType getCanonicalizationMethod() {
+        return canonicalizationMethod;
+    }
+
+    /**
+     * Sets the value of the canonicalizationMethod property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CanonicalizationMethodType }
+     *     
+     */
+    public void setCanonicalizationMethod(CanonicalizationMethodType value) {
+        this.canonicalizationMethod = value;
+    }
+
+    /**
+     * Gets the value of the signatureMethod property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignatureMethodType }
+     *     
+     */
+    public SignatureMethodType getSignatureMethod() {
+        return signatureMethod;
+    }
+
+    /**
+     * Sets the value of the signatureMethod property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignatureMethodType }
+     *     
+     */
+    public void setSignatureMethod(SignatureMethodType value) {
+        this.signatureMethod = value;
+    }
+
+    /**
+     * Gets the value of the reference property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the reference 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getReference().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ReferenceType }
+     * 
+     * 
+     */
+    public List<ReferenceType> getReference() {
+        if (reference == null) {
+            reference = new ArrayList<ReferenceType>();
+        }
+        return this.reference;
+    }
+
+    /**
+     * Gets the value of the id property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setId(String value) {
+        this.id = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignerInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignerInfoType.java
new file mode 100644
index 0000000..5b8237e
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/SignerInfoType.java
@@ -0,0 +1,319 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für Informationen zu einem Unterzeichner eines VEU-Auftrags (HVU, 
HVD).
+ * 
+ * <p>Java class for SignerInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SignerInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="PartnerID" 
type="{urn:org:ebics:H004}PartnerIDType"/>
+ *         &lt;element name="UserID" type="{urn:org:ebics:H004}UserIDType"/>
+ *         &lt;element name="Name" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="Timestamp" 
type="{urn:org:ebics:H004}TimestampType"/>
+ *         &lt;element name="Permission">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;attGroup ref="{urn:org:ebics:H004}SignerPermission"/>
+ *                 &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignerInfoType", propOrder = {
+    "partnerID",
+    "userID",
+    "name",
+    "timestamp",
+    "permission",
+    "any"
+})
+public class SignerInfoType {
+
+    @XmlElement(name = "PartnerID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String partnerID;
+    @XmlElement(name = "UserID", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String userID;
+    @XmlElement(name = "Name")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String name;
+    @XmlElement(name = "Timestamp", required = true)
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar timestamp;
+    @XmlElement(name = "Permission", required = true)
+    protected SignerInfoType.Permission permission;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the partnerID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getPartnerID() {
+        return partnerID;
+    }
+
+    /**
+     * Sets the value of the partnerID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setPartnerID(String value) {
+        this.partnerID = value;
+    }
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUserID(String value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the timestamp property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTimestamp() {
+        return timestamp;
+    }
+
+    /**
+     * Sets the value of the timestamp property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTimestamp(XMLGregorianCalendar value) {
+        this.timestamp = value;
+    }
+
+    /**
+     * Gets the value of the permission property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link SignerInfoType.Permission }
+     *     
+     */
+    public SignerInfoType.Permission getPermission() {
+        return permission;
+    }
+
+    /**
+     * Sets the value of the permission property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link SignerInfoType.Permission }
+     *     
+     */
+    public void setPermission(SignerInfoType.Permission value) {
+        this.permission = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;attGroup ref="{urn:org:ebics:H004}SignerPermission"/>
+     *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "")
+    public static class Permission {
+
+        @XmlAttribute(name = "AuthorisationLevel", required = true)
+        protected AuthorisationLevelType authorisationLevel;
+        @XmlAnyAttribute
+        private Map<QName, String> otherAttributes = new HashMap<QName, 
String>();
+
+        /**
+         * Gets the value of the authorisationLevel property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link AuthorisationLevelType }
+         *     
+         */
+        public AuthorisationLevelType getAuthorisationLevel() {
+            return authorisationLevel;
+        }
+
+        /**
+         * Sets the value of the authorisationLevel property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link AuthorisationLevelType }
+         *     
+         */
+        public void setAuthorisationLevel(AuthorisationLevelType value) {
+            this.authorisationLevel = value;
+        }
+
+        /**
+         * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+         * 
+         * <p>
+         * the map is keyed by the name of the attribute and 
+         * the value is the string value of the attribute.
+         * 
+         * the map returned by this method is live, and you can add new 
attribute
+         * by updating the map directly. Because of this design, there's no 
setter.
+         * 
+         * 
+         * @return
+         *     always non-null
+         */
+        public Map<QName, String> getOtherAttributes() {
+            return otherAttributes;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/StandardOrderParamsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/StandardOrderParamsType.java
new file mode 100644
index 0000000..f8d1f9a
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/StandardOrderParamsType.java
@@ -0,0 +1,169 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Datentyp für zusätzliche Auftragsparameter bei Standard-Auftragsarten.
+ * 
+ * <p>Java class for StandardOrderParamsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="StandardOrderParamsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="DateRange" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction 
base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *                 &lt;sequence>
+ *                   &lt;element name="Start" 
type="{urn:org:ebics:H004}DateType"/>
+ *                   &lt;element name="End" 
type="{urn:org:ebics:H004}DateType"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "StandardOrderParamsType", propOrder = {
+    "dateRange"
+})
+public class StandardOrderParamsType {
+
+    @XmlElement(name = "DateRange")
+    protected StandardOrderParamsType.DateRange dateRange;
+
+    /**
+     * Gets the value of the dateRange property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link StandardOrderParamsType.DateRange }
+     *     
+     */
+    public StandardOrderParamsType.DateRange getDateRange() {
+        return dateRange;
+    }
+
+    /**
+     * Sets the value of the dateRange property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link StandardOrderParamsType.DateRange }
+     *     
+     */
+    public void setDateRange(StandardOrderParamsType.DateRange value) {
+        this.dateRange = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+     *       &lt;sequence>
+     *         &lt;element name="Start" type="{urn:org:ebics:H004}DateType"/>
+     *         &lt;element name="End" type="{urn:org:ebics:H004}DateType"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "start",
+        "end"
+    })
+    public static class DateRange {
+
+        @XmlElement(name = "Start", required = true)
+        @XmlSchemaType(name = "date")
+        protected XMLGregorianCalendar start;
+        @XmlElement(name = "End", required = true)
+        @XmlSchemaType(name = "date")
+        protected XMLGregorianCalendar end;
+
+        /**
+         * Gets the value of the start property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getStart() {
+            return start;
+        }
+
+        /**
+         * Sets the value of the start property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setStart(XMLGregorianCalendar value) {
+            this.start = value;
+        }
+
+        /**
+         * Gets the value of the end property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getEnd() {
+            return end;
+        }
+
+        /**
+         * Sets the value of the end property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setEnd(XMLGregorianCalendar value) {
+            this.end = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransactionPhaseType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransactionPhaseType.java
new file mode 100644
index 0000000..065db63
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransactionPhaseType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TransactionPhaseType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="TransactionPhaseType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token";>
+ *     &lt;enumeration value="Initialisation"/>
+ *     &lt;enumeration value="Transfer"/>
+ *     &lt;enumeration value="Receipt"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "TransactionPhaseType")
+@XmlEnum
+public enum TransactionPhaseType {
+
+
+    /**
+     * Transaktionsinitialisierung
+     * 
+     */
+    @XmlEnumValue("Initialisation")
+    INITIALISATION("Initialisation"),
+
+    /**
+     * Auftragsdatentransfer
+     * 
+     */
+    @XmlEnumValue("Transfer")
+    TRANSFER("Transfer"),
+
+    /**
+     * Quittungstransfer
+     * 
+     */
+    @XmlEnumValue("Receipt")
+    RECEIPT("Receipt");
+    private final String value;
+
+    TransactionPhaseType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static TransactionPhaseType fromValue(String v) {
+        for (TransactionPhaseType c: TransactionPhaseType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferReceiptRequestType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferReceiptRequestType.java
new file mode 100644
index 0000000..008ec43
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferReceiptRequestType.java
@@ -0,0 +1,103 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für den Transfer von Transferquittungen.
+ * 
+ * <p>Java class for TransferReceiptRequestType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="TransferReceiptRequestType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="ReceiptCode" 
type="{urn:org:ebics:H004}ReceiptCodeType"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransferReceiptRequestType", propOrder = {
+    "receiptCode",
+    "any"
+})
+public class TransferReceiptRequestType {
+
+    @XmlElement(name = "ReceiptCode")
+    @XmlSchemaType(name = "nonNegativeInteger")
+    protected int receiptCode;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the receiptCode property.
+     * 
+     */
+    public int getReceiptCode() {
+        return receiptCode;
+    }
+
+    /**
+     * Sets the value of the receiptCode property.
+     * 
+     */
+    public void setReceiptCode(int value) {
+        this.receiptCode = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferReceiptResponseType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferReceiptResponseType.java
new file mode 100644
index 0000000..d575020
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferReceiptResponseType.java
@@ -0,0 +1,144 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für den Transfer von Antwortcodes.
+ * 
+ * <p>Java class for TransferReceiptResponseType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="TransferReceiptResponseType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="ReturnCodeReceipt" 
type="{urn:org:ebics:H004}ReturnCodeType"/>
+ *         &lt;element name="TimestampBankParameter" 
type="{urn:org:ebics:H004}TimestampType" minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransferReceiptResponseType", propOrder = {
+    "returnCodeReceipt",
+    "timestampBankParameter",
+    "any"
+})
+public class TransferReceiptResponseType {
+
+    @XmlElement(name = "ReturnCodeReceipt", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String returnCodeReceipt;
+    @XmlElement(name = "TimestampBankParameter")
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar timestampBankParameter;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the returnCodeReceipt property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReturnCodeReceipt() {
+        return returnCodeReceipt;
+    }
+
+    /**
+     * Sets the value of the returnCodeReceipt property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReturnCodeReceipt(String value) {
+        this.returnCodeReceipt = value;
+    }
+
+    /**
+     * Gets the value of the timestampBankParameter property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getTimestampBankParameter() {
+        return timestampBankParameter;
+    }
+
+    /**
+     * Sets the value of the timestampBankParameter property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setTimestampBankParameter(XMLGregorianCalendar value) {
+        this.timestampBankParameter = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferType.java
new file mode 100644
index 0000000..656cece
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransferType.java
@@ -0,0 +1,68 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TransferType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="TransferType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token";>
+ *     &lt;enumeration value="Upload"/>
+ *     &lt;enumeration value="Download"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+@XmlType(name = "TransferType")
+@XmlEnum
+public enum TransferType {
+
+
+    /**
+     * Auftragsdaten werden bei der Anfrage transferiert.
+     * 
+     */
+    @XmlEnumValue("Upload")
+    UPLOAD("Upload"),
+
+    /**
+     * Auftragsdaten werden bei der Antwort transferiert.
+     * 
+     */
+    @XmlEnumValue("Download")
+    DOWNLOAD("Download");
+    private final String value;
+
+    TransferType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static TransferType fromValue(String v) {
+        for (TransferType c: TransferType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransformType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransformType.java
new file mode 100644
index 0000000..1b63f07
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransformType.java
@@ -0,0 +1,116 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for TransformType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="TransformType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">
+ *         &lt;any processContents='lax' namespace='##other'/>
+ *         &lt;element name="XPath" 
type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       &lt;/choice>
+ *       &lt;attribute name="Algorithm" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anyURI"; />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransformType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "content"
+})
+public class TransformType {
+
+    @XmlElementRef(name = "XPath", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false)
+    @XmlMixed
+    @XmlAnyElement(lax = true)
+    protected List<Object> content;
+    @XmlAttribute(name = "Algorithm", required = true)
+    @XmlSchemaType(name = "anyURI")
+    protected String algorithm;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link Element }
+     * {@link Object }
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * 
+     * 
+     */
+    public List<Object> getContent() {
+        if (content == null) {
+            content = new ArrayList<Object>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the algorithm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAlgorithm() {
+        return algorithm;
+    }
+
+    /**
+     * Sets the value of the algorithm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAlgorithm(String value) {
+        this.algorithm = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransformsType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransformsType.java
new file mode 100644
index 0000000..9ee7bf7
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/TransformsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TransformsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="TransformsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Transform"; 
maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransformsType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "transform"
+})
+public class TransformsType {
+
+    @XmlElement(name = "Transform", required = true)
+    protected List<TransformType> transform;
+
+    /**
+     * Gets the value of the transform property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the transform 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getTransform().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link TransformType }
+     * 
+     * 
+     */
+    public List<TransformType> getTransform() {
+        if (transform == null) {
+            transform = new ArrayList<TransformType>();
+        }
+        return this.transform;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserInfoType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserInfoType.java
new file mode 100644
index 0000000..da98061
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserInfoType.java
@@ -0,0 +1,258 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.NormalizedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für VEU-Teilnehmerinformationen (HKD, HTD).
+ * 
+ * <p>Java class for UserInfoType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="UserInfoType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="UserID">
+ *           &lt;complexType>
+ *             &lt;simpleContent>
+ *               &lt;extension base="&lt;urn:org:ebics:H004>UserIDType">
+ *                 &lt;attribute name="Status" use="required" 
type="{urn:org:ebics:H004}UserStatusType" />
+ *               &lt;/extension>
+ *             &lt;/simpleContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *         &lt;element name="Name" type="{urn:org:ebics:H004}NameType" 
minOccurs="0"/>
+ *         &lt;element name="Permission" 
type="{urn:org:ebics:H004}UserPermissionType" maxOccurs="unbounded"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UserInfoType", propOrder = {
+    "userID",
+    "name",
+    "permission",
+    "any"
+})
+public class UserInfoType {
+
+    @XmlElement(name = "UserID", required = true)
+    protected UserInfoType.UserID userID;
+    @XmlElement(name = "Name")
+    @XmlJavaTypeAdapter(NormalizedStringAdapter.class)
+    @XmlSchemaType(name = "normalizedString")
+    protected String name;
+    @XmlElement(name = "Permission", required = true)
+    protected List<UserPermissionType> permission;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the userID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link UserInfoType.UserID }
+     *     
+     */
+    public UserInfoType.UserID getUserID() {
+        return userID;
+    }
+
+    /**
+     * Sets the value of the userID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link UserInfoType.UserID }
+     *     
+     */
+    public void setUserID(UserInfoType.UserID value) {
+        this.userID = value;
+    }
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the permission property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permission 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermission().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link UserPermissionType }
+     * 
+     * 
+     */
+    public List<UserPermissionType> getPermission() {
+        if (permission == null) {
+            permission = new ArrayList<UserPermissionType>();
+        }
+        return this.permission;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension base="&lt;urn:org:ebics:H004>UserIDType">
+     *       &lt;attribute name="Status" use="required" 
type="{urn:org:ebics:H004}UserStatusType" />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class UserID {
+
+        @XmlValue
+        @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+        protected String value;
+        @XmlAttribute(name = "Status", required = true)
+        protected int status;
+
+        /**
+         * Datentyp für eine Teilnehmer-ID.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the status property.
+         * 
+         */
+        public int getStatus() {
+            return status;
+        }
+
+        /**
+         * Sets the value of the status property.
+         * 
+         */
+        public void setStatus(int value) {
+            this.status = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserPermissionType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserPermissionType.java
new file mode 100644
index 0000000..bb12d26
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserPermissionType.java
@@ -0,0 +1,258 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlList;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.namespace.QName;
+import org.w3c.dom.Element;
+
+
+/**
+ * Datentyp für VEU-Berechtigungsinformationen des Teilnehmers (HKD, HTD).
+ * 
+ * <p>Java class for UserPermissionType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="UserPermissionType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="OrderTypes" 
type="{urn:org:ebics:H004}OrderTListType"/>
+ *         &lt;element name="FileFormat" 
type="{urn:org:ebics:H004}FileFormatType" minOccurs="0"/>
+ *         &lt;element name="AccountID" 
type="{urn:org:ebics:H004}AccountIDType" minOccurs="0"/>
+ *         &lt;element name="MaxAmount" type="{urn:org:ebics:H004}AmountType" 
minOccurs="0"/>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute name="AuthorisationLevel" 
type="{urn:org:ebics:H004}AuthorisationLevelType" />
+ *       &lt;anyAttribute namespace='urn:org:ebics:H004'/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UserPermissionType", propOrder = {
+    "orderTypes",
+    "fileFormat",
+    "accountID",
+    "maxAmount",
+    "any"
+})
+public class UserPermissionType {
+
+    @XmlList
+    @XmlElement(name = "OrderTypes", required = true)
+    protected List<String> orderTypes;
+    @XmlElement(name = "FileFormat")
+    protected FileFormatType fileFormat;
+    @XmlElement(name = "AccountID")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String accountID;
+    @XmlElement(name = "MaxAmount")
+    protected AmountType maxAmount;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+    @XmlAttribute(name = "AuthorisationLevel")
+    protected AuthorisationLevelType authorisationLevel;
+    @XmlAnyAttribute
+    private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+    /**
+     * Gets the value of the orderTypes property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the orderTypes 
property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderTypes().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getOrderTypes() {
+        if (orderTypes == null) {
+            orderTypes = new ArrayList<String>();
+        }
+        return this.orderTypes;
+    }
+
+    /**
+     * Gets the value of the fileFormat property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public FileFormatType getFileFormat() {
+        return fileFormat;
+    }
+
+    /**
+     * Sets the value of the fileFormat property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link FileFormatType }
+     *     
+     */
+    public void setFileFormat(FileFormatType value) {
+        this.fileFormat = value;
+    }
+
+    /**
+     * Gets the value of the accountID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAccountID() {
+        return accountID;
+    }
+
+    /**
+     * Sets the value of the accountID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAccountID(String value) {
+        this.accountID = value;
+    }
+
+    /**
+     * Gets the value of the maxAmount property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AmountType }
+     *     
+     */
+    public AmountType getMaxAmount() {
+        return maxAmount;
+    }
+
+    /**
+     * Sets the value of the maxAmount property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AmountType }
+     *     
+     */
+    public void setMaxAmount(AmountType value) {
+        this.maxAmount = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+    /**
+     * Gets the value of the authorisationLevel property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link AuthorisationLevelType }
+     *     
+     */
+    public AuthorisationLevelType getAuthorisationLevel() {
+        return authorisationLevel;
+    }
+
+    /**
+     * Sets the value of the authorisationLevel property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link AuthorisationLevelType }
+     *     
+     */
+    public void setAuthorisationLevel(AuthorisationLevelType value) {
+        this.authorisationLevel = value;
+    }
+
+    /**
+     * Gets a map that contains attributes that aren't bound to any typed 
property on this class.
+     * 
+     * <p>
+     * the map is keyed by the name of the attribute and 
+     * the value is the string value of the attribute.
+     * 
+     * the map returned by this method is live, and you can add new attribute
+     * by updating the map directly. Because of this design, there's no setter.
+     * 
+     * 
+     * @return
+     *     always non-null
+     */
+    public Map<QName, String> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserSignatureDataSigBookType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserSignatureDataSigBookType.java
new file mode 100644
index 0000000..8b5ef79
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/UserSignatureDataSigBookType.java
@@ -0,0 +1,211 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import org.w3c.dom.Element;
+
+
+/**
+ * Data type for digital signature data transferred using EBICS.
+ * 
+ * <p>Java class for UserSignatureDataSigBookType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="UserSignatureDataSigBookType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;choice maxOccurs="unbounded">
+ *           &lt;element name="OrderSignature">
+ *             &lt;complexType>
+ *               &lt;simpleContent>
+ *                 &lt;extension 
base="&lt;http://www.ebics.org/S001>OrderSignatureType">
+ *                   &lt;attribute name="PartnerID" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anySimpleType"; />
+ *                 &lt;/extension>
+ *               &lt;/simpleContent>
+ *             &lt;/complexType>
+ *           &lt;/element>
+ *           &lt;element name="OrderSignatureData" 
type="{http://www.ebics.org/S001}OrderSignatureDataType"/>
+ *         &lt;/choice>
+ *         &lt;any processContents='lax' namespace='##other' 
maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UserSignatureDataSigBookType", namespace = 
"http://www.ebics.org/S001";, propOrder = {
+    "orderSignatureOrOrderSignatureData",
+    "any"
+})
+public class UserSignatureDataSigBookType {
+
+    @XmlElements({
+        @XmlElement(name = "OrderSignature", type = 
UserSignatureDataSigBookType.OrderSignature.class),
+        @XmlElement(name = "OrderSignatureData", type = 
OrderSignatureDataType.class)
+    })
+    protected List<Object> orderSignatureOrOrderSignatureData;
+    @XmlAnyElement(lax = true)
+    protected List<Object> any;
+
+    /**
+     * Gets the value of the orderSignatureOrOrderSignatureData property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
orderSignatureOrOrderSignatureData property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getOrderSignatureOrOrderSignatureData().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link UserSignatureDataSigBookType.OrderSignature }
+     * {@link OrderSignatureDataType }
+     * 
+     * 
+     */
+    public List<Object> getOrderSignatureOrOrderSignatureData() {
+        if (orderSignatureOrOrderSignatureData == null) {
+            orderSignatureOrOrderSignatureData = new ArrayList<Object>();
+        }
+        return this.orderSignatureOrOrderSignatureData;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the any property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getAny().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Element }
+     * {@link Object }
+     * 
+     * 
+     */
+    public List<Object> getAny() {
+        if (any == null) {
+            any = new ArrayList<Object>();
+        }
+        return this.any;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content 
contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;simpleContent>
+     *     &lt;extension 
base="&lt;http://www.ebics.org/S001>OrderSignatureType">
+     *       &lt;attribute name="PartnerID" use="required" 
type="{http://www.w3.org/2001/XMLSchema}anySimpleType"; />
+     *     &lt;/extension>
+     *   &lt;/simpleContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "value"
+    })
+    public static class OrderSignature {
+
+        @XmlValue
+        protected byte[] value;
+        @XmlAttribute(name = "PartnerID", required = true)
+        @XmlSchemaType(name = "anySimpleType")
+        protected String partnerID;
+
+        /**
+         * Datentyp für kryptographische Unterschriften.
+         * 
+         * @return
+         *     possible object is
+         *     byte[]
+         */
+        public byte[] getValue() {
+            return value;
+        }
+
+        /**
+         * Sets the value of the value property.
+         * 
+         * @param value
+         *     allowed object is
+         *     byte[]
+         */
+        public void setValue(byte[] value) {
+            this.value = value;
+        }
+
+        /**
+         * Gets the value of the partnerID property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getPartnerID() {
+            return partnerID;
+        }
+
+        /**
+         * Sets the value of the partnerID property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setPartnerID(String value) {
+            this.partnerID = value;
+        }
+
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/X509DataType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/X509DataType.java
new file mode 100644
index 0000000..8c7ab0a
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/X509DataType.java
@@ -0,0 +1,100 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for X509DataType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="X509DataType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence maxOccurs="unbounded">
+ *         &lt;choice>
+ *           &lt;element name="X509IssuerSerial" 
type="{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType"/>
+ *           &lt;element name="X509SKI" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *           &lt;element name="X509SubjectName" 
type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *           &lt;element name="X509Certificate" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *           &lt;element name="X509CRL" 
type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *           &lt;any processContents='lax' namespace='##other'/>
+ *         &lt;/choice>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "X509DataType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "x509IssuerSerialOrX509SKIOrX509SubjectName"
+})
+public class X509DataType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "X509IssuerSerial", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "X509CRL", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "X509SKI", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "X509Certificate", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false),
+        @XmlElementRef(name = "X509SubjectName", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, type = JAXBElement.class, required = 
false)
+    })
+    @XmlAnyElement(lax = true)
+    protected List<Object> x509IssuerSerialOrX509SKIOrX509SubjectName;
+
+    /**
+     * Gets the value of the x509IssuerSerialOrX509SKIOrX509SubjectName 
property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the 
x509IssuerSerialOrX509SKIOrX509SubjectName property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getX509IssuerSerialOrX509SKIOrX509SubjectName().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link X509IssuerSerialType }{@code >}
+     * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+     * {@link Object }
+     * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+     * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link Element }
+     * 
+     * 
+     */
+    public List<Object> getX509IssuerSerialOrX509SKIOrX509SubjectName() {
+        if (x509IssuerSerialOrX509SKIOrX509SubjectName == null) {
+            x509IssuerSerialOrX509SKIOrX509SubjectName = new 
ArrayList<Object>();
+        }
+        return this.x509IssuerSerialOrX509SKIOrX509SubjectName;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/X509IssuerSerialType.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/X509IssuerSerialType.java
new file mode 100644
index 0000000..867dd8b
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/X509IssuerSerialType.java
@@ -0,0 +1,98 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+
+package tech.libeufin.messages.ebics.keyresponse;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for X509IssuerSerialType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained 
within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="X509IssuerSerialType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType";>
+ *       &lt;sequence>
+ *         &lt;element name="X509IssuerName" 
type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="X509SerialNumber" 
type="{http://www.w3.org/2001/XMLSchema}integer"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "X509IssuerSerialType", namespace = 
"http://www.w3.org/2000/09/xmldsig#";, propOrder = {
+    "x509IssuerName",
+    "x509SerialNumber"
+})
+public class X509IssuerSerialType {
+
+    @XmlElement(name = "X509IssuerName", required = true)
+    protected String x509IssuerName;
+    @XmlElement(name = "X509SerialNumber", required = true)
+    protected BigInteger x509SerialNumber;
+
+    /**
+     * Gets the value of the x509IssuerName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getX509IssuerName() {
+        return x509IssuerName;
+    }
+
+    /**
+     * Sets the value of the x509IssuerName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setX509IssuerName(String value) {
+        this.x509IssuerName = value;
+    }
+
+    /**
+     * Gets the value of the x509SerialNumber property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getX509SerialNumber() {
+        return x509SerialNumber;
+    }
+
+    /**
+     * Sets the value of the x509SerialNumber property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setX509SerialNumber(BigInteger value) {
+        this.x509SerialNumber = value;
+    }
+
+}
diff --git 
a/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/package-info.java
 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/package-info.java
new file mode 100644
index 0000000..b83c617
--- /dev/null
+++ 
b/sandbox/src/main/java/tech/libeufin/messages/ebics/keyresponse/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) 
Reference Implementation, v2.2.8-b130911.1802 
+// See <a href="http://java.sun.com/xml/jaxb";>http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the 
source schema. 
+// Generated on: 2019.10.18 at 06:44:54 PM CEST 
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "urn:org:ebics:H004", 
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package tech.libeufin.messages.ebics.keyresponse;
diff --git a/sandbox/src/main/kotlin/HEVResponse.kt 
b/sandbox/src/main/kotlin/HEVResponse.kt
index a4207ac..bce4f4e 100644
--- a/sandbox/src/main/kotlin/HEVResponse.kt
+++ b/sandbox/src/main/kotlin/HEVResponse.kt
@@ -2,7 +2,6 @@ package tech.libeufin.sandbox
 
 import tech.libeufin.messages.ebics.hev.HEVResponseDataType
 import tech.libeufin.messages.ebics.hev.ObjectFactory
-import tech.libeufin.messages.ebics.hev.SystemReturnCodeType
 import javax.xml.bind.JAXBElement
 
 /**
@@ -18,29 +17,23 @@ class HEVResponse(
         reportText: String
     ) : this(returnCode, reportText, null)
 
-    private val value: HEVResponseDataType = {
-        val srt = SystemReturnCodeType()
-        srt.setReturnCode(returnCode);
-        srt.setReportText(reportText);
-        val value = HEVResponseDataType();
-        value.setSystemReturnCode(srt);
+    private val value = {
+        val of = ObjectFactory()
+        val tmp = of.createHEVResponseDataType()
+        tmp.systemReturnCode = of.createSystemReturnCodeType()
+        tmp.systemReturnCode.reportText = reportText
+        tmp.systemReturnCode.returnCode = returnCode
 
         protocolAndVersion?.forEach {
-            val entry = HEVResponseDataType.VersionNumber()
-            entry.setProtocolVersion(it.protocol)
-            entry.setValue(it.version)
-            value.getVersionNumber().add(entry)
+            val entry = of.createHEVResponseDataTypeVersionNumber()
+            entry.protocolVersion = it.protocol
+            entry.value = it.version
+            tmp.versionNumber.add(entry)
         }
-
-        value
+        of.createEbicsHEVResponse(tmp)
     }()
-
-    fun getValue(): HEVResponseDataType {
+    
+    fun get(): JAXBElement<HEVResponseDataType> {
         return value
     }
-
-    fun makeHEVResponse(): JAXBElement<HEVResponseDataType> {
-        val of = ObjectFactory()
-        return of.createEbicsHEVResponse(value)
-    }
 }
diff --git a/sandbox/src/main/kotlin/INIResponse.kt 
b/sandbox/src/main/kotlin/INIResponse.kt
deleted file mode 100644
index 90394a5..0000000
--- a/sandbox/src/main/kotlin/INIResponse.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package tech.libeufin.sandbox
-
-class INIResponse(
-    version: String,
-    returnCode: String,
-    orderId: String,
-    reportText: String
-) {
-
-    // TODO!!
-
-}
\ No newline at end of file
diff --git a/sandbox/src/main/kotlin/KeyManagementResponse.kt 
b/sandbox/src/main/kotlin/KeyManagementResponse.kt
new file mode 100644
index 0000000..b963592
--- /dev/null
+++ b/sandbox/src/main/kotlin/KeyManagementResponse.kt
@@ -0,0 +1,42 @@
+package tech.libeufin.sandbox
+
+import tech.libeufin.messages.ebics.keyresponse.EbicsKeyManagementResponse
+import tech.libeufin.messages.ebics.keyresponse.ObjectFactory
+import javax.xml.bind.JAXBElement
+import javax.xml.namespace.QName
+
+class KeyManagementResponse(
+    version: String,
+    revision: Int,
+    returnCode: String,
+    orderId: String,
+    reportText: String
+) {
+
+    private val value = {
+        val of = ObjectFactory()
+        val tmp = of.createEbicsKeyManagementResponse()
+        tmp.version = version
+        tmp.revision = revision
+        tmp.header = of.createEbicsKeyManagementResponseHeader()
+        tmp.header.mutable = of.createKeyMgmntResponseMutableHeaderType()
+        tmp.header.mutable.orderID = orderId
+        tmp.header.mutable.reportText = reportText
+        tmp.body = of.createEbicsKeyManagementResponseBody()
+        tmp.body.returnCode = 
of.createEbicsKeyManagementResponseBodyReturnCode()
+        tmp.body.returnCode.value = returnCode
+        tmp.body.returnCode.isAuthenticate = true
+        tmp
+    }()
+
+    fun get(): JAXBElement<EbicsKeyManagementResponse> {
+        return JAXBElement(
+            QName(
+                "urn:org:ebics:H004",
+                "EbicsKeyManagementResponse"
+            ),
+            EbicsKeyManagementResponse::class.java,
+            value
+        )
+    }
+}
\ No newline at end of file
diff --git a/sandbox/src/main/kotlin/Main.kt b/sandbox/src/main/kotlin/Main.kt
index 7e916c5..1c5de3f 100644
--- a/sandbox/src/main/kotlin/Main.kt
+++ b/sandbox/src/main/kotlin/Main.kt
@@ -36,16 +36,15 @@ import io.ktor.routing.post
 import io.ktor.routing.routing
 import io.ktor.server.engine.embeddedServer
 import io.ktor.server.netty.Netty
-import io.ktor.util.decodeBase64
 import org.jetbrains.exposed.dao.EntityID
 import org.jetbrains.exposed.sql.transactions.transaction
 import org.slf4j.LoggerFactory
 import org.w3c.dom.Document
 import org.w3c.dom.Element
-import tech.libeufin.messages.ebics.hev.HEVResponseDataType
 import tech.libeufin.messages.ebics.keyrequest.EbicsUnsecuredRequest
 import tech.libeufin.messages.ebics.keyrequest.SignaturePubKeyOrderDataType
 import tech.libeufin.messages.ebics.keyrequest.UnsecuredReqOrderDetailsType
+import tech.libeufin.messages.ebics.keyresponse.EbicsKeyManagementResponse
 import java.math.BigInteger
 import java.nio.charset.StandardCharsets.US_ASCII
 import java.text.DateFormat
@@ -60,6 +59,9 @@ import java.security.interfaces.RSAPublicKey
 import java.security.spec.RSAPublicKeySpec
 import java.util.zip.Inflater
 import java.util.zip.InflaterInputStream
+import javax.xml.bind.JAXB
+
+
 
 
 val logger = LoggerFactory.getLogger("tech.libeufin.sandbox")
@@ -305,8 +307,6 @@ private suspend fun ApplicationCall.ebicsweb() {
 
                     inflater.close()
 
-                    println("That is the key element: 
${result.toString(US_ASCII)}")
-
                     val keyObject = xmlProcess.convertStringToJaxb(
                         SignaturePubKeyOrderDataType::class.java,
                         result.toString(US_ASCII)
@@ -347,17 +347,32 @@ private suspend fun ApplicationCall.ebicsweb() {
                         return
                     }
 
-                    ebicsSubscriber.signatureKey = EbicsPublicKey.new {
-                        modulus = 
keyObject.value.signaturePubKeyInfo.pubKeyValue.rsaKeyValue.modulus
-                        exponent = 
keyObject.value.signaturePubKeyInfo.pubKeyValue.rsaKeyValue.exponent
+                    // put try-catch block here? (FIXME)
+                    transaction {
+                        ebicsSubscriber.signatureKey = EbicsPublicKey.new {
+                            modulus = 
keyObject.value.signaturePubKeyInfo.pubKeyValue.rsaKeyValue.modulus
+                            exponent = 
keyObject.value.signaturePubKeyInfo.pubKeyValue.rsaKeyValue.exponent
+                            state = KeyStates.NEW
+                        }
                     }
 
                     logger.debug("Signature key inserted in database.")
 
                     // return INI response!
+                    val response = KeyManagementResponse(
+                        "H004",
+                        1,
+                        "000000",
+                        "MOCK-ID",
+                        "[EBICS_OK] OK")
+
+                    respondText(
+                        contentType = ContentType.Application.Xml,
+                        status = HttpStatusCode.OK) {
+                            
xmlProcess.getStringFromJaxb(response.get()).toString()
+                    }
 
-
-
+                    return
                 }
             }
 
@@ -378,8 +393,7 @@ private suspend fun ApplicationCall.ebicsweb() {
                 )
             )
 
-            val jaxbHEV: JAXBElement<HEVResponseDataType> = 
hevResponse.makeHEVResponse()
-            val responseText: String? = xmlProcess.getStringFromJaxb(jaxbHEV)
+            val responseText: String? = 
xmlProcess.getStringFromJaxb(hevResponse.get())
 
             respondText(
                 contentType = ContentType.Application.Xml,
diff --git a/sandbox/src/test/kotlin/DbTest.kt 
b/sandbox/src/test/kotlin/DbTest.kt
index 2fcb98f..46d5683 100644
--- a/sandbox/src/test/kotlin/DbTest.kt
+++ b/sandbox/src/test/kotlin/DbTest.kt
@@ -9,6 +9,8 @@ import org.junit.BeforeClass
 import junit.framework.TestCase.assertTrue
 import org.junit.Test
 import org.junit.Before
+import tech.libeufin.sandbox.createSubscriber
+import tech.libeufin.sandbox.dbCreateTables
 
 class DbTest {
 
@@ -29,7 +31,8 @@ class DbTest {
             val subscriber = createSubscriber()
 
             val key = EbicsPublicKey.new {
-                pub = "BINARYVALUE".toByteArray()
+                modulus = "BINARYVALUE".toByteArray()
+                exponent = "BINARYVALUE".toByteArray()
                 state = KeyStates.NEW
             }
             subscriber.authorizationKey = key
diff --git a/sandbox/src/test/kotlin/JaxbTest.kt 
b/sandbox/src/test/kotlin/JaxbTest.kt
index e34d550..8072b90 100644
--- a/sandbox/src/test/kotlin/JaxbTest.kt
+++ b/sandbox/src/test/kotlin/JaxbTest.kt
@@ -1,17 +1,13 @@
 package tech.libeufin.sandbox
 
 import junit.framework.TestCase.assertEquals
-import junit.framework.TestCase.assertTrue
 import org.junit.Test
-import org.w3c.dom.Element
-import tech.libeufin.messages.ebics.hev.HEVResponseDataType
 import tech.libeufin.messages.ebics.keyrequest.EbicsUnsecuredRequest
 import tech.libeufin.messages.ebics.keyrequest.SignaturePubKeyOrderDataType
-import javax.xml.bind.JAXBElement
 
 class JaxbTest {
 
-    val processor = tech.libeufin.sandbox.XML()
+    val processor = XML()
     val classLoader = ClassLoader.getSystemClassLoader()
     val hevResponseJaxb = HEVResponse(
         "000000",
@@ -20,7 +16,7 @@ class JaxbTest {
             ProtocolAndVersion("H003", "02.40"),
             ProtocolAndVersion("H004", "02.50")
         )
-    ).makeHEVResponse()
+    )
 
 
     /**
@@ -67,8 +63,7 @@ class JaxbTest {
      */
     @Test
     fun jaxbToString() {
-
-        processor.getStringFromJaxb(hevResponseJaxb)
+        processor.getStringFromJaxb(hevResponseJaxb.get())
     }
 
     /**
@@ -76,7 +71,7 @@ class JaxbTest {
      */
     @Test
     fun jaxbToDom() {
-        processor.convertJaxbToDom(hevResponseJaxb)
+        processor.convertJaxbToDom(hevResponseJaxb.get())
     }
 
 
@@ -92,6 +87,4 @@ class JaxbTest {
             EbicsUnsecuredRequest::class.java,
             iniDom!!)
     }
-
-
 }
\ No newline at end of file
diff --git a/sandbox/src/test/kotlin/MarshalNonJaxbTest.kt 
b/sandbox/src/test/kotlin/MarshalNonJaxbTest.kt
new file mode 100644
index 0000000..887d2fb
--- /dev/null
+++ b/sandbox/src/test/kotlin/MarshalNonJaxbTest.kt
@@ -0,0 +1,40 @@
+package tech.libeufin.sandbox
+
+import org.junit.Test
+import tech.libeufin.messages.ebics.keyresponse.EbicsKeyManagementResponse
+import tech.libeufin.messages.ebics.keyresponse.ObjectFactory
+import java.io.StringWriter
+import javax.xml.bind.JAXBContext
+import javax.xml.bind.Marshaller
+
+class MarshalNonJaxbTest {
+
+    @Test
+    fun marshalNonJaxbNative() {
+
+        val jc = 
JAXBContext.newInstance(EbicsKeyManagementResponse::class.java)
+        val proc = jc.createMarshaller()
+        val sw = StringWriter()
+        val obj = ObjectFactory().createEbicsKeyManagementResponse()
+
+        proc.marshal(obj, sw)
+        proc.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true)
+
+        println(sw.toString())
+    }
+
+    @Test
+    fun marshalArtificialJaxb() {
+
+        val obj = KeyManagementResponse(
+            "H004",
+            1,
+            "000000",
+            "fake",
+            "EBICS_NON_OK"
+        )
+
+        val proc = XML()
+        println(proc.getStringFromJaxb(obj.get()))
+    }
+}
\ No newline at end of file
diff --git a/sandbox/src/test/resources/ebics_ini_request_sample.xml 
b/sandbox/src/test/resources/ebics_ini_request_sample.xml
index d269151..20e6c66 100644
--- a/sandbox/src/test/resources/ebics_ini_request_sample.xml
+++ b/sandbox/src/test/resources/ebics_ini_request_sample.xml
@@ -2,7 +2,7 @@
 <ebicsUnsecuredRequest Revision="1" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:org:ebics:H004 ebics_keymgmt_request_H004.xsd" 
Version="H004" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns="urn:org:ebics:H004">
   <header authenticate="true">
     <static>
-      <HostID>foo</HostID>
+      <HostID>LIBEUFIN-SANDBOX</HostID>
       <PartnerID>flokid</PartnerID>
       <UserID>flouid</UserID>
       <!--

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]