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