DX STF Client API

<back to all web services

GetInvoiceById

Invoice Requests

Invoice

Requires Authentication
The following routes are available for this service:
GET/api/invoice/{Id}Get specific invoice by Invoice Id
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
import com.google.gson.annotations.*;
import com.google.gson.reflect.*;

public class dtos
{

    /**
    * Invoice
    */
    @Api(Description="Invoice")
    @ApiResponse(Description="Invoice data", IsDefaultResponse=true, StatusCode=200)
    // @ApiResponse(Description="No Content", ResponseType=IReturnVoid.class, StatusCode=204)
    // @ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType=ArgumentOutOfRangeException.class, StatusCode=400)
    public static class GetInvoiceById implements IGetDocumentById
    {
        @ApiMember(ExcludeInSchema=true, ParameterType="path")
        public UUID id = null;
        
        public UUID getId() { return id; }
        public GetInvoiceById setId(UUID value) { this.id = value; return this; }
    }

    public static class InvoiceMessage
    {
        public Header header = null;
        public InvoiceClass invoice = null;
        
        public Header getHeader() { return header; }
        public InvoiceMessage setHeader(Header value) { this.header = value; return this; }
        public InvoiceClass getInvoice() { return invoice; }
        public InvoiceMessage setInvoice(InvoiceClass value) { this.invoice = value; return this; }
    }

    @DataContract
    public static class Header
    {
        @DataMember(Name="documentIdentification")
        @SerializedName("documentIdentification")
        public DocumentIdentification documentIdentification = null;

        @DataMember(Name="sender")
        @SerializedName("sender")
        public Partner sender = null;

        @DataMember(Name="receiver")
        @SerializedName("receiver")
        public Partner receiver = null;
        
        public DocumentIdentification getDocumentIdentification() { return documentIdentification; }
        public Header setDocumentIdentification(DocumentIdentification value) { this.documentIdentification = value; return this; }
        public Partner getSender() { return sender; }
        public Header setSender(Partner value) { this.sender = value; return this; }
        public Partner getReceiver() { return receiver; }
        public Header setReceiver(Partner value) { this.receiver = value; return this; }
    }

    @DataContract
    public static class DocumentIdentification
    {
        @DataMember(Name="identifier")
        @SerializedName("identifier")
        public String identifier = null;

        @DataMember(Name="type")
        @SerializedName("type")
        public String type = null;

        @DataMember(Name="creationDateAndTime")
        @SerializedName("creationDateAndTime")
        public Date creationDateAndTime = null;
        
        public String getIdentifier() { return identifier; }
        public DocumentIdentification setIdentifier(String value) { this.identifier = value; return this; }
        public String getType() { return type; }
        public DocumentIdentification setType(String value) { this.type = value; return this; }
        public Date getCreationDateAndTime() { return creationDateAndTime; }
        public DocumentIdentification setCreationDateAndTime(Date value) { this.creationDateAndTime = value; return this; }
    }

    @DataContract
    public static class Partner
    {
        @DataMember(Name="identifier")
        @SerializedName("identifier")
        public Identifier identifier = null;

        @DataMember(Name="contactInformation")
        @SerializedName("contactInformation")
        public ArrayList<ContactInformation> contactInformation = new ArrayList<ContactInformation>();
        
        public Identifier getIdentifier() { return identifier; }
        public Partner setIdentifier(Identifier value) { this.identifier = value; return this; }
        public ArrayList<ContactInformation> getContactInformation() { return contactInformation; }
        public Partner setContactInformation(ArrayList<ContactInformation> value) { this.contactInformation = value; return this; }
    }

    @DataContract
    public static class Identifier
    {
        @DataMember(Name="authority")
        @SerializedName("authority")
        public String authority = null;

        @DataMember(Name="text")
        @SerializedName("text")
        public String text = null;
        
        public String getAuthority() { return authority; }
        public Identifier setAuthority(String value) { this.authority = value; return this; }
        public String getText() { return text; }
        public Identifier setText(String value) { this.text = value; return this; }
    }

    @DataContract
    public static class ContactInformation
    {
        
    }

    public static class InvoiceClass extends BaseDocument
    {
        public String countryOfSupplyOfGoods = null;
        public TransactionalParty buyer = null;
        public TransactionalParty seller = null;
        public TransactionalParty payee = null;
        public TransactionalParty payer = null;
        public TransactionalParty shipFrom = null;
        public TransactionalParty shipTo = null;
        public TransactionalParty ultimateConsignee = null;
        public String supplierAccountReceivable = null;
        public String invoiceIdentification = null;
        public Invoice invoice = null;
        public DocumentReference salesOrder = null;
        public DocumentReference purchaseOrder = null;
        public DocumentReference deliveryNote = null;
        public DocumentReference tradeAgreement = null;
        public ShipmentTransportationInformation shipmentTransportationInformation = null;
        public String paymentTerms = null;
        public ArrayList<InvoiceLineItem> invoiceLineItem = new ArrayList<InvoiceLineItem>();
        public InvoiceTotals invoiceTotals = null;
        
        public String getCountryOfSupplyOfGoods() { return countryOfSupplyOfGoods; }
        public InvoiceClass setCountryOfSupplyOfGoods(String value) { this.countryOfSupplyOfGoods = value; return this; }
        public TransactionalParty getBuyer() { return buyer; }
        public InvoiceClass setBuyer(TransactionalParty value) { this.buyer = value; return this; }
        public TransactionalParty getSeller() { return seller; }
        public InvoiceClass setSeller(TransactionalParty value) { this.seller = value; return this; }
        public TransactionalParty getPayee() { return payee; }
        public InvoiceClass setPayee(TransactionalParty value) { this.payee = value; return this; }
        public TransactionalParty getPayer() { return payer; }
        public InvoiceClass setPayer(TransactionalParty value) { this.payer = value; return this; }
        public TransactionalParty getShipFrom() { return shipFrom; }
        public InvoiceClass setShipFrom(TransactionalParty value) { this.shipFrom = value; return this; }
        public TransactionalParty getShipTo() { return shipTo; }
        public InvoiceClass setShipTo(TransactionalParty value) { this.shipTo = value; return this; }
        public TransactionalParty getUltimateConsignee() { return ultimateConsignee; }
        public InvoiceClass setUltimateConsignee(TransactionalParty value) { this.ultimateConsignee = value; return this; }
        public String getSupplierAccountReceivable() { return supplierAccountReceivable; }
        public InvoiceClass setSupplierAccountReceivable(String value) { this.supplierAccountReceivable = value; return this; }
        public String getInvoiceIdentification() { return invoiceIdentification; }
        public InvoiceClass setInvoiceIdentification(String value) { this.invoiceIdentification = value; return this; }
        public Invoice getInvoice() { return invoice; }
        public InvoiceClass setInvoice(Invoice value) { this.invoice = value; return this; }
        public DocumentReference getSalesOrder() { return salesOrder; }
        public InvoiceClass setSalesOrder(DocumentReference value) { this.salesOrder = value; return this; }
        public DocumentReference getPurchaseOrder() { return purchaseOrder; }
        public InvoiceClass setPurchaseOrder(DocumentReference value) { this.purchaseOrder = value; return this; }
        public DocumentReference getDeliveryNote() { return deliveryNote; }
        public InvoiceClass setDeliveryNote(DocumentReference value) { this.deliveryNote = value; return this; }
        public DocumentReference getTradeAgreement() { return tradeAgreement; }
        public InvoiceClass setTradeAgreement(DocumentReference value) { this.tradeAgreement = value; return this; }
        public ShipmentTransportationInformation getShipmentTransportationInformation() { return shipmentTransportationInformation; }
        public InvoiceClass setShipmentTransportationInformation(ShipmentTransportationInformation value) { this.shipmentTransportationInformation = value; return this; }
        public String getPaymentTerms() { return paymentTerms; }
        public InvoiceClass setPaymentTerms(String value) { this.paymentTerms = value; return this; }
        public ArrayList<InvoiceLineItem> getInvoiceLineItem() { return invoiceLineItem; }
        public InvoiceClass setInvoiceLineItem(ArrayList<InvoiceLineItem> value) { this.invoiceLineItem = value; return this; }
        public InvoiceTotals getInvoiceTotals() { return invoiceTotals; }
        public InvoiceClass setInvoiceTotals(InvoiceTotals value) { this.invoiceTotals = value; return this; }
    }

    public static class BaseDocument
    {
        public String currencyCode = null;
        public Date creationDateTime = null;
        public DocumentAction documentActionCode = null;
        public DocumentStatus documentStatusCode = null;
        public String documentStructureVersion = null;
        public Date lastUpdateDateTime = null;
        public Long revisionNumber = null;
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        
        public String getCurrencyCode() { return currencyCode; }
        public BaseDocument setCurrencyCode(String value) { this.currencyCode = value; return this; }
        public Date getCreationDateTime() { return creationDateTime; }
        public BaseDocument setCreationDateTime(Date value) { this.creationDateTime = value; return this; }
        public DocumentAction getDocumentActionCode() { return documentActionCode; }
        public BaseDocument setDocumentActionCode(DocumentAction value) { this.documentActionCode = value; return this; }
        public DocumentStatus getDocumentStatusCode() { return documentStatusCode; }
        public BaseDocument setDocumentStatusCode(DocumentStatus value) { this.documentStatusCode = value; return this; }
        public String getDocumentStructureVersion() { return documentStructureVersion; }
        public BaseDocument setDocumentStructureVersion(String value) { this.documentStructureVersion = value; return this; }
        public Date getLastUpdateDateTime() { return lastUpdateDateTime; }
        public BaseDocument setLastUpdateDateTime(Date value) { this.lastUpdateDateTime = value; return this; }
        public Long getRevisionNumber() { return revisionNumber; }
        public BaseDocument setRevisionNumber(Long value) { this.revisionNumber = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public BaseDocument setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
    }

    public static enum DocumentAction
    {
        Add,
        ChangeByRefresh,
        Delete,
        Rejected;
    }

    public static enum DocumentStatus
    {
        AdditionalTransmission,
        Copy,
        Original;
    }

    public static class AvpList
    {
        public String code = null;
        public String value = null;
        
        public String getCode() { return code; }
        public AvpList setCode(String value) { this.code = value; return this; }
        public String getValue() { return value; }
        public AvpList setValue(String value) { this.value = value; return this; }
    }

    public static class TransactionalParty extends Ecom_PartyIdentificationType
    {
        public ArrayList<Contact> contact = new ArrayList<Contact>();
        public Address address = null;
        public ArrayList<AvpList> communicationChannel = new ArrayList<AvpList>();
        public FinancialInstitutionInformation financialInstitutionInformation = null;
        public String dutyFeeTaxRegistration = null;
        public String entityIdentification = null;
        
        public ArrayList<Contact> getContact() { return contact; }
        public TransactionalParty setContact(ArrayList<Contact> value) { this.contact = value; return this; }
        public Address getAddress() { return address; }
        public TransactionalParty setAddress(Address value) { this.address = value; return this; }
        public ArrayList<AvpList> getCommunicationChannel() { return communicationChannel; }
        public TransactionalParty setCommunicationChannel(ArrayList<AvpList> value) { this.communicationChannel = value; return this; }
        public FinancialInstitutionInformation getFinancialInstitutionInformation() { return financialInstitutionInformation; }
        public TransactionalParty setFinancialInstitutionInformation(FinancialInstitutionInformation value) { this.financialInstitutionInformation = value; return this; }
        public String getDutyFeeTaxRegistration() { return dutyFeeTaxRegistration; }
        public TransactionalParty setDutyFeeTaxRegistration(String value) { this.dutyFeeTaxRegistration = value; return this; }
        public String getEntityIdentification() { return entityIdentification; }
        public TransactionalParty setEntityIdentification(String value) { this.entityIdentification = value; return this; }
    }

    public static class Ecom_PartyIdentificationType
    {
        public String gln = null;
        public String name = null;
        public ArrayList<AvpList> additionalPartyIdentification = new ArrayList<AvpList>();
        
        public String getGln() { return gln; }
        public Ecom_PartyIdentificationType setGln(String value) { this.gln = value; return this; }
        public String getName() { return name; }
        public Ecom_PartyIdentificationType setName(String value) { this.name = value; return this; }
        public ArrayList<AvpList> getAdditionalPartyIdentification() { return additionalPartyIdentification; }
        public Ecom_PartyIdentificationType setAdditionalPartyIdentification(ArrayList<AvpList> value) { this.additionalPartyIdentification = value; return this; }
    }

    public static class Contact
    {
        public String contactTypeCode = null;
        public String personName = null;
        public String departmentName = null;
        public String jobTitle = null;
        public String responsibility = null;
        public ArrayList<CommunicationChannel> communicationChannel = new ArrayList<CommunicationChannel>();
        
        public String getContactTypeCode() { return contactTypeCode; }
        public Contact setContactTypeCode(String value) { this.contactTypeCode = value; return this; }
        public String getPersonName() { return personName; }
        public Contact setPersonName(String value) { this.personName = value; return this; }
        public String getDepartmentName() { return departmentName; }
        public Contact setDepartmentName(String value) { this.departmentName = value; return this; }
        public String getJobTitle() { return jobTitle; }
        public Contact setJobTitle(String value) { this.jobTitle = value; return this; }
        public String getResponsibility() { return responsibility; }
        public Contact setResponsibility(String value) { this.responsibility = value; return this; }
        public ArrayList<CommunicationChannel> getCommunicationChannel() { return communicationChannel; }
        public Contact setCommunicationChannel(ArrayList<CommunicationChannel> value) { this.communicationChannel = value; return this; }
    }

    public static class CommunicationChannel
    {
        public String communicationChannelCode = null;
        public String communicationChannelName = null;
        public String communicationValue = null;
        
        public String getCommunicationChannelCode() { return communicationChannelCode; }
        public CommunicationChannel setCommunicationChannelCode(String value) { this.communicationChannelCode = value; return this; }
        public String getCommunicationChannelName() { return communicationChannelName; }
        public CommunicationChannel setCommunicationChannelName(String value) { this.communicationChannelName = value; return this; }
        public String getCommunicationValue() { return communicationValue; }
        public CommunicationChannel setCommunicationValue(String value) { this.communicationValue = value; return this; }
    }

    public static class Address
    {
        public String streetAddressOne = null;
        public String streetAddressTwo = null;
        public String streetAddressThree = null;
        public String city = null;
        public String postalCode = null;
        public String provinceCode = null;
        public String countryCode = null;
        
        public String getStreetAddressOne() { return streetAddressOne; }
        public Address setStreetAddressOne(String value) { this.streetAddressOne = value; return this; }
        public String getStreetAddressTwo() { return streetAddressTwo; }
        public Address setStreetAddressTwo(String value) { this.streetAddressTwo = value; return this; }
        public String getStreetAddressThree() { return streetAddressThree; }
        public Address setStreetAddressThree(String value) { this.streetAddressThree = value; return this; }
        public String getCity() { return city; }
        public Address setCity(String value) { this.city = value; return this; }
        public String getPostalCode() { return postalCode; }
        public Address setPostalCode(String value) { this.postalCode = value; return this; }
        public String getProvinceCode() { return provinceCode; }
        public Address setProvinceCode(String value) { this.provinceCode = value; return this; }
        public String getCountryCode() { return countryCode; }
        public Address setCountryCode(String value) { this.countryCode = value; return this; }
    }

    public static class FinancialInstitutionInformation
    {
        public String financialInstitutionBranchName = null;
        public String financialInstitutionName = null;
        public FinancialRoutingNumber financialRoutingNumber = null;
        public FinancialAccount financialAccount = null;
        public String swiftCode = null;
        public String exportersCode = null;
        
        public String getFinancialInstitutionBranchName() { return financialInstitutionBranchName; }
        public FinancialInstitutionInformation setFinancialInstitutionBranchName(String value) { this.financialInstitutionBranchName = value; return this; }
        public String getFinancialInstitutionName() { return financialInstitutionName; }
        public FinancialInstitutionInformation setFinancialInstitutionName(String value) { this.financialInstitutionName = value; return this; }
        public FinancialRoutingNumber getFinancialRoutingNumber() { return financialRoutingNumber; }
        public FinancialInstitutionInformation setFinancialRoutingNumber(FinancialRoutingNumber value) { this.financialRoutingNumber = value; return this; }
        public FinancialAccount getFinancialAccount() { return financialAccount; }
        public FinancialInstitutionInformation setFinancialAccount(FinancialAccount value) { this.financialAccount = value; return this; }
        public String getSwiftCode() { return swiftCode; }
        public FinancialInstitutionInformation setSwiftCode(String value) { this.swiftCode = value; return this; }
        public String getExportersCode() { return exportersCode; }
        public FinancialInstitutionInformation setExportersCode(String value) { this.exportersCode = value; return this; }
    }

    public static class FinancialRoutingNumber
    {
        public String number = null;
        public String numberTypeCode = null;
        
        public String getNumber() { return number; }
        public FinancialRoutingNumber setNumber(String value) { this.number = value; return this; }
        public String getNumberTypeCode() { return numberTypeCode; }
        public FinancialRoutingNumber setNumberTypeCode(String value) { this.numberTypeCode = value; return this; }
    }

    public static class FinancialAccount
    {
        public String number = null;
        public String numberTypeCode = null;
        public String name = null;
        
        public String getNumber() { return number; }
        public FinancialAccount setNumber(String value) { this.number = value; return this; }
        public String getNumberTypeCode() { return numberTypeCode; }
        public FinancialAccount setNumberTypeCode(String value) { this.numberTypeCode = value; return this; }
        public String getName() { return name; }
        public FinancialAccount setName(String value) { this.name = value; return this; }
    }

    public static class Invoice
    {
        public Date creationDate = null;
        public Long revisionNumber = null;
        public String entityIdentification = null;
        
        public Date getCreationDate() { return creationDate; }
        public Invoice setCreationDate(Date value) { this.creationDate = value; return this; }
        public Long getRevisionNumber() { return revisionNumber; }
        public Invoice setRevisionNumber(Long value) { this.revisionNumber = value; return this; }
        public String getEntityIdentification() { return entityIdentification; }
        public Invoice setEntityIdentification(String value) { this.entityIdentification = value; return this; }
    }

    public static class DocumentReference
    {
        public Date creationDateTime = null;
        public Long revisionNumber = null;
        public Long lineItemNumber = null;
        public String entityIdentification = null;
        
        public Date getCreationDateTime() { return creationDateTime; }
        public DocumentReference setCreationDateTime(Date value) { this.creationDateTime = value; return this; }
        public Long getRevisionNumber() { return revisionNumber; }
        public DocumentReference setRevisionNumber(Long value) { this.revisionNumber = value; return this; }
        public Long getLineItemNumber() { return lineItemNumber; }
        public DocumentReference setLineItemNumber(Long value) { this.lineItemNumber = value; return this; }
        public String getEntityIdentification() { return entityIdentification; }
        public DocumentReference setEntityIdentification(String value) { this.entityIdentification = value; return this; }
    }

    public static class ShipmentTransportationInformation
    {
        public TransactionalParty carrier = null;
        public TransactionalParty freightForwarder = null;
        
        public TransactionalParty getCarrier() { return carrier; }
        public ShipmentTransportationInformation setCarrier(TransactionalParty value) { this.carrier = value; return this; }
        public TransactionalParty getFreightForwarder() { return freightForwarder; }
        public ShipmentTransportationInformation setFreightForwarder(TransactionalParty value) { this.freightForwarder = value; return this; }
    }

    public static class InvoiceLineItem
    {
        public Long lineNumber = null;
        public String parentLineItemNumber = null;
        public Quantity invoicedQuantity = null;
        public TransactionalTradeItem transactionalTradeItem = null;
        public BigDecimal itemPriceBaseQuantity = null;
        public BigDecimal retailPriceExcludingExcise = null;
        public BigDecimal recommendedRetailPrice = null;
        public TaxInformation taxInformation = null;
        public BigDecimal amountExclusiveAllowancesCharges = null;
        public BigDecimal amountInclusiveAllowancesCharges = null;
        public BigDecimal itemPriceExclusiveAllowancesCharges = null;
        public BigDecimal itemPriceInclusiveAllowancesCharges = null;
        public String tradeAgreement = null;
        public String deliveryNote = null;
        public DocumentReference promotionalDeal = null;
        public ArrayList<InvoiceAllowanceCharge> invoiceAllowanceCharge = new ArrayList<InvoiceAllowanceCharge>();
        public Extension extendedProperties = null;
        
        public Long getLineNumber() { return lineNumber; }
        public InvoiceLineItem setLineNumber(Long value) { this.lineNumber = value; return this; }
        public String getParentLineItemNumber() { return parentLineItemNumber; }
        public InvoiceLineItem setParentLineItemNumber(String value) { this.parentLineItemNumber = value; return this; }
        public Quantity getInvoicedQuantity() { return invoicedQuantity; }
        public InvoiceLineItem setInvoicedQuantity(Quantity value) { this.invoicedQuantity = value; return this; }
        public TransactionalTradeItem getTransactionalTradeItem() { return transactionalTradeItem; }
        public InvoiceLineItem setTransactionalTradeItem(TransactionalTradeItem value) { this.transactionalTradeItem = value; return this; }
        public BigDecimal getItemPriceBaseQuantity() { return itemPriceBaseQuantity; }
        public InvoiceLineItem setItemPriceBaseQuantity(BigDecimal value) { this.itemPriceBaseQuantity = value; return this; }
        public BigDecimal getRetailPriceExcludingExcise() { return retailPriceExcludingExcise; }
        public InvoiceLineItem setRetailPriceExcludingExcise(BigDecimal value) { this.retailPriceExcludingExcise = value; return this; }
        public BigDecimal getRecommendedRetailPrice() { return recommendedRetailPrice; }
        public InvoiceLineItem setRecommendedRetailPrice(BigDecimal value) { this.recommendedRetailPrice = value; return this; }
        public TaxInformation getTaxInformation() { return taxInformation; }
        public InvoiceLineItem setTaxInformation(TaxInformation value) { this.taxInformation = value; return this; }
        public BigDecimal getAmountExclusiveAllowancesCharges() { return amountExclusiveAllowancesCharges; }
        public InvoiceLineItem setAmountExclusiveAllowancesCharges(BigDecimal value) { this.amountExclusiveAllowancesCharges = value; return this; }
        public BigDecimal getAmountInclusiveAllowancesCharges() { return amountInclusiveAllowancesCharges; }
        public InvoiceLineItem setAmountInclusiveAllowancesCharges(BigDecimal value) { this.amountInclusiveAllowancesCharges = value; return this; }
        public BigDecimal getItemPriceExclusiveAllowancesCharges() { return itemPriceExclusiveAllowancesCharges; }
        public InvoiceLineItem setItemPriceExclusiveAllowancesCharges(BigDecimal value) { this.itemPriceExclusiveAllowancesCharges = value; return this; }
        public BigDecimal getItemPriceInclusiveAllowancesCharges() { return itemPriceInclusiveAllowancesCharges; }
        public InvoiceLineItem setItemPriceInclusiveAllowancesCharges(BigDecimal value) { this.itemPriceInclusiveAllowancesCharges = value; return this; }
        public String getTradeAgreement() { return tradeAgreement; }
        public InvoiceLineItem setTradeAgreement(String value) { this.tradeAgreement = value; return this; }
        public String getDeliveryNote() { return deliveryNote; }
        public InvoiceLineItem setDeliveryNote(String value) { this.deliveryNote = value; return this; }
        public DocumentReference getPromotionalDeal() { return promotionalDeal; }
        public InvoiceLineItem setPromotionalDeal(DocumentReference value) { this.promotionalDeal = value; return this; }
        public ArrayList<InvoiceAllowanceCharge> getInvoiceAllowanceCharge() { return invoiceAllowanceCharge; }
        public InvoiceLineItem setInvoiceAllowanceCharge(ArrayList<InvoiceAllowanceCharge> value) { this.invoiceAllowanceCharge = value; return this; }
        public Extension getExtendedProperties() { return extendedProperties; }
        public InvoiceLineItem setExtendedProperties(Extension value) { this.extendedProperties = value; return this; }
    }

    public static class Quantity
    {
        public BigDecimal value = null;
        public String measurementUnitCode = null;
        public String codeListVersion = null;
        
        public BigDecimal getValue() { return value; }
        public Quantity setValue(BigDecimal value) { this.value = value; return this; }
        public String getMeasurementUnitCode() { return measurementUnitCode; }
        public Quantity setMeasurementUnitCode(String value) { this.measurementUnitCode = value; return this; }
        public String getCodeListVersion() { return codeListVersion; }
        public Quantity setCodeListVersion(String value) { this.codeListVersion = value; return this; }
    }

    public static class TransactionalTradeItem
    {
        public String gtin = null;
        public ArrayList<AvpList> additionalTradeItemIdentification = new ArrayList<AvpList>();
        public BigDecimal tradeItemQuantity = null;
        public String tradeItemDescription = null;
        public String productVariantIdentifier = null;
        public String itemTypeCode = null;
        public String tradeItemDataOwner = null;
        public String butterFatReference = null;
        public ArrayList<TransactionalItemData> transactionalItemData = new ArrayList<TransactionalItemData>();
        public ArrayList<Colour> colour = new ArrayList<Colour>();
        public Size size = null;
        public TradeItemClassification tradeItemClassification = null;
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        
        public String getGtin() { return gtin; }
        public TransactionalTradeItem setGtin(String value) { this.gtin = value; return this; }
        public ArrayList<AvpList> getAdditionalTradeItemIdentification() { return additionalTradeItemIdentification; }
        public TransactionalTradeItem setAdditionalTradeItemIdentification(ArrayList<AvpList> value) { this.additionalTradeItemIdentification = value; return this; }
        public BigDecimal getTradeItemQuantity() { return tradeItemQuantity; }
        public TransactionalTradeItem setTradeItemQuantity(BigDecimal value) { this.tradeItemQuantity = value; return this; }
        public String getTradeItemDescription() { return tradeItemDescription; }
        public TransactionalTradeItem setTradeItemDescription(String value) { this.tradeItemDescription = value; return this; }
        public String getProductVariantIdentifier() { return productVariantIdentifier; }
        public TransactionalTradeItem setProductVariantIdentifier(String value) { this.productVariantIdentifier = value; return this; }
        public String getItemTypeCode() { return itemTypeCode; }
        public TransactionalTradeItem setItemTypeCode(String value) { this.itemTypeCode = value; return this; }
        public String getTradeItemDataOwner() { return tradeItemDataOwner; }
        public TransactionalTradeItem setTradeItemDataOwner(String value) { this.tradeItemDataOwner = value; return this; }
        public String getButterFatReference() { return butterFatReference; }
        public TransactionalTradeItem setButterFatReference(String value) { this.butterFatReference = value; return this; }
        public ArrayList<TransactionalItemData> getTransactionalItemData() { return transactionalItemData; }
        public TransactionalTradeItem setTransactionalItemData(ArrayList<TransactionalItemData> value) { this.transactionalItemData = value; return this; }
        public ArrayList<Colour> getColour() { return colour; }
        public TransactionalTradeItem setColour(ArrayList<Colour> value) { this.colour = value; return this; }
        public Size getSize() { return size; }
        public TransactionalTradeItem setSize(Size value) { this.size = value; return this; }
        public TradeItemClassification getTradeItemClassification() { return tradeItemClassification; }
        public TransactionalTradeItem setTradeItemClassification(TradeItemClassification value) { this.tradeItemClassification = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public TransactionalTradeItem setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
    }

    public static class TransactionalItemData
    {
        public Date availableForSaleDate = null;
        public String batchNumber = null;
        public Date bestBeforeDate = null;
        public String countryOfOrigin = null;
        public Date itemExpirationDate = null;
        public String lotNumber = null;
        public Date packagingDate = null;
        public Date productionDate = null;
        public String productQualityIndication = null;
        public Date sellByDate = null;
        public ArrayList<String> serialNumber = new ArrayList<String>();
        public String shelfLife = null;
        public Long tradeItemQuantity = null;
        public Boolean itemInContactWithFoodProduct = null;
        public ArrayList<TransactionalItem> transactionalItemWeight = new ArrayList<TransactionalItem>();
        public ArrayList<TransactionalItem> transactionalItemVolume = new ArrayList<TransactionalItem>();
        public ArrayList<SerialNumberRange> serialNumberRange = new ArrayList<SerialNumberRange>();
        public ArrayList<TransactionalItemDimension> transactionalItemDimensions = new ArrayList<TransactionalItemDimension>();
        public TransactionalItemLogisticUnitInformation transactionalItemLogisticUnitInformation = null;
        public TransactionalItemDataCarrierAndIdentification transactionalItemDataCarrierAndIdentification = null;
        public ArrayList<TradeItemWaste> tradeItemWaste = new ArrayList<TradeItemWaste>();
        public TransactionalItemOrganicInformation transactionalItemOrganicInformation = null;
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        
        public Date getAvailableForSaleDate() { return availableForSaleDate; }
        public TransactionalItemData setAvailableForSaleDate(Date value) { this.availableForSaleDate = value; return this; }
        public String getBatchNumber() { return batchNumber; }
        public TransactionalItemData setBatchNumber(String value) { this.batchNumber = value; return this; }
        public Date getBestBeforeDate() { return bestBeforeDate; }
        public TransactionalItemData setBestBeforeDate(Date value) { this.bestBeforeDate = value; return this; }
        public String getCountryOfOrigin() { return countryOfOrigin; }
        public TransactionalItemData setCountryOfOrigin(String value) { this.countryOfOrigin = value; return this; }
        public Date getItemExpirationDate() { return itemExpirationDate; }
        public TransactionalItemData setItemExpirationDate(Date value) { this.itemExpirationDate = value; return this; }
        public String getLotNumber() { return lotNumber; }
        public TransactionalItemData setLotNumber(String value) { this.lotNumber = value; return this; }
        public Date getPackagingDate() { return packagingDate; }
        public TransactionalItemData setPackagingDate(Date value) { this.packagingDate = value; return this; }
        public Date getProductionDate() { return productionDate; }
        public TransactionalItemData setProductionDate(Date value) { this.productionDate = value; return this; }
        public String getProductQualityIndication() { return productQualityIndication; }
        public TransactionalItemData setProductQualityIndication(String value) { this.productQualityIndication = value; return this; }
        public Date getSellByDate() { return sellByDate; }
        public TransactionalItemData setSellByDate(Date value) { this.sellByDate = value; return this; }
        public ArrayList<String> getSerialNumber() { return serialNumber; }
        public TransactionalItemData setSerialNumber(ArrayList<String> value) { this.serialNumber = value; return this; }
        public String getShelfLife() { return shelfLife; }
        public TransactionalItemData setShelfLife(String value) { this.shelfLife = value; return this; }
        public Long getTradeItemQuantity() { return tradeItemQuantity; }
        public TransactionalItemData setTradeItemQuantity(Long value) { this.tradeItemQuantity = value; return this; }
        public Boolean isItemInContactWithFoodProduct() { return itemInContactWithFoodProduct; }
        public TransactionalItemData setItemInContactWithFoodProduct(Boolean value) { this.itemInContactWithFoodProduct = value; return this; }
        public ArrayList<TransactionalItem> getTransactionalItemWeight() { return transactionalItemWeight; }
        public TransactionalItemData setTransactionalItemWeight(ArrayList<TransactionalItem> value) { this.transactionalItemWeight = value; return this; }
        public ArrayList<TransactionalItem> getTransactionalItemVolume() { return transactionalItemVolume; }
        public TransactionalItemData setTransactionalItemVolume(ArrayList<TransactionalItem> value) { this.transactionalItemVolume = value; return this; }
        public ArrayList<SerialNumberRange> getSerialNumberRange() { return serialNumberRange; }
        public TransactionalItemData setSerialNumberRange(ArrayList<SerialNumberRange> value) { this.serialNumberRange = value; return this; }
        public ArrayList<TransactionalItemDimension> getTransactionalItemDimensions() { return transactionalItemDimensions; }
        public TransactionalItemData setTransactionalItemDimensions(ArrayList<TransactionalItemDimension> value) { this.transactionalItemDimensions = value; return this; }
        public TransactionalItemLogisticUnitInformation getTransactionalItemLogisticUnitInformation() { return transactionalItemLogisticUnitInformation; }
        public TransactionalItemData setTransactionalItemLogisticUnitInformation(TransactionalItemLogisticUnitInformation value) { this.transactionalItemLogisticUnitInformation = value; return this; }
        public TransactionalItemDataCarrierAndIdentification getTransactionalItemDataCarrierAndIdentification() { return transactionalItemDataCarrierAndIdentification; }
        public TransactionalItemData setTransactionalItemDataCarrierAndIdentification(TransactionalItemDataCarrierAndIdentification value) { this.transactionalItemDataCarrierAndIdentification = value; return this; }
        public ArrayList<TradeItemWaste> getTradeItemWaste() { return tradeItemWaste; }
        public TransactionalItemData setTradeItemWaste(ArrayList<TradeItemWaste> value) { this.tradeItemWaste = value; return this; }
        public TransactionalItemOrganicInformation getTransactionalItemOrganicInformation() { return transactionalItemOrganicInformation; }
        public TransactionalItemData setTransactionalItemOrganicInformation(TransactionalItemOrganicInformation value) { this.transactionalItemOrganicInformation = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public TransactionalItemData setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
    }

    public static class TransactionalItem
    {
        public String measurementUnitCode = null;
        public String measurementType = null;
        public String measurementValue = null;
        
        public String getMeasurementUnitCode() { return measurementUnitCode; }
        public TransactionalItem setMeasurementUnitCode(String value) { this.measurementUnitCode = value; return this; }
        public String getMeasurementType() { return measurementType; }
        public TransactionalItem setMeasurementType(String value) { this.measurementType = value; return this; }
        public String getMeasurementValue() { return measurementValue; }
        public TransactionalItem setMeasurementValue(String value) { this.measurementValue = value; return this; }
    }

    public static class SerialNumberRange
    {
        public String maximumValue = null;
        public String minimumValue = null;
        
        public String getMaximumValue() { return maximumValue; }
        public SerialNumberRange setMaximumValue(String value) { this.maximumValue = value; return this; }
        public String getMinimumValue() { return minimumValue; }
        public SerialNumberRange setMinimumValue(String value) { this.minimumValue = value; return this; }
    }

    public static class TransactionalItemDimension
    {
        public String measurementUnitCode = null;
        public String depth = null;
        public String height = null;
        public String width = null;
        
        public String getMeasurementUnitCode() { return measurementUnitCode; }
        public TransactionalItemDimension setMeasurementUnitCode(String value) { this.measurementUnitCode = value; return this; }
        public String getDepth() { return depth; }
        public TransactionalItemDimension setDepth(String value) { this.depth = value; return this; }
        public String getHeight() { return height; }
        public TransactionalItemDimension setHeight(String value) { this.height = value; return this; }
        public String getWidth() { return width; }
        public TransactionalItemDimension setWidth(String value) { this.width = value; return this; }
    }

    public static class TransactionalItemLogisticUnitInformation
    {
        public Long numberOfLayers = null;
        public Long numberOfUnitsPerLayer = null;
        public Long numberOfUnitsPerPallet = null;
        public String packagingTerms = null;
        public String packageTypeCode = null;
        public Long maximumStackingFactor = null;
        public String returnablePackageTransportCostPayment = null;
        public ArrayList<TransactionalItemDimension> dimensionsOfLogisticUnit = new ArrayList<TransactionalItemDimension>();
        
        public Long getNumberOfLayers() { return numberOfLayers; }
        public TransactionalItemLogisticUnitInformation setNumberOfLayers(Long value) { this.numberOfLayers = value; return this; }
        public Long getNumberOfUnitsPerLayer() { return numberOfUnitsPerLayer; }
        public TransactionalItemLogisticUnitInformation setNumberOfUnitsPerLayer(Long value) { this.numberOfUnitsPerLayer = value; return this; }
        public Long getNumberOfUnitsPerPallet() { return numberOfUnitsPerPallet; }
        public TransactionalItemLogisticUnitInformation setNumberOfUnitsPerPallet(Long value) { this.numberOfUnitsPerPallet = value; return this; }
        public String getPackagingTerms() { return packagingTerms; }
        public TransactionalItemLogisticUnitInformation setPackagingTerms(String value) { this.packagingTerms = value; return this; }
        public String getPackageTypeCode() { return packageTypeCode; }
        public TransactionalItemLogisticUnitInformation setPackageTypeCode(String value) { this.packageTypeCode = value; return this; }
        public Long getMaximumStackingFactor() { return maximumStackingFactor; }
        public TransactionalItemLogisticUnitInformation setMaximumStackingFactor(Long value) { this.maximumStackingFactor = value; return this; }
        public String getReturnablePackageTransportCostPayment() { return returnablePackageTransportCostPayment; }
        public TransactionalItemLogisticUnitInformation setReturnablePackageTransportCostPayment(String value) { this.returnablePackageTransportCostPayment = value; return this; }
        public ArrayList<TransactionalItemDimension> getDimensionsOfLogisticUnit() { return dimensionsOfLogisticUnit; }
        public TransactionalItemLogisticUnitInformation setDimensionsOfLogisticUnit(ArrayList<TransactionalItemDimension> value) { this.dimensionsOfLogisticUnit = value; return this; }
    }

    public static class TransactionalItemDataCarrierAndIdentification
    {
        public String gs1TransactionalItemIdentificationKey = null;
        public String dataCarrier = null;
        
        public String getGs1TransactionalItemIdentificationKey() { return gs1TransactionalItemIdentificationKey; }
        public TransactionalItemDataCarrierAndIdentification setGs1TransactionalItemIdentificationKey(String value) { this.gs1TransactionalItemIdentificationKey = value; return this; }
        public String getDataCarrier() { return dataCarrier; }
        public TransactionalItemDataCarrierAndIdentification setDataCarrier(String value) { this.dataCarrier = value; return this; }
    }

    public static class TradeItemWaste
    {
        public String wasteIdentification = null;
        public ArrayList<AvpList> typeOfWaste = new ArrayList<AvpList>();
        
        public String getWasteIdentification() { return wasteIdentification; }
        public TradeItemWaste setWasteIdentification(String value) { this.wasteIdentification = value; return this; }
        public ArrayList<AvpList> getTypeOfWaste() { return typeOfWaste; }
        public TradeItemWaste setTypeOfWaste(ArrayList<AvpList> value) { this.typeOfWaste = value; return this; }
    }

    public static class TransactionalItemOrganicInformation
    {
        public Boolean isTradeItemOrganic = null;
        public String organicCertification = null;
        
        public Boolean getIsTradeItemOrganic() { return isTradeItemOrganic; }
        public TransactionalItemOrganicInformation setIsTradeItemOrganic(Boolean value) { this.isTradeItemOrganic = value; return this; }
        public String getOrganicCertification() { return organicCertification; }
        public TransactionalItemOrganicInformation setOrganicCertification(String value) { this.organicCertification = value; return this; }
    }

    public static class Colour
    {
        public String colourCode = null;
        public String colourDescription = null;
        
        public String getColourCode() { return colourCode; }
        public Colour setColourCode(String value) { this.colourCode = value; return this; }
        public String getColourDescription() { return colourDescription; }
        public Colour setColourDescription(String value) { this.colourDescription = value; return this; }
    }

    public static class Size
    {
        public String descriptiveSize = null;
        public String sizeCode = null;
        
        public String getDescriptiveSize() { return descriptiveSize; }
        public Size setDescriptiveSize(String value) { this.descriptiveSize = value; return this; }
        public String getSizeCode() { return sizeCode; }
        public Size setSizeCode(String value) { this.sizeCode = value; return this; }
    }

    public static class TradeItemClassification
    {
        public String gpcCategoryCode = null;
        public ArrayList<AvpList> additionalTradeItemClassificationCode = new ArrayList<AvpList>();
        public String gpcCategoryName = null;
        public ArrayList<AvpList> gpcAttribute = new ArrayList<AvpList>();
        
        public String getGpcCategoryCode() { return gpcCategoryCode; }
        public TradeItemClassification setGpcCategoryCode(String value) { this.gpcCategoryCode = value; return this; }
        public ArrayList<AvpList> getAdditionalTradeItemClassificationCode() { return additionalTradeItemClassificationCode; }
        public TradeItemClassification setAdditionalTradeItemClassificationCode(ArrayList<AvpList> value) { this.additionalTradeItemClassificationCode = value; return this; }
        public String getGpcCategoryName() { return gpcCategoryName; }
        public TradeItemClassification setGpcCategoryName(String value) { this.gpcCategoryName = value; return this; }
        public ArrayList<AvpList> getGpcAttribute() { return gpcAttribute; }
        public TradeItemClassification setGpcAttribute(ArrayList<AvpList> value) { this.gpcAttribute = value; return this; }
    }

    public static class TaxInformation
    {
        public BigDecimal taxPercentage = null;
        public BigDecimal taxAmount = null;
        
        public BigDecimal getTaxPercentage() { return taxPercentage; }
        public TaxInformation setTaxPercentage(BigDecimal value) { this.taxPercentage = value; return this; }
        public BigDecimal getTaxAmount() { return taxAmount; }
        public TaxInformation setTaxAmount(BigDecimal value) { this.taxAmount = value; return this; }
    }

    public static class InvoiceAllowanceCharge
    {
        public AllowanceCharge allowanceCharge = null;
        public TaxInformation leviedDutyFeeTax = null;
        
        public AllowanceCharge getAllowanceCharge() { return allowanceCharge; }
        public InvoiceAllowanceCharge setAllowanceCharge(AllowanceCharge value) { this.allowanceCharge = value; return this; }
        public TaxInformation getLeviedDutyFeeTax() { return leviedDutyFeeTax; }
        public InvoiceAllowanceCharge setLeviedDutyFeeTax(TaxInformation value) { this.leviedDutyFeeTax = value; return this; }
    }

    public static class AllowanceCharge
    {
        public BigDecimal allowanceChargeAmount = null;
        public BigDecimal allowanceChargePercentage = null;
        public String allowanceChargeType = null;
        public String allowanceOrChargeType = null;
        public BigDecimal amountPerUnit = null;
        public BigDecimal baseAmount = null;
        public String baseNumberOfUnits = null;
        public String bracketIdentifier = null;
        public Date effectiveDateType = null;
        public String sequenceNumber = null;
        public String settlementType = null;
        public String specialServiceType = null;
        public String allowanceChargeDescription = null;
        
        public BigDecimal getAllowanceChargeAmount() { return allowanceChargeAmount; }
        public AllowanceCharge setAllowanceChargeAmount(BigDecimal value) { this.allowanceChargeAmount = value; return this; }
        public BigDecimal getAllowanceChargePercentage() { return allowanceChargePercentage; }
        public AllowanceCharge setAllowanceChargePercentage(BigDecimal value) { this.allowanceChargePercentage = value; return this; }
        public String getAllowanceChargeType() { return allowanceChargeType; }
        public AllowanceCharge setAllowanceChargeType(String value) { this.allowanceChargeType = value; return this; }
        public String getAllowanceOrChargeType() { return allowanceOrChargeType; }
        public AllowanceCharge setAllowanceOrChargeType(String value) { this.allowanceOrChargeType = value; return this; }
        public BigDecimal getAmountPerUnit() { return amountPerUnit; }
        public AllowanceCharge setAmountPerUnit(BigDecimal value) { this.amountPerUnit = value; return this; }
        public BigDecimal getBaseAmount() { return baseAmount; }
        public AllowanceCharge setBaseAmount(BigDecimal value) { this.baseAmount = value; return this; }
        public String getBaseNumberOfUnits() { return baseNumberOfUnits; }
        public AllowanceCharge setBaseNumberOfUnits(String value) { this.baseNumberOfUnits = value; return this; }
        public String getBracketIdentifier() { return bracketIdentifier; }
        public AllowanceCharge setBracketIdentifier(String value) { this.bracketIdentifier = value; return this; }
        public Date getEffectiveDateType() { return effectiveDateType; }
        public AllowanceCharge setEffectiveDateType(Date value) { this.effectiveDateType = value; return this; }
        public String getSequenceNumber() { return sequenceNumber; }
        public AllowanceCharge setSequenceNumber(String value) { this.sequenceNumber = value; return this; }
        public String getSettlementType() { return settlementType; }
        public AllowanceCharge setSettlementType(String value) { this.settlementType = value; return this; }
        public String getSpecialServiceType() { return specialServiceType; }
        public AllowanceCharge setSpecialServiceType(String value) { this.specialServiceType = value; return this; }
        public String getAllowanceChargeDescription() { return allowanceChargeDescription; }
        public AllowanceCharge setAllowanceChargeDescription(String value) { this.allowanceChargeDescription = value; return this; }
    }

    public static class Extension
    {
        
    }

    public static class InvoiceTotals
    {
        public BigDecimal baseAmount = null;
        public BigDecimal prepaidAmount = null;
        public Date prepaidAmountDate = null;
        public BigDecimal totalAmountInvoiceAllowancesCharges = null;
        public BigDecimal totalLineAmountInclusiveAllowancesCharges = null;
        public BigDecimal totalTaxAmount = null;
        public BigDecimal totalInvoiceAmount = null;
        public BigDecimal totalInvoiceAmountPayable = null;
        
        public BigDecimal getBaseAmount() { return baseAmount; }
        public InvoiceTotals setBaseAmount(BigDecimal value) { this.baseAmount = value; return this; }
        public BigDecimal getPrepaidAmount() { return prepaidAmount; }
        public InvoiceTotals setPrepaidAmount(BigDecimal value) { this.prepaidAmount = value; return this; }
        public Date getPrepaidAmountDate() { return prepaidAmountDate; }
        public InvoiceTotals setPrepaidAmountDate(Date value) { this.prepaidAmountDate = value; return this; }
        public BigDecimal getTotalAmountInvoiceAllowancesCharges() { return totalAmountInvoiceAllowancesCharges; }
        public InvoiceTotals setTotalAmountInvoiceAllowancesCharges(BigDecimal value) { this.totalAmountInvoiceAllowancesCharges = value; return this; }
        public BigDecimal getTotalLineAmountInclusiveAllowancesCharges() { return totalLineAmountInclusiveAllowancesCharges; }
        public InvoiceTotals setTotalLineAmountInclusiveAllowancesCharges(BigDecimal value) { this.totalLineAmountInclusiveAllowancesCharges = value; return this; }
        public BigDecimal getTotalTaxAmount() { return totalTaxAmount; }
        public InvoiceTotals setTotalTaxAmount(BigDecimal value) { this.totalTaxAmount = value; return this; }
        public BigDecimal getTotalInvoiceAmount() { return totalInvoiceAmount; }
        public InvoiceTotals setTotalInvoiceAmount(BigDecimal value) { this.totalInvoiceAmount = value; return this; }
        public BigDecimal getTotalInvoiceAmountPayable() { return totalInvoiceAmountPayable; }
        public InvoiceTotals setTotalInvoiceAmountPayable(BigDecimal value) { this.totalInvoiceAmountPayable = value; return this; }
    }

}

Java GetInvoiceById DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/invoice/{Id} HTTP/1.1 
Host: stf-api-uat.data-xchange.co.za 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<InvoiceMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DX.STF.Models.Dto.GS1">
  <Header>
    <documentIdentification>
      <creationDateAndTime>0001-01-01T00:00:00</creationDateAndTime>
      <identifier>String</identifier>
      <type>String</type>
    </documentIdentification>
    <receiver>
      <contactInformation>
        <ContactInformation />
      </contactInformation>
      <identifier>
        <authority>String</authority>
        <text>String</text>
      </identifier>
    </receiver>
    <sender>
      <contactInformation>
        <ContactInformation />
      </contactInformation>
      <identifier>
        <authority>String</authority>
        <text>String</text>
      </identifier>
    </sender>
  </Header>
  <Invoice>
    <AvpList>
      <AvpList>
        <Code>String</Code>
        <Value>String</Value>
      </AvpList>
    </AvpList>
    <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
    <CurrencyCode>String</CurrencyCode>
    <DocumentActionCode>ADD</DocumentActionCode>
    <DocumentStatusCode>ADDITIONAL_TRANSMISSION</DocumentStatusCode>
    <DocumentStructureVersion>String</DocumentStructureVersion>
    <LastUpdateDateTime>0001-01-01T00:00:00</LastUpdateDateTime>
    <RevisionNumber>0</RevisionNumber>
    <Buyer>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Buyer>
    <CountryOfSupplyOfGoods>String</CountryOfSupplyOfGoods>
    <DeliveryNote>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </DeliveryNote>
    <Invoice>
      <CreationDate>0001-01-01T00:00:00</CreationDate>
      <EntityIdentification>String</EntityIdentification>
      <RevisionNumber>0</RevisionNumber>
    </Invoice>
    <InvoiceIdentification>String</InvoiceIdentification>
    <InvoiceLineItem>
      <InvoiceLineItem>
        <AmountExclusiveAllowancesCharges>0</AmountExclusiveAllowancesCharges>
        <AmountInclusiveAllowancesCharges>0</AmountInclusiveAllowancesCharges>
        <DeliveryNote>String</DeliveryNote>
        <ExtendedProperties />
        <InvoiceAllowanceCharge>
          <InvoiceAllowanceCharge>
            <AllowanceCharge>
              <AllowanceChargeAmount>0</AllowanceChargeAmount>
              <AllowanceChargeDescription>String</AllowanceChargeDescription>
              <AllowanceChargePercentage>0</AllowanceChargePercentage>
              <AllowanceChargeType>String</AllowanceChargeType>
              <AllowanceOrChargeType>String</AllowanceOrChargeType>
              <AmountPerUnit>0</AmountPerUnit>
              <BaseAmount>0</BaseAmount>
              <BaseNumberOfUnits>String</BaseNumberOfUnits>
              <BracketIdentifier>String</BracketIdentifier>
              <EffectiveDateType>0001-01-01T00:00:00</EffectiveDateType>
              <SequenceNumber>String</SequenceNumber>
              <SettlementType>String</SettlementType>
              <SpecialServiceType>String</SpecialServiceType>
            </AllowanceCharge>
            <LeviedDutyFeeTax>
              <TaxAmount>0</TaxAmount>
              <TaxPercentage>0</TaxPercentage>
            </LeviedDutyFeeTax>
          </InvoiceAllowanceCharge>
        </InvoiceAllowanceCharge>
        <InvoicedQuantity>
          <CodeListVersion>String</CodeListVersion>
          <MeasurementUnitCode>String</MeasurementUnitCode>
          <Value>0</Value>
        </InvoicedQuantity>
        <ItemPriceBaseQuantity>0</ItemPriceBaseQuantity>
        <ItemPriceExclusiveAllowancesCharges>0</ItemPriceExclusiveAllowancesCharges>
        <ItemPriceInclusiveAllowancesCharges>0</ItemPriceInclusiveAllowancesCharges>
        <LineNumber>0</LineNumber>
        <ParentLineItemNumber>String</ParentLineItemNumber>
        <PromotionalDeal>
          <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
          <EntityIdentification>String</EntityIdentification>
          <LineItemNumber>0</LineItemNumber>
          <RevisionNumber>0</RevisionNumber>
        </PromotionalDeal>
        <RecommendedRetailPrice>0</RecommendedRetailPrice>
        <RetailPriceExcludingExcise>0</RetailPriceExcludingExcise>
        <TaxInformation>
          <TaxAmount>0</TaxAmount>
          <TaxPercentage>0</TaxPercentage>
        </TaxInformation>
        <TradeAgreement>String</TradeAgreement>
        <TransactionalTradeItem>
          <AdditionalTradeItemIdentification>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AdditionalTradeItemIdentification>
          <AvpList>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AvpList>
          <ButterFatReference>String</ButterFatReference>
          <Colour>
            <Colour>
              <ColourCode>String</ColourCode>
              <ColourDescription>String</ColourDescription>
            </Colour>
          </Colour>
          <Gtin>String</Gtin>
          <ItemTypeCode>String</ItemTypeCode>
          <ProductVariantIdentifier>String</ProductVariantIdentifier>
          <Size>
            <DescriptiveSize>String</DescriptiveSize>
            <SizeCode>String</SizeCode>
          </Size>
          <TradeItemClassification>
            <AdditionalTradeItemClassificationCode>
              <AvpList>
                <Code>String</Code>
                <Value>String</Value>
              </AvpList>
            </AdditionalTradeItemClassificationCode>
            <GpcAttribute>
              <AvpList>
                <Code>String</Code>
                <Value>String</Value>
              </AvpList>
            </GpcAttribute>
            <GpcCategoryCode>String</GpcCategoryCode>
            <GpcCategoryName>String</GpcCategoryName>
          </TradeItemClassification>
          <TradeItemDataOwner>String</TradeItemDataOwner>
          <TradeItemDescription>String</TradeItemDescription>
          <TradeItemQuantity>0</TradeItemQuantity>
          <TransactionalItemData>
            <TransactionalItemData>
              <AvailableForSaleDate>0001-01-01T00:00:00</AvailableForSaleDate>
              <AvpList>
                <AvpList>
                  <Code>String</Code>
                  <Value>String</Value>
                </AvpList>
              </AvpList>
              <BatchNumber>String</BatchNumber>
              <BestBeforeDate>0001-01-01T00:00:00</BestBeforeDate>
              <CountryOfOrigin>String</CountryOfOrigin>
              <ItemExpirationDate>0001-01-01T00:00:00</ItemExpirationDate>
              <ItemInContactWithFoodProduct>false</ItemInContactWithFoodProduct>
              <LotNumber>String</LotNumber>
              <PackagingDate>0001-01-01T00:00:00</PackagingDate>
              <ProductQualityIndication>String</ProductQualityIndication>
              <ProductionDate>0001-01-01T00:00:00</ProductionDate>
              <SellByDate>0001-01-01T00:00:00</SellByDate>
              <SerialNumber xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                <d8p1:string>String</d8p1:string>
              </SerialNumber>
              <SerialNumberRange>
                <SerialNumberRange>
                  <MaximumValue>String</MaximumValue>
                  <MinimumValue>String</MinimumValue>
                </SerialNumberRange>
              </SerialNumberRange>
              <ShelfLife>String</ShelfLife>
              <TradeItemQuantity>0</TradeItemQuantity>
              <TradeItemWaste>
                <TradeItemWaste>
                  <TypeOfWaste>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </TypeOfWaste>
                  <WasteIdentification>String</WasteIdentification>
                </TradeItemWaste>
              </TradeItemWaste>
              <TransactionalItemDataCarrierAndIdentification>
                <DataCarrier>String</DataCarrier>
                <Gs1TransactionalItemIdentificationKey>String</Gs1TransactionalItemIdentificationKey>
              </TransactionalItemDataCarrierAndIdentification>
              <TransactionalItemDimensions>
                <TransactionalItemDimension>
                  <Depth>String</Depth>
                  <Height>String</Height>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <Width>String</Width>
                </TransactionalItemDimension>
              </TransactionalItemDimensions>
              <TransactionalItemLogisticUnitInformation>
                <DimensionsOfLogisticUnit>
                  <TransactionalItemDimension>
                    <Depth>String</Depth>
                    <Height>String</Height>
                    <MeasurementUnitCode>String</MeasurementUnitCode>
                    <Width>String</Width>
                  </TransactionalItemDimension>
                </DimensionsOfLogisticUnit>
                <MaximumStackingFactor>0</MaximumStackingFactor>
                <NumberOfLayers>0</NumberOfLayers>
                <NumberOfUnitsPerLayer>0</NumberOfUnitsPerLayer>
                <NumberOfUnitsPerPallet>0</NumberOfUnitsPerPallet>
                <PackageTypeCode>String</PackageTypeCode>
                <PackagingTerms>String</PackagingTerms>
                <ReturnablePackageTransportCostPayment>String</ReturnablePackageTransportCostPayment>
              </TransactionalItemLogisticUnitInformation>
              <TransactionalItemOrganicInformation>
                <IsTradeItemOrganic>false</IsTradeItemOrganic>
                <OrganicCertification>String</OrganicCertification>
              </TransactionalItemOrganicInformation>
              <TransactionalItemVolume>
                <TransactionalItem>
                  <MeasurementType>String</MeasurementType>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <MeasurementValue>String</MeasurementValue>
                </TransactionalItem>
              </TransactionalItemVolume>
              <TransactionalItemWeight>
                <TransactionalItem>
                  <MeasurementType>String</MeasurementType>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <MeasurementValue>String</MeasurementValue>
                </TransactionalItem>
              </TransactionalItemWeight>
            </TransactionalItemData>
          </TransactionalItemData>
        </TransactionalTradeItem>
      </InvoiceLineItem>
    </InvoiceLineItem>
    <InvoiceTotals>
      <BaseAmount>0</BaseAmount>
      <PrepaidAmount>0</PrepaidAmount>
      <PrepaidAmountDate>0001-01-01T00:00:00</PrepaidAmountDate>
      <TotalAmountInvoiceAllowancesCharges>0</TotalAmountInvoiceAllowancesCharges>
      <TotalInvoiceAmount>0</TotalInvoiceAmount>
      <TotalInvoiceAmountPayable>0</TotalInvoiceAmountPayable>
      <TotalLineAmountInclusiveAllowancesCharges>0</TotalLineAmountInclusiveAllowancesCharges>
      <TotalTaxAmount>0</TotalTaxAmount>
    </InvoiceTotals>
    <Payee>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Payee>
    <Payer>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Payer>
    <PaymentTerms>String</PaymentTerms>
    <PurchaseOrder>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </PurchaseOrder>
    <SalesOrder>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </SalesOrder>
    <Seller>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Seller>
    <ShipFrom>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </ShipFrom>
    <ShipTo>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </ShipTo>
    <ShipmentTransportationInformation>
      <Carrier>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
        <Name>String</Name>
        <Address>
          <City>String</City>
          <CountryCode>String</CountryCode>
          <PostalCode>String</PostalCode>
          <ProvinceCode>String</ProvinceCode>
          <StreetAddressOne>String</StreetAddressOne>
          <StreetAddressThree>String</StreetAddressThree>
          <StreetAddressTwo>String</StreetAddressTwo>
        </Address>
        <CommunicationChannel>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </CommunicationChannel>
        <Contact>
          <Contact>
            <CommunicationChannel>
              <CommunicationChannel>
                <CommunicationChannelCode>String</CommunicationChannelCode>
                <CommunicationChannelName>String</CommunicationChannelName>
                <CommunicationValue>String</CommunicationValue>
              </CommunicationChannel>
            </CommunicationChannel>
            <ContactTypeCode>String</ContactTypeCode>
            <DepartmentName>String</DepartmentName>
            <JobTitle>String</JobTitle>
            <PersonName>String</PersonName>
            <Responsibility>String</Responsibility>
          </Contact>
        </Contact>
        <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
        <EntityIdentification>String</EntityIdentification>
        <FinancialInstitutionInformation>
          <ExportersCode>String</ExportersCode>
          <FinancialAccount>
            <Name>String</Name>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialAccount>
          <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
          <FinancialInstitutionName>String</FinancialInstitutionName>
          <FinancialRoutingNumber>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialRoutingNumber>
          <SwiftCode>String</SwiftCode>
        </FinancialInstitutionInformation>
      </Carrier>
      <FreightForwarder>
        <AdditionalPartyIdentification>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </AdditionalPartyIdentification>
        <Gln>String</Gln>
        <Name>String</Name>
        <Address>
          <City>String</City>
          <CountryCode>String</CountryCode>
          <PostalCode>String</PostalCode>
          <ProvinceCode>String</ProvinceCode>
          <StreetAddressOne>String</StreetAddressOne>
          <StreetAddressThree>String</StreetAddressThree>
          <StreetAddressTwo>String</StreetAddressTwo>
        </Address>
        <CommunicationChannel>
          <AvpList>
            <Code>String</Code>
            <Value>String</Value>
          </AvpList>
        </CommunicationChannel>
        <Contact>
          <Contact>
            <CommunicationChannel>
              <CommunicationChannel>
                <CommunicationChannelCode>String</CommunicationChannelCode>
                <CommunicationChannelName>String</CommunicationChannelName>
                <CommunicationValue>String</CommunicationValue>
              </CommunicationChannel>
            </CommunicationChannel>
            <ContactTypeCode>String</ContactTypeCode>
            <DepartmentName>String</DepartmentName>
            <JobTitle>String</JobTitle>
            <PersonName>String</PersonName>
            <Responsibility>String</Responsibility>
          </Contact>
        </Contact>
        <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
        <EntityIdentification>String</EntityIdentification>
        <FinancialInstitutionInformation>
          <ExportersCode>String</ExportersCode>
          <FinancialAccount>
            <Name>String</Name>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialAccount>
          <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
          <FinancialInstitutionName>String</FinancialInstitutionName>
          <FinancialRoutingNumber>
            <Number>String</Number>
            <NumberTypeCode>String</NumberTypeCode>
          </FinancialRoutingNumber>
          <SwiftCode>String</SwiftCode>
        </FinancialInstitutionInformation>
      </FreightForwarder>
    </ShipmentTransportationInformation>
    <SupplierAccountReceivable>String</SupplierAccountReceivable>
    <TradeAgreement>
      <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
      <EntityIdentification>String</EntityIdentification>
      <LineItemNumber>0</LineItemNumber>
      <RevisionNumber>0</RevisionNumber>
    </TradeAgreement>
    <UltimateConsignee>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </UltimateConsignee>
  </Invoice>
</InvoiceMessage>