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
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.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"]}