DX STF Client API

<back to all web services

AddPurchaseCondition

Purchase Conditions Requests

Purchase Conditions

Requires Authentication
The following routes are available for this service:
POST/api/purchaseConditionAdd new PurchaseCondition
"use strict";
export class TokenDto {
    /** @param {{token?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    token;
}
export class DocumentIdentification {
    /** @param {{identifier?:string,type?:string,creationDateAndTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    identifier;
    /** @type {string} */
    type;
    /** @type {string} */
    creationDateAndTime;
}
export class Identifier {
    /** @param {{authority?:string,text?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    authority;
    /** @type {string} */
    text;
}
export class ContactInformation {
    constructor(init) { Object.assign(this, init) }
}
export class Partner {
    /** @param {{identifier?:Identifier,contactInformation?:ContactInformation[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Identifier} */
    identifier;
    /** @type {ContactInformation[]} */
    contactInformation = [];
}
export class Header {
    /** @param {{documentIdentification?:DocumentIdentification,sender?:Partner,receiver?:Partner}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {DocumentIdentification} */
    documentIdentification;
    /** @type {Partner} */
    sender;
    /** @type {Partner} */
    receiver;
}
/** @typedef {'ADD'|'CHANGE_BY_REFRESH'|'DELETE'|'REJECTED'} */
export var DocumentAction;
(function (DocumentAction) {
    DocumentAction["ADD"] = "ADD"
    DocumentAction["CHANGE_BY_REFRESH"] = "CHANGE_BY_REFRESH"
    DocumentAction["DELETE"] = "DELETE"
    DocumentAction["REJECTED"] = "REJECTED"
})(DocumentAction || (DocumentAction = {}));
/** @typedef {'ADDITIONAL_TRANSMISSION'|'COPY'|'ORIGINAL'} */
export var DocumentStatus;
(function (DocumentStatus) {
    DocumentStatus["ADDITIONAL_TRANSMISSION"] = "ADDITIONAL_TRANSMISSION"
    DocumentStatus["COPY"] = "COPY"
    DocumentStatus["ORIGINAL"] = "ORIGINAL"
})(DocumentStatus || (DocumentStatus = {}));
export class AvpList {
    /** @param {{code?:string,value?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    code;
    /** @type {string} */
    value;
}
export class BaseDocument {
    /** @param {{currencyCode?:string,creationDateTime?:string,documentActionCode?:DocumentAction,documentStatusCode?:DocumentStatus,documentStructureVersion?:string,lastUpdateDateTime?:string,revisionNumber?:number,avpList?:AvpList[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    currencyCode;
    /** @type {string} */
    creationDateTime;
    /** @type {DocumentAction} */
    documentActionCode;
    /** @type {DocumentStatus} */
    documentStatusCode;
    /** @type {string} */
    documentStructureVersion;
    /** @type {?string} */
    lastUpdateDateTime;
    /** @type {?number} */
    revisionNumber;
    /** @type {AvpList[]} */
    avpList = [];
}
export class Quantity {
    /** @param {{value?:number,measurementUnitCode?:string,codeListVersion?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?number} */
    value;
    /** @type {string} */
    measurementUnitCode;
    /** @type {string} */
    codeListVersion;
}
export class TimeMeasurement {
    /** @param {{timeMeasurementUnitCode?:string,value?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    timeMeasurementUnitCode;
    /** @type {?number} */
    value;
}
export class PurchaseConditionsCommitmentPeriod {
    /** @param {{commitmentPeriodDuration?:TimeMeasurement,purchaseConditionsCommitmentTypeCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {TimeMeasurement} */
    commitmentPeriodDuration;
    /** @type {string} */
    purchaseConditionsCommitmentTypeCode;
}
export class QuantityRange {
    /** @param {{maximumQuantity?:Quantity,minimumQuantity?:Quantity}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Quantity} */
    maximumQuantity;
    /** @type {Quantity} */
    minimumQuantity;
}
export class DateTimeRange {
    /** @param {{beginDate?:string,beginTime?:string,endDate?:string,endTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    beginDate;
    /** @type {?string} */
    beginTime;
    /** @type {?string} */
    endDate;
    /** @type {?string} */
    endTime;
}
export class PurchaseConditionsPriceInformation {
    /** @param {{itemPriceBaseQuantity?:Quantity,itemPriceExclusiveAllowancesCharges?:number,quantityRange?:QuantityRange,effectivePeriod?:DateTimeRange}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Quantity} */
    itemPriceBaseQuantity;
    /** @type {?number} */
    itemPriceExclusiveAllowancesCharges;
    /** @type {QuantityRange} */
    quantityRange;
    /** @type {DateTimeRange} */
    effectivePeriod;
}
export class AllowanceCharge {
    /** @param {{allowanceChargeAmount?:number,allowanceChargePercentage?:number,allowanceChargeType?:string,allowanceOrChargeType?:string,amountPerUnit?:number,baseAmount?:number,baseNumberOfUnits?:string,bracketIdentifier?:string,effectiveDateType?:string,sequenceNumber?:string,settlementType?:string,specialServiceType?:string,allowanceChargeDescription?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?number} */
    allowanceChargeAmount;
    /** @type {?number} */
    allowanceChargePercentage;
    /** @type {string} */
    allowanceChargeType;
    /** @type {string} */
    allowanceOrChargeType;
    /** @type {?number} */
    amountPerUnit;
    /** @type {?number} */
    baseAmount;
    /** @type {string} */
    baseNumberOfUnits;
    /** @type {string} */
    bracketIdentifier;
    /** @type {?string} */
    effectiveDateType;
    /** @type {string} */
    sequenceNumber;
    /** @type {string} */
    settlementType;
    /** @type {string} */
    specialServiceType;
    /** @type {string} */
    allowanceChargeDescription;
}
export class TransactionalItem {
    /** @param {{measurementUnitCode?:string,measurementType?:string,measurementValue?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    measurementUnitCode;
    /** @type {string} */
    measurementType;
    /** @type {string} */
    measurementValue;
}
export class SerialNumberRange {
    /** @param {{maximumValue?:string,minimumValue?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    maximumValue;
    /** @type {string} */
    minimumValue;
}
export class TransactionalItemDimension {
    /** @param {{measurementUnitCode?:string,depth?:string,height?:string,width?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    measurementUnitCode;
    /** @type {string} */
    depth;
    /** @type {string} */
    height;
    /** @type {string} */
    width;
}
export class TransactionalItemLogisticUnitInformation {
    /** @param {{numberOfLayers?:number,numberOfUnitsPerLayer?:number,numberOfUnitsPerPallet?:number,packagingTerms?:string,packageTypeCode?:string,maximumStackingFactor?:number,returnablePackageTransportCostPayment?:string,dimensionsOfLogisticUnit?:TransactionalItemDimension[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?number} */
    numberOfLayers;
    /** @type {?number} */
    numberOfUnitsPerLayer;
    /** @type {?number} */
    numberOfUnitsPerPallet;
    /** @type {string} */
    packagingTerms;
    /** @type {string} */
    packageTypeCode;
    /** @type {?number} */
    maximumStackingFactor;
    /** @type {string} */
    returnablePackageTransportCostPayment;
    /** @type {TransactionalItemDimension[]} */
    dimensionsOfLogisticUnit = [];
}
export class TransactionalItemDataCarrierAndIdentification {
    /** @param {{gs1TransactionalItemIdentificationKey?:string,dataCarrier?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    gs1TransactionalItemIdentificationKey;
    /** @type {string} */
    dataCarrier;
}
export class TradeItemWaste {
    /** @param {{wasteIdentification?:string,typeOfWaste?:AvpList[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    wasteIdentification;
    /** @type {AvpList[]} */
    typeOfWaste = [];
}
export class TransactionalItemOrganicInformation {
    /** @param {{isTradeItemOrganic?:boolean,organicCertification?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?boolean} */
    isTradeItemOrganic;
    /** @type {string} */
    organicCertification;
}
export class TransactionalItemData {
    /** @param {{availableForSaleDate?:string,batchNumber?:string,bestBeforeDate?:string,countryOfOrigin?:string,itemExpirationDate?:string,lotNumber?:string,packagingDate?:string,productionDate?:string,productQualityIndication?:string,sellByDate?:string,serialNumber?:string[],shelfLife?:string,tradeItemQuantity?:number,itemInContactWithFoodProduct?:boolean,transactionalItemWeight?:TransactionalItem[],transactionalItemVolume?:TransactionalItem[],serialNumberRange?:SerialNumberRange[],transactionalItemDimensions?:TransactionalItemDimension[],transactionalItemLogisticUnitInformation?:TransactionalItemLogisticUnitInformation,transactionalItemDataCarrierAndIdentification?:TransactionalItemDataCarrierAndIdentification,tradeItemWaste?:TradeItemWaste[],transactionalItemOrganicInformation?:TransactionalItemOrganicInformation,avpList?:AvpList[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?string} */
    availableForSaleDate;
    /** @type {string} */
    batchNumber;
    /** @type {?string} */
    bestBeforeDate;
    /** @type {string} */
    countryOfOrigin;
    /** @type {?string} */
    itemExpirationDate;
    /** @type {string} */
    lotNumber;
    /** @type {?string} */
    packagingDate;
    /** @type {?string} */
    productionDate;
    /** @type {string} */
    productQualityIndication;
    /** @type {?string} */
    sellByDate;
    /** @type {string[]} */
    serialNumber = [];
    /** @type {string} */
    shelfLife;
    /** @type {?number} */
    tradeItemQuantity;
    /** @type {?boolean} */
    itemInContactWithFoodProduct;
    /** @type {TransactionalItem[]} */
    transactionalItemWeight = [];
    /** @type {TransactionalItem[]} */
    transactionalItemVolume = [];
    /** @type {SerialNumberRange[]} */
    serialNumberRange = [];
    /** @type {TransactionalItemDimension[]} */
    transactionalItemDimensions = [];
    /** @type {TransactionalItemLogisticUnitInformation} */
    transactionalItemLogisticUnitInformation;
    /** @type {TransactionalItemDataCarrierAndIdentification} */
    transactionalItemDataCarrierAndIdentification;
    /** @type {TradeItemWaste[]} */
    tradeItemWaste = [];
    /** @type {TransactionalItemOrganicInformation} */
    transactionalItemOrganicInformation;
    /** @type {AvpList[]} */
    avpList = [];
}
export class Colour {
    /** @param {{colourCode?:string,colourDescription?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    colourCode;
    /** @type {string} */
    colourDescription;
}
export class Size {
    /** @param {{descriptiveSize?:string,sizeCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    descriptiveSize;
    /** @type {string} */
    sizeCode;
}
export class TradeItemClassification {
    /** @param {{gpcCategoryCode?:string,additionalTradeItemClassificationCode?:AvpList[],gpcCategoryName?:string,gpcAttribute?:AvpList[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    gpcCategoryCode;
    /** @type {AvpList[]} */
    additionalTradeItemClassificationCode = [];
    /** @type {string} */
    gpcCategoryName;
    /** @type {AvpList[]} */
    gpcAttribute = [];
}
export class TransactionalTradeItem {
    /** @param {{gtin?:string,additionalTradeItemIdentification?:AvpList[],tradeItemQuantity?:number,tradeItemDescription?:string,productVariantIdentifier?:string,itemTypeCode?:string,tradeItemDataOwner?:string,butterFatReference?:string,transactionalItemData?:TransactionalItemData[],colour?:Colour[],size?:Size,tradeItemClassification?:TradeItemClassification,avpList?:AvpList[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    gtin;
    /** @type {AvpList[]} */
    additionalTradeItemIdentification = [];
    /** @type {?number} */
    tradeItemQuantity;
    /** @type {string} */
    tradeItemDescription;
    /** @type {string} */
    productVariantIdentifier;
    /** @type {string} */
    itemTypeCode;
    /** @type {string} */
    tradeItemDataOwner;
    /** @type {string} */
    butterFatReference;
    /** @type {TransactionalItemData[]} */
    transactionalItemData = [];
    /** @type {Colour[]} */
    colour = [];
    /** @type {Size} */
    size;
    /** @type {TradeItemClassification} */
    tradeItemClassification;
    /** @type {AvpList[]} */
    avpList = [];
}
export class LeviedDutyFeeTax {
    /** @param {{dutyFeeTaxAmount?:number,dutyFeeTaxBasisAmount?:number,dutyFeeTaxDescription?:string,dutyFeeTaxPercentage?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?number} */
    dutyFeeTaxAmount;
    /** @type {?number} */
    dutyFeeTaxBasisAmount;
    /** @type {string} */
    dutyFeeTaxDescription;
    /** @type {?number} */
    dutyFeeTaxPercentage;
}
export class DocumentReference {
    /** @param {{creationDateTime?:string,revisionNumber?:number,lineItemNumber?:number,entityIdentification?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?string} */
    creationDateTime;
    /** @type {?number} */
    revisionNumber;
    /** @type {?number} */
    lineItemNumber;
    /** @type {string} */
    entityIdentification;
}
export class PurchaseConditionsLineItem {
    /** @param {{discrepancyTolerancePercentage?:number,lineItemNumber?:number,packagingTypeCode?:string,parentLineItemNumber?:number,purchaseConditionsQuantity?:Quantity,purchaseConditionsCommitmentPeriod?:PurchaseConditionsCommitmentPeriod[],purchaseConditionsPriceInformation?:PurchaseConditionsPriceInformation[],allowanceCharge?:AllowanceCharge[],transactionalTradeItem?:TransactionalTradeItem,leviedDutyFeeTax?:LeviedDutyFeeTax,avpList?:AvpList[],effectivePeriod?:DateTimeRange,materialSpecification?:DocumentReference,purchaseConditionsQuantityRange?:QuantityRange}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {?number} */
    discrepancyTolerancePercentage;
    /** @type {?number} */
    lineItemNumber;
    /** @type {string} */
    packagingTypeCode;
    /** @type {?number} */
    parentLineItemNumber;
    /** @type {Quantity} */
    purchaseConditionsQuantity;
    /** @type {PurchaseConditionsCommitmentPeriod[]} */
    purchaseConditionsCommitmentPeriod = [];
    /** @type {PurchaseConditionsPriceInformation[]} */
    purchaseConditionsPriceInformation = [];
    /** @type {AllowanceCharge[]} */
    allowanceCharge = [];
    /** @type {TransactionalTradeItem} */
    transactionalTradeItem;
    /** @type {LeviedDutyFeeTax} */
    leviedDutyFeeTax;
    /** @type {AvpList[]} */
    avpList = [];
    /** @type {DateTimeRange} */
    effectivePeriod;
    /** @type {DocumentReference} */
    materialSpecification;
    /** @type {QuantityRange} */
    purchaseConditionsQuantityRange;
}
export class Ecom_PartyIdentificationType {
    /** @param {{gln?:string,name?:string,additionalPartyIdentification?:AvpList[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    gln;
    /** @type {string} */
    name;
    /** @type {AvpList[]} */
    additionalPartyIdentification = [];
}
export class CommunicationChannel {
    /** @param {{communicationChannelCode?:string,communicationChannelName?:string,communicationValue?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    communicationChannelCode;
    /** @type {string} */
    communicationChannelName;
    /** @type {string} */
    communicationValue;
}
export class Contact {
    /** @param {{contactTypeCode?:string,personName?:string,departmentName?:string,jobTitle?:string,responsibility?:string,communicationChannel?:CommunicationChannel[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    contactTypeCode;
    /** @type {string} */
    personName;
    /** @type {string} */
    departmentName;
    /** @type {string} */
    jobTitle;
    /** @type {string} */
    responsibility;
    /** @type {CommunicationChannel[]} */
    communicationChannel = [];
}
export class Address {
    /** @param {{streetAddressOne?:string,streetAddressTwo?:string,streetAddressThree?:string,city?:string,postalCode?:string,provinceCode?:string,countryCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    streetAddressOne;
    /** @type {string} */
    streetAddressTwo;
    /** @type {string} */
    streetAddressThree;
    /** @type {string} */
    city;
    /** @type {string} */
    postalCode;
    /** @type {string} */
    provinceCode;
    /** @type {string} */
    countryCode;
}
export class FinancialRoutingNumber {
    /** @param {{number?:string,numberTypeCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    number;
    /** @type {string} */
    numberTypeCode;
}
export class FinancialAccount {
    /** @param {{number?:string,numberTypeCode?:string,name?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    number;
    /** @type {string} */
    numberTypeCode;
    /** @type {string} */
    name;
}
export class FinancialInstitutionInformation {
    /** @param {{financialInstitutionBranchName?:string,financialInstitutionName?:string,financialRoutingNumber?:FinancialRoutingNumber,financialAccount?:FinancialAccount,swiftCode?:string,exportersCode?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    financialInstitutionBranchName;
    /** @type {string} */
    financialInstitutionName;
    /** @type {FinancialRoutingNumber} */
    financialRoutingNumber;
    /** @type {FinancialAccount} */
    financialAccount;
    /** @type {string} */
    swiftCode;
    /** @type {string} */
    exportersCode;
}
export class TransactionalParty extends Ecom_PartyIdentificationType {
    /** @param {{contact?:Contact[],address?:Address,communicationChannel?:AvpList[],financialInstitutionInformation?:FinancialInstitutionInformation,dutyFeeTaxRegistration?:string,entityIdentification?:string,gln?:string,name?:string,additionalPartyIdentification?:AvpList[]}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {Contact[]} */
    contact = [];
    /** @type {Address} */
    address;
    /** @type {AvpList[]} */
    communicationChannel = [];
    /** @type {FinancialInstitutionInformation} */
    financialInstitutionInformation;
    /** @type {string} */
    dutyFeeTaxRegistration;
    /** @type {string} */
    entityIdentification;
}
export class PurchaseConditionsLocationInformation {
    /** @param {{purchaseConditionsLineItem?:PurchaseConditionsLineItem[],shipFrom?:TransactionalParty,shipTo?:TransactionalParty}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {PurchaseConditionsLineItem[]} */
    purchaseConditionsLineItem = [];
    /** @type {TransactionalParty} */
    shipFrom;
    /** @type {TransactionalParty} */
    shipTo;
}
export class CurrencyExchangeRateInformation {
    /** @param {{currencyConversionFromCode?:string,currencyConversionToCode?:string,exchangeRate?:number,exchangeRateDateTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    currencyConversionFromCode;
    /** @type {string} */
    currencyConversionToCode;
    /** @type {?number} */
    exchangeRate;
    /** @type {?string} */
    exchangeRateDateTime;
}
export class PurchaseConditions extends BaseDocument {
    /** @param {{purchaseConditionsCurrencyCode?:string,purchaseConditionsLocationInformation?:PurchaseConditionsLocationInformation[],currencyExchangeRateInformation?:CurrencyExchangeRateInformation,buyer?:TransactionalParty,payee?:TransactionalParty,payer?:TransactionalParty,purchaseConditionsIdentification?:string,remitTo?:TransactionalParty,seller?:TransactionalParty,taxRepresentative?:TransactionalParty,currencyCode?:string,creationDateTime?:string,documentActionCode?:DocumentAction,documentStatusCode?:DocumentStatus,documentStructureVersion?:string,lastUpdateDateTime?:string,revisionNumber?:number,avpList?:AvpList[]}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    purchaseConditionsCurrencyCode;
    /** @type {PurchaseConditionsLocationInformation[]} */
    purchaseConditionsLocationInformation = [];
    /** @type {CurrencyExchangeRateInformation} */
    currencyExchangeRateInformation;
    /** @type {TransactionalParty} */
    buyer;
    /** @type {TransactionalParty} */
    payee;
    /** @type {TransactionalParty} */
    payer;
    /** @type {string} */
    purchaseConditionsIdentification;
    /** @type {TransactionalParty} */
    remitTo;
    /** @type {TransactionalParty} */
    seller;
    /** @type {TransactionalParty} */
    taxRepresentative;
}
export class PurchaseConditionsMessage {
    /** @param {{header?:Header,purchaseConditions?:PurchaseConditions}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {Header} */
    header;
    /** @type {PurchaseConditions} */
    purchaseConditions;
}
export class AddPurchaseCondition {
    /** @param {{purchaseConditions?:PurchaseConditionsMessage}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {PurchaseConditionsMessage}
     * @description Purchase Condition model containing all of the Purchase Condition data */
    purchaseConditions;
}

JavaScript AddPurchaseCondition DTOs

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

HTTP + JSV

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

POST /api/purchaseCondition HTTP/1.1 
Host: stf-api-uat.data-xchange.co.za 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	purchaseConditions: 
	{
		header: 
		{
			documentIdentification: 
			{
				identifier: String,
				type: String
			},
			sender: 
			{
				identifier: 
				{
					authority: String,
					text: String
				},
				contactInformation: 
				[
					{
						
					}
				]
			},
			receiver: 
			{
				identifier: 
				{
					authority: String,
					text: String
				},
				contactInformation: 
				[
					{
						
					}
				]
			}
		},
		purchaseConditions: 
		{
			purchaseConditionsCurrencyCode: String,
			purchaseConditionsLocationInformation: 
			[
				{
					purchaseConditionsLineItem: 
					[
						{
							discrepancyTolerancePercentage: 0,
							lineItemNumber: 0,
							packagingTypeCode: String,
							parentLineItemNumber: 0,
							purchaseConditionsQuantity: 
							{
								value: 0,
								measurementUnitCode: String,
								codeListVersion: String
							},
							purchaseConditionsCommitmentPeriod: 
							[
								{
									commitmentPeriodDuration: 
									{
										timeMeasurementUnitCode: String,
										value: 0
									},
									purchaseConditionsCommitmentTypeCode: String
								}
							],
							purchaseConditionsPriceInformation: 
							[
								{
									itemPriceBaseQuantity: 
									{
										value: 0,
										measurementUnitCode: String,
										codeListVersion: String
									},
									itemPriceExclusiveAllowancesCharges: 0,
									quantityRange: 
									{
										maximumQuantity: 
										{
											value: 0,
											measurementUnitCode: String,
											codeListVersion: String
										},
										minimumQuantity: 
										{
											value: 0,
											measurementUnitCode: String,
											codeListVersion: String
										}
									},
									effectivePeriod: 
									{
										beginDate: 0001-01-01,
										beginTime: PT0S,
										endDate: 0001-01-01,
										endTime: PT0S
									}
								}
							],
							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
								}
							],
							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
							},
							avpList: 
							[
								{
									code: String,
									value: String
								}
							],
							effectivePeriod: 
							{
								beginDate: 0001-01-01,
								beginTime: PT0S,
								endDate: 0001-01-01,
								endTime: PT0S
							},
							materialSpecification: 
							{
								creationDateTime: 0001-01-01,
								revisionNumber: 0,
								lineItemNumber: 0,
								entityIdentification: String
							},
							purchaseConditionsQuantityRange: 
							{
								maximumQuantity: 
								{
									value: 0,
									measurementUnitCode: String,
									codeListVersion: String
								},
								minimumQuantity: 
								{
									value: 0,
									measurementUnitCode: String,
									codeListVersion: 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
							}
						]
					}
				}
			],
			currencyExchangeRateInformation: 
			{
				currencyConversionFromCode: String,
				currencyConversionToCode: String,
				exchangeRate: 0,
				exchangeRateDateTime: 0001-01-01
			},
			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
					}
				]
			},
			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
					}
				]
			},
			purchaseConditionsIdentification: String,
			remitTo: 
			{
				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
					}
				]
			},
			taxRepresentative: 
			{
				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
					}
				]
			},
			currencyCode: String,
			documentActionCode: ADD,
			documentStatusCode: ADDITIONAL_TRANSMISSION,
			documentStructureVersion: String,
			lastUpdateDateTime: 0001-01-01,
			revisionNumber: 0,
			avpList: 
			[
				{
					code: String,
					value: String
				}
			]
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	
}