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
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using DX.STF.Application.ClientApi.Messages.ItemDataNotification;
using DX.STF.Models.Dto.GS1;

namespace DX.STF.Application.ClientApi.Messages.ItemDataNotification
{
    ///<summary>
    ///Item Data Notification
    ///</summary>
    [Api(Description="Item Data Notification")]
    [ApiResponse(Description="ItemDataNotification data", IsDefaultResponse=true, StatusCode=200)]
    [ApiResponse(Description="No Content", ResponseType=typeof(ServiceStack.IReturnVoid), StatusCode=204)]
    [ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType=typeof(System.ArgumentOutOfRangeException), StatusCode=400)]
    public partial class GetItemDataNotificationByIdentifier
    {
        ///<summary>
        ///Owner GLN
        ///</summary>
        [ApiMember(Description="Owner GLN", ExcludeInSchema=true, ParameterType="path")]
        public virtual string OwnerGln { get; set; }

        ///<summary>
        ///ItemDataNotification ID or Token
        ///</summary>
        [ApiMember(Description="ItemDataNotification ID or Token", ExcludeInSchema=true, ParameterType="path")]
        public virtual string ItemDataNotificationIdentification { get; set; }
    }

}

namespace DX.STF.Models.Dto.GS1
{
    public partial class AdditionalTradeItemClassificationCode
    {
        public virtual string Value { get; set; }
        public virtual string AdditionalTradeItemClassificationCodeListCode { get; set; }
        public virtual string AdditionalTradeItemClassificationCodeListVersion { get; set; }
        public virtual string CodeDescription { get; set; }
    }

    public partial class AdditionalTradeItemIdentification
    {
        public virtual string Value { get; set; }
        public virtual string Code { get; set; }
    }

    public partial class Address
    {
        public virtual string StreetAddressOne { get; set; }
        public virtual string StreetAddressTwo { get; set; }
        public virtual string StreetAddressThree { get; set; }
        public virtual string City { get; set; }
        public virtual string PostalCode { get; set; }
        public virtual string ProvinceCode { get; set; }
        public virtual string CountryCode { get; set; }
    }

    public partial class AdministrativeUnit
    {
        public virtual string TypeCode { get; set; }
        public virtual string Gln { get; set; }
        public virtual string InternalIdentification { get; set; }
    }

    public partial class AvpList
    {
        public virtual string Code { get; set; }
        public virtual string Value { get; set; }
    }

    public partial class BaseDocument
    {
        public virtual string CurrencyCode { get; set; }
        public virtual DateTime CreationDateTime { get; set; }
        public virtual DocumentAction DocumentActionCode { get; set; }
        public virtual DocumentStatus DocumentStatusCode { get; set; }
        public virtual string DocumentStructureVersion { get; set; }
        public virtual DateTime? LastUpdateDateTime { get; set; }
        public virtual long? RevisionNumber { get; set; }
        public virtual List<AvpList> AvpList { get; set; } = [];
    }

    public partial class CommunicationChannel
    {
        public virtual string CommunicationChannelCode { get; set; }
        public virtual string CommunicationChannelName { get; set; }
        public virtual string CommunicationValue { get; set; }
    }

    public partial class Contact
    {
        public virtual string ContactTypeCode { get; set; }
        public virtual string PersonName { get; set; }
        public virtual string DepartmentName { get; set; }
        public virtual string JobTitle { get; set; }
        public virtual string Responsibility { get; set; }
        public virtual List<CommunicationChannel> CommunicationChannel { get; set; } = [];
    }

    public partial class DangerousGoodsInformation
    {
        public virtual string DangerousGoodsDescription { get; set; }
        public virtual string DangerousGoodsShippingName { get; set; }
        public virtual string DangerousGoodsTechnicalName { get; set; }
        public virtual Identifier dangerousGoodsUNIdentifier { get; set; }
        public virtual List<Contact> Contact { get; set; } = [];
    }

    public partial class Dimension
    {
        public virtual Measurement Depth { get; set; }
        public virtual Measurement Height { get; set; }
        public virtual Measurement Width { get; set; }
    }

    public enum DocumentAction
    {
        ADD,
        CHANGE_BY_REFRESH,
        DELETE,
        REJECTED,
    }

    public enum DocumentStatus
    {
        ADDITIONAL_TRANSMISSION,
        COPY,
        ORIGINAL,
    }

    public partial class Ecom_PartyIdentificationType
    {
        public virtual string Gln { get; set; }
        public virtual string Name { get; set; }
        public virtual List<AvpList> AdditionalPartyIdentification { get; set; } = [];
    }

    public partial class Ecom_TradeItemIdentification
    {
        public virtual List<AdditionalTradeItemIdentification> AdditionalTradeItemIdentification { get; set; } = [];
        public virtual string Gtin { get; set; }
    }

    public partial class FinancialAccount
    {
        public virtual string Number { get; set; }
        public virtual string NumberTypeCode { get; set; }
        public virtual string Name { get; set; }
    }

    public partial class FinancialInstitutionInformation
    {
        public virtual string FinancialInstitutionBranchName { get; set; }
        public virtual string FinancialInstitutionName { get; set; }
        public virtual FinancialRoutingNumber FinancialRoutingNumber { get; set; }
        public virtual FinancialAccount FinancialAccount { get; set; }
        public virtual string SwiftCode { get; set; }
        public virtual string ExportersCode { get; set; }
    }

    public partial class FinancialRoutingNumber
    {
        public virtual string Number { get; set; }
        public virtual string NumberTypeCode { get; set; }
    }

    public partial class HandlingInstruction
    {
        public virtual string HandlingInstructionCode { get; set; }
        public virtual string HandlingInstructionText { get; set; }
        public virtual List<string> PrintingInstructionCode { get; set; } = [];
        public virtual TemperatureRange storageTemperature { get; set; }
        public virtual TemperatureRange TransportTemperature { get; set; }
    }

    [DataContract]
    public partial class Identifier
    {
        [DataMember(Name="authority")]
        public virtual string Authority { get; set; }

        [DataMember(Name="text")]
        public virtual string Text { get; set; }
    }

    public partial class IdentifierType
    {
        public virtual string Value { get; set; }
        public virtual string IdentificationSchemeAgencyCodeCodeListVersion { get; set; }
        public virtual string IdentificationSchemeAgencyName { get; set; }
        public virtual string IdentificationSchemeName { get; set; }
    }

    public partial class ItemDataLogisticUnitInformation
    {
        public virtual Measurement grossWeight { get; set; }
        public virtual long? MaximumStackingFactor { get; set; }
        public virtual Measurement NetWeight { get; set; }
        public virtual long? NumberOfLayers { get; set; }
        public virtual string PackageLevelCode { get; set; }
        public virtual string PackageTypeCode { get; set; }
        public virtual Quantity TradeItemQuantity { get; set; }
        public virtual Quantity TradeItemQuantityPerLayer { get; set; }
        public virtual AvpList AvpList { get; set; }
        public virtual List<Dimension> dimensionsOfLogisticUnit { get; set; } = [];
    }

    public partial class ItemDataNotificationLineItem
        : Ecom_TradeItemIdentification
    {
        public virtual string BrandName { get; set; }
        public virtual string GpcCategoryCode { get; set; }
        public virtual bool? IsTheProductVariantPreferred { get; set; }
        public virtual long? LineItemNumber { get; set; }
        public virtual long? ParentLineItemNumber { get; set; }
        public virtual IdentifierType ProductVariantIdentifier { get; set; }
        public virtual decimal? QuantityOfItemTypes { get; set; }
        public virtual decimal? QuantityOfItemUnits { get; set; }
        public virtual List<string> TradeItemDescription { get; set; } = [];
        public virtual string TradeItemUnitDescriptorCode { get; set; }
        public virtual ItemDataTradingPartnerNeutral ItemDataTradingPartnerNeutral { get; set; }
        public virtual List<ItemDataTradingPartnerDependent> ItemDataTradingPartnerDependent { get; set; } = [];
        public virtual List<LowerLevelTradeItem> LowerLevelTradeItem { get; set; } = [];
        public virtual List<AvpList> AvpList { get; set; } = [];
    }

    public partial class ItemDataNotificationMessage
        : BaseDocument
    {
        public virtual TransactionalParty DataRecipient { get; set; }
        public virtual TransactionalParty DataSource { get; set; }
        public virtual string ItemDataNotificationIdentification { get; set; }
        public virtual List<ItemDataNotificationLineItem> ItemDataNotificationLineItem { get; set; } = [];
    }

    public partial class ItemDataStockRequirements
    {
        public virtual Quantity requiredStockLevel { get; set; }
        public virtual DateTime? requiredStockLevelValidityDateTime { get; set; }
        public virtual string StockRequirementTypeCode { get; set; }
    }

    public partial class ItemDataTradingPartnerDependent
    {
        public virtual string CountryOfOrigin { get; set; }
        public virtual TimeMeasurement MinimumRemainingShelfLifeInbound { get; set; }
        public virtual TimeMeasurement MinimumRemainingShelfLifeOutbound { get; set; }
        public virtual Quantity OrderQuantityMaximum { get; set; }
        public virtual Quantity OrderQuantityMinimum { get; set; }
        public virtual Quantity OrderQuantityMultiple { get; set; }
        public virtual string QualityControlCode { get; set; }
        public virtual TimeMeasurement QuarantinePeriod { get; set; }
        public virtual TimeMeasurement TradeItemProductionLeadTime { get; set; }
        public virtual TimeMeasurement TradeItemShipmentLeadTime { get; set; }
        public virtual string TradeItemSpecificUnitOfMeasure { get; set; }
        public virtual DateTime? TradeItemSubstitutionDateTime { get; set; }
        public virtual List<ItemDataLogisticUnitInformation> ItemDataLogisticUnitInformation { get; set; } = [];
        public virtual List<ItemDataStockRequirements> ItemDataStockRequirements { get; set; } = [];
        public virtual List<AdministrativeUnit> AdministrativeUnitOfReceiver { get; set; } = [];
        public virtual AvpList AvpList { get; set; }
        public virtual List<TransactionalPartyInRole> originatingParty { get; set; } = [];
        public virtual TransactionalParty Receiver { get; set; }
        public virtual TransactionalParty Shipper { get; set; }
        public virtual Ecom_TradeItemIdentification SubstituteItem { get; set; }
    }

    public partial class ItemDataTradingPartnerNeutral
    {
        public virtual DateTime? CancelledDateTime { get; set; }
        public virtual DateTime? DiscontinuedDateTime { get; set; }
        public virtual DateTime EffectiveDateTime { get; set; }
        public virtual DateTime? EndAvailabilityDateTime { get; set; }
        public virtual int? MaximumStackingFactor { get; set; }
        public virtual DateTime StartAvailabilityDateTime { get; set; }
        public virtual string TradeItemBaseUnitOfMeasure { get; set; }
        public virtual List<AdditionalTradeItemClassificationCode> TradeItemClassificationCode { get; set; } = [];
        public virtual string WarehouseABCClassificationCode { get; set; }
        public virtual ItemDataWeightAndDimension ItemDataWeightAndDimension { get; set; }
        public virtual List<HandlingInstruction> HandlingInstruction { get; set; } = [];
        public virtual List<DangerousGoodsInformation> DangerousGoodsInformation { get; set; } = [];
        public virtual AdministrativeUnit AdministrativeUnitOfLogisticServiceBuyer { get; set; }
        public virtual List<AvpList> AvpList { get; set; } = [];
    }

    public partial class ItemDataWeightAndDimension
    {
        public virtual Measurement Depth { get; set; }
        public virtual Measurement Diameter { get; set; }
        public virtual Measurement GrossWeight { get; set; }
        public virtual Measurement height { get; set; }
        public virtual Measurement NetWeight { get; set; }
        public virtual Measurement Width { get; set; }
    }

    public partial class LowerLevelTradeItem
        : Ecom_TradeItemIdentification
    {
        public virtual decimal? QuantityOfLowerLevelTradeItem { get; set; }
    }

    public partial class Measurement
    {
        public virtual decimal? Value { get; set; }
        public virtual string CodeListVersion { get; set; }
        public virtual string MeasurementUnitCode { get; set; }
    }

    public partial class Quantity
    {
        public virtual decimal? Value { get; set; }
        public virtual string MeasurementUnitCode { get; set; }
        public virtual string CodeListVersion { get; set; }
    }

    public partial class TemperatureMeasurement
    {
        public virtual decimal? Value { get; set; }
        public virtual string TemperatureMeasurementUnitCode { get; set; }
    }

    public partial class TemperatureRange
    {
        public virtual TemperatureMeasurement MaximumTemperature { get; set; }
        public virtual TemperatureMeasurement MinimumTemperature { get; set; }
    }

    public partial class TimeMeasurement
    {
        public virtual string TimeMeasurementUnitCode { get; set; }
        public virtual decimal? Value { get; set; }
    }

    public partial class TransactionalParty
        : Ecom_PartyIdentificationType
    {
        public virtual List<Contact> Contact { get; set; } = [];
        public virtual Address Address { get; set; }
        public virtual List<AvpList> CommunicationChannel { get; set; } = [];
        public virtual FinancialInstitutionInformation FinancialInstitutionInformation { get; set; }
        public virtual string DutyFeeTaxRegistration { get; set; }
        public virtual string EntityIdentification { get; set; }
    }

    public partial class TransactionalPartyInRole
    {
        public virtual string PartyRoleCode { get; set; }
        public virtual TransactionalParty TransactionalParty { get; set; }
    }

}

C# 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
		}
	]
}