| GET | /api/order/{Id} | Get specific order by Order Id |
|---|
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')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentIdentification:
identifier: Optional[str] = None
type: Optional[str] = None
creation_date_and_time: datetime.datetime = datetime.datetime(1, 1, 1)
@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 ContactInformation:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Partner:
identifier: Optional[Identifier] = None
contact_information: List[ContactInformation] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Header:
document_identification: Optional[DocumentIdentification] = None
sender: Optional[Partner] = None
receiver: Optional[Partner] = None
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_PartyIdentification:
additional_party_identification: List[AvpList] = field(default_factory=list)
gln: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Ecom_EntityIdentification:
entity_identification: Optional[str] = None
content_owner: Optional[Ecom_PartyIdentification] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Code:
value: Optional[str] = None
code_description: Optional[str] = None
code_list_agency_code_list_version: Optional[str] = None
code_list_agency_name: Optional[str] = None
code_list_name: Optional[str] = None
code_list_uri: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DateRange:
begin_date: Optional[datetime.datetime] = None
begin_time: Optional[datetime.datetime] = None
end_date: Optional[datetime.datetime] = None
end_time: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrderLogisticalDateInformation:
date_range_delivery_date_range: Optional[DateRange] = None
date_range_ship_date_range: Optional[DateRange] = None
date_range_delivery_date_range_at_ultimate_consignee: Optional[DateRange] = None
requested_delivery_date_time: Optional[datetime.datetime] = None
requested_ship_date_time: Optional[str] = None
requested_pick_up_date_time: Optional[datetime.datetime] = None
requested_delivery_date_time_at_ultimate_consignee: Optional[datetime.datetime] = None
@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 ShipmentTransportationInformation:
carrier: Optional[TransactionalParty] = None
freight_forwarder: Optional[TransactionalParty] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrderLogisticalInformation:
commodity_type_code: Optional[Code] = None
order_logistical_date_information: Optional[OrderLogisticalDateInformation] = None
inventory_location: Optional[TransactionalParty] = None
ship_from: Optional[TransactionalParty] = None
ship_to: Optional[TransactionalParty] = None
ultimate_consignee: Optional[TransactionalParty] = None
shipment_transportation_information: Optional[ShipmentTransportationInformation] = None
@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 DeliveryTermsLocation:
un_location_code: Optional[str] = None
gln: Optional[str] = None
additional_location_identification: List[AvpList] = field(default_factory=list)
sublocation_identification: Optional[str] = None
location_name: Optional[str] = None
location_specific_instructions: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeliveryTerms:
incoterms_code: Optional[str] = None
alternate_delivery_terms_code: Optional[str] = None
delivery_instructions: Optional[str] = None
delivery_cost_payment: Optional[str] = None
is_signature_required: Optional[str] = None
delivery_terms_location: Optional[DeliveryTermsLocation] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentReference:
creation_date_time: Optional[datetime.datetime] = None
revision_number: Optional[int] = None
line_item_number: Optional[int] = None
entity_identification: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReferencedOrder:
order_relationship: Optional[str] = None
document_reference: Optional[DocumentReference] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AllowanceCharge:
allowance_charge_amount: Optional[Decimal] = None
allowance_charge_percentage: Optional[Decimal] = None
allowance_charge_type: Optional[str] = None
allowance_or_charge_type: Optional[str] = None
amount_per_unit: Optional[Decimal] = None
base_amount: Optional[Decimal] = None
base_number_of_units: Optional[str] = None
bracket_identifier: Optional[str] = None
effective_date_type: Optional[datetime.datetime] = None
sequence_number: Optional[str] = None
settlement_type: Optional[str] = None
special_service_type: Optional[str] = None
allowance_charge_description: Optional[str] = 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 TransactionalItem:
measurement_unit_code: Optional[str] = None
measurement_type: Optional[str] = None
measurement_value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SerialNumberRange:
maximum_value: Optional[str] = None
minimum_value: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalItemDimension:
measurement_unit_code: Optional[str] = None
depth: Optional[str] = None
height: Optional[str] = None
width: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalItemLogisticUnitInformation:
number_of_layers: Optional[int] = None
number_of_units_per_layer: Optional[int] = None
number_of_units_per_pallet: Optional[int] = None
packaging_terms: Optional[str] = None
package_type_code: Optional[str] = None
maximum_stacking_factor: Optional[int] = None
returnable_package_transport_cost_payment: Optional[str] = None
dimensions_of_logistic_unit: List[TransactionalItemDimension] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalItemDataCarrierAndIdentification:
gs1_transactional_item_identification_key: Optional[str] = None
data_carrier: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TradeItemWaste:
waste_identification: Optional[str] = None
type_of_waste: List[AvpList] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalItemOrganicInformation:
is_trade_item_organic: Optional[bool] = None
organic_certification: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalItemData:
available_for_sale_date: Optional[datetime.datetime] = None
batch_number: Optional[str] = None
best_before_date: Optional[datetime.datetime] = None
country_of_origin: Optional[str] = None
item_expiration_date: Optional[datetime.datetime] = None
lot_number: Optional[str] = None
packaging_date: Optional[datetime.datetime] = None
production_date: Optional[datetime.datetime] = None
product_quality_indication: Optional[str] = None
sell_by_date: Optional[datetime.datetime] = None
serial_number: List[str] = field(default_factory=list)
shelf_life: Optional[str] = None
trade_item_quantity: Optional[int] = None
item_in_contact_with_food_product: Optional[bool] = None
transactional_item_weight: List[TransactionalItem] = field(default_factory=list)
transactional_item_volume: List[TransactionalItem] = field(default_factory=list)
serial_number_range: List[SerialNumberRange] = field(default_factory=list)
transactional_item_dimensions: List[TransactionalItemDimension] = field(default_factory=list)
transactional_item_logistic_unit_information: Optional[TransactionalItemLogisticUnitInformation] = None
transactional_item_data_carrier_and_identification: Optional[TransactionalItemDataCarrierAndIdentification] = None
trade_item_waste: List[TradeItemWaste] = field(default_factory=list)
transactional_item_organic_information: Optional[TransactionalItemOrganicInformation] = None
avp_list: List[AvpList] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Colour:
colour_code: Optional[str] = None
colour_description: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Size:
descriptive_size: Optional[str] = None
size_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TradeItemClassification:
gpc_category_code: Optional[str] = None
additional_trade_item_classification_code: List[AvpList] = field(default_factory=list)
gpc_category_name: Optional[str] = None
gpc_attribute: List[AvpList] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TransactionalTradeItem:
gtin: Optional[str] = None
additional_trade_item_identification: List[AvpList] = field(default_factory=list)
trade_item_quantity: Optional[Decimal] = None
trade_item_description: Optional[str] = None
product_variant_identifier: Optional[str] = None
item_type_code: Optional[str] = None
trade_item_data_owner: Optional[str] = None
butter_fat_reference: Optional[str] = None
transactional_item_data: List[TransactionalItemData] = field(default_factory=list)
colour: List[Colour] = field(default_factory=list)
size: Optional[Size] = None
trade_item_classification: Optional[TradeItemClassification] = None
avp_list: List[AvpList] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LeviedDutyFeeTax:
duty_fee_tax_amount: Optional[Decimal] = None
duty_fee_tax_basis_amount: Optional[Decimal] = None
duty_fee_tax_description: Optional[str] = None
duty_fee_tax_percentage: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrderLineItemDetail:
requested_quantity: Optional[Quantity] = None
order_logistical_information: Optional[OrderLogisticalInformation] = None
avp_list: List[AvpList] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrderLineItem:
free_goods_quantity: Optional[Quantity] = None
item_price_base_quantity: Optional[Quantity] = None
requested_quantity: Optional[Quantity] = None
line_item_action_code: Optional[str] = None
line_item_number: Optional[int] = None
list_price: Optional[Decimal] = None
monetary_amount_excluding_taxes: Optional[Decimal] = None
monetary_amount_including_taxes: Optional[Decimal] = None
net_amount: Optional[Decimal] = None
net_price: Optional[Decimal] = None
note: Optional[str] = None
order_line_item_instruction_code: Optional[str] = None
parent_line_item_number: Optional[Decimal] = None
recommended_retail_price: Optional[Decimal] = None
order_line_item_priority: Optional[str] = None
additional_order_line_instruction: List[AvpList] = field(default_factory=list)
allowance_charge: List[AllowanceCharge] = field(default_factory=list)
administrative_unit: List[AdministrativeUnit] = field(default_factory=list)
transactional_trade_item: Optional[TransactionalTradeItem] = None
levied_duty_fee_tax: Optional[LeviedDutyFeeTax] = None
contract: Optional[DocumentReference] = None
promotional_deal: Optional[DocumentReference] = None
purchase_conditions: Optional[DocumentReference] = None
avp_list: List[AvpList] = field(default_factory=list)
order_line_item_detail: List[OrderLineItemDetail] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Order(BaseDocument):
document_effective_date: Optional[datetime.datetime] = None
additional_order_instruction: Optional[str] = None
is_application_receipt_acknowledgement_required: Optional[bool] = None
is_order_free_of_excise_tax_duty: Optional[bool] = None
note: Optional[str] = None
order_entry_type: Optional[str] = None
order_instruction_code: Optional[str] = None
order_priority: Optional[str] = None
order_type_code: Optional[str] = None
total_monetary_amount_excluding_taxes: Optional[Decimal] = None
total_monetary_amount_including_taxes: Optional[Decimal] = None
total_tax_amount: Optional[Decimal] = None
payment_terms: Optional[str] = None
order_identification: Optional[Ecom_EntityIdentification] = None
order_logistical_information: Optional[OrderLogisticalInformation] = None
administrative_unit: List[AdministrativeUnit] = field(default_factory=list)
delivery_terms: Optional[DeliveryTerms] = None
transactional_generic_reference: List[AvpList] = field(default_factory=list)
referenced_order: List[ReferencedOrder] = field(default_factory=list)
bill_to: Optional[TransactionalParty] = None
buyer: Optional[TransactionalParty] = None
pickup_from: Optional[TransactionalParty] = None
seller: Optional[TransactionalParty] = None
ultimate_consignee: Optional[TransactionalParty] = None
contract: Optional[DocumentReference] = None
quote_number: Optional[DocumentReference] = None
promotional_deal: Optional[DocumentReference] = None
trade_agreement: Optional[DocumentReference] = None
delivery_date_according_to_schedule: Optional[datetime.datetime] = None
latest_delivery_date: Optional[datetime.datetime] = None
allowance_charge: List[AllowanceCharge] = field(default_factory=list)
order_line_item: List[OrderLineItem] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrderMessage:
header: Optional[Header] = None
order: Optional[Order] = None
# @Api(Description="Order")
# @ApiResponse(Description="Order 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 GetOrderById(IGetDocumentById):
"""
Order
"""
# @ApiMember(Description="Order ID or Token", ExcludeInSchema=true, ParameterType="path")
id: Optional[str] = None
"""
Order ID or Token
"""
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /api/order/{Id} HTTP/1.1
Host: stf-api-uat.data-xchange.co.za
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
header:
{
documentIdentification:
{
identifier: String,
type: String
},
sender:
{
identifier:
{
authority: String,
text: String
},
contactInformation:
[
{
}
]
},
receiver:
{
identifier:
{
authority: String,
text: String
},
contactInformation:
[
{
}
]
}
},
order:
{
documentEffectiveDate: 0001-01-01,
additionalOrderInstruction: String,
isApplicationReceiptAcknowledgementRequired: False,
isOrderFreeOfExciseTaxDuty: False,
note: String,
orderEntryType: String,
orderInstructionCode: String,
orderPriority: String,
orderTypeCode: String,
totalMonetaryAmountExcludingTaxes: 0,
totalMonetaryAmountIncludingTaxes: 0,
totalTaxAmount: 0,
paymentTerms: String,
orderIdentification:
{
entityIdentification: String,
contentOwner:
{
additionalPartyIdentification:
[
{
code: String,
value: String
}
],
gln: String
}
},
orderLogisticalInformation:
{
commodityTypeCode:
{
value: String,
codeDescription: String,
codeListAgencyCodeListVersion: String,
codeListAgencyName: String,
codeListName: String,
codeListUri: String
},
orderLogisticalDateInformation:
{
dateRangeDeliveryDateRange:
{
beginDate: 0001-01-01,
beginTime: 0001-01-01,
endDate: 0001-01-01,
endTime: 0001-01-01
},
dateRangeShipDateRange:
{
beginDate: 0001-01-01,
beginTime: 0001-01-01,
endDate: 0001-01-01,
endTime: 0001-01-01
},
dateRangeDeliveryDateRangeAtUltimateConsignee:
{
beginDate: 0001-01-01,
beginTime: 0001-01-01,
endDate: 0001-01-01,
endTime: 0001-01-01
},
requestedDeliveryDateTime: 0001-01-01,
requestedShipDateTime: String,
requestedPickUpDateTime: 0001-01-01,
requestedDeliveryDateTimeAtUltimateConsignee: 0001-01-01
},
inventoryLocation:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipFrom:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipTo:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
ultimateConsignee:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipmentTransportationInformation:
{
carrier:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
freightForwarder:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
}
}
},
administrativeUnit:
[
{
typeCode: String,
gln: String,
internalIdentification: String
}
],
deliveryTerms:
{
incotermsCode: String,
alternateDeliveryTermsCode: String,
deliveryInstructions: String,
deliveryCostPayment: String,
isSignatureRequired: String,
deliveryTermsLocation:
{
unLocationCode: String,
gln: String,
additionalLocationIdentification:
[
{
code: String,
value: String
}
],
sublocationIdentification: String,
locationName: String,
locationSpecificInstructions: String
}
},
transactionalGenericReference:
[
{
code: String,
value: String
}
],
referencedOrder:
[
{
orderRelationship: String,
documentReference:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
}
}
],
billTo:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
buyer:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
pickupFrom:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
seller:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
ultimateConsignee:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
contract:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
quoteNumber:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
promotionalDeal:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
tradeAgreement:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
deliveryDateAccordingToSchedule: 0001-01-01,
latestDeliveryDate: 0001-01-01,
allowanceCharge:
[
{
allowanceChargeAmount: 0,
allowanceChargePercentage: 0,
allowanceChargeType: String,
allowanceOrChargeType: String,
amountPerUnit: 0,
baseAmount: 0,
baseNumberOfUnits: String,
bracketIdentifier: String,
effectiveDateType: 0001-01-01,
sequenceNumber: String,
settlementType: String,
specialServiceType: String,
allowanceChargeDescription: String
}
],
orderLineItem:
[
{
freeGoodsQuantity:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
itemPriceBaseQuantity:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
requestedQuantity:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
lineItemActionCode: String,
lineItemNumber: 0,
listPrice: 0,
monetaryAmountExcludingTaxes: 0,
monetaryAmountIncludingTaxes: 0,
netAmount: 0,
netPrice: 0,
note: String,
orderLineItemInstructionCode: String,
parentLineItemNumber: 0,
recommendedRetailPrice: 0,
orderLineItemPriority: String,
additionalOrderLineInstruction:
[
{
code: String,
value: String
}
],
allowanceCharge:
[
{
allowanceChargeAmount: 0,
allowanceChargePercentage: 0,
allowanceChargeType: String,
allowanceOrChargeType: String,
amountPerUnit: 0,
baseAmount: 0,
baseNumberOfUnits: String,
bracketIdentifier: String,
effectiveDateType: 0001-01-01,
sequenceNumber: String,
settlementType: String,
specialServiceType: String,
allowanceChargeDescription: String
}
],
administrativeUnit:
[
{
typeCode: String,
gln: String,
internalIdentification: String
}
],
transactionalTradeItem:
{
gtin: String,
additionalTradeItemIdentification:
[
{
code: String,
value: String
}
],
tradeItemQuantity: 0,
tradeItemDescription: String,
productVariantIdentifier: String,
itemTypeCode: String,
tradeItemDataOwner: String,
butterFatReference: String,
transactionalItemData:
[
{
availableForSaleDate: 0001-01-01,
batchNumber: String,
bestBeforeDate: 0001-01-01,
countryOfOrigin: String,
itemExpirationDate: 0001-01-01,
lotNumber: String,
packagingDate: 0001-01-01,
productionDate: 0001-01-01,
productQualityIndication: String,
sellByDate: 0001-01-01,
serialNumber:
[
String
],
shelfLife: String,
tradeItemQuantity: 0,
itemInContactWithFoodProduct: False,
transactionalItemWeight:
[
{
measurementUnitCode: String,
measurementType: String,
measurementValue: String
}
],
transactionalItemVolume:
[
{
measurementUnitCode: String,
measurementType: String,
measurementValue: String
}
],
serialNumberRange:
[
{
maximumValue: String,
minimumValue: String
}
],
transactionalItemDimensions:
[
{
measurementUnitCode: String,
depth: String,
height: String,
width: String
}
],
transactionalItemLogisticUnitInformation:
{
numberOfLayers: 0,
numberOfUnitsPerLayer: 0,
numberOfUnitsPerPallet: 0,
packagingTerms: String,
packageTypeCode: String,
maximumStackingFactor: 0,
returnablePackageTransportCostPayment: String,
dimensionsOfLogisticUnit:
[
{
measurementUnitCode: String,
depth: String,
height: String,
width: String
}
]
},
transactionalItemDataCarrierAndIdentification:
{
gs1TransactionalItemIdentificationKey: String,
dataCarrier: String
},
tradeItemWaste:
[
{
wasteIdentification: String,
typeOfWaste:
[
{
code: String,
value: String
}
]
}
],
transactionalItemOrganicInformation:
{
isTradeItemOrganic: False,
organicCertification: String
},
avpList:
[
{
code: String,
value: String
}
]
}
],
colour:
[
{
colourCode: String,
colourDescription: String
}
],
size:
{
descriptiveSize: String,
sizeCode: String
},
tradeItemClassification:
{
gpcCategoryCode: String,
additionalTradeItemClassificationCode:
[
{
code: String,
value: String
}
],
gpcCategoryName: String,
gpcAttribute:
[
{
code: String,
value: String
}
]
},
avpList:
[
{
code: String,
value: String
}
]
},
leviedDutyFeeTax:
{
dutyFeeTaxAmount: 0,
dutyFeeTaxBasisAmount: 0,
dutyFeeTaxDescription: String,
dutyFeeTaxPercentage: 0
},
contract:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
promotionalDeal:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
purchaseConditions:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
avpList:
[
{
code: String,
value: String
}
],
orderLineItemDetail:
[
{
requestedQuantity:
{
value: 0,
measurementUnitCode: String,
codeListVersion: String
},
orderLogisticalInformation:
{
commodityTypeCode:
{
value: String,
codeDescription: String,
codeListAgencyCodeListVersion: String,
codeListAgencyName: String,
codeListName: String,
codeListUri: String
},
orderLogisticalDateInformation:
{
dateRangeDeliveryDateRange:
{
beginDate: 0001-01-01,
beginTime: 0001-01-01,
endDate: 0001-01-01,
endTime: 0001-01-01
},
dateRangeShipDateRange:
{
beginDate: 0001-01-01,
beginTime: 0001-01-01,
endDate: 0001-01-01,
endTime: 0001-01-01
},
dateRangeDeliveryDateRangeAtUltimateConsignee:
{
beginDate: 0001-01-01,
beginTime: 0001-01-01,
endDate: 0001-01-01,
endTime: 0001-01-01
},
requestedDeliveryDateTime: 0001-01-01,
requestedShipDateTime: String,
requestedPickUpDateTime: 0001-01-01,
requestedDeliveryDateTimeAtUltimateConsignee: 0001-01-01
},
inventoryLocation:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipFrom:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipTo:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
ultimateConsignee:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
shipmentTransportationInformation:
{
carrier:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
},
freightForwarder:
{
contact:
[
{
contactTypeCode: String,
personName: String,
departmentName: String,
jobTitle: String,
responsibility: String,
communicationChannel:
[
{
communicationChannelCode: String,
communicationChannelName: String,
communicationValue: String
}
]
}
],
address:
{
streetAddressOne: String,
streetAddressTwo: String,
streetAddressThree: String,
city: String,
postalCode: String,
provinceCode: String,
countryCode: String
},
communicationChannel:
[
{
code: String,
value: String
}
],
financialInstitutionInformation:
{
financialInstitutionBranchName: String,
financialInstitutionName: String,
financialRoutingNumber:
{
number: String,
numberTypeCode: String
},
financialAccount:
{
number: String,
numberTypeCode: String,
name: String
},
swiftCode: String,
exportersCode: String
},
dutyFeeTaxRegistration: String,
entityIdentification: String,
gln: String,
name: String,
additionalPartyIdentification:
[
{
code: String,
value: String
}
]
}
}
},
avpList:
[
{
code: String,
value: String
}
]
}
]
}
],
currencyCode: String,
documentActionCode: ADD,
documentStatusCode: ADDITIONAL_TRANSMISSION,
documentStructureVersion: String,
lastUpdateDateTime: 0001-01-01,
revisionNumber: 0,
avpList:
[
{
code: String,
value: String
}
]
}
}