| POST | /api/purchaseCondition | Add new PurchaseCondition |
|---|
import Foundation
import ServiceStack
/**
* Purchase Conditions
*/
// @Api(Description="Purchase Conditions")
// @ApiResponse(Description="Add Purchase Condition request received", IsDefaultResponse=true, StatusCode=200)
// @ApiResponse(Description="Purchase Condition not accepted, Confirm Sender GLN", ResponseType=typeof(UnauthorizedAccessException), StatusCode=403)
public class AddPurchaseCondition : Codable
{
/**
* Purchase Condition model containing all of the Purchase Condition data
*/
// @ApiMember(Description="Purchase Condition model containing all of the Purchase Condition data", ParameterType="model")
public var purchaseConditions:PurchaseConditionsMessage
required public init(){}
}
public class PurchaseConditionsMessage : Codable
{
public var header:Header
public var purchaseConditions:PurchaseConditions
required public init(){}
}
// @DataContract
public class Header : Codable
{
// @DataMember(Name="documentIdentification")
public var documentIdentification:DocumentIdentification
// @DataMember(Name="sender")
public var sender:Partner
// @DataMember(Name="receiver")
public var receiver:Partner
required public init(){}
}
// @DataContract
public class DocumentIdentification : Codable
{
// @DataMember(Name="identifier")
public var identifier:String
// @DataMember(Name="type")
public var type:String
// @DataMember(Name="creationDateAndTime")
public var creationDateAndTime:Date
required public init(){}
}
// @DataContract
public class Partner : Codable
{
// @DataMember(Name="identifier")
public var identifier:Identifier
// @DataMember(Name="contactInformation")
public var contactInformation:[ContactInformation] = []
required public init(){}
}
// @DataContract
public class Identifier : Codable
{
// @DataMember(Name="authority")
public var authority:String
// @DataMember(Name="text")
public var text:String
required public init(){}
}
// @DataContract
public class ContactInformation : Codable
{
required public init(){}
}
public class PurchaseConditions : BaseDocument
{
public var purchaseConditionsCurrencyCode:String
public var purchaseConditionsLocationInformation:[PurchaseConditionsLocationInformation] = []
public var currencyExchangeRateInformation:CurrencyExchangeRateInformation
public var buyer:TransactionalParty
public var payee:TransactionalParty
public var payer:TransactionalParty
public var purchaseConditionsIdentification:String
public var remitTo:TransactionalParty
public var seller:TransactionalParty
public var taxRepresentative:TransactionalParty
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case purchaseConditionsCurrencyCode
case purchaseConditionsLocationInformation
case currencyExchangeRateInformation
case buyer
case payee
case payer
case purchaseConditionsIdentification
case remitTo
case seller
case taxRepresentative
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
purchaseConditionsCurrencyCode = try container.decodeIfPresent(String.self, forKey: .purchaseConditionsCurrencyCode)
purchaseConditionsLocationInformation = try container.decodeIfPresent([PurchaseConditionsLocationInformation].self, forKey: .purchaseConditionsLocationInformation) ?? []
currencyExchangeRateInformation = try container.decodeIfPresent(CurrencyExchangeRateInformation.self, forKey: .currencyExchangeRateInformation)
buyer = try container.decodeIfPresent(TransactionalParty.self, forKey: .buyer)
payee = try container.decodeIfPresent(TransactionalParty.self, forKey: .payee)
payer = try container.decodeIfPresent(TransactionalParty.self, forKey: .payer)
purchaseConditionsIdentification = try container.decodeIfPresent(String.self, forKey: .purchaseConditionsIdentification)
remitTo = try container.decodeIfPresent(TransactionalParty.self, forKey: .remitTo)
seller = try container.decodeIfPresent(TransactionalParty.self, forKey: .seller)
taxRepresentative = try container.decodeIfPresent(TransactionalParty.self, forKey: .taxRepresentative)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if purchaseConditionsCurrencyCode != nil { try container.encode(purchaseConditionsCurrencyCode, forKey: .purchaseConditionsCurrencyCode) }
if purchaseConditionsLocationInformation.count > 0 { try container.encode(purchaseConditionsLocationInformation, forKey: .purchaseConditionsLocationInformation) }
if currencyExchangeRateInformation != nil { try container.encode(currencyExchangeRateInformation, forKey: .currencyExchangeRateInformation) }
if buyer != nil { try container.encode(buyer, forKey: .buyer) }
if payee != nil { try container.encode(payee, forKey: .payee) }
if payer != nil { try container.encode(payer, forKey: .payer) }
if purchaseConditionsIdentification != nil { try container.encode(purchaseConditionsIdentification, forKey: .purchaseConditionsIdentification) }
if remitTo != nil { try container.encode(remitTo, forKey: .remitTo) }
if seller != nil { try container.encode(seller, forKey: .seller) }
if taxRepresentative != nil { try container.encode(taxRepresentative, forKey: .taxRepresentative) }
}
}
public class BaseDocument : Codable
{
public var currencyCode:String
public var creationDateTime:Date
public var documentActionCode:DocumentAction
public var documentStatusCode:DocumentStatus
public var documentStructureVersion:String
public var lastUpdateDateTime:Date?
public var revisionNumber:Int?
public var avpList:[AvpList] = []
required public init(){}
}
public enum DocumentAction : String, Codable
{
case ADD
case CHANGE_BY_REFRESH
case DELETE
case REJECTED
}
public enum DocumentStatus : String, Codable
{
case ADDITIONAL_TRANSMISSION
case COPY
case ORIGINAL
}
public class AvpList : Codable
{
public var code:String
public var value:String
required public init(){}
}
public class PurchaseConditionsLocationInformation : Codable
{
public var purchaseConditionsLineItem:[PurchaseConditionsLineItem] = []
public var shipFrom:TransactionalParty
public var shipTo:TransactionalParty
required public init(){}
}
public class PurchaseConditionsLineItem : Codable
{
public var discrepancyTolerancePercentage:Double?
public var lineItemNumber:Int?
public var packagingTypeCode:String
public var parentLineItemNumber:Int?
public var purchaseConditionsQuantity:Quantity
public var purchaseConditionsCommitmentPeriod:[PurchaseConditionsCommitmentPeriod] = []
public var purchaseConditionsPriceInformation:[PurchaseConditionsPriceInformation] = []
public var allowanceCharge:[AllowanceCharge] = []
public var transactionalTradeItem:TransactionalTradeItem
public var leviedDutyFeeTax:LeviedDutyFeeTax
public var avpList:[AvpList] = []
public var effectivePeriod:DateTimeRange
public var materialSpecification:DocumentReference
public var purchaseConditionsQuantityRange:QuantityRange
required public init(){}
}
public class Quantity : Codable
{
public var value:Double?
public var measurementUnitCode:String
public var codeListVersion:String
required public init(){}
}
public class PurchaseConditionsCommitmentPeriod : Codable
{
public var commitmentPeriodDuration:TimeMeasurement
public var purchaseConditionsCommitmentTypeCode:String
required public init(){}
}
public class TimeMeasurement : Codable
{
public var timeMeasurementUnitCode:String
public var value:Double?
required public init(){}
}
public class PurchaseConditionsPriceInformation : Codable
{
public var itemPriceBaseQuantity:Quantity
public var itemPriceExclusiveAllowancesCharges:Double?
public var quantityRange:QuantityRange
public var effectivePeriod:DateTimeRange
required public init(){}
}
public class QuantityRange : Codable
{
public var maximumQuantity:Quantity
public var minimumQuantity:Quantity
required public init(){}
}
public class DateTimeRange : Codable
{
public var beginDate:Date
@TimeSpan public var beginTime:TimeInterval?
public var endDate:Date?
@TimeSpan public var endTime:TimeInterval?
required public init(){}
}
public class AllowanceCharge : Codable
{
public var allowanceChargeAmount:Double?
public var allowanceChargePercentage:Double?
public var allowanceChargeType:String
public var allowanceOrChargeType:String
public var amountPerUnit:Double?
public var baseAmount:Double?
public var baseNumberOfUnits:String
public var bracketIdentifier:String
public var effectiveDateType:Date?
public var sequenceNumber:String
public var settlementType:String
public var specialServiceType:String
public var allowanceChargeDescription:String
required public init(){}
}
public class TransactionalTradeItem : Codable
{
public var gtin:String
public var additionalTradeItemIdentification:[AvpList] = []
public var tradeItemQuantity:Double?
public var tradeItemDescription:String
public var productVariantIdentifier:String
public var itemTypeCode:String
public var tradeItemDataOwner:String
public var butterFatReference:String
public var transactionalItemData:[TransactionalItemData] = []
public var colour:[Colour] = []
public var size:Size
public var tradeItemClassification:TradeItemClassification
public var avpList:[AvpList] = []
required public init(){}
}
public class TransactionalItemData : Codable
{
public var availableForSaleDate:Date?
public var batchNumber:String
public var bestBeforeDate:Date?
public var countryOfOrigin:String
public var itemExpirationDate:Date?
public var lotNumber:String
public var packagingDate:Date?
public var productionDate:Date?
public var productQualityIndication:String
public var sellByDate:Date?
public var serialNumber:[String] = []
public var shelfLife:String
public var tradeItemQuantity:Int?
public var itemInContactWithFoodProduct:Bool?
public var transactionalItemWeight:[TransactionalItem] = []
public var transactionalItemVolume:[TransactionalItem] = []
public var serialNumberRange:[SerialNumberRange] = []
public var transactionalItemDimensions:[TransactionalItemDimension] = []
public var transactionalItemLogisticUnitInformation:TransactionalItemLogisticUnitInformation
public var transactionalItemDataCarrierAndIdentification:TransactionalItemDataCarrierAndIdentification
public var tradeItemWaste:[TradeItemWaste] = []
public var transactionalItemOrganicInformation:TransactionalItemOrganicInformation
public var avpList:[AvpList] = []
required public init(){}
}
public class TransactionalItem : Codable
{
public var measurementUnitCode:String
public var measurementType:String
public var measurementValue:String
required public init(){}
}
public class SerialNumberRange : Codable
{
public var maximumValue:String
public var minimumValue:String
required public init(){}
}
public class TransactionalItemDimension : Codable
{
public var measurementUnitCode:String
public var depth:String
public var height:String
public var width:String
required public init(){}
}
public class TransactionalItemLogisticUnitInformation : Codable
{
public var numberOfLayers:Int?
public var numberOfUnitsPerLayer:Int?
public var numberOfUnitsPerPallet:Int?
public var packagingTerms:String
public var packageTypeCode:String
public var maximumStackingFactor:Int?
public var returnablePackageTransportCostPayment:String
public var dimensionsOfLogisticUnit:[TransactionalItemDimension] = []
required public init(){}
}
public class TransactionalItemDataCarrierAndIdentification : Codable
{
public var gs1TransactionalItemIdentificationKey:String
public var dataCarrier:String
required public init(){}
}
public class TradeItemWaste : Codable
{
public var wasteIdentification:String
public var typeOfWaste:[AvpList] = []
required public init(){}
}
public class TransactionalItemOrganicInformation : Codable
{
public var isTradeItemOrganic:Bool?
public var organicCertification:String
required public init(){}
}
public class Colour : Codable
{
public var colourCode:String
public var colourDescription:String
required public init(){}
}
public class Size : Codable
{
public var descriptiveSize:String
public var sizeCode:String
required public init(){}
}
public class TradeItemClassification : Codable
{
public var gpcCategoryCode:String
public var additionalTradeItemClassificationCode:[AvpList] = []
public var gpcCategoryName:String
public var gpcAttribute:[AvpList] = []
required public init(){}
}
public class LeviedDutyFeeTax : Codable
{
public var dutyFeeTaxAmount:Double?
public var dutyFeeTaxBasisAmount:Double?
public var dutyFeeTaxDescription:String
public var dutyFeeTaxPercentage:Double?
required public init(){}
}
public class DocumentReference : Codable
{
public var creationDateTime:Date?
public var revisionNumber:Int?
public var lineItemNumber:Int?
public var entityIdentification:String
required public init(){}
}
public class TransactionalParty : Ecom_PartyIdentificationType
{
public var contact:[Contact] = []
public var address:Address
public var communicationChannel:[AvpList] = []
public var financialInstitutionInformation:FinancialInstitutionInformation
public var dutyFeeTaxRegistration:String
public var entityIdentification:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case contact
case address
case communicationChannel
case financialInstitutionInformation
case dutyFeeTaxRegistration
case entityIdentification
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
contact = try container.decodeIfPresent([Contact].self, forKey: .contact) ?? []
address = try container.decodeIfPresent(Address.self, forKey: .address)
communicationChannel = try container.decodeIfPresent([AvpList].self, forKey: .communicationChannel) ?? []
financialInstitutionInformation = try container.decodeIfPresent(FinancialInstitutionInformation.self, forKey: .financialInstitutionInformation)
dutyFeeTaxRegistration = try container.decodeIfPresent(String.self, forKey: .dutyFeeTaxRegistration)
entityIdentification = try container.decodeIfPresent(String.self, forKey: .entityIdentification)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if contact.count > 0 { try container.encode(contact, forKey: .contact) }
if address != nil { try container.encode(address, forKey: .address) }
if communicationChannel.count > 0 { try container.encode(communicationChannel, forKey: .communicationChannel) }
if financialInstitutionInformation != nil { try container.encode(financialInstitutionInformation, forKey: .financialInstitutionInformation) }
if dutyFeeTaxRegistration != nil { try container.encode(dutyFeeTaxRegistration, forKey: .dutyFeeTaxRegistration) }
if entityIdentification != nil { try container.encode(entityIdentification, forKey: .entityIdentification) }
}
}
public class Ecom_PartyIdentificationType : Codable
{
public var gln:String
public var name:String
public var additionalPartyIdentification:[AvpList] = []
required public init(){}
}
public class Contact : Codable
{
public var contactTypeCode:String
public var personName:String
public var departmentName:String
public var jobTitle:String
public var responsibility:String
public var communicationChannel:[CommunicationChannel] = []
required public init(){}
}
public class CommunicationChannel : Codable
{
public var communicationChannelCode:String
public var communicationChannelName:String
public var communicationValue:String
required public init(){}
}
public class Address : Codable
{
public var streetAddressOne:String
public var streetAddressTwo:String
public var streetAddressThree:String
public var city:String
public var postalCode:String
public var provinceCode:String
public var countryCode:String
required public init(){}
}
public class FinancialInstitutionInformation : Codable
{
public var financialInstitutionBranchName:String
public var financialInstitutionName:String
public var financialRoutingNumber:FinancialRoutingNumber
public var financialAccount:FinancialAccount
public var swiftCode:String
public var exportersCode:String
required public init(){}
}
public class FinancialRoutingNumber : Codable
{
public var number:String
public var numberTypeCode:String
required public init(){}
}
public class FinancialAccount : Codable
{
public var number:String
public var numberTypeCode:String
public var name:String
required public init(){}
}
public class CurrencyExchangeRateInformation : Codable
{
public var currencyConversionFromCode:String
public var currencyConversionToCode:String
public var exchangeRate:Int?
public var exchangeRateDateTime:Date?
required public init(){}
}
public class TokenDto : ICommandResponse, Codable
{
public var token:String
required public init(){}
}
Swift AddPurchaseCondition DTOs
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.
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
{
}