| POST | /api/claim | Add new claim |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
/**
* Claim
*/
@Api(Description="Claim")
@ApiResponse(Description="Add claim request received", IsDefaultResponse=true, ResponseType=TokenDto::class, StatusCode=202)
// @ApiResponse(Description="Claim not accepted, Confirm Sender GLN", ResponseType=ErrorResponse::class, StatusCode=403)
open class AddClaim
{
/**
* Claim model containing all of the claim data
*/
@ApiMember(Description="Claim model containing all of the claim data", Name="claim", ParameterType="model")
open var claim:ClaimMessage? = null
}
open class ClaimMessage
{
open var header:Header? = null
open var claimNotification:ClaimNotification? = null
}
@DataContract
open class Header
{
@DataMember(Name="documentIdentification")
@SerializedName("documentIdentification")
open var documentIdentification:DocumentIdentification? = null
@DataMember(Name="sender")
@SerializedName("sender")
open var sender:Partner? = null
@DataMember(Name="receiver")
@SerializedName("receiver")
open var receiver:Partner? = null
}
@DataContract
open class DocumentIdentification
{
@DataMember(Name="identifier")
@SerializedName("identifier")
open var identifier:String? = null
@DataMember(Name="type")
@SerializedName("type")
open var Type:String? = null
@DataMember(Name="creationDateAndTime")
@SerializedName("creationDateAndTime")
open var creationDateAndTime:Date? = null
}
@DataContract
open class Partner
{
@DataMember(Name="identifier")
@SerializedName("identifier")
open var identifier:Identifier? = null
@DataMember(Name="contactInformation")
@SerializedName("contactInformation")
open var contactInformation:ArrayList<ContactInformation> = ArrayList<ContactInformation>()
}
@DataContract
open class Identifier
{
@DataMember(Name="authority")
@SerializedName("authority")
open var authority:String? = null
@DataMember(Name="text")
@SerializedName("text")
open var text:String? = null
}
@DataContract
open class ContactInformation
{
}
open class ClaimNotification : BaseDocument()
{
open var claimsNotificationTypeCode:String? = null
open var isManualProcessNeededForClaimsResolution:Boolean? = null
open var isSupplementalMessageBeingSent:Boolean? = null
open var supplementalMessageDescription:String? = null
open var claimsNotificationIdentification:String? = null
open var buyer:TransactionalParty? = null
open var remitTo:TransactionalParty? = null
open var seller:TransactionalParty? = null
open var billOfLading:BillOfLading? = null
open var claimsNotification:DocumentReference? = null
open var dispatchAdvice:DocumentReference? = null
open var purchaseOrder:DocumentReference? = null
open var invoice:DocumentReference? = null
open var claimsNotificationDiscrepancyInformation:ArrayList<ClaimsNotificationDiscrepancyInformation> = ArrayList<ClaimsNotificationDiscrepancyInformation>()
open var extension:ClaimExtension? = null
}
open class BaseDocument
{
open var currencyCode:String? = null
open var creationDateTime:Date? = null
open var documentActionCode:DocumentAction? = null
open var documentStatusCode:DocumentStatus? = null
open var documentStructureVersion:String? = null
open var lastUpdateDateTime:Date? = null
open var revisionNumber:Long? = null
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
enum class DocumentAction
{
Add,
ChangeByRefresh,
Delete,
Rejected,
}
enum class DocumentStatus
{
AdditionalTransmission,
Copy,
Original,
}
open class AvpList
{
open var code:String? = null
open var value:String? = null
}
open class TransactionalParty : Ecom_PartyIdentificationType()
{
open var contact:ArrayList<Contact> = ArrayList<Contact>()
open var address:Address? = null
open var communicationChannel:ArrayList<AvpList> = ArrayList<AvpList>()
open var financialInstitutionInformation:FinancialInstitutionInformation? = null
open var dutyFeeTaxRegistration:String? = null
open var entityIdentification:String? = null
}
open class Ecom_PartyIdentificationType
{
open var gln:String? = null
open var name:String? = null
open var additionalPartyIdentification:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class Contact
{
open var contactTypeCode:String? = null
open var personName:String? = null
open var departmentName:String? = null
open var jobTitle:String? = null
open var responsibility:String? = null
open var communicationChannel:ArrayList<CommunicationChannel> = ArrayList<CommunicationChannel>()
}
open class CommunicationChannel
{
open var communicationChannelCode:String? = null
open var communicationChannelName:String? = null
open var communicationValue:String? = null
}
open class Address
{
open var streetAddressOne:String? = null
open var streetAddressTwo:String? = null
open var streetAddressThree:String? = null
open var city:String? = null
open var postalCode:String? = null
open var provinceCode:String? = null
open var countryCode:String? = null
}
open class FinancialInstitutionInformation
{
open var financialInstitutionBranchName:String? = null
open var financialInstitutionName:String? = null
open var financialRoutingNumber:FinancialRoutingNumber? = null
open var financialAccount:FinancialAccount? = null
open var swiftCode:String? = null
open var exportersCode:String? = null
}
open class FinancialRoutingNumber
{
open var number:String? = null
open var numberTypeCode:String? = null
}
open class FinancialAccount
{
open var number:String? = null
open var numberTypeCode:String? = null
open var name:String? = null
}
open class BillOfLading
{
open var creationDate:Date? = null
open var revisionNumber:Long? = null
open var entityIdentification:String? = null
open var tagNumbers:ArrayList<String> = ArrayList<String>()
open var totalBags:Long? = null
}
open class DocumentReference
{
open var creationDateTime:Date? = null
open var revisionNumber:Long? = null
open var lineItemNumber:Long? = null
open var entityIdentification:String? = null
}
open class ClaimsNotificationDiscrepancyInformation
{
open var claimAmount:BigDecimal? = null
open var claimReasonCode:String? = null
open var discrepancyDescription:String? = null
open var actualReceived:ClaimsNotificationItemDiscrepancy? = null
open var expectedToReceive:ClaimsNotificationItemDiscrepancy? = null
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class ClaimsNotificationItemDiscrepancy
{
open var price:BigDecimal? = null
open var quantity:Quantity? = null
open var transactionalTradeItem:TransactionalTradeItem? = null
}
open class Quantity
{
open var value:BigDecimal? = null
open var measurementUnitCode:String? = null
open var codeListVersion:String? = null
}
open class TransactionalTradeItem
{
open var gtin:String? = null
open var additionalTradeItemIdentification:ArrayList<AvpList> = ArrayList<AvpList>()
open var tradeItemQuantity:BigDecimal? = null
open var tradeItemDescription:String? = null
open var productVariantIdentifier:String? = null
open var itemTypeCode:String? = null
open var tradeItemDataOwner:String? = null
open var butterFatReference:String? = null
open var transactionalItemData:ArrayList<TransactionalItemData> = ArrayList<TransactionalItemData>()
open var colour:ArrayList<Colour> = ArrayList<Colour>()
open var size:Size? = null
open var tradeItemClassification:TradeItemClassification? = null
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class TransactionalItemData
{
open var availableForSaleDate:Date? = null
open var batchNumber:String? = null
open var bestBeforeDate:Date? = null
open var countryOfOrigin:String? = null
open var itemExpirationDate:Date? = null
open var lotNumber:String? = null
open var packagingDate:Date? = null
open var productionDate:Date? = null
open var productQualityIndication:String? = null
open var sellByDate:Date? = null
open var serialNumber:ArrayList<String> = ArrayList<String>()
open var shelfLife:String? = null
open var tradeItemQuantity:Long? = null
open var itemInContactWithFoodProduct:Boolean? = null
open var transactionalItemWeight:ArrayList<TransactionalItem> = ArrayList<TransactionalItem>()
open var transactionalItemVolume:ArrayList<TransactionalItem> = ArrayList<TransactionalItem>()
open var serialNumberRange:ArrayList<SerialNumberRange> = ArrayList<SerialNumberRange>()
open var transactionalItemDimensions:ArrayList<TransactionalItemDimension> = ArrayList<TransactionalItemDimension>()
open var transactionalItemLogisticUnitInformation:TransactionalItemLogisticUnitInformation? = null
open var transactionalItemDataCarrierAndIdentification:TransactionalItemDataCarrierAndIdentification? = null
open var tradeItemWaste:ArrayList<TradeItemWaste> = ArrayList<TradeItemWaste>()
open var transactionalItemOrganicInformation:TransactionalItemOrganicInformation? = null
open var avpList:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class TransactionalItem
{
open var measurementUnitCode:String? = null
open var measurementType:String? = null
open var measurementValue:String? = null
}
open class SerialNumberRange
{
open var maximumValue:String? = null
open var minimumValue:String? = null
}
open class TransactionalItemDimension
{
open var measurementUnitCode:String? = null
open var depth:String? = null
open var height:String? = null
open var width:String? = null
}
open class TransactionalItemLogisticUnitInformation
{
open var numberOfLayers:Long? = null
open var numberOfUnitsPerLayer:Long? = null
open var numberOfUnitsPerPallet:Long? = null
open var packagingTerms:String? = null
open var packageTypeCode:String? = null
open var maximumStackingFactor:Long? = null
open var returnablePackageTransportCostPayment:String? = null
open var dimensionsOfLogisticUnit:ArrayList<TransactionalItemDimension> = ArrayList<TransactionalItemDimension>()
}
open class TransactionalItemDataCarrierAndIdentification
{
open var gs1TransactionalItemIdentificationKey:String? = null
open var dataCarrier:String? = null
}
open class TradeItemWaste
{
open var wasteIdentification:String? = null
open var typeOfWaste:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class TransactionalItemOrganicInformation
{
open var isTradeItemOrganic:Boolean? = null
open var organicCertification:String? = null
}
open class Colour
{
open var colourCode:String? = null
open var colourDescription:String? = null
}
open class Size
{
open var descriptiveSize:String? = null
open var sizeCode:String? = null
}
open class TradeItemClassification
{
open var gpcCategoryCode:String? = null
open var additionalTradeItemClassificationCode:ArrayList<AvpList> = ArrayList<AvpList>()
open var gpcCategoryName:String? = null
open var gpcAttribute:ArrayList<AvpList> = ArrayList<AvpList>()
}
open class ClaimExtension
{
open var claimTotals:ClaimTotals? = null
open var shipFrom:TransactionalParty? = null
open var shipTo:TransactionalParty? = null
}
open class ClaimTotals
{
open var baseAmount:BigDecimal? = null
open var totalTaxAmount:BigDecimal? = null
open var totalClaimAmount:BigDecimal? = null
}
open class TokenDto : ICommandResponse
{
open var token:UUID? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /api/claim HTTP/1.1
Host: stf-api-uat.data-xchange.co.za
Accept: application/json
Content-Type: application/json
Content-Length: length
{"claim":{"header":{"documentIdentification":{"identifier":"String","type":"String"},"sender":{"identifier":{"authority":"String","text":"String"},"contactInformation":[{}]},"receiver":{"identifier":{"authority":"String","text":"String"},"contactInformation":[{}]}},"claimNotification":{"claimsNotificationTypeCode":"String","isManualProcessNeededForClaimsResolution":false,"isSupplementalMessageBeingSent":false,"supplementalMessageDescription":"String","claimsNotificationIdentification":"String","buyer":{"contact":[{"contactTypeCode":"String","personName":"String","departmentName":"String","jobTitle":"String","responsibility":"String","communicationChannel":[{"communicationChannelCode":"String","communicationChannelName":"String","communicationValue":"String"}]}],"address":{"streetAddressOne":"String","streetAddressTwo":"String","streetAddressThree":"String","city":"String","postalCode":"String","provinceCode":"String","countryCode":"String"},"communicationChannel":[{"code":"String","value":"String"}],"financialInstitutionInformation":{"financialInstitutionBranchName":"String","financialInstitutionName":"String","financialRoutingNumber":{"number":"String","numberTypeCode":"String"},"financialAccount":{"number":"String","numberTypeCode":"String","name":"String"},"swiftCode":"String","exportersCode":"String"},"dutyFeeTaxRegistration":"String","entityIdentification":"String","gln":"String","name":"String","additionalPartyIdentification":[{"code":"String","value":"String"}]},"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"}]},"billOfLading":{"creationDate":"\/Date(-62135596800000)\/","revisionNumber":0,"entityIdentification":"String","tagNumbers":["String"],"totalBags":0},"claimsNotification":{"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"dispatchAdvice":{"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"purchaseOrder":{"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"invoice":{"creationDateTime":"0001-01-01","revisionNumber":0,"lineItemNumber":0,"entityIdentification":"String"},"claimsNotificationDiscrepancyInformation":[{"claimAmount":0,"claimReasonCode":"String","discrepancyDescription":"String","actualReceived":{"price":0,"quantity":{"value":0,"measurementUnitCode":"String","codeListVersion":"String"},"transactionalTradeItem":{"gtin":"String","additionalTradeItemIdentification":[{"code":"String","value":"String"}],"tradeItemQuantity":0,"tradeItemDescription":"String","productVariantIdentifier":"String","itemTypeCode":"String","tradeItemDataOwner":"String","butterFatReference":"String","transactionalItemData":[{"availableForSaleDate":"0001-01-01","batchNumber":"String","bestBeforeDate":"0001-01-01","countryOfOrigin":"String","itemExpirationDate":"0001-01-01","lotNumber":"String","packagingDate":"0001-01-01","productionDate":"0001-01-01","productQualityIndication":"String","sellByDate":"0001-01-01","serialNumber":["String"],"shelfLife":"String","tradeItemQuantity":0,"itemInContactWithFoodProduct":false,"transactionalItemWeight":[{"measurementUnitCode":"String","measurementType":"String","measurementValue":"String"}],"transactionalItemVolume":[{"measurementUnitCode":"String","measurementType":"String","measurementValue":"String"}],"serialNumberRange":[{"maximumValue":"String","minimumValue":"String"}],"transactionalItemDimensions":[{"measurementUnitCode":"String","depth":"String","height":"String","width":"String"}],"transactionalItemLogisticUnitInformation":{"numberOfLayers":0,"numberOfUnitsPerLayer":0,"numberOfUnitsPerPallet":0,"packagingTerms":"String","packageTypeCode":"String","maximumStackingFactor":0,"returnablePackageTransportCostPayment":"String","dimensionsOfLogisticUnit":[{"measurementUnitCode":"String","depth":"String","height":"String","width":"String"}]},"transactionalItemDataCarrierAndIdentification":{"gs1TransactionalItemIdentificationKey":"String","dataCarrier":"String"},"tradeItemWaste":[{"wasteIdentification":"String","typeOfWaste":[{"code":"String","value":"String"}]}],"transactionalItemOrganicInformation":{"isTradeItemOrganic":false,"organicCertification":"String"},"avpList":[{"code":"String","value":"String"}]}],"colour":[{"colourCode":"String","colourDescription":"String"}],"size":{"descriptiveSize":"String","sizeCode":"String"},"tradeItemClassification":{"gpcCategoryCode":"String","additionalTradeItemClassificationCode":[{"code":"String","value":"String"}],"gpcCategoryName":"String","gpcAttribute":[{"code":"String","value":"String"}]},"avpList":[{"code":"String","value":"String"}]}},"expectedToReceive":{"price":0,"quantity":{"value":0,"measurementUnitCode":"String","codeListVersion":"String"},"transactionalTradeItem":{"gtin":"String","additionalTradeItemIdentification":[{"code":"String","value":"String"}],"tradeItemQuantity":0,"tradeItemDescription":"String","productVariantIdentifier":"String","itemTypeCode":"String","tradeItemDataOwner":"String","butterFatReference":"String","transactionalItemData":[{"availableForSaleDate":"0001-01-01","batchNumber":"String","bestBeforeDate":"0001-01-01","countryOfOrigin":"String","itemExpirationDate":"0001-01-01","lotNumber":"String","packagingDate":"0001-01-01","productionDate":"0001-01-01","productQualityIndication":"String","sellByDate":"0001-01-01","serialNumber":["String"],"shelfLife":"String","tradeItemQuantity":0,"itemInContactWithFoodProduct":false,"transactionalItemWeight":[{"measurementUnitCode":"String","measurementType":"String","measurementValue":"String"}],"transactionalItemVolume":[{"measurementUnitCode":"String","measurementType":"String","measurementValue":"String"}],"serialNumberRange":[{"maximumValue":"String","minimumValue":"String"}],"transactionalItemDimensions":[{"measurementUnitCode":"String","depth":"String","height":"String","width":"String"}],"transactionalItemLogisticUnitInformation":{"numberOfLayers":0,"numberOfUnitsPerLayer":0,"numberOfUnitsPerPallet":0,"packagingTerms":"String","packageTypeCode":"String","maximumStackingFactor":0,"returnablePackageTransportCostPayment":"String","dimensionsOfLogisticUnit":[{"measurementUnitCode":"String","depth":"String","height":"String","width":"String"}]},"transactionalItemDataCarrierAndIdentification":{"gs1TransactionalItemIdentificationKey":"String","dataCarrier":"String"},"tradeItemWaste":[{"wasteIdentification":"String","typeOfWaste":[{"code":"String","value":"String"}]}],"transactionalItemOrganicInformation":{"isTradeItemOrganic":false,"organicCertification":"String"},"avpList":[{"code":"String","value":"String"}]}],"colour":[{"colourCode":"String","colourDescription":"String"}],"size":{"descriptiveSize":"String","sizeCode":"String"},"tradeItemClassification":{"gpcCategoryCode":"String","additionalTradeItemClassificationCode":[{"code":"String","value":"String"}],"gpcCategoryName":"String","gpcAttribute":[{"code":"String","value":"String"}]},"avpList":[{"code":"String","value":"String"}]}},"avpList":[{"code":"String","value":"String"}]}],"extension":{"claimTotals":{"baseAmount":0,"totalTaxAmount":0,"totalClaimAmount":0},"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"}]}},"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: application/json
Content-Length: length
{}