DX STF Client API

<back to all web services

GetOrderById

Order Requests

Order

Requires Authentication
The following routes are available for this service:
GET/api/order/{Id}Get specific order by Order 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
{

    /**
    * Order
    */
    @Api(Description="Order")
    @ApiResponse(Description="Order 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 GetOrderById implements IGetDocumentById
    {
        /**
        * Order ID or Token
        */
        @ApiMember(Description="Order ID or Token", ExcludeInSchema=true, ParameterType="path")
        public UUID id = null;
        
        public UUID getId() { return id; }
        public GetOrderById setId(UUID value) { this.id = value; return this; }
    }

    public static class OrderMessage
    {
        public Header header = null;
        public Order order = null;
        
        public Header getHeader() { return header; }
        public OrderMessage setHeader(Header value) { this.header = value; return this; }
        public Order getOrder() { return order; }
        public OrderMessage setOrder(Order value) { this.order = 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 Order extends BaseDocument
    {
        public Date documentEffectiveDate = null;
        public String additionalOrderInstruction = null;
        public Boolean isApplicationReceiptAcknowledgementRequired = null;
        public Boolean isOrderFreeOfExciseTaxDuty = null;
        public String note = null;
        public String orderEntryType = null;
        public String orderInstructionCode = null;
        public String orderPriority = null;
        public String orderTypeCode = null;
        public BigDecimal totalMonetaryAmountExcludingTaxes = null;
        public BigDecimal totalMonetaryAmountIncludingTaxes = null;
        public BigDecimal totalTaxAmount = null;
        public String paymentTerms = null;
        public Ecom_EntityIdentification orderIdentification = null;
        public OrderLogisticalInformation orderLogisticalInformation = null;
        public ArrayList<AdministrativeUnit> administrativeUnit = new ArrayList<AdministrativeUnit>();
        public DeliveryTerms deliveryTerms = null;
        public ArrayList<AvpList> transactionalGenericReference = new ArrayList<AvpList>();
        public ArrayList<ReferencedOrder> referencedOrder = new ArrayList<ReferencedOrder>();
        public TransactionalParty billTo = null;
        public TransactionalParty buyer = null;
        public TransactionalParty pickupFrom = null;
        public TransactionalParty seller = null;
        public TransactionalParty ultimateConsignee = null;
        public DocumentReference contract = null;
        public DocumentReference quoteNumber = null;
        public DocumentReference promotionalDeal = null;
        public DocumentReference tradeAgreement = null;
        public Date deliveryDateAccordingToSchedule = null;
        public Date latestDeliveryDate = null;
        public ArrayList<AllowanceCharge> allowanceCharge = new ArrayList<AllowanceCharge>();
        public ArrayList<OrderLineItem> orderLineItem = new ArrayList<OrderLineItem>();
        
        public Date getDocumentEffectiveDate() { return documentEffectiveDate; }
        public Order setDocumentEffectiveDate(Date value) { this.documentEffectiveDate = value; return this; }
        public String getAdditionalOrderInstruction() { return additionalOrderInstruction; }
        public Order setAdditionalOrderInstruction(String value) { this.additionalOrderInstruction = value; return this; }
        public Boolean getIsApplicationReceiptAcknowledgementRequired() { return isApplicationReceiptAcknowledgementRequired; }
        public Order setIsApplicationReceiptAcknowledgementRequired(Boolean value) { this.isApplicationReceiptAcknowledgementRequired = value; return this; }
        public Boolean getIsOrderFreeOfExciseTaxDuty() { return isOrderFreeOfExciseTaxDuty; }
        public Order setIsOrderFreeOfExciseTaxDuty(Boolean value) { this.isOrderFreeOfExciseTaxDuty = value; return this; }
        public String getNote() { return note; }
        public Order setNote(String value) { this.note = value; return this; }
        public String getOrderEntryType() { return orderEntryType; }
        public Order setOrderEntryType(String value) { this.orderEntryType = value; return this; }
        public String getOrderInstructionCode() { return orderInstructionCode; }
        public Order setOrderInstructionCode(String value) { this.orderInstructionCode = value; return this; }
        public String getOrderPriority() { return orderPriority; }
        public Order setOrderPriority(String value) { this.orderPriority = value; return this; }
        public String getOrderTypeCode() { return orderTypeCode; }
        public Order setOrderTypeCode(String value) { this.orderTypeCode = value; return this; }
        public BigDecimal getTotalMonetaryAmountExcludingTaxes() { return totalMonetaryAmountExcludingTaxes; }
        public Order setTotalMonetaryAmountExcludingTaxes(BigDecimal value) { this.totalMonetaryAmountExcludingTaxes = value; return this; }
        public BigDecimal getTotalMonetaryAmountIncludingTaxes() { return totalMonetaryAmountIncludingTaxes; }
        public Order setTotalMonetaryAmountIncludingTaxes(BigDecimal value) { this.totalMonetaryAmountIncludingTaxes = value; return this; }
        public BigDecimal getTotalTaxAmount() { return totalTaxAmount; }
        public Order setTotalTaxAmount(BigDecimal value) { this.totalTaxAmount = value; return this; }
        public String getPaymentTerms() { return paymentTerms; }
        public Order setPaymentTerms(String value) { this.paymentTerms = value; return this; }
        public Ecom_EntityIdentification getOrderIdentification() { return orderIdentification; }
        public Order setOrderIdentification(Ecom_EntityIdentification value) { this.orderIdentification = value; return this; }
        public OrderLogisticalInformation getOrderLogisticalInformation() { return orderLogisticalInformation; }
        public Order setOrderLogisticalInformation(OrderLogisticalInformation value) { this.orderLogisticalInformation = value; return this; }
        public ArrayList<AdministrativeUnit> getAdministrativeUnit() { return administrativeUnit; }
        public Order setAdministrativeUnit(ArrayList<AdministrativeUnit> value) { this.administrativeUnit = value; return this; }
        public DeliveryTerms getDeliveryTerms() { return deliveryTerms; }
        public Order setDeliveryTerms(DeliveryTerms value) { this.deliveryTerms = value; return this; }
        public ArrayList<AvpList> getTransactionalGenericReference() { return transactionalGenericReference; }
        public Order setTransactionalGenericReference(ArrayList<AvpList> value) { this.transactionalGenericReference = value; return this; }
        public ArrayList<ReferencedOrder> getReferencedOrder() { return referencedOrder; }
        public Order setReferencedOrder(ArrayList<ReferencedOrder> value) { this.referencedOrder = value; return this; }
        public TransactionalParty getBillTo() { return billTo; }
        public Order setBillTo(TransactionalParty value) { this.billTo = value; return this; }
        public TransactionalParty getBuyer() { return buyer; }
        public Order setBuyer(TransactionalParty value) { this.buyer = value; return this; }
        public TransactionalParty getPickupFrom() { return pickupFrom; }
        public Order setPickupFrom(TransactionalParty value) { this.pickupFrom = value; return this; }
        public TransactionalParty getSeller() { return seller; }
        public Order setSeller(TransactionalParty value) { this.seller = value; return this; }
        public TransactionalParty getUltimateConsignee() { return ultimateConsignee; }
        public Order setUltimateConsignee(TransactionalParty value) { this.ultimateConsignee = value; return this; }
        public DocumentReference getContract() { return contract; }
        public Order setContract(DocumentReference value) { this.contract = value; return this; }
        public DocumentReference getQuoteNumber() { return quoteNumber; }
        public Order setQuoteNumber(DocumentReference value) { this.quoteNumber = value; return this; }
        public DocumentReference getPromotionalDeal() { return promotionalDeal; }
        public Order setPromotionalDeal(DocumentReference value) { this.promotionalDeal = value; return this; }
        public DocumentReference getTradeAgreement() { return tradeAgreement; }
        public Order setTradeAgreement(DocumentReference value) { this.tradeAgreement = value; return this; }
        public Date getDeliveryDateAccordingToSchedule() { return deliveryDateAccordingToSchedule; }
        public Order setDeliveryDateAccordingToSchedule(Date value) { this.deliveryDateAccordingToSchedule = value; return this; }
        public Date getLatestDeliveryDate() { return latestDeliveryDate; }
        public Order setLatestDeliveryDate(Date value) { this.latestDeliveryDate = value; return this; }
        public ArrayList<AllowanceCharge> getAllowanceCharge() { return allowanceCharge; }
        public Order setAllowanceCharge(ArrayList<AllowanceCharge> value) { this.allowanceCharge = value; return this; }
        public ArrayList<OrderLineItem> getOrderLineItem() { return orderLineItem; }
        public Order setOrderLineItem(ArrayList<OrderLineItem> value) { this.orderLineItem = 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 Ecom_EntityIdentification
    {
        public String entityIdentification = null;
        public Ecom_PartyIdentification contentOwner = null;
        
        public String getEntityIdentification() { return entityIdentification; }
        public Ecom_EntityIdentification setEntityIdentification(String value) { this.entityIdentification = value; return this; }
        public Ecom_PartyIdentification getContentOwner() { return contentOwner; }
        public Ecom_EntityIdentification setContentOwner(Ecom_PartyIdentification value) { this.contentOwner = value; return this; }
    }

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

    public static class OrderLogisticalInformation
    {
        public Code commodityTypeCode = null;
        public OrderLogisticalDateInformation orderLogisticalDateInformation = null;
        public TransactionalParty inventoryLocation = null;
        public TransactionalParty shipFrom = null;
        public TransactionalParty shipTo = null;
        public TransactionalParty ultimateConsignee = null;
        public ShipmentTransportationInformation shipmentTransportationInformation = null;
        
        public Code getCommodityTypeCode() { return commodityTypeCode; }
        public OrderLogisticalInformation setCommodityTypeCode(Code value) { this.commodityTypeCode = value; return this; }
        public OrderLogisticalDateInformation getOrderLogisticalDateInformation() { return orderLogisticalDateInformation; }
        public OrderLogisticalInformation setOrderLogisticalDateInformation(OrderLogisticalDateInformation value) { this.orderLogisticalDateInformation = value; return this; }
        public TransactionalParty getInventoryLocation() { return inventoryLocation; }
        public OrderLogisticalInformation setInventoryLocation(TransactionalParty value) { this.inventoryLocation = value; return this; }
        public TransactionalParty getShipFrom() { return shipFrom; }
        public OrderLogisticalInformation setShipFrom(TransactionalParty value) { this.shipFrom = value; return this; }
        public TransactionalParty getShipTo() { return shipTo; }
        public OrderLogisticalInformation setShipTo(TransactionalParty value) { this.shipTo = value; return this; }
        public TransactionalParty getUltimateConsignee() { return ultimateConsignee; }
        public OrderLogisticalInformation setUltimateConsignee(TransactionalParty value) { this.ultimateConsignee = value; return this; }
        public ShipmentTransportationInformation getShipmentTransportationInformation() { return shipmentTransportationInformation; }
        public OrderLogisticalInformation setShipmentTransportationInformation(ShipmentTransportationInformation value) { this.shipmentTransportationInformation = value; return this; }
    }

    public static class Code
    {
        public String value = null;
        public String codeDescription = null;
        public String codeListAgencyCodeListVersion = null;
        public String codeListAgencyName = null;
        public String codeListName = null;
        public String codeListUri = null;
        
        public String getValue() { return value; }
        public Code setValue(String value) { this.value = value; return this; }
        public String getCodeDescription() { return codeDescription; }
        public Code setCodeDescription(String value) { this.codeDescription = value; return this; }
        public String getCodeListAgencyCodeListVersion() { return codeListAgencyCodeListVersion; }
        public Code setCodeListAgencyCodeListVersion(String value) { this.codeListAgencyCodeListVersion = value; return this; }
        public String getCodeListAgencyName() { return codeListAgencyName; }
        public Code setCodeListAgencyName(String value) { this.codeListAgencyName = value; return this; }
        public String getCodeListName() { return codeListName; }
        public Code setCodeListName(String value) { this.codeListName = value; return this; }
        public String getCodeListUri() { return codeListUri; }
        public Code setCodeListUri(String value) { this.codeListUri = value; return this; }
    }

    public static class OrderLogisticalDateInformation
    {
        public DateRange dateRangeDeliveryDateRange = null;
        public DateRange dateRangeShipDateRange = null;
        public DateRange dateRangeDeliveryDateRangeAtUltimateConsignee = null;
        public Date requestedDeliveryDateTime = null;
        public String requestedShipDateTime = null;
        public Date requestedPickUpDateTime = null;
        public Date requestedDeliveryDateTimeAtUltimateConsignee = null;
        
        public DateRange getDateRangeDeliveryDateRange() { return dateRangeDeliveryDateRange; }
        public OrderLogisticalDateInformation setDateRangeDeliveryDateRange(DateRange value) { this.dateRangeDeliveryDateRange = value; return this; }
        public DateRange getDateRangeShipDateRange() { return dateRangeShipDateRange; }
        public OrderLogisticalDateInformation setDateRangeShipDateRange(DateRange value) { this.dateRangeShipDateRange = value; return this; }
        public DateRange getDateRangeDeliveryDateRangeAtUltimateConsignee() { return dateRangeDeliveryDateRangeAtUltimateConsignee; }
        public OrderLogisticalDateInformation setDateRangeDeliveryDateRangeAtUltimateConsignee(DateRange value) { this.dateRangeDeliveryDateRangeAtUltimateConsignee = value; return this; }
        public Date getRequestedDeliveryDateTime() { return requestedDeliveryDateTime; }
        public OrderLogisticalDateInformation setRequestedDeliveryDateTime(Date value) { this.requestedDeliveryDateTime = value; return this; }
        public String getRequestedShipDateTime() { return requestedShipDateTime; }
        public OrderLogisticalDateInformation setRequestedShipDateTime(String value) { this.requestedShipDateTime = value; return this; }
        public Date getRequestedPickUpDateTime() { return requestedPickUpDateTime; }
        public OrderLogisticalDateInformation setRequestedPickUpDateTime(Date value) { this.requestedPickUpDateTime = value; return this; }
        public Date getRequestedDeliveryDateTimeAtUltimateConsignee() { return requestedDeliveryDateTimeAtUltimateConsignee; }
        public OrderLogisticalDateInformation setRequestedDeliveryDateTimeAtUltimateConsignee(Date value) { this.requestedDeliveryDateTimeAtUltimateConsignee = value; return this; }
    }

    public static class DateRange
    {
        public Date beginDate = null;
        public Date beginTime = null;
        public Date endDate = null;
        public Date endTime = null;
        
        public Date getBeginDate() { return beginDate; }
        public DateRange setBeginDate(Date value) { this.beginDate = value; return this; }
        public Date getBeginTime() { return beginTime; }
        public DateRange setBeginTime(Date value) { this.beginTime = value; return this; }
        public Date getEndDate() { return endDate; }
        public DateRange setEndDate(Date value) { this.endDate = value; return this; }
        public Date getEndTime() { return endTime; }
        public DateRange setEndTime(Date value) { this.endTime = 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 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 AdministrativeUnit
    {
        public String typeCode = null;
        public String gln = null;
        public String internalIdentification = null;
        
        public String getTypeCode() { return typeCode; }
        public AdministrativeUnit setTypeCode(String value) { this.typeCode = value; return this; }
        public String getGln() { return gln; }
        public AdministrativeUnit setGln(String value) { this.gln = value; return this; }
        public String getInternalIdentification() { return internalIdentification; }
        public AdministrativeUnit setInternalIdentification(String value) { this.internalIdentification = value; return this; }
    }

    public static class DeliveryTerms
    {
        public String incotermsCode = null;
        public String alternateDeliveryTermsCode = null;
        public String deliveryInstructions = null;
        public String deliveryCostPayment = null;
        public String isSignatureRequired = null;
        public DeliveryTermsLocation deliveryTermsLocation = null;
        
        public String getIncotermsCode() { return incotermsCode; }
        public DeliveryTerms setIncotermsCode(String value) { this.incotermsCode = value; return this; }
        public String getAlternateDeliveryTermsCode() { return alternateDeliveryTermsCode; }
        public DeliveryTerms setAlternateDeliveryTermsCode(String value) { this.alternateDeliveryTermsCode = value; return this; }
        public String getDeliveryInstructions() { return deliveryInstructions; }
        public DeliveryTerms setDeliveryInstructions(String value) { this.deliveryInstructions = value; return this; }
        public String getDeliveryCostPayment() { return deliveryCostPayment; }
        public DeliveryTerms setDeliveryCostPayment(String value) { this.deliveryCostPayment = value; return this; }
        public String getIsSignatureRequired() { return isSignatureRequired; }
        public DeliveryTerms setIsSignatureRequired(String value) { this.isSignatureRequired = value; return this; }
        public DeliveryTermsLocation getDeliveryTermsLocation() { return deliveryTermsLocation; }
        public DeliveryTerms setDeliveryTermsLocation(DeliveryTermsLocation value) { this.deliveryTermsLocation = value; return this; }
    }

    public static class DeliveryTermsLocation
    {
        public String unLocationCode = null;
        public String gln = null;
        public ArrayList<AvpList> additionalLocationIdentification = new ArrayList<AvpList>();
        public String sublocationIdentification = null;
        public String locationName = null;
        public String locationSpecificInstructions = null;
        
        public String getUnLocationCode() { return unLocationCode; }
        public DeliveryTermsLocation setUnLocationCode(String value) { this.unLocationCode = value; return this; }
        public String getGln() { return gln; }
        public DeliveryTermsLocation setGln(String value) { this.gln = value; return this; }
        public ArrayList<AvpList> getAdditionalLocationIdentification() { return additionalLocationIdentification; }
        public DeliveryTermsLocation setAdditionalLocationIdentification(ArrayList<AvpList> value) { this.additionalLocationIdentification = value; return this; }
        public String getSublocationIdentification() { return sublocationIdentification; }
        public DeliveryTermsLocation setSublocationIdentification(String value) { this.sublocationIdentification = value; return this; }
        public String getLocationName() { return locationName; }
        public DeliveryTermsLocation setLocationName(String value) { this.locationName = value; return this; }
        public String getLocationSpecificInstructions() { return locationSpecificInstructions; }
        public DeliveryTermsLocation setLocationSpecificInstructions(String value) { this.locationSpecificInstructions = value; return this; }
    }

    public static class ReferencedOrder
    {
        public String orderRelationship = null;
        public DocumentReference documentReference = null;
        
        public String getOrderRelationship() { return orderRelationship; }
        public ReferencedOrder setOrderRelationship(String value) { this.orderRelationship = value; return this; }
        public DocumentReference getDocumentReference() { return documentReference; }
        public ReferencedOrder setDocumentReference(DocumentReference value) { this.documentReference = 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 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 OrderLineItem
    {
        public Quantity freeGoodsQuantity = null;
        public Quantity itemPriceBaseQuantity = null;
        public Quantity requestedQuantity = null;
        public String lineItemActionCode = null;
        public Long lineItemNumber = null;
        public BigDecimal listPrice = null;
        public BigDecimal monetaryAmountExcludingTaxes = null;
        public BigDecimal monetaryAmountIncludingTaxes = null;
        public BigDecimal netAmount = null;
        public BigDecimal netPrice = null;
        public String note = null;
        public String orderLineItemInstructionCode = null;
        public BigDecimal parentLineItemNumber = null;
        public BigDecimal recommendedRetailPrice = null;
        public String orderLineItemPriority = null;
        public ArrayList<AvpList> additionalOrderLineInstruction = new ArrayList<AvpList>();
        public ArrayList<AllowanceCharge> allowanceCharge = new ArrayList<AllowanceCharge>();
        public ArrayList<AdministrativeUnit> administrativeUnit = new ArrayList<AdministrativeUnit>();
        public TransactionalTradeItem transactionalTradeItem = null;
        public LeviedDutyFeeTax leviedDutyFeeTax = null;
        public DocumentReference contract = null;
        public DocumentReference promotionalDeal = null;
        public DocumentReference purchaseConditions = null;
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        public ArrayList<OrderLineItemDetail> orderLineItemDetail = new ArrayList<OrderLineItemDetail>();
        
        public Quantity getFreeGoodsQuantity() { return freeGoodsQuantity; }
        public OrderLineItem setFreeGoodsQuantity(Quantity value) { this.freeGoodsQuantity = value; return this; }
        public Quantity getItemPriceBaseQuantity() { return itemPriceBaseQuantity; }
        public OrderLineItem setItemPriceBaseQuantity(Quantity value) { this.itemPriceBaseQuantity = value; return this; }
        public Quantity getRequestedQuantity() { return requestedQuantity; }
        public OrderLineItem setRequestedQuantity(Quantity value) { this.requestedQuantity = value; return this; }
        public String getLineItemActionCode() { return lineItemActionCode; }
        public OrderLineItem setLineItemActionCode(String value) { this.lineItemActionCode = value; return this; }
        public Long getLineItemNumber() { return lineItemNumber; }
        public OrderLineItem setLineItemNumber(Long value) { this.lineItemNumber = value; return this; }
        public BigDecimal getListPrice() { return listPrice; }
        public OrderLineItem setListPrice(BigDecimal value) { this.listPrice = value; return this; }
        public BigDecimal getMonetaryAmountExcludingTaxes() { return monetaryAmountExcludingTaxes; }
        public OrderLineItem setMonetaryAmountExcludingTaxes(BigDecimal value) { this.monetaryAmountExcludingTaxes = value; return this; }
        public BigDecimal getMonetaryAmountIncludingTaxes() { return monetaryAmountIncludingTaxes; }
        public OrderLineItem setMonetaryAmountIncludingTaxes(BigDecimal value) { this.monetaryAmountIncludingTaxes = value; return this; }
        public BigDecimal getNetAmount() { return netAmount; }
        public OrderLineItem setNetAmount(BigDecimal value) { this.netAmount = value; return this; }
        public BigDecimal getNetPrice() { return netPrice; }
        public OrderLineItem setNetPrice(BigDecimal value) { this.netPrice = value; return this; }
        public String getNote() { return note; }
        public OrderLineItem setNote(String value) { this.note = value; return this; }
        public String getOrderLineItemInstructionCode() { return orderLineItemInstructionCode; }
        public OrderLineItem setOrderLineItemInstructionCode(String value) { this.orderLineItemInstructionCode = value; return this; }
        public BigDecimal getParentLineItemNumber() { return parentLineItemNumber; }
        public OrderLineItem setParentLineItemNumber(BigDecimal value) { this.parentLineItemNumber = value; return this; }
        public BigDecimal getRecommendedRetailPrice() { return recommendedRetailPrice; }
        public OrderLineItem setRecommendedRetailPrice(BigDecimal value) { this.recommendedRetailPrice = value; return this; }
        public String getOrderLineItemPriority() { return orderLineItemPriority; }
        public OrderLineItem setOrderLineItemPriority(String value) { this.orderLineItemPriority = value; return this; }
        public ArrayList<AvpList> getAdditionalOrderLineInstruction() { return additionalOrderLineInstruction; }
        public OrderLineItem setAdditionalOrderLineInstruction(ArrayList<AvpList> value) { this.additionalOrderLineInstruction = value; return this; }
        public ArrayList<AllowanceCharge> getAllowanceCharge() { return allowanceCharge; }
        public OrderLineItem setAllowanceCharge(ArrayList<AllowanceCharge> value) { this.allowanceCharge = value; return this; }
        public ArrayList<AdministrativeUnit> getAdministrativeUnit() { return administrativeUnit; }
        public OrderLineItem setAdministrativeUnit(ArrayList<AdministrativeUnit> value) { this.administrativeUnit = value; return this; }
        public TransactionalTradeItem getTransactionalTradeItem() { return transactionalTradeItem; }
        public OrderLineItem setTransactionalTradeItem(TransactionalTradeItem value) { this.transactionalTradeItem = value; return this; }
        public LeviedDutyFeeTax getLeviedDutyFeeTax() { return leviedDutyFeeTax; }
        public OrderLineItem setLeviedDutyFeeTax(LeviedDutyFeeTax value) { this.leviedDutyFeeTax = value; return this; }
        public DocumentReference getContract() { return contract; }
        public OrderLineItem setContract(DocumentReference value) { this.contract = value; return this; }
        public DocumentReference getPromotionalDeal() { return promotionalDeal; }
        public OrderLineItem setPromotionalDeal(DocumentReference value) { this.promotionalDeal = value; return this; }
        public DocumentReference getPurchaseConditions() { return purchaseConditions; }
        public OrderLineItem setPurchaseConditions(DocumentReference value) { this.purchaseConditions = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public OrderLineItem setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
        public ArrayList<OrderLineItemDetail> getOrderLineItemDetail() { return orderLineItemDetail; }
        public OrderLineItem setOrderLineItemDetail(ArrayList<OrderLineItemDetail> value) { this.orderLineItemDetail = 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 LeviedDutyFeeTax
    {
        public BigDecimal dutyFeeTaxAmount = null;
        public BigDecimal dutyFeeTaxBasisAmount = null;
        public String dutyFeeTaxDescription = null;
        public BigDecimal dutyFeeTaxPercentage = null;
        
        public BigDecimal getDutyFeeTaxAmount() { return dutyFeeTaxAmount; }
        public LeviedDutyFeeTax setDutyFeeTaxAmount(BigDecimal value) { this.dutyFeeTaxAmount = value; return this; }
        public BigDecimal getDutyFeeTaxBasisAmount() { return dutyFeeTaxBasisAmount; }
        public LeviedDutyFeeTax setDutyFeeTaxBasisAmount(BigDecimal value) { this.dutyFeeTaxBasisAmount = value; return this; }
        public String getDutyFeeTaxDescription() { return dutyFeeTaxDescription; }
        public LeviedDutyFeeTax setDutyFeeTaxDescription(String value) { this.dutyFeeTaxDescription = value; return this; }
        public BigDecimal getDutyFeeTaxPercentage() { return dutyFeeTaxPercentage; }
        public LeviedDutyFeeTax setDutyFeeTaxPercentage(BigDecimal value) { this.dutyFeeTaxPercentage = value; return this; }
    }

    public static class OrderLineItemDetail
    {
        public Quantity requestedQuantity = null;
        public OrderLogisticalInformation orderLogisticalInformation = null;
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        
        public Quantity getRequestedQuantity() { return requestedQuantity; }
        public OrderLineItemDetail setRequestedQuantity(Quantity value) { this.requestedQuantity = value; return this; }
        public OrderLogisticalInformation getOrderLogisticalInformation() { return orderLogisticalInformation; }
        public OrderLineItemDetail setOrderLogisticalInformation(OrderLogisticalInformation value) { this.orderLogisticalInformation = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public OrderLineItemDetail setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
    }

}

Java GetOrderById DTOs

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

HTTP + JSV

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

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

{
	header: 
	{
		documentIdentification: 
		{
			identifier: String,
			type: String
		},
		sender: 
		{
			identifier: 
			{
				authority: String,
				text: String
			},
			contactInformation: 
			[
				{
					
				}
			]
		},
		receiver: 
		{
			identifier: 
			{
				authority: String,
				text: String
			},
			contactInformation: 
			[
				{
					
				}
			]
		}
	},
	order: 
	{
		documentEffectiveDate: 0001-01-01,
		additionalOrderInstruction: String,
		isApplicationReceiptAcknowledgementRequired: False,
		isOrderFreeOfExciseTaxDuty: False,
		note: String,
		orderEntryType: String,
		orderInstructionCode: String,
		orderPriority: String,
		orderTypeCode: String,
		totalMonetaryAmountExcludingTaxes: 0,
		totalMonetaryAmountIncludingTaxes: 0,
		totalTaxAmount: 0,
		paymentTerms: String,
		orderIdentification: 
		{
			entityIdentification: String,
			contentOwner: 
			{
				additionalPartyIdentification: 
				[
					{
						code: String,
						value: String
					}
				],
				gln: String
			}
		},
		orderLogisticalInformation: 
		{
			commodityTypeCode: 
			{
				value: String,
				codeDescription: String,
				codeListAgencyCodeListVersion: String,
				codeListAgencyName: String,
				codeListName: String,
				codeListUri: String
			},
			orderLogisticalDateInformation: 
			{
				dateRangeDeliveryDateRange: 
				{
					beginDate: 0001-01-01,
					beginTime: 0001-01-01,
					endDate: 0001-01-01,
					endTime: 0001-01-01
				},
				dateRangeShipDateRange: 
				{
					beginDate: 0001-01-01,
					beginTime: 0001-01-01,
					endDate: 0001-01-01,
					endTime: 0001-01-01
				},
				dateRangeDeliveryDateRangeAtUltimateConsignee: 
				{
					beginDate: 0001-01-01,
					beginTime: 0001-01-01,
					endDate: 0001-01-01,
					endTime: 0001-01-01
				},
				requestedDeliveryDateTime: 0001-01-01,
				requestedShipDateTime: String,
				requestedPickUpDateTime: 0001-01-01,
				requestedDeliveryDateTimeAtUltimateConsignee: 0001-01-01
			},
			inventoryLocation: 
			{
				contact: 
				[
					{
						contactTypeCode: String,
						personName: String,
						departmentName: String,
						jobTitle: String,
						responsibility: String,
						communicationChannel: 
						[
							{
								communicationChannelCode: String,
								communicationChannelName: String,
								communicationValue: String
							}
						]
					}
				],
				address: 
				{
					streetAddressOne: String,
					streetAddressTwo: String,
					streetAddressThree: String,
					city: String,
					postalCode: String,
					provinceCode: String,
					countryCode: String
				},
				communicationChannel: 
				[
					{
						code: String,
						value: String
					}
				],
				financialInstitutionInformation: 
				{
					financialInstitutionBranchName: String,
					financialInstitutionName: String,
					financialRoutingNumber: 
					{
						number: String,
						numberTypeCode: String
					},
					financialAccount: 
					{
						number: String,
						numberTypeCode: String,
						name: String
					},
					swiftCode: String,
					exportersCode: String
				},
				dutyFeeTaxRegistration: String,
				entityIdentification: String,
				gln: String,
				name: String,
				additionalPartyIdentification: 
				[
					{
						code: String,
						value: String
					}
				]
			},
			shipFrom: 
			{
				contact: 
				[
					{
						contactTypeCode: String,
						personName: String,
						departmentName: String,
						jobTitle: String,
						responsibility: String,
						communicationChannel: 
						[
							{
								communicationChannelCode: String,
								communicationChannelName: String,
								communicationValue: String
							}
						]
					}
				],
				address: 
				{
					streetAddressOne: String,
					streetAddressTwo: String,
					streetAddressThree: String,
					city: String,
					postalCode: String,
					provinceCode: String,
					countryCode: String
				},
				communicationChannel: 
				[
					{
						code: String,
						value: String
					}
				],
				financialInstitutionInformation: 
				{
					financialInstitutionBranchName: String,
					financialInstitutionName: String,
					financialRoutingNumber: 
					{
						number: String,
						numberTypeCode: String
					},
					financialAccount: 
					{
						number: String,
						numberTypeCode: String,
						name: String
					},
					swiftCode: String,
					exportersCode: String
				},
				dutyFeeTaxRegistration: String,
				entityIdentification: String,
				gln: String,
				name: String,
				additionalPartyIdentification: 
				[
					{
						code: String,
						value: String
					}
				]
			},
			shipTo: 
			{
				contact: 
				[
					{
						contactTypeCode: String,
						personName: String,
						departmentName: String,
						jobTitle: String,
						responsibility: String,
						communicationChannel: 
						[
							{
								communicationChannelCode: String,
								communicationChannelName: String,
								communicationValue: String
							}
						]
					}
				],
				address: 
				{
					streetAddressOne: String,
					streetAddressTwo: String,
					streetAddressThree: String,
					city: String,
					postalCode: String,
					provinceCode: String,
					countryCode: String
				},
				communicationChannel: 
				[
					{
						code: String,
						value: String
					}
				],
				financialInstitutionInformation: 
				{
					financialInstitutionBranchName: String,
					financialInstitutionName: String,
					financialRoutingNumber: 
					{
						number: String,
						numberTypeCode: String
					},
					financialAccount: 
					{
						number: String,
						numberTypeCode: String,
						name: String
					},
					swiftCode: String,
					exportersCode: String
				},
				dutyFeeTaxRegistration: String,
				entityIdentification: String,
				gln: String,
				name: String,
				additionalPartyIdentification: 
				[
					{
						code: String,
						value: String
					}
				]
			},
			ultimateConsignee: 
			{
				contact: 
				[
					{
						contactTypeCode: String,
						personName: String,
						departmentName: String,
						jobTitle: String,
						responsibility: String,
						communicationChannel: 
						[
							{
								communicationChannelCode: String,
								communicationChannelName: String,
								communicationValue: String
							}
						]
					}
				],
				address: 
				{
					streetAddressOne: String,
					streetAddressTwo: String,
					streetAddressThree: String,
					city: String,
					postalCode: String,
					provinceCode: String,
					countryCode: String
				},
				communicationChannel: 
				[
					{
						code: String,
						value: String
					}
				],
				financialInstitutionInformation: 
				{
					financialInstitutionBranchName: String,
					financialInstitutionName: String,
					financialRoutingNumber: 
					{
						number: String,
						numberTypeCode: String
					},
					financialAccount: 
					{
						number: String,
						numberTypeCode: String,
						name: String
					},
					swiftCode: String,
					exportersCode: String
				},
				dutyFeeTaxRegistration: String,
				entityIdentification: String,
				gln: String,
				name: String,
				additionalPartyIdentification: 
				[
					{
						code: String,
						value: String
					}
				]
			},
			shipmentTransportationInformation: 
			{
				carrier: 
				{
					contact: 
					[
						{
							contactTypeCode: String,
							personName: String,
							departmentName: String,
							jobTitle: String,
							responsibility: String,
							communicationChannel: 
							[
								{
									communicationChannelCode: String,
									communicationChannelName: String,
									communicationValue: String
								}
							]
						}
					],
					address: 
					{
						streetAddressOne: String,
						streetAddressTwo: String,
						streetAddressThree: String,
						city: String,
						postalCode: String,
						provinceCode: String,
						countryCode: String
					},
					communicationChannel: 
					[
						{
							code: String,
							value: String
						}
					],
					financialInstitutionInformation: 
					{
						financialInstitutionBranchName: String,
						financialInstitutionName: String,
						financialRoutingNumber: 
						{
							number: String,
							numberTypeCode: String
						},
						financialAccount: 
						{
							number: String,
							numberTypeCode: String,
							name: String
						},
						swiftCode: String,
						exportersCode: String
					},
					dutyFeeTaxRegistration: String,
					entityIdentification: String,
					gln: String,
					name: String,
					additionalPartyIdentification: 
					[
						{
							code: String,
							value: String
						}
					]
				},
				freightForwarder: 
				{
					contact: 
					[
						{
							contactTypeCode: String,
							personName: String,
							departmentName: String,
							jobTitle: String,
							responsibility: String,
							communicationChannel: 
							[
								{
									communicationChannelCode: String,
									communicationChannelName: String,
									communicationValue: String
								}
							]
						}
					],
					address: 
					{
						streetAddressOne: String,
						streetAddressTwo: String,
						streetAddressThree: String,
						city: String,
						postalCode: String,
						provinceCode: String,
						countryCode: String
					},
					communicationChannel: 
					[
						{
							code: String,
							value: String
						}
					],
					financialInstitutionInformation: 
					{
						financialInstitutionBranchName: String,
						financialInstitutionName: String,
						financialRoutingNumber: 
						{
							number: String,
							numberTypeCode: String
						},
						financialAccount: 
						{
							number: String,
							numberTypeCode: String,
							name: String
						},
						swiftCode: String,
						exportersCode: String
					},
					dutyFeeTaxRegistration: String,
					entityIdentification: String,
					gln: String,
					name: String,
					additionalPartyIdentification: 
					[
						{
							code: String,
							value: String
						}
					]
				}
			}
		},
		administrativeUnit: 
		[
			{
				typeCode: String,
				gln: String,
				internalIdentification: String
			}
		],
		deliveryTerms: 
		{
			incotermsCode: String,
			alternateDeliveryTermsCode: String,
			deliveryInstructions: String,
			deliveryCostPayment: String,
			isSignatureRequired: String,
			deliveryTermsLocation: 
			{
				unLocationCode: String,
				gln: String,
				additionalLocationIdentification: 
				[
					{
						code: String,
						value: String
					}
				],
				sublocationIdentification: String,
				locationName: String,
				locationSpecificInstructions: String
			}
		},
		transactionalGenericReference: 
		[
			{
				code: String,
				value: String
			}
		],
		referencedOrder: 
		[
			{
				orderRelationship: String,
				documentReference: 
				{
					creationDateTime: 0001-01-01,
					revisionNumber: 0,
					lineItemNumber: 0,
					entityIdentification: String
				}
			}
		],
		billTo: 
		{
			contact: 
			[
				{
					contactTypeCode: String,
					personName: String,
					departmentName: String,
					jobTitle: String,
					responsibility: String,
					communicationChannel: 
					[
						{
							communicationChannelCode: String,
							communicationChannelName: String,
							communicationValue: String
						}
					]
				}
			],
			address: 
			{
				streetAddressOne: String,
				streetAddressTwo: String,
				streetAddressThree: String,
				city: String,
				postalCode: String,
				provinceCode: String,
				countryCode: String
			},
			communicationChannel: 
			[
				{
					code: String,
					value: String
				}
			],
			financialInstitutionInformation: 
			{
				financialInstitutionBranchName: String,
				financialInstitutionName: String,
				financialRoutingNumber: 
				{
					number: String,
					numberTypeCode: String
				},
				financialAccount: 
				{
					number: String,
					numberTypeCode: String,
					name: String
				},
				swiftCode: String,
				exportersCode: String
			},
			dutyFeeTaxRegistration: String,
			entityIdentification: String,
			gln: String,
			name: String,
			additionalPartyIdentification: 
			[
				{
					code: String,
					value: String
				}
			]
		},
		buyer: 
		{
			contact: 
			[
				{
					contactTypeCode: String,
					personName: String,
					departmentName: String,
					jobTitle: String,
					responsibility: String,
					communicationChannel: 
					[
						{
							communicationChannelCode: String,
							communicationChannelName: String,
							communicationValue: String
						}
					]
				}
			],
			address: 
			{
				streetAddressOne: String,
				streetAddressTwo: String,
				streetAddressThree: String,
				city: String,
				postalCode: String,
				provinceCode: String,
				countryCode: String
			},
			communicationChannel: 
			[
				{
					code: String,
					value: String
				}
			],
			financialInstitutionInformation: 
			{
				financialInstitutionBranchName: String,
				financialInstitutionName: String,
				financialRoutingNumber: 
				{
					number: String,
					numberTypeCode: String
				},
				financialAccount: 
				{
					number: String,
					numberTypeCode: String,
					name: String
				},
				swiftCode: String,
				exportersCode: String
			},
			dutyFeeTaxRegistration: String,
			entityIdentification: String,
			gln: String,
			name: String,
			additionalPartyIdentification: 
			[
				{
					code: String,
					value: String
				}
			]
		},
		pickupFrom: 
		{
			contact: 
			[
				{
					contactTypeCode: String,
					personName: String,
					departmentName: String,
					jobTitle: String,
					responsibility: String,
					communicationChannel: 
					[
						{
							communicationChannelCode: String,
							communicationChannelName: String,
							communicationValue: String
						}
					]
				}
			],
			address: 
			{
				streetAddressOne: String,
				streetAddressTwo: String,
				streetAddressThree: String,
				city: String,
				postalCode: String,
				provinceCode: String,
				countryCode: String
			},
			communicationChannel: 
			[
				{
					code: String,
					value: String
				}
			],
			financialInstitutionInformation: 
			{
				financialInstitutionBranchName: String,
				financialInstitutionName: String,
				financialRoutingNumber: 
				{
					number: String,
					numberTypeCode: String
				},
				financialAccount: 
				{
					number: String,
					numberTypeCode: String,
					name: String
				},
				swiftCode: String,
				exportersCode: String
			},
			dutyFeeTaxRegistration: String,
			entityIdentification: String,
			gln: String,
			name: String,
			additionalPartyIdentification: 
			[
				{
					code: String,
					value: String
				}
			]
		},
		seller: 
		{
			contact: 
			[
				{
					contactTypeCode: String,
					personName: String,
					departmentName: String,
					jobTitle: String,
					responsibility: String,
					communicationChannel: 
					[
						{
							communicationChannelCode: String,
							communicationChannelName: String,
							communicationValue: String
						}
					]
				}
			],
			address: 
			{
				streetAddressOne: String,
				streetAddressTwo: String,
				streetAddressThree: String,
				city: String,
				postalCode: String,
				provinceCode: String,
				countryCode: String
			},
			communicationChannel: 
			[
				{
					code: String,
					value: String
				}
			],
			financialInstitutionInformation: 
			{
				financialInstitutionBranchName: String,
				financialInstitutionName: String,
				financialRoutingNumber: 
				{
					number: String,
					numberTypeCode: String
				},
				financialAccount: 
				{
					number: String,
					numberTypeCode: String,
					name: String
				},
				swiftCode: String,
				exportersCode: String
			},
			dutyFeeTaxRegistration: String,
			entityIdentification: String,
			gln: String,
			name: String,
			additionalPartyIdentification: 
			[
				{
					code: String,
					value: String
				}
			]
		},
		ultimateConsignee: 
		{
			contact: 
			[
				{
					contactTypeCode: String,
					personName: String,
					departmentName: String,
					jobTitle: String,
					responsibility: String,
					communicationChannel: 
					[
						{
							communicationChannelCode: String,
							communicationChannelName: String,
							communicationValue: String
						}
					]
				}
			],
			address: 
			{
				streetAddressOne: String,
				streetAddressTwo: String,
				streetAddressThree: String,
				city: String,
				postalCode: String,
				provinceCode: String,
				countryCode: String
			},
			communicationChannel: 
			[
				{
					code: String,
					value: String
				}
			],
			financialInstitutionInformation: 
			{
				financialInstitutionBranchName: String,
				financialInstitutionName: String,
				financialRoutingNumber: 
				{
					number: String,
					numberTypeCode: String
				},
				financialAccount: 
				{
					number: String,
					numberTypeCode: String,
					name: String
				},
				swiftCode: String,
				exportersCode: String
			},
			dutyFeeTaxRegistration: String,
			entityIdentification: String,
			gln: String,
			name: String,
			additionalPartyIdentification: 
			[
				{
					code: String,
					value: String
				}
			]
		},
		contract: 
		{
			creationDateTime: 0001-01-01,
			revisionNumber: 0,
			lineItemNumber: 0,
			entityIdentification: String
		},
		quoteNumber: 
		{
			creationDateTime: 0001-01-01,
			revisionNumber: 0,
			lineItemNumber: 0,
			entityIdentification: String
		},
		promotionalDeal: 
		{
			creationDateTime: 0001-01-01,
			revisionNumber: 0,
			lineItemNumber: 0,
			entityIdentification: String
		},
		tradeAgreement: 
		{
			creationDateTime: 0001-01-01,
			revisionNumber: 0,
			lineItemNumber: 0,
			entityIdentification: String
		},
		deliveryDateAccordingToSchedule: 0001-01-01,
		latestDeliveryDate: 0001-01-01,
		allowanceCharge: 
		[
			{
				allowanceChargeAmount: 0,
				allowanceChargePercentage: 0,
				allowanceChargeType: String,
				allowanceOrChargeType: String,
				amountPerUnit: 0,
				baseAmount: 0,
				baseNumberOfUnits: String,
				bracketIdentifier: String,
				effectiveDateType: 0001-01-01,
				sequenceNumber: String,
				settlementType: String,
				specialServiceType: String,
				allowanceChargeDescription: String
			}
		],
		orderLineItem: 
		[
			{
				freeGoodsQuantity: 
				{
					value: 0,
					measurementUnitCode: String,
					codeListVersion: String
				},
				itemPriceBaseQuantity: 
				{
					value: 0,
					measurementUnitCode: String,
					codeListVersion: String
				},
				requestedQuantity: 
				{
					value: 0,
					measurementUnitCode: String,
					codeListVersion: String
				},
				lineItemActionCode: String,
				lineItemNumber: 0,
				listPrice: 0,
				monetaryAmountExcludingTaxes: 0,
				monetaryAmountIncludingTaxes: 0,
				netAmount: 0,
				netPrice: 0,
				note: String,
				orderLineItemInstructionCode: String,
				parentLineItemNumber: 0,
				recommendedRetailPrice: 0,
				orderLineItemPriority: String,
				additionalOrderLineInstruction: 
				[
					{
						code: String,
						value: String
					}
				],
				allowanceCharge: 
				[
					{
						allowanceChargeAmount: 0,
						allowanceChargePercentage: 0,
						allowanceChargeType: String,
						allowanceOrChargeType: String,
						amountPerUnit: 0,
						baseAmount: 0,
						baseNumberOfUnits: String,
						bracketIdentifier: String,
						effectiveDateType: 0001-01-01,
						sequenceNumber: String,
						settlementType: String,
						specialServiceType: String,
						allowanceChargeDescription: String
					}
				],
				administrativeUnit: 
				[
					{
						typeCode: String,
						gln: String,
						internalIdentification: String
					}
				],
				transactionalTradeItem: 
				{
					gtin: String,
					additionalTradeItemIdentification: 
					[
						{
							code: String,
							value: String
						}
					],
					tradeItemQuantity: 0,
					tradeItemDescription: String,
					productVariantIdentifier: String,
					itemTypeCode: String,
					tradeItemDataOwner: String,
					butterFatReference: String,
					transactionalItemData: 
					[
						{
							availableForSaleDate: 0001-01-01,
							batchNumber: String,
							bestBeforeDate: 0001-01-01,
							countryOfOrigin: String,
							itemExpirationDate: 0001-01-01,
							lotNumber: String,
							packagingDate: 0001-01-01,
							productionDate: 0001-01-01,
							productQualityIndication: String,
							sellByDate: 0001-01-01,
							serialNumber: 
							[
								String
							],
							shelfLife: String,
							tradeItemQuantity: 0,
							itemInContactWithFoodProduct: False,
							transactionalItemWeight: 
							[
								{
									measurementUnitCode: String,
									measurementType: String,
									measurementValue: String
								}
							],
							transactionalItemVolume: 
							[
								{
									measurementUnitCode: String,
									measurementType: String,
									measurementValue: String
								}
							],
							serialNumberRange: 
							[
								{
									maximumValue: String,
									minimumValue: String
								}
							],
							transactionalItemDimensions: 
							[
								{
									measurementUnitCode: String,
									depth: String,
									height: String,
									width: String
								}
							],
							transactionalItemLogisticUnitInformation: 
							{
								numberOfLayers: 0,
								numberOfUnitsPerLayer: 0,
								numberOfUnitsPerPallet: 0,
								packagingTerms: String,
								packageTypeCode: String,
								maximumStackingFactor: 0,
								returnablePackageTransportCostPayment: String,
								dimensionsOfLogisticUnit: 
								[
									{
										measurementUnitCode: String,
										depth: String,
										height: String,
										width: String
									}
								]
							},
							transactionalItemDataCarrierAndIdentification: 
							{
								gs1TransactionalItemIdentificationKey: String,
								dataCarrier: String
							},
							tradeItemWaste: 
							[
								{
									wasteIdentification: String,
									typeOfWaste: 
									[
										{
											code: String,
											value: String
										}
									]
								}
							],
							transactionalItemOrganicInformation: 
							{
								isTradeItemOrganic: False,
								organicCertification: String
							},
							avpList: 
							[
								{
									code: String,
									value: String
								}
							]
						}
					],
					colour: 
					[
						{
							colourCode: String,
							colourDescription: String
						}
					],
					size: 
					{
						descriptiveSize: String,
						sizeCode: String
					},
					tradeItemClassification: 
					{
						gpcCategoryCode: String,
						additionalTradeItemClassificationCode: 
						[
							{
								code: String,
								value: String
							}
						],
						gpcCategoryName: String,
						gpcAttribute: 
						[
							{
								code: String,
								value: String
							}
						]
					},
					avpList: 
					[
						{
							code: String,
							value: String
						}
					]
				},
				leviedDutyFeeTax: 
				{
					dutyFeeTaxAmount: 0,
					dutyFeeTaxBasisAmount: 0,
					dutyFeeTaxDescription: String,
					dutyFeeTaxPercentage: 0
				},
				contract: 
				{
					creationDateTime: 0001-01-01,
					revisionNumber: 0,
					lineItemNumber: 0,
					entityIdentification: String
				},
				promotionalDeal: 
				{
					creationDateTime: 0001-01-01,
					revisionNumber: 0,
					lineItemNumber: 0,
					entityIdentification: String
				},
				purchaseConditions: 
				{
					creationDateTime: 0001-01-01,
					revisionNumber: 0,
					lineItemNumber: 0,
					entityIdentification: String
				},
				avpList: 
				[
					{
						code: String,
						value: String
					}
				],
				orderLineItemDetail: 
				[
					{
						requestedQuantity: 
						{
							value: 0,
							measurementUnitCode: String,
							codeListVersion: String
						},
						orderLogisticalInformation: 
						{
							commodityTypeCode: 
							{
								value: String,
								codeDescription: String,
								codeListAgencyCodeListVersion: String,
								codeListAgencyName: String,
								codeListName: String,
								codeListUri: String
							},
							orderLogisticalDateInformation: 
							{
								dateRangeDeliveryDateRange: 
								{
									beginDate: 0001-01-01,
									beginTime: 0001-01-01,
									endDate: 0001-01-01,
									endTime: 0001-01-01
								},
								dateRangeShipDateRange: 
								{
									beginDate: 0001-01-01,
									beginTime: 0001-01-01,
									endDate: 0001-01-01,
									endTime: 0001-01-01
								},
								dateRangeDeliveryDateRangeAtUltimateConsignee: 
								{
									beginDate: 0001-01-01,
									beginTime: 0001-01-01,
									endDate: 0001-01-01,
									endTime: 0001-01-01
								},
								requestedDeliveryDateTime: 0001-01-01,
								requestedShipDateTime: String,
								requestedPickUpDateTime: 0001-01-01,
								requestedDeliveryDateTimeAtUltimateConsignee: 0001-01-01
							},
							inventoryLocation: 
							{
								contact: 
								[
									{
										contactTypeCode: String,
										personName: String,
										departmentName: String,
										jobTitle: String,
										responsibility: String,
										communicationChannel: 
										[
											{
												communicationChannelCode: String,
												communicationChannelName: String,
												communicationValue: String
											}
										]
									}
								],
								address: 
								{
									streetAddressOne: String,
									streetAddressTwo: String,
									streetAddressThree: String,
									city: String,
									postalCode: String,
									provinceCode: String,
									countryCode: String
								},
								communicationChannel: 
								[
									{
										code: String,
										value: String
									}
								],
								financialInstitutionInformation: 
								{
									financialInstitutionBranchName: String,
									financialInstitutionName: String,
									financialRoutingNumber: 
									{
										number: String,
										numberTypeCode: String
									},
									financialAccount: 
									{
										number: String,
										numberTypeCode: String,
										name: String
									},
									swiftCode: String,
									exportersCode: String
								},
								dutyFeeTaxRegistration: String,
								entityIdentification: String,
								gln: String,
								name: String,
								additionalPartyIdentification: 
								[
									{
										code: String,
										value: String
									}
								]
							},
							shipFrom: 
							{
								contact: 
								[
									{
										contactTypeCode: String,
										personName: String,
										departmentName: String,
										jobTitle: String,
										responsibility: String,
										communicationChannel: 
										[
											{
												communicationChannelCode: String,
												communicationChannelName: String,
												communicationValue: String
											}
										]
									}
								],
								address: 
								{
									streetAddressOne: String,
									streetAddressTwo: String,
									streetAddressThree: String,
									city: String,
									postalCode: String,
									provinceCode: String,
									countryCode: String
								},
								communicationChannel: 
								[
									{
										code: String,
										value: String
									}
								],
								financialInstitutionInformation: 
								{
									financialInstitutionBranchName: String,
									financialInstitutionName: String,
									financialRoutingNumber: 
									{
										number: String,
										numberTypeCode: String
									},
									financialAccount: 
									{
										number: String,
										numberTypeCode: String,
										name: String
									},
									swiftCode: String,
									exportersCode: String
								},
								dutyFeeTaxRegistration: String,
								entityIdentification: String,
								gln: String,
								name: String,
								additionalPartyIdentification: 
								[
									{
										code: String,
										value: String
									}
								]
							},
							shipTo: 
							{
								contact: 
								[
									{
										contactTypeCode: String,
										personName: String,
										departmentName: String,
										jobTitle: String,
										responsibility: String,
										communicationChannel: 
										[
											{
												communicationChannelCode: String,
												communicationChannelName: String,
												communicationValue: String
											}
										]
									}
								],
								address: 
								{
									streetAddressOne: String,
									streetAddressTwo: String,
									streetAddressThree: String,
									city: String,
									postalCode: String,
									provinceCode: String,
									countryCode: String
								},
								communicationChannel: 
								[
									{
										code: String,
										value: String
									}
								],
								financialInstitutionInformation: 
								{
									financialInstitutionBranchName: String,
									financialInstitutionName: String,
									financialRoutingNumber: 
									{
										number: String,
										numberTypeCode: String
									},
									financialAccount: 
									{
										number: String,
										numberTypeCode: String,
										name: String
									},
									swiftCode: String,
									exportersCode: String
								},
								dutyFeeTaxRegistration: String,
								entityIdentification: String,
								gln: String,
								name: String,
								additionalPartyIdentification: 
								[
									{
										code: String,
										value: String
									}
								]
							},
							ultimateConsignee: 
							{
								contact: 
								[
									{
										contactTypeCode: String,
										personName: String,
										departmentName: String,
										jobTitle: String,
										responsibility: String,
										communicationChannel: 
										[
											{
												communicationChannelCode: String,
												communicationChannelName: String,
												communicationValue: String
											}
										]
									}
								],
								address: 
								{
									streetAddressOne: String,
									streetAddressTwo: String,
									streetAddressThree: String,
									city: String,
									postalCode: String,
									provinceCode: String,
									countryCode: String
								},
								communicationChannel: 
								[
									{
										code: String,
										value: String
									}
								],
								financialInstitutionInformation: 
								{
									financialInstitutionBranchName: String,
									financialInstitutionName: String,
									financialRoutingNumber: 
									{
										number: String,
										numberTypeCode: String
									},
									financialAccount: 
									{
										number: String,
										numberTypeCode: String,
										name: String
									},
									swiftCode: String,
									exportersCode: String
								},
								dutyFeeTaxRegistration: String,
								entityIdentification: String,
								gln: String,
								name: String,
								additionalPartyIdentification: 
								[
									{
										code: String,
										value: String
									}
								]
							},
							shipmentTransportationInformation: 
							{
								carrier: 
								{
									contact: 
									[
										{
											contactTypeCode: String,
											personName: String,
											departmentName: String,
											jobTitle: String,
											responsibility: String,
											communicationChannel: 
											[
												{
													communicationChannelCode: String,
													communicationChannelName: String,
													communicationValue: String
												}
											]
										}
									],
									address: 
									{
										streetAddressOne: String,
										streetAddressTwo: String,
										streetAddressThree: String,
										city: String,
										postalCode: String,
										provinceCode: String,
										countryCode: String
									},
									communicationChannel: 
									[
										{
											code: String,
											value: String
										}
									],
									financialInstitutionInformation: 
									{
										financialInstitutionBranchName: String,
										financialInstitutionName: String,
										financialRoutingNumber: 
										{
											number: String,
											numberTypeCode: String
										},
										financialAccount: 
										{
											number: String,
											numberTypeCode: String,
											name: String
										},
										swiftCode: String,
										exportersCode: String
									},
									dutyFeeTaxRegistration: String,
									entityIdentification: String,
									gln: String,
									name: String,
									additionalPartyIdentification: 
									[
										{
											code: String,
											value: String
										}
									]
								},
								freightForwarder: 
								{
									contact: 
									[
										{
											contactTypeCode: String,
											personName: String,
											departmentName: String,
											jobTitle: String,
											responsibility: String,
											communicationChannel: 
											[
												{
													communicationChannelCode: String,
													communicationChannelName: String,
													communicationValue: String
												}
											]
										}
									],
									address: 
									{
										streetAddressOne: String,
										streetAddressTwo: String,
										streetAddressThree: String,
										city: String,
										postalCode: String,
										provinceCode: String,
										countryCode: String
									},
									communicationChannel: 
									[
										{
											code: String,
											value: String
										}
									],
									financialInstitutionInformation: 
									{
										financialInstitutionBranchName: String,
										financialInstitutionName: String,
										financialRoutingNumber: 
										{
											number: String,
											numberTypeCode: String
										},
										financialAccount: 
										{
											number: String,
											numberTypeCode: String,
											name: String
										},
										swiftCode: String,
										exportersCode: String
									},
									dutyFeeTaxRegistration: String,
									entityIdentification: String,
									gln: String,
									name: String,
									additionalPartyIdentification: 
									[
										{
											code: String,
											value: String
										}
									]
								}
							}
						},
						avpList: 
						[
							{
								code: String,
								value: String
							}
						]
					}
				]
			}
		],
		currencyCode: String,
		documentActionCode: ADD,
		documentStatusCode: ADDITIONAL_TRANSMISSION,
		documentStructureVersion: String,
		lastUpdateDateTime: 0001-01-01,
		revisionNumber: 0,
		avpList: 
		[
			{
				code: String,
				value: String
			}
		]
	}
}