DX STF Client API

<back to all web services

GetPurchaseConditionById

Purchase Conditions Requests

Purchase Conditions

Requires Authentication
The following routes are available for this service:
GET/api/purchaseCondition/{Id}Get specific Purchase Condition by PurchaseCondition Id

// @DataContract
export class DocumentIdentification
{
    // @DataMember(Name="identifier")
    public identifier: string;

    // @DataMember(Name="type")
    public type: string;

    // @DataMember(Name="creationDateAndTime")
    public creationDateAndTime: string;

    public constructor(init?: Partial<DocumentIdentification>) { (Object as any).assign(this, init); }
}

// @DataContract
export class Identifier
{
    // @DataMember(Name="authority")
    public authority: string;

    // @DataMember(Name="text")
    public text: string;

    public constructor(init?: Partial<Identifier>) { (Object as any).assign(this, init); }
}

// @DataContract
export class ContactInformation
{

    public constructor(init?: Partial<ContactInformation>) { (Object as any).assign(this, init); }
}

// @DataContract
export class Partner
{
    // @DataMember(Name="identifier")
    public identifier: Identifier;

    // @DataMember(Name="contactInformation")
    public contactInformation: ContactInformation[] = [];

    public constructor(init?: Partial<Partner>) { (Object as any).assign(this, init); }
}

// @DataContract
export class Header
{
    // @DataMember(Name="documentIdentification")
    public documentIdentification: DocumentIdentification;

    // @DataMember(Name="sender")
    public sender: Partner;

    // @DataMember(Name="receiver")
    public receiver: Partner;

    public constructor(init?: Partial<Header>) { (Object as any).assign(this, init); }
}

export enum DocumentAction
{
    ADD = 'ADD',
    CHANGE_BY_REFRESH = 'CHANGE_BY_REFRESH',
    DELETE = 'DELETE',
    REJECTED = 'REJECTED',
}

export enum DocumentStatus
{
    ADDITIONAL_TRANSMISSION = 'ADDITIONAL_TRANSMISSION',
    COPY = 'COPY',
    ORIGINAL = 'ORIGINAL',
}

export class AvpList
{
    public code: string;
    public value: string;

    public constructor(init?: Partial<AvpList>) { (Object as any).assign(this, init); }
}

export class BaseDocument
{
    public currencyCode: string;
    public creationDateTime: string;
    public documentActionCode: DocumentAction;
    public documentStatusCode: DocumentStatus;
    public documentStructureVersion: string;
    public lastUpdateDateTime?: string;
    public revisionNumber?: number;
    public avpList: AvpList[] = [];

    public constructor(init?: Partial<BaseDocument>) { (Object as any).assign(this, init); }
}

export class Quantity
{
    public value?: number;
    public measurementUnitCode: string;
    public codeListVersion: string;

    public constructor(init?: Partial<Quantity>) { (Object as any).assign(this, init); }
}

export class TimeMeasurement
{
    public timeMeasurementUnitCode: string;
    public value?: number;

    public constructor(init?: Partial<TimeMeasurement>) { (Object as any).assign(this, init); }
}

export class PurchaseConditionsCommitmentPeriod
{
    public commitmentPeriodDuration: TimeMeasurement;
    public purchaseConditionsCommitmentTypeCode: string;

    public constructor(init?: Partial<PurchaseConditionsCommitmentPeriod>) { (Object as any).assign(this, init); }
}

export class QuantityRange
{
    public maximumQuantity: Quantity;
    public minimumQuantity: Quantity;

    public constructor(init?: Partial<QuantityRange>) { (Object as any).assign(this, init); }
}

export class DateTimeRange
{
    public beginDate: string;
    public beginTime?: string;
    public endDate?: string;
    public endTime?: string;

    public constructor(init?: Partial<DateTimeRange>) { (Object as any).assign(this, init); }
}

export class PurchaseConditionsPriceInformation
{
    public itemPriceBaseQuantity: Quantity;
    public itemPriceExclusiveAllowancesCharges?: number;
    public quantityRange: QuantityRange;
    public effectivePeriod: DateTimeRange;

    public constructor(init?: Partial<PurchaseConditionsPriceInformation>) { (Object as any).assign(this, init); }
}

export class AllowanceCharge
{
    public allowanceChargeAmount?: number;
    public allowanceChargePercentage?: number;
    public allowanceChargeType: string;
    public allowanceOrChargeType: string;
    public amountPerUnit?: number;
    public baseAmount?: number;
    public baseNumberOfUnits: string;
    public bracketIdentifier: string;
    public effectiveDateType?: string;
    public sequenceNumber: string;
    public settlementType: string;
    public specialServiceType: string;
    public allowanceChargeDescription: string;

    public constructor(init?: Partial<AllowanceCharge>) { (Object as any).assign(this, init); }
}

export class TransactionalItem
{
    public measurementUnitCode: string;
    public measurementType: string;
    public measurementValue: string;

    public constructor(init?: Partial<TransactionalItem>) { (Object as any).assign(this, init); }
}

export class SerialNumberRange
{
    public maximumValue: string;
    public minimumValue: string;

    public constructor(init?: Partial<SerialNumberRange>) { (Object as any).assign(this, init); }
}

export class TransactionalItemDimension
{
    public measurementUnitCode: string;
    public depth: string;
    public height: string;
    public width: string;

    public constructor(init?: Partial<TransactionalItemDimension>) { (Object as any).assign(this, init); }
}

export class TransactionalItemLogisticUnitInformation
{
    public numberOfLayers?: number;
    public numberOfUnitsPerLayer?: number;
    public numberOfUnitsPerPallet?: number;
    public packagingTerms: string;
    public packageTypeCode: string;
    public maximumStackingFactor?: number;
    public returnablePackageTransportCostPayment: string;
    public dimensionsOfLogisticUnit: TransactionalItemDimension[] = [];

    public constructor(init?: Partial<TransactionalItemLogisticUnitInformation>) { (Object as any).assign(this, init); }
}

export class TransactionalItemDataCarrierAndIdentification
{
    public gs1TransactionalItemIdentificationKey: string;
    public dataCarrier: string;

    public constructor(init?: Partial<TransactionalItemDataCarrierAndIdentification>) { (Object as any).assign(this, init); }
}

export class TradeItemWaste
{
    public wasteIdentification: string;
    public typeOfWaste: AvpList[] = [];

    public constructor(init?: Partial<TradeItemWaste>) { (Object as any).assign(this, init); }
}

export class TransactionalItemOrganicInformation
{
    public isTradeItemOrganic?: boolean;
    public organicCertification: string;

    public constructor(init?: Partial<TransactionalItemOrganicInformation>) { (Object as any).assign(this, init); }
}

export class TransactionalItemData
{
    public availableForSaleDate?: string;
    public batchNumber: string;
    public bestBeforeDate?: string;
    public countryOfOrigin: string;
    public itemExpirationDate?: string;
    public lotNumber: string;
    public packagingDate?: string;
    public productionDate?: string;
    public productQualityIndication: string;
    public sellByDate?: string;
    public serialNumber: string[] = [];
    public shelfLife: string;
    public tradeItemQuantity?: number;
    public itemInContactWithFoodProduct?: boolean;
    public transactionalItemWeight: TransactionalItem[] = [];
    public transactionalItemVolume: TransactionalItem[] = [];
    public serialNumberRange: SerialNumberRange[] = [];
    public transactionalItemDimensions: TransactionalItemDimension[] = [];
    public transactionalItemLogisticUnitInformation: TransactionalItemLogisticUnitInformation;
    public transactionalItemDataCarrierAndIdentification: TransactionalItemDataCarrierAndIdentification;
    public tradeItemWaste: TradeItemWaste[] = [];
    public transactionalItemOrganicInformation: TransactionalItemOrganicInformation;
    public avpList: AvpList[] = [];

    public constructor(init?: Partial<TransactionalItemData>) { (Object as any).assign(this, init); }
}

export class Colour
{
    public colourCode: string;
    public colourDescription: string;

    public constructor(init?: Partial<Colour>) { (Object as any).assign(this, init); }
}

export class Size
{
    public descriptiveSize: string;
    public sizeCode: string;

    public constructor(init?: Partial<Size>) { (Object as any).assign(this, init); }
}

export class TradeItemClassification
{
    public gpcCategoryCode: string;
    public additionalTradeItemClassificationCode: AvpList[] = [];
    public gpcCategoryName: string;
    public gpcAttribute: AvpList[] = [];

    public constructor(init?: Partial<TradeItemClassification>) { (Object as any).assign(this, init); }
}

export class TransactionalTradeItem
{
    public gtin: string;
    public additionalTradeItemIdentification: AvpList[] = [];
    public tradeItemQuantity?: number;
    public tradeItemDescription: string;
    public productVariantIdentifier: string;
    public itemTypeCode: string;
    public tradeItemDataOwner: string;
    public butterFatReference: string;
    public transactionalItemData: TransactionalItemData[] = [];
    public colour: Colour[] = [];
    public size: Size;
    public tradeItemClassification: TradeItemClassification;
    public avpList: AvpList[] = [];

    public constructor(init?: Partial<TransactionalTradeItem>) { (Object as any).assign(this, init); }
}

export class LeviedDutyFeeTax
{
    public dutyFeeTaxAmount?: number;
    public dutyFeeTaxBasisAmount?: number;
    public dutyFeeTaxDescription: string;
    public dutyFeeTaxPercentage?: number;

    public constructor(init?: Partial<LeviedDutyFeeTax>) { (Object as any).assign(this, init); }
}

export class DocumentReference
{
    public creationDateTime?: string;
    public revisionNumber?: number;
    public lineItemNumber?: number;
    public entityIdentification: string;

    public constructor(init?: Partial<DocumentReference>) { (Object as any).assign(this, init); }
}

export class PurchaseConditionsLineItem
{
    public discrepancyTolerancePercentage?: number;
    public lineItemNumber?: number;
    public packagingTypeCode: string;
    public parentLineItemNumber?: number;
    public purchaseConditionsQuantity: Quantity;
    public purchaseConditionsCommitmentPeriod: PurchaseConditionsCommitmentPeriod[] = [];
    public purchaseConditionsPriceInformation: PurchaseConditionsPriceInformation[] = [];
    public allowanceCharge: AllowanceCharge[] = [];
    public transactionalTradeItem: TransactionalTradeItem;
    public leviedDutyFeeTax: LeviedDutyFeeTax;
    public avpList: AvpList[] = [];
    public effectivePeriod: DateTimeRange;
    public materialSpecification: DocumentReference;
    public purchaseConditionsQuantityRange: QuantityRange;

    public constructor(init?: Partial<PurchaseConditionsLineItem>) { (Object as any).assign(this, init); }
}

export class Ecom_PartyIdentificationType
{
    public gln: string;
    public name: string;
    public additionalPartyIdentification: AvpList[] = [];

    public constructor(init?: Partial<Ecom_PartyIdentificationType>) { (Object as any).assign(this, init); }
}

export class CommunicationChannel
{
    public communicationChannelCode: string;
    public communicationChannelName: string;
    public communicationValue: string;

    public constructor(init?: Partial<CommunicationChannel>) { (Object as any).assign(this, init); }
}

export class Contact
{
    public contactTypeCode: string;
    public personName: string;
    public departmentName: string;
    public jobTitle: string;
    public responsibility: string;
    public communicationChannel: CommunicationChannel[] = [];

    public constructor(init?: Partial<Contact>) { (Object as any).assign(this, init); }
}

export class Address
{
    public streetAddressOne: string;
    public streetAddressTwo: string;
    public streetAddressThree: string;
    public city: string;
    public postalCode: string;
    public provinceCode: string;
    public countryCode: string;

    public constructor(init?: Partial<Address>) { (Object as any).assign(this, init); }
}

export class FinancialRoutingNumber
{
    public number: string;
    public numberTypeCode: string;

    public constructor(init?: Partial<FinancialRoutingNumber>) { (Object as any).assign(this, init); }
}

export class FinancialAccount
{
    public number: string;
    public numberTypeCode: string;
    public name: string;

    public constructor(init?: Partial<FinancialAccount>) { (Object as any).assign(this, init); }
}

export class FinancialInstitutionInformation
{
    public financialInstitutionBranchName: string;
    public financialInstitutionName: string;
    public financialRoutingNumber: FinancialRoutingNumber;
    public financialAccount: FinancialAccount;
    public swiftCode: string;
    public exportersCode: string;

    public constructor(init?: Partial<FinancialInstitutionInformation>) { (Object as any).assign(this, init); }
}

export class TransactionalParty extends Ecom_PartyIdentificationType
{
    public contact: Contact[] = [];
    public address: Address;
    public communicationChannel: AvpList[] = [];
    public financialInstitutionInformation: FinancialInstitutionInformation;
    public dutyFeeTaxRegistration: string;
    public entityIdentification: string;

    public constructor(init?: Partial<TransactionalParty>) { super(init); (Object as any).assign(this, init); }
}

export class PurchaseConditionsLocationInformation
{
    public purchaseConditionsLineItem: PurchaseConditionsLineItem[] = [];
    public shipFrom: TransactionalParty;
    public shipTo: TransactionalParty;

    public constructor(init?: Partial<PurchaseConditionsLocationInformation>) { (Object as any).assign(this, init); }
}

export class CurrencyExchangeRateInformation
{
    public currencyConversionFromCode: string;
    public currencyConversionToCode: string;
    public exchangeRate?: number;
    public exchangeRateDateTime?: string;

    public constructor(init?: Partial<CurrencyExchangeRateInformation>) { (Object as any).assign(this, init); }
}

export class PurchaseConditions extends BaseDocument
{
    public purchaseConditionsCurrencyCode: string;
    public purchaseConditionsLocationInformation: PurchaseConditionsLocationInformation[] = [];
    public currencyExchangeRateInformation: CurrencyExchangeRateInformation;
    public buyer: TransactionalParty;
    public payee: TransactionalParty;
    public payer: TransactionalParty;
    public purchaseConditionsIdentification: string;
    public remitTo: TransactionalParty;
    public seller: TransactionalParty;
    public taxRepresentative: TransactionalParty;

    public constructor(init?: Partial<PurchaseConditions>) { super(init); (Object as any).assign(this, init); }
}

export class PurchaseConditionsMessage
{
    public header: Header;
    public purchaseConditions: PurchaseConditions;

    public constructor(init?: Partial<PurchaseConditionsMessage>) { (Object as any).assign(this, init); }
}

/** @description Purchase Conditions */
// @Api(Description="Purchase Conditions")
// @ApiResponse(Description="PurchaseCondition data", IsDefaultResponse=true, StatusCode=200)
// @ApiResponse(Description="No Content", ResponseType="typeof(ServiceStack.IReturnVoid)", StatusCode=204)
// @ApiResponse(Description="Specified argument was out of the range of valid values.", ResponseType="typeof(System.ArgumentOutOfRangeException)", StatusCode=400)
export class GetPurchaseConditionById implements IGetDocumentById
{
    /** @description Purchase Condition ID or Token */
    // @ApiMember(Description="Purchase Condition ID or Token", ExcludeInSchema=true, ParameterType="path")
    public id: string;

    public constructor(init?: Partial<GetPurchaseConditionById>) { (Object as any).assign(this, init); }
}

TypeScript GetPurchaseConditionById DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/purchaseCondition/{Id} HTTP/1.1 
Host: stf-api-uat.data-xchange.co.za 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<PurchaseConditionsMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DX.STF.Models.Dto.GS1">
  <Header>
    <documentIdentification>
      <creationDateAndTime>0001-01-01T00:00:00</creationDateAndTime>
      <identifier>String</identifier>
      <type>String</type>
    </documentIdentification>
    <receiver>
      <contactInformation>
        <ContactInformation />
      </contactInformation>
      <identifier>
        <authority>String</authority>
        <text>String</text>
      </identifier>
    </receiver>
    <sender>
      <contactInformation>
        <ContactInformation />
      </contactInformation>
      <identifier>
        <authority>String</authority>
        <text>String</text>
      </identifier>
    </sender>
  </Header>
  <PurchaseConditions>
    <AvpList>
      <AvpList>
        <Code>String</Code>
        <Value>String</Value>
      </AvpList>
    </AvpList>
    <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
    <CurrencyCode>String</CurrencyCode>
    <DocumentActionCode>ADD</DocumentActionCode>
    <DocumentStatusCode>ADDITIONAL_TRANSMISSION</DocumentStatusCode>
    <DocumentStructureVersion>String</DocumentStructureVersion>
    <LastUpdateDateTime>0001-01-01T00:00:00</LastUpdateDateTime>
    <RevisionNumber>0</RevisionNumber>
    <Buyer>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Buyer>
    <CurrencyExchangeRateInformation>
      <CurrencyConversionFromCode>String</CurrencyConversionFromCode>
      <CurrencyConversionToCode>String</CurrencyConversionToCode>
      <ExchangeRate>0</ExchangeRate>
      <ExchangeRateDateTime>0001-01-01T00:00:00</ExchangeRateDateTime>
    </CurrencyExchangeRateInformation>
    <Payee>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Payee>
    <Payer>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Payer>
    <PurchaseConditionsCurrencyCode>String</PurchaseConditionsCurrencyCode>
    <PurchaseConditionsIdentification>String</PurchaseConditionsIdentification>
    <PurchaseConditionsLocationInformation>
      <PurchaseConditionsLocationInformation>
        <PurchaseConditionsLineItem>
          <PurchaseConditionsLineItem>
            <AllowanceCharge>
              <AllowanceCharge>
                <AllowanceChargeAmount>0</AllowanceChargeAmount>
                <AllowanceChargeDescription>String</AllowanceChargeDescription>
                <AllowanceChargePercentage>0</AllowanceChargePercentage>
                <AllowanceChargeType>String</AllowanceChargeType>
                <AllowanceOrChargeType>String</AllowanceOrChargeType>
                <AmountPerUnit>0</AmountPerUnit>
                <BaseAmount>0</BaseAmount>
                <BaseNumberOfUnits>String</BaseNumberOfUnits>
                <BracketIdentifier>String</BracketIdentifier>
                <EffectiveDateType>0001-01-01T00:00:00</EffectiveDateType>
                <SequenceNumber>String</SequenceNumber>
                <SettlementType>String</SettlementType>
                <SpecialServiceType>String</SpecialServiceType>
              </AllowanceCharge>
            </AllowanceCharge>
            <AvpList>
              <AvpList>
                <Code>String</Code>
                <Value>String</Value>
              </AvpList>
            </AvpList>
            <DiscrepancyTolerancePercentage>0</DiscrepancyTolerancePercentage>
            <EffectivePeriod>
              <BeginDate>0001-01-01</BeginDate>
              <BeginTime>00:00:00</BeginTime>
              <EndDate>0001-01-01</EndDate>
              <EndTime>00:00:00</EndTime>
            </EffectivePeriod>
            <LeviedDutyFeeTax>
              <DutyFeeTaxAmount>0</DutyFeeTaxAmount>
              <DutyFeeTaxBasisAmount>0</DutyFeeTaxBasisAmount>
              <DutyFeeTaxDescription>String</DutyFeeTaxDescription>
              <DutyFeeTaxPercentage>0</DutyFeeTaxPercentage>
            </LeviedDutyFeeTax>
            <LineItemNumber>0</LineItemNumber>
            <MaterialSpecification>
              <CreationDateTime>0001-01-01T00:00:00</CreationDateTime>
              <EntityIdentification>String</EntityIdentification>
              <LineItemNumber>0</LineItemNumber>
              <RevisionNumber>0</RevisionNumber>
            </MaterialSpecification>
            <PackagingTypeCode>String</PackagingTypeCode>
            <ParentLineItemNumber>0</ParentLineItemNumber>
            <PurchaseConditionsCommitmentPeriod>
              <PurchaseConditionsCommitmentPeriod>
                <CommitmentPeriodDuration>
                  <TimeMeasurementUnitCode>String</TimeMeasurementUnitCode>
                  <Value>0</Value>
                </CommitmentPeriodDuration>
                <PurchaseConditionsCommitmentTypeCode>String</PurchaseConditionsCommitmentTypeCode>
              </PurchaseConditionsCommitmentPeriod>
            </PurchaseConditionsCommitmentPeriod>
            <PurchaseConditionsPriceInformation>
              <PurchaseConditionsPriceInformation>
                <EffectivePeriod>
                  <BeginDate>0001-01-01</BeginDate>
                  <BeginTime>00:00:00</BeginTime>
                  <EndDate>0001-01-01</EndDate>
                  <EndTime>00:00:00</EndTime>
                </EffectivePeriod>
                <ItemPriceBaseQuantity>
                  <CodeListVersion>String</CodeListVersion>
                  <MeasurementUnitCode>String</MeasurementUnitCode>
                  <Value>0</Value>
                </ItemPriceBaseQuantity>
                <ItemPriceExclusiveAllowancesCharges>0</ItemPriceExclusiveAllowancesCharges>
                <QuantityRange>
                  <MaximumQuantity>
                    <CodeListVersion>String</CodeListVersion>
                    <MeasurementUnitCode>String</MeasurementUnitCode>
                    <Value>0</Value>
                  </MaximumQuantity>
                  <MinimumQuantity>
                    <CodeListVersion>String</CodeListVersion>
                    <MeasurementUnitCode>String</MeasurementUnitCode>
                    <Value>0</Value>
                  </MinimumQuantity>
                </QuantityRange>
              </PurchaseConditionsPriceInformation>
            </PurchaseConditionsPriceInformation>
            <PurchaseConditionsQuantity>
              <CodeListVersion>String</CodeListVersion>
              <MeasurementUnitCode>String</MeasurementUnitCode>
              <Value>0</Value>
            </PurchaseConditionsQuantity>
            <PurchaseConditionsQuantityRange>
              <MaximumQuantity>
                <CodeListVersion>String</CodeListVersion>
                <MeasurementUnitCode>String</MeasurementUnitCode>
                <Value>0</Value>
              </MaximumQuantity>
              <MinimumQuantity>
                <CodeListVersion>String</CodeListVersion>
                <MeasurementUnitCode>String</MeasurementUnitCode>
                <Value>0</Value>
              </MinimumQuantity>
            </PurchaseConditionsQuantityRange>
            <TransactionalTradeItem>
              <AdditionalTradeItemIdentification>
                <AvpList>
                  <Code>String</Code>
                  <Value>String</Value>
                </AvpList>
              </AdditionalTradeItemIdentification>
              <AvpList>
                <AvpList>
                  <Code>String</Code>
                  <Value>String</Value>
                </AvpList>
              </AvpList>
              <ButterFatReference>String</ButterFatReference>
              <Colour>
                <Colour>
                  <ColourCode>String</ColourCode>
                  <ColourDescription>String</ColourDescription>
                </Colour>
              </Colour>
              <Gtin>String</Gtin>
              <ItemTypeCode>String</ItemTypeCode>
              <ProductVariantIdentifier>String</ProductVariantIdentifier>
              <Size>
                <DescriptiveSize>String</DescriptiveSize>
                <SizeCode>String</SizeCode>
              </Size>
              <TradeItemClassification>
                <AdditionalTradeItemClassificationCode>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </AdditionalTradeItemClassificationCode>
                <GpcAttribute>
                  <AvpList>
                    <Code>String</Code>
                    <Value>String</Value>
                  </AvpList>
                </GpcAttribute>
                <GpcCategoryCode>String</GpcCategoryCode>
                <GpcCategoryName>String</GpcCategoryName>
              </TradeItemClassification>
              <TradeItemDataOwner>String</TradeItemDataOwner>
              <TradeItemDescription>String</TradeItemDescription>
              <TradeItemQuantity>0</TradeItemQuantity>
              <TransactionalItemData>
                <TransactionalItemData>
                  <AvailableForSaleDate>0001-01-01T00:00:00</AvailableForSaleDate>
                  <AvpList>
                    <AvpList>
                      <Code>String</Code>
                      <Value>String</Value>
                    </AvpList>
                  </AvpList>
                  <BatchNumber>String</BatchNumber>
                  <BestBeforeDate>0001-01-01T00:00:00</BestBeforeDate>
                  <CountryOfOrigin>String</CountryOfOrigin>
                  <ItemExpirationDate>0001-01-01T00:00:00</ItemExpirationDate>
                  <ItemInContactWithFoodProduct>false</ItemInContactWithFoodProduct>
                  <LotNumber>String</LotNumber>
                  <PackagingDate>0001-01-01T00:00:00</PackagingDate>
                  <ProductQualityIndication>String</ProductQualityIndication>
                  <ProductionDate>0001-01-01T00:00:00</ProductionDate>
                  <SellByDate>0001-01-01T00:00:00</SellByDate>
                  <SerialNumber xmlns:d10p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                    <d10p1:string>String</d10p1:string>
                  </SerialNumber>
                  <SerialNumberRange>
                    <SerialNumberRange>
                      <MaximumValue>String</MaximumValue>
                      <MinimumValue>String</MinimumValue>
                    </SerialNumberRange>
                  </SerialNumberRange>
                  <ShelfLife>String</ShelfLife>
                  <TradeItemQuantity>0</TradeItemQuantity>
                  <TradeItemWaste>
                    <TradeItemWaste>
                      <TypeOfWaste>
                        <AvpList>
                          <Code>String</Code>
                          <Value>String</Value>
                        </AvpList>
                      </TypeOfWaste>
                      <WasteIdentification>String</WasteIdentification>
                    </TradeItemWaste>
                  </TradeItemWaste>
                  <TransactionalItemDataCarrierAndIdentification>
                    <DataCarrier>String</DataCarrier>
                    <Gs1TransactionalItemIdentificationKey>String</Gs1TransactionalItemIdentificationKey>
                  </TransactionalItemDataCarrierAndIdentification>
                  <TransactionalItemDimensions>
                    <TransactionalItemDimension>
                      <Depth>String</Depth>
                      <Height>String</Height>
                      <MeasurementUnitCode>String</MeasurementUnitCode>
                      <Width>String</Width>
                    </TransactionalItemDimension>
                  </TransactionalItemDimensions>
                  <TransactionalItemLogisticUnitInformation>
                    <DimensionsOfLogisticUnit>
                      <TransactionalItemDimension>
                        <Depth>String</Depth>
                        <Height>String</Height>
                        <MeasurementUnitCode>String</MeasurementUnitCode>
                        <Width>String</Width>
                      </TransactionalItemDimension>
                    </DimensionsOfLogisticUnit>
                    <MaximumStackingFactor>0</MaximumStackingFactor>
                    <NumberOfLayers>0</NumberOfLayers>
                    <NumberOfUnitsPerLayer>0</NumberOfUnitsPerLayer>
                    <NumberOfUnitsPerPallet>0</NumberOfUnitsPerPallet>
                    <PackageTypeCode>String</PackageTypeCode>
                    <PackagingTerms>String</PackagingTerms>
                    <ReturnablePackageTransportCostPayment>String</ReturnablePackageTransportCostPayment>
                  </TransactionalItemLogisticUnitInformation>
                  <TransactionalItemOrganicInformation>
                    <IsTradeItemOrganic>false</IsTradeItemOrganic>
                    <OrganicCertification>String</OrganicCertification>
                  </TransactionalItemOrganicInformation>
                  <TransactionalItemVolume>
                    <TransactionalItem>
                      <MeasurementType>String</MeasurementType>
                      <MeasurementUnitCode>String</MeasurementUnitCode>
                      <MeasurementValue>String</MeasurementValue>
                    </TransactionalItem>
                  </TransactionalItemVolume>
                  <TransactionalItemWeight>
                    <TransactionalItem>
                      <MeasurementType>String</MeasurementType>
                      <MeasurementUnitCode>String</MeasurementUnitCode>
                      <MeasurementValue>String</MeasurementValue>
                    </TransactionalItem>
                  </TransactionalItemWeight>
                </TransactionalItemData>
              </TransactionalItemData>
            </TransactionalTradeItem>
          </PurchaseConditionsLineItem>
        </PurchaseConditionsLineItem>
        <ShipFrom>
          <AdditionalPartyIdentification>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AdditionalPartyIdentification>
          <Gln>String</Gln>
          <Name>String</Name>
          <Address>
            <City>String</City>
            <CountryCode>String</CountryCode>
            <PostalCode>String</PostalCode>
            <ProvinceCode>String</ProvinceCode>
            <StreetAddressOne>String</StreetAddressOne>
            <StreetAddressThree>String</StreetAddressThree>
            <StreetAddressTwo>String</StreetAddressTwo>
          </Address>
          <CommunicationChannel>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </CommunicationChannel>
          <Contact>
            <Contact>
              <CommunicationChannel>
                <CommunicationChannel>
                  <CommunicationChannelCode>String</CommunicationChannelCode>
                  <CommunicationChannelName>String</CommunicationChannelName>
                  <CommunicationValue>String</CommunicationValue>
                </CommunicationChannel>
              </CommunicationChannel>
              <ContactTypeCode>String</ContactTypeCode>
              <DepartmentName>String</DepartmentName>
              <JobTitle>String</JobTitle>
              <PersonName>String</PersonName>
              <Responsibility>String</Responsibility>
            </Contact>
          </Contact>
          <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
          <EntityIdentification>String</EntityIdentification>
          <FinancialInstitutionInformation>
            <ExportersCode>String</ExportersCode>
            <FinancialAccount>
              <Name>String</Name>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialAccount>
            <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
            <FinancialInstitutionName>String</FinancialInstitutionName>
            <FinancialRoutingNumber>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialRoutingNumber>
            <SwiftCode>String</SwiftCode>
          </FinancialInstitutionInformation>
        </ShipFrom>
        <ShipTo>
          <AdditionalPartyIdentification>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </AdditionalPartyIdentification>
          <Gln>String</Gln>
          <Name>String</Name>
          <Address>
            <City>String</City>
            <CountryCode>String</CountryCode>
            <PostalCode>String</PostalCode>
            <ProvinceCode>String</ProvinceCode>
            <StreetAddressOne>String</StreetAddressOne>
            <StreetAddressThree>String</StreetAddressThree>
            <StreetAddressTwo>String</StreetAddressTwo>
          </Address>
          <CommunicationChannel>
            <AvpList>
              <Code>String</Code>
              <Value>String</Value>
            </AvpList>
          </CommunicationChannel>
          <Contact>
            <Contact>
              <CommunicationChannel>
                <CommunicationChannel>
                  <CommunicationChannelCode>String</CommunicationChannelCode>
                  <CommunicationChannelName>String</CommunicationChannelName>
                  <CommunicationValue>String</CommunicationValue>
                </CommunicationChannel>
              </CommunicationChannel>
              <ContactTypeCode>String</ContactTypeCode>
              <DepartmentName>String</DepartmentName>
              <JobTitle>String</JobTitle>
              <PersonName>String</PersonName>
              <Responsibility>String</Responsibility>
            </Contact>
          </Contact>
          <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
          <EntityIdentification>String</EntityIdentification>
          <FinancialInstitutionInformation>
            <ExportersCode>String</ExportersCode>
            <FinancialAccount>
              <Name>String</Name>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialAccount>
            <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
            <FinancialInstitutionName>String</FinancialInstitutionName>
            <FinancialRoutingNumber>
              <Number>String</Number>
              <NumberTypeCode>String</NumberTypeCode>
            </FinancialRoutingNumber>
            <SwiftCode>String</SwiftCode>
          </FinancialInstitutionInformation>
        </ShipTo>
      </PurchaseConditionsLocationInformation>
    </PurchaseConditionsLocationInformation>
    <RemitTo>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </RemitTo>
    <Seller>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </Seller>
    <TaxRepresentative>
      <AdditionalPartyIdentification>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </AdditionalPartyIdentification>
      <Gln>String</Gln>
      <Name>String</Name>
      <Address>
        <City>String</City>
        <CountryCode>String</CountryCode>
        <PostalCode>String</PostalCode>
        <ProvinceCode>String</ProvinceCode>
        <StreetAddressOne>String</StreetAddressOne>
        <StreetAddressThree>String</StreetAddressThree>
        <StreetAddressTwo>String</StreetAddressTwo>
      </Address>
      <CommunicationChannel>
        <AvpList>
          <Code>String</Code>
          <Value>String</Value>
        </AvpList>
      </CommunicationChannel>
      <Contact>
        <Contact>
          <CommunicationChannel>
            <CommunicationChannel>
              <CommunicationChannelCode>String</CommunicationChannelCode>
              <CommunicationChannelName>String</CommunicationChannelName>
              <CommunicationValue>String</CommunicationValue>
            </CommunicationChannel>
          </CommunicationChannel>
          <ContactTypeCode>String</ContactTypeCode>
          <DepartmentName>String</DepartmentName>
          <JobTitle>String</JobTitle>
          <PersonName>String</PersonName>
          <Responsibility>String</Responsibility>
        </Contact>
      </Contact>
      <DutyFeeTaxRegistration>String</DutyFeeTaxRegistration>
      <EntityIdentification>String</EntityIdentification>
      <FinancialInstitutionInformation>
        <ExportersCode>String</ExportersCode>
        <FinancialAccount>
          <Name>String</Name>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialAccount>
        <FinancialInstitutionBranchName>String</FinancialInstitutionBranchName>
        <FinancialInstitutionName>String</FinancialInstitutionName>
        <FinancialRoutingNumber>
          <Number>String</Number>
          <NumberTypeCode>String</NumberTypeCode>
        </FinancialRoutingNumber>
        <SwiftCode>String</SwiftCode>
      </FinancialInstitutionInformation>
    </TaxRepresentative>
  </PurchaseConditions>
</PurchaseConditionsMessage>