/* Options: Date: 2024-07-06 14:05:59 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: http://abservice.worldpay.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: OrderBoardingRequest.* //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="/OrderBoarding", Verbs="POST") open class OrderBoardingRequest : IReturn { @ApiMember(IsRequired=true) var correlationId:UUID? = null @ApiMember(IsRequired=true) var orderJson:Order? = null var onboardingRequestId:UUID? = null var localEnterpriseId:UUID? = null var audience:String? = null companion object { private val responseType = InitiateBoardingResponse::class.java } override fun getResponseType(): Any? = OrderBoardingRequest.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 Order { var meta:OrderMeta? = null var payload:OrderPayload? = 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 Acquiring { var settlementPeriodTPlus:Int? = null var rates:Rates? = null var services:Services? = null var tradingCurrencies:ArrayList = ArrayList() } open class OrderMeta { var sourceSystem:String? = null var sourceSystemIdentifier:String? = null var csr:String? = null var ultimateParentId:String? = null var orderType:String? = null var customerType:String? = null var partner:Partner? = null var sellerCode:String? = null var sellerEmail:String? = null var specialInstructions:String? = null var contact:AuthorisedSigner? = null var offerDetails:String? = null var dateContractAccepted:Date? = null var worldpayBusinessFinanceInterest:Boolean? = null var sar:Boolean? = null var hasSupportingFiles:Boolean? = null } open class OrderPayload { var partyId:String? = null var parentPartyId:String? = null var legalName:String? = null var tradingName:String? = null var addresses:ArrayList = ArrayList() var tradingContact:Contact? = null var invoiceContact:InvoiceContact? = null var settlementBankAccount:BankAccount? = null var chargesBankAccount:BankAccount? = null var directDebitCorrespondenceEmail:String? = null var websiteAddress:String? = null var companyType:String? = null var companyTypeOther:String? = null var companyRegistrationNumber:String? = null var charityNumber:String? = null var merchantCategories:ArrayList = ArrayList() var vatNumber:String? = null var dateStartedTrading:Date? = null var anticipatedGoLiveDate:Date? = null var countryOfIncorporation:String? = null var regionOfIncorporation:String? = null var financials:Financials? = null var newToCards:Boolean? = null var tradeAssociation:TradeAssociation? = null var principals:ArrayList = ArrayList() var goodsAndServices:GoodsAndServices? = null var accessibilityOptions:AccessibilityOptions? = null var clearingDetails:ClearingDetails? = null var acquiring:Acquiring? = null var subscriptions:ArrayList = ArrayList() var children:ArrayList = ArrayList() } open class Partner { var partnerId:String? = null var partnerName:String? = null } 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 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 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 Partner { var partnerName:String? = null var partnerId:String? = null } open class AuthorisedSigner : Contact() { var dateOfBirth:Date? = null var countryCode:String? = null } open class MerchantAddress : Address() { var addressType:String? = null var isCommercial:Boolean? = null } open class Contact : Person() { var idpGuid:UUID? = null var telephoneNumber:String? = null var altTelephoneNumber:String? = null var email:String? = null var position:String? = null var preferredContactMethod:String? = null var preferredContactBestTime:String? = null } open class InvoiceContact : Person() { var email:String? = null var position: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 MerchantCategory { var merchantCategoryCode:String? = null var merchantCategoryDescription:String? = null var descriptionOfGoodsAndServices: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() } open class Subscription { var proposition:String? = null var pricingPackage:String? = null var term:Int? = null var renewalLength:Int? = null var acquiring:Acquiring? = null var products:ArrayList = ArrayList() } 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 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 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 Person { var title:String? = null var firstName:String? = null var middleName:String? = null var lastName:String? = null } open class Product { var name:String? = null @SerializedName("type") var Type:String? = null var variant:String? = null var quantity:Int? = null var relatedFees:ArrayList = ArrayList() var options:ArrayList = ArrayList() } open class ProductFee { @SerializedName("type") var Type:ProductFeeType? = null var cost:BigDecimal? = null } open class ProductFee { @SerializedName("type") var Type:String? = null var cost:BigDecimal? = null var billingParty:String? = null } open class ProductOption { @SerializedName("type") var Type:String? = null var value:String? = null }