| GET | /api/debitNote/{Id} | Get specific debit note by debit note 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_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 Invoice:
creation_date: Optional[datetime.datetime] = None
revision_number: Optional[int] = None
entity_identification: Optional[str] = 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 ShipmentTransportationInformation:
carrier: Optional[TransactionalParty] = None
freight_forwarder: Optional[TransactionalParty] = 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 TaxInformation:
tax_percentage: Optional[Decimal] = None
tax_amount: Optional[Decimal] = 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 InvoiceAllowanceCharge:
allowance_charge: Optional[AllowanceCharge] = None
levied_duty_fee_tax: Optional[TaxInformation] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Extension:
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvoiceLineItem:
line_number: Optional[int] = None
parent_line_item_number: Optional[str] = None
invoiced_quantity: Optional[Quantity] = None
transactional_trade_item: Optional[TransactionalTradeItem] = None
item_price_base_quantity: Optional[Decimal] = None
retail_price_excluding_excise: Optional[Decimal] = None
recommended_retail_price: Optional[Decimal] = None
tax_information: Optional[TaxInformation] = None
amount_exclusive_allowances_charges: Optional[Decimal] = None
amount_inclusive_allowances_charges: Optional[Decimal] = None
item_price_exclusive_allowances_charges: Optional[Decimal] = None
item_price_inclusive_allowances_charges: Optional[Decimal] = None
trade_agreement: Optional[str] = None
delivery_note: Optional[str] = None
promotional_deal: Optional[DocumentReference] = None
invoice_allowance_charge: List[InvoiceAllowanceCharge] = field(default_factory=list)
extended_properties: Optional[Extension] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvoiceTotals:
base_amount: Optional[Decimal] = None
prepaid_amount: Optional[Decimal] = None
prepaid_amount_date: Optional[datetime.datetime] = None
total_amount_invoice_allowances_charges: Optional[Decimal] = None
total_line_amount_inclusive_allowances_charges: Optional[Decimal] = None
total_tax_amount: Optional[Decimal] = None
total_invoice_amount: Optional[Decimal] = None
total_invoice_amount_payable: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvoiceClass(BaseDocument):
country_of_supply_of_goods: Optional[str] = None
buyer: Optional[TransactionalParty] = None
seller: Optional[TransactionalParty] = None
payee: Optional[TransactionalParty] = None
payer: Optional[TransactionalParty] = None
ship_from: Optional[TransactionalParty] = None
ship_to: Optional[TransactionalParty] = None
ultimate_consignee: Optional[TransactionalParty] = None
supplier_account_receivable: Optional[str] = None
invoice_identification: Optional[str] = None
invoice: Optional[Invoice] = None
sales_order: Optional[DocumentReference] = None
purchase_order: Optional[DocumentReference] = None
delivery_note: Optional[DocumentReference] = None
trade_agreement: Optional[DocumentReference] = None
shipment_transportation_information: Optional[ShipmentTransportationInformation] = None
payment_terms: Optional[str] = None
invoice_line_item: List[InvoiceLineItem] = field(default_factory=list)
invoice_totals: Optional[InvoiceTotals] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InvoiceMessage:
header: Optional[Header] = None
invoice: Optional[InvoiceClass] = None
# @Api(Description="Debit Note")
# @ApiResponse(Description="Debit Note 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 GetDebitNoteById(IGetDocumentById):
"""
Debit Note
"""
# @ApiMember(Description="Debit Note ID or Token", ExcludeInSchema=true, ParameterType="path")
id: Optional[str] = None
"""
Debit Note 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/debitNote/{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:
[
{
}
]
}
},
invoice:
{
countryOfSupplyOfGoods: 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
}
]
},
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
}
]
},
payee:
{
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
}
]
},
payer:
{
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
}
]
},
supplierAccountReceivable: String,
invoiceIdentification: String,
invoice:
{
creationDate: 0001-01-01,
revisionNumber: 0,
entityIdentification: String
},
salesOrder:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
purchaseOrder:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
deliveryNote:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
tradeAgreement:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: 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
}
]
}
},
paymentTerms: String,
invoiceLineItem:
[
{
lineNumber: 0,
parentLineItemNumber: String,
invoicedQuantity:
{
value: 0,
measurementUnitCode: String,
codeListVersion: 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
}
]
},
itemPriceBaseQuantity: 0,
retailPriceExcludingExcise: 0,
recommendedRetailPrice: 0,
taxInformation:
{
taxPercentage: 0,
taxAmount: 0
},
amountExclusiveAllowancesCharges: 0,
amountInclusiveAllowancesCharges: 0,
itemPriceExclusiveAllowancesCharges: 0,
itemPriceInclusiveAllowancesCharges: 0,
tradeAgreement: String,
deliveryNote: String,
promotionalDeal:
{
creationDateTime: 0001-01-01,
revisionNumber: 0,
lineItemNumber: 0,
entityIdentification: String
},
invoiceAllowanceCharge:
[
{
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
},
leviedDutyFeeTax:
{
taxPercentage: 0,
taxAmount: 0
}
}
],
extendedProperties: {}
}
],
invoiceTotals:
{
baseAmount: 0,
prepaidAmount: 0,
prepaidAmountDate: 0001-01-01,
totalAmountInvoiceAllowancesCharges: 0,
totalLineAmountInclusiveAllowancesCharges: 0,
totalTaxAmount: 0,
totalInvoiceAmount: 0,
totalInvoiceAmountPayable: 0
},
currencyCode: String,
documentActionCode: ADD,
documentStatusCode: ADDITIONAL_TRANSMISSION,
documentStructureVersion: String,
lastUpdateDateTime: 0001-01-01,
revisionNumber: 0,
avpList:
[
{
code: String,
value: String
}
]
}
}