/* Options: Date: 2026-02-14 10:20:55 Version: 10.04 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://stf-api-uat.data-xchange.co.za //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetSettlement.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* /** * Settlement */ @Route(Path="/settlement", Verbs="GET") @Api(Description="Settlement") @ApiResponse(Description="Settlement message", IsDefaultResponse=true, StatusCode=200) // @ApiResponse(Description="No Content", ResponseType=IReturnVoid::class, StatusCode=204) open class GetSettlement : IReturn> { companion object { private val responseType = object : TypeToken>(){}.type } override fun getResponseType(): Any? = GetSettlement.responseType } open class ResultItem : IDocument { open var token:UUID? = null open var item:SettlementMessage? = null } interface IDocument : IHaveToken { } interface IHaveToken { var token:UUID? } @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 } open class TransactionalParty : Ecom_PartyIdentificationType() { open var contact:ArrayList = ArrayList() open var address:Address? = null open var communicationChannel:ArrayList = ArrayList() open var financialInstitutionInformation:FinancialInstitutionInformation? = null open var dutyFeeTaxRegistration:String? = null open var entityIdentification:String? = null } 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 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 = ArrayList() } open class Settlement : BaseDocument() { open var batchIdentification:String? = null open var paymentEffectiveDate:Date? = null open var settlementCurrency:String? = null open var settlementHandlingTypeCode:String? = null open var totalAmount:BigDecimal? = null open var paymentMethod:PaymentMethod? = null open var payee:TransactionalParty? = null open var payer:TransactionalParty? = null open var remitTo:TransactionalParty? = null open var settlementIdentification:String? = null open var settlementLineItem:ArrayList = ArrayList() open var extension:SettlementExtension? = 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 = ArrayList() } 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 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 = ArrayList() } 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 Ecom_PartyIdentificationType { open var gln:String? = null open var name:String? = null open var additionalPartyIdentification:ArrayList = ArrayList() } open class PaymentMethod { open var automatedClearingHousePaymentFormat:String? = null open var paymentMethodCode:String? = null open var paymentMethodIdentification:String? = null } open class SettlementLineItem { open var amountPaid:BigDecimal? = null open var lineItemNumber:Long? = null open var originalAmount:BigDecimal? = null open var settlementAdjustment:ArrayList = ArrayList() open var avpList:AvpList? = null open var debitCreditAdvice:DocumentReference? = null open var invoice:InvoiceDocumentReference? = null open var requestForPayment:DocumentReference? = null open var settlementParty:ArrayList = ArrayList() } open class SettlementExtension { open var settlementExtensionLineItem:ArrayList = ArrayList() open var adjustmentAndDiscountSummary:ArrayList = ArrayList() open var totalAmountSplit:TotalAmountSplit? = null } @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 CommunicationChannel { open var communicationChannelCode:String? = null open var communicationChannelName:String? = null open var communicationValue: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 SettlementAdjustment { open var adjustmentAmount:BigDecimal? = null open var financialAdjusmentReasonPartyRoleCode:String? = null open var financialAdjustmentReasonCode:String? = null open var transactionalReference:TransactionalReference? = null } open class InvoiceDocumentReference : DocumentReference() { open var invoiceTypeCode:String? = null open var contentOwner:ContentOwner? = null } open class SettlementParty : Ecom_PartyIdentification() { open var partyRoleCode:String? = null } open class SettlementExtensionLineItem { open var number:Int? = null open var documentType:String? = null open var documentNumber:String? = null open var itemText:String? = null } open class AdjustmentAndDiscountSummary { open var amountTotal:BigDecimal? = null open var amountNett:BigDecimal? = null open var amountVat:BigDecimal? = null open var reasonMessage:String? = null } open class TotalAmountSplit { open var amountTotal:BigDecimal? = null open var amountNett:BigDecimal? = null open var amountVat:BigDecimal? = null } open class Ecom_PartyIdentification { open var additionalPartyIdentification:ArrayList = ArrayList() open var gln:String? = null } open class TransactionalReference : DocumentReference() { open var transactionalReferenceTypeCode:String? = null } open class ContentOwner { open var gln:String? = null open var additionalPartyIdentification:ArrayList = ArrayList() } open class SettlementMessage { open var header:Header? = null open var settlement:Settlement? = null }