POST | /ApplicationBoarding |
---|
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
class ApplicationQueueStatus(IntEnum):
QUEUED = 0
STANDARDISED_X_M_L = 20
READY_TO_DISTRIBUTE = 40
AWAITING_DISTRIBUTE_RESPONSE = 60
READY_TO_AUTOBOARD = 80
THROTTLE_CHECK_PASSED = 100
ELIGIBILITY_CHECK_PASSED = 300
SENT_TO_AUTOBOARD_SERVICE = 400
AUTOBOARDING_SUSPENDED = 450
SUCCESSFULLY_BOARDED = 500
QUEUE_ERROR = 1000
THROTTLE_CHECK_ERROR = 1100
XML_STANDARDISATION_ERROR = 1200
ELIGIBILITY_CHECK_ERROR = 1300
AUTOBOARDING_ERROR = 1400
INELIGIBLE_THROTTLE_LIMIT = 2100
INELIGIBLE_APPLICATION = 2300
class ApplicationBoardingStatus(IntEnum):
PENDING = 0
I_N__P_R_O_G_R_E_S_S = 5
FAILED = 9
COMPLETED = 10
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InitiateBoardingResponse:
application_guid: Optional[str] = None
csr: Optional[int] = None
application_queue_guid: Optional[str] = None
queue_status: Optional[ApplicationQueueStatus] = None
boarding_status: Optional[ApplicationBoardingStatus] = None
error_messages: Optional[List[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 ApplicationBoarding:
correlation_id: Optional[str] = None
csr: Optional[int] = None
seller_code: Optional[str] = None
seller_email: Optional[str] = None
application_source: Optional[int] = None
application_json: Optional[Application] = None
Python ApplicationBoarding DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
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-test.worldpay.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<ApplicationBoarding xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Autoboarding.Common.Requests">
<ApplicationJson xmlns:d2p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding">
<d2p1:Acquiring xmlns:d3p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Acquiring">
<d3p1:Rates>
<d3p1:AdditionalTarrifs i:nil="true" />
<d3p1:CardCharges i:nil="true" />
<d3p1:PremiumTransactionCharges i:nil="true" />
</d3p1:Rates>
<d3p1:Services xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Acquiring.Services">
<d4p1:Amex>
<d4p1:ExistingAmexNumber>String</d4p1:ExistingAmexNumber>
<d4p1:Required>false</d4p1:Required>
</d4p1:Amex>
<d4p1:CashbackRequired>false</d4p1:CashbackRequired>
<d4p1:Cnp>
<d4p1:Percentage>0</d4p1:Percentage>
<d4p1:Required>false</d4p1:Required>
</d4p1:Cnp>
<d4p1:PaperInvoicingRequired>false</d4p1:PaperInvoicingRequired>
<d4p1:WorldpayDashboardRequired>false</d4p1:WorldpayDashboardRequired>
</d3p1:Services>
<d3p1:SettlementPeriodTPlus>0</d3p1:SettlementPeriodTPlus>
<d3p1:TradingCurrencies i:nil="true" />
</d2p1:Acquiring>
<d2p1:ApplicationDetails>
<d2p1:AccessibilityOptions>
<d2p1:AudiotapeRequired>false</d2p1:AudiotapeRequired>
<d2p1:LargePrintRequired>false</d2p1:LargePrintRequired>
<d2p1:NextGenerationTextRequired>false</d2p1:NextGenerationTextRequired>
<d2p1:UncontractedBrailleGrade1Required>false</d2p1:UncontractedBrailleGrade1Required>
<d2p1:UncontractedBrailleGrade2Required>false</d2p1:UncontractedBrailleGrade2Required>
</d2p1:AccessibilityOptions>
<d2p1:AnticipatedGoLiveDate>0001-01-01T00:00:00</d2p1:AnticipatedGoLiveDate>
<d2p1:ContactPerson xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.BusinessDetails">
<d4p1:AltTelephoneNumber>String</d4p1:AltTelephoneNumber>
<d4p1:Email>String</d4p1:Email>
<d4p1:FirstName>String</d4p1:FirstName>
<d4p1:LastName>String</d4p1:LastName>
<d4p1:MiddleName>String</d4p1:MiddleName>
<d4p1:Position>String</d4p1:Position>
<d4p1:PreferredContactBestTime>String</d4p1:PreferredContactBestTime>
<d4p1:PreferredContactMethod>Email</d4p1:PreferredContactMethod>
<d4p1:TelephoneNumber>String</d4p1:TelephoneNumber>
<d4p1:Title>String</d4p1:Title>
<d4p1:CountryCode>String</d4p1:CountryCode>
<d4p1:DateOfBirth>0001-01-01T00:00:00</d4p1:DateOfBirth>
</d2p1:ContactPerson>
<d2p1:Csr>String</d2p1:Csr>
<d2p1:CustomerType>New</d2p1:CustomerType>
<d2p1:DateContractAccepted>0001-01-01T00:00:00</d2p1:DateContractAccepted>
<d2p1:OfferDetails>String</d2p1:OfferDetails>
<d2p1:Partner>
<d2p1:PartnerId>String</d2p1:PartnerId>
<d2p1:PartnerName>String</d2p1:PartnerName>
</d2p1:Partner>
<d2p1:PricingPackage>CustomUk</d2p1:PricingPackage>
<d2p1:Sar>false</d2p1:Sar>
<d2p1:SellerCode>String</d2p1:SellerCode>
<d2p1:SellerEmail>String</d2p1:SellerEmail>
<d2p1:SourceSystem>MARS</d2p1:SourceSystem>
<d2p1:SourceSystemIdentifier>String</d2p1:SourceSystemIdentifier>
<d2p1:SpecialInstructions>String</d2p1:SpecialInstructions>
<d2p1:UltimateParentId>String</d2p1:UltimateParentId>
<d2p1:WorldpayBusinessFinanceInterest>false</d2p1:WorldpayBusinessFinanceInterest>
</d2p1:ApplicationDetails>
<d2p1:MerchantDetails xmlns:d3p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.BusinessDetails">
<d3p1:Business>
<d3p1:CharityNumber>String</d3p1:CharityNumber>
<d3p1:CompanyRegistrationNumber>String</d3p1:CompanyRegistrationNumber>
<d3p1:CompanyType>SoleTrader</d3p1:CompanyType>
<d3p1:CompanyTypeOther>String</d3p1:CompanyTypeOther>
<d3p1:CountryOfIncorporation>String</d3p1:CountryOfIncorporation>
<d3p1:DateStartedTrading>0001-01-01T00:00:00</d3p1:DateStartedTrading>
<d3p1:DescriptionOfGoodsAndServices>String</d3p1:DescriptionOfGoodsAndServices>
<d3p1:Financials>
<d3p1:Annual>0</d3p1:Annual>
<d3p1:AverageTransactionValue>0</d3p1:AverageTransactionValue>
<d3p1:CardPercentage>0</d3p1:CardPercentage>
<d3p1:CreditCardPercentage>0</d3p1:CreditCardPercentage>
</d3p1:Financials>
<d3p1:LegalAddress>
<d3p1:Address1>String</d3p1:Address1>
<d3p1:Address2>String</d3p1:Address2>
<d3p1:Address3>String</d3p1:Address3>
<d3p1:City>String</d3p1:City>
<d3p1:Countrycode>String</d3p1:Countrycode>
<d3p1:Postcode>String</d3p1:Postcode>
<d3p1:State>String</d3p1:State>
<d3p1:IsCommercial>false</d3p1:IsCommercial>
</d3p1:LegalAddress>
<d3p1:LegalName>String</d3p1:LegalName>
<d3p1:MerchantCategoryCode>String</d3p1:MerchantCategoryCode>
<d3p1:MerchantCategoryDescription>String</d3p1:MerchantCategoryDescription>
<d3p1:NewToCards>false</d3p1:NewToCards>
<d3p1:RegionOfIncorporation>String</d3p1:RegionOfIncorporation>
<d3p1:TradeAssociation>
<d3p1:GroupName>String</d3p1:GroupName>
<d3p1:MemberNumber>String</d3p1:MemberNumber>
</d3p1:TradeAssociation>
<d3p1:VatNumber>String</d3p1:VatNumber>
<d3p1:WebsiteAddress>String</d3p1:WebsiteAddress>
</d3p1:Business>
<d3p1:GoodsAndServices xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.BusinessDetails.GoodsAndServices">
<d4p1:Deposits>
<d4p1:Accepted>false</d4p1:Accepted>
<d4p1:AvgTimeBeforeDeliveryBalanceTaken>0</d4p1:AvgTimeBeforeDeliveryBalanceTaken>
<d4p1:AvgTimeBeforeDeliveryTaken>0</d4p1:AvgTimeBeforeDeliveryTaken>
<d4p1:PerOfSalesWhereInitialDepositTaken>0</d4p1:PerOfSalesWhereInitialDepositTaken>
<d4p1:SizePercOfTotalValue>0</d4p1:SizePercOfTotalValue>
</d4p1:Deposits>
<d4p1:GoodsProvidedByThirdParty>false</d4p1:GoodsProvidedByThirdParty>
<d4p1:MembershipsSubscriptionAndInsurancePremiums>
<d4p1:AvgLengthInMonths>0</d4p1:AvgLengthInMonths>
<d4p1:LevyCharge>false</d4p1:LevyCharge>
<d4p1:MembershipCost>0</d4p1:MembershipCost>
<d4p1:PercCardTurnover>0</d4p1:PercCardTurnover>
</d4p1:MembershipsSubscriptionAndInsurancePremiums>
<d4p1:Prepayments>
<d4p1:AvgDaysPaymentTakenInAdvance>0</d4p1:AvgDaysPaymentTakenInAdvance>
<d4p1:FullPaymentAcceptedPriorToSupply>false</d4p1:FullPaymentAcceptedPriorToSupply>
<d4p1:PercGoodsWherePaymentTakenPriorToDelivery>0</d4p1:PercGoodsWherePaymentTakenPriorToDelivery>
</d4p1:Prepayments>
<d4p1:StockHeldAtAnotherAddressLocation>
<d3p1:Address1>String</d3p1:Address1>
<d3p1:Address2>String</d3p1:Address2>
<d3p1:Address3>String</d3p1:Address3>
<d3p1:City>String</d3p1:City>
<d3p1:Countrycode>String</d3p1:Countrycode>
<d3p1:Postcode>String</d3p1:Postcode>
<d3p1:State>String</d3p1:State>
</d4p1:StockHeldAtAnotherAddressLocation>
<d4p1:WarrantiesAndGuarantees>
<d4p1:AvgLengthInMonths>0</d4p1:AvgLengthInMonths>
<d4p1:LevyCharge>false</d4p1:LevyCharge>
<d4p1:PercCardTurnover>0</d4p1:PercCardTurnover>
<d4p1:PercGoodsReturned>0</d4p1:PercGoodsReturned>
<d4p1:ThirdPartyProviders>String</d4p1:ThirdPartyProviders>
</d4p1:WarrantiesAndGuarantees>
</d3p1:GoodsAndServices>
<d3p1:Outlets i:nil="true" />
<d3p1:Principals i:nil="true" />
</d2p1:MerchantDetails>
<d2p1:Products xmlns:d3p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Products">
<d3p1:EcomProducts xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Products.EcomProducts">
<d4p1:Options i:nil="true" />
<d4p1:Products i:nil="true" />
<d4p1:RenewalLength>0</d4p1:RenewalLength>
<d4p1:Term>0</d4p1:Term>
</d3p1:EcomProducts>
<d3p1:IpProducts xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Products.IpProducts">
<d4p1:IntegratedSolutionProvider xmlns:d5p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Products.WptProducts">
<d5p1:Address xmlns:d6p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.BusinessDetails">
<d6p1:Address1>String</d6p1:Address1>
<d6p1:Address2>String</d6p1:Address2>
<d6p1:Address3>String</d6p1:Address3>
<d6p1:City>String</d6p1:City>
<d6p1:Countrycode>String</d6p1:Countrycode>
<d6p1:Postcode>String</d6p1:Postcode>
<d6p1:State>String</d6p1:State>
</d5p1:Address>
<d5p1:Name>String</d5p1:Name>
<d5p1:PrimaryContact>
<d5p1:EmailAddress>String</d5p1:EmailAddress>
<d5p1:FirstName>String</d5p1:FirstName>
<d5p1:LastName>String</d5p1:LastName>
<d5p1:Position>String</d5p1:Position>
<d5p1:Title>String</d5p1:Title>
</d5p1:PrimaryContact>
<d5p1:ProviderSoftware>String</d5p1:ProviderSoftware>
<d5p1:ProviderType>String</d5p1:ProviderType>
<d5p1:TechnicalContact>
<d5p1:EmailAddress>String</d5p1:EmailAddress>
<d5p1:FirstName>String</d5p1:FirstName>
<d5p1:LastName>String</d5p1:LastName>
<d5p1:Position>String</d5p1:Position>
<d5p1:Title>String</d5p1:Title>
</d5p1:TechnicalContact>
<d5p1:Telephone>String</d5p1:Telephone>
</d4p1:IntegratedSolutionProvider>
<d4p1:Products i:nil="true" />
<d4p1:RenewalLength>0</d4p1:RenewalLength>
<d4p1:Term>0</d4p1:Term>
</d3p1:IpProducts>
<d3p1:PosProducts xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Products.PosProducts">
<d4p1:Products i:nil="true" />
<d4p1:RenewalLength>0</d4p1:RenewalLength>
<d4p1:Term>0</d4p1:Term>
</d3p1:PosProducts>
<d3p1:WptProducts xmlns:d4p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.Products.WptProducts">
<d4p1:IntegratedSolutionProvider>
<d4p1:Address xmlns:d6p1="http://schemas.datacontract.org/2004/07/BoardingGateway.Common.Requests.Boarding.BusinessDetails">
<d6p1:Address1>String</d6p1:Address1>
<d6p1:Address2>String</d6p1:Address2>
<d6p1:Address3>String</d6p1:Address3>
<d6p1:City>String</d6p1:City>
<d6p1:Countrycode>String</d6p1:Countrycode>
<d6p1:Postcode>String</d6p1:Postcode>
<d6p1:State>String</d6p1:State>
</d4p1:Address>
<d4p1:Name>String</d4p1:Name>
<d4p1:PrimaryContact>
<d4p1:EmailAddress>String</d4p1:EmailAddress>
<d4p1:FirstName>String</d4p1:FirstName>
<d4p1:LastName>String</d4p1:LastName>
<d4p1:Position>String</d4p1:Position>
<d4p1:Title>String</d4p1:Title>
</d4p1:PrimaryContact>
<d4p1:ProviderSoftware>String</d4p1:ProviderSoftware>
<d4p1:ProviderType>String</d4p1:ProviderType>
<d4p1:TechnicalContact>
<d4p1:EmailAddress>String</d4p1:EmailAddress>
<d4p1:FirstName>String</d4p1:FirstName>
<d4p1:LastName>String</d4p1:LastName>
<d4p1:Position>String</d4p1:Position>
<d4p1:Title>String</d4p1:Title>
</d4p1:TechnicalContact>
<d4p1:Telephone>String</d4p1:Telephone>
</d4p1:IntegratedSolutionProvider>
<d4p1:PosInstallationDate>0001-01-01T00:00:00</d4p1:PosInstallationDate>
<d4p1:Products i:nil="true" />
<d4p1:RenewalLength>0</d4p1:RenewalLength>
<d4p1:Term>0</d4p1:Term>
</d3p1:WptProducts>
</d2p1:Products>
</ApplicationJson>
<ApplicationSource>0</ApplicationSource>
<CorrelationId>00000000-0000-0000-0000-000000000000</CorrelationId>
<Csr>0</Csr>
<SellerCode>String</SellerCode>
<SellerEmail>String</SellerEmail>
</ApplicationBoarding>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <InitiateBoardingResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Autoboarding.Common.Responses"> <ApplicationGuid>00000000-0000-0000-0000-000000000000</ApplicationGuid> <ApplicationQueueGuid>00000000-0000-0000-0000-000000000000</ApplicationQueueGuid> <BoardingStatus>PENDING</BoardingStatus> <CSR>0</CSR> <ErrorMessages xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:string>String</d2p1:string> </ErrorMessages> <QueueStatus>Queued</QueueStatus> </InitiateBoardingResponse>