Autoboard Webservice v5.13.0.0

<back to all web services

ApplicationBoarding

json-app
Requires Authentication
The following routes are available for this service:
POST/ApplicationBoarding
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class ApplicationBoarding
{
    var correlationId:UUID? = null
    var csr:Int? = null
    var sellerCode:String? = null
    var sellerEmail:String? = null
    var applicationSource:Int? = null
    var applicationJson:Application? = null
}

open class Application
{
    var applicationDetails:ApplicationDetails? = null
    var merchantDetails:MerchantDetails? = null
    var acquiring:Acquiring? = null
    var products:Products? = null
}

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
}

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 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
}

enum class PreferredContactMethodType
{
    Email,
    Telephone,
    Any,
}

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 MerchantDetails
{
    var business:Business? = null
    var principals:ArrayList<Principal> = ArrayList<Principal>()
    var outlets:ArrayList<Outlet> = ArrayList<Outlet>()
    var goodsAndServices:GoodsAndServices? = 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 BusinessAddress : Address()
{
    var isCommercial:Boolean? = 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 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 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<PrincipalAddress> = ArrayList<PrincipalAddress>()
    var ownershipPercentage:BigDecimal? = null
    var position:PositionType? = null
    var isFinancialController:Boolean? = null
}

open class PrincipalAddress : Address()
{
    var startDate:Date? = null
    var endDate:Date? = null
}

enum class PositionType(val value:Int)
{
    SoleTrader(0),
    Partner(1),
    Director(2),
    CompanySecretary(3),
    ChiefFinancialOfficer(4),
    Chairman(5),
    DesignatedBoardMember(7),
    Settlor(8),
    Treasurer(9),
    Trustee(10),
    ChiefExecutive(11),
    AuthorisedPersonWithConsent(12),
    NonExecutiveDirector(13),
    ContactPerson(14),
    Shareholder(15),
}

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<OutletAllocatedProduct> = ArrayList<OutletAllocatedProduct>()
}

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 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 Deposits
{
    var accepted:Boolean? = null
    var perOfSalesWhereInitialDepositTaken:Int? = null
    var sizePercOfTotalValue:Int? = null
    var avgTimeBeforeDeliveryTaken:Int? = null
    var avgTimeBeforeDeliveryBalanceTaken:Int? = null
}

open class WarrantiesAndGuarantees
{
    var levyCharge:Boolean? = null
    var percCardTurnover:Int? = null
    var avgLengthInMonths:Int? = null
    var percGoodsReturned:Int? = null
    var thirdPartyProviders:String? = null
}

open class Prepayments
{
    var fullPaymentAcceptedPriorToSupply:Boolean? = null
    var percGoodsWherePaymentTakenPriorToDelivery:Int? = null
    var avgDaysPaymentTakenInAdvance:Int? = null
}

open class MembershipsSubscriptionAndInsurancePremiums
{
    var levyCharge:Boolean? = null
    var percCardTurnover:Int? = null
    var avgLengthInMonths:Int? = null
    var membershipCost:BigDecimal? = null
}

open class Acquiring
{
    var settlementPeriodTPlus:Int? = null
    var rates:Rates? = null
    var services:Services? = null
    var tradingCurrencies:ArrayList<TradingCurrency> = ArrayList<TradingCurrency>()
}

open class Rates
{
    var cardCharges:ArrayList<CardCharge> = ArrayList<CardCharge>()
    var premiumTransactionCharges:ArrayList<PremiumTransactionCharge> = ArrayList<PremiumTransactionCharge>()
    var additionalTarrifs:ArrayList<AdditionalTarrif> = ArrayList<AdditionalTarrif>()
}

open class CardCharge
{
    var cardType:CardType? = null
    var purchase:RateChargePair? = null
    var refund:RateChargePair? = null
}

enum class CardType
{
    VisaDebit,
    VisaCredit,
    VisaCommercial,
    MastercardDebit,
    MastercardCredit,
    MastercardCommercial,
    MastercardWorldSignia,
    JcbCredit,
    JcbDebit,
    JcbCommercial,
    DinersDiscoverCredit,
    DinersDiscoverDebit,
    DinersDiscoverCommercial,
    Amex,
    ChinaUnionPayCredit,
    ChinaUnionPayDebit,
    ChinaUnionPayCommercial,
    VisaBusinessDebit,
    MastercardBusiness,
}

open class RateChargePair
{
    var percent:BigDecimal? = null
    var cost:BigDecimal? = null
}

open class PremiumTransactionCharge
{
    @SerializedName("type") var Type:PremiumTransactionChargeType? = null
    var creditCard:RateChargePair? = null
    var debitCard:RateChargePair? = null
}

enum class PremiumTransactionChargeType
{
    Magstripe,
    CnpMoto,
    Paper,
    PanKeyEntry,
    SecureEcom,
    NonSecureEcom,
    InterRegional,
    IntraRegional,
    NonAuth,
}

open class AdditionalTarrif
{
    @SerializedName("type") var Type:AdditionalTarrifType? = null
    var cost:BigDecimal? = null
}

enum class AdditionalTarrifType
{
    NameAndAddressCheck,
    Auth,
    Chargeback,
    Mmsc,
    PaperStatement,
    PciVerbalAssessment,
    PciIpScan,
    PciNonCompliance,
    PciSaferPaymentsPlus,
    JoiningFee,
    PayMonthlyAcquiringFee,
    PciSaferPayments,
}

open class Services
{
    var cnp:Cnp? = null
    var amex:Amex? = null
    var cashbackRequired:Boolean? = null
    var worldpayDashboardRequired:Boolean? = null
    var paperInvoicingRequired:Boolean? = null
}

open class Cnp
{
    var required:Boolean? = null
    var percentage:BigDecimal? = null
}

open class Amex
{
    var required:Boolean? = null
    var existingAmexNumber:String? = null
}

open class TradingCurrency
{
    var transactionCurrencies:ArrayList<CurrencyCodeType> = ArrayList<CurrencyCodeType>()
    var settlementCurrency:CurrencyCodeType? = null
    var settlementBankSwift:String? = null
    var settlementBankIban:String? = null
}

enum class CurrencyCodeType
{
    Gbp,
    Eur,
    Usd,
    Aed,
    Afn,
    All,
    Amd,
    Ang,
    Aoa,
    Ars,
    Aud,
    Awg,
    Azn,
    Bam,
    Bbd,
    Bdt,
    Bgn,
    Bhd,
    Bif,
    Bmd,
    Bnd,
    Bob,
    Brl,
    Bsd,
    Btn,
    Bwp,
    Byr,
    Bzd,
    Cad,
    Cdf,
    Chf,
    Clp,
    Cny,
    Cop,
    Cou,
    Crc,
    Cuc,
    Cup,
    Cve,
    Czk,
    Djf,
    Dkk,
    Dop,
    Dzd,
    Eek,
    Egp,
    Ern,
    Etb,
    Fjd,
    Fkp,
    Gel,
    Ghs,
    Gip,
    Gmd,
    Gnf,
    Gtq,
    Gyd,
    Hkd,
    Hnl,
    Hrk,
    Htg,
    Huf,
    Idr,
    Ils,
    Inr,
    Iqd,
    Irr,
    Isk,
    Jmd,
    Jod,
    Jpy,
    Kes,
    Kgs,
    Khr,
    Kmf,
    Kpw,
    Krw,
    Kwd,
    Kyd,
    Kzt,
    Lak,
    Lbp,
    Lkr,
    Lrd,
    Lsl,
    Ltl,
    Lvl,
    Lyd,
    Mad,
    Mdl,
    Mga,
    Mkd,
    Mmk,
    Mnt,
    Mop,
    Mro,
    Mur,
    Mvr,
    Mwk,
    Mxn,
    Myr,
    Mzn,
    Nad,
    Ngn,
    Nio,
    Nok,
    Npr,
    Nzd,
    Omr,
    Pab,
    Pen,
    Pgk,
    Php,
    Pkr,
    Pln,
    Pyg,
    Qar,
    Ron,
    Rsd,
    Rub,
    Rwf,
    Sar,
    Sbd,
    Scr,
    Sdg,
    Sek,
    Sgd,
    Shp,
    Sll,
    Sos,
    Srd,
    Std,
    Syp,
    Szl,
    Thb,
    Tjs,
    Tmt,
    Tnd,
    Top,
    Try,
    Ttd,
    Twd,
    Tzs,
    Uah,
    Ugx,
    Uyu,
    Uzs,
    Vef,
    Vnd,
    Vuv,
    Wst,
    Yer,
    Zar,
    Zmk,
    Zwl,
}

open class Products
{
    var posProducts:PosProducts? = null
    var ecomProducts:EcomProducts? = null
    var wptProducts:WptProducts? = null
    var ipProducts:IpProducts? = null
}

open class PosProducts
{
    var term:Int? = null
    var renewalLength:Int? = null
    var products:ArrayList<PosProduct> = ArrayList<PosProduct>()
}

open class PosProduct
{
    var id:Int? = null
    @SerializedName("type") var Type:PosProductType? = null
    var quantity:Int? = null
    var relatedFees:ArrayList<ProductFee> = ArrayList<ProductFee>()
    var options:ArrayList<PosProductOption> = ArrayList<PosProductOption>()
}

enum class PosProductType
{
    Mobile,
    Wifi,
    Bluetooth,
    Fixed,
    PosMidOnly,
}

open class ProductFee
{
    @SerializedName("type") var Type:ProductFeeType? = null
    var cost:BigDecimal? = null
}

enum class ProductFeeType
{
    HireCost,
    TransactionCost,
    ServiceFee,
    ManagedServiceSetup,
    ManagedServiceMonthly,
}

open class PosProductOption
{
    @SerializedName("type") var Type:PosProductOptionType? = null
    var value:String? = null
}

enum class PosProductOptionType
{
    Psp,
}

open class EcomProducts
{
    var term:Int? = null
    var renewalLength:Int? = null
    var products:ArrayList<EcomProduct> = ArrayList<EcomProduct>()
    var options:ArrayList<EcomOption> = ArrayList<EcomOption>()
}

open class EcomProduct
{
    var id:Int? = null
    @SerializedName("type") var Type:EcomProductType? = null
    var quantity:Int? = null
    var relatedFees:ArrayList<ProductFee> = ArrayList<ProductFee>()
    var options:ArrayList<EcomProductOption> = ArrayList<EcomProductOption>()
}

enum class EcomProductType
{
    Gateway,
    VirtualTerminal,
    PayByLink,
    EcomMidOnly,
}

open class EcomProductOption
{
    @SerializedName("type") var Type:EcomProductOptionType? = null
    var value:String? = null
}

enum class EcomProductOptionType
{
    Psp,
    FreeTransactions,
}

open class EcomOption
{
    @SerializedName("type") var Type:EcomOptionType? = null
    var relatedFees:ArrayList<ProductFee> = ArrayList<ProductFee>()
}

enum class EcomOptionType
{
    Paypal,
    FuturePay,
    Rmm,
}

open class WptProducts
{
    var term:Int? = null
    var renewalLength:Int? = null
    var posInstallationDate:Date? = null
    var integratedSolutionProvider:IntegratedSolutionProvider? = null
    var products:ArrayList<WptProduct> = ArrayList<WptProduct>()
}

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 IspContact
{
    var title:String? = null
    var firstName:String? = null
    var lastName:String? = null
    var position:String? = null
    var emailAddress: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<ProductFee> = ArrayList<ProductFee>()
}

enum class WptProductType
{
    VerifoneP400,
    IngenicoWL258,
    VerifoneV240,
}

enum class WptVariantType
{
    Serial,
    Usb,
    Ethernet,
    None,
}

open class IpProducts
{
    var term:Int? = null
    var renewalLength:Int? = null
    var integratedSolutionProvider:IntegratedSolutionProvider? = null
    var products:ArrayList<IpProduct> = ArrayList<IpProduct>()
}

open class IpProduct
{
    var id:Int? = null
    @SerializedName("type") var Type:IpProductType? = null
    var quantity:Int? = null
    var relatedFees:ArrayList<ProductFee> = ArrayList<ProductFee>()
    var variant:IpVariantType? = null
}

enum class IpProductType
{
    PaxA920,
    MiuraM020,
}

enum class IpVariantType
{
    Sdk,
    Cloud,
    None,
}

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<String> = ArrayList<String>()
}

@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),
}

Kotlin ApplicationBoarding DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /ApplicationBoarding HTTP/1.1 
Host: abservice-featuretest.worldpay.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"correlationId":"00000000000000000000000000000000","csr":0,"sellerCode":"String","sellerEmail":"String","applicationSource":0,"applicationJson":{"applicationDetails":{"sourceSystem":"MARS","sourceSystemIdentifier":"String","customerType":"New","csr":"String","partner":{"partnerId":"String","partnerName":"String"},"sellerCode":"String","pricingPackage":"CustomUk","contactPerson":{"dateOfBirth":"\/Date(-62135596800000-0000)\/","countryCode":"String","title":"String","firstName":"String","middleName":"String","lastName":"String","telephoneNumber":"String","altTelephoneNumber":"String","email":"String","position":"String","preferredContactMethod":"Email","preferredContactBestTime":"String"},"specialInstructions":"String","offerDetails":"String","dateContractAccepted":"\/Date(-62135596800000-0000)\/","worldpayBusinessFinanceInterest":false,"sar":false,"sellerEmail":"String","anticipatedGoLiveDate":"\/Date(-62135596800000-0000)\/","accessibilityOptions":{"audiotapeRequired":false,"largePrintRequired":false,"uncontractedBrailleGrade1Required":false,"uncontractedBrailleGrade2Required":false,"nextGenerationTextRequired":false},"ultimateParentId":"String"},"merchantDetails":{"business":{"legalName":"String","legalAddress":{"isCommercial":false,"address1":"String","address2":"String","address3":"String","postcode":"String","city":"String","state":"String","countrycode":"String"},"websiteAddress":"String","companyType":"SoleTrader","companyTypeOther":"String","companyRegistrationNumber":"String","charityNumber":"String","merchantCategoryCode":"String","merchantCategoryDescription":"String","descriptionOfGoodsAndServices":"String","vatNumber":"String","dateStartedTrading":"\/Date(-62135596800000-0000)\/","countryOfIncorporation":"String","regionOfIncorporation":"String","financials":{"annual":0,"cardPercentage":0,"creditCardPercentage":0,"averageTransactionValue":0},"newToCards":false,"tradeAssociation":{"groupName":"String","memberNumber":"String"}},"goodsAndServices":{"goodsProvidedByThirdParty":false,"deposits":{"accepted":false,"perOfSalesWhereInitialDepositTaken":0,"sizePercOfTotalValue":0,"avgTimeBeforeDeliveryTaken":0,"avgTimeBeforeDeliveryBalanceTaken":0},"warrantiesAndGuarantees":{"levyCharge":false,"percCardTurnover":0,"avgLengthInMonths":0,"percGoodsReturned":0,"thirdPartyProviders":"String"},"prepayments":{"fullPaymentAcceptedPriorToSupply":false,"percGoodsWherePaymentTakenPriorToDelivery":0,"avgDaysPaymentTakenInAdvance":0},"membershipsSubscriptionAndInsurancePremiums":{"levyCharge":false,"percCardTurnover":0,"avgLengthInMonths":0,"membershipCost":0},"stockHeldAtAnotherAddressLocation":{"address1":"String","address2":"String","address3":"String","postcode":"String","city":"String","state":"String","countrycode":"String"}}},"acquiring":{"settlementPeriodTPlus":0,"rates":{},"services":{"cnp":{"required":false,"percentage":0},"amex":{"required":false,"existingAmexNumber":"String"},"cashbackRequired":false,"worldpayDashboardRequired":false,"paperInvoicingRequired":false}},"products":{"posProducts":{"term":0,"renewalLength":0},"ecomProducts":{"term":0,"renewalLength":0},"wptProducts":{"term":0,"renewalLength":0,"posInstallationDate":"\/Date(-62135596800000-0000)\/","integratedSolutionProvider":{"name":"String","address":{"address1":"String","address2":"String","address3":"String","postcode":"String","city":"String","state":"String","countrycode":"String"},"telephone":"String","primaryContact":{"title":"String","firstName":"String","lastName":"String","position":"String","emailAddress":"String"},"technicalContact":{"title":"String","firstName":"String","lastName":"String","position":"String","emailAddress":"String"},"providerType":"String","providerSoftware":"String"}},"ipProducts":{"term":0,"renewalLength":0,"integratedSolutionProvider":{"name":"String","address":{"address1":"String","address2":"String","address3":"String","postcode":"String","city":"String","state":"String","countrycode":"String"},"telephone":"String","primaryContact":{"title":"String","firstName":"String","lastName":"String","position":"String","emailAddress":"String"},"technicalContact":{"title":"String","firstName":"String","lastName":"String","position":"String","emailAddress":"String"},"providerType":"String","providerSoftware":"String"}}}}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"applicationGuid":"00000000000000000000000000000000","csr":0,"applicationQueueGuid":"00000000000000000000000000000000","queueStatus":"Queued","boardingStatus":"PENDING","errorMessages":["String"]}