/* Options: Date: 2026-02-14 10:18:59 Version: 10.04 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://stf-api-uat.data-xchange.co.za //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetSettlement.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IReturnVoid { createResponse(): void; } export interface IDocument extends IHaveToken { } export interface IHaveToken { token: string; } export class ResultItem implements IDocument { public token: string; public item: T; public constructor(init?: Partial>) { (Object as any).assign(this, init); } } // @DataContract export class DocumentIdentification { // @DataMember(Name="identifier") public identifier: string; // @DataMember(Name="type") public type: string; // @DataMember(Name="creationDateAndTime") public creationDateAndTime: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class Identifier { // @DataMember(Name="authority") public authority: string; // @DataMember(Name="text") public text: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ContactInformation { public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class Partner { // @DataMember(Name="identifier") public identifier: Identifier; // @DataMember(Name="contactInformation") public contactInformation: ContactInformation[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class Header { // @DataMember(Name="documentIdentification") public documentIdentification: DocumentIdentification; // @DataMember(Name="sender") public sender: Partner; // @DataMember(Name="receiver") public receiver: Partner; public constructor(init?: Partial
) { (Object as any).assign(this, init); } } export class AvpList { public code: string; public value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Ecom_PartyIdentificationType { public gln: string; public name: string; public additionalPartyIdentification: AvpList[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class CommunicationChannel { public communicationChannelCode: string; public communicationChannelName: string; public communicationValue: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Contact { public contactTypeCode: string; public personName: string; public departmentName: string; public jobTitle: string; public responsibility: string; public communicationChannel: CommunicationChannel[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Address { public streetAddressOne: string; public streetAddressTwo: string; public streetAddressThree: string; public city: string; public postalCode: string; public provinceCode: string; public countryCode: string; public constructor(init?: Partial
) { (Object as any).assign(this, init); } } export class FinancialRoutingNumber { public number: string; public numberTypeCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FinancialAccount { public number: string; public numberTypeCode: string; public name: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class FinancialInstitutionInformation { public financialInstitutionBranchName: string; public financialInstitutionName: string; public financialRoutingNumber: FinancialRoutingNumber; public financialAccount: FinancialAccount; public swiftCode: string; public exportersCode: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TransactionalParty extends Ecom_PartyIdentificationType { public contact: Contact[] = []; public address: Address; public communicationChannel: AvpList[] = []; public financialInstitutionInformation: FinancialInstitutionInformation; public dutyFeeTaxRegistration: string; public entityIdentification: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum DocumentAction { ADD = 'ADD', CHANGE_BY_REFRESH = 'CHANGE_BY_REFRESH', DELETE = 'DELETE', REJECTED = 'REJECTED', } export enum DocumentStatus { ADDITIONAL_TRANSMISSION = 'ADDITIONAL_TRANSMISSION', COPY = 'COPY', ORIGINAL = 'ORIGINAL', } export class BaseDocument { public currencyCode: string; public creationDateTime: string; public documentActionCode: DocumentAction; public documentStatusCode: DocumentStatus; public documentStructureVersion: string; public lastUpdateDateTime?: string; public revisionNumber?: number; public avpList: AvpList[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PaymentMethod { public automatedClearingHousePaymentFormat: string; public paymentMethodCode: string; public paymentMethodIdentification: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DocumentReference { public creationDateTime?: string; public revisionNumber?: number; public lineItemNumber?: number; public entityIdentification: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TransactionalReference extends DocumentReference { public transactionalReferenceTypeCode: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SettlementAdjustment { public adjustmentAmount?: number; public financialAdjusmentReasonPartyRoleCode: string; public financialAdjustmentReasonCode: string; public transactionalReference: TransactionalReference; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ContentOwner { public gln: string; public additionalPartyIdentification: AvpList[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InvoiceDocumentReference extends DocumentReference { public invoiceTypeCode: string; public contentOwner: ContentOwner; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class Ecom_PartyIdentification { public additionalPartyIdentification: AvpList[] = []; public gln: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SettlementParty extends Ecom_PartyIdentification { public partyRoleCode: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SettlementLineItem { public amountPaid?: number; public lineItemNumber: number; public originalAmount?: number; public settlementAdjustment: SettlementAdjustment[] = []; public avpList: AvpList; public debitCreditAdvice: DocumentReference; public invoice: InvoiceDocumentReference; public requestForPayment: DocumentReference; public settlementParty: SettlementParty[] = []; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SettlementExtensionLineItem { public number: number; public documentType: string; public documentNumber: string; public itemText: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AdjustmentAndDiscountSummary { public amountTotal: number; public amountNett: number; public amountVat: number; public reasonMessage: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TotalAmountSplit { public amountTotal: number; public amountNett: number; public amountVat: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SettlementExtension { public settlementExtensionLineItem: SettlementExtensionLineItem[] = []; public adjustmentAndDiscountSummary: AdjustmentAndDiscountSummary[] = []; public totalAmountSplit: TotalAmountSplit; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Settlement extends BaseDocument { public batchIdentification: string; public paymentEffectiveDate: string; public settlementCurrency: string; public settlementHandlingTypeCode: string; public totalAmount?: number; public paymentMethod: PaymentMethod; public payee: TransactionalParty; public payer: TransactionalParty; public remitTo: TransactionalParty; public settlementIdentification: string; public settlementLineItem: SettlementLineItem[] = []; public extension: SettlementExtension; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class SettlementMessage { public header: Header; public settlement: Settlement; public constructor(init?: Partial) { (Object as any).assign(this, init); } } /** @description Settlement */ // @Route("/settlement", "GET") // @Api(Description="Settlement") // @ApiResponse(Description="Settlement message", IsDefaultResponse=true, StatusCode=200) // @ApiResponse(Description="No Content", ResponseType="typeof(ServiceStack.IReturnVoid)", StatusCode=204) export class GetSettlement implements IReturn> { public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'GetSettlement'; } public getMethod() { return 'GET'; } public createResponse() { return new ResultItem(); } }