| POST | /clients | Add 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>
///A reference or postcode that will be sent to the client to help them recognize the communication as genuine
///</summary>
[ApiMember(Description="A reference or postcode that will be 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; }
///<summary>
///Your reference, if any
///</summary>
[ApiMember(Description="Your reference, if any")]
public virtual string Reference { 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. Can be provided in the request body, or as a header parameter (X-Api-User)
///</summary>
[DataMember]
[ApiMember(Description="The API User ID provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-User)", 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. Can be provided in the request body, or as a header parameter (X-Api-Key)
///</summary>
[DataMember]
[ApiMember(Description="The API User Key provided by us when you signed up to use our API. Can be provided in the request body, or as a header parameter (X-Api-Key)", IsRequired=true, ParameterType="header, body")]
public virtual string ApiUserKey { get; set; }
///<summary>
///The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id).
///</summary>
[DataMember]
[ApiMember(Description="The User ID of the user making the request (e.g. a sub user). This is optional but can be used to associate API requests with a specific user, thereby allowing user permissions to be enforced. Can be provided in the body, or as a header parameter (X-User-Id).", ParameterType="header, body")]
public virtual string UserId { 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 int NumOfVideos { 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 string ExpiryDate { 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; }
}
}
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 /clients HTTP/1.1
Host: api.sanctionssearch.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<AddClient xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
<Authentication>
<ApiUserId>String</ApiUserId>
<ApiUserKey>String</ApiUserKey>
<UserId>String</UserId>
</Authentication>
<Request>
<Email>String</Email>
<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>
<MobileInternational>String</MobileInternational>
<Name>String</Name>
<PostCode>String</PostCode>
<ProofOfDocumentCategories>
<CategoryId>
<Id>0</Id>
<ProofOf>String</ProofOf>
<ProofOfDocuments>
<DocumentId>
<Id>0</Id>
<Name>String</Name>
</DocumentId>
</ProofOfDocuments>
</CategoryId>
</ProofOfDocumentCategories>
<ProofOfPreset>Undefined</ProofOfPreset>
<Reference>String</Reference>
</Request>
</AddClient>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<AddClientResponse 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>
<Client>
<DateCreated>0001-01-01T00:00:00</DateCreated>
<DrivingLicences>
<Passport>
<Address>String</Address>
<ClientFileId>0</ClientFileId>
<DateOfBirth>String</DateOfBirth>
<DrivingLicenceNumber>String</DrivingLicenceNumber>
<ExpiryDate>String</ExpiryDate>
<FaceMatchConfidence>0</FaceMatchConfidence>
<FirstName>String</FirstName>
<HasDfaSearch>false</HasDfaSearch>
<Images>
<CategoryId>
<Id>0</Id>
<Name>String</Name>
<OcrId>0</OcrId>
<Url>String</Url>
</CategoryId>
</Images>
<IsFaceMatch>false</IsFaceMatch>
<IsVerified>false</IsVerified>
<LastName>String</LastName>
<MiddleName>String</MiddleName>
</Passport>
</DrivingLicences>
<Email>String</Email>
<Face>
<Accessories>String</Accessories>
<Age>0</Age>
<Emotion>String</Emotion>
<FacialHair>String</FacialHair>
<Gender>String</Gender>
<Glasses>String</Glasses>
<HairColour>String</HairColour>
<Makeup>String</Makeup>
<Smile>0</Smile>
</Face>
<Id>0</Id>
<IsValidateMe>false</IsValidateMe>
<Location>
<Latitude>0</Latitude>
<Longitude>0</Longitude>
</Location>
<MobileInternational>String</MobileInternational>
<Name>String</Name>
<NumOfDocuments>0</NumOfDocuments>
<NumOfVideos>0</NumOfVideos>
<OtherDocuments>
<OtherDocument>
<ClientFileId>0</ClientFileId>
<CroppedImageUrl>String</CroppedImageUrl>
<Description>String</Description>
<IsVerified>false</IsVerified>
<OriginalImageUrl>String</OriginalImageUrl>
<Type>String</Type>
<TypeOther>String</TypeOther>
</OtherDocument>
</OtherDocuments>
<Passports>
<Passport>
<ClientFileId>0</ClientFileId>
<DateOfBirth>String</DateOfBirth>
<FaceMatchConfidence>0</FaceMatchConfidence>
<FirstName>String</FirstName>
<Gender>String</Gender>
<HasDfaSearch>false</HasDfaSearch>
<HasPcvSearch>false</HasPcvSearch>
<Images>
<CategoryId>
<Id>0</Id>
<Name>String</Name>
<OcrId>0</OcrId>
<Url>String</Url>
</CategoryId>
</Images>
<IsEligibleForDfa>false</IsEligibleForDfa>
<IsEligibleForPcv>false</IsEligibleForPcv>
<IsFaceMatch>false</IsFaceMatch>
<IsPassportChipVerified>false</IsPassportChipVerified>
<IsVerified>false</IsVerified>
<LastName>String</LastName>
<MiddleName>String</MiddleName>
<MrzLineOne>String</MrzLineOne>
<MrzLineTwo1>String</MrzLineTwo1>
<MrzLineTwo2>String</MrzLineTwo2>
<MrzLineTwo3>String</MrzLineTwo3>
<MrzLineTwo4>String</MrzLineTwo4>
<MrzLineTwo5>String</MrzLineTwo5>
<MrzLineTwo6>String</MrzLineTwo6>
<MrzLineTwo7>String</MrzLineTwo7>
<MrzLineTwo8>String</MrzLineTwo8>
<PassportChipData>
<DataGroupsFailed xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d7p1:int>0</d7p1:int>
</DataGroupsFailed>
<DataGroupsVerified xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d7p1:int>0</d7p1:int>
</DataGroupsVerified>
<FaceMatchConfidence>0</FaceMatchConfidence>
<IsFaceMatch>false</IsFaceMatch>
<IsIssuerVerified>false</IsIssuerVerified>
<IsMrzLine1Verified>false</IsMrzLine1Verified>
<IsMrzLine2Verified>false</IsMrzLine2Verified>
<IssuerCommonName>String</IssuerCommonName>
<IssuerCountry>String</IssuerCountry>
<IssuerOrganisationName>String</IssuerOrganisationName>
<MRZLine1>String</MRZLine1>
<MRZLine2>String</MRZLine2>
</PassportChipData>
</Passport>
</Passports>
<PostCode>String</PostCode>
<ProofOfDocumentCategories>
<CategoryId>
<Id>0</Id>
<ProofOf>String</ProofOf>
<ProofOfDocuments>
<DocumentId>
<Id>0</Id>
<Name>String</Name>
</DocumentId>
</ProofOfDocuments>
</CategoryId>
</ProofOfDocumentCategories>
<Reference>String</Reference>
<State>Undefined</State>
<Video>
<Id>0</Id>
<ImageUrl>String</ImageUrl>
<VideoTimestamps>
<VideoTimestamp>
<ImageUrl>String</ImageUrl>
<Milli>0</Milli>
<TagName>String</TagName>
</VideoTimestamp>
</VideoTimestamps>
<VideoUrl>String</VideoUrl>
</Video>
</Client>
<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>
</Data>
</AddClientResponse>