DX STF Client API

<back to all web services

GetItemDataNotificationByGtin

Item Data Notification Requests

Item Data Notification

Requires Authentication
The following routes are available for this service:
GET/api/itemDataNotification/gtin/{Gtin}Get specific ItemDataNotification by Gtin
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
Object = TypeVar('Object')


class DocumentAction(str, Enum):
    ADD = 'ADD'
    CHANGE_BY_REFRESH = 'CHANGE_BY_REFRESH'
    DELETE = 'DELETE'
    REJECTED = 'REJECTED'


class DocumentStatus(str, Enum):
    ADDITIONAL_TRANSMISSION = 'ADDITIONAL_TRANSMISSION'
    COPY = 'COPY'
    ORIGINAL = 'ORIGINAL'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AvpList:
    code: Optional[str] = None
    value: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseDocument:
    currency_code: Optional[str] = None
    creation_date_time: datetime.datetime = datetime.datetime(1, 1, 1)
    document_action_code: Optional[DocumentAction] = None
    document_status_code: Optional[DocumentStatus] = None
    document_structure_version: Optional[str] = None
    last_update_date_time: Optional[datetime.datetime] = None
    revision_number: Optional[int] = None
    avp_list: List[AvpList] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Ecom_PartyIdentificationType:
    gln: Optional[str] = None
    name: Optional[str] = None
    additional_party_identification: List[AvpList] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CommunicationChannel:
    communication_channel_code: Optional[str] = None
    communication_channel_name: Optional[str] = None
    communication_value: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Contact:
    contact_type_code: Optional[str] = None
    person_name: Optional[str] = None
    department_name: Optional[str] = None
    job_title: Optional[str] = None
    responsibility: Optional[str] = None
    communication_channel: List[CommunicationChannel] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
    street_address_one: Optional[str] = None
    street_address_two: Optional[str] = None
    street_address_three: Optional[str] = None
    city: Optional[str] = None
    postal_code: Optional[str] = None
    province_code: Optional[str] = None
    country_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialRoutingNumber:
    number: Optional[str] = None
    number_type_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialAccount:
    number: Optional[str] = None
    number_type_code: Optional[str] = None
    name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class FinancialInstitutionInformation:
    financial_institution_branch_name: Optional[str] = None
    financial_institution_name: Optional[str] = None
    financial_routing_number: Optional[FinancialRoutingNumber] = None
    financial_account: Optional[FinancialAccount] = None
    swift_code: Optional[str] = None
    exporters_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalParty(Ecom_PartyIdentificationType):
    contact: List[Contact] = field(default_factory=list)
    address: Optional[Address] = None
    communication_channel: List[AvpList] = field(default_factory=list)
    financial_institution_information: Optional[FinancialInstitutionInformation] = None
    duty_fee_tax_registration: Optional[str] = None
    entity_identification: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdditionalTradeItemIdentification:
    value: Optional[str] = None
    code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Ecom_TradeItemIdentification:
    additional_trade_item_identification: List[AdditionalTradeItemIdentification] = field(default_factory=list)
    gtin: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IdentifierType:
    value: Optional[str] = None
    identification_scheme_agency_code_code_list_version: Optional[str] = None
    identification_scheme_agency_name: Optional[str] = None
    identification_scheme_name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdditionalTradeItemClassificationCode:
    value: Optional[str] = None
    additional_trade_item_classification_code_list_code: Optional[str] = None
    additional_trade_item_classification_code_list_version: Optional[str] = None
    code_description: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Measurement:
    value: Optional[Decimal] = None
    code_list_version: Optional[str] = None
    measurement_unit_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataWeightAndDimension:
    depth: Optional[Measurement] = None
    diameter: Optional[Measurement] = None
    gross_weight: Optional[Measurement] = None
    height: Optional[Measurement] = None
    net_weight: Optional[Measurement] = None
    width: Optional[Measurement] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TemperatureMeasurement:
    value: Optional[Decimal] = None
    temperature_measurement_unit_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TemperatureRange:
    maximum_temperature: Optional[TemperatureMeasurement] = None
    minimum_temperature: Optional[TemperatureMeasurement] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HandlingInstruction:
    handling_instruction_code: Optional[str] = None
    handling_instruction_text: Optional[str] = None
    printing_instruction_code: List[str] = field(default_factory=list)
    storage_temperature: Optional[TemperatureRange] = None
    transport_temperature: Optional[TemperatureRange] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Identifier:
    authority: Optional[str] = None
    text: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DangerousGoodsInformation:
    dangerous_goods_description: Optional[str] = None
    dangerous_goods_shipping_name: Optional[str] = None
    dangerous_goods_technical_name: Optional[str] = None
    dangerous_goods_u_n_identifier: Optional[Identifier] = None
    contact: List[Contact] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdministrativeUnit:
    type_code: Optional[str] = None
    gln: Optional[str] = None
    internal_identification: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataTradingPartnerNeutral:
    cancelled_date_time: Optional[datetime.datetime] = None
    discontinued_date_time: Optional[datetime.datetime] = None
    effective_date_time: datetime.datetime = datetime.datetime(1, 1, 1)
    end_availability_date_time: Optional[datetime.datetime] = None
    maximum_stacking_factor: Optional[int] = None
    start_availability_date_time: datetime.datetime = datetime.datetime(1, 1, 1)
    trade_item_base_unit_of_measure: Optional[str] = None
    trade_item_classification_code: List[AdditionalTradeItemClassificationCode] = field(default_factory=list)
    warehouse_a_b_c_classification_code: Optional[str] = None
    item_data_weight_and_dimension: Optional[ItemDataWeightAndDimension] = None
    handling_instruction: List[HandlingInstruction] = field(default_factory=list)
    dangerous_goods_information: List[DangerousGoodsInformation] = field(default_factory=list)
    administrative_unit_of_logistic_service_buyer: Optional[AdministrativeUnit] = None
    avp_list: List[AvpList] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TimeMeasurement:
    time_measurement_unit_code: Optional[str] = None
    value: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Quantity:
    value: Optional[Decimal] = None
    measurement_unit_code: Optional[str] = None
    code_list_version: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Dimension:
    depth: Optional[Measurement] = None
    height: Optional[Measurement] = None
    width: Optional[Measurement] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataLogisticUnitInformation:
    gross_weight: Optional[Measurement] = None
    maximum_stacking_factor: Optional[int] = None
    net_weight: Optional[Measurement] = None
    number_of_layers: Optional[int] = None
    package_level_code: Optional[str] = None
    package_type_code: Optional[str] = None
    trade_item_quantity: Optional[Quantity] = None
    trade_item_quantity_per_layer: Optional[Quantity] = None
    avp_list: Optional[AvpList] = None
    dimensions_of_logistic_unit: List[Dimension] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataStockRequirements:
    required_stock_level: Optional[Quantity] = None
    required_stock_level_validity_date_time: Optional[datetime.datetime] = None
    stock_requirement_type_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalPartyInRole:
    party_role_code: Optional[str] = None
    transactional_party: Optional[TransactionalParty] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataTradingPartnerDependent:
    country_of_origin: Optional[str] = None
    minimum_remaining_shelf_life_inbound: Optional[TimeMeasurement] = None
    minimum_remaining_shelf_life_outbound: Optional[TimeMeasurement] = None
    order_quantity_maximum: Optional[Quantity] = None
    order_quantity_minimum: Optional[Quantity] = None
    order_quantity_multiple: Optional[Quantity] = None
    quality_control_code: Optional[str] = None
    quarantine_period: Optional[TimeMeasurement] = None
    trade_item_production_lead_time: Optional[TimeMeasurement] = None
    trade_item_shipment_lead_time: Optional[TimeMeasurement] = None
    trade_item_specific_unit_of_measure: Optional[str] = None
    trade_item_substitution_date_time: Optional[datetime.datetime] = None
    item_data_logistic_unit_information: List[ItemDataLogisticUnitInformation] = field(default_factory=list)
    item_data_stock_requirements: List[ItemDataStockRequirements] = field(default_factory=list)
    administrative_unit_of_receiver: List[AdministrativeUnit] = field(default_factory=list)
    avp_list: Optional[AvpList] = None
    originating_party: List[TransactionalPartyInRole] = field(default_factory=list)
    receiver: Optional[TransactionalParty] = None
    shipper: Optional[TransactionalParty] = None
    substitute_item: Optional[Ecom_TradeItemIdentification] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LowerLevelTradeItem(Ecom_TradeItemIdentification):
    quantity_of_lower_level_trade_item: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataNotificationLineItem(Ecom_TradeItemIdentification):
    brand_name: Optional[str] = None
    gpc_category_code: Optional[str] = None
    is_the_product_variant_preferred: Optional[bool] = None
    line_item_number: Optional[int] = None
    parent_line_item_number: Optional[int] = None
    product_variant_identifier: Optional[IdentifierType] = None
    quantity_of_item_types: Optional[Decimal] = None
    quantity_of_item_units: Optional[Decimal] = None
    trade_item_description: List[str] = field(default_factory=list)
    trade_item_unit_descriptor_code: Optional[str] = None
    item_data_trading_partner_neutral: Optional[ItemDataTradingPartnerNeutral] = None
    item_data_trading_partner_dependent: List[ItemDataTradingPartnerDependent] = field(default_factory=list)
    lower_level_trade_item: List[LowerLevelTradeItem] = field(default_factory=list)
    avp_list: List[AvpList] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ItemDataNotificationMessage(BaseDocument):
    data_recipient: Optional[TransactionalParty] = None
    data_source: Optional[TransactionalParty] = None
    item_data_notification_identification: Optional[str] = None
    item_data_notification_line_item: List[ItemDataNotificationLineItem] = field(default_factory=list)


# @Api(Description="Item Data Notification")
# @ApiResponse(Description="ItemDataNotification data", IsDefaultResponse=true, StatusCode=200)
# @ApiResponse(Description="No Content", ResponseType=typeof(IReturnVoid), StatusCode=204)
# @ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType=typeof(ArgumentOutOfRangeException), StatusCode=400)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetItemDataNotificationByGtin:
    """
    Item Data Notification
    """

    # @ApiMember(Description="Global Trade Item Number (GTIN)", ExcludeInSchema=true, ParameterType="path")
    gtin: Optional[str] = None
    """
    Global Trade Item Number (GTIN)
    """

Python GetItemDataNotificationByGtin 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/gtin/{Gtin} 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
		}
	]
}