Sanctions Search API: v2

<back to all web services

AddClient

Clients
The following routes are available for this service:
POST/clientsAdd a client
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using SanctionsSearch.Api2.ServiceModel.Operations.Clients;
using SanctionsSearch.Api2.ServiceModel.Operations.Base;
using SanctionsSearch.Api2.ServiceModel.Types;

namespace SanctionsSearch.Api2.ServiceModel.Operations.Base
{
    public partial class ArrayOfResponseError
        : List<ResponseError>
    {
    }

    [DataContract]
    public partial class BaseRequest
        : IBaseRequest
    {
        ///<summary>
        ///The authentication credentials
        ///</summary>
        [DataMember]
        [ApiMember(Description="The authentication credentials", IsRequired=true, ParameterType="header, body")]
        public virtual Authentication Authentication { get; set; }
    }

    public partial class BaseResponse
        : IBaseDataResponse, IHasResponseStatus
    {
        ///<summary>
        ///The status of the response
        ///</summary>
        [ApiMember(Description="The status of the response")]
        public virtual ResponseStatus ResponseStatus { get; set; }
    }

    [DataContract]
    public partial class ResponseError
    {
        public ResponseError()
        {
            Meta = new Dictionary<string, string>{};
        }

        [DataMember(Order=1)]
        public virtual string ErrorCode { get; set; }

        [DataMember(Order=2)]
        public virtual string FieldName { get; set; }

        [DataMember(Order=3)]
        public virtual string Message { get; set; }

        [DataMember(Order=4)]
        public virtual Dictionary<string, string> Meta { get; set; }
    }

    [DataContract]
    public partial class ResponseStatus
    {
        public ResponseStatus()
        {
            Meta = new Dictionary<string, string>{};
        }

        [DataMember(Order=1)]
        public virtual string ErrorCode { get; set; }

        [DataMember(Order=2)]
        public virtual string Message { get; set; }

        [DataMember(Order=3)]
        public virtual string StackTrace { get; set; }

        [DataMember(Order=4)]
        public virtual ArrayOfResponseError Errors { get; set; }

        [DataMember(Order=5)]
        public virtual Dictionary<string, string> Meta { get; set; }
    }

}

namespace SanctionsSearch.Api2.ServiceModel.Operations.Clients
{
    [DataContract]
    public partial class AddClient
        : BaseRequest
    {
        [DataMember]
        public virtual AddClientRequest Request { get; set; }
    }

    public partial class AddClientData
        : BaseResponse, IBaseSearchResponse
    {
        public virtual ArrayOfLinkedTo LinkedTo { get; set; }
        public virtual Client Client { get; set; }
    }

    public partial class AddClientRequest
    {
        ///<summary>
        ///The full name of the client
        ///</summary>
        [ApiMember(Description="The full name of the client", IsRequired=true)]
        public virtual string Name { get; set; }

        ///<summary>
        ///The email address of the client
        ///</summary>
        [ApiMember(Description="The email address of the client", IsRequired=true)]
        public virtual string Email { get; set; }

        ///<summary>
        ///The client's mobile phone number in international format (e.g. '+447123456789')
        ///</summary>
        [ApiMember(Description="The client's mobile phone number in international format (e.g. '+447123456789')", IsRequired=true)]
        public virtual string MobileInternational { get; set; }

        ///<summary>
        ///The postal code of the client's address. Used in emails sent to the client to help them recognize the communication as genuine
        ///</summary>
        [ApiMember(Description="The postal code of the client's address. Used in emails sent to the client to help them recognize the communication as genuine", IsRequired=true)]
        public virtual string PostCode { get; set; }

        ///<summary>
        ///Specifies the type of ValidateMe preset. Possible values are 'ValidateMe' for configuring RequiredDocuments, or 'PassportChipVerification' for setting the Passport as Proof of Name
        ///</summary>
        [ApiMember(Description="Specifies the type of ValidateMe preset. Possible values are 'ValidateMe' for configuring RequiredDocuments, or 'PassportChipVerification' for setting the Passport as Proof of Name", IsRequired=true)]
        public virtual CreateMobileClientType ProofOfPreset { get; set; }

        ///<summary>
        ///The categories of proof and selected documents that the client can use to provide proof. Required if ClientType is set to 'ValidateMe'
        ///</summary>
        [ApiMember(Description="The categories of proof and selected documents that the client can use to provide proof. Required if ClientType is set to 'ValidateMe'")]
        public virtual ArrayOfProofOfDocumentCategories ProofOfDocumentCategories { get; set; }

        ///<summary>
        ///If the client should be linked to other searches, specify the them here
        ///</summary>
        [ApiMember(Description="If the client should be linked to other searches, specify the them here")]
        public virtual ArrayOfLinkedTo LinkedTo { get; set; }
    }

    [DataContract]
    public partial class AddClientResponse
    {
        [DataMember]
        public virtual AddClientData Data { get; set; }
    }

}

namespace SanctionsSearch.Api2.ServiceModel.Types
{
    public partial class ArrayOfDrivingLicences
        : List<DrivingLicence>
    {
    }

    public partial class ArrayOfImages
        : List<Image>
    {
    }

    public partial class ArrayOfLinkedTo
        : List<LinkedTo>
    {
    }

    public partial class ArrayOfOtherDocuments
        : List<OtherDocument>
    {
    }

    public partial class ArrayOfPassports
        : List<Passport>
    {
    }

    public partial class ArrayOfProofOfDocumentCategories
        : List<ProofOfDocumentCategory>
    {
    }

    public partial class ArrayOfProofOfDocuments
        : List<ProofOfDocument>
    {
    }

    [DataContract]
    public partial class Authentication
    {
        ///<summary>
        ///The API User ID provided by us when you signed up to use our API
        ///</summary>
        [DataMember]
        [ApiMember(Description="The API User ID provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")]
        public virtual string ApiUserId { get; set; }

        ///<summary>
        ///The API User Key provided by us when you signed up to use our API
        ///</summary>
        [DataMember]
        [ApiMember(Description="The API User Key provided by us when you signed up to use our API", IsRequired=true, ParameterType="header, body")]
        public virtual string ApiUserKey { get; set; }
    }

    public partial class Client
    {
        public virtual int Id { get; set; }
        public virtual DateTime DateCreated { get; set; }
        public virtual string Name { get; set; }
        public virtual string Email { get; set; }
        public virtual string Reference { get; set; }
        public virtual ClientState State { get; set; }
        public virtual string MobileInternational { get; set; }
        public virtual string PostCode { get; set; }
        public virtual bool IsValidateMe { get; set; }
        public virtual Face Face { get; set; }
        public virtual Video Video { get; set; }
        public virtual Location Location { get; set; }
        public virtual int NumOfDocuments { get; set; }
        public virtual ArrayOfPassports Passports { get; set; }
        public virtual ArrayOfDrivingLicences DrivingLicences { get; set; }
        public virtual ArrayOfOtherDocuments OtherDocuments { get; set; }
        public virtual ArrayOfProofOfDocumentCategories ProofOfDocumentCategories { get; set; }
    }

    [DataContract(Name="ClientState", Namespace="http://schemas.servicestack.net/types")]
    public enum ClientState
    {
        Undefined,
        PendingCompletion,
        PendingOcr,
        PendingVerification,
        Verified,
    }

    [DataContract(Name="CreateMobileClientType", Namespace="http://schemas.servicestack.net/types")]
    public enum CreateMobileClientType
    {
        Undefined,
        ValidateMe,
        PassportChipVerification,
    }

    public partial class DrivingLicence
    {
        public virtual int ClientFileId { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string MiddleName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string DateOfBirth { get; set; }
        public virtual string Address { get; set; }
        public virtual string DrivingLicenceNumber { get; set; }
        public virtual ArrayOfImages Images { get; set; }
        public virtual bool IsVerified { get; set; }
        public virtual bool? IsFaceMatch { get; set; }
        public virtual decimal? FaceMatchConfidence { get; set; }
        public virtual bool HasDfaSearch { get; set; }
    }

    public partial class Face
    {
        public virtual double? Age { get; set; }
        public virtual string Gender { get; set; }
        public virtual string Emotion { get; set; }
        public virtual double? Smile { get; set; }
        public virtual string HairColour { get; set; }
        public virtual string FacialHair { get; set; }
        public virtual string Makeup { get; set; }
        public virtual string Glasses { get; set; }
        public virtual string Accessories { get; set; }
    }

    public partial class Image
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual int? OcrId { get; set; }
        public virtual string Url { get; set; }
    }

    public partial class LinkedTo
    {
        public virtual int? ClientId { get; set; }
        public virtual long? Id { get; set; }
        public virtual string Type { get; set; }
        public virtual string Subtype { get; set; }
        public virtual string Status { get; set; }
        public virtual string Description { get; set; }
        public virtual bool? IsArchived { get; set; }
        public virtual string Name { get; set; }
        public virtual DateTime? Date { get; set; }
    }

    public partial class Location
    {
        public virtual double Latitude { get; set; }
        public virtual double Longitude { get; set; }
    }

    public partial class OtherDocument
    {
        public virtual int ClientFileId { get; set; }
        public virtual string Type { get; set; }
        public virtual string TypeOther { get; set; }
        public virtual string Description { get; set; }
        public virtual string OriginalImageUrl { get; set; }
        public virtual string CroppedImageUrl { get; set; }
        public virtual bool IsVerified { get; set; }
    }

    public partial class Passport
    {
        public virtual int ClientFileId { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string MiddleName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string DateOfBirth { get; set; }
        public virtual string Gender { get; set; }
        public virtual string MrzLineOne { get; set; }
        public virtual string MrzLineTwo1 { get; set; }
        public virtual string MrzLineTwo2 { get; set; }
        public virtual string MrzLineTwo3 { get; set; }
        public virtual string MrzLineTwo4 { get; set; }
        public virtual string MrzLineTwo5 { get; set; }
        public virtual string MrzLineTwo6 { get; set; }
        public virtual string MrzLineTwo7 { get; set; }
        public virtual string MrzLineTwo8 { get; set; }
        public virtual ArrayOfImages Images { get; set; }
        public virtual bool IsVerified { get; set; }
        public virtual bool? IsFaceMatch { get; set; }
        public virtual decimal? FaceMatchConfidence { get; set; }
        public virtual bool HasPcvSearch { get; set; }
        public virtual bool HasDfaSearch { get; set; }
        public virtual bool? IsPassportChipVerified { get; set; }
        public virtual PassportChipData PassportChipData { get; set; }
        public virtual bool IsEligibleForPcv { get; set; }
        public virtual bool IsEligibleForDfa { get; set; }
    }

    public partial class PassportChipData
    {
        public PassportChipData()
        {
            DataGroupsVerified = new int[]{};
            DataGroupsFailed = new int[]{};
        }

        public virtual bool IsIssuerVerified { get; set; }
        public virtual string IssuerCommonName { get; set; }
        public virtual string IssuerOrganisationName { get; set; }
        public virtual string IssuerCountry { get; set; }
        public virtual string MRZLine1 { get; set; }
        public virtual string MRZLine2 { get; set; }
        public virtual bool IsMrzLine1Verified { get; set; }
        public virtual bool IsMrzLine2Verified { get; set; }
        public virtual int[] DataGroupsVerified { get; set; }
        public virtual int[] DataGroupsFailed { get; set; }
        public virtual bool IsFaceMatch { get; set; }
        public virtual decimal? FaceMatchConfidence { get; set; }
    }

    public partial class ProofOfDocument
    {
        ///<summary>
        ///The ID of the ProofOfDocument
        ///</summary>
        [ApiMember(Description="The ID of the ProofOfDocument", IsRequired=true)]
        public virtual int Id { get; set; }

        ///<summary>
        ///The name of the ProofOfDocument
        ///</summary>
        [ApiMember(Description="The name of the ProofOfDocument", IsRequired=true)]
        public virtual string Name { get; set; }
    }

    public partial class ProofOfDocumentCategory
    {
        ///<summary>
        ///The ID of the ProofOfDocumentCategory
        ///</summary>
        [ApiMember(Description="The ID of the ProofOfDocumentCategory", IsRequired=true)]
        public virtual int Id { get; set; }

        ///<summary>
        ///The category or subject that requires proof (e.g., 'Name', 'Address', 'Right to work')
        ///</summary>
        [ApiMember(Description="The category or subject that requires proof (e.g., 'Name', 'Address', 'Right to work')", IsRequired=true)]
        public virtual string ProofOf { get; set; }

        ///<summary>
        ///The documents that can be used to provide proof for the specified category.
        ///</summary>
        [ApiMember(Description="The documents that can be used to provide proof for the specified category.", IsRequired=true)]
        public virtual ArrayOfProofOfDocuments ProofOfDocuments { get; set; }
    }

    public partial class Video
    {
        public Video()
        {
            VideoTimestamps = new List<VideoTimestamp>{};
        }

        public virtual int Id { get; set; }
        public virtual string VideoUrl { get; set; }
        public virtual string ImageUrl { get; set; }
        public virtual List<VideoTimestamp> VideoTimestamps { get; set; }
    }

    public partial class VideoTimestamp
    {
        public virtual string TagName { get; set; }
        public virtual int? Milli { get; set; }
        public virtual string ImageUrl { get; set; }
    }

}

C# AddClient DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /clients HTTP/1.1 
Host: api.sanctionssearch.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"request":{"name":"String","email":"String","mobileInternational":"String","postCode":"String","proofOfPreset":"Undefined","proofOfDocumentCategories":[{"id":0,"proofOf":"String","proofOfDocuments":[{"id":0,"name":"String"}]}],"linkedTo":[{"clientId":0,"id":0,"type":"String","subtype":"String","status":"String","description":"String","isArchived":false,"name":"String","date":"\/Date(-62135596800000-0000)\/"}]},"authentication":{"apiUserId":"String","apiUserKey":"String"}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"data":{"linkedTo":[{"clientId":0,"id":0,"type":"String","subtype":"String","status":"String","description":"String","isArchived":false,"name":"String","date":"\/Date(-62135596800000-0000)\/"}],"client":{"id":0,"dateCreated":"\/Date(-62135596800000-0000)\/","name":"String","email":"String","reference":"String","state":"Undefined","mobileInternational":"String","postCode":"String","isValidateMe":false,"face":{"age":0,"gender":"String","emotion":"String","smile":0,"hairColour":"String","facialHair":"String","makeup":"String","glasses":"String","accessories":"String"},"video":{"id":0,"videoUrl":"String","imageUrl":"String","videoTimestamps":[{"tagName":"String","milli":0,"imageUrl":"String"}]},"location":{"latitude":0,"longitude":0},"numOfDocuments":0,"passports":[{"clientFileId":0,"firstName":"String","middleName":"String","lastName":"String","dateOfBirth":"String","gender":"String","mrzLineOne":"String","mrzLineTwo1":"String","mrzLineTwo2":"String","mrzLineTwo3":"String","mrzLineTwo4":"String","mrzLineTwo5":"String","mrzLineTwo6":"String","mrzLineTwo7":"String","mrzLineTwo8":"String","images":[{"id":0,"name":"String","ocrId":0,"url":"String"}],"isVerified":false,"isFaceMatch":false,"faceMatchConfidence":0,"hasPcvSearch":false,"hasDfaSearch":false,"isPassportChipVerified":false,"passportChipData":{"isIssuerVerified":false,"issuerCommonName":"String","issuerOrganisationName":"String","issuerCountry":"String","mrzLine1":"String","mrzLine2":"String","isMrzLine1Verified":false,"isMrzLine2Verified":false,"dataGroupsVerified":[0],"dataGroupsFailed":[0],"isFaceMatch":false,"faceMatchConfidence":0},"isEligibleForPcv":false,"isEligibleForDfa":false}],"drivingLicences":[{"clientFileId":0,"firstName":"String","middleName":"String","lastName":"String","dateOfBirth":"String","address":"String","drivingLicenceNumber":"String","images":[{"id":0,"name":"String","ocrId":0,"url":"String"}],"isVerified":false,"isFaceMatch":false,"faceMatchConfidence":0,"hasDfaSearch":false}],"otherDocuments":[{"clientFileId":0,"type":"String","typeOther":"String","description":"String","originalImageUrl":"String","croppedImageUrl":"String","isVerified":false}],"proofOfDocumentCategories":[{"id":0,"proofOf":"String","proofOfDocuments":[{"id":0,"name":"String"}]}]},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}}