DX STF Client API

<back to all web services

GetItemDataNotificationByIdentifier

Item Data Notification Requests

Item Data Notification

Requires Authentication
The following routes are available for this service:
GET/api/itemDataNotification/{OwnerGln}/{ItemDataNotificationIdentification}Get specific ItemDataNotification by ItemDataNotificationIdentification
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
{

    /**
    * Item Data Notification
    */
    @Api(Description="Item Data Notification")
    @ApiResponse(Description="ItemDataNotification 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 GetItemDataNotificationByIdentifier
    {
        /**
        * Owner GLN
        */
        @ApiMember(Description="Owner GLN", ExcludeInSchema=true, ParameterType="path")
        public String ownerGln = null;

        /**
        * ItemDataNotification ID or Token
        */
        @ApiMember(Description="ItemDataNotification ID or Token", ExcludeInSchema=true, ParameterType="path")
        public String itemDataNotificationIdentification = null;
        
        public String getOwnerGln() { return ownerGln; }
        public GetItemDataNotificationByIdentifier setOwnerGln(String value) { this.ownerGln = value; return this; }
        public String getItemDataNotificationIdentification() { return itemDataNotificationIdentification; }
        public GetItemDataNotificationByIdentifier setItemDataNotificationIdentification(String value) { this.itemDataNotificationIdentification = value; return this; }
    }

    public static class ItemDataNotificationMessage extends BaseDocument
    {
        public TransactionalParty dataRecipient = null;
        public TransactionalParty dataSource = null;
        public String itemDataNotificationIdentification = null;
        public ArrayList<ItemDataNotificationLineItem> itemDataNotificationLineItem = new ArrayList<ItemDataNotificationLineItem>();
        
        public TransactionalParty getDataRecipient() { return dataRecipient; }
        public ItemDataNotificationMessage setDataRecipient(TransactionalParty value) { this.dataRecipient = value; return this; }
        public TransactionalParty getDataSource() { return dataSource; }
        public ItemDataNotificationMessage setDataSource(TransactionalParty value) { this.dataSource = value; return this; }
        public String getItemDataNotificationIdentification() { return itemDataNotificationIdentification; }
        public ItemDataNotificationMessage setItemDataNotificationIdentification(String value) { this.itemDataNotificationIdentification = value; return this; }
        public ArrayList<ItemDataNotificationLineItem> getItemDataNotificationLineItem() { return itemDataNotificationLineItem; }
        public ItemDataNotificationMessage setItemDataNotificationLineItem(ArrayList<ItemDataNotificationLineItem> value) { this.itemDataNotificationLineItem = value; return this; }
    }

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

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

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

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

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

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

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

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

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

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

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

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

    public static class ItemDataNotificationLineItem extends Ecom_TradeItemIdentification
    {
        public String brandName = null;
        public String gpcCategoryCode = null;
        public Boolean isTheProductVariantPreferred = null;
        public Long lineItemNumber = null;
        public Long parentLineItemNumber = null;
        public IdentifierType productVariantIdentifier = null;
        public BigDecimal quantityOfItemTypes = null;
        public BigDecimal quantityOfItemUnits = null;
        public ArrayList<String> tradeItemDescription = new ArrayList<String>();
        public String tradeItemUnitDescriptorCode = null;
        public ItemDataTradingPartnerNeutral itemDataTradingPartnerNeutral = null;
        public ArrayList<ItemDataTradingPartnerDependent> itemDataTradingPartnerDependent = new ArrayList<ItemDataTradingPartnerDependent>();
        public ArrayList<LowerLevelTradeItem> lowerLevelTradeItem = new ArrayList<LowerLevelTradeItem>();
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        
        public String getBrandName() { return brandName; }
        public ItemDataNotificationLineItem setBrandName(String value) { this.brandName = value; return this; }
        public String getGpcCategoryCode() { return gpcCategoryCode; }
        public ItemDataNotificationLineItem setGpcCategoryCode(String value) { this.gpcCategoryCode = value; return this; }
        public Boolean getIsTheProductVariantPreferred() { return isTheProductVariantPreferred; }
        public ItemDataNotificationLineItem setIsTheProductVariantPreferred(Boolean value) { this.isTheProductVariantPreferred = value; return this; }
        public Long getLineItemNumber() { return lineItemNumber; }
        public ItemDataNotificationLineItem setLineItemNumber(Long value) { this.lineItemNumber = value; return this; }
        public Long getParentLineItemNumber() { return parentLineItemNumber; }
        public ItemDataNotificationLineItem setParentLineItemNumber(Long value) { this.parentLineItemNumber = value; return this; }
        public IdentifierType getProductVariantIdentifier() { return productVariantIdentifier; }
        public ItemDataNotificationLineItem setProductVariantIdentifier(IdentifierType value) { this.productVariantIdentifier = value; return this; }
        public BigDecimal getQuantityOfItemTypes() { return quantityOfItemTypes; }
        public ItemDataNotificationLineItem setQuantityOfItemTypes(BigDecimal value) { this.quantityOfItemTypes = value; return this; }
        public BigDecimal getQuantityOfItemUnits() { return quantityOfItemUnits; }
        public ItemDataNotificationLineItem setQuantityOfItemUnits(BigDecimal value) { this.quantityOfItemUnits = value; return this; }
        public ArrayList<String> getTradeItemDescription() { return tradeItemDescription; }
        public ItemDataNotificationLineItem setTradeItemDescription(ArrayList<String> value) { this.tradeItemDescription = value; return this; }
        public String getTradeItemUnitDescriptorCode() { return tradeItemUnitDescriptorCode; }
        public ItemDataNotificationLineItem setTradeItemUnitDescriptorCode(String value) { this.tradeItemUnitDescriptorCode = value; return this; }
        public ItemDataTradingPartnerNeutral getItemDataTradingPartnerNeutral() { return itemDataTradingPartnerNeutral; }
        public ItemDataNotificationLineItem setItemDataTradingPartnerNeutral(ItemDataTradingPartnerNeutral value) { this.itemDataTradingPartnerNeutral = value; return this; }
        public ArrayList<ItemDataTradingPartnerDependent> getItemDataTradingPartnerDependent() { return itemDataTradingPartnerDependent; }
        public ItemDataNotificationLineItem setItemDataTradingPartnerDependent(ArrayList<ItemDataTradingPartnerDependent> value) { this.itemDataTradingPartnerDependent = value; return this; }
        public ArrayList<LowerLevelTradeItem> getLowerLevelTradeItem() { return lowerLevelTradeItem; }
        public ItemDataNotificationLineItem setLowerLevelTradeItem(ArrayList<LowerLevelTradeItem> value) { this.lowerLevelTradeItem = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public ItemDataNotificationLineItem setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
    }

    public static class Ecom_TradeItemIdentification
    {
        public ArrayList<AdditionalTradeItemIdentification> additionalTradeItemIdentification = new ArrayList<AdditionalTradeItemIdentification>();
        public String gtin = null;
        
        public ArrayList<AdditionalTradeItemIdentification> getAdditionalTradeItemIdentification() { return additionalTradeItemIdentification; }
        public Ecom_TradeItemIdentification setAdditionalTradeItemIdentification(ArrayList<AdditionalTradeItemIdentification> value) { this.additionalTradeItemIdentification = value; return this; }
        public String getGtin() { return gtin; }
        public Ecom_TradeItemIdentification setGtin(String value) { this.gtin = value; return this; }
    }

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

    public static class IdentifierType
    {
        public String value = null;
        public String identificationSchemeAgencyCodeCodeListVersion = null;
        public String identificationSchemeAgencyName = null;
        public String identificationSchemeName = null;
        
        public String getValue() { return value; }
        public IdentifierType setValue(String value) { this.value = value; return this; }
        public String getIdentificationSchemeAgencyCodeCodeListVersion() { return identificationSchemeAgencyCodeCodeListVersion; }
        public IdentifierType setIdentificationSchemeAgencyCodeCodeListVersion(String value) { this.identificationSchemeAgencyCodeCodeListVersion = value; return this; }
        public String getIdentificationSchemeAgencyName() { return identificationSchemeAgencyName; }
        public IdentifierType setIdentificationSchemeAgencyName(String value) { this.identificationSchemeAgencyName = value; return this; }
        public String getIdentificationSchemeName() { return identificationSchemeName; }
        public IdentifierType setIdentificationSchemeName(String value) { this.identificationSchemeName = value; return this; }
    }

    public static class ItemDataTradingPartnerNeutral
    {
        public Date cancelledDateTime = null;
        public Date discontinuedDateTime = null;
        public Date effectiveDateTime = null;
        public Date endAvailabilityDateTime = null;
        public Integer maximumStackingFactor = null;
        public Date startAvailabilityDateTime = null;
        public String tradeItemBaseUnitOfMeasure = null;
        public ArrayList<AdditionalTradeItemClassificationCode> tradeItemClassificationCode = new ArrayList<AdditionalTradeItemClassificationCode>();
        public String warehouseABCClassificationCode = null;
        public ItemDataWeightAndDimension itemDataWeightAndDimension = null;
        public ArrayList<HandlingInstruction> handlingInstruction = new ArrayList<HandlingInstruction>();
        public ArrayList<DangerousGoodsInformation> dangerousGoodsInformation = new ArrayList<DangerousGoodsInformation>();
        public AdministrativeUnit administrativeUnitOfLogisticServiceBuyer = null;
        public ArrayList<AvpList> avpList = new ArrayList<AvpList>();
        
        public Date getCancelledDateTime() { return cancelledDateTime; }
        public ItemDataTradingPartnerNeutral setCancelledDateTime(Date value) { this.cancelledDateTime = value; return this; }
        public Date getDiscontinuedDateTime() { return discontinuedDateTime; }
        public ItemDataTradingPartnerNeutral setDiscontinuedDateTime(Date value) { this.discontinuedDateTime = value; return this; }
        public Date getEffectiveDateTime() { return effectiveDateTime; }
        public ItemDataTradingPartnerNeutral setEffectiveDateTime(Date value) { this.effectiveDateTime = value; return this; }
        public Date getEndAvailabilityDateTime() { return endAvailabilityDateTime; }
        public ItemDataTradingPartnerNeutral setEndAvailabilityDateTime(Date value) { this.endAvailabilityDateTime = value; return this; }
        public Integer getMaximumStackingFactor() { return maximumStackingFactor; }
        public ItemDataTradingPartnerNeutral setMaximumStackingFactor(Integer value) { this.maximumStackingFactor = value; return this; }
        public Date getStartAvailabilityDateTime() { return startAvailabilityDateTime; }
        public ItemDataTradingPartnerNeutral setStartAvailabilityDateTime(Date value) { this.startAvailabilityDateTime = value; return this; }
        public String getTradeItemBaseUnitOfMeasure() { return tradeItemBaseUnitOfMeasure; }
        public ItemDataTradingPartnerNeutral setTradeItemBaseUnitOfMeasure(String value) { this.tradeItemBaseUnitOfMeasure = value; return this; }
        public ArrayList<AdditionalTradeItemClassificationCode> getTradeItemClassificationCode() { return tradeItemClassificationCode; }
        public ItemDataTradingPartnerNeutral setTradeItemClassificationCode(ArrayList<AdditionalTradeItemClassificationCode> value) { this.tradeItemClassificationCode = value; return this; }
        public String getWarehouseABCClassificationCode() { return warehouseABCClassificationCode; }
        public ItemDataTradingPartnerNeutral setWarehouseABCClassificationCode(String value) { this.warehouseABCClassificationCode = value; return this; }
        public ItemDataWeightAndDimension getItemDataWeightAndDimension() { return itemDataWeightAndDimension; }
        public ItemDataTradingPartnerNeutral setItemDataWeightAndDimension(ItemDataWeightAndDimension value) { this.itemDataWeightAndDimension = value; return this; }
        public ArrayList<HandlingInstruction> getHandlingInstruction() { return handlingInstruction; }
        public ItemDataTradingPartnerNeutral setHandlingInstruction(ArrayList<HandlingInstruction> value) { this.handlingInstruction = value; return this; }
        public ArrayList<DangerousGoodsInformation> getDangerousGoodsInformation() { return dangerousGoodsInformation; }
        public ItemDataTradingPartnerNeutral setDangerousGoodsInformation(ArrayList<DangerousGoodsInformation> value) { this.dangerousGoodsInformation = value; return this; }
        public AdministrativeUnit getAdministrativeUnitOfLogisticServiceBuyer() { return administrativeUnitOfLogisticServiceBuyer; }
        public ItemDataTradingPartnerNeutral setAdministrativeUnitOfLogisticServiceBuyer(AdministrativeUnit value) { this.administrativeUnitOfLogisticServiceBuyer = value; return this; }
        public ArrayList<AvpList> getAvpList() { return avpList; }
        public ItemDataTradingPartnerNeutral setAvpList(ArrayList<AvpList> value) { this.avpList = value; return this; }
    }

    public static class AdditionalTradeItemClassificationCode
    {
        public String value = null;
        public String additionalTradeItemClassificationCodeListCode = null;
        public String additionalTradeItemClassificationCodeListVersion = null;
        public String codeDescription = null;
        
        public String getValue() { return value; }
        public AdditionalTradeItemClassificationCode setValue(String value) { this.value = value; return this; }
        public String getAdditionalTradeItemClassificationCodeListCode() { return additionalTradeItemClassificationCodeListCode; }
        public AdditionalTradeItemClassificationCode setAdditionalTradeItemClassificationCodeListCode(String value) { this.additionalTradeItemClassificationCodeListCode = value; return this; }
        public String getAdditionalTradeItemClassificationCodeListVersion() { return additionalTradeItemClassificationCodeListVersion; }
        public AdditionalTradeItemClassificationCode setAdditionalTradeItemClassificationCodeListVersion(String value) { this.additionalTradeItemClassificationCodeListVersion = value; return this; }
        public String getCodeDescription() { return codeDescription; }
        public AdditionalTradeItemClassificationCode setCodeDescription(String value) { this.codeDescription = value; return this; }
    }

    public static class ItemDataWeightAndDimension
    {
        public Measurement depth = null;
        public Measurement diameter = null;
        public Measurement grossWeight = null;
        public Measurement height = null;
        public Measurement netWeight = null;
        public Measurement width = null;
        
        public Measurement getDepth() { return depth; }
        public ItemDataWeightAndDimension setDepth(Measurement value) { this.depth = value; return this; }
        public Measurement getDiameter() { return diameter; }
        public ItemDataWeightAndDimension setDiameter(Measurement value) { this.diameter = value; return this; }
        public Measurement getGrossWeight() { return grossWeight; }
        public ItemDataWeightAndDimension setGrossWeight(Measurement value) { this.grossWeight = value; return this; }
        public Measurement getHeight() { return height; }
        public ItemDataWeightAndDimension setHeight(Measurement value) { this.height = value; return this; }
        public Measurement getNetWeight() { return netWeight; }
        public ItemDataWeightAndDimension setNetWeight(Measurement value) { this.netWeight = value; return this; }
        public Measurement getWidth() { return width; }
        public ItemDataWeightAndDimension setWidth(Measurement value) { this.width = value; return this; }
    }

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

    public static class HandlingInstruction
    {
        public String handlingInstructionCode = null;
        public String handlingInstructionText = null;
        public ArrayList<String> printingInstructionCode = new ArrayList<String>();
        public TemperatureRange storageTemperature = null;
        public TemperatureRange transportTemperature = null;
        
        public String getHandlingInstructionCode() { return handlingInstructionCode; }
        public HandlingInstruction setHandlingInstructionCode(String value) { this.handlingInstructionCode = value; return this; }
        public String getHandlingInstructionText() { return handlingInstructionText; }
        public HandlingInstruction setHandlingInstructionText(String value) { this.handlingInstructionText = value; return this; }
        public ArrayList<String> getPrintingInstructionCode() { return printingInstructionCode; }
        public HandlingInstruction setPrintingInstructionCode(ArrayList<String> value) { this.printingInstructionCode = value; return this; }
        public TemperatureRange getStorageTemperature() { return storageTemperature; }
        public HandlingInstruction setStorageTemperature(TemperatureRange value) { this.storageTemperature = value; return this; }
        public TemperatureRange getTransportTemperature() { return transportTemperature; }
        public HandlingInstruction setTransportTemperature(TemperatureRange value) { this.transportTemperature = value; return this; }
    }

    public static class TemperatureRange
    {
        public TemperatureMeasurement maximumTemperature = null;
        public TemperatureMeasurement minimumTemperature = null;
        
        public TemperatureMeasurement getMaximumTemperature() { return maximumTemperature; }
        public TemperatureRange setMaximumTemperature(TemperatureMeasurement value) { this.maximumTemperature = value; return this; }
        public TemperatureMeasurement getMinimumTemperature() { return minimumTemperature; }
        public TemperatureRange setMinimumTemperature(TemperatureMeasurement value) { this.minimumTemperature = value; return this; }
    }

    public static class TemperatureMeasurement
    {
        public BigDecimal value = null;
        public String temperatureMeasurementUnitCode = null;
        
        public BigDecimal getValue() { return value; }
        public TemperatureMeasurement setValue(BigDecimal value) { this.value = value; return this; }
        public String getTemperatureMeasurementUnitCode() { return temperatureMeasurementUnitCode; }
        public TemperatureMeasurement setTemperatureMeasurementUnitCode(String value) { this.temperatureMeasurementUnitCode = value; return this; }
    }

    public static class DangerousGoodsInformation
    {
        public String dangerousGoodsDescription = null;
        public String dangerousGoodsShippingName = null;
        public String dangerousGoodsTechnicalName = null;
        public Identifier dangerousGoodsUNIdentifier = null;
        public ArrayList<Contact> contact = new ArrayList<Contact>();
        
        public String getDangerousGoodsDescription() { return dangerousGoodsDescription; }
        public DangerousGoodsInformation setDangerousGoodsDescription(String value) { this.dangerousGoodsDescription = value; return this; }
        public String getDangerousGoodsShippingName() { return dangerousGoodsShippingName; }
        public DangerousGoodsInformation setDangerousGoodsShippingName(String value) { this.dangerousGoodsShippingName = value; return this; }
        public String getDangerousGoodsTechnicalName() { return dangerousGoodsTechnicalName; }
        public DangerousGoodsInformation setDangerousGoodsTechnicalName(String value) { this.dangerousGoodsTechnicalName = value; return this; }
        public Identifier getDangerousGoodsUNIdentifier() { return dangerousGoodsUNIdentifier; }
        public DangerousGoodsInformation setDangerousGoodsUNIdentifier(Identifier value) { this.dangerousGoodsUNIdentifier = value; return this; }
        public ArrayList<Contact> getContact() { return contact; }
        public DangerousGoodsInformation setContact(ArrayList<Contact> value) { this.contact = 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; }
    }

    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 ItemDataTradingPartnerDependent
    {
        public String countryOfOrigin = null;
        public TimeMeasurement minimumRemainingShelfLifeInbound = null;
        public TimeMeasurement minimumRemainingShelfLifeOutbound = null;
        public Quantity orderQuantityMaximum = null;
        public Quantity orderQuantityMinimum = null;
        public Quantity orderQuantityMultiple = null;
        public String qualityControlCode = null;
        public TimeMeasurement quarantinePeriod = null;
        public TimeMeasurement tradeItemProductionLeadTime = null;
        public TimeMeasurement tradeItemShipmentLeadTime = null;
        public String tradeItemSpecificUnitOfMeasure = null;
        public Date tradeItemSubstitutionDateTime = null;
        public ArrayList<ItemDataLogisticUnitInformation> itemDataLogisticUnitInformation = new ArrayList<ItemDataLogisticUnitInformation>();
        public ArrayList<ItemDataStockRequirements> itemDataStockRequirements = new ArrayList<ItemDataStockRequirements>();
        public ArrayList<AdministrativeUnit> administrativeUnitOfReceiver = new ArrayList<AdministrativeUnit>();
        public AvpList avpList = null;
        public ArrayList<TransactionalPartyInRole> originatingParty = new ArrayList<TransactionalPartyInRole>();
        public TransactionalParty receiver = null;
        public TransactionalParty shipper = null;
        public Ecom_TradeItemIdentification substituteItem = null;
        
        public String getCountryOfOrigin() { return countryOfOrigin; }
        public ItemDataTradingPartnerDependent setCountryOfOrigin(String value) { this.countryOfOrigin = value; return this; }
        public TimeMeasurement getMinimumRemainingShelfLifeInbound() { return minimumRemainingShelfLifeInbound; }
        public ItemDataTradingPartnerDependent setMinimumRemainingShelfLifeInbound(TimeMeasurement value) { this.minimumRemainingShelfLifeInbound = value; return this; }
        public TimeMeasurement getMinimumRemainingShelfLifeOutbound() { return minimumRemainingShelfLifeOutbound; }
        public ItemDataTradingPartnerDependent setMinimumRemainingShelfLifeOutbound(TimeMeasurement value) { this.minimumRemainingShelfLifeOutbound = value; return this; }
        public Quantity getOrderQuantityMaximum() { return orderQuantityMaximum; }
        public ItemDataTradingPartnerDependent setOrderQuantityMaximum(Quantity value) { this.orderQuantityMaximum = value; return this; }
        public Quantity getOrderQuantityMinimum() { return orderQuantityMinimum; }
        public ItemDataTradingPartnerDependent setOrderQuantityMinimum(Quantity value) { this.orderQuantityMinimum = value; return this; }
        public Quantity getOrderQuantityMultiple() { return orderQuantityMultiple; }
        public ItemDataTradingPartnerDependent setOrderQuantityMultiple(Quantity value) { this.orderQuantityMultiple = value; return this; }
        public String getQualityControlCode() { return qualityControlCode; }
        public ItemDataTradingPartnerDependent setQualityControlCode(String value) { this.qualityControlCode = value; return this; }
        public TimeMeasurement getQuarantinePeriod() { return quarantinePeriod; }
        public ItemDataTradingPartnerDependent setQuarantinePeriod(TimeMeasurement value) { this.quarantinePeriod = value; return this; }
        public TimeMeasurement getTradeItemProductionLeadTime() { return tradeItemProductionLeadTime; }
        public ItemDataTradingPartnerDependent setTradeItemProductionLeadTime(TimeMeasurement value) { this.tradeItemProductionLeadTime = value; return this; }
        public TimeMeasurement getTradeItemShipmentLeadTime() { return tradeItemShipmentLeadTime; }
        public ItemDataTradingPartnerDependent setTradeItemShipmentLeadTime(TimeMeasurement value) { this.tradeItemShipmentLeadTime = value; return this; }
        public String getTradeItemSpecificUnitOfMeasure() { return tradeItemSpecificUnitOfMeasure; }
        public ItemDataTradingPartnerDependent setTradeItemSpecificUnitOfMeasure(String value) { this.tradeItemSpecificUnitOfMeasure = value; return this; }
        public Date getTradeItemSubstitutionDateTime() { return tradeItemSubstitutionDateTime; }
        public ItemDataTradingPartnerDependent setTradeItemSubstitutionDateTime(Date value) { this.tradeItemSubstitutionDateTime = value; return this; }
        public ArrayList<ItemDataLogisticUnitInformation> getItemDataLogisticUnitInformation() { return itemDataLogisticUnitInformation; }
        public ItemDataTradingPartnerDependent setItemDataLogisticUnitInformation(ArrayList<ItemDataLogisticUnitInformation> value) { this.itemDataLogisticUnitInformation = value; return this; }
        public ArrayList<ItemDataStockRequirements> getItemDataStockRequirements() { return itemDataStockRequirements; }
        public ItemDataTradingPartnerDependent setItemDataStockRequirements(ArrayList<ItemDataStockRequirements> value) { this.itemDataStockRequirements = value; return this; }
        public ArrayList<AdministrativeUnit> getAdministrativeUnitOfReceiver() { return administrativeUnitOfReceiver; }
        public ItemDataTradingPartnerDependent setAdministrativeUnitOfReceiver(ArrayList<AdministrativeUnit> value) { this.administrativeUnitOfReceiver = value; return this; }
        public AvpList getAvpList() { return avpList; }
        public ItemDataTradingPartnerDependent setAvpList(AvpList value) { this.avpList = value; return this; }
        public ArrayList<TransactionalPartyInRole> getOriginatingParty() { return originatingParty; }
        public ItemDataTradingPartnerDependent setOriginatingParty(ArrayList<TransactionalPartyInRole> value) { this.originatingParty = value; return this; }
        public TransactionalParty getReceiver() { return receiver; }
        public ItemDataTradingPartnerDependent setReceiver(TransactionalParty value) { this.receiver = value; return this; }
        public TransactionalParty getShipper() { return shipper; }
        public ItemDataTradingPartnerDependent setShipper(TransactionalParty value) { this.shipper = value; return this; }
        public Ecom_TradeItemIdentification getSubstituteItem() { return substituteItem; }
        public ItemDataTradingPartnerDependent setSubstituteItem(Ecom_TradeItemIdentification value) { this.substituteItem = value; return this; }
    }

    public static class TimeMeasurement
    {
        public String timeMeasurementUnitCode = null;
        public BigDecimal value = null;
        
        public String getTimeMeasurementUnitCode() { return timeMeasurementUnitCode; }
        public TimeMeasurement setTimeMeasurementUnitCode(String value) { this.timeMeasurementUnitCode = value; return this; }
        public BigDecimal getValue() { return value; }
        public TimeMeasurement setValue(BigDecimal value) { this.value = 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 ItemDataLogisticUnitInformation
    {
        public Measurement grossWeight = null;
        public Long maximumStackingFactor = null;
        public Measurement netWeight = null;
        public Long numberOfLayers = null;
        public String packageLevelCode = null;
        public String packageTypeCode = null;
        public Quantity tradeItemQuantity = null;
        public Quantity tradeItemQuantityPerLayer = null;
        public AvpList avpList = null;
        public ArrayList<Dimension> dimensionsOfLogisticUnit = new ArrayList<Dimension>();
        
        public Measurement getGrossWeight() { return grossWeight; }
        public ItemDataLogisticUnitInformation setGrossWeight(Measurement value) { this.grossWeight = value; return this; }
        public Long getMaximumStackingFactor() { return maximumStackingFactor; }
        public ItemDataLogisticUnitInformation setMaximumStackingFactor(Long value) { this.maximumStackingFactor = value; return this; }
        public Measurement getNetWeight() { return netWeight; }
        public ItemDataLogisticUnitInformation setNetWeight(Measurement value) { this.netWeight = value; return this; }
        public Long getNumberOfLayers() { return numberOfLayers; }
        public ItemDataLogisticUnitInformation setNumberOfLayers(Long value) { this.numberOfLayers = value; return this; }
        public String getPackageLevelCode() { return packageLevelCode; }
        public ItemDataLogisticUnitInformation setPackageLevelCode(String value) { this.packageLevelCode = value; return this; }
        public String getPackageTypeCode() { return packageTypeCode; }
        public ItemDataLogisticUnitInformation setPackageTypeCode(String value) { this.packageTypeCode = value; return this; }
        public Quantity getTradeItemQuantity() { return tradeItemQuantity; }
        public ItemDataLogisticUnitInformation setTradeItemQuantity(Quantity value) { this.tradeItemQuantity = value; return this; }
        public Quantity getTradeItemQuantityPerLayer() { return tradeItemQuantityPerLayer; }
        public ItemDataLogisticUnitInformation setTradeItemQuantityPerLayer(Quantity value) { this.tradeItemQuantityPerLayer = value; return this; }
        public AvpList getAvpList() { return avpList; }
        public ItemDataLogisticUnitInformation setAvpList(AvpList value) { this.avpList = value; return this; }
        public ArrayList<Dimension> getDimensionsOfLogisticUnit() { return dimensionsOfLogisticUnit; }
        public ItemDataLogisticUnitInformation setDimensionsOfLogisticUnit(ArrayList<Dimension> value) { this.dimensionsOfLogisticUnit = value; return this; }
    }

    public static class Dimension
    {
        public Measurement depth = null;
        public Measurement height = null;
        public Measurement width = null;
        
        public Measurement getDepth() { return depth; }
        public Dimension setDepth(Measurement value) { this.depth = value; return this; }
        public Measurement getHeight() { return height; }
        public Dimension setHeight(Measurement value) { this.height = value; return this; }
        public Measurement getWidth() { return width; }
        public Dimension setWidth(Measurement value) { this.width = value; return this; }
    }

    public static class ItemDataStockRequirements
    {
        public Quantity requiredStockLevel = null;
        public Date requiredStockLevelValidityDateTime = null;
        public String stockRequirementTypeCode = null;
        
        public Quantity getRequiredStockLevel() { return requiredStockLevel; }
        public ItemDataStockRequirements setRequiredStockLevel(Quantity value) { this.requiredStockLevel = value; return this; }
        public Date getRequiredStockLevelValidityDateTime() { return requiredStockLevelValidityDateTime; }
        public ItemDataStockRequirements setRequiredStockLevelValidityDateTime(Date value) { this.requiredStockLevelValidityDateTime = value; return this; }
        public String getStockRequirementTypeCode() { return stockRequirementTypeCode; }
        public ItemDataStockRequirements setStockRequirementTypeCode(String value) { this.stockRequirementTypeCode = value; return this; }
    }

    public static class TransactionalPartyInRole
    {
        public String partyRoleCode = null;
        public TransactionalParty transactionalParty = null;
        
        public String getPartyRoleCode() { return partyRoleCode; }
        public TransactionalPartyInRole setPartyRoleCode(String value) { this.partyRoleCode = value; return this; }
        public TransactionalParty getTransactionalParty() { return transactionalParty; }
        public TransactionalPartyInRole setTransactionalParty(TransactionalParty value) { this.transactionalParty = value; return this; }
    }

    public static class LowerLevelTradeItem extends Ecom_TradeItemIdentification
    {
        public BigDecimal quantityOfLowerLevelTradeItem = null;
        
        public BigDecimal getQuantityOfLowerLevelTradeItem() { return quantityOfLowerLevelTradeItem; }
        public LowerLevelTradeItem setQuantityOfLowerLevelTradeItem(BigDecimal value) { this.quantityOfLowerLevelTradeItem = value; return this; }
    }

}

Java GetItemDataNotificationByIdentifier 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/itemDataNotification/{OwnerGln}/{ItemDataNotificationIdentification} 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

{
	dataRecipient: 
	{
		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
			}
		]
	},
	dataSource: 
	{
		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
			}
		]
	},
	itemDataNotificationIdentification: String,
	itemDataNotificationLineItem: 
	[
		{
			brandName: String,
			gpcCategoryCode: String,
			isTheProductVariantPreferred: False,
			lineItemNumber: 0,
			parentLineItemNumber: 0,
			productVariantIdentifier: 
			{
				value: String,
				identificationSchemeAgencyCodeCodeListVersion: String,
				identificationSchemeAgencyName: String,
				identificationSchemeName: String
			},
			quantityOfItemTypes: 0,
			quantityOfItemUnits: 0,
			tradeItemDescription: 
			[
				String
			],
			tradeItemUnitDescriptorCode: String,
			itemDataTradingPartnerNeutral: 
			{
				cancelledDateTime: 0001-01-01,
				discontinuedDateTime: 0001-01-01,
				endAvailabilityDateTime: 0001-01-01,
				maximumStackingFactor: 0,
				tradeItemBaseUnitOfMeasure: String,
				tradeItemClassificationCode: 
				[
					{
						value: String,
						additionalTradeItemClassificationCodeListCode: String,
						additionalTradeItemClassificationCodeListVersion: String,
						codeDescription: String
					}
				],
				warehouseABCClassificationCode: String,
				itemDataWeightAndDimension: 
				{
					depth: 
					{
						value: 0,
						codeListVersion: String,
						measurementUnitCode: String
					},
					diameter: 
					{
						value: 0,
						codeListVersion: String,
						measurementUnitCode: String
					},
					grossWeight: 
					{
						value: 0,
						codeListVersion: String,
						measurementUnitCode: String
					},
					height: 
					{
						value: 0,
						codeListVersion: String,
						measurementUnitCode: String
					},
					netWeight: 
					{
						value: 0,
						codeListVersion: String,
						measurementUnitCode: String
					},
					width: 
					{
						value: 0,
						codeListVersion: String,
						measurementUnitCode: String
					}
				},
				handlingInstruction: 
				[
					{
						handlingInstructionCode: String,
						handlingInstructionText: String,
						printingInstructionCode: 
						[
							String
						],
						storageTemperature: 
						{
							maximumTemperature: 
							{
								value: 0,
								temperatureMeasurementUnitCode: String
							},
							minimumTemperature: 
							{
								value: 0,
								temperatureMeasurementUnitCode: String
							}
						},
						transportTemperature: 
						{
							maximumTemperature: 
							{
								value: 0,
								temperatureMeasurementUnitCode: String
							},
							minimumTemperature: 
							{
								value: 0,
								temperatureMeasurementUnitCode: String
							}
						}
					}
				],
				dangerousGoodsInformation: 
				[
					{
						dangerousGoodsDescription: String,
						dangerousGoodsShippingName: String,
						dangerousGoodsTechnicalName: String,
						dangerousGoodsUNIdentifier: 
						{
							authority: String,
							text: String
						},
						contact: 
						[
							{
								contactTypeCode: String,
								personName: String,
								departmentName: String,
								jobTitle: String,
								responsibility: String,
								communicationChannel: 
								[
									{
										communicationChannelCode: String,
										communicationChannelName: String,
										communicationValue: String
									}
								]
							}
						]
					}
				],
				administrativeUnitOfLogisticServiceBuyer: 
				{
					typeCode: String,
					gln: String,
					internalIdentification: String
				},
				avpList: 
				[
					{
						code: String,
						value: String
					}
				]
			},
			itemDataTradingPartnerDependent: 
			[
				{
					countryOfOrigin: String,
					minimumRemainingShelfLifeInbound: 
					{
						timeMeasurementUnitCode: String,
						value: 0
					},
					minimumRemainingShelfLifeOutbound: 
					{
						timeMeasurementUnitCode: String,
						value: 0
					},
					orderQuantityMaximum: 
					{
						value: 0,
						measurementUnitCode: String,
						codeListVersion: String
					},
					orderQuantityMinimum: 
					{
						value: 0,
						measurementUnitCode: String,
						codeListVersion: String
					},
					orderQuantityMultiple: 
					{
						value: 0,
						measurementUnitCode: String,
						codeListVersion: String
					},
					qualityControlCode: String,
					quarantinePeriod: 
					{
						timeMeasurementUnitCode: String,
						value: 0
					},
					tradeItemProductionLeadTime: 
					{
						timeMeasurementUnitCode: String,
						value: 0
					},
					tradeItemShipmentLeadTime: 
					{
						timeMeasurementUnitCode: String,
						value: 0
					},
					tradeItemSpecificUnitOfMeasure: String,
					tradeItemSubstitutionDateTime: 0001-01-01,
					itemDataLogisticUnitInformation: 
					[
						{
							grossWeight: 
							{
								value: 0,
								codeListVersion: String,
								measurementUnitCode: String
							},
							maximumStackingFactor: 0,
							netWeight: 
							{
								value: 0,
								codeListVersion: String,
								measurementUnitCode: String
							},
							numberOfLayers: 0,
							packageLevelCode: String,
							packageTypeCode: String,
							tradeItemQuantity: 
							{
								value: 0,
								measurementUnitCode: String,
								codeListVersion: String
							},
							tradeItemQuantityPerLayer: 
							{
								value: 0,
								measurementUnitCode: String,
								codeListVersion: String
							},
							avpList: 
							{
								code: String,
								value: String
							},
							dimensionsOfLogisticUnit: 
							[
								{
									depth: 
									{
										value: 0,
										codeListVersion: String,
										measurementUnitCode: String
									},
									height: 
									{
										value: 0,
										codeListVersion: String,
										measurementUnitCode: String
									},
									width: 
									{
										value: 0,
										codeListVersion: String,
										measurementUnitCode: String
									}
								}
							]
						}
					],
					itemDataStockRequirements: 
					[
						{
							requiredStockLevel: 
							{
								value: 0,
								measurementUnitCode: String,
								codeListVersion: String
							},
							requiredStockLevelValidityDateTime: 0001-01-01,
							stockRequirementTypeCode: String
						}
					],
					administrativeUnitOfReceiver: 
					[
						{
							typeCode: String,
							gln: String,
							internalIdentification: String
						}
					],
					avpList: 
					{
						code: String,
						value: String
					},
					originatingParty: 
					[
						{
							partyRoleCode: String,
							transactionalParty: 
							{
								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
									}
								]
							}
						}
					],
					receiver: 
					{
						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
							}
						]
					},
					shipper: 
					{
						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
							}
						]
					},
					substituteItem: 
					{
						additionalTradeItemIdentification: 
						[
							{
								value: String,
								code: String
							}
						],
						gtin: String
					}
				}
			],
			lowerLevelTradeItem: 
			[
				{
					quantityOfLowerLevelTradeItem: 0,
					additionalTradeItemIdentification: 
					[
						{
							value: String,
							code: String
						}
					],
					gtin: String
				}
			],
			avpList: 
			[
				{
					code: String,
					value: String
				}
			],
			additionalTradeItemIdentification: 
			[
				{
					value: String,
					code: String
				}
			],
			gtin: String
		}
	],
	currencyCode: String,
	documentActionCode: ADD,
	documentStatusCode: ADDITIONAL_TRANSMISSION,
	documentStructureVersion: String,
	lastUpdateDateTime: 0001-01-01,
	revisionNumber: 0,
	avpList: 
	[
		{
			code: String,
			value: String
		}
	]
}