Autoboard Webservice v5.13.0.0

<back to all web services

OrderBoardingRequest

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


open class OrderBoardingRequest
{
    @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
}

open class Order
{
    var meta:OrderMeta? = null
    var payload:OrderPayload? = null
}

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 Partner
{
    var partnerName:String? = null
    var partnerId:String? = null
}

open class AuthorisedSigner : Contact()
{
    var dateOfBirth:Date? = null
    var countryCode:String? = 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 Person
{
    var title:String? = null
    var firstName:String? = null
    var middleName:String? = null
    var lastName:String? = null
}

open class OrderPayload
{
    var partyId:String? = null
    var parentPartyId:String? = null
    var legalName:String? = null
    var tradingName:String? = null
    var addresses:ArrayList<MerchantAddress> = ArrayList<MerchantAddress>()
    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<MerchantCategory> = ArrayList<MerchantCategory>()
    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<Principal> = ArrayList<Principal>()
    var goodsAndServices:GoodsAndServices? = null
    var accessibilityOptions:AccessibilityOptions? = null
    var clearingDetails:ClearingDetails? = null
    var acquiring:Acquiring? = null
    var subscriptions:ArrayList<Subscription> = ArrayList<Subscription>()
    var children:ArrayList<OrderPayload> = ArrayList<OrderPayload>()
}

open class MerchantAddress : Address()
{
    var addressType:String? = null
    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
}

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

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 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 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 perOfSalesWhereInitialDepositTaken:Int? = null
    var sizePerTotalValue:Int? = null
    var avgTimeBeforeDeliveryDepositTaken:Int? = null
    var avgTimeBeforeDeliveryBalanceTaken:Int? = null
}

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

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

open class MembershipsSubscriptionAndInsurancePremiums
{
    var percCardTurnover:Int? = null
    var avgLengthInMonths:Int? = null
    var membershipCost:BigDecimal? = 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<TradingCurrency> = ArrayList<TradingCurrency>()
}

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

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 AdditionalTariff
{
    @SerializedName("type") var Type:String? = null
    var cost:BigDecimal? = 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 Subscription
{
    var proposition:String? = null
    var pricingPackage:String? = null
    var term:Int? = null
    var renewalLength:Int? = null
    var acquiring:Acquiring? = null
    var products:ArrayList<Product> = ArrayList<Product>()
}

open class Product
{
    var name:String? = null
    @SerializedName("type") var Type:String? = null
    var variant:String? = null
    var quantity:Int? = null
    var relatedFees:ArrayList<ProductFee> = ArrayList<ProductFee>()
    var options:ArrayList<ProductOption> = ArrayList<ProductOption>()
}

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

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

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

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 OrderBoardingRequest 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 /OrderBoarding HTTP/1.1 
Host: abservice-featuretest.worldpay.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"correlationId":"00000000000000000000000000000000","orderJson":{"meta":{"sourceSystem":"String","sourceSystemIdentifier":"String","csr":"String","ultimateParentId":"String","orderType":"String","customerType":"String","partner":{"partnerName":"String","partnerId":"String"},"sellerCode":"String","sellerEmail":"String","specialInstructions":"String","contact":{"dateOfBirth":"\/Date(-62135596800000-0000)\/","countryCode":"String","idpGuid":"00000000000000000000000000000000","telephoneNumber":"String","altTelephoneNumber":"String","email":"String","position":"String","preferredContactMethod":"String","preferredContactBestTime":"String","title":"String","firstName":"String","middleName":"String","lastName":"String"},"offerDetails":"String","dateContractAccepted":"\/Date(-62135596800000-0000)\/","worldpayBusinessFinanceInterest":false,"sar":false,"hasSupportingFiles":false},"payload":{"partyId":"String","parentPartyId":"String","legalName":"String","tradingName":"String","tradingContact":{"idpGuid":"00000000000000000000000000000000","telephoneNumber":"String","altTelephoneNumber":"String","email":"String","position":"String","preferredContactMethod":"String","preferredContactBestTime":"String","title":"String","firstName":"String","middleName":"String","lastName":"String"},"invoiceContact":{"email":"String","position":"String","title":"String","firstName":"String","middleName":"String","lastName":"String"},"settlementBankAccount":{"sortCode":"String","accountNumber":"String","bankName":"String","bankAccountName":"String","swiftCode":"String","internationalBankAccountNumber":"String"},"chargesBankAccount":{"sortCode":"String","accountNumber":"String","bankName":"String","bankAccountName":"String","swiftCode":"String","internationalBankAccountNumber":"String"},"directDebitCorrespondenceEmail":"String","websiteAddress":"String","companyType":"String","companyTypeOther":"String","companyRegistrationNumber":"String","charityNumber":"String","vatNumber":"String","dateStartedTrading":"\/Date(-62135596800000-0000)\/","anticipatedGoLiveDate":"\/Date(-62135596800000-0000)\/","countryOfIncorporation":"String","regionOfIncorporation":"String","financials":{"annual":0,"cardPercentage":0,"creditCardPercentage":0,"averageTransactionValue":0,"cardNotPresentPercentage":0},"newToCards":false,"tradeAssociation":{"groupName":"String","memberNumber":"String"},"goodsAndServices":{"goodsProvidedByThirdParty":false,"deposits":{"perOfSalesWhereInitialDepositTaken":0,"sizePerTotalValue":0,"avgTimeBeforeDeliveryDepositTaken":0,"avgTimeBeforeDeliveryBalanceTaken":0},"warrantiesAndGuarantees":{"percCardTurnover":0,"avgLengthInMonths":0,"percGoodsReturned":0,"thirdPartyProviders":"String"},"prepayments":{"percGoodsWherePaymentTakenPriorToDelivery":0,"avgDaysPaymentTakenInAdvance":0},"membershipsSubscriptionAndInsurancePremiums":{"percCardTurnover":0,"avgLengthInMonths":0,"membershipCost":0},"stockHeldAtAnotherAddressLocation":{"address1":"String","address2":"String","address3":"String","postcode":"String","city":"String","state":"String","countryCode":"String"}},"accessibilityOptions":{"audiotapeRequired":false,"largePrintRequired":false,"uncontractedBrailleGrade1Required":false,"uncontractedBrailleGrade2Required":false,"nextGenerationTextRequired":false},"clearingDetails":{"merchantUrl":"String","telephone":"String","email":"String"},"acquiring":{"settlementPeriod":0,"fundingMode":"String","rates":{}}}},"onboardingRequestId":"00000000000000000000000000000000","localEnterpriseId":"00000000000000000000000000000000","audience":"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"]}