CDD Engine Web Service v2.14.0.0

<back to all web services

AllChecksApplicationDataRequest

Requires Authentication
The following routes are available for this service:
POST/allchecks/submit/json
import java.math.*
import java.util.*
import net.servicestack.client.*


open class AllChecksApplicationDataRequest
{
    var Application:Application? = null
    var CorrelationId:String? = null
    var NapPartyId:String? = null
    var LEID:String? = null
    var OrderId:String? = null
    var PartyIndividuals:ArrayList<String> = ArrayList<String>()
}

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
{
    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
{
    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
    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
{
    var Type:ProductFeeType? = null
    var Cost:BigDecimal? = null
}

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

open class PosProductOption
{
    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
    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
{
    var Type:EcomProductOptionType? = null
    var Value:String? = null
}

enum class EcomProductOptionType
{
    Psp,
    FreeTransactions,
}

open class EcomOption
{
    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
{
    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
    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 StandardResponse
{
    var Status:Int? = null
    var CorrelationId:String? = null
    var Message:String? = null
}

Kotlin AllChecksApplicationDataRequest DTOs

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

HTTP + JSV

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

POST /allchecks/submit/json HTTP/1.1 
Host: wpcdd-featuretest-ws.worldpay.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Application: 
	{
		ApplicationDetails: 
		{
			SourceSystem: MARS,
			SourceSystemIdentifier: String,
			CustomerType: New,
			Csr: String,
			Partner: 
			{
				PartnerId: String,
				PartnerName: String
			},
			SellerCode: String,
			PricingPackage: CustomUk,
			ContactPerson: 
			{
				DateOfBirth: 0001-01-01,
				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: 0001-01-01,
			WorldpayBusinessFinanceInterest: False,
			Sar: False,
			SellerEmail: String,
			AnticipatedGoLiveDate: 0001-01-01,
			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: 0001-01-01,
				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: 0001-01-01,
				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
				}
			}
		}
	},
	CorrelationId: String,
	NapPartyId: String,
	LEID: String,
	OrderId: String,
	PartyIndividuals: 
	[
		String
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Status: 0,
	CorrelationId: String,
	Message: String
}