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>
///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; }
}
}
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
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"}}}}