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 datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StandardResponse:
    status: Optional[int] = None
    correlation_id: Optional[str] = None
    message: Optional[str] = None


class SourceSystemType(str, Enum):
    MARS = 'MARS'
    ASA = 'ASA'
    OLS = 'OLS'
    INASA = 'INASA'


class CustomerType(IntEnum):
    NEW = 0
    EXISTING = 1
    NONE = -1


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Partner:
    partner_id: Optional[str] = None
    partner_name: Optional[str] = None


class PricingPackageType(IntEnum):
    CUSTOM_UK = 0
    MONTHLY_UK = 1
    SIMPLICITY_UK = 2
    PAYG_UK = 3
    CUSTOM_ROI = 4
    PAYGE_COM_U_K = 5
    NONE = -1


class PreferredContactMethodType(str, Enum):
    EMAIL = 'Email'
    TELEPHONE = 'Telephone'
    ANY = 'Any'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ContactPerson:
    title: Optional[str] = None
    first_name: Optional[str] = None
    middle_name: Optional[str] = None
    last_name: Optional[str] = None
    telephone_number: Optional[str] = None
    alt_telephone_number: Optional[str] = None
    email: Optional[str] = None
    position: Optional[str] = None
    preferred_contact_method: Optional[PreferredContactMethodType] = None
    preferred_contact_best_time: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AuthorisedSigner(ContactPerson):
    date_of_birth: Optional[datetime.datetime] = None
    country_code: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AccessibilityOptions:
    audiotape_required: Optional[bool] = None
    large_print_required: Optional[bool] = None
    uncontracted_braille_grade1_required: Optional[bool] = None
    uncontracted_braille_grade2_required: Optional[bool] = None
    next_generation_text_required: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ApplicationDetails:
    source_system: Optional[SourceSystemType] = None
    source_system_identifier: Optional[str] = None
    customer_type: Optional[CustomerType] = None
    csr: Optional[str] = None
    partner: Optional[Partner] = None
    seller_code: Optional[str] = None
    pricing_package: Optional[PricingPackageType] = None
    contact_person: Optional[AuthorisedSigner] = None
    special_instructions: Optional[str] = None
    offer_details: Optional[str] = None
    date_contract_accepted: Optional[datetime.datetime] = None
    worldpay_business_finance_interest: Optional[bool] = None
    sar: Optional[bool] = None
    seller_email: Optional[str] = None
    anticipated_go_live_date: Optional[datetime.datetime] = None
    accessibility_options: Optional[AccessibilityOptions] = None
    ultimate_parent_id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
    address1: Optional[str] = None
    address2: Optional[str] = None
    address3: Optional[str] = None
    postcode: Optional[str] = None
    city: Optional[str] = None
    state: Optional[str] = None
    countrycode: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BusinessAddress(Address):
    is_commercial: Optional[bool] = None


class CompanyType(str, Enum):
    SOLE_TRADER = 'SoleTrader'
    PARTNERSHIP = 'Partnership'
    LIMITED_COMPANY = 'LimitedCompany'
    TRUST = 'Trust'
    REGISTERED_CHARITY = 'RegisteredCharity'
    PUBLIC_LIMITED_COMPANY = 'PublicLimitedCompany'
    LIMITED_BY_GUARANTEE = 'LimitedByGuarantee'
    CLUB_SOCIETY_ASSOCIATION = 'ClubSocietyAssociation'
    COMMUNITY_INTEREST_COMPANY_OR_INDUSTRIAL_PROVIDENT = 'CommunityInterestCompanyOrIndustrialProvident'
    LIMITED_LIABILITY_PARTNERSHIP = 'LimitedLiabilityPartnership'
    OTHER = 'Other'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Financials:
    annual: Optional[Decimal] = None
    card_percentage: Optional[Decimal] = None
    credit_card_percentage: Optional[Decimal] = None
    average_transaction_value: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TradeAssociation:
    group_name: Optional[str] = None
    member_number: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Business:
    legal_name: Optional[str] = None
    legal_address: Optional[BusinessAddress] = None
    website_address: Optional[str] = None
    company_type: Optional[CompanyType] = None
    company_type_other: Optional[str] = None
    company_registration_number: Optional[str] = None
    charity_number: Optional[str] = None
    merchant_category_code: Optional[str] = None
    merchant_category_description: Optional[str] = None
    description_of_goods_and_services: Optional[str] = None
    vat_number: Optional[str] = None
    date_started_trading: Optional[datetime.datetime] = None
    country_of_incorporation: Optional[str] = None
    region_of_incorporation: Optional[str] = None
    financials: Optional[Financials] = None
    new_to_cards: Optional[bool] = None
    trade_association: Optional[TradeAssociation] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PrincipalAddress(Address):
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None


class PositionType(IntEnum):
    SOLE_TRADER = 0
    PARTNER = 1
    DIRECTOR = 2
    COMPANY_SECRETARY = 3
    CHIEF_FINANCIAL_OFFICER = 4
    CHAIRMAN = 5
    DESIGNATED_BOARD_MEMBER = 7
    SETTLOR = 8
    TREASURER = 9
    TRUSTEE = 10
    CHIEF_EXECUTIVE = 11
    AUTHORISED_PERSON_WITH_CONSENT = 12
    NON_EXECUTIVE_DIRECTOR = 13
    CONTACT_PERSON = 14
    SHAREHOLDER = 15


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Principal:
    title: Optional[str] = None
    first_name: Optional[str] = None
    middle_name: Optional[str] = None
    last_name: Optional[str] = None
    date_of_birth: Optional[datetime.datetime] = None
    nationality: Optional[str] = None
    home_addresses: Optional[List[PrincipalAddress]] = None
    ownership_percentage: Optional[Decimal] = None
    position: Optional[PositionType] = None
    is_financial_controller: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BankAccount:
    sort_code: Optional[str] = None
    account_number: Optional[str] = None
    bank_name: Optional[str] = None
    bank_account_name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ClearingDetails:
    merchant_url: Optional[str] = None
    telephone: Optional[str] = None
    email: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OutletAllocatedProduct:
    id: Optional[int] = None
    quantity: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Outlet:
    trading_name: Optional[str] = None
    trading_address: Optional[BusinessAddress] = None
    contact_person: Optional[ContactPerson] = None
    terminal_delivery_address: Optional[BusinessAddress] = None
    correspondence_address: Optional[BusinessAddress] = None
    settlement_bank_account: Optional[BankAccount] = None
    charges_bank_account: Optional[BankAccount] = None
    direct_debit_correspondence_email: Optional[str] = None
    clearing_details: Optional[ClearingDetails] = None
    product_allocation: Optional[List[OutletAllocatedProduct]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Deposits:
    accepted: Optional[bool] = None
    per_of_sales_where_initial_deposit_taken: Optional[int] = None
    size_perc_of_total_value: Optional[int] = None
    avg_time_before_delivery_taken: Optional[int] = None
    avg_time_before_delivery_balance_taken: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WarrantiesAndGuarantees:
    levy_charge: Optional[bool] = None
    perc_card_turnover: Optional[int] = None
    avg_length_in_months: Optional[int] = None
    perc_goods_returned: Optional[int] = None
    third_party_providers: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Prepayments:
    full_payment_accepted_prior_to_supply: Optional[bool] = None
    perc_goods_where_payment_taken_prior_to_delivery: Optional[int] = None
    avg_days_payment_taken_in_advance: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MembershipsSubscriptionAndInsurancePremiums:
    levy_charge: Optional[bool] = None
    perc_card_turnover: Optional[int] = None
    avg_length_in_months: Optional[int] = None
    membership_cost: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GoodsAndServices:
    goods_provided_by_third_party: Optional[bool] = None
    deposits: Optional[Deposits] = None
    warranties_and_guarantees: Optional[WarrantiesAndGuarantees] = None
    prepayments: Optional[Prepayments] = None
    memberships_subscription_and_insurance_premiums: Optional[MembershipsSubscriptionAndInsurancePremiums] = None
    stock_held_at_another_address_location: Optional[Address] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MerchantDetails:
    business: Optional[Business] = None
    principals: Optional[List[Principal]] = None
    outlets: Optional[List[Outlet]] = None
    goods_and_services: Optional[GoodsAndServices] = None


class CardType(str, Enum):
    VISA_DEBIT = 'VisaDebit'
    VISA_CREDIT = 'VisaCredit'
    VISA_COMMERCIAL = 'VisaCommercial'
    MASTERCARD_DEBIT = 'MastercardDebit'
    MASTERCARD_CREDIT = 'MastercardCredit'
    MASTERCARD_COMMERCIAL = 'MastercardCommercial'
    MASTERCARD_WORLD_SIGNIA = 'MastercardWorldSignia'
    JCB_CREDIT = 'JcbCredit'
    JCB_DEBIT = 'JcbDebit'
    JCB_COMMERCIAL = 'JcbCommercial'
    DINERS_DISCOVER_CREDIT = 'DinersDiscoverCredit'
    DINERS_DISCOVER_DEBIT = 'DinersDiscoverDebit'
    DINERS_DISCOVER_COMMERCIAL = 'DinersDiscoverCommercial'
    AMEX = 'Amex'
    CHINA_UNION_PAY_CREDIT = 'ChinaUnionPayCredit'
    CHINA_UNION_PAY_DEBIT = 'ChinaUnionPayDebit'
    CHINA_UNION_PAY_COMMERCIAL = 'ChinaUnionPayCommercial'
    VISA_BUSINESS_DEBIT = 'VisaBusinessDebit'
    MASTERCARD_BUSINESS = 'MastercardBusiness'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateChargePair:
    percent: Optional[Decimal] = None
    cost: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CardCharge:
    card_type: Optional[CardType] = None
    purchase: Optional[RateChargePair] = None
    refund: Optional[RateChargePair] = None


class PremiumTransactionChargeType(str, Enum):
    MAGSTRIPE = 'Magstripe'
    CNP_MOTO = 'CnpMoto'
    PAPER = 'Paper'
    PAN_KEY_ENTRY = 'PanKeyEntry'
    SECURE_ECOM = 'SecureEcom'
    NON_SECURE_ECOM = 'NonSecureEcom'
    INTER_REGIONAL = 'InterRegional'
    INTRA_REGIONAL = 'IntraRegional'
    NON_AUTH = 'NonAuth'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PremiumTransactionCharge:
    type: Optional[PremiumTransactionChargeType] = None
    credit_card: Optional[RateChargePair] = None
    debit_card: Optional[RateChargePair] = None


class AdditionalTarrifType(str, Enum):
    NAME_AND_ADDRESS_CHECK = 'NameAndAddressCheck'
    AUTH = 'Auth'
    CHARGEBACK = 'chargeback'
    MMSC = 'Mmsc'
    PAPER_STATEMENT = 'PaperStatement'
    PCI_VERBAL_ASSESSMENT = 'PciVerbalAssessment'
    PCI_IP_SCAN = 'PciIpScan'
    PCI_NON_COMPLIANCE = 'PciNonCompliance'
    PCI_SAFER_PAYMENTS_PLUS = 'PciSaferPaymentsPlus'
    JOINING_FEE = 'JoiningFee'
    PAY_MONTHLY_ACQUIRING_FEE = 'PayMonthlyAcquiringFee'
    PCI_SAFER_PAYMENTS = 'PciSaferPayments'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdditionalTarrif:
    type: Optional[AdditionalTarrifType] = None
    cost: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Rates:
    card_charges: Optional[List[CardCharge]] = None
    premium_transaction_charges: Optional[List[PremiumTransactionCharge]] = None
    additional_tarrifs: Optional[List[AdditionalTarrif]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Cnp:
    required: Optional[bool] = None
    percentage: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Amex:
    required: Optional[bool] = None
    existing_amex_number: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Services:
    cnp: Optional[Cnp] = None
    amex: Optional[Amex] = None
    cashback_required: Optional[bool] = None
    worldpay_dashboard_required: Optional[bool] = None
    paper_invoicing_required: Optional[bool] = None


class CurrencyCodeType(str, Enum):
    GBP = 'GBP'
    EUR = 'EUR'
    USD = 'USD'
    AED = 'AED'
    AFN = 'AFN'
    ALL = 'ALL'
    AMD = 'AMD'
    ANG = 'ANG'
    AOA = 'AOA'
    ARS = 'ARS'
    AUD = 'AUD'
    AWG = 'AWG'
    AZN = 'AZN'
    BAM = 'BAM'
    BBD = 'BBD'
    BDT = 'BDT'
    BGN = 'BGN'
    BHD = 'BHD'
    BIF = 'BIF'
    BMD = 'BMD'
    BND = 'BND'
    BOB = 'BOB'
    BRL = 'BRL'
    BSD = 'BSD'
    BTN = 'BTN'
    BWP = 'BWP'
    BYR = 'BYR'
    BZD = 'BZD'
    CAD = 'CAD'
    CDF = 'CDF'
    CHF = 'CHF'
    CLP = 'CLP'
    CNY = 'CNY'
    COP = 'COP'
    COU = 'COU'
    CRC = 'CRC'
    CUC = 'CUC'
    CUP = 'CUP'
    CVE = 'CVE'
    CZK = 'CZK'
    DJF = 'DJF'
    DKK = 'DKK'
    DOP = 'DOP'
    DZD = 'DZD'
    EEK = 'EEK'
    EGP = 'EGP'
    ERN = 'ERN'
    ETB = 'ETB'
    FJD = 'FJD'
    FKP = 'FKP'
    GEL = 'GEL'
    GHS = 'GHS'
    GIP = 'GIP'
    GMD = 'GMD'
    GNF = 'GNF'
    GTQ = 'GTQ'
    GYD = 'GYD'
    HKD = 'HKD'
    HNL = 'HNL'
    HRK = 'HRK'
    HTG = 'HTG'
    HUF = 'HUF'
    IDR = 'IDR'
    ILS = 'ILS'
    INR = 'INR'
    IQD = 'IQD'
    IRR = 'IRR'
    ISK = 'ISK'
    JMD = 'JMD'
    JOD = 'JOD'
    JPY = 'JPY'
    KES = 'KES'
    KGS = 'KGS'
    KHR = 'KHR'
    KMF = 'KMF'
    KPW = 'KPW'
    KRW = 'KRW'
    KWD = 'KWD'
    KYD = 'KYD'
    KZT = 'KZT'
    LAK = 'LAK'
    LBP = 'LBP'
    LKR = 'LKR'
    LRD = 'LRD'
    LSL = 'LSL'
    LTL = 'LTL'
    LVL = 'LVL'
    LYD = 'LYD'
    MAD = 'MAD'
    MDL = 'MDL'
    MGA = 'MGA'
    MKD = 'MKD'
    MMK = 'MMK'
    MNT = 'MNT'
    MOP = 'MOP'
    MRO = 'MRO'
    MUR = 'MUR'
    MVR = 'MVR'
    MWK = 'MWK'
    MXN = 'MXN'
    MYR = 'MYR'
    MZN = 'MZN'
    NAD = 'NAD'
    NGN = 'NGN'
    NIO = 'NIO'
    NOK = 'NOK'
    NPR = 'NPR'
    NZD = 'NZD'
    OMR = 'OMR'
    PAB = 'PAB'
    PEN = 'PEN'
    PGK = 'PGK'
    PHP = 'PHP'
    PKR = 'PKR'
    PLN = 'PLN'
    PYG = 'PYG'
    QAR = 'QAR'
    RON = 'RON'
    RSD = 'RSD'
    RUB = 'RUB'
    RWF = 'RWF'
    SAR = 'SAR'
    SBD = 'SBD'
    SCR = 'SCR'
    SDG = 'SDG'
    SEK = 'SEK'
    SGD = 'SGD'
    SHP = 'SHP'
    SLL = 'SLL'
    SOS = 'SOS'
    SRD = 'SRD'
    STD = 'STD'
    SYP = 'SYP'
    SZL = 'SZL'
    THB = 'THB'
    TJS = 'TJS'
    TMT = 'TMT'
    TND = 'TND'
    TOP = 'TOP'
    TRY_ = 'TRY'
    TTD = 'TTD'
    TWD = 'TWD'
    TZS = 'TZS'
    UAH = 'UAH'
    UGX = 'UGX'
    UYU = 'UYU'
    UZS = 'UZS'
    VEF = 'VEF'
    VND = 'VND'
    VUV = 'VUV'
    WST = 'WST'
    YER = 'YER'
    ZAR = 'ZAR'
    ZMK = 'ZMK'
    ZWL = 'ZWL'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TradingCurrency:
    transaction_currencies: Optional[List[CurrencyCodeType]] = None
    settlement_currency: Optional[CurrencyCodeType] = None
    settlement_bank_swift: Optional[str] = None
    settlement_bank_iban: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Acquiring:
    settlement_period_t_plus: Optional[int] = None
    rates: Optional[Rates] = None
    services: Optional[Services] = None
    trading_currencies: Optional[List[TradingCurrency]] = None


class PosProductType(str, Enum):
    MOBILE = 'Mobile'
    WIFI = 'Wifi'
    BLUETOOTH = 'Bluetooth'
    FIXED = 'Fixed'
    POS_MID_ONLY = 'PosMidOnly'


class ProductFeeType(str, Enum):
    HIRE_COST = 'HireCost'
    TRANSACTION_COST = 'TransactionCost'
    SERVICE_FEE = 'ServiceFee'
    MANAGED_SERVICE_SETUP = 'ManagedServiceSetup'
    MANAGED_SERVICE_MONTHLY = 'ManagedServiceMonthly'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProductFee:
    type: Optional[ProductFeeType] = None
    cost: Optional[Decimal] = None


class PosProductOptionType(str, Enum):
    PSP = 'PSP'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PosProductOption:
    type: Optional[PosProductOptionType] = None
    value: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PosProduct:
    id: Optional[int] = None
    type: Optional[PosProductType] = None
    quantity: Optional[int] = None
    related_fees: Optional[List[ProductFee]] = None
    options: Optional[List[PosProductOption]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PosProducts:
    term: Optional[int] = None
    renewal_length: Optional[int] = None
    products: Optional[List[PosProduct]] = None


class EcomProductType(str, Enum):
    GATEWAY = 'Gateway'
    VIRTUAL_TERMINAL = 'VirtualTerminal'
    PAY_BY_LINK = 'PayByLink'
    ECOM_MID_ONLY = 'EcomMidOnly'


class EcomProductOptionType(str, Enum):
    PSP = 'PSP'
    FREE_TRANSACTIONS = 'FreeTransactions'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EcomProductOption:
    type: Optional[EcomProductOptionType] = None
    value: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EcomProduct:
    id: Optional[int] = None
    type: Optional[EcomProductType] = None
    quantity: Optional[int] = None
    related_fees: Optional[List[ProductFee]] = None
    options: Optional[List[EcomProductOption]] = None


class EcomOptionType(str, Enum):
    PAYPAL = 'Paypal'
    FUTURE_PAY = 'FuturePay'
    RMM = 'RMM'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EcomOption:
    type: Optional[EcomOptionType] = None
    related_fees: Optional[List[ProductFee]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EcomProducts:
    term: Optional[int] = None
    renewal_length: Optional[int] = None
    products: Optional[List[EcomProduct]] = None
    options: Optional[List[EcomOption]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IspContact:
    title: Optional[str] = None
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    position: Optional[str] = None
    email_address: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IntegratedSolutionProvider:
    name: Optional[str] = None
    address: Optional[Address] = None
    telephone: Optional[str] = None
    primary_contact: Optional[IspContact] = None
    technical_contact: Optional[IspContact] = None
    provider_type: Optional[str] = None
    provider_software: Optional[str] = None


class WptProductType(str, Enum):
    VERIFONE_P400 = 'VerifoneP400'
    INGENICO_W_L258 = 'IngenicoWL258'
    VERIFONE_V240 = 'VerifoneV240'


class WptVariantType(str, Enum):
    SERIAL = 'Serial'
    USB = 'Usb'
    ETHERNET = 'Ethernet'
    NONE = 'None'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WptProduct:
    type: Optional[WptProductType] = None
    id: Optional[int] = None
    variant: Optional[WptVariantType] = None
    quantity: Optional[int] = None
    related_fees: Optional[List[ProductFee]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WptProducts:
    term: Optional[int] = None
    renewal_length: Optional[int] = None
    pos_installation_date: Optional[datetime.datetime] = None
    integrated_solution_provider: Optional[IntegratedSolutionProvider] = None
    products: Optional[List[WptProduct]] = None


class IpProductType(str, Enum):
    PAX_A920 = 'PaxA920'
    MIURA_M020 = 'MiuraM020'


class IpVariantType(str, Enum):
    SDK = 'Sdk'
    CLOUD = 'Cloud'
    NONE = 'None'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IpProduct:
    id: Optional[int] = None
    type: Optional[IpProductType] = None
    quantity: Optional[int] = None
    related_fees: Optional[List[ProductFee]] = None
    variant: Optional[IpVariantType] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IpProducts:
    term: Optional[int] = None
    renewal_length: Optional[int] = None
    integrated_solution_provider: Optional[IntegratedSolutionProvider] = None
    products: Optional[List[IpProduct]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Products:
    pos_products: Optional[PosProducts] = None
    ecom_products: Optional[EcomProducts] = None
    wpt_products: Optional[WptProducts] = None
    ip_products: Optional[IpProducts] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Application:
    application_details: Optional[ApplicationDetails] = None
    merchant_details: Optional[MerchantDetails] = None
    acquiring: Optional[Acquiring] = None
    products: Optional[Products] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AllChecksApplicationDataRequest:
    application: Optional[Application] = None
    correlation_id: Optional[str] = None
    nap_party_id: Optional[str] = None
    leid: Optional[str] = None
    order_id: Optional[str] = None
    party_individuals: Optional[List[str]] = None

Python AllChecksApplicationDataRequest DTOs

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

HTTP + CSV

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/csv
Content-Type: text/csv
Content-Length: length

{"Application":{"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"}}}},"CorrelationId":"String","NapPartyId":"String","LEID":"String","OrderId":"String","PartyIndividuals":["String"]}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

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