/* Options: Date: 2024-07-06 14:16:58 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: http://abservice-test.worldpay.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ApplicationBoarding.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export enum SourceSystemType { MARS = 'MARS', ASA = 'ASA', OLS = 'OLS', INASA = 'INASA', } export enum CustomerType { New = 0, Existing = 1, None = -1, } export class Partner { public partnerName: string; public partnerId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum PricingPackageType { CustomUk = 0, MonthlyUk = 1, SimplicityUk = 2, PaygUk = 3, CustomRoi = 4, PaygeComUK = 5, None = -1, } export enum PreferredContactMethodType { Email = 'Email', Telephone = 'Telephone', Any = 'Any', } export class ContactPerson { public title: string; public firstName: string; public middleName: string; public lastName: string; public telephoneNumber: string; public altTelephoneNumber: string; public email: string; public position: string; public preferredContactMethod: PreferredContactMethodType; public preferredContactBestTime: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AuthorisedSigner extends Contact { public dateOfBirth?: string; public countryCode: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AccessibilityOptions { public audiotapeRequired?: boolean; public largePrintRequired?: boolean; public uncontractedBrailleGrade1Required?: boolean; public uncontractedBrailleGrade2Required?: boolean; public nextGenerationTextRequired?: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ApplicationDetails { public sourceSystem: SourceSystemType; public sourceSystemIdentifier: string; public customerType: CustomerType; public csr: string; public partner: Partner; public sellerCode: string; public pricingPackage: PricingPackageType; public contactPerson: AuthorisedSigner; public specialInstructions: string; public offerDetails: string; public dateContractAccepted: string; public worldpayBusinessFinanceInterest?: boolean; public sar?: boolean; public sellerEmail: string; public anticipatedGoLiveDate?: string; public accessibilityOptions: AccessibilityOptions; public ultimateParentId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Address { public address1: string; public address2: string; public address3: string; public postcode: string; public city: string; public state: string; public countryCode: string; public constructor(init?: Partial
) { (Object as any).assign(this, init); } } export class BusinessAddress extends Address { public isCommercial?: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum CompanyType { SoleTrader = 'SoleTrader', Partnership = 'Partnership', LimitedCompany = 'LimitedCompany', Trust = 'Trust', RegisteredCharity = 'RegisteredCharity', PublicLimitedCompany = 'PublicLimitedCompany', LimitedByGuarantee = 'LimitedByGuarantee', ClubSocietyAssociation = 'ClubSocietyAssociation', CommunityInterestCompanyOrIndustrialProvident = 'CommunityInterestCompanyOrIndustrialProvident', LimitedLiabilityPartnership = 'LimitedLiabilityPartnership', Other = 'Other', } export class Financials { public annual: number; public cardPercentage: number; public creditCardPercentage: number; public averageTransactionValue: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TradeAssociation { public groupName: string; public memberNumber: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Business { public legalName: string; public legalAddress: BusinessAddress; public websiteAddress: string; public companyType: CompanyType; public companyTypeOther: string; public companyRegistrationNumber: string; public charityNumber: string; public merchantCategoryCode: string; public merchantCategoryDescription: string; public descriptionOfGoodsAndServices: string; public vatNumber: string; public dateStartedTrading?: string; public countryOfIncorporation: string; public regionOfIncorporation: string; public financials: Financials; public newToCards: boolean; public tradeAssociation: TradeAssociation; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Principal extends Person { public position: string; public isFinancialController: boolean; public dateOfBirth: string; public nationality: string; public ownershipPercentage: number; public homeAddresses: PrincipalAddress[]; public principalIdDocuments: PrincipalIdDocument[]; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class BankAccount { public sortCode: string; public accountNumber: string; public bankName: string; public bankAccountName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ClearingDetails { public merchantUrl: string; public telephone: string; public email: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class OutletAllocatedProduct { public id: number; public quantity: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Outlet { public tradingName: string; public tradingAddress: BusinessAddress; public contactPerson: ContactPerson; public terminalDeliveryAddress: BusinessAddress; public correspondenceAddress: BusinessAddress; public settlementBankAccount: BankAccount; public chargesBankAccount: BankAccount; public directDebitCorrespondenceEmail: string; public clearingDetails: ClearingDetails; public productAllocation: OutletAllocatedProduct[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class GoodsAndServices { public goodsProvidedByThirdParty?: boolean; public deposits: Deposits; public warrantiesAndGuarantees: WarrantiesAndGuarantees; public prepayments: Prepayments; public membershipsSubscriptionAndInsurancePremiums: MembershipsSubscriptionAndInsurancePremiums; public stockHeldAtAnotherAddressLocation: Address; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MerchantDetails { public business: Business; public principals: Principal[]; public outlets: Outlet[]; public goodsAndServices: GoodsAndServices; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Acquiring { public settlementPeriod: number; public fundingMode: string; public rates: Rates; public tradingCurrencies: TradingCurrency[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum PosProductType { Mobile = 'Mobile', Wifi = 'Wifi', Bluetooth = 'Bluetooth', Fixed = 'Fixed', PosMidOnly = 'PosMidOnly', } export class ProductFee { public type: string; public cost: number; public billingParty: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum PosProductOptionType { PSP = 'PSP', } export class PosProductOption { public type: PosProductOptionType; public value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PosProduct { public id: number; public type: PosProductType; public quantity: number; public relatedFees: ProductFee[]; public options: PosProductOption[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PosProducts { public term?: number; public renewalLength?: number; public products: PosProduct[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum EcomProductType { Gateway = 'Gateway', VirtualTerminal = 'VirtualTerminal', PayByLink = 'PayByLink', EcomMidOnly = 'EcomMidOnly', } export enum EcomProductOptionType { PSP = 'PSP', FreeTransactions = 'FreeTransactions', } export class EcomProductOption { public type: EcomProductOptionType; public value: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EcomProduct { public id: number; public type: EcomProductType; public quantity: number; public relatedFees: ProductFee[]; public options: EcomProductOption[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum EcomOptionType { Paypal = 'Paypal', FuturePay = 'FuturePay', RMM = 'RMM', } export class EcomOption { public type: EcomOptionType; public relatedFees: ProductFee[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class EcomProducts { public term?: number; public renewalLength?: number; public products: EcomProduct[]; public options: EcomOption[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class IspContact { public title: string; public firstName: string; public lastName: string; public position: string; public emailAddress: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class IntegratedSolutionProvider { public name: string; public address: Address; public telephone: string; public primaryContact: IspContact; public technicalContact: IspContact; public providerType: string; public providerSoftware: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum WptProductType { VerifoneP400 = 'VerifoneP400', IngenicoWL258 = 'IngenicoWL258', VerifoneV240 = 'VerifoneV240', } export enum WptVariantType { Serial = 'Serial', Usb = 'Usb', Ethernet = 'Ethernet', None = 'None', } export class WptProduct { public type: WptProductType; public id: number; public variant?: WptVariantType; public quantity: number; public relatedFees: ProductFee[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class WptProducts { public term?: number; public renewalLength?: number; public posInstallationDate: string; public integratedSolutionProvider: IntegratedSolutionProvider; public products: WptProduct[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum IpProductType { PaxA920 = 'PaxA920', MiuraM020 = 'MiuraM020', } export enum IpVariantType { Sdk = 'Sdk', Cloud = 'Cloud', None = 'None', } export class IpProduct { public id: number; public type: IpProductType; public quantity: number; public relatedFees: ProductFee[]; public variant?: IpVariantType; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class IpProducts { public term?: number; public renewalLength?: number; public integratedSolutionProvider: IntegratedSolutionProvider; public products: IpProduct[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Products { public posProducts: PosProducts; public ecomProducts: EcomProducts; public wptProducts: WptProducts; public ipProducts: IpProducts; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Application { public applicationDetails: ApplicationDetails; public merchantDetails: MerchantDetails; public acquiring: Acquiring; public products: Products; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export enum ApplicationQueueStatus { Queued = 0, StandardisedXML = 20, ReadyToDistribute = 40, AwaitingDistributeResponse = 60, ReadyToAutoboard = 80, ThrottleCheckPassed = 100, EligibilityCheckPassed = 300, SentToAutoboardService = 400, AutoboardingSuspended = 450, SuccessfullyBoarded = 500, QueueError = 1000, ThrottleCheckError = 1100, XMLStandardisationError = 1200, EligibilityCheckError = 1300, AutoboardingError = 1400, IneligibleThrottleLimit = 2100, IneligibleApplication = 2300, } // @DataContract export enum ApplicationBoardingStatus { PENDING = 0, IN_PROGRESS = 5, FAILED = 9, COMPLETED = 10, } export class Acquiring { public settlementPeriodTPlus: number; public rates: Rates; public services: Services; public tradingCurrencies: TradingCurrency[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Partner { public partnerId: string; public partnerName: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class AuthorisedSigner extends ContactPerson { public dateOfBirth?: string; public countryCode: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AccessibilityOptions { public audiotapeRequired?: boolean; public largePrintRequired?: boolean; public uncontractedBrailleGrade1Required?: boolean; public uncontractedBrailleGrade2Required?: boolean; public nextGenerationTextRequired?: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Principal { public title: string; public firstName: string; public middleName: string; public lastName: string; public dateOfBirth: string; public nationality: string; public homeAddresses: PrincipalAddress[]; public ownershipPercentage: number; public position: PositionType; public isFinancialController?: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class GoodsAndServices { public goodsProvidedByThirdParty?: boolean; public deposits: Deposits; public warrantiesAndGuarantees: WarrantiesAndGuarantees; public prepayments: Prepayments; public membershipsSubscriptionAndInsurancePremiums: MembershipsSubscriptionAndInsurancePremiums; public stockHeldAtAnotherAddressLocation: Address; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class BankAccount { public sortCode: string; public accountNumber: string; public bankName: string; public bankAccountName: string; public swiftCode: string; public internationalBankAccountNumber: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Financials { public annual: number; public cardPercentage: number; public creditCardPercentage: number; public averageTransactionValue: number; public cardNotPresentPercentage?: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class TradeAssociation { public groupName: string; public memberNumber: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class ClearingDetails { public merchantUrl: string; public telephone: string; public email: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Address { public address1: string; public address2: string; public address3: string; public postcode: string; public city: string; public state: string; public countrycode: string; public constructor(init?: Partial
) { (Object as any).assign(this, init); } } export class ProductFee { public type: ProductFeeType; public cost: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class InitiateBoardingResponse { public applicationGuid: string; public csr: number; public applicationQueueGuid?: string; public queueStatus: ApplicationQueueStatus; public boardingStatus?: ApplicationBoardingStatus; public errorMessages: string[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/ApplicationBoarding", "POST") export class ApplicationBoarding implements IReturn { public correlationId: string; public csr: number; public sellerCode: string; public sellerEmail: string; public applicationSource: number; public applicationJson: Application; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'ApplicationBoarding'; } public getMethod() { return 'POST'; } public createResponse() { return new InitiateBoardingResponse(); } }