/* Options: Date: 2024-07-06 13:52:22 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: http://abservice-test.worldpay.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ApplicationBoarding.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* @Route(Path="/ApplicationBoarding", Verbs="POST") open class ApplicationBoarding : IReturn { var correlationId:UUID? = null var csr:Int? = null var sellerCode:String? = null var sellerEmail:String? = null var applicationSource:Int? = null var applicationJson:Application? = null companion object { private val responseType = InitiateBoardingResponse::class.java } override fun getResponseType(): Any? = ApplicationBoarding.responseType } open class InitiateBoardingResponse { var applicationGuid:UUID? = null var csr:Int? = null var applicationQueueGuid:UUID? = null var queueStatus:ApplicationQueueStatus? = null var boardingStatus:ApplicationBoardingStatus? = null var errorMessages:ArrayList = ArrayList() } open class Application { var applicationDetails:ApplicationDetails? = null var merchantDetails:MerchantDetails? = null var acquiring:Acquiring? = null var products:Products? = null } @DataContract enum class ApplicationQueueStatus(val value:Int) { 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 enum class ApplicationBoardingStatus(val value:Int) { Pending(0), InProgress(5), Failed(9), Completed(10), } open class ApplicationDetails { var sourceSystem:SourceSystemType? = null var sourceSystemIdentifier:String? = null var customerType:CustomerType? = null var csr:String? = null var partner:Partner? = null var sellerCode:String? = null var pricingPackage:PricingPackageType? = null var contactPerson:AuthorisedSigner? = null var specialInstructions:String? = null var offerDetails:String? = null var dateContractAccepted:Date? = null var worldpayBusinessFinanceInterest:Boolean? = null var sar:Boolean? = null var sellerEmail:String? = null var anticipatedGoLiveDate:Date? = null var accessibilityOptions:AccessibilityOptions? = null var ultimateParentId:String? = null } open class MerchantDetails { var business:Business? = null var principals:ArrayList = ArrayList() var outlets:ArrayList = ArrayList() var goodsAndServices:GoodsAndServices? = null } open class Acquiring { var settlementPeriodTPlus:Int? = null var rates:Rates? = null var services:Services? = null var tradingCurrencies:ArrayList = ArrayList() } open class Products { var posProducts:PosProducts? = null var ecomProducts:EcomProducts? = null var wptProducts:WptProducts? = null var ipProducts:IpProducts? = null } enum class SourceSystemType { Mars, Asa, Ols, Inasa, } enum class CustomerType(val value:Int) { New(0), Existing(1), None(-1), } open class Partner { var partnerId:String? = null var partnerName:String? = null } enum class PricingPackageType(val value:Int) { CustomUk(0), MonthlyUk(1), SimplicityUk(2), PaygUk(3), CustomRoi(4), PaygeComUK(5), None(-1), } open class AuthorisedSigner : ContactPerson() { var dateOfBirth:Date? = null var countryCode:String? = null } open class AccessibilityOptions { var audiotapeRequired:Boolean? = null var largePrintRequired:Boolean? = null var uncontractedBrailleGrade1Required:Boolean? = null var uncontractedBrailleGrade2Required:Boolean? = null var nextGenerationTextRequired:Boolean? = null } open class Business { var legalName:String? = null var legalAddress:BusinessAddress? = null var websiteAddress:String? = null var companyType:CompanyType? = null var companyTypeOther:String? = null var companyRegistrationNumber:String? = null var charityNumber:String? = null var merchantCategoryCode:String? = null var merchantCategoryDescription:String? = null var descriptionOfGoodsAndServices:String? = null var vatNumber:String? = null var dateStartedTrading:Date? = null var countryOfIncorporation:String? = null var regionOfIncorporation:String? = null var financials:Financials? = null var newToCards:Boolean? = null var tradeAssociation:TradeAssociation? = null } open class Principal { var title:String? = null var firstName:String? = null var middleName:String? = null var lastName:String? = null var dateOfBirth:Date? = null var nationality:String? = null var homeAddresses:ArrayList = ArrayList() var ownershipPercentage:BigDecimal? = null var position:PositionType? = null var isFinancialController:Boolean? = null } open class Outlet { var tradingName:String? = null var tradingAddress:BusinessAddress? = null var contactPerson:ContactPerson? = null var terminalDeliveryAddress:BusinessAddress? = null var correspondenceAddress:BusinessAddress? = null var settlementBankAccount:BankAccount? = null var chargesBankAccount:BankAccount? = null var directDebitCorrespondenceEmail:String? = null var clearingDetails:ClearingDetails? = null var productAllocation:ArrayList = ArrayList() } open class GoodsAndServices { var goodsProvidedByThirdParty:Boolean? = null var deposits:Deposits? = null var warrantiesAndGuarantees:WarrantiesAndGuarantees? = null var prepayments:Prepayments? = null var membershipsSubscriptionAndInsurancePremiums:MembershipsSubscriptionAndInsurancePremiums? = null var stockHeldAtAnotherAddressLocation:Address? = null } open class PosProducts { var term:Int? = null var renewalLength:Int? = null var products:ArrayList = ArrayList() } open class EcomProducts { var term:Int? = null var renewalLength:Int? = null var products:ArrayList = ArrayList() var options:ArrayList = ArrayList() } open class WptProducts { var term:Int? = null var renewalLength:Int? = null var posInstallationDate:Date? = null var integratedSolutionProvider:IntegratedSolutionProvider? = null var products:ArrayList = ArrayList() } open class IpProducts { var term:Int? = null var renewalLength:Int? = null var integratedSolutionProvider:IntegratedSolutionProvider? = null var products:ArrayList = ArrayList() } open class Partner { var partnerName:String? = null var partnerId:String? = null } open class AuthorisedSigner : Contact() { var dateOfBirth:Date? = null var countryCode:String? = null } open class BankAccount { var sortCode:String? = null var accountNumber:String? = null var bankName:String? = null var bankAccountName:String? = null var swiftCode:String? = null var internationalBankAccountNumber:String? = null } open class Financials { var annual:BigDecimal? = null var cardPercentage:BigDecimal? = null var creditCardPercentage:BigDecimal? = null var averageTransactionValue:BigDecimal? = null var cardNotPresentPercentage:BigDecimal? = null } open class TradeAssociation { var groupName:String? = null var memberNumber:String? = null } open class Principal : Person() { var position:String? = null var isFinancialController:Boolean? = null var dateOfBirth:Date? = null var nationality:String? = null var ownershipPercentage:BigDecimal? = null var homeAddresses:ArrayList = ArrayList() var principalIdDocuments:ArrayList = ArrayList() } open class GoodsAndServices { var goodsProvidedByThirdParty:Boolean? = null var deposits:Deposits? = null var warrantiesAndGuarantees:WarrantiesAndGuarantees? = null var prepayments:Prepayments? = null var membershipsSubscriptionAndInsurancePremiums:MembershipsSubscriptionAndInsurancePremiums? = null var stockHeldAtAnotherAddressLocation:Address? = null } open class AccessibilityOptions { var audiotapeRequired:Boolean? = null var largePrintRequired:Boolean? = null var uncontractedBrailleGrade1Required:Boolean? = null var uncontractedBrailleGrade2Required:Boolean? = null var nextGenerationTextRequired:Boolean? = null } open class ClearingDetails { var merchantUrl:String? = null var telephone:String? = null var email:String? = null } open class Acquiring { var settlementPeriod:Int? = null var fundingMode:String? = null var rates:Rates? = null var tradingCurrencies:ArrayList = ArrayList() } enum class PreferredContactMethodType { Email, Telephone, Any, } open class ContactPerson { var title:String? = null var firstName:String? = null var middleName:String? = null var lastName:String? = null var telephoneNumber:String? = null var altTelephoneNumber:String? = null var email:String? = null var position:String? = null var preferredContactMethod:PreferredContactMethodType? = null var preferredContactBestTime:String? = null } open class BusinessAddress : Address() { var isCommercial:Boolean? = null } enum class CompanyType { SoleTrader, Partnership, LimitedCompany, Trust, RegisteredCharity, PublicLimitedCompany, LimitedByGuarantee, ClubSocietyAssociation, CommunityInterestCompanyOrIndustrialProvident, LimitedLiabilityPartnership, Other, } open class Financials { var annual:BigDecimal? = null var cardPercentage:BigDecimal? = null var creditCardPercentage:BigDecimal? = null var averageTransactionValue:BigDecimal? = null } open class TradeAssociation { var groupName:String? = null var memberNumber:String? = null } open class BankAccount { var sortCode:String? = null var accountNumber:String? = null var bankName:String? = null var bankAccountName:String? = null } open class ClearingDetails { var merchantUrl:String? = null var telephone:String? = null var email:String? = null } open class OutletAllocatedProduct { var id:Int? = null var quantity:Int? = null } open class Address { var address1:String? = null var address2:String? = null var address3:String? = null var postcode:String? = null var city:String? = null var state:String? = null var countrycode:String? = null } open class PosProduct { var id:Int? = null @SerializedName("type") var Type:PosProductType? = null var quantity:Int? = null var relatedFees:ArrayList = ArrayList() var options:ArrayList = ArrayList() } open class EcomProduct { var id:Int? = null @SerializedName("type") var Type:EcomProductType? = null var quantity:Int? = null var relatedFees:ArrayList = ArrayList() var options:ArrayList = ArrayList() } open class EcomOption { @SerializedName("type") var Type:EcomOptionType? = null var relatedFees:ArrayList = ArrayList() } open class IntegratedSolutionProvider { var name:String? = null var address:Address? = null var telephone:String? = null var primaryContact:IspContact? = null var technicalContact:IspContact? = null var providerType:String? = null var providerSoftware:String? = null } open class WptProduct { @SerializedName("type") var Type:WptProductType? = null var id:Int? = null var variant:WptVariantType? = null var quantity:Int? = null var relatedFees:ArrayList = ArrayList() } open class IpProduct { var id:Int? = null @SerializedName("type") var Type:IpProductType? = null var quantity:Int? = null var relatedFees:ArrayList = ArrayList() var variant:IpVariantType? = null } open class Address { var address1:String? = null var address2:String? = null var address3:String? = null var postcode:String? = null var city:String? = null var state:String? = null var countryCode:String? = null } enum class PosProductType { Mobile, Wifi, Bluetooth, Fixed, PosMidOnly, } open class ProductFee { @SerializedName("type") var Type:ProductFeeType? = null var cost:BigDecimal? = null } open class PosProductOption { @SerializedName("type") var Type:PosProductOptionType? = null var value:String? = null } enum class EcomProductType { Gateway, VirtualTerminal, PayByLink, EcomMidOnly, } open class EcomProductOption { @SerializedName("type") var Type:EcomProductOptionType? = null var value:String? = null } enum class EcomOptionType { Paypal, FuturePay, Rmm, } open class IspContact { var title:String? = null var firstName:String? = null var lastName:String? = null var position:String? = null var emailAddress:String? = null } enum class WptProductType { VerifoneP400, IngenicoWL258, VerifoneV240, } enum class WptVariantType { Serial, Usb, Ethernet, None, } enum class IpProductType { PaxA920, MiuraM020, } enum class IpVariantType { Sdk, Cloud, None, } open class ProductFee { @SerializedName("type") var Type:String? = null var cost:BigDecimal? = null var billingParty:String? = null } enum class PosProductOptionType { Psp, } enum class EcomProductOptionType { Psp, FreeTransactions, }