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 Authentication:
# @ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")
api_user_id: Optional[str] = None
"""
The API User ID provided by us when you signed up to use our API
"""
# @ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")
api_user_key: Optional[str] = None
"""
The API User Key provided by us when you signed up to use our API
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseRequest(IBaseRequest):
# @ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")
authentication: Optional[Authentication] = None
"""
The authentication credentials
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResponseError:
error_code: Optional[str] = None
field_name: Optional[str] = None
message: Optional[str] = None
meta: Optional[Dict[str, str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArrayOfResponseError(List[ResponseError]):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ResponseStatus:
error_code: Optional[str] = None
message: Optional[str] = None
stack_trace: Optional[str] = None
errors: Optional[ArrayOfResponseError] = None
meta: Optional[Dict[str, str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseResponse(IBaseDataResponse, IHasResponseStatus):
# @ApiMember(Description="The status of the response")
response_status: Optional[ResponseStatus] = None
"""
The status of the response
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArrayOfLists(List[str]):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LinkedTo:
client_id: Optional[int] = None
id: Optional[int] = None
type: Optional[str] = None
subtype: Optional[str] = None
status: Optional[str] = None
description: Optional[str] = None
is_archived: Optional[bool] = None
name: Optional[str] = None
date: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArrayOfLinkedTo(List[LinkedTo]):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdBasicRequest:
name1: Optional[str] = None
name2: Optional[str] = None
name3: Optional[str] = None
date_of_birth: Optional[datetime.datetime] = None
gender: Optional[str] = None
address1: Optional[str] = None
address2: Optional[str] = None
address3: Optional[str] = None
address4: Optional[str] = None
address5: Optional[str] = None
post_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdPassportRequest:
passport1: Optional[str] = None
passport2: Optional[str] = None
passport3: Optional[str] = None
passport4: Optional[str] = None
passport5: Optional[str] = None
passport6: Optional[str] = None
passport7: Optional[str] = None
passport8: Optional[str] = None
passport_mrz_line_one1: Optional[str] = None
passport_mrz_line_one2: Optional[str] = None
passport_mrz_line_one3: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdDrivingRequest:
driving1: Optional[str] = None
driving2: Optional[str] = None
driving3: Optional[str] = None
driving_postcode: Optional[str] = None
driving_mail_sort: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdBirthRequest:
birth_fore_name: Optional[str] = None
birth_middle_name: Optional[str] = None
birth_surname: Optional[str] = None
birth_maiden_name: Optional[str] = None
birth_district: Optional[str] = None
birth_cert_issue_num: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdNIRequest:
ni_number: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdNHSRequest:
nhs_number: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdElectricityRequest:
mpan_number1: Optional[str] = None
mpan_number2: Optional[str] = None
mpan_number3: Optional[str] = None
mpan_number4: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdBankRequest:
bank_sort_code: Optional[str] = None
bank_account_number: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdCardNumberRequest:
card_number: Optional[str] = None
card_type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdTravelVisaRequest:
travel_visa1: Optional[str] = None
travel_visa2: Optional[str] = None
travel_visa3: Optional[str] = None
travel_visa4: Optional[str] = None
travel_visa5: Optional[str] = None
travel_visa6: Optional[str] = None
travel_visa7: Optional[str] = None
travel_visa8: Optional[str] = None
travel_visa9: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdIdCardRequest:
id_card1: Optional[str] = None
id_card2: Optional[str] = None
id_card3: Optional[str] = None
id_card4: Optional[str] = None
id_card5: Optional[str] = None
id_card6: Optional[str] = None
id_card7: Optional[str] = None
id_card8: Optional[str] = None
id_card9: Optional[str] = None
id_card10: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdPollNumberRequest:
poll_number: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ValidIdMarriageRequest:
forename: Optional[str] = None
surname: Optional[str] = None
partner_forename: Optional[str] = None
partner_surname: Optional[str] = None
date: Optional[str] = None
district: Optional[str] = None
cert_issue_num: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddValidIdRequest:
# @ApiMember(Description="If the search should be saved against a single Sub User account, specify their username here")
sub_user_name: Optional[str] = None
"""
If the search should be saved against a single Sub User account, specify their username here
"""
type: Optional[str] = None
add_pep_search: bool = False
pep_search_type: Optional[str] = None
add_sanctions_search: bool = False
selected_lists: Optional[ArrayOfLists] = None
reference: Optional[str] = None
# @ApiMember(Description="If the search should be linked to other searches, specify the them here")
linked_to: Optional[ArrayOfLinkedTo] = None
"""
If the search should be linked to other searches, specify the them here
"""
basic_request: Optional[ValidIdBasicRequest] = None
passport_request: Optional[ValidIdPassportRequest] = None
driving_request: Optional[ValidIdDrivingRequest] = None
birth_request: Optional[ValidIdBirthRequest] = None
ni_request: Optional[ValidIdNIRequest] = None
nhs_request: Optional[ValidIdNHSRequest] = None
electricity_request: Optional[ValidIdElectricityRequest] = None
bank_request: Optional[ValidIdBankRequest] = None
card_number_request: Optional[ValidIdCardNumberRequest] = None
travel_visa_request: Optional[ValidIdTravelVisaRequest] = None
id_card_request: Optional[ValidIdIdCardRequest] = None
poll_number_request: Optional[ValidIdPollNumberRequest] = None
marriage_request: Optional[ValidIdMarriageRequest] = None
passport_enabled: bool = False
passport_chip_enabled: bool = False
driving_enabled: bool = False
smartlink_enabled: bool = False
ni_enabled: bool = False
nhs_enabled: bool = False
electricity_enabled: bool = False
bank_enabled: bool = False
credit_active_enabled: bool = False
id_card_enabled: bool = False
bank_live_enabled: bool = False
company_director_enabled: bool = False
search_activity_enabled: bool = False
prs_enabled: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddValidIdTemplateData(BaseResponse):
request: Optional[AddValidIdRequest] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddValidIdTemplateResponse:
data: Optional[AddValidIdTemplateData] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddValidIdTemplate(BaseRequest):
# @ApiMember(IsRequired=true)
client_id: int = 0
Python AddValidIdTemplate DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .soap11 suffix or ?format=soap11
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /soap11 HTTP/1.1
Host: api.sanctionssearch.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: AddValidIdTemplate
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AddValidIdTemplate xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
<Authentication>
<ApiUserId>String</ApiUserId>
<ApiUserKey>String</ApiUserKey>
</Authentication>
<ClientId>0</ClientId>
</AddValidIdTemplate>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <AddValidIdTemplateResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types"> <Data> <ResponseStatus> <ErrorCode>String</ErrorCode> <Message>String</Message> <StackTrace>String</StackTrace> <Errors> <ResponseError> <ErrorCode>String</ErrorCode> <FieldName>String</FieldName> <Message>String</Message> <Meta xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d6p1:KeyValueOfstringstring> <d6p1:Key>String</d6p1:Key> <d6p1:Value>String</d6p1:Value> </d6p1:KeyValueOfstringstring> </Meta> </ResponseError> </Errors> <Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:KeyValueOfstringstring> <d4p1:Key>String</d4p1:Key> <d4p1:Value>String</d4p1:Value> </d4p1:KeyValueOfstringstring> </Meta> </ResponseStatus> <Request> <AddPepSearch>false</AddPepSearch> <AddSanctionsSearch>false</AddSanctionsSearch> <BankEnabled>false</BankEnabled> <BankLiveEnabled>false</BankLiveEnabled> <BankRequest> <BankAccountNumber>String</BankAccountNumber> <BankSortCode>String</BankSortCode> </BankRequest> <BasicRequest> <Address1>String</Address1> <Address2>String</Address2> <Address3>String</Address3> <Address4>String</Address4> <Address5>String</Address5> <DateOfBirth>0001-01-01T00:00:00</DateOfBirth> <Gender>String</Gender> <Name1>String</Name1> <Name2>String</Name2> <Name3>String</Name3> <PostCode>String</PostCode> </BasicRequest> <BirthRequest> <BirthCertIssueNum>String</BirthCertIssueNum> <BirthDistrict>String</BirthDistrict> <BirthForeName>String</BirthForeName> <BirthMaidenName>String</BirthMaidenName> <BirthMiddleName>String</BirthMiddleName> <BirthSurname>String</BirthSurname> </BirthRequest> <CardNumberRequest> <CardNumber>String</CardNumber> <CardType>String</CardType> </CardNumberRequest> <CompanyDirectorEnabled>false</CompanyDirectorEnabled> <CreditActiveEnabled>false</CreditActiveEnabled> <DrivingEnabled>false</DrivingEnabled> <DrivingRequest> <Driving1>String</Driving1> <Driving2>String</Driving2> <Driving3>String</Driving3> <DrivingMailSort>String</DrivingMailSort> <DrivingPostcode>String</DrivingPostcode> </DrivingRequest> <ElectricityEnabled>false</ElectricityEnabled> <ElectricityRequest> <MPANNumber1>String</MPANNumber1> <MPANNumber2>String</MPANNumber2> <MPANNumber3>String</MPANNumber3> <MPANNumber4>String</MPANNumber4> </ElectricityRequest> <IdCardEnabled>false</IdCardEnabled> <IdCardRequest> <IdCard1>String</IdCard1> <IdCard10>String</IdCard10> <IdCard2>String</IdCard2> <IdCard3>String</IdCard3> <IdCard4>String</IdCard4> <IdCard5>String</IdCard5> <IdCard6>String</IdCard6> <IdCard7>String</IdCard7> <IdCard8>String</IdCard8> <IdCard9>String</IdCard9> </IdCardRequest> <LinkedTo> <LinkedTo> <ClientId>0</ClientId> <Date>0001-01-01T00:00:00</Date> <Description>String</Description> <Id>0</Id> <IsArchived>false</IsArchived> <Name>String</Name> <Status>String</Status> <Subtype>String</Subtype> <Type>String</Type> </LinkedTo> </LinkedTo> <MarriageRequest> <CertIssueNum>String</CertIssueNum> <Date>String</Date> <District>String</District> <Forename>String</Forename> <PartnerForename>String</PartnerForename> <PartnerSurname>String</PartnerSurname> <Surname>String</Surname> </MarriageRequest> <NHSEnabled>false</NHSEnabled> <NHSRequest> <NHSNumber>String</NHSNumber> </NHSRequest> <NIEnabled>false</NIEnabled> <NIRequest> <NINumber>String</NINumber> </NIRequest> <PRSEnabled>false</PRSEnabled> <PassportChipEnabled>false</PassportChipEnabled> <PassportEnabled>false</PassportEnabled> <PassportRequest> <Passport1>String</Passport1> <Passport2>String</Passport2> <Passport3>String</Passport3> <Passport4>String</Passport4> <Passport5>String</Passport5> <Passport6>String</Passport6> <Passport7>String</Passport7> <Passport8>String</Passport8> <PassportMrzLineOne1>String</PassportMrzLineOne1> <PassportMrzLineOne2>String</PassportMrzLineOne2> <PassportMrzLineOne3>String</PassportMrzLineOne3> </PassportRequest> <PepSearchType>String</PepSearchType> <PollNumberRequest> <PollNumber>String</PollNumber> </PollNumberRequest> <Reference>String</Reference> <SearchActivityEnabled>false</SearchActivityEnabled> <SelectedLists> <ListId>String</ListId> </SelectedLists> <SmartlinkEnabled>false</SmartlinkEnabled> <SubUserName>String</SubUserName> <TravelVisaRequest> <TravelVisa1>String</TravelVisa1> <TravelVisa2>String</TravelVisa2> <TravelVisa3>String</TravelVisa3> <TravelVisa4>String</TravelVisa4> <TravelVisa5>String</TravelVisa5> <TravelVisa6>String</TravelVisa6> <TravelVisa7>String</TravelVisa7> <TravelVisa8>String</TravelVisa8> <TravelVisa9>String</TravelVisa9> </TravelVisaRequest> <Type>String</Type> </Request> </Data> </AddValidIdTemplateResponse> </soap:Body> </soap:Envelope>