Sanctions Search API: v1

<back to all web services

AddCompanySearch

Create a new sanctions search for an entity

Create a new sanctions search for an entityThis will create a new sanctions search for an entity, such as a company, vessel, organisation, or group.
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 ResponseError:
    error_code: Optional[str] = None
    field_name: Optional[str] = None
    message: Optional[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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchCriteria:
    name: Optional[str] = None
    date_of_birth: Optional[str] = None
    country_of_birth: Optional[str] = None
    nationality: Optional[str] = None
    address: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultHmTreasury:
    result_strength: int = 0
    result_similarity: Decimal = decimal.Decimal(0)
    result_resolved: bool = False
    result_type: Optional[str] = None
    date_listed: datetime.datetime = datetime.datetime(1, 1, 1)
    date_updated: datetime.datetime = datetime.datetime(1, 1, 1)
    name1: Optional[str] = None
    name2: Optional[str] = None
    name3: Optional[str] = None
    name4: Optional[str] = None
    name5: Optional[str] = None
    name6: Optional[str] = None
    date_of_birth: Optional[str] = None
    country_of_birth: Optional[str] = None
    nationality: Optional[str] = None
    address1: Optional[str] = None
    address2: Optional[str] = None
    address3: Optional[str] = None
    address4: Optional[str] = None
    address5: Optional[str] = None
    address6: Optional[str] = None
    post_code: Optional[str] = None
    country: Optional[str] = None


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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfacAka:
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    type: Optional[str] = None
    strength: Optional[str] = None


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


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


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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResultOfac:
    result_strength: int = 0
    result_similarity: Decimal = decimal.Decimal(0)
    result_resolved: bool = False
    result_type: Optional[str] = None
    date_updated: datetime.datetime = datetime.datetime(1, 1, 1)
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    addresses: Optional[List[SearchResultOfacAddress]] = None
    akas: Optional[List[SearchResultOfacAka]] = None
    date_of_births: Optional[List[SearchResultOfacDateOfBirth]] = None
    nationalities: Optional[List[SearchResultOfacNationality]] = None
    place_of_births: Optional[List[SearchResultOfacPlaceOfBirth]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchResults:
    hmt_results: Optional[List[SearchResultHmTreasury]] = None
    ofac_results: Optional[List[SearchResultOfac]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchRecord:
    id: int = 0
    search_type: Optional[str] = None
    date_searched: datetime.datetime = datetime.datetime(1, 1, 1)
    date_updated: datetime.datetime = datetime.datetime(1, 1, 1)
    num_of_results: int = 0
    client_in_results: bool = False
    client_not_in_results: bool = False
    affected_by_update: bool = False
    search_criteria: Optional[SearchCriteria] = None
    search_results: Optional[SearchResults] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddCompanySearchData(IBaseDataResponse, IHasResponseStatus):
    response_status: Optional[ResponseStatus] = None
    search_record: Optional[SearchRecord] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddCompanySearchResponse:
    # @ApiMember(IsRequired=true)
    data: Optional[AddCompanySearchData] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Authentication(IAuthentication):
    # @ApiMember(DataType="string", Description="The API User ID that will authenticate your request", IsRequired=true)
    api_user_id: Optional[str] = None
    """
    The API User ID that will authenticate your request
    """


    # @ApiMember(DataType="string", Description="The API User Key that will authenticate your request", IsRequired=true)
    api_user_key: Optional[str] = None
    """
    The API User Key that will authenticate your request
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArrayOfSanctionsLists(List[str]):
    pass


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchCompanyRequest:
    # @ApiMember(DataType="string", Description="The name of the entity that is being searched.", IsRequired=true)
    company_name: Optional[str] = None
    """
    The name of the entity that is being searched.
    """


    # @ApiMember(DataType="string", Description="The country where the entity is registered.", Format="int64")
    country: Optional[str] = None
    """
    The country where the entity is registered.
    """


    # @ApiMember(DataType="string", Description="The address where the entity is registered.")
    address: Optional[str] = None
    """
    The address where the entity is registered.
    """


    # @ApiMember(DataType="ArrayOfSanctionsLists", Description="Array of sanctions lists to be included in the search. At least one is required.", IsRequired=true)
    selected_sanctions_lists: Optional[ArrayOfSanctionsLists] = None
    """
    Array of sanctions lists to be included in the search. At least one is required.
    """


# @Api(Description="Create a new sanctions search for an entity")
# @ApiResponse(Description="Your request is successful if the \"<em>Data.ResponseStatus.Message</em>\" field is \"<b>Success</b>\".", StatusCode=200)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddCompanySearch(IBaseRequest):
    """
    Create a new sanctions search for an entity
    """

    # @ApiMember(DataType="Authentication", Description="Authentication object", IsRequired=true)
    authentication: Optional[Authentication] = None
    """
    Authentication object
    """


    # @ApiMember(DataType="SearchCompanyRequest", Description="Request object", IsRequired=true)
    request: Optional[SearchCompanyRequest] = None
    """
    Request object
    """

Python AddCompanySearch DTOs

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

HTTP + 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: AddCompanySearch

<?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>

<AddCompanySearch xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Authentication>
    <ApiUserId>String</ApiUserId>
    <ApiUserKey>String</ApiUserKey>
  </Authentication>
  <Request>
    <Address>String</Address>
    <CompanyName>String</CompanyName>
    <Country>String</Country>
    <SelectedSanctionsLists>
      <SanctionsListId>String</SanctionsListId>
    </SelectedSanctionsLists>
  </Request>
</AddCompanySearch>

</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>

<AddCompanySearchResponse 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>
        </ResponseError>
      </Errors>
    </ResponseStatus>
    <SearchRecord>
      <AffectedByUpdate>false</AffectedByUpdate>
      <ClientInResults>false</ClientInResults>
      <ClientNotInResults>false</ClientNotInResults>
      <DateSearched>0001-01-01T00:00:00</DateSearched>
      <DateUpdated>0001-01-01T00:00:00</DateUpdated>
      <Id>0</Id>
      <NumOfResults>0</NumOfResults>
      <SearchCriteria>
        <Address>String</Address>
        <CountryOfBirth>String</CountryOfBirth>
        <DateOfBirth>String</DateOfBirth>
        <Name>String</Name>
        <Nationality>String</Nationality>
      </SearchCriteria>
      <SearchResults>
        <HMTResults>
          <SearchResultHmTreasury>
            <Address1>String</Address1>
            <Address2>String</Address2>
            <Address3>String</Address3>
            <Address4>String</Address4>
            <Address5>String</Address5>
            <Address6>String</Address6>
            <Country>String</Country>
            <CountryOfBirth>String</CountryOfBirth>
            <DateListed>0001-01-01T00:00:00</DateListed>
            <DateOfBirth>String</DateOfBirth>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <Name1>String</Name1>
            <Name2>String</Name2>
            <Name3>String</Name3>
            <Name4>String</Name4>
            <Name5>String</Name5>
            <Name6>String</Name6>
            <Nationality>String</Nationality>
            <PostCode>String</PostCode>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultHmTreasury>
        </HMTResults>
        <OfacResults>
          <SearchResultOfac>
            <Addresses>
              <SearchResultOfacAddress>
                <Address1>String</Address1>
                <Address2>String</Address2>
                <Address3>String</Address3>
                <City>String</City>
                <Country>String</Country>
                <PostCode>String</PostCode>
                <State>String</State>
              </SearchResultOfacAddress>
            </Addresses>
            <Akas>
              <SearchResultOfacAka>
                <FirstName>String</FirstName>
                <LastName>String</LastName>
                <Strength>String</Strength>
                <Type>String</Type>
              </SearchResultOfacAka>
            </Akas>
            <DateOfBirths>
              <SearchResultOfacDateOfBirth>
                <DateOfBirth>String</DateOfBirth>
              </SearchResultOfacDateOfBirth>
            </DateOfBirths>
            <DateUpdated>0001-01-01T00:00:00</DateUpdated>
            <FirstName>String</FirstName>
            <LastName>String</LastName>
            <Nationalities>
              <SearchResultOfacNationality>
                <Country>String</Country>
              </SearchResultOfacNationality>
            </Nationalities>
            <PlaceOfBirths>
              <SearchResultOfacPlaceOfBirth>
                <PlaceOfBirth>String</PlaceOfBirth>
              </SearchResultOfacPlaceOfBirth>
            </PlaceOfBirths>
            <ResultResolved>false</ResultResolved>
            <ResultSimilarity>0</ResultSimilarity>
            <ResultStrength>0</ResultStrength>
            <ResultType>String</ResultType>
          </SearchResultOfac>
        </OfacResults>
      </SearchResults>
      <SearchType>String</SearchType>
    </SearchRecord>
  </Data>
</AddCompanySearchResponse>

</soap:Body>
</soap:Envelope>