NAV
REST SOAP

Getting Started

Some key concepts you should know…
The W2 API is built around a few simple concepts which, when brought together, provide powerful and flexible solutions.

Services


W2 has a wide portfolio of products that we name Services, ranging from checking against datasources such as global Sanctions list, Identity checking using credit reference agencies, document verification and many more.

A full list of all services can be found here.

Services are accessed through the API via Bundles.

Bundles


A bundle is a collection of one or more services. Services can be ordered in a bundle in any way you choose.

When you call the W2 API you specify a bundle name. By collecting services in a Bundle, only one API call is then required to execute all services in that Bundle.

Bundles are configured by W2. This will be completed as part of the on-boarding process.

Typical bundle example

As an example, if you wanted to confirm an individual’s identity and check that they are not on any Sanctions lists, the bundle might look like this:

Bundle Name Services Service Description
KYC_ID_CHECK_EXAMPLE  IdCheckUKAlphaFull UK Identity Check
  SISCheckPlus Standard International Sanctions
  PEPDesk Politically Exposed Persons

This bundle example contains three services. The first one, IdCheckUkAlphaFull, checks various sources (Electoral Roll, credit lenders, etc.) to confirm an individual’s identity. The next two services check the given name against a Sanctions list and a Politically Exposed Persons list.

To execute this bundle you would call the KYCCheck method on the API with the bundle name (KYC_ID_CHECK_EXAMPLE) and the required identity information (name, date of birth, address, etc.). The API will run through each service in sequence and return the results in one response. In the above example if the identity was good but the individual turns up in a PEP list you might get something like this:

Bundle Name Services Service Description Service Result
KYC_ID_Check_Sanctions IdCheckUKAlphaFull UK Identity Check PASS
  SISCheckPlus Standard International Sanctions NO RESULTS
  PEPDesk Politically exposed persons 1 RESULT

The Response will also contain more detailed information about each result.

Bundle Workflows

Also known as ‘Interpret and Halt’ or ‘Staged Search Manager’. As part of setting up a bundle W2 can configure settings that can ‘Interpret’ service level and bundle level results as well as ’Halting’ the execution of a Bundle should a certain result be returned from an individual Service.

Bundle Result Interpretation

W2 can configure how the API will interpret the overall result for the whole bundle. For example, in the example bundle above, if the Alpha service returned a “Fail” result then the bundle’s overall result would also be “Fail”. The possible results for Bundle results are Pass, Fail or Inconclusive. 

Bundle Halting

We can also configure the bundle to Halt after each service based on the result of that service. So for example you might decide that if Alpha returns a Fail (i.e. this identity is not valid) then there is no point checking the sanctions lists, so the bundle will stop there and not call the rest of the services in the bundle.

So in our example above let us assume that we have configured the following rules:

  1. Fail if Alpha returns Fail or Inconclusive,
  2. Return Inconclusive if the Sanctions or Political Persons lists have any matches

If we get the same results based on these results the service would return inconclusive

Bundle Name Intepret Result Services Service Description Service Result
KYC_ID_Check_Sanctions INCONCLUSIVE IdCheckUKAlphaFull UK Identity Check PASS
    SISCheckPlus Standard International Sanctions NO RESULTS
    PEPDesk Politically Exposed Persons 1 RESULT

Sandbox Cases

W2 provides an API Sandbox mode that allows developers to test bundles without fear of leaving a footprint or incur service charges.

The Sandbox consist of set of pre-defined test records for a range of test scenarios. You can find the Sandbox test data for each Service on their respective pages.

Sandbox is available in all environments.

To use our Sandbox add the “Sandbox” Query Option to your request with the value set to “true”.

{
    "Bundle": "...",
    "Data": {
        "Forename": "..."
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

Two Plus Two Check


Our identity check services attempt to do a Two Plus Two check.

All this means is that we will attempt to match the name and address from one data source and the name and date of birth from another independent data source.

For example, if we can find the name and address on the Electoral Roll and the name and date of birth on a credit lenders record then that would be a Two Plus Two check. If we only found the information on the Electoral Roll then that would not be a Two Plus Two check as this only uses one data source.

REST

This section describes how to use the W2 RESTful API

Location

Live: https://api.w2globaldata.com

UAT: https://api-uat.w2globaldata.com

Authentication

The W2 REST API uses basic authentication. You will need to add a basic authorization header with your api key base 64 encoded to all requests.

Header Key Header Pattern
Authorization Basic Base64EncodedW2ApiKey

API Versioning

To call a specific version of the API append the API version query option to the end of the URL like this: https://api.w2globaldata.com/kyc-check?api-version=1.1

We strongly recommend that you provide a version number with all of your requests. A request without a version number will default to the latest version of the API so you might experience changes you are not prepared for.

HTTP Status Codes

The W2 RESTful API closely adheres to the standard use of HTTP status codes. You can expect to find one of the following status codes in your response data.

Http Response Http Statuscode Description
Retrieved (OK) 200 A 200 response indicates that the request has succeeded and the resource has been retrieved.
Created 201 An 201 response indicates that the request has succeeded and a resource was created.
OK No Content 204 A 204 response indicates that the request has succeeded and there was nothing to return.
Bad Request 400 A Bad request response indicates that due to invalid properties provided, the server was unable to process the request.
Unauthorised 401 An unauthorised response suggests that missing valid authentication and therefore the request could not be processed.
Forbidden 403 A forbidden error suggests that the server understands the request however authorization is denied. Please contact our support team in order to gain access.
Not Found 404 A not found error suggests the resource does not exist.
Internal Server Error 500 An Internal server error suggests that there is a problem with the server. Please contact our support team.

KYC Check


This section describes how the KYC check API endpoint functions

How to call the endpoint

To call the endpoint you will need to perform a HTTP POST request to the URL:

API Version Url
1.0 https://api.w2globaldata.com/kyccheck?api-version=1.0 (Deprecated)
1.1 https://api.w2globaldata.com/kyc-check?api-version=1.1 (Deprecated)
1.2 https://api.w2globaldata.com/kyc-check?api-version=1.2
1.3 https://api.w2globaldata.com/kyc-check?api-version=1.3
1.4 https://api.w2globaldata.com/kyc-check?api-version=1.4
1.5 https://api.w2globaldata.com/kyc-check?api-version=1.5 Latest

Request & Response

Full Request example:

{
	"Bundle": "Bundle123",
	"ClientReference": "MyReference123",
	"Data": {
		"AgeVerificationPassIf": 0,
		"AgeVerificationThreshold": 0,
		"City": "Newport",
		"Country": "Wales",
		"County": "Gwent",
		"DateOfBirthMatchThreshold": 80,
		"DayOfBirth": 10,
		"DrivingLicenceNumber": "123",
		"Email": "[email protected]",
		"Flat": "12",
		"Forename": "Tyrion",
		"Gender": "Male",
		"HouseName": "Casterly Rock",
		"HouseNumber": "10",
		"IP": "192.168.0.1",
		"IdCardNumber": "123",
		"MRZ": ">>123>>",
		"Maiden": "???",
		"MiddleNames": "James",
		"MobileNumber": "001",
		"MonthOfBirth": 10,
		"NameQuery": "Tyrion Lannister",
		"NameQueryMatchThreshold": 80,
		"NationalId": "123",
		"PassportNumber": "123",
		"PersonalId": "123",
		"PhoneNumber": "000123",
		"PlaceOfBirth": "Lannisport",
		"Postcode": "LANN1",
		"ProfileId": "123-123-123-123",
		"Region": "Westerlands",
		"Street": "Lannisport Street",
		"Surname": "Lannister",
		"TaxCode": "123",
		"Title": "Lord",
		"TravelVisaNumber": "123",
		"YearOfBirth": 273
	},
	"Files": [{
		"Id": "123",
		"Reference": "123-ref-321",
		"Group": "group1",
		"Index": 0,
		"Service": "W2_DATA_IDVCHECK_013"
		}
	],
	"Options": {
		"Sandbox": "False",
		"Key": "Value"
	}
}
                Example provided in REST tab

KYC Check Response Example (SIS Plus service call):



{
  "clientReference": "123-456-789",
  "results": {
    "sisPlusCheckResult": {
      "matchResults": [
        {
          "matchType": "Person",
          "name": "John Dave Smith",
          "nameMatchScore": 85,
          "profileId": "SANC-d28cdbbd-5c0e-1a1b-4c1c-88a6b5790e82"
        },
        {
          "matchType": "Person",
          "name": "John Dave Smith",
          "nameMatchScore": 85,
          "profileId": "SANC-081d73e2-b1cd-baeb-176b-cf1607b75381"
        },
        {
          "matchType": "Person",
          "name": "John Dave Smith",
          "nameMatchScore": 85,
          "profileId": "SANC-dac80327-376e-6784-e793-3d39904726f5"
        },
        {
          "matchType": "Person",
          "name": "Dave John Smith",
          "nameMatchScore": 80,
          "profileId": "SANC-9763b970-f325-77bc-5c7e-46d7c18b3f06"
        }
      ]
    }
  },
  "transaction": {
    "interpretResult": "NotApplicable",
    "serviceCallReference": "8bb44731-9103-47b2-979e-f27c69f9d68b",
    "serviceTransactions": [
      {
        "haltTriggered": false,
        "service": "SISPlusCheck",
        "serviceInterpretResult": "MultipleResults",
        "serviceTransactionResult": "Success",
        "serviceTransactionResultMessage": "This call was generated using sandbox mode",
        "validationResult": "Pass"
      }
    ]
  }
}
                Example provided in REST tab

Request Properties

Use this table to find the meaning of each of the fields in the request.

Property Description
Bundle The Bundle section states which bundle you are calling and is mandatory for every service call. A bundle is a collection of services which will be agreed with W2 Support.
ClientReference A reference identifying this call for your reference i.e. ‘My Company Testing’.
Data The Data object contains all the information about the individual or organisation you are querying. Which fields you need to include will be different for each service and many of them are only used for specific services. See the service page for each service you are calling.
Files This element is provided to supply the details of documents that are required for a service in the bundle to complete its work. For example, when using the IDDocumentCheck service, an image of the document must be associated with the call. This association is performed by adding the Unique ID of the document that was returned when it was uploaded to an item in this array.
Options These are optional parameters for some extra fields not covered in the Data object. The whole section is optional. The most common use is to set Sandbox mode, where you can call the service and get standard responses. For further information, each service has examples of how to structure a call to the sandbox.

Client Provided Data

This section simply reflects back information that was submitted in the API call.

Property Description
ClientReference This reflects back the client reference that was supplied in the request
ClientSubaccount An optional reference to identify which of your client accounts this call was made for.
ClientUser An optional reference to identify which individual user made this call. For future compatibility with W2 products we suggest this value should be the user’s email address.
RefersToServiceCallReference Links this call to a previous call by specifying the previous ServiceCallReference.

Transaction Information

This section contains the interpret result for the whole bundle, the service call reference and a section of meta data for each service.

Property Description
InterpretResult The validation result of the Interpret function.
1. Pass - The information supplied to the bundle passed validation.
2. Fail- The information supplied to the bundle failed validation.
3. Inconclusive- It was not possible to generate a clear validation result from the information supplied. It may be necessary to refer this query for further investigation.
4. NoInterpretPerformed - No interpret was performed in this case. Check the other information returned by the services to determine why.
5. NotApplicable - Interpret is not enabled for this bundle.
ServiceTransactions A collection of ServiceTransactionInformation objects. See below
ServiceCallReference A unique reference for this service call.

Service Transaction Information

Every service that is called will return one of these:

Property Description
Service The service that was invoked.
ServiceInterpretResult The validation result of the service interpret function.
1. Pass - The query data resulted in a pass.
2. Fail - The query data resulted in a failure.
3. Inconclusive - The query data resulted in an inconclusive outcome.
4. NoResults - The query data returned no results.
5. OneResult - The query data returned a single result.
6. MultipleResults - The query data returned multiple results.
7. NotApplicable - Interpret is not applicable to the call or wasn’t enabled.
8. NotPerformed - An error prevented this result from being categorised.
ServiceTransactionResult The validation result for service transaction.
1. Success - The service executed successfully.
2. SuccessNoResults - The service executed successfully but no results were generated.
3. SuccessIncompleteResults - The service executed successfully but too many results were generated to return them all, so the results have been truncated.
4. MultipleChoices - The service could not continue as there are multiple choices available and one of them must be selected or the query must be submitted with more concise information in order to complete execution.
5. ClientErrorInsufficientInformation - There was insufficient information for the service to execute. Check that all of the required fields for the service were supplied.
6. NotExecutedDueToPreviousHalt - The service was not executed because a previous service in the bundle triggered a halt.
7. ServerErrorGeneralError - A general error occurred on the server trying to run the service.
ServiceTransactionResultMessage The message associated with the ServiceTransactionResult if applicable. The ServiceTransactionResultMessage is usually null, but in some cases may provide some insight into the ServiceTransactionResult. For example, if a service returns SuccessIncompleteResults the ServiceTransactionResultMessage may contain an explanation of why, such as there being a limit of 100 results per query. There is no standard across services for this field so it should not be relied upon, instead it is better to use it for debugging or additional information and rely on the ServiceTransactionResult which has consistent behaviour.
ValidationResult The validation result…
1. Pass - The information supplied to the service passed validation
2. Fail - The information supplied to the service failed validation.
3. Inconclusive - It was not possible to generate a clear validation result from the information supplied. It may be necessary to refer this query for further investigation.
4. NoValidationPerformed - No validation was performed in this case. Check the other information returned by the service to determine why.
5. NotApplicable - The service is not a service that performs validation and therefore validation is not applicable.
ServiceValidationDetails This field provides information about the pre-execution validation step and should be read in conjunction with the ValidationResult field.
HaltTriggered True if the service halted after this service

Document Verification


This section describes how the Document Verification API endpoint functions

This section is for consuming the service W2-DATA-DOCUMENT_CHECK-039.
If using W2 Data IDV Check 013 please refer to Upload Document

Endpoints

Endpoint Description
Crop This endpoint is used to remove the background from an image of a document. This is helpful when you wish to display the document back to your customer as part their journey.
Verify The Verify endpoint performs the document verification.

Important Definitions

Term Definition
Document Type When using W2’s document verification api’s you will be asked to supply the Document Type of the document you are verifying. This refers to the size standards for identification documents specified by ISO. You can read more about the standard here. W2 currently Supports ID1 or ID3 documents

Crop

This section describes how the Crop API endpoint functions.
The Crop endpoint is used to perform document verification.

How to call the endpoint
To call the endpoint you will need to perform a HTTP POST request to the URL:

Calling document verification crop endpoint using C#

    using System;
    using System.IO;
    using System.Net.Http;
    using System.Threading.Tasks;
    using Newtonsoft.Json;

    public class Program
    {
        public class CropResult
        {
            public string Image { get; set; }
        }

        static async Task Main(string[] args)
        {
            var client = new HttpClient();

            var content = new MultipartFormDataContent();

            content.Add(new ByteArrayContent(File.ReadAllBytes("/ID1-Page1.png")), "Image", "image.png");

            content.Add(new StringContent("Id1"), "DocumentType");

            content.Add(new StringContent("1"), "Page");

            var response = await client.SendAsync(new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                Headers = { { "Authorization", "Basic YourApiKey" } },
                RequestUri = new Uri("https://api.w2globaldata.com/document-verification/crop?api=version=1.1"),
                Content = content
            });

            var cropResult = JsonConvert.DeserializeObject<CropResult>(
                await response.Content.ReadAsStringAsync());

            File.WriteAllBytes("id1-cropped.png", Convert.FromBase64String(cropResult.Image));

            Console.WriteLine("Cropped image saved");

            Console.ReadLine();
        }
    }
Api Version Url
1.1 and greater https://api.w2globaldata.com/document-verification/crop

Content Type
The crop endpoint expects the body of requests to be in the form-data format. Responses will be in application/json format

Crop Request Structure

Property Description
Page (int) Represents the page of the document you are cropping.
- Required
- Must be between 1 and 3
- 1 for the front page of the document
- 2 for the back page of the document
- 3 for additional page of the document
DocumentType (string) A string representing the type of the document you are cropping.
- Required
- Must be either ‘ID1’ or ‘ID3’
Image (file) Image data representing the image you wish to crop
- Required
- File must be either JPEG, PNG or BMP
ClientReference (string) A reference identifying this call for your reference.
- Optional

Crop Response Structure

Example of a full document verification crop response

{
    "image": "{Base 64 data removed for documentation}",
    "metadata": {
        "glare": 0,
        "sharpness": 62
    }
}
                Example provided in REST tab
Property Name Description
Image(string) Base 64 string representing the cropped document image.
Meta Data (object) Represents extended data obtained from cropping the image. The values provided are not guaranteed to exist on each request.

Verify

This section describes how the Verify API endpoint functions.
The Verify endpoint is used to perform document verification.

How to call the endpoint
To call the endpoint you will need to perform a HTTP POST request to the URL:

Example of how to call the document verification verify endpoint using C#

    using System;
    using System.IO;
    using System.Net.Http;
    using System.Threading.Tasks;
    using Newtonsoft.Json;

    public class VerifyResult
    {
        public string Result { get; set; }

        // OTHER PROPERTIES LEFT OUT FOR DEMO
    }

    public class Program
    {
        static async Task Main(string[] args)
        {
            var client = new HttpClient();

            var content = new MultipartFormDataContent();

            content.Add(new ByteArrayContent(File.ReadAllBytes("/Id1Image-front.png")), "pages", "id1-front.png");

            content.Add(new ByteArrayContent(File.ReadAllBytes("/Id1Image-back.png")), "pages", "id1-back.png");

            content.Add(new StringContent("Id1"), "DocumentType");

            content.Add(new StringContent("123"), "ClientReference");

            var response = await client.SendAsync(new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                Headers = { { "Authorization", "Basic YourApiKey" } },
                RequestUri = new Uri("https://api.w2globaldata.com/document-verification/verify?api-version=1.1"),
                Content = content
            });

            var verificationResult = JsonConvert.DeserializeObject<VerifyResult>(
                await response.Content.ReadAsStringAsync());

            Console.WriteLine($"Verification result: {verificationResult.Result}");

            Console.ReadLine();
        }
    }
Api Version URL
1.1 and greater https://api.w2globaldata.com/document-verification/verify

Content Type
The verify endpoint expects the body of requests to be in the form-data format. Responses will be in application/json format.

Verify Request Structure

Property Description
Pages (File) An array of image data files that represent the images of the document.
- At least one page required
- File must be either JPEG, PNG or BMP
DocumentType (string) A string representing the type of the document you are cropping.
- Required
- Must be either ‘ID1’ or ‘ID3’
ClientReference (string) A reference identifying this call for your reference.
- Optional

Example of a full document verification response

{
    "alerts": [
        {
            "name": "Document Expired",
            "description": "Checked if the document is expired.",
            "mitigation": "The document has expired",
            "result": "Refer"
        },
        {
            "name": "Visible Color Response",
            "description": "Verified the color response of an element on the visible image.",
            "mitigation": "The color response is incorrect",
            "result": "Failed"
        },
        {
            "name": "Visible Pattern",
            "description": "Verified the presence of a pattern on the visible image.",
            "mitigation": "A visible pattern was not found",
            "result": "Failed"
        },
        {
            "name": "Document Number Crosscheck",
            "description": "Compare the machine-readable document number field to the human-readable document number field.",
            "mitigation": "The document numbers do not match",
            "result": "Refer"
        },
        {
            "name": "Birth Date Check Digit",
            "description": "Verified that the birth date check digit is correct.",
            "mitigation": "The birth date check digit is correct",
            "result": "Refer"
        },
        {
            "name": "Birth Date Crosscheck",
            "description": "Compare the machine-readable birth date field to the human-readable birth date field.",
            "mitigation": "The birth dates match",
            "result": "Refer"
        },
        {
            "name": "Birth Date Valid",
            "description": "Verified that the birth date is valid.",
            "mitigation": "The birth date is valid",
            "result": "Refer"
        },
        {
            "name": "Composite Check Digit",
            "description": "Verified that the composite check digit is correct.",
            "mitigation": "The composite check digit is correct",
            "result": "Refer"
        },
        {
            "name": "Document Classification",
            "description": "Verified that the type of document is supported and is able to be fully authenticated.",
            "mitigation": "The document type is supported",
            "result": "Refer"
        },
        {
            "name": "Document Crosscheck Aggregation",
            "description": "Compared the machine-readable fields to the human-readable fields.",
            "mitigation": "There are not a large number of differences between electronic and human-readable data sources",
            "result": "Refer"
        },
        {
            "name": "Document Number Check Digit",
            "description": "Verified that the document number check digit is correct.",
            "mitigation": "The document number check digit is correct",
            "result": "Refer"
        },
        {
            "name": "Expiration Date Check Digit",
            "description": "Verified that the expiration date check digit is correct.",
            "mitigation": "The expiration date check digit is correct",
            "result": "Refer"
        },
        {
            "name": "Expiration Date Crosscheck",
            "description": "Compare the machine-readable expiration date field to the human-readable expiration date field.",
            "mitigation": "The expiration dates match",
            "result": "Refer"
        },
        {
            "name": "Expiration Date Valid",
            "description": "Verified that the expiration date is valid.",
            "mitigation": "The expiration date is valid",
            "result": "Refer"
        },
        {
            "name": "Full Name Crosscheck",
            "description": "Compare the machine-readable full name field to the human-readable full name field.",
            "mitigation": "The full names match",
            "result": "Refer"
        },
        {
            "name": "Issue Date Valid",
            "description": "Verified that the issue date is valid.",
            "mitigation": "The issue date is valid",
            "result": "Refer"
        },
        {
            "name": "Issuing State Valid",
            "description": "Verified that the issuing state is valid.",
            "mitigation": "The issuing state is valid",
            "result": "Refer"
        },
        {
            "name": "Sex Crosscheck",
            "description": "Compare the machine-readable sex field to the human-readable sex field.",
            "mitigation": "The sexes match",
            "result": "Refer"
        },
        {
            "name": "Visible Color Response",
            "description": "Verified the color response of an element on the visible image.",
            "mitigation": "The color response is correct",
            "result": "Refer"
        },
        {
            "name": "Visible Pattern",
            "description": "Verified the presence of a pattern on the visible image.",
            "mitigation": "A visible pattern was found",
            "result": "Refer"
        }
    ],
    "checkedRegions": [
        {
            "name": "Back Reg",
            "height": 55,
            "width": 69,
            "xAxis": 180,
            "yAxis": 124
        },
        {
            "name": "Background",
            "height": 52,
            "width": 359,
            "xAxis": 325,
            "yAxis": 138
        },
        {
            "name": "Background Blue Color",
            "height": 52,
            "width": 359,
            "xAxis": 325,
            "yAxis": 138
        },
        {
            "name": "Background EU",
            "height": 56,
            "width": 65,
            "xAxis": 471,
            "yAxis": 136
        },
        {
            "name": "Background Red Color",
            "height": 52,
            "width": 359,
            "xAxis": 325,
            "yAxis": 138
        },
        {
            "name": "Birth Date",
            "height": 37,
            "width": 153,
            "xAxis": 203,
            "yAxis": 69
        },
        {
            "name": "Birth Place",
            "height": 35,
            "width": 353,
            "xAxis": 203,
            "yAxis": 97
        },
        {
            "name": "Document Number",
            "height": 46,
            "width": 177,
            "xAxis": 544,
            "yAxis": 2
        },
        {
            "name": "Expiration Date",
            "height": 31,
            "width": 166,
            "xAxis": 243,
            "yAxis": 150
        },
        {
            "name": "Fixed Reg",
            "height": 65,
            "width": 83,
            "xAxis": 232,
            "yAxis": 48
        },
        {
            "name": "Full Name",
            "height": 51,
            "width": 472,
            "xAxis": 244,
            "yAxis": 81
        },
        {
            "name": "Issuing Information",
            "height": 33,
            "width": 168,
            "xAxis": 244,
            "yAxis": 194
        },
        {
            "name": "Locator",
            "height": 164,
            "width": 146,
            "xAxis": 589,
            "yAxis": 107
        },
        {
            "name": "MRZ Locate",
            "height": 189,
            "width": 155,
            "xAxis": 1,
            "yAxis": 281
        },
        {
            "name": "MRZ1 (Visible)",
            "height": 44,
            "width": 699,
            "xAxis": 24,
            "yAxis": 311
        },
        {
            "name": "MRZ2 (Visible)",
            "height": 46,
            "width": 699,
            "xAxis": 24,
            "yAxis": 348
        },
        {
            "name": "MRZ3 (Visible)",
            "height": 51,
            "width": 699,
            "xAxis": 24,
            "yAxis": 388
        },
        {
            "name": "MRZ3 Check",
            "height": 70,
            "width": 86,
            "xAxis": 31,
            "yAxis": 354
        },
        {
            "name": "Photo",
            "height": 261,
            "width": 211,
            "xAxis": 26,
            "yAxis": 165
        },
        {
            "name": "Remarks Photo Side",
            "height": 97,
            "width": 289,
            "xAxis": 248,
            "yAxis": 304
        },
        {
            "name": "Seal",
            "height": 65,
            "width": 120,
            "xAxis": 532,
            "yAxis": 247
        },
        {
            "name": "Sex",
            "height": 36,
            "width": 58,
            "xAxis": 204,
            "yAxis": 140
        },
        {
            "name": "Signature",
            "height": 81,
            "width": 226,
            "xAxis": 499,
            "yAxis": 307
        },
        {
            "name": "Signature Label Black",
            "height": 39,
            "width": 154,
            "xAxis": 555,
            "yAxis": 387
        },
        {
            "name": "Type Header",
            "height": 60,
            "width": 323,
            "xAxis": 220,
            "yAxis": 0
        },
        {
            "name": "Type of Permit",
            "height": 51,
            "width": 295,
            "xAxis": 241,
            "yAxis": 242
        },
        {
            "name": "Validator 1",
            "height": 66,
            "width": 117,
            "xAxis": 10,
            "yAxis": 1
        },
        {
            "name": "Verify <<",
            "height": 122,
            "width": 607,
            "xAxis": 90,
            "yAxis": 316
        }
    ],
    "metaData": {
        "name": "Tyrion Lannister",
        "dateOfBirth": "1990-08-01T00:00:00.0000000Z",
        "mrz": "IRGGRJF321822427<<<<<<<<<<<<1234010M1511114KEN<<<<<<<<<<<8ICTHREEMALE<<TECH<REFRESH<<<<<",
        "documentNumber": "123456789",
        "documentExpiryDate": "31/05/2022"
    },
    "result": "Refer",
    "photo": "<Base 64 encoded image removed for documentation>",
    "signature": "<Base 64 encoded image removed for documentation"
}
                Example provided in REST tab

Response Properties
This table describes the properties of the response.

Property Name Description
Alerts (array of objects) Represents the alerts generated from verifying the document. See the table below for details.
Checked Regions (array of objects) Shows the checked regions of the verified document. See the table below for details.
Meta Data (dictionary) A dictionary of key value pairs representing data from the verified document. We cannot guarantee the existence of any values in this dictionary. For example, verifying one document may return the Name on the document where as verifying another may not.
Result Represents the result of the verification.
Possible values:
- Pass
- Fail
- Refer
Photo Represents a base 64 encoded image of the cut out photo on the verified document.
Signature Represents a base 64 encoded image of the cut out signature on the verified document.

Alert

Property Name Description
Name (string) The name of the alert.
Description (string) The description of the alert.
Mitigation (string) The action(s) that can manually be performed to mitigate the alert.
Result (string) The alert result:
Failed - The alert indicates a failure of a document verification metric.
Refer - The alert indicates the possible manual verification metric that could not confidently be guaranteed correct by automated checks.

Alert table
On a document verification, the number of security checks completed varies from document to document, based on the number of security features that the document contains. To achieve an overall Pass, not every check needs to pass, and this alert table will highlight the checks that were not passed.

Checks that do not pass, are broken down into 2 categories – ‘Refer’ and ‘Failed’.

A ‘Refer’ simply refers to a potential warning or information alert that normally indicates that the quality of the image did not allow the check to be completed. Users normally find on human inspection of these, they are passed, and most clients will simply ignore these alerts if the overall result of the Document verification is a Pass.

The ‘Failed’ checks indicate that the check was completed, but there was an element of the check that failed the verification. This will normally be associated with referred or failed checks; however, the visual checks can also fail depending on document classification. These should normally result in some human inspection, but again, are normally only checked in circumstances where the overall document check has not passed.

Regions checked
This table gives co-ordinates of the areas of the document that have been assessed and automatically reviewed. W2 provides these regions so clients can extract the specific regions of the document that relate to the checks that have been completed and inspect/review if they see fit. If clients are storing the documents, these regions can also be used as marker for ‘redacting’ Personal Identifiable Information (PII).

Meta Data
This is the region where extracted information from the document is reported on via optical data recognition (OCR). W2 currently only reports on the Name, Date of birth, Machine-Readable zone (MRZ), Document Number and Document Expiry Date of a document. We are looking to expand these offerings to include document classification, address etc soon.

Result
This is the overall result of the document verification. This is the final, overall recommendation from W2 regarding how the document verification should be treated.

Photo
This is the photo that is extracted by the document verification. It is this photo that is normally used by the facial comparison SDK to compare the selfie picture against.

Signature
If a signature is included on the document, this is the region that will extract the image of the signature.

Checked Regions

Property Name Description
Name (string) The name of the document region.
Height (int) The height of the document region.
Width(int) the width of the document region.
xAxis (int) The x-axis co-ordinate or the document region
yAxis (int) The y-axis co-ordinate of the document region

Classify And Verify

This section describes how the Classify And Verify API endpoint functions.
The Classify And Verify endpoint is used to perform document classification and verification.

How to call the endpoint
To call the endpoint you will need to perform a HTTP POST request to the URL:

Example of how to call the document classification and verification classifyAndVerify endpoint using C#

    using System;
    using System.IO;
    using System.Net.Http;
    using System.Threading.Tasks;
    using Newtonsoft.Json;

    public class ClassifyVerifyResult
    {
        public DocumentClassification Classification { get; set; }

        public DocumentVerification Verification { get; set; }
    }

    public class DocumentClassification
    {
        public string ClassificationResult { get; set; }

        // OTHER PROPERTIES LEFT OUT FOR DEMO
    }

    public class DocumentVerification
    {
        public string Result { get; set; }

        // OTHER PROPERTIES LEFT OUT FOR DEMO
    }

    public class Program
    {
        static async Task Main(string[] args)
        {
            var client = new HttpClient();

            var content = new MultipartFormDataContent();

            content.Add(new ByteArrayContent(File.ReadAllBytes("/Id1Image-front.png")), "pages", "id1-front.png");

            content.Add(new ByteArrayContent(File.ReadAllBytes("/Id1Image-back.png")), "pages", "id1-back.png");

            content.Add(new StringContent("Id1"), "DocumentType");

            content.Add(new StringContent("123"), "ClientReference");

            content.Add(new StringContent("true"), "AutoVerify");

            var response = await client.SendAsync(new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                Headers = { { "Authorization", "Basic YourApiKey" } },
                RequestUri = new Uri("https://api.w2globaldata.com/document-verification/classifyAndVerify?api-version=1.5"),
                Content = content
            });

            var classificationVerificationResult = JsonConvert.DeserializeObject<ClassifyVerifyResult>(
                await response.Content.ReadAsStringAsync());

            Console.WriteLine($"Classification result: {classificationVerificationResult.Classification.ClassificationResult}");
            Console.WriteLine($"Verification result: {classificationVerificationResult.Verification.Result}");

            Console.ReadLine();
        }
    }
Api Version URL
1.3 and greater https://api.w2globaldata.com/document-verification/classifyAndVerify

Content Type
The classifyAndVerify endpoint expects the body of requests to be in the form-data format. Responses will be in application/json format.

Verify Request Structure

Property Description
Pages (File) An array of image data files that represent the images of the document.
- At least one page required
- File must be either JPEG, PNG or BMP
DocumentType (string) A string representing the type of the document you are cropping.
- Required
- Must be either ‘ID1’ or ‘ID3’
ClientReference (string) A reference identifying this call for your reference.
- Optional
AutoVerify (boolean) A boolean flag indicating whether to perform automatic verification on successful classification.

Example of a full document verification response

{
    "classification": {
        "classificationResult": "Pass",
        "classificationDetails": {
            "classificationName": "Passport",
            "version": "2006",
            "type": "ePassport",
            "issuerCode": "GBR",
            "issuerName": "United Kingdom (Citizen)"
        }
    },
    "verification": {
        "alerts": [
            {
                "name": "Document Expired",
                "description": "Checked if the document is expired.",
                "mitigation": "Check if the document has expired",
                "result": "Refer"
            },
            {
                "name": "Birth Date Check Digit",
                "description": "Verified that the birth date check digit is correct.",
                "mitigation": "The birth date check digit is correct",
                "result": "Passed"
            },
            {
                "name": "Birth Date Crosscheck",
                "description": "Compare the machine-readable birth date field to the human-readable birth date field.",
                "mitigation": "The birth dates match",
                "result": "Passed"
            },
            {
                "name": "Birth Date Valid",
                "description": "Verified that the birth date is valid.",
                "mitigation": "The birth date is valid",
                "result": "Passed"
            },
            {
                "name": "Composite Check Digit",
                "description": "Verified that the composite check digit is correct.",
                "mitigation": "The composite check digit is correct",
                "result": "Passed"
            },
            {
                "name": "Document Classification",
                "description": "Verified that the type of document is supported and is able to be fully authenticated.",
                "mitigation": "The document type is supported",
                "result": "Passed"
            },
            {
                "name": "Document Number Check Digit",
                "description": "Verified that the document number check digit is correct.",
                "mitigation": "The document number check digit is correct",
                "result": "Passed"
            },
            {
                "name": "Document Tampering Detection",
                "description": "Examines a document for evidence of tampering",
                "mitigation": "No evidence of document tampering was detected.",
                "result": "Passed"
            },
            {
                "name": "Document Tampering Detection",
                "description": "Examines a document for evidence of tampering",
                "mitigation": "No evidence of document tampering was detected.",
                "result": "Passed"
            },
            {
                "name": "Expiration Date Check Digit",
                "description": "Verified that the expiration date check digit is correct.",
                "mitigation": "The expiration date check digit is correct",
                "result": "Passed"
            },
            {
                "name": "Expiration Date Valid",
                "description": "Verified that the expiration date is valid.",
                "mitigation": "The expiration date is valid",
                "result": "Passed"
            },
            {
                "name": "Full Name Crosscheck",
                "description": "Compare the machine-readable full name field to the human-readable full name field.",
                "mitigation": "The full names match",
                "result": "Passed"
            },
            {
                "name": "Issue Date Valid",
                "description": "Verified that the issue date is valid.",
                "mitigation": "The issue date is valid",
                "result": "Passed"
            },
            {
                "name": "Issuing State Valid",
                "description": "Verified that the issuing state is valid.",
                "mitigation": "The issuing state is valid",
                "result": "Passed"
            },
            {
                "name": "Nationality Valid",
                "description": "Verified that the nationality is valid.",
                "mitigation": "The nationality is valid",
                "result": "Passed"
            },
            {
                "name": "Personal Number Check Digit",
                "description": "Verified that the personal number check digit is correct.",
                "mitigation": "The personal number check digit is correct",
                "result": "Passed"
            },
            {
                "name": "Photo Printing",
                "description": "Verified the presence of a printing feature on the photo.",
                "mitigation": "The photo printing technique was detected",
                "result": "Passed"
            },
            {
                "name": "Visible Pattern",
                "description": "Verified the presence of a pattern on the visible image.",
                "mitigation": "A visible pattern was found",
                "result": "Passed"
            },
            {
                "name": "Visible Pattern",
                "description": "Verified the presence of a pattern on the visible image.",
                "mitigation": "A visible pattern was found",
                "result": "Passed"
            },
            {
                "name": "Visible Pattern",
                "description": "Verified the presence of a pattern on the visible image.",
                "mitigation": "A visible pattern was found",
                "result": "Passed"
            },
            {
                "name": "Visible Photo Characteristics",
                "description": "Verifies the visible characteristics of the Photo",
                "mitigation": "The photo has the expected appearance",
                "result": "Passed"
            }
        ],
        "checkedRegions": [
            {
                "name": "Background",
                "height": 270,
                "width": 574,
                "xAxis": 1337,
                "yAxis": 466
            },
            {
                "name": "Background Bird",
                "height": 324,
                "width": 486,
                "xAxis": 986,
                "yAxis": 702
            },
            {
                "name": "Birth Date",
                "height": 76,
                "width": 520,
                "xAxis": 625,
                "yAxis": 483
            },
            {
                "name": "Birth Place",
                "height": 76,
                "width": 668,
                "xAxis": 801,
                "yAxis": 592
            },
            {
                "name": "Color Validator",
                "height": 262,
                "width": 278,
                "xAxis": 1613,
                "yAxis": 506
            },
            {
                "name": "Document Type Country Code VIZ",
                "height": 109,
                "width": 294,
                "xAxis": 54,
                "yAxis": 1005
            },
            {
                "name": "Expiration Date",
                "height": 85,
                "width": 520,
                "xAxis": 616,
                "yAxis": 791
            },
            {
                "name": "Given Name",
                "height": 68,
                "width": 1224,
                "xAxis": 616,
                "yAxis": 293
            },
            {
                "name": "Issue Date",
                "height": 70,
                "width": 511,
                "xAxis": 621,
                "yAxis": 688
            },
            {
                "name": "Issuing Authority",
                "height": 70,
                "width": 603,
                "xAxis": 1231,
                "yAxis": 694
            },
            {
                "name": "MRZ Locate",
                "height": 420,
                "width": 428,
                "xAxis": 0,
                "yAxis": 891
            },
            {
                "name": "MRZ1 (Visible)",
                "height": 109,
                "width": 1774,
                "xAxis": 54,
                "yAxis": 1005
            },
            {
                "name": "MRZ2 (Visible)",
                "height": 73,
                "width": 1774,
                "xAxis": 54,
                "yAxis": 1142
            },
            {
                "name": "Nationality Name",
                "height": 70,
                "width": 1227,
                "xAxis": 614,
                "yAxis": 389
            },
            {
                "name": "Photo",
                "height": 643,
                "width": 518,
                "xAxis": 92,
                "yAxis": 218
            },
            {
                "name": "Photo Printing",
                "height": 629,
                "width": 501,
                "xAxis": 101,
                "yAxis": 220
            },
            {
                "name": "Rt Reg",
                "height": 150,
                "width": 201,
                "xAxis": 1215,
                "yAxis": 594
            },
            {
                "name": "Sex",
                "height": 68,
                "width": 148,
                "xAxis": 616,
                "yAxis": 592
            },
            {
                "name": "Sex Label Anchor",
                "height": 303,
                "width": 429,
                "xAxis": 525,
                "yAxis": 389
            },
            {
                "name": "Signature",
                "height": 195,
                "width": 579,
                "xAxis": 1270,
                "yAxis": 786
            },
            {
                "name": "Surname",
                "height": 66,
                "width": 1233,
                "xAxis": 612,
                "yAxis": 198
            },
            {
                "name": "Surname Label Anchor",
                "height": 341,
                "width": 652,
                "xAxis": 447,
                "yAxis": 0
            },
            {
                "name": "Top Pattern",
                "height": 235,
                "width": 445,
                "xAxis": 6,
                "yAxis": 20
            },
            {
                "name": "Validator",
                "height": 239,
                "width": 540,
                "xAxis": 182,
                "yAxis": 36
            }
        ],
        "metaData": {
            "name": "Tyrion Lannister",
            "dateOfBirth": "1990-08-01T00:00:00.0000000Z",
            "mrz": "IRGGRJF321822427<<<<<<<<<<<<1234010M1511114KEN<<<<<<<<<<<8ICTHREEMALE<<TECH<REFRESH<<<<<",
            "documentNumber": "123456789",
            "documentExpiryDate": "31/05/2022"
        },
        "result": "Refer",
        "photo": "<Base 64 encoded image removed for documentation>",
        "signature": "<Base 64 encoded image removed for documentation>"
    }
}
                Example provided in REST tab

Response Properties
This table describes the properties of the response.

Property Name Description
Classification Represents the classification result of the document.
Verification Represents the verification result of the document. Please refer to the response properties here.

Classification

Property Name Description
ClassificationResult (string) The classification result:
Pass - Indicates a successful classification of the document.
Fail - Indicates a unsuccessful classification of the document.
ClassificationDetails (dictionary) A dictionary of key value pairs representing data from the classified document. We cannot guarantee the existence of any values in this dictionary. For example, classifying one document may return the Version on the document where as verifying another may not. However, we do guarantee the existence of ClassificationName - when ClassificationResult of Fail is present ClassificationName will always be Unknown.

ClassificationDetails

Property Name Description
ClassificationName (string) General category of the document type.
Version (string) The series - such as year, letter, or integer - to which the document belongs.
Type (string) Document subtype, such as Driver License, Driver License Under 21, Identification Card, Over 21, and Under 21.
IssuerCode (string) Code of the Government jurisdiction (country, state, or province) that issued the document.
IssuerName (string) Government jurisdiction (country, state, or province) that issued the document.

Verification

The verification response is the same as the Verify endpoint. Please refer to the response properties in the verify endpoint documentation.

Facial Comparison


This section describes how the Facial Comparison API endpoint functions

Example of how to call facial comparison endpoint using C#

    using System;
    using System.IO;
    using System.Net.Http;
    using System.Threading.Tasks;
    using Newtonsoft.Json;

    public class ComparisonResult
    {
        public bool IsMatch { get; set; }

        public int Confidence { get; set; }
    }

    public class Program
    {
        static async Task Main(string[] args)
        {
            var client = new HttpClient();

            var content = new MultipartFormDataContent();

            content.Add(new ByteArrayContent(File.ReadAllBytes("/face1.png")), "Current", "current.png");

            content.Add(new ByteArrayContent(File.ReadAllBytes("/face2.png")), "Comparison", "comparison.png");

            content.Add(new StringContent("123"), "ClientReference");

            var response = await client.SendAsync(new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                Headers = { { "Authorization", "Basic YourApiKey" } },
                RequestUri = new Uri("https://api.w2globaldata.com/facial-comparison/compare?api-version=1.1"),
                Content = content
            });

            var comparisonResult = JsonConvert.DeserializeObject<ComparisonResult>(
                await response.Content.ReadAsStringAsync());

            Console.WriteLine($"Comparison result: {comparisonResult.IsMatch}");

            Console.ReadLine();
        }
    }

Endpoints

Endpoint Description
Compare This endpoint is used to determine whether the face in two different images are the same or not.

Request Properties
This details the fields of a facial comparison compare request.

   
Current (file) The Current element is the image captured from the device camera. It has to be a file rather than a text. When using the facial comparison endpoint, the Current image can be uploaded from the device. This element is compulsory, it cannot be removed or left empty.
- Required
- File must be either JPEG, PNG or BMP

Please ensure that the image presented is smaller than 1.5Mb. If an image larger than this is presented, the endpoint will compress the image (ensuring that the solution works) however this will have a detrimental effect on the response time.
Comparison (file) The Comparison is the image to be compared against the Current image. It has to be a file rather than a text. When using the facial comparison endpoint, the Comparison image can be uploaded from the device. This element is compulsory, it cannot be removed or left empty.
- Required
- File must be either JPEG, PNG or BMP

Please ensure that the image presented is smaller than 1.5Mb. If an image larger than this is presented, the endpoint will compress the image (ensuring that the solution works) however this will have a detrimental effect on the response time.
ClientReference (string) The Client Reference identifies this call for your reference.
- Optional

Response Properties
This table describes the properties of the response.

Facial Comparison Full Response Example 1

{
  "isMatch": true,
  "confidence": 100
}
                Example provided in REST tab

Facial Comparison Full Response Example 2

{
  "isMatch": false,
  "confidence": 12
}
                Example provided in REST tab
Property Name Description
isMatch (Boolean) Represents whether the uploaded images match each other: true = match, false = not a match. This is based on the confidence score returned, >= 85 will return true, <85 will return false
confidence (int) A score of 0 - 100 percentage, 0 indicates no match and 100 indicates 100% match

Upload Document


This section is for consuming the W2 Data IDV Check 013 service.
If using W2-DATA-DOCUMENT_CHECK-039 please refer to Document verification.

How to call the endpoint

To call the endpoint you will need to perform a HTTP POST request to the URL:

API Version URL
1.0 https://api.w2globaldata.com/documentupload?api-version=1.0 (Deprecated)
1.1 https://api.w2globaldata.com/document-upload?api-version=1.1
1.2 https://api.w2globaldata.com/document-upload?api-version=1.2
1.3 https://api.w2globaldata.com/document-upload?api-version=1.3
1.4 https://api.w2globaldata.com/document-upload?api-version=1.4
1.5 https://api.w2globaldata.com/document-upload?api-version=1.5 Latest

Content Type

The document upload endpoint expects the body of requests to be in the form-data format.

Request - Document Upload

Property Optional/Mandatory Details
ServiceAuthorisation Mandatory Contains authorisation information to identify the person using the service. See here
Reference Optional Contains a client-specified tracking reference. Maximum 100 Characters
Type Mandatory None - No type specified / known.
JPEG - A JPEG (Joint Picture Experts Group Image).
PNG - A PNG (Portable Network Graphics) image.
PDF - A PDF (Portable Document Format).
Document Mandatory Base64 Encoded representation of the document to upload.
Expiry Optional Desired expiry date to apply to the document to upload.
If left blank, W2 will use the default value of 14 days to expire the document. This can be set anywhere up to a maximum of 6 months.
Once the expiration date has been reached, W2 will remove the image data from our system, however the footprint of the upload will be preserved.
QueryOptions Optional Specify optional flags that alter the invocation of the service. See here

Response - Document Upload

Upload Document Response

{
    "bytesUploaded": 108920,
    "reference": "123",
    "documentTypeValidationSucceeded": true,
    "id": "0e397a02-4b7c-5494-abf0-14e2230be606",
    "resolvedDocumentType": "JPEG"
}
                Example provided in REST tab

Response Properties

Property Name Description
BytesUploaded The number of bytes uploaded to check against expected number.
Reference An echo of the value that was used on submission - useful when operating asynchronously.
DocumentTypeValidationSucceeded Whether or not the resolved document type matched the type specified by the user (e.g if the user specified the document was a PNG, and the document resolved to a PNG, this value is true).
Id The system assigned unique Id applied to this document on upload. Used to refer to the document when associating documents with a service as a part of the Files element of a KYC Check request.
ResolvedDocumentType The document type as resolved by the service - this can be compared against the expected (submitted) type for validation purposes.
- None
- No type specified / known.
- JPEG - A JPEG (Joint Picture Experts Group Image).
- PNG - A PNG (Portable Network Graphics) image.
- PDF - A PDF (Portable Document Format)

Document Size Limit

Case Management

Creation of a Case


What is a case?

A case is a collection of data attribute on a individual or entity on which the verification service will be performed. To trigger a service you will need to create a case containing the attributes you want to return.

Calling our cases API

Example Create Cases Request

{
          "Forename": "TEST_FORENAME",
          "Surname": "TEST_SURNAME",
          "DayOfBirth": 1,
          "MonthOfBirth": 1,
          "YearOfBirth": 2001,
          "ClientReference": "REST_TEST",
          "HouseNumber": "20",
          "Country": "GBR",
          "Postcode": "CF3 3CA",
          "Type": "Person",
          "OngoingMonitoring":true,
          "Email": "[email protected]",
          "Region":"South East",
          "TaxCode":"123",
          "PlaceOfBirth":"London, United Kingdom",
          "DrivingLicenceNumber":"RUSSF802087TG9EV11",
          "MRZ":"P<CZESPECIMIN<<VZOR<<<<<<<<<<<<<<<<<<<<<<<<<99003853<1CZE1101018M120704611010111<<<<<<94",
          "Gender":"M"
}

Example Successful Create Cases Response

{
    "caseId": "cd35f8a0-f30c-4cfc-9bcb-12bf58d44876"
}

The section below describes how to call the Case endpoint.

To call the endpoint you will need to perform a HTTP POST request to the URL:

API Version Url
1.2 https://api.w2globaldata.com/Cases?api-version=1.2
1.3 https://api.w2globaldata.com/Cases?api-version=1.3
1.4 https://api.w2globaldata.com/Cases?api-version=1.4
1.5 https://api.w2globaldata.com/Cases?api-version=1.5 Latest

Properties

The following properties pertain for a creation of a case.

Property Name Type Optional/Mandatory Notes
ClientReference String Mandatory While mandatory the client reference does not have to be unique.
You can use this property to link Cases back to entities in your own systems.
Forename String Optional The Forename of the individual.
MiddleNames String Optional The MiddleNames of the individual.
Surname String Optional The Surname of the individual.
DayOfBirth Integer Optional The DayOfBirth of the individual.
MonthOfBirth Integer Optional The MonthOfBirth of the individual.
YearOfBirth Integer Optional The YearOfBirth of the individual.
Title String Optional The Title of the individual.
HouseName String Optional The HouseName of the individual.
HouseNumber String Optional The HouseNumber of the individual.
Street String Optional The Street of the individual.
TownCity String Optional The Town/City of the individual.
County String Optional The County of the individual.
Country String Optional THe Country of the individual.
Postcode String Optional The Postcode of the individual.
Type String Optional The Type of case. If blank the case type will default to an individual case type.
OngoingMonitoring Boolean Optional Set OngoingMonitoring.
Email String Optional The Email of the individual.
Region String Optional The Region of the individual.
TaxCode String Optional The TaxCode of the individual.
PlaceOfBirth String Optional The PlaceOfBirth of the individual.
DrivingLicenceNumber String Optional The DrivingLicenceNumber of the individual.
MRZ String Optional The MRZ of the individual.
Gender String Optional The Gender of the individual.

The W2 CaseId will be provided if successfully created.

Updating a Case


Situations where you may need to update a case include:

  1. If an individual gets married and their surname changes.
  2. If a subject moved house.
  3. If there was a error in the original case creation.
  4. If you get additional information you want included in the case.

Calling our update case API

Example Update Cases Request

{
          "Forename": "TEST_FORENAME_NEW",
          "Surname": "TEST_SURNAME_NEW",
          "DayOfBirth": 2,
          "MonthOfBirth": 2,
          "YearOfBirth": 2002,
          "ClientReference": "REST_TEST_NEW",
          "HouseNumber": "22",
          "Country": "GBR",
          "Postcode": "CF3 3CA",
          "Type": "Person",
          "OngoingMonitoring":false,
          "Email": "[email protected]",
          "Region":"South West",
          "TaxCode":"124",
          "PlaceOfBirth":"Cardiff, United Kingdom",
          "DrivingLicenceNumber":"RUSSF802087TG9EV12",
          "MRZ":"P<CZESPECIMIN<<VZOR<<<<<<<<<<<<<<<<<<<<<<<<<99003853<1CZE1101018M120704611010111<<<<<<94",
          "Gender":"M"
}

Example Successful Update Cases Response

{
    "Your Case has been updated succesfully",
    "caseId": "cd35f8a0-f30c-4cfc-9bcb-12bf58d44876"
}

To call the endpoint you will need to perform a HTTP PUT request to the URL:

API Version Url
1.3 https://api.w2globaldata.com/cases/{caseId}?api-version=1.3
1.4 https://api.w2globaldata.com/cases/{caseId}?api-version=1.4
1.5 https://api.w2globaldata.com/cases/{caseId}?api-version=1.5 Latest

Properties

The following properties pertain for updating a case.

Property Name Type Optional/Mandatory Notes
ClientReference String Mandatory Your ClientReference.
Forename String Optional The Forename of the individual.
MiddleNames String Optional The MiddleNames of the individual.
Surname String Optional The Surname of the individual.
DayOfBirth Integer Optional The DayOfBirth of the individual.
MonthOfBirth Integer Optional The MonthOfBirth of the individual.
YearOfBirth Integer Optional The YearOfBirth of the individual.
Title String Optional The Title of the individual.
HouseName String Optional The HouseName of the individual.
HouseNumber String Optional The HouseNumber of the individual.
Street String Optional The Street of the individual.
TownCity String Optional The Town/City of the individual.
County String Optional The County of the individual.
Country String Optional THe Country of the individual.
Postcode String Optional The Postcode of the individual.
Type String Optional The Type of case. If blank the case type will default to an individual case type.
OngoingMonitoring Boolean Optional Set OngoingMonitoring.
Email String Optional The Email of the individual.
Region String Optional The Region of the individual.
TaxCode String Optional The TaxCode of the individual.
PlaceOfBirth String Optional The PlaceOfBirth of the individual.
DrivingLicenceNumber String Optional The DrivingLicenceNumber of the individual.
MRZ String Optional The passport MRZ of the individual.
Gender String Optional The Gender of the individual.

Updating a case returns a Case Id for the updated case.

Getting a Case


Calling our get case API

The section below describes how to call the Get Case endpoint.

Example Successful Get Cases Response

{
    "id": "4dbbbc65-e20e-4317-b395-5525405a4955",
    "companyId": 1,
    "type": "Person",
    "forename": "Kev",
    "middleNames": "",
    "surname": "Flemming",
    "dayOfBirth": 0,
    "monthOfBirth": 0,
    "yearOfBirth": 0,
    "clientReference": "some ref",
    "title": "something",
    "houseName": "number zero",
    "houseNumber": "0a",
    "street": "string",
    "townCity": "something else",
    "county": "string",
    "country": "string",
    "postcode": "string",
    "email": "string",
    "ongoingMonitoring": true,
    "creationDate": "2021-02-08T16:31:46.9916806Z",
    "lastUpdatedDate": "2021-05-11T09:33:50.4035756Z",
    "Region":"South East",
    "TaxCode":"123",
    "PlaceOfBirth":"London, United Kingdom",
    "DrivingLicenceNumber":"RUSSF802087TG9EV11",
    "MRZ":"P<CZESPECIMIN<<VZOR<<<<<<<<<<<<<<<<<<<<<<<<<99003853<1CZE1101018M120704611010111<<<<<<94",
    "Gender":"M"
}

To call the endpoint you will need to perform a HTTP GET request to the URL:

API Version Url
1.4 https://api.w2globaldata.com/Cases/{caseId}?api-version=1.4
1.5 https://api.w2globaldata.com/Cases/{caseId}?api-version=1.5 Latest

The W2 Case will be returned, if found.

Searching for a Case(s)


Calling our Search case API

The section below describes how to call the Search Case endpoint. If no search criteria is entered, the endpoint will retrieve the top 100 cases.

Pagination Options

There are two required pagination options that need to be provided in the query string.

The page size is the number of results we wish to return per page. The page size has a range of 1-1000. The page number is the zero-based index of the page we wish to return.

Searchable fields

*When searching using a risk group name, a full name must be given i.e. ‘low’ or ‘high’. Risk group names are case sensitive.

Example Successful Search Cases Response

{
    "count": 1,
    "caseSummarys": [
        {
            "id": "ce04915e-4baa-4b1a-a964-da90e1c6306f",
            "forename": "John",
            "surname": "Preston",
            "dayOfBirth": 1,
            "monthOfBirth": 3,
            "yearOfBirth": 2010,
            "clientReference": "efg",
            "riskGroup": "low",
            "lastUpdatedDate": "2021-08-06T14:19:28.7628906Z",
            "email": "[email protected]"
        }
    ],
    "stats": {
        "totalCount": 3,
        "pageCount": 3
    }
}

To call the endpoint you will need to perform a HTTP GET request to the URL:

API Version Url
1.5 https://api.w2globaldata.com/Cases?RiskGroup=low&PageNumber=0&PageSize=1&api-version=1.5 Latest

The W2 Case(s) will be returned, if found.

Getting Case Results


Calling our get case results API

The section below describes how to call the Get Case Results endpoint. This endpoint retrieves the latest 100 results.

Example Successful Get Cases Response

{
    "caseId": "437fb3e1-4430-4265-84da-cc22aa1fde19",
    "results": [
        {
            "id": "e73f75a2-6160-46b9-b1e2-2753e9fbcbb8",
            "caseId": "437fb3e1-4430-4265-84da-cc22aa1fde19",
            "type": "monitoring",
            "reference": "My monitoring reference",
            "resultDate": "2021-02-15T10:03:39.3691603+00:00",
            "numberOfAlerts": 0
        },
        {
            "id": "6cb53ec0-14d2-4579-9b3a-92e29ca63369",
            "caseId": "437fb3e1-4430-4265-84da-cc22aa1fde19",
            "type": "monitoring",
            "reference": "My monitoring reference",
            "resultDate": "2021-02-15T09:44:29.547256+00:00",
            "numberOfAlerts": 26
        }]
}

To call the endpoint you will need to perform a HTTP GET request to the URL:

API Version Url
1.4 https://api.w2globaldata.com/Cases/{caseId}/results?api-version=1.4
1.5 https://api.w2globaldata.com/Cases/{caseId}/results?api-version=1.5 Latest

The W2 Case Results will be returned, if found.

Getting Case Audit History


Calling our get case audit history case API

The section below describes how to call the Getting Case Audit History endpoint.

Example Successful Get Case Audit Response

{
    "audits": [
        {
            "caseId": "4257206f-18d1-43cd-9388-f7359963c5e0",
            "id": "a63a2fda-ade7-4ccc-ab68-0474f3784709",
            "actionDate": "2021-05-28T12:57:55.3665984Z",
            "action": "Updated",
            "propertiesChanged": [
                {
                    "name": "forename",
                    "old": "dean",
                    "new": "kev"
                },
                {
                    "name": "surname",
                    "old": "",
                    "new": "flemming"
                },
                {
                    "name": "ClientReference",
                    "old": "AAA-123/kent",
                    "new": "AAA-124/kent"
                }
            ]
        },
        {
            "caseId": "4257206f-18d1-43cd-9388-f7359963c5e0",
            "id": "0dd2baaf-e64c-40cb-b82d-ac0232a53542",
            "user": {
                "id": "54616a62-8807-4145-ad6d-2ba36e5fe946",
                "name": "bob"
            },
            "actionDate": "2021-05-28T12:57:55.297519Z",
            "action": "Created",
            "propertiesChanged": [
                {
                    "name": "forename",
                    "new": "dean",
                },
                {
                    "name": "ClientReference",
                    "new": "AAA-123/kent",
                }
            ]
        }
    ]
}

To call the endpoint you will need to perform a HTTP GET request to the URL:

API Version Url
1.4 https://api.w2globaldata.com/Cases/{caseId}/audits?api-version=1.4
1.5 https://api.w2globaldata.com/Cases/{caseId}/audits?api-version=1.5 Latest

The 100 most recent W2 Audits for the provided case id will be returned in descending date order, if the case exists.

Assigning Risk Groups to Cases


Calling our assign risk group to case API

The section below describes how to call the Assign Risk Group endpoint.

Request example:

{
	"RiskGroupId": "id of a risk group"
}

To call the endpoint you will need to perform a HTTP PUT request to the URL:

API Version Url
1.5 https://api.w2globaldata.com/Cases/{caseId}/riskgroup?api-version=1.5 Latest

A risk Group represents a collection of cases that present a similar level of risk to the organisation, and therefore are monitoring on an ongoing basis to a similar standard. While there are certain risk groups set up by default (Low, High and ex-customer) the client will need to define in the portal the ongoing actions that are taken for the corresponding groups.

This endpoint will assign a case to a risk group.

Unassigning Risk Groups from Cases


Calling our unassign risk group from a case API

The section below describes how to call the Unassign Risk Group endpoint.

To call the endpoint you will need to perform a HTTP DELETE request to the URL:

API Version Url
1.5 https://api.w2globaldata.com/Cases/{caseId}/riskgroup?api-version=1.5 Latest

This endpoint will unassign a case from a risk group.

Bundle Workflow Triggers


This section describes how the Bundle/Workflow trigger API endpoint functions

How to call the endpoint

To call the endpoint you will need to perform a HTTP POST request to the URL:

API Version Url
1.4 https://api.w2globaldata.com/case-kyc-check?api-version=1.4
1.5 https://api.w2globaldata.com/case-kyc-check?api-version=1.5 Latest

Request & Response

Full Request example:

{
    "caseId":"15b49d9c-ce55-4adb-a241-6e4020207219",
    "bundle":"SPFPlusCheck",
    "Options": {
        "Sandbox": "False",
        "Key": "Value",
        "NameQueryMatchThreshold": "Accepted values: 80, 85, 90, 100",
        "DateOfBirthMatchThreshold": "Accepted values: -100 to 100"
    }
}

KYC Check Response Example (SPF Plus service call):

{
    "clientReference": "CaseReference",
    "results": {
        "spfPlusCheckResult": {
            "matchResults": [
                {
                    "matchType": "Person",
                    "name": "Theresa Jones",
                    "nameMatchScore": 90,
                    "profileId": "SANC-d69d6314-4ab0-90db-efa3-735eb3f2a283"
                },
                {
                    "matchType": "Unknown",
                    "name": "Theresa Harrison",
                    "nameMatchScore": 80,
                    "profileId": "SANC-4edac9cc-3ee8-f7dc-4ec3-2fa7df3401bd"
                }
            ]
        }
    },
    "transaction": {
        "interpretResult": "NotApplicable",
        "serviceCallReference": "b3a13e17-1fbf-424a-81f9-1c1c38d43a1a",
        "serviceTransactions": [
            {
                "haltTriggered": false,
                "service": "SPFPlusCheck",
                "serviceInterpretResult": "MultipleResults",
                "serviceTransactionResult": "Success",
                "validationResult": "Pass"
            }
        ]
    }
}

Request Properties

Use this table to find the meaning of each of the fields in the request.

Property Description
Bundle The Bundle section states which bundle you are calling and is mandatory for every service call. A bundle is a collection of services which will be agreed with W2 Support.
CaseId The identifier of the case to be used for the bundle call. This field is mandatory.
Options These are optional parameters for some extra fields not covered in the Data object. The whole section is optional. The most common use is to set Sandbox mode, where you can call the service and get standard responses. For further information, each service has examples of how to structure a call to the sandbox.
NameQueryMatchThreshold and DateOfBirthMatchThreshold options are explained further here: FAQs. These thresholds will only work with these services: SIS Plus, SPF Plus, PEPDesk, Watchlist Check, PEP and Sanction 006, W2-DATA-DISQUALIFIEDS-UK-008, W2 Data Ekyc SCANDI 025

Client Provided Data

This section simply reflects back information that was submitted in the API call.

Property Description
ClientReference This reflects back the client reference that was supplied in the request
ClientSubaccount An optional reference to identify which of your client accounts this call was made for.
ClientUser An optional reference to identify which individual user made this call. For future compatibility with W2 products we suggest this value should be the user’s email address.
RefersToServiceCallReference Links this call to a previous call by specifying the previous ServiceCallReference.

Transaction Information

This section contains the interpret result for the whole bundle, the service call reference and a section of meta data for each service.

Property Description
InterpretResult The validation result of the Interpret function.
1. Pass - The information supplied to the bundle passed validation.
2. Fail- The information supplied to the bundle failed validation.
3. Inconclusive- It was not possible to generate a clear validation result from the information supplied. It may be necessary to refer this query for further investigation.
4. NoInterpretPerformed - No interpret was performed in this case. Check the other information returned by the services to determine why.
5. NotApplicable - Interpret is not enabled for this bundle.
ServiceTransactions A collection of ServiceTransactionInformation objects. See below
ServiceCallReference A unique reference for this service call.

Service Transaction Information

Every service that is called will return one of these:

Property Description
Service The service that was invoked.
ServiceInterpretResult The validation result of the service interpret function.
1. Pass - The query data resulted in a pass.
2. Fail - The query data resulted in a failure.
3. Inconclusive - The query data resulted in an inconclusive outcome.
4. NoResults - The query data returned no results.
5. OneResult - The query data returned a single result.
6. MultipleResults - The query data returned multiple results.
7. NotApplicable - Interpret is not applicable to the call or wasn’t enabled.
8. NotPerformed - An error prevented this result from being categorised.
ServiceTransactionResult The validation result for service transaction.
1. Success - The service executed successfully.
2. SuccessNoResults - The service executed successfully but no results were generated.
3. SuccessIncompleteResults - The service executed successfully but too many results were generated to return them all, so the results have been truncated.
4. MultipleChoices - The service could not continue as there are multiple choices available and one of them must be selected or the query must be submitted with more concise information in order to complete execution.
5. ClientErrorInsufficientInformation - There was insufficient information for the service to execute. Check that all of the required fields for the service were supplied.
6. NotExecutedDueToPreviousHalt - The service was not executed because a previous service in the bundle triggered a halt.
7. ServerErrorGeneralError - A general error occurred on the server trying to run the service.
ServiceTransactionResultMessage The message associated with the ServiceTransactionResult if applicable. The ServiceTransactionResultMessage is usually null, but in some cases may provide some insight into the ServiceTransactionResult. For example, if a service returns SuccessIncompleteResults the ServiceTransactionResultMessage may contain an explanation of why, such as there being a limit of 100 results per query. There is no standard across services for this field so it should not be relied upon, instead it is better to use it for debugging or additional information and rely on the ServiceTransactionResult which has consistent behaviour.
ValidationResult The validation result…
1. Pass - The information supplied to the service passed validation
2. Fail - The information supplied to the service failed validation.
3. Inconclusive - It was not possible to generate a clear validation result from the information supplied. It may be necessary to refer this query for further investigation.
4. NoValidationPerformed - No validation was performed in this case. Check the other information returned by the service to determine why.
5. NotApplicable - The service is not a service that performs validation and therefore validation is not applicable.
ServiceValidationDetails This field provides information about the pre-execution validation step and should be read in conjunction with the ValidationResult field.
HaltTriggered True if the service halted after this service

Risk Groups

What is a Risk Group?

A risk group allows for the classification of cases by risk as determined by your organisation.

Creating Risk Groups


Calling our Risk Group API

Example Successful Create Risk Group Response


{
    "riskGroup": {
        "name": "high"
    }
}

The section below describes how to call the Create Risk Group endpoint.

To call the endpoint you will need to perform a HTTP POST request to the URL:

API Version Url
1.5 https://api.w2globaldata.com/riskgroups?api-version=1.5 Latest

A risk group will be created.

Retrieving Risk Groups


Calling our Risk Group API

Example Successful Get Risk Group Response

[
    {
        "id": "09e8dca6-e3f5-11eb-ba80-0242ac130004",
        "name": "High"
    },
    {
        "id": "1d394f16-e3f5-11eb-ba80-0242ac130004",
        "name": "Medium"
    },
    {
        "id": "2175912a-e3f5-11eb-ba80-0242ac130004",
        "name": "Low"
    }
]

The section below describes how to call the Get Risk Group endpoint.

To call the endpoint you will need to perform a HTTP GET request to the URL:

API Version Url
1.5 https://api.w2globaldata.com/riskgroups?api-version=1.5 Latest

A list of your risk groups will be provided if any exist.

SOAP

API V3 Documentation


An overview of the W2 Global Data API V3

API Version 3

LIVE: https://apiv3.w2globaldata.com/Service.svc?wsdl

UAT: https://apiv3-uat.w2globaldata.com/Service.svc?wsdl

The API exposes two methods: KYCCheck and DocumentUpload.

KYCCheck

This is the most common method for calling the API. The call to the KYCCheck method takes a bundle name and a set of query data as parameters and goes through each service in that bundle. It will return a response from each service that is called along with an interpret result.

DocumentUpload

Some services perform document verification by looking at images of important documents (passports and driving licenses etc.) and as such we need to upload a document to W2. This method is used to upload documents.

  1. Upload Document Request
  2. Upload Document Response

KYC Check Request


An explanation of the Request object for the KYCCheck method

Full Request

Here is a complete request for the API. Which fields are required will depend on which service(s) are being called.

A Note on Field Ordering example

<soapenv:Envelope>
   <soapenv:Header/>
   <soapenv:Body>
      <KYCCheck>
         <serviceRequest>
            <BundleData>
               <BundleName>?</BundleName>
            </BundleData>
            <QueryData>
               <AgeVerificationPassIf>?</neur:AgeVerificationPassIf>
               <AgeVerificationThreshold>?</neur:AgeVerificationThreshold>
               <City>?</City>
               <Country>?</Country>
               <County>?</County>
               <DateOfBirthMatchThreshold>?</DateOfBirthMatchThreshold>
               <DayOfBirth>?</DayOfBirth>
               <DrivingLicenceNumber>?</DrivingLicenceNumber>
               <Email>?</Email>
               <Flat>?</Flat>
               <Forename>?</Forename>
               <Gender>?</Gender>
               <HouseName>?</HouseName>
               <HouseNumber>?</HouseNumber>
               <IP>?</IP>
               <IdCardNumber>?</IdCardNumber>
               <MRZ>?</MRZ>
               <Maiden>?</Maiden>
               <MiddleNames>?</MiddleNames>
               <MobileNumber>?</MobileNumber>
               <MonthOfBirth>?</MonthOfBirth>
               <NameQuery>?</NameQuery>
               <NameQueryMatchThreshold>?</NameQueryMatchThreshold>
               <NationalId>?</NationalId>
               <PassportNumber>?</PassportNumber>
               <PersonalId>?</PersonalId>
               <PhoneNumber>?</PhoneNumber>
               <PlaceOfBirth>?</PlaceOfBirth>
               <Postcode>?</Postcode>
               <ProfileId>?</ProfileId>
               <Region>?</Region>
               <Street>?</Street>
               <Surname>?</Surname>
               <TaxCode>?</TaxCode>
               <Title>?</Title>
               <TravelVisaNumber>?</TravelVisaNumber>
               <YearOfBirth>?</YearOfBirth>
            </QueryData>
            <!--Optional:-->
            <QueryOptions>
               <KeyValueOfstringstring>
                  <Key>?</Key>
                  <Value>?</Value>
               </KeyValueOfstringstring>
            </QueryOptions>
            <ServiceAuthorisation>
               <APIKey>?</APIKey>
               <ClientReference>?</ClientReference>
               <ClientSubaccount>?</ClientSubaccount>
               <ClientUser>?</ClientUser>
               <RefersToServiceCallReference>?</RefersToServiceCallReference>
            </ServiceAuthorisation>
            <!--Optional:-->
            <UploadedFiles>
               <!--Zero or more repetitions:-->
               <UploadedFile>
                  <DocumentReference>?</DocumentReference>
                  <DocumentUID>?</DocumentUID>
                  <Group>?</Group>
                  <Index>?</Index>
                  <Service>?</Service>
               </UploadedFile>
            </UploadedFiles>
         </serviceRequest>
      </KYCCheck>
   </soapenv:Body>
</soapenv:Envelope>
            {"This only affects SOAP Requests"}

If you’re using a development environment other than Microsoft Visual Studio, or are crafting your requests manually, then you must ensure that all fields are passed in Alphabetical Order - i.e. in the order shown in the example above. This is due to the way that the de-serialisation works on the server side, and is a mandatory requirement.

If you pass the fields in a different order, you will see a Null Reference exception thrown by the service.

Bundle Data

Bundle Data

<BundleData>
    <BundleName>{You bundle name here e.g. TEST_KYC_SIS}</BundleName>
</BundleData>
            {"Example provided in SOAP tab"}

The bundle data tag indicates which bundle you are calling and is mandatory for every service call. A bundle is a collection of services which will be agreed with W2 Support.

Query Data

Query Data

<QueryData>
    <AgeVerificationPassIf>?</neur:AgeVerificationPassIf>
    <AgeVerificationThreshold>?</neur:AgeVerificationThreshold>
    <City>?</City>
    <Country>?</Country>
    <County>?</County>
    <DateOfBirthMatchThreshold>?</DateOfBirthMatchThreshold>
    <DayOfBirth>?</DayOfBirth>
    <DrivingLicenceNumber>?</DrivingLicenceNumber>
    <Email>?</Email>
    <Flat>?</Flat>
    <Forename>?</Forename>
    <Gender>?</Gender>
    <HouseName>?</HouseName>
    <HouseNumber>?</HouseNumber>
    <IP>?</IP>
    <IdCardNumber>?</IdCardNumber>
    <MRZ>?</MRZ>
    <Maiden>?</Maiden>
    <MiddleNames>?</MiddleNames>
    <MobileNumber>?</MobileNumber>
    <MonthOfBirth>?</MonthOfBirth>
    <NameQuery>?</NameQuery>
    <NameQueryMatchThreshold>?</NameQueryMatchThreshold>
    <NationalId>?</NationalId>
    <PassportNumber>?</PassportNumber>
    <PersonalId>?</PersonalId>
    <PhoneNumber>?</PhoneNumber>
    <PlaceOfBirth>?</PlaceOfBirth>
    <Postcode>?</Postcode>
    <ProfileId>?</ProfileId>
    <Region>?</Region>
    <Street>?</Street>
    <Surname>?</Surname>
    <TaxCode>?</TaxCode>
    <Title>?</Title>
    <TravelVisaNumber>?</TravelVisaNumber>
    <YearOfBirth>?</YearOfBirth>
</QueryData>
            {"Example provided in SOAP tab"}

SIS (Standard International Sanctions) example


<QueryData>
    <DayOfBirth>{e.g. 21}</DayOfBirth>
    <MonthOfBirth>{e.g. 02}</MonthOfBirth>
    <NameQuery>{e.g. Robert Mugabe}</NameQuery>
    <YearOfBirth>{e.g. 1924}</YearOfBirth>
</QueryData>
            {"Example provided in SOAP tab"}

Query Options

Sandbox request example


<QueryOptions>
   <KeyValueOfstringstring>
   	<Key>Sandbox</Key>
        <Value>True</Value>
    </KeyValueOfstringstring>
</QueryOptions>
            {"Example provided in SOAP tab"}

These are optional parameters for some extra fields not covered in the Query Data. The whole section is optional. The most common use is to set Sandbox mode, where you can call the service and get standard responses. For further information, each service has examples of how to structure a call to the sandbox.

Service Authorisation

Service Authorisation example

<ServiceAuthorisation>
   <APIKey>
   	Your API key provided by W2.
    </APIKey>
    <!--Optional:-->
    <ClientReference>
   	A reference identifying this call i.e. My Company Testing.
      </ClientReference>
    <!--Optional:-->
    <ClientSubaccount>
        An optional reference to identify which of your client accounts this call was made for.
    </ClientSubaccount>
    <!--Optional:-->
    <ClientUser>
    	An optional reference to identify which individual user made this call. If specified,
        this value must be the email address of a known user account assigned to your company 
        currently in the W2 Global Database. If a value is specified here that can't be validated 
        as an existing account, then the call will fail with an Invalid Client User error.
      </ClientUser>
    <!--Optional:-->
    <RefersToServiceCallReference>
        Links this call to a previous call by specifying the previous ServiceCallReference.
    </RefersToServiceCallReference>
</ServiceAuthorisation>
            {"Example provided in SOAP tab"}

Uploaded Files

Uploaded Files example


<UploadedFiles>
  <!--Zero or more repetitions:-->
  <neur:UploadedFile>
    <DocumentReference>
        A client-provided reference to help identify the document.
    </DocumentReference>
    <DocumentUID>
        The Unique identifier returned from the Document Upload service when uploading this document.
    </DocumentUID>
    <Group>
        An optional identifier used to group documents.
    </Group>
    <Index>
        An optional value used to indicate the index of this document 
        within its group (if provided) or overall if no group is specified 
    </Index>
    <Service>
        Indicates which service in the specified bundle this document should be associated with
    </Service>
  </UploadedFile>
</UploadedFiles>
            {"Example provided in SOAP tab"}

KYC Check Response


The response object contains the response from every service in your bundle as well as placeholders for any uncalled services. For every service that is called we also return a Service Transaction Information object that contains metadata about that service call. We also include an Interpret result which represents a combined response from all the services called.

Full Response

Full Response example

<Envelope>
   <Body>
      <KYCCheckResponse>
         <KYCCheckResult>
            <ClientProvidedData>
               <ClientReference>
                   Your client reference will be visible here.
               </ClientReference>
               <ClientSubaccount>
                   If supplied the client sub account will be visible here.
               </ClientSubaccount>
               <ClientUser>
                   If supplied the client user will be visible here.
               </ClientUser>
               <RefersToServiceCallReference>
                   If supplied the call reference will be visible here.
               </RefersToServiceCallReference>
            </ClientProvidedData>
            <ProcessRequestResult>
               <ServiceResult>
                  <!-- More information about each service's response 
                       can be found on relevant the service's page-->
                  <DirectorUKCheckResult />
                  <IDCheckATBravoResult />
                  <IDCheckAddressLookupResult />
                  <IDCheckCHBravoResult />
                  <IDCheckCZBravoResult />
                  <IDCheckDEAlphaResult />
                  <IDCheckDEBravoResult />
                  <IDCheckITBravoResult />
                  <IDCheckNLAlphaResult />
                  <IDCheckNameLookupResult />
                  <IDCheckPassportMRZResult />
                  <IDCheckRUBravoResult />
                  <IDCheckSKBravoResult />
                  <IDCheckUKAlphaResult />
                  <IDCheckUKDeltaResult />
                  <IDCheckUKDrivingLicenceNumberResult />
                  <IDCheckZAAlphaResult />
                  <IDDocumentCheckResult />
                  <PEPDeskCheckResult />
                  <ProfileDetailsResult />
                  <SISPlusCheckResult />
                  <SPFPlusCheckResult />
                  <W2DataAddressLookUp007Result />
                  <W2DataEkybUk009Result />
                  <W2DataEkycUk007Result />
                  <W2DataIdvcheck013Result />
                  <WatchlistCheckResult >
                  <W2DataEkycScandi025Result />
               </ServiceResult>
               <TransactionInformation>
                  <InterpretResult>
                    { NoInterpretPerformed | Pass | Inconclusive | Fail | NotApplicable }
                  </InterpretResult>
                  <ServiceCallReference>
                    { the unique identifier for this call }
                  </ServiceCallReference>
                  <ServiceTransactions>
                     <--Multiple values here -->
                     <ServiceTransactionInformation>
                        <FailedOverTo>
                            If a service "crashes" we can configure another to take it's place. 
                            the fail-over service name will be here
                        </FailedOverTo>
                        <HaltTriggered>
                       	    { true | false}
                        </HaltTriggered>
                        <Service>
                            The name of the service called
                        </Service>
                        <ServiceInterpretResult>
                            { Pass | Fail | Inconclusive | 
                              NoResults | OneResult | MultipleResults | 
                              NotApplicable | NotPerformed }
                        </ServiceInterpretResult>
                        <ServiceTransactionResult>
                            { None |  SuccessNoResults | SuccessIncompleteResults | 
                              MultipleChoices | ClientErrorInformationFormatInvalid | 
                              ClientErrorInsufficientInformation | NotExecutedDueToPreviousHalt | 
                              ServerErrorGeneralError | ServiceFailureError }
                        </ServiceTransactionResult>
                        <ServiceTransactionResultMessage>
                            Any messages from the service call
                        </ServiceTransactionResultMessage>
                        <ServiceValidationDetails>
                             This object provides the details of the validation step. 
                             If all validation succeeded, then the ValidationFailureReasons 
                             field will be set to null.                        
                        </ServiceValidationDetails>
                        <ValidationResult>
                            { Pass | Fail | Inconclusive | 
                              NoValidationPerformed | NotApplicable }
                        </ValidationResult>
                     </ServiceTransactionInformation>
                  </ServiceTransactions>
               </TransactionInformation>
            </ProcessRequestResult>
         </KYCCheckResult>
      </KYCCheckResponse>
   </Body>
</Envelope>
            {"Example provided in SOAP tab"}

Client Provided Data

This section simply reflects back information that was submitted in the API call.

Property Description
ClientReference This reflects back the client reference that was supplied in the request.
ClientSubaccount An optional reference to identify which of your client accounts this call was made for.
ClientUser An optional reference to identify which individual user made this call. For future compatibility with W2 products we suggest this value should be the user’s email address.
RefersToServiceCallReference Links this call to a previous call by specifying the previous ServiceCallReference.

Transaction Information

This section contains the interpret result for the whole bundle, the service call reference and a section of meta data for each service.

Property Details
InterpretResult The validation result of the Interpret function.
1. Pass- The information supplied to the bundle passed validation.
2. Fail- The information supplied to the bundle failed validation.
3. Inconclusive- It was not possible to generate a clear validation result from the information supplied. It may be necessary to refer this query for further investigation.
4. NoInterpretPerformed - No interpret was performed in this case. Check the other information returned by the services to determine why.
5. NotApplicable - Interpret is not enabled for this bundle.
ServiceTransactions A collection of ServiceTransactionInformation objects. See below
ServiceCallReference A unique reference for this service call.

Service Transaction information

Every service that is called will return one of these:

Property Details
Service The service that was invoked.
ServiceInterpretResult 1. Pass- The query data resulted in a pass.
2. Fail - The query data resulted in a failure.
3. Inconclusive - The query data resulted in an inconclusive outcome.
4. NoResults - The query data returned no results.
5. OneResult - The query data returned a single result.
6. MultipleResults- The query data returned multiple results.
7. NotApplicable- Interpret is not applicable to the call or wasn’t enabled.
8. NotPerformed - An error prevented this result from being categorised.
ServiceTransactionResult 1. Success- The service executed successfully.
2. SuccessNoResults- The service executed successfully but no results were generated.
3. SuccessIncompleteResults- The service executed successfully but too many results were generated to return them all, so the results have been truncated.
4. MultipleChoices - The service could not continue as there are multiple choices available and one of them must be selected or the query must be submitted with more concise information in order to complete execution.
5. ClientErrorInsufficientInformation- There was insufficient information for the service to execute. Check that all of the required fields for the service were supplied.
6. NotExecutedDueToPreviousHalt- The service was not executed because a previous service in the bundle triggered a halt.
7. ServerErrorGeneralError - A general error occurred on the server trying to run the service.
ServiceTransactionResultMessage The message associated with the ServiceTransactionResult if applicable. The ServiceTransactionResultMessage is usually null, but in some cases may provide some insight into the ServiceTransactionResult. For example, if a service returns SuccessIncompleteResults the ServiceTransactionResultMessage may contain an explanation of why, such as there being a limit of 100 results per query. There is no standard across services for this field so it should not be relied upon, instead it is better to use it for debugging or additional information and rely on the ServiceTransactionResult which has consistent behaviour.
ValidationResult 1. Pass - The information supplied to the service passed validation
2. Fail - The information supplied to the service failed validation.
3. Inconclusive - It was not possible to generate a clear validation result from the information supplied. It may be necessary to refer this query for further investigation.
4. NoValidationPerformed - No validation was performed in this case. Check the other information returned by the service to determine why.
5. NotApplicable - The service is not a service that performs validation and therefore validation is not applicable.
ServiceValidationDetails This field provides information about the pre-execution validation step and should be read in conjunction with the ValidationResult field.
HaltTriggered True if the service halted after this service

Upload Document

Upload Document Request

A full description of the upload document request

Sample Requests

This is the structure of a typical SOAP request to the service.

<Envelope>
  <Header>
    <Action>http://tempuri.org/IService/UploadDocument</Action>
  </Header>
  <Body>
    <UploadDocument>
      <DocumentUploadRequest>
        <DocumentData>
            /9j/4TmVRXhpZgAASUkqAAgAAAANAAABBAABAAAAwBQAAAEBBAABAAAArAsAAA8B//----- Data Truncated
        </DocumentData>
        <DocumentExpiry>2016-01-01T00:00:00</DocumentExpiry>
        <DocumentReference>MyDocumentReference</DocumentReference>
        <DocumentType>JPEG</DocumentType>
        <ServiceAuthorisation>
          <APIKey>APIKey</APIKey>
          <ClientReference />
          <ClientSubaccount />
          <ClientUser />
          <RefersToServiceCallReference />
        </ServiceAuthorisation>
      </documentUploadRequest>
    </UploadDocument>
  </Body>
</Envelope>
            {"Example provided in SOAP tab"}
Property Details
ServiceAuthorisation Contains authorisation information to identify the person using the service. See here
DocumentReference Contains a client-specified tracking reference. Maximum 100 Characters
DocumentType None - No type specified / known.
JPEG - A JPEG (Joint Picture Experts Group Image).
PNG - A PNG (Portable Network Graphics) image.
PDF - A PDF (Portable Document Format)
DocumentData Base64 Encoded representation of the document to upload.
DocumentExpiry Desired expiry date to apply to the document to upload.
If left blank, W2 will use the default value of 14 days to expire the document. This can be set anywhere up to a maximum of 6 months.
Once the expiration date has been reached, W2 will remove the image data from our system, however the footprint of the upload will be preserved.
QueryOptions Specify optional flags that alter the invocation of the service. See here

Notes

The maximum file size that we accept for a document upload through SOAP is 4MB. Upload documents up to 15MB through our REST API.

The DocumentData field must contain a Base64 Encoded representation of the document to upload. The recommended method for creating this representation is to use OpenSSL and issuing the following command;

The DocumentData field example

openssl enc -Base64 -in {inputFilePath} -out {outputFilePath} 

The output from the above will be a text string similar to;

/9j/4TmVRXhpZgAASUkqAAgAAAANAAABBAABAAAAwBQAAAEBBAABAAAArAsAAA8B
AgAIAAAAqgAAABABAgAJAAAAsgAAABIBAwABAAAAAQAAABoBBQABAAAAvAAAABsB
BQABAAAAxAAAACgBAwABAAAAAgAAADEBAgAOAAAAzAAAADIBAgAUAAAA2gAAABMC
AwABAAAAAQAAAGmHBAABAAAA7gAAACWIBAABAAAAVAwAAGYMAABzYW1zdW5nAFNN
LU45MTBGAABIAAAAAQAAAEgAAAABAAAATjkxMEZYWFUxQk9DMwAyMDE1OjA4OjAz
IDExOjIwOjM5AB8AmoIFAAEAAABoAgAAnYIFAAEAAABwAgAAIogDAAEAAAACAAAA
J4gDAAEAAAAoAAAAAJAHAAQAAAAwMjIwA5ACABQAAAB4AgAABJACABQAAACMAgAA
......(Output truncated)

Upload Document Response

A full description of the upload document request

Example Response

A Response example

<Envelope>
   <Body>
      <UploadDocumentResponse>
         <UploadDocumentResult>
            <BytesUploaded>9100</BytesUploaded>
            <DocumentReference>MyImage</DocumentReference>
            <DocumentTypeValidationSucceeded>true</DocumentTypeValidationSucceeded>
            <DocumentUID>756df058-6548-4535-a09d-6e47ffdbbd7d</DocumentUID>
            <ResolvedDocumentType>JPEG</ResolvedDocumentType>
         </UploadDocumentResult>
      </UploadDocumentResponse>
   </Body>
</Envelope>
            {"Example provided in SOAP tab"}
Property Name Description
BytesUploaded The number of bytes uploaded to check against expected number.
ResolvedDocumentType The document type as resolved by the service - this can be compared against the expected (submitted) type for validation purposes.
None - No type specified / known.
JPEG - A JPEG (Joint Picture Experts Group Image).
PNG - A PNG (Portable Network Graphics) image.
PDF - A PDF (Portable Document Format)
DocumentTypeValidationSucceeded Whether or not the resolved document type matched the type specified by the user (e.g if the user specified the document was a PNG, and the document resolved to a PNG, this value is true).
DocumentUID The system assigned unique Id applied to this document on upload. Used to refer to the document when associating documents with a service as a part of the UploadedFiles element of a Service Request
DocumentReference An echo of the value that was used on submission - useful when operating asynchronously.

Services

Services Overview


All of our services are exposed through bundles and you will need a bundle name in order to call a service. W2 Support will configure bundles for you, please contact us if this hasn’t been done already.

Each of our service provides different functionality see below for each service.

Footprint Whether a service leaves a footprint or not
Sandbox Whether a service has a sandbox mode available

Sanctions List Checks

Service Footprint Sandbox Description
SIS Plus No Yes Checks if a specified person is under a standard international sanction
SPF Plus No Yes Checks if a specified person is a senior political figure
PEPDesk No Yes Checks if a specified person is a politically exposed person
Watchlist Check No Yes DOW Jones Watchlist check
Profile Details No Yes Profile Details is a profile retrieval service.
PEP and Sanction 006 No Yes Checks if a specified person is on a PEP or Sanctions list
W2-DATA-W2-DATA-DISQUALIFIEDS-UK-008 No Yes Perform searches against a list of Disqualified Directors

Identity Check Services UK

Service Footprint Sandbox Description
W2 DATA EKYC UK 007 Yes Yes A UK Identity check service
ID Check Name Lookup No Yes A name verification service.
Director Check UK No Yes Searches the UK database of directors
W2 Data Ekyc UK 005 Yes Yes Id check service for the UK
W2DataEkycUk007B Yes Yes UK Identity verification service
W2DataEkycUk015 Yes Yes UK Identity verification service
W2 Data Bank Account Verification Uk 007 Service Yes Yes  
W2 Data Mortality Uk 035 No Yes Mortality verification service

Identity Check International

Service Footprint Sandbox Description
Id Check NL Alpha Yes Yes Identity check service for the Netherlands
ID Check ZA Alpha Yes Yes Identity check service for South Africa
ID Check AT Bravo Yes Yes Identity check service for Austria
ID Check CH Bravo Yes Yes Identity check service for Switzerland
ID Check CZ Bravo Yes Yes Identity Check service for Czech Republic
ID Check DE Bravo Yes Yes Identity Check service for Germany
ID Check IT Bravo Yes Yes An Identity Check service for Italy
ID Check SK Bravo Yes Yes An Identity check service for the Slovak Republic
W2 Data Ekyc SCANDI 025 No No An Identity Check service for Sweden, Norway and Denmark
W2 Data EKYC US 005 Yes Yes Identity check for USA
W2 Data EKYC CA 005 Yes Yes Identity check for Canada
W2 Data EKYC AU 029 Yes Yes Identity check for Australia
W2 Data EKYC DK 029 Yes Yes Identity check for Denmark
W2 Data EKYC ES 029 Yes Yes Identity check for Spain
W2 Data EKYC FR 029 Yes Yes Identity check for France
W2 Data EKYC DE 029 Yes Yes Identity check for Germany
W2 Data EKYC NL 029 Yes Yes Identity check for Netherlands
W2 Data Ekyc Global Multisource 043 No Yes Global Id check service
W2 Data Ekyc Singlesource 043 No Yes Global Id check service

Address Lookup

Service Footprint Sandbox Description
W2 Data Address Lookup 024 No Yes W2’s address lookup service for the UK and international addresses
W2 Data Email Validate 010 No No W2’s email validation service

Document Services

Service Footprint Sandbox Description
ID Check UK Driving Licence Number No Yes A driving licence verification service
ID Check Passport MRZ No Yes A passport verification service
W2 Data IDV Check 013 No Yes An identity verification service that uses physical documentation

Know Your Business Services

Service Footprint Sandbox Description
W2 Data EKYB UK 009 No Yes Know your business service for UK and Ireland businesses
W2 Data EKYB Global Online 009 No Yes A know your business service for Global businesses

Age Verification

Service Footprint Sandbox Description
W2 Data Age Verification 007 Service No Yes An age verification service for the UK

Affordability Services

Service Footprint Sandbox Description
W2 Affordability Vulnerability DOD No Yes An affordability service for identifying financially vulnerable individuals.
W2 Affordability Vulnerability VRS No Yes An affordability service for identifying self-declared vulnerability individuals.</div>

SIS Plus


Standard International Sanctions (SISPlus) service checks if a specified person is under a standard international sanction. If there are multiple matches, it provides a list of them, up to a limit of 100.

Product Code: W2-DATA-SANCTION-001

Properties

The following properties pertain to this service.

Property Name Type Optional/Mandatory Notes
NameQuery String Mandatory* The name of the person you are searching for. Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead.
NameQueryMatchThreshold Integer Optional The minimum name match score to match against. Default is 80 (all matches)
DateOfBirthMatchThreshold Integer Optional The minimum date of birth score to match against. Default is null (off). If supplied, at least one component of the date of birth must be supplied.
DayOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
MonthOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
YearOfBirth Integer Optional Used with DateOfBirthMatchThreshold.

Response
The following table gives some more details about the response.

Example Business Response


"SISPlusCheckResult": {
	"MatchResults": [
		{
			"MatchType": "Unknown",
			"Name": "GAZPROM TELEKOM, OOO",
			"NameMatchScore": "90",
			"ProfileId": "SANC-bb310261-ad57-9a34-a4bd-18044e9a0b35"
		}
	]
}


<SISPlusCheckResult>
 <MatchResults>
	<!-- one or more of these -->
	<CheckMatch>
	   <BirthDay />
	   <BirthMonth />
	   <BirthYear />
	   <DateOfBirthMatchScore />
	   <MatchType>Unknown</MatchType>
	   <Name>GAZPROM TELEKOM, OOO</Name>
	   <NameMatchScore>90</NameMatchScore>
	   <ProfileId>SANC-bb310261-ad57-9a34-a4bd-18044e9a0b35</ProfileId>
	</CheckMatch>	
 </MatchResults>
</SISPlusCheckResult>

Example Response

"SISPlusCheckResult": {
	"MatchResults": [
		{
			"MatchType": "Person",
			"Name": "KIM, Jong Un",
			"NameMatchScore": "90",
			"ProfileId": "SANC-3501c004-7b45-3f64-bfa2-158bf79065ac"
		}
	]
}
<SISPlusCheckResult>
 <MatchResults>
	<!-- one or more of these -->
	<CheckMatch>
	   <BirthDay />
	   <BirthMonth />
	   <BirthYear />
	   <DateOfBirthMatchScore />
	   <MatchType>Person</MatchType>
	   <Name>KIM, Jong Un</Name>
	   <NameMatchScore>100</NameMatchScore>
	   <ProfileId>SANC-3501c004-7b45-3f64-bfa2-158bf79065ac</ProfileId>
	</CheckMatch>	
 </MatchResults>
</SISPlusCheckResult>
Property Name Type Description
BirthDay String The birth day of the record matched against.
BirthMonth Integer The birth month of the record matched against.
BirthYear Integer The birth month of the record matched against.
DateOfBirthMatchScore Integer The score that this record’s date of birth matched the query date.
MatchType MatchTypeEnum The type of match where the data is available in the source. See below
Name String The name of the record matched against. Depending on the source data there may be multiple names here combined into one.
NameMatchScore Integer The score that this record’s name matched the query name.
ProfileId String A unique reference for a profile that can be subsequently retrieved in full using the Profile Details Service.

Notes
The date of birth parameters will be null if no date of birth matching threshold was specified, even if the record has a date of birth, as it reflects the matching that occurred.

MatchTypeEnum
Represents the type of match.

Enumeration Value Value Description
Person 1 The match is a Person.
Entity 2 The match is an Entity.
Unknown 3 The match is of unknown type. This may represent missing data and does not necessarily mean ‘other’.
Vessel 4 The match is a vessel (usually maritime).
Aircraft 5 The match is an aircraft.

Transaction Result

HaltTriggered False
ServiceTransactionResult Success
SuccessNoResults
SuccessIncompleteResults - Too many matches generated, results truncated
ClientErrorInsufficientInformation - Required field not supplied
ClientErrorInformationFormatInvalid - Invalid format in field
ServerErrorGeneralError - Error with third party service
ServiceInterpretResult OneResult
MultipleResults
NoResults
NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult NotApplicable - No search occurred to match against
Fail - MissingMandatoryField or PatternNotMatched

Alert Filters

Available Filters

Applying Filters:

    "Options": {
        "Sandbox": "false",
        "IncludeCountries":"GBR,UDF,SUP - Up to 20 comma delimited countries",
        "ExcludeEntities": "true | false",
        "ExcludeIndividuals": "true | false",
        "ExcludeExPeps": "true | false"
    }
<QueryOptions>
  <KeyValueOfstringstring>
    <Key>Sandbox</Key>
    <Value>false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>IncludeCountries</Key>
    <Value>GBR,UDF,SUP - Up to 20 comma delimited countries</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeIndividuals</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeEntities</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeExPeps</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
</QueryOptions>
Filter Type Description
Include Countries If included, this filter will only return alerts that are on profiles that indicate that the main country of residence/activity is in the included country. Please note that if this filter is used, we advise to also use the 2 additional filters for undefined and supra-Nationals. This will include alerts generated for subjects that cannot be readily assigned to a country.
Exclude Ex-PEPs If included, this filter excludes alerts that would have been generated on individuals that have left the office that attracted their ‘PEP status’ for a defined period of time. For a risk based approach, it is normally appropriate to consider ex-PEPs for some time, however, this time will differ based on the risk profile of the business that your organisation conducts.
Exclude Individuals/Entities When applied, this filter will suppress alerts that are generated on either individuals (if you are conducting a search on a known business/entity) OR suppress entities (if conducting a search on an known individual)

Sandbox

Example Request - SIS Plus

{
    "Bundle": "KYC_SIS",
    "Data": {
        "NameQuery": "David Cameron"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

If the Sandbox query option is set to “true” the following entry will be returned in the ServiceResult:

Example Response for “Kim Jong Un”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "Multiple Results",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered> False </HaltTriggered>
<ServiceInterpretResult> Multiple Results </ServiceInterpretResult>
<ServiceTransactionResult> Success </ServiceTransactionResult>
<ServiceTransactionResultMessage> "This call was generated using sandbox mode" </ServiceTransactionResultMessage>
<ValidationResult> Pass </ValidationResult>

Example Response for all OTHER name queries:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NoResults",
	"ServiceTransactionResult": "SuccessNoResults",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered> False </HaltTriggered>
<ServiceInterpretResult> NoResults </ServiceInterpretResult>
<ServiceTransactionResult> SuccessNoResults </ServiceTransactionResult>
<ServiceTransactionResultMessage> "This call was generated using sandbox mode" </ServiceTransactionResultMessage>
<ValidationResult> Pass </ValidationResult>

SPF Plus

Senior Political Figures (SPFPlus) service checks if a specified person is a senior political figure (cabinet level or equivalent). If there are multiple matches, it provides a list of them, up to a limit of 100.

Product Code: W2-DATA-SPF-001

Properties

The following properties pertain to this service.

Property Name Type Optional/Mandatory Notes
NameQuery String Mandatory* The name of the person you are searching for. Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead.
NameQueryMatchThreshold Integer Optional The minimum name match score to match against. Default is 80 (all matches)
DateOfBirthMatchThreshold Integer Optional The minimum date of birth score to match against. Default is null (off). If supplied, at least one component of the date of birth must be supplied.
DayOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
MonthOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
YearOfBirth Integer Optional Used with DateOfBirthMatchThreshold.



Transaction Result

HaltTriggered False
ServiceTransactionResult Success
SuccessNoResults
SuccessIncompleteResults - Too many matches generated, results truncated
ClientErrorInsufficientInformation - Required field not supplied
ClientErrorInformationFormatInvalid - Invalid format in field
ServerErrorGeneralError - Error with third party service
ServiceInterpretResult OneResult
MultipleResults
NoResults
NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult NotApplicable - No search occurred to match against
Fail - MissingMandatoryField or PatternNotMatched

Response

The following table gives some more details about the response.

Example Response

  "SPFPlusCheckResult": {
  	"MatchResults": [{
  			"MatchType": "Unknown",
  			"Name": "KIM Jong Un",
  			"NameMatchScore": "100",
  			"ProfileId": "SANC-ee33479b-caaf-1a2d-4d75-e91692143035"
  		}
  	]
  }
<SPFPlusCheckResult>
  <MatchResults>
    <CheckMatch>
      <BirthDay />
      <BirthMonth />
      <BirthYear />
      <DateOfBirthMatchScore />
      <MatchType>Unknown</MatchType>
      <Name>KIM Jong Un</Name>
      <NameMatchScore>100</NameMatchScore>
      <ProfileId>SANC-ee33479b-caaf-1a2d-4d75-e91692143035</ProfileId>
    </CheckMatch>
  </MatchResults>
</SPFPlusCheckResult>
Property Name Type Description
BirthDay String The birth day of the record matched against.
BirthMonth Integer The birth month of the record matched against.
BirthYear Integer The birth month of the record matched against.
DateOfBirthMatchScore Integer The score that this record’s date of birth matched the query date.
MatchType MatchTypeEnum The type of match where the data is available in the source. See below
Name String The name of the record matched against. Depending on the source data there may be multiple names here combined into one.
NameMatchScore Integer The score that this record’s name matched the query name.
ProfileId String A unique reference for a profile that can be subsequently retrieved in full using the Profile Details Service.

Notes
The date of birth parameters will be null if no date of birth matching threshold was specified, even if the record has a date of birth, as it reflects the matching that occurred.

MatchTypeEnum
Represents the type of match.

Enumeration Value Value Description
Person 1 The match is a Person.
Entity 2 The match is an Entity.
Unknown 3 The match is of unknown type. This may represent missing data and does not necessarily mean ‘other’.
Vessel 4 The match is a vessel (usually maritime).
Aircraft 5 The match is an aircraft.

Alert Filters

Available Filters

Applying Filters:

    "Options": {
        "Sandbox": "false",
        "IncludeCountries":"GBR,UDF,SUP - Up to 20 comma delimited countries",
    }
<QueryOptions>
  <KeyValueOfstringstring>
    <Key>Sandbox</Key>
    <Value>false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>IncludeCountries</Key>
    <Value>GBR,UDF,SUP - Up to 20 comma delimited countries</Value>
  </KeyValueOfstringstring>
</QueryOptions>
Filter Type Description
Include Countries If included, this filter will only return alerts that are on profiles that indicate that the main country of residence/activity is in the included country. Please note that if this filter is used, we advise to also use the 2 additional filters for undefined and supra-Nationals. This will include alerts generated for subjects that cannot be readily assigned to a country.

Sandbox

Example Request - SPF Plus

{
    "Bundle": "KYC_SPF",
    "Data": {
        "NameQuery": "David Cameron"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

If the Sandbox query option is set to “true” the following entry will be returned in the ServiceResult:

Example Response for “David Cameron”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "Multiple Results",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered> False </HaltTriggered>
<ServiceInterpretResult> Multiple Results </ServiceInterpretResult>
<ServiceTransactionResult> Success </ServiceTransactionResult>
<ServiceTransactionResultMessage> "This call was generated using sandbox mode" </ServiceTransactionResultMessage>
<ValidationResult> Pass </ValidationResult>

Example Response for all OTHER name queries:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NoResults",
	"ServiceTransactionResult": "SuccessNoResults",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered> False </HaltTriggered>
<ServiceInterpretResult> NoResults </ServiceInterpretResult>
<ServiceTransactionResult> SuccessNoResults </ServiceTransactionResult>
<ServiceTransactionResultMessage> "This call was generated using sandbox mode" </ServiceTransactionResultMessage>
<ValidationResult> Pass </ValidationResult>

PEPDesk

Politically Exposed Persons service

PEPDesk service checks if a specified person is a politically exposed person, i.e. they are in a prominent public position or a close relative of someone who is. If there are multiple matches, it provides a list of them, up to a limit of 100.

Product Code: W2-DATA-PEP-003

Properties

The following properties pertain to this service.

Property Name Type Optional/Mandatory Notes
NameQuery String Mandatory* The name of the person you are searching for. Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead.
NameQueryMatchThreshold Integer Optional The minimum name match score to match against. Default is 80 (all matches)
DateOfBirthMatchThreshold Integer Optional The minimum date of birth score to match against. Default is null (off). If supplied, at least one component of the date of birth must be supplied.
DayOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
MonthOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
YearOfBirth Integer Optional Used with DateOfBirthMatchThreshold.

Response

PEP Desk Response

  "PEPDeskCheckResult": {
    "MatchResults": [
      {
         "birthDay": 8,
         "birthMonth": 1,
         "birthYear": 1983,
         "matchType": "Person",
         "name": "Kim, Jong Un",
         "nameMatchScore": 100,
         "profileId": "839ecc35-3ebc-e340-b4cb-f298ce520995"
      }
    ]
  }
<PEPDeskCheckResult>
	 <!-- One or more of these --> 
	 <MatchResults>
		<CheckMatch>
		   <BirthDay>8<BirthDay/>
		   <BirthMonth>1<BirthMonth/>
		   <BirthYear>1983</BirthYear>
		   <DateOfBirthMatchScore />
		   <MatchType>Person</MatchType>
		   <Name>Kim, Jong Un</Name>
		   <NameMatchScore>100</NameMatchScore>
		   <ProfileId>839ecc35-3ebc-e340-b4cb-f298ce520995</ProfileId>
		</CheckMatch>
	 </MatchResults>
</PEPDeskCheckResult>

The following table gives some more details about the response.

Property Name Type Description
BirthDay String The birth day of the record matched against.
BirthMonth Integer The birth month of the record matched against.
BirthYear Integer The birth month of the record matched against.
DateOfBirthMatchScore Integer The score that this record’s date of birth matched the query date.
MatchType MatchTypeEnum The type of match where the data is available in the source. See below
Name String The name of the record matched against. Depending on the source data there may be multiple names here combined into one.
NameMatchScore Integer The score that this record’s name matched the query name.
ProfileId String A unique reference for a profile that can be subsequently retrieved in full using the Profile Details Service.

Notes
The date of birth parameters will be null if no date of birth matching threshold was specified, even if the record has a date of birth, as it reflects the matching that occurred.

MatchTypeEnum
Represents the type of match.

Enumeration Value Value Description
Person 1 The match is a Person.
Entity 2 The match is an Entity.
Unknown 3 The match is of unknown type. This may represent missing data and does not necessarily mean ‘other’.
Vessel 4 The match is a vessel (usually maritime).
Aircraft 5 The match is an aircraft.

Transaction Result

HaltTriggered False
ServiceTransactionResult Success
SuccessNoResults
SuccessIncompleteResults - Too many matches generated, results truncated
ClientErrorInsufficientInformation - Required field not supplied
ClientErrorInformationFormatInvalid - Invalid format in field
ServerErrorGeneralError - Error with third party service
ServiceInterpretResult OneResult
MultipleResults
NoResults
NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult NotApplicable - No search occurred to match against
Fail - MissingMandatoryField or PatternNotMatched

Alert Filters

Available Filters

Applying Filters:

    "Options": {
        "Sandbox": "false",
        "IncludeCountries":"GBR,UDF,SUP - Up to 20 comma delimited countries",
        "ExcludeExPeps": "true | false",
        "IncludeExPEPsFromDate": "1990-08-17 OR 1990-08-17T06:04:18Z - UTC Date Time"
    }
<QueryOptions>
  <KeyValueOfstringstring>
    <Key>Sandbox</Key>
    <Value>false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>IncludeCountries</Key>
    <Value>GBR,UDF,SUP - Up to 20 comma delimited countries</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeExPeps</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>IncludeExPEPsFromDate</Key>
    <Value>1990-08-17 OR 1990-08-17T06:04:18Z - UTC Date Time</Value>
  </KeyValueOfstringstring>
</QueryOptions>
Filter Type Description
Include Countries If included, this filter will only return alerts that are on profiles that indicate that the main country of residence/activity is in the included country. Please note that if this filter is used, we advise to also use the 2 additional filters for undefined and supra-Nationals. This will include alerts generated for subjects that cannot be readily assigned to a country.
Exclude Ex-PEP If included, this filter excludes alerts that would have been generated on individuals that have left the office that attracted their ‘PEP status’ for a defined period of time. For a risk based approach, it is normally appropriate to consider ex-PEPs for some time, however, this time will differ based on the risk profile of the business that your organisation conducts.
IncludeExPEPsFromDate If included, this filter includes alerts that are generated on individuals who gained their ex-PEP status after the specified date.

Sandbox

Example Request - PEP Desk

{
    "Bundle": "KYC_PEP",
    "Data": {
        "NameQuery": "David Cameron"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

Example Response for “David Cameron”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "Multiple Results",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>OneResult</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>Pass</ValidationResult>

Example Response for all OTHER name queries:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NoResults",
	"ServiceTransactionResult": "SuccessNoResults",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered> False </HaltTriggered>
<ServiceInterpretResult> NoResults </ServiceInterpretResult>
<ServiceTransactionResult> SuccessNoResults </ServiceTransactionResult>
<ServiceTransactionResultMessage> "This call was generated using sandbox mode" </ServiceTransactionResultMessage>
<ValidationResult> Pass </ValidationResult>

Watchlist Check


Watchlist service checks if a specified person or entity is held within a comprehensive dataset comprising PEP, Sanction, Adverse media content and enforcement watchlists from around the globe. If there are multiple matches, it provides a list of them, up to a limit of 100.

Product Code: W2-DATA-PEP_AND_SANCTION-002

Response
The following shows a sample of the <WatchlistCheckResult> object that is returned in the <ServiceResult> Section of the <ProcessRequestResult> object

Properties

The following properties pertain to this service.

Property Name Type Optional/Mandatory Notes
NameQuery String Mandatory* The name of the person you are searching for. Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead.
NameQueryMatchThreshold Integer Optional The minimum name match score to match against. Default is 80 (all matches)
DateOfBirthMatchThreshold Integer Optional The minimum date of birth score to match against. Default is null (off). If supplied, at least one component of the date of birth must be supplied.
DayOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
MonthOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
YearOfBirth Integer Optional Used with DateOfBirthMatchThreshold.

Response
The following table gives some more details about the response.

Sample Response - Watchlist Check

"WatchlistCheckResult": {
	"MatchResults": [{
			"MatchType": "Person",
			"Name": "JOHN SMITH",
			"NameMatchScore": "85",
			"ProfileId": "69e10264-4b90-64fe-b4b7-c9dddafd0241"
		}, {
			"MatchType": "Person",
			"Name": "JOHN JAMES SMITH",
			"NameMatchScore": "85",
			"ProfileId": "cb5f2851-64c0-6866-0ed1-da306e45efb2"
		}
	]
}
<WatchlistCheckResult>
	 <MatchResults>
		<CheckMatch>
		   <BirthDay />
		   <BirthMonth />
		   <BirthYear />
		   <DateOfBirthMatchScore />
		   <MatchType>Person</MatchType>
		   <Name>JOHN SMITH</Name>
		   <NameMatchScore>85</NameMatchScore>
		   <ProfileId>69e10264-4b90-64fe-b4b7-c9dddafd0241</ProfileId>
		</CheckMatch>
		<CheckMatch>
		   <BirthDay />
		   <BirthMonth />
		   <BirthYear />
		   <DateOfBirthMatchScore />
		   <MatchType>Person</MatchType>
		   <Name>JOHN JAMES SMITH</Name>
		   <NameMatchScore>85</NameMatchScore>
		   <ProfileId>cb5f2851-64c0-6866-0ed1-da306e45efb2</ProfileId>
		</CheckMatch>
	 </MatchResults>
</WatchlistCheckResult>
Property Name Type Description
BirthDay String The birth day of the record matched against.
BirthMonth Integer The birth month of the record matched against.
BirthYear Integer The birth month of the record matched against.
DateOfBirthMatchScore Integer The score that this record’s date of birth matched the query date.
MatchType MatchTypeEnum The type of match where the data is available in the source. See below
Name String The name of the record matched against. Depending on the source data there may be multiple names here combined into one.
NameMatchScore Integer The score that this record’s name matched the query name.
ProfileId String A unique reference for a profile that can be subsequently retrieved in full using the Profile Details Service.

Notes
The date of birth parameters will be null if no date of birth matching threshold was specified, even if the record has a date of birth, as it reflects the matching that occurred.

MatchTypeEnum
Represents the type of match.

Enumeration Value Value Description
Person 1 The match is a Person.
Entity 2 The match is an Entity.
Unknown 3 The match is of unknown type. This may represent missing data and does not necessarily mean ‘other’.
Vessel 4 The match is a vessel (usually maritime).
Aircraft 5 The match is an aircraft.

Transaction Result

HaltTriggered False
ServiceTransactionResult Success
SuccessNoResults
SuccessIncompleteResults - Too many matches generated, results truncated
ClientErrorInsufficientInformation - Required field not supplied
ClientErrorInformationFormatInvalid - Invalid format in field
ServerErrorGeneralError - Error with third party service
ServiceInterpretResult OneResult
MultipleResults
NoResults
NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult NotApplicable - No search occurred to match against
Fail - MissingMandatoryField or PatternNotMatched

Alert Filters

Available Filters

Applying Filters:

    "Options": {
        "Sandbox": "false",
        "IncludeCountries":"GBR,UDF,SUP - Up to 20 comma delimited countries",
        "ExcludeEntities": "true | false",
        "ExcludeIndividuals": "true | false",
        "ExcludeExPeps": "true | false"
    }
<QueryOptions>
  <KeyValueOfstringstring>
    <Key>Sandbox</Key>
    <Value>false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>IncludeCountries</Key>
    <Value>GBR,UDF,SUP - Up to 20 comma delimited countries</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeIndividuals</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeEntities</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeExPeps</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
</QueryOptions>
Filter Type Description
Include Countries If included, this filter will only return alerts that are on profiles that indicate that the main country of residence/activity is in the included country. Please note that if this filter is used, we advise to also use the 2 additional filters for undefined and supra-Nationals. This will include alerts generated for subjects that cannot be readily assigned to a country.
Exclude Ex-PEPs If included, this filter excludes alerts that would have been generated on individuals that have left the office that attracted their ‘PEP status’ for a defined period of time. For a risk based approach, it is normally appropriate to consider ex-PEPs for some time, however, this time will differ based on the risk profile of the business that your organisation conducts.
Exclude Individuals/Entities When applied, this filter will suppress alerts that are generated on either individuals (if you are conducting a search on a known business/entity) OR suppress entities (if conducting a search on an known individual)

Sandbox

Example Request - Watchlist

{
    "Bundle": "KYC_Watchlist",
    "Data": {
        "NameQuery": "David Cameron"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

If the Sandbox query option is set to “true” the following entry will be returned in the ServiceResult:

Example Response for “Kim Jong Un”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "OneResult",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>OneResult</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>Pass</ValidationResult>

Example Response for all OTHER name queries:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NoResults",
	"ServiceTransactionResult": "SuccessNoResults",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "Pass"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NoResults</ServiceInterpretResult>
<ServiceTransactionResult>SuccessNoResults</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>Pass</ValidationResult>

Profile Details


ProfileDetails is a profile retrieval service. For any check that returns a profile ID this service will retrieve the full report on that ID.

Product Codes: W2-DATA-PROFILE_DETAILS-024

Properties

The following properties pertain to this service.

Property Name Type Optional/Mandatory Notes
ProfileID String Mandatory A unique profile reference, as returned by one of the ‘Check’ services. NB: For UK Directors the ID returned by DirectorUKCheck the Companies House number must be prefixed with ‘DIR-‘, e.g. ‘DIR-99999999’.

Director UK Details Response

Example Response - Director UK Details

{
  "ProfileDetailsResult": {
    "DirectorUKDetailsResult": {
      "DirectorUKDetailsDirector": {
        "Address1": "221B Baker Street",
        "Address4": "London",
        "BirthDate": "01/01/1970",
        "DirectorNumber": "123456789",
        "Directorships": {
          "Directorship": {
            "AppointDate": "01/01/1980",
            "CompanyName": "DIRSE LLP",
            "CompanyNumber": "AB123456",
            "CompanyStatus": "Active - Accounts Filed",
            "CreditLimit": "10000",
            "CreditRating": "79",
            "Function": "LLP Member"
          }
        },
        "Name": "Jessica Black",
        "Nationality": "U.KINGDOM",
        "Postcode": "W1S 1AA",
        "Title": "Mrs"
      }
    }
  }
}
<ProfileDetailsResult>
	<DirectorUKDetailsResult >
		<DirectorUKDetailsDirector >
		<Address1>221B Baker Street</Address1>
		<Address2 />
		<Address3 />
		<Address4>London</Address4>
		<Address5 />
		<BirthDate>01/01/1970</BirthDate>
		<DirectorNumber>123456789</DirectorNumber>
		<Directorships>
			<Directorship>
				<AppointDate>01/01/1980</AppointDate>
				<CompanyName>DIRSE LLP</CompanyName>
				<CompanyNumber>AB123456</CompanyNumber>
				<CompanyStatus>Active - Accounts Filed</CompanyStatus>
				<CreditLimit>10000</CreditLimit>
				<CreditRating>79</CreditRating>
				<Function>LLP Member</Function>
			</Directorship>
		</Directorships>
		<Honours />
		<Name>Jessica Black</Name>
		<Nationality>U.KINGDOM</Nationality>
		<Postcode>W1S 1AA</Postcode>
		<Title>Mrs</Title>
		</DirectorUKDetailsDirector>
		<DirectorUKDetailsErrors  />
	</DirectorUKDetailsResult>
</ProfileDetailsResult>

Response Properties

Property Name Type Description
Address1 String First line of address.
Address2 String Second line of address.
Address3 String Third line of address.
Address4 String Fourth line of address.
Address5 String Fifth line of address.
BirthDate String Date of birth in a ‘dd/MM/yyyy’ format.
DirectorNumber String Number of director.
Directorships Directorships List of directorships held by director. See below.
Honours String Honours held by director.
Name String Name of director.
Nationality String Nationality of director.
Postcode String Postcode of director.
Title String Title of director.

Directorships
Directorships are a collection of one or more Directorship items, which are defined below.

Property Name Type Description
AppointDate String Date director was appointed.
CompanyName String Name of company.
CompanyNumber String Company number, as listed on Companies House.
CompanyStatus String How active the company still is.
CreditLimit String Credit limit of the company.
CreditRating String Credit rating of the company.
Function String Official function of director.

PEP Details Response

Example Response - PEP Details

"profileDetailsResult": {
	"pepDeskDetailsResult": {
		"additionalInformation": [],
		"country": [
			"European Union",
			"United Kingdrom"
		],
		"dateOfBirth": [
			"09.10.1966"
		],
		"functionDetails": [{
				"category": "State Executive Function, Government, Ministries",
				"dateNotInchargeSince": "",
				"exPEP": false,
				"function": "European Council",
				"specificFunction": "Member"
			}, {
				"category": "Heads of State, Major Government Offices and Support",
				"dateNotInchargeSince": "",
				"exPEP": false,
				"function": "Office of the Prime Minister, Cabinet Office",
				"specificFunction": "Minister for the Civil Service"
			}, {
				"category": "Political Leaders",
				"dateNotInchargeSince": "",
				"exPEP": false,
				"function": "Conservative Party",
				"specificFunction": "Leader"
			}
		],
		"gender": "Male",
		"nameDetails": [{
				"alternativeScript": "",
				"firstName": "David William Donald",
				"fullName": "",
				"lastName": "Cameron",
				"otherName": "Cameron, David",
				"title": "Mr."
			}, {
				"alternativeScript": "",
				"firstName": "David William Donald",
				"fullName": "",
				"lastName": "Cameron",
				"otherName": "Cameron, David",
				"title": "The Rt Hon Mr."
			}
		],
		"placeOfBirth": [
			"London, United Kingdom"
		]
	}
}
<PEPDeskDetailsResult >
	<AdditionalInformation/>
	<Country>
		<string>European Union</string>
		<string>United Kingdom</string>
	</Country>
	<DateOfBirth>
		<string>09.10.1966</string>
	</DateOfBirth>
	<FunctionDetails>
		<PEPDeskFunctionDetails>
			<Category>State Executive Function, Government, Ministries</Category>
			<DateNotInchargeSince/>
			<ExPEP>false</ExPEP>
			<Function>European Council</Function>
			<SpecificFunction>Member</SpecificFunction>
		</PEPDeskFunctionDetails>
		<PEPDeskFunctionDetails>
			<Category>Heads of State, Major Government Offices and Support</Category>
			<DateNotInchargeSince/>
			<ExPEP>false</ExPEP>
			<Function>Office of the Prime Minister, Cabinet Office</Function>
			<SpecificFunction>Minister for the Civil Service</SpecificFunction>
		</PEPDeskFunctionDetails>
		<PEPDeskFunctionDetails>
			<Category>Political Leaders</Category>
			<DateNotInchargeSince/>
			<ExPEP>false</ExPEP>
			<Function>Conservative Party</Function>
			<SpecificFunction>Leader</SpecificFunction>
		</PEPDeskFunctionDetails>
	</FunctionDetails>
	<Gender>Male</Gender>
	<NameDetails>
		<PEPDeskNameDetails>
			<AlternativeScript/>
			<FirstName>David William Donald</FirstName>
			<FullName/>
			<LastName>Cameron</LastName>
			<OtherName>Cameron, David</OtherName>
			<Title>Mr.</Title>
		</PEPDeskNameDetails>
		<PEPDeskNameDetails>
			<AlternativeScript/>
			<FirstName>David William Donald</FirstName>
			<FullName/>
			<LastName>Cameron</LastName>
			<OtherName>Cameron, David</OtherName>
			<Title>The Rt Hon Mr.</Title>
		</PEPDeskNameDetails>
	</NameDetails>
	<PlaceOfBirth>
		<string>London, United Kingdom</string>
	</PlaceOfBirth>
</PEPDeskDetailsResult>

Response Properties

Property Name Type Description
AdditionalInformation String  
Country String  
DateOfBirth String  
FunctionDetails PEPDeskFunctionDetails See below
Gender String  
NameDetails PEPDeskNameDetails See below
PlaceOfBirth String  

PEPDeskFunctionDetails

Property Name Type Description
Function String  
SpecificFunction String  
Category String  
DateNotInchargeSince String  
ExPEP Boolean  

PEPDeskNameDetails

Property Name Type Description
Title String  
FirstName String  
LastName String  
FullName String  
OtherName String  
AlternativeScript String  

SIS Plus / SPF Plus Details Response

Example Response - SIS Plus / SPF Plus Details

          "sisPlusDetailsResult": {
                "active": true,
                "addressDetails": [
                    {
                        "address": "",
                        "addressRemarks": "",
                        "city": "",
                        "country": "Korea, North",
                        "postcode": "",
                        "province": ""
                    }
                ],
                "aliasDetails": [],
                "callsign": [
                    ""
                ],
                "citizenShip": [],
                "constituancy": [],
                "dateOfBirth": [],
                "documents": [],
                "email": [],
                "eyes": [],
                "fax": [],
                "grt": [],
                "hair": [],
                "height": [],
                "imageUrl": [],
                "languages": [],
                "legalBasis": [],
                "listingDate": [],
                "marks": [],
                "nameDetails": [
                    {
                        "courtesyTitle": "",
                        "firstName": "",
                        "fullName": "KIM, Jong Un",
                        "lastName": "",
                        "middleName": "",
                        "suffix": "",
                        "title": "Chairman of the Workers' Party of Korea"
                    }
                ],
                "offense": [],
                "pageUrl": [
                    "http://www.treasury.gov/resource-center/sanctions/SDN-List/Pages/default.aspx"
                ],
                "phone": [],
                "placeOfBirth": [],
                "politicalParty": [],
                "program": [
                    "DPRK3"
                ],
                "remarks": [
                    "DOB 08 Jan 1984; Secondary sanctions risk: North Korea Sanctions Regulations, sections 510.201 and 510.210; Transactions Prohibited For Persons Owned or Controlled By U.S. Financial Institutions: North Korea Sanctions Regulations section 510.214; Chairman of the Workers' Party of Korea."
                ],
                "riskCode": [
                    "WL"
                ],
                "sex": [],
                "source": [
                    "Specially Designated Nationals List"
                ],
                "tin": [],
                "tonnage": [],
                "type": [
                    "individual"
                ],
                "vesselFlag": [],
                "vesselOwner": [],
                "vesselType": [],
                "wantedBy": [],
                "website": [],
                "weight": []
            }
 "spfPlusDetailsResult": {
                "active": true,
                "addressDetails": [
                    {
                        "address": "",
                        "addressRemarks": "",
                        "city": "",
                        "country": "Korea, North - NDE",
                        "postcode": "",
                        "province": ""
                    }
                ],
                "aliasDetails": [],
                "callsign": [],
                "citizenShip": [],
                "constituancy": [],
                "dateOfBirth": [],
                "documents": [],
                "email": [],
                "eyes": [],
                "fax": [],
                "grt": [],
                "hair": [],
                "height": [],
                "imageUrl": [],
                "languages": [],
                "legalBasis": [],
                "listingDate": [],
                "marks": [],
                "nameDetails": [
                    {
                        "courtesyTitle": "",
                        "firstName": "KIM",
                        "fullName": "KIM Jong Un",
                        "lastName": "Un",
                        "middleName": "Jong",
                        "suffix": "",
                        "title": "Chairman, KWP"
                    }
                ],
                "offense": [],
                "pageUrl": [
                    "https://www.cia.gov/library/publications/world-leaders-1/KN.html"
                ],
                "phone": [],
                "placeOfBirth": [],
                "politicalParty": [],
                "program": [
                    "World Leaders"
                ],
                "remarks": [],
                "riskCode": [
                    "PEP"
                ],
                "sex": [],
                "source": [
                    "Chiefs of State and Cabinet Members of Foreign Governments"
                ],
                "tin": [],
                "tonnage": [],
                "type": [],
                "vesselFlag": [],
                "vesselOwner": [],
                "vesselType": [],
                "wantedBy": [
                    "Central Intelligence Agency"
                ],
                "website": [],
                "weight": []
            }

<SISPlusDetailsResult xmlns:c="http://schemas.datacontract.org/2004/07/NeuromancerLibrary.DataContracts.SanctionsPlus">
	<Active>true</Active>
	<AddressDetails>
		<SanctionsPlusAddressDetails>
			<Address></Address>
			<AddressRemarks></AddressRemarks>
			<City></City>
			<Country>Korea, North</Country>
			<Postcode/>
			<Province/>
		</SanctionsPlusAddressDetails>
	</AddressDetails>
	<AliasDetails/>
	<Callsign></Callsign>
	<CitizenShip/>
	<Constituancy/>
	<DateOfBirth/>
	<Documents/>
	<Email/>
	<Eyes/>
	<Fax/>
	<GRT/>
	<Hair/>
	<Height/>
	<ImageUrl/>
	<Languages/>
	<LegalBasis/>
	<ListingDate/>
	<Marks/>
	<NameDetails>
		<SanctionsPlusNameDetails>
			<CourtesyTitle/>
			<FirstName/>
			<FullName>KIM, Jong Un</c:FullName>
			<LastName/>
			<MiddleName/>
			<Suffix/>
			<Title>Chairman of the Workers' Party of Korea</c:Title>
		</SanctionsPlusNameDetails>
	</NameDetails>
	<Offense/>
	<PageUrl>
		<string>http://www.treasury.gov/resource-center/sanctions/SDN-List/Pages/default.aspx</string>
	</PageUrl>
	<Phone/>
	<PlaceOfBirth/>
	<PoliticalParty/>
	<Program>
		<string>DPRK3</string>
	</Program>
	<Remarks>
		<string>DOB 08 Jan 1984; Secondary sanctions risk: North Korea Sanctions Regulations, sections 510.201 and 510.210; Transactions Prohibited For Persons Owned or Controlled By U.S. Financial Institutions: North Korea Sanctions Regulations section 510.214; Chairman of the Workers' Party of Korea.</string>
	</Remarks>
	<RiskCode>
		<string>WL</string>
	</RiskCode>
	<Sex/>
	<Source>
		<string>Specially Designated Nationals List</string>
	</Source>
	<TIN/>
	<Tonnage/>
	<Type>
		<string>individual</string>
	</Type>
	<VesselFlag/>
	<VesselOwner/>
	<VesselType/>
	<WantedBy/>
	<Website/>
	<Weight/>
</SISPlusDetailsResult>
<SPFPlusDetailsResult>
	<Active>true</Active>
	<AddressDetails>
		<SanctionsPlusAddressDetails>
			<Address/>
			<AddressRemarks/>
			<City/>
			<Country>Korea, North - NDE</Country>
			<Postcode/>
			<Province/>
		</SanctionsPlusAddressDetails>
	</AddressDetails>
	<AliasDetails/>
	<Callsign/>
	<CitizenShip/>
	<Constituancy/>
	<DateOfBirth/>
	<Documents/>
	<Email/>
	<Eyes/>
	<Fax/>
	<GRT/>
	<Hair/>
	<Height/>
	<ImageUrl/>
	<Languages/>
	<LegalBasis/>
	<ListingDate/>
	<Marks/>
	<NameDetails>
		<SanctionsPlusNameDetails>
			<CourtesyTitle/>
			<FirstName>KIM</FirstName>
			<FullName>KIM Jong Un</FullName>
			<LastName>Un</LastName>
			<MiddleName>Jong</MiddleName>
			<Suffix/>
			<Title>Chairman, KWP</Title>
		</SanctionsPlusNameDetails>
	</NameDetails>
	<Offense/>
	<PageUrl>
		<string>https://www.cia.gov/library/publications/world-leaders-1/KN.html</string>
	</PageUrl>
	<Phone/>
	<PlaceOfBirth/>
	<PoliticalParty/>
	<Program>
		<string>World Leaders</string>
	</Program>
	<Remarks/>
	<RiskCode>
		<string>PEP</string>
	</RiskCode>
	<Sex/>
	<Source>
		<string>Chiefs of State and Cabinet Members of Foreign Governments</string>
	</Source>
	<TIN/>
	<Tonnage/>
	<Type/>
	<VesselFlag/>
	<VesselOwner/>
	<VesselType/>
	<WantedBy>
		<string>Central Intelligence Agency</d:string>
	</WantedBy>
	<Website/>
	<Weight/>
</SPFPlusDetailsResult>

Response Properties

Property Name Type Description
NameDetails SanctionsPlusNameDetails See below.
Eyes String  
Hair String  
Weight String  
Height String  
Marks String  
Sex String  
Languages String  
TIN String  
Documents String  
PlaceOfBirth String  
DateOfBirth String  
Citizenship String  
Phone String  
Fax String  
Email String  
Website String  
Constituancy String  
PoliticalParty String  
ImageURL String  
PageURL String  
Source String  
Type String  
Offense String  
WantedBy String  
Program String  
LegalBasis String  
ListingDate String  
Callsign String  
VesselType String  
Tonnage String  
GRT String  
VesselFlag String  
VesselOwner String  
Remarks String  
AddressDetails SanctionsPlusAddressDetails See below.
AliasDetails SanctionsPlusAliasDetails See below.
RiskCode String  
Active Boolean  
Timestamp DateTime  

Sanctions Plus Name Details

Property Name Type Description
FullName String  
CourtesyTitle String  
FirstName String  
MiddleName String  
LastName String  
Suffix String  
Title String  

Sanctions Plus Address Details

Property Name Type Description
Address String  
City String  
Province String  
Postcode String  
Country String  
AddressRemarks String  

Sanctions Plus Alias Details

Property Name Type Description
AliasType String  
AliasName String  

Watchlist Details Response

Example Response - Watchlist Details

  "watchlistDetailsResult": {
                "personProfileMatchDetails": {
                    "action": "Add",
                    "actionDate": "11-Jun-2014",
                    "activeStatus": "Inactive",
                    "addresses": [],
                    "aliases": [
                        {
                            "aliasType": "PrimaryAlias",
                            "combinedName": "Yong Un Kim",
                            "firstName": "Yong Un",
                            "maidenName": "",
                            "middleName": "",
                            "originalScriptName": "김용운",
                            "singleStringName": "",
                            "suffix": "",
                            "surname": "Kim",
                            "titleHonorific": ""
                        },
                        {
                            "aliasType": "SpellingVariation",
                            "combinedName": "Yong-Un Kim",
                            "firstName": "Yong-Un",
                            "maidenName": "",
                            "middleName": "",
                            "originalScriptName": "",
                            "singleStringName": "",
                            "suffix": "",
                            "surname": "Kim",
                            "titleHonorific": ""
                        }
                    ],
                    "associations": [],
                    "birthPlaces": [],
                    "classifications": [
                        {
                            "watchlistClassification": "Politically Exposed Person (PEP)"
                        }
                    ],
                    "countries": [
                        {
                            "countryCode": "NKOREA",
                            "countryName": "North Korea",
                            "countryType": "Citizenship"
                        },
                        {
                            "countryCode": "NKOREA",
                            "countryName": "North Korea",
                            "countryType": "Resident of"
                        },
                        {
                            "countryCode": "NKOREA",
                            "countryName": "North Korea",
                            "countryType": "Jurisdiction"
                        }
                    ],
                    "dateEvents": [
                        {
                            "dateType": "Inactive as of (PEP)",
                            "month": 3,
                            "year": 2009
                        }
                    ],
                    "deceased": false,
                    "gender": "Male",
                    "identifiers": [],
                    "images": [],
                    "matchType": "Person",
                    "occupations": [
                        {
                            "occupationName": "Members of the National Legislature",
                            "roleTypeName": "Primary Occupation",
                            "title": "See Previous Roles"
                        },
                        {
                            "occupationName": "Members of the National Legislature",
                            "roleTypeName": "Previous Roles",
                            "sinceMonth": 8,
                            "sinceYear": 2003,
                            "title": "Delegate, Supreme People's Assembly, Constituency 657",
                            "toMonth": 3,
                            "toYear": 2009
                        }
                    ],
                    "primaryAlias": "Yong Un Kim",
                    "profileId": "4b56c673-b6fb-b269-0ca4-18a2c53d7586",
                    "sanctions": [],
                    "sources": []
                }
<WatchlistDetailsResult>
	<EntityProfileMatchDetails/>
	<PersonProfileMatchDetails>
		<Action>Add</Action>
		<ActionDate>11-Jun-2014</ActionDate>
		<ActiveStatus>Inactive</ActiveStatus>
		<Addresses/>
		<Aliases>
			<c:WatchlistPersonAliasData>
				<AliasType>PrimaryAlias</AliasType>
				<CombinedName>Yong Un Kim</CombinedName>
				<FirstName>Yong Un</c:FirstName>
				<MaidenName/>
				<MiddleName/>
				<OriginalScriptName>김용운</OriginalScriptName>
				<SingleStringName/>
				<Suffix/>
				<Surname>Kim</Surname>
				<TitleHonorific/>
			</WatchlistPersonAliasData>
			<WatchlistPersonAliasData>
				<AliasType>SpellingVariation</AliasType>
				<CombinedName>Yong-Un Kim</CombinedName>
				<FirstName>Yong-Un</FirstName>
				<MaidenName/>
				<MiddleName/>
				<OriginalScriptName/>
				<SingleStringName/>
				<Suffix/>
				<Surname>Kim</c:Surname>
				<TitleHonorific/>
			</WatchlistPersonAliasData>
		</Aliases>
		<Associations/>
		<BirthPlaces/>
		<Classifications>
			<WatchlistClassificationData>
				<ListClassification/>
				<SubListClassification/>
				<WatchlistClassification>Politically Exposed Person (PEP)</WatchlistClassification>
			</WatchlistClassificationData>
		</Classifications>
		<Countries>
			<WatchlistCountryData>
				<CountryCode>NKOREA</CountryCode>
				<CountryName>North Korea</CountryName>
				<CountryType>Citizenship</CountryType>
			</WatchlistCountryData>
			<WatchlistCountryData>
				<CountryCode>NKOREA</CountryCode>
				<CountryName>North Korea</CountryName>
				<CountryType>Resident of</CountryType>
			</WatchlistCountryData>
			<WatchlistCountryData>
				<CountryCode>NKOREA</CountryCode>
				<CountryName>North Korea</CountryName>
				<CountryType>Jurisdiction</CountryType>
			</WatchlistCountryData>
		</Countries>
		<DateEvents>
			<WatchlistDateEventData>
				<DateType>Inactive as of (PEP)</DateType>
				<Day/>
				<Month>3</Month>
				<Notes/>
				<Year>2009</Year>
			</WatchlistDateEventData>
		</DateEvents>
		<Deceased>false</Deceased>
		<Gender>Male</Gender>
		<Identifiers/>
		<Images/>
		<MatchType>Person</MatchType>
		<Occupations>
			<WatchlistOccupationData>
				<OccupationName>Members of the National Legislature</OccupationName>
				<RoleTypeName>Primary Occupation</RoleTypeName>
				<SinceDay/>
				<SinceMonth/>
				<SinceYear/>
				<Title>See Previous Roles</Title>
				<ToDay/>
				<ToMonth/>
				<ToYear/>
			</WatchlistOccupationData>
			<WatchlistOccupationData>
				<OccupationName>Members of the National Legislature</OccupationName>
				<RoleTypeName>Previous Roles</RoleTypeName>
				<SinceDay/>
				<SinceMonth>8</SinceMonth>
				<SinceYear>2003</SinceYear>
				<Title>Delegate, Supreme People's Assembly, Constituency 657</Title>
				<ToDay/>
				<ToMonth>3</ToMonth>
				<ToYear>2009</ToYear>
			</WatchlistOccupationData>
		</Occupations>
		<PrimaryAlias>Yong Un Kim</PrimaryAlias>
		<ProfileId>4b56c673-b6fb-b269-0ca4-18a2c53d7586</c:ProfileId>
		<ProfileNotes/>
		<Sanctions/>
		<Sources/>
	</PersonProfileMatchDetails>
</WatchlistDetailsResult>

Response Properties

Property Name Type Description
Action WatchlistActionStatusEnum The last action that was performed on the record. See below for more information.
ActionDate String The date the last action was performed on the record.
ActiveStatus WatchlistActiveStatusEnum Whether or not the record is marked as active. See below for more information.
Addresses WatchlistAddressData The addresses of the record. See below for details.
Aliases WatchlistEntityAliasData The aliases of the record. See below for details.
Associations WatchlistAssociateData The known associates of the record. See below for details.
BirthPlaces WatchlistBirthPlaceData Information about the birth places of the record. See below for details.
Classifications WatchlistClassificationData The classifications of the record. See below for details.
Countries WatchlistCountryData The countries associated with the record. See below for details.
DateEvents WatchlistDateEventData The dates of key events related to the record. See below for details.
Deceased Boolean Whether or not the record is deceased.
Gender WatchlistGenderEnum The gender of the record. See below for details.
Identifiers WatchlistIdentifierData Any identifiers associated with the record. See below for details.
Images WatchlistImageData Any images associated with the record. See below for details.
MatchType MatchTypeEnum The type of record. See below for details.
Occupations WatchlistOccupationData The occupations associated with the record. See below for details.
PrimaryAlias String The primary alias of the record.
ProfileId String The unique Profile Id for this record.
ProfileNotes String Additional notes associated with the record.
Sanctions WatchlistSanctionData The sanctions that apply to this record. See below for details.
Sources WatchlistSourceData The sources the information about this record is derived from.
Vessels WatchlistVesselData Any vessels (usually maritime) associated with the record. See below for details.

WatchlistActionStatusEnum

Enumeration Name Value Description
Delete 1 Represents a delete action.
Change 2 Represents a change action.
Add 3 Represents an add action.

WatchlistActiveStatusEnum

Enumeration Name Value Description
Active 1 The record is active.
Inactive 2 The record is inactive.

WatchlistAddressData

Property Name Type Description
AddressLine String The first line of the address, usually house number, street name, PO Box, etc.
CountryProfileUrl String Represents the name of the Dow Jones Country Profile Document.
City String The city component of the address.
CountryCode String The country code for the address.

WatchlistEntityAliasData

Property Name Type Description
Name String The name of the alias.
SingleStringName String The single string name of the alias.
OriginalScriptName String The name of the alias in its original script if available.
AliasType WatchlistAliasTypeEnum The type of alias. See below for further details.

WatchlistAliasTypeEnum

Enumeration Name Value Description
PrimaryAlias 1 The alias is the primary alias of the record.
AlsoKnownAs 2 The record is also known as this alias.
FormerlyKnownAs 3 The record was formerly known by this alias.
NowKnownAs 4 The record is now known by this alias.
Unknown 5 The type of alias is unknown.
MaidenName 6 The alias is a maiden name of the record.
SpellingVariation 7 The alias a spelling variation of another alias.
LowQualityAlsoKnownAs 8 The alias is record is also known by this alias, but the reliability of this information may be poor.

WatchlistAssociateData

Property Name Type Description
Name String The name of the associate.
ProfileId String The Profile Id of the associate.
Relationship String The relationship the associate has to the record.
Ex Boolean Whether or not the associate is an ex-associate.

WatchlistBirthPlaceData

Property Name Type Description
BirthPlace String The birthplace of the record.

WatchlistClassificationData

Property Name Type Description
WatchlistClassification String The main classification, usually Politically Exposed Person (PEP), Relative or Close Associate (RCA), Special Interest Person (SIP), or Special Interest Entity (SIE).
ListClassification String The list classification. This depends on the WatchlistClassification. It usually indicates a type of crime or a list the record belongs to that is relevant to the WatchlistClassification.
SubListClassification String The sub classification. This depends on the ListClassification. It is usually a more specific classification, for example a specific crime.

WatchlistCountryData

Property Name Type Description
CountryCode String The country code.
CountryName String The name of the country.
CountryType String The type of relationship with the country. For example, the record could be a resident.

WatchlistDateEventData

Property Name Type Description
Day Integer The day the event occurred.
Month Integer The month the event occurred.
Year Integer The year the event occurred.
Notes String Any notes associated with the date event.
DateType String The type of event, e.g. date of birth, date of resignation, etc.

WatchlistGenderEnum

Enumeration Name Value Description
Unknown 0 The record’s gender is unknown or unspecified.
Male 1 The record’s gender is Male.
Female 2 The record’s gender is Female.

WatchlistIdentifierData

Property Name Type Description
IDType String The type of identifier. This is usually a document identifier such as company number, passport number, etc.
Value String The value of the identifier. This is the actual value of the IDType, such as the actual passport number.
Notes Integer Any notes associated with the identifier.

WatchlistImageData

Property Name Type Description
ImageURL String The URL of an image associated with the record.

MatchTypeEnum

Enumeration Name Value Description
Person 1 The match is a Person.
Entity 2 the match is an Entity.
Unknown 3 The match is of unknown type. This may represent missing data and does not necessarily mean ‘other’.
Vessel 4 The match is a vessel (usually maritime).
Aircraft 5 The match is an aircraft.

WatchlistOccupationData

Property Name Type Description
RoleTypeName String The type of the role, usually primary occupation, other role, or previous role.
SinceDay Integer The day the occupation began.
SinceMonth Integer The month the occupation began.
SinceYear Integer The year the occupation began.
ToDay Integer The day the occupation ended.
ToMonth Integer The month the occupation ended.
ToYear Integer The year the occupation ended.
OccupationName String The name of the occupation.
Title String The title the record holds. If the record is deceased this may sometimes be indicated here.

WatchlistSanctionData

Property Name Type Description
SanctionName String The name of the sanction, usually an official list.
SanctionStatus String The status of the sanction (not the record), usually whether it is a current or suspended sanction.
ListCategoryName String The ListCategory associated with the sanction (not the record).
SinceDay Integer The day this sanction started.
SinceMonth Integer The month this sanction started.
SinceYear Integer The year this sanction started.
ToDay Integer The day this sanction ended.
ToMonth Integer The month this sanction ended.
ToYear Integer The year this sanction ended.

WatchlistSourceData

Property Name Type Description
Source String The source used to obtain data about the record. Usually a URL or document name.

WatchlistVesselData

Property Name Type Description
VesselCallSign String The call sign of the vessel.
VesselType String The type of vessel.
VesselTonnage String The tonnage of the vessel.
VesselGRT String The gross register tonnage (GRT) of the vessel.
VesselOwner String The owner of the vessel.
VesselFlag String The flag belonging to the vessel.

PEP and Sanctions 006 Details Response

Example Response - PEP and Sanctions 006 Details

          "w2DataPepAndSanction006DetailsResult": {
                "addresses": [],
                "aka": "",
                "aliases": [],
                "countryName": "Korea, Democratic People's Republic Of",
                "directId": "49cbbbe4-c838-4a45-8f76-79b9644f5f11",
                "dob": "January 08, 1984",
                "dob2": "January 08, 1983",
                "effectiveDate": "2016",
                "entryCategory": "PEP",
                "entryDesc": "Individual",
                "firstName": "Jong-un",
                "govDesignation": "",
                "lastName": "Kim",
                "levelDesc": "N/A",
                "masterId": 0,
                "name": "Kim, Jong-un",
                "nationalId": "",
                "otherId": "",
                "passportId": "",
                "pob": "Pyongyang, North Korea",
                "positions": "Sanctioned Entity. Supreme Leader of North Korea, effective from December 17, 2011.",
                "prefix": "",
                "primaryName": "김정은",
                "profileId": "WC225108553",
                "relatedId": 0,
                "relationships": [],
                "remarks": "According to bbc.com; July 6, 2016: Kim Jong-un has been imposed sanctions for human rights abuses by the US Treasury. Kim was named as directly responsible for violations in North Korea which is already under an extensive sanctions regime for its nuclear",
                "sourceName": "Website",
                "subCatDesc": "Govt Branch Member",
                "suffix": "",
                "touchDate": "2019-08-02T10:02:34.443",
                "watch": false
            }
<ProfileDetailsResult>
  <W2DataPepAndSanction006DetailsResult>
	<Addresses/>
	<Aka/>
	<Aliases/>
	<CountryName>Korea, Democratic People's Republic Of</CountryName>
	<DirectId>49cbbbe4-c838-4a45-8f76-79b9644f5f11</DirectId>
	<Dob>January 08, 1984</Dob>
	<Dob2>January 08, 1983</Dob2>
	<EffectiveDate>2016</EffectiveDate>
	<EntryCategory>PEP</EntryCategory>
	<EntryDesc>Individual</EntryDesc>
	<FirstName>Jong-un</FirstName>
	<GovDesignation/>
	<LastName>Kim</LastName>
	<LevelDesc>N/A</LevelDesc>
	<MasterId>0</MasterId>
	<Name>Kim, Jong-un</Name>
	<NationalId/>
	<OtherId/>
	<PassportId/>
	<Pob>Pyongyang, North Korea</Pob>
	<Positions>Sanctioned Entity. Supreme Leader of North Korea, effective from December 17, 2011.</Positions>
	<Prefix/>
	<PrimaryName>김정은</PrimaryName>
	<ProfileId>WC225108553</ProfileId>
	<RelatedId>0</RelatedId>
	<Relationships/>
	<Remarks>According to bbc.com; July 6, 2016: Kim Jong-un has been imposed sanctions for human rights abuses by the US Treasury. Kim was named as directly responsible for violations in North Korea which is already under an extensive sanctions regime for its nuclear</Remarks>
	<SourceName>Website</SourceName>
	<SourceWebLinks/>
	<SubCatDesc>Govt Branch Member</SubCatDesc>
	<Suffix/>
	<TouchDate>2019-08-02T10:02:34.443</TouchDate>
	<Watch>false</c:Watch>
</W2DataPepAndSanction006DetailsResult>
</ProfileDetailsResult>

Response Properties

Property Name Type Description
Addresses String[] List of addresses
Aka String Nickname
Aliases String[] List of alternative names
CountryName String Country
DirectId String Original supplier ID
DOB String Date of birth
DOB2 String Second date of birth
EffectiveDate String Date that record became active
EntryCategory String Category of record
EntryDesc String Type of entity
ExpirationDate String Date of record expiry
FirstName String First name
GovDesignation String Categorisation of record as given by the regulatory body
LastName String Last name
LevelDesc String Level of exposure for the PEP
MasterId String Profile ID for consolidated sanctions profiles
Name String Full name
NationalId String National ID number
Organization String Organisation that entity belongs to
OtherId String Identification value for other unique forms of identification offered by countries
PassportId String Passport number
PictureFile String Indicates if a picture is available
Pob String Place of birth
Positions String Positions held
Prefix String Title, i.e. “Mr”
PrimaryName String Original, non-Romanized name
ProfileId String Profile ID
RelatedId String Indicates that relationships exist with other entities
Relationships String Lists relationships with other entities. These contain the following values:
Is (string): Nature of relationship
ToName (string): Name of relation
ToProfileId (string): Profile ID of relation
Remarks String Any additional miscellaneous information
SourceName String Source where entry originated
SourceWebLink(Deprecated) String URL of information source
SourceWebLinks String URL of information source
SubCatDesc String Record sub-category
Suffix String Name suffix
TouchDate String Last date of change to record
Watch String Indicates that there is negative news about the PEP

Sandbox

Example Request - Profile Details

{
    "Bundle": "KYC_ProfileDetails",
    "Data": {
        "NameQuery": "David Cameron"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

If the Sandbox query option is set to “true” the following entry will be returned in the ServiceResult:

Example Response for “DIR-123456789”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

Example Response for “69e10264-4b90-64fe-b4b7-c9dddafd0241”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

Example Response for “cb5f2851-64c0-6866-0ed1-da306e45efb2”:

 {
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

Example Response for “79bb61cd-6dca-b477-d688-c41947e11c4f”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

Example Response for “SANC-a39a68a8-f82b-df96-f880-dedcafc2f1fb”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

Example Response for “SANC-cbe61692-1455-5cb6-879f-03864696e457”:

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

PEP and Sanction 006
The following profile ID’s will give PEP and Sanction 006 profile details responses in sandbox mode:

  • WC49767
  • WC66266
  • WC191511
  • WC209189
  • WC401565
  • WC1868226
  • WC1980603
  • WC2320427
  • WC7064012
  • WC7245560
  • WC7310683
  • WC225000086

Example ServiceTransactions Result

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered>False</HaltTriggered>
<ServiceInterpretResult>NotApplicable</ServiceInterpretResult>
<ServiceTransactionResult>Success</ServiceTransactionResult>
<ServiceTransactionResultMessage>"This call was generated using sandbox mode"</ServiceTransactionResultMessage>
<ValidationResult>NotApplicable</ValidationResult>

Example ServiceTransactions Result

{
	"HaltTriggered": "False",
	"ServiceInterpretResult": "NotApplicable",
	"ServiceTransactionResult": "Success",
	"ServiceTransactionResultMessage": "This call was generated using sandbox mode",
	"ValidationResult": "NotApplicable"
}
<HaltTriggered> False
<ServiceInterpretResult> NotApplicable
<ServiceInterpretResult> NoValidationPerformed
<ServiceTransactionResult> SuccessNoResults
<ServiceTransactionResultMessage> "This call was generated using sandbox mode"
<ValidationResult> NotApplicable

PEP and Sanction 006


PEP and Sanctions 006 service checks if a specified person is a politically exposed person, i.e. they are in a prominent public position or a close relative of someone who is, or under sanction. If there are multiple matches, it provides a list of them, up to a limit of 100.

Product Code: W2-DATA-PEP_AND_SANCTION-006

Properties

The following properties pertain to this service.

Property Name Type Optional/Mandatory Notes
NameQuery String Mandatory* The name of the person you are searching for. Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead.
NameQueryMatchThreshold Integer Optional The minimum name match score to match against. Default is 80 (all matches).
DateOfBirthMatchThreshold Integer Optional The minimum date of birth score to match against. Default is null (off). If supplied, at least one component of the date of birth must be supplied.
DayOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
MonthOfBirth Integer Optional Used with DateOfBirthMatchThreshold.
YearOfBirth Integer Optional Used with DateOfBirthMatchThreshold.

Response

The following table gives some more details about the response.

Example Response - PEP and Sanction 006

"w2DataPepAndSanction006Result": {
	"matchResults": [{
		 "birthDay": 8,
         "birthMonth": 1,
         "birthYear": 1984,
         "matchType": "Person",
         "name": "Jong-un Kim",
         "nameMatchScore": 80,
         "profileId": "WC225108553"
		}
	]
}
<W2DataPepAndSanction006Result>
	 <!-- One or more of these --> 
	 <MatchResults>
		<CheckMatch>
		   <BirthDay />
		   <BirthMonth />
		   <BirthYear />
		   <DateOfBirthMatchScore />
		   <MatchType>Person</MatchType>
		   <Name>Al Zoubi, Muhammad Hussein</Name>
		   <NameMatchScore>85</NameMatchScore>
		   <ProfileId>WC8042</ProfileId>
		</CheckMatch>
	 </MatchResults>
</W2DataPepAndSanction006Result>
Property Name Type Description
BirthDay Integer The birth day of the record matched against.
BirthMonth Integer The birth month of the record matched against.
BirthYear Integer The birth month of the record matched against.
DateOfBirthMatchScore Integer The score that this record’s date of birth matched the query date.
MatchType MatchTypeEnum The type of match where the data is available in the source. See below
Name String The name of the record matched against. Depending on the source data there may be multiple names here combined into one.
NameMatchScore Integer The score that this record’s name matched the query name.
ProfileId String A unique reference for a profile that can be subsequently retrieved in full using the ProfileDetails Service.

Transaction Result

HaltTriggered False
ServiceTransactionResult Success
SuccessIncompleteResults - Too many matches on the search criteria and the results have been truncated
ServerErrorGeneralError - An error occurred
ClientErrorInsufficientInformation - Required field not supplied - NameQuery or Forename / Surname
ServiceInterpretResult OneResult
MultipleResults
NoResults
NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult NotApplicable - No search occurred to match against
Fail - MissingMandatoryField or PatternNotMatched
Pass

MatchTypeEnum
More information about the match type

Enumeration Value Value Description
Person 1 The match is a Person.
Entity 2 The match is an Entity.
Unknown 3 The match is of unknown type. This may represent missing data and does not necessarily mean ‘other’.
Vessel 4 The match is a vessel (usually maritime).
Aircraft 5 The match is an aircraft.

Alert Filters

Available Filters

Applying Filters:

    "Options": {
        "Sandbox": "false",
        "IncludeCountries":"GBR,UDF,SUP - Up to 20 comma delimited countries",
        "ExcludeEntities": "true | false",
        "ExcludeIndividuals": "true | false",
        "ExcludeExPeps": "true | false"
    }
<QueryOptions>
  <KeyValueOfstringstring>
    <Key>Sandbox</Key>
    <Value>false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>IncludeCountries</Key>
    <Value>GBR,UDF,SUP - Up to 20 comma delimited countries</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeIndividuals</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeEntities</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
  <KeyValueOfstringstring>
    <Key>ExcludeExPeps</Key>
    <Value>true | false</Value>
  </KeyValueOfstringstring>
</QueryOptions>
Filter Type Description
Include Countries If included, this filter will only return alerts that are on profiles that indicate that the main country of residence/activity is in the included country. Please note that if this filter is used, we advise to also use the 2 additional filters for undefined and supra-Nationals. This will include alerts generated for subjects that cannot be readily assigned to a country.
Exclude Ex-PEPs If included, this filter excludes alerts that would have been generated on individuals that have left the office that attracted their ‘PEP status’ for a defined period of time. For a risk based approach, it is normally appropriate to consider ex-PEPs for some time, however, this time will differ based on the risk profile of the business that your organisation conducts.
Exclude Individuals/Entities When applied, this filter will suppress alerts that are generated on either individuals (if you are conducting a search on a known business/entity) OR suppress entities (if conducting a search on an known individual)

Sandbox

Example Request - PEP and Sanctions 006

{
    "Bundle": "KYC_Watchlist_006",
    "Data": {
        "NameQuery": "Ahenobarbus Michal"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

W2-DATA-DISQUALIFIEDS-UK-008


W2-DATA-DISQUALIFIEDS-UK-008 This service searches a list of Disqualified Directors. This list is updated once a week.

Product Code: W2-DATA-DISQUALIFIEDS-UK-008

Query Data & Request

This service uses the following query data:

Example Request - W2 Global Data Disqualified Directors Service

<serviceRequest>
    <BundleData>
        <BundleName>{YOUR BUNDLE NAME HERE}</BundleName>
    </BundleData>
    <QueryData>
        <DateOfBirthMatchThreshold>{e.g. 100}</DateOfBirthMatchThreshold>
        <DayOfBirth>{e.g. 01}</DayOfBirth>
        <Forename>{e.g. JOHN}</Forename>
        <MiddleNames>{e.g. JAMES} </MiddleNames>
        <MonthOfBirth>e.g. 01}</MonthOfBirth>
        <NameQueryMatchThreshold>{ e.g. 100}</NameQueryMatchThreshold>
        <Surname>{e.g. SMITH}</Surname>
        <YearOfBirth>{e.g. 1990}</YearOfBirth>
    </QueryData>
    <ServiceAuthorisation>
        <APIKey>{YOUR API KEY HERE}</APIKey>
        <ClientReference>>{YOUR CLIENT REFERENCE HERE}</ClientReference>
    </ServiceAuthorisation>
</serviceRequest>
{
	"Bundle": "YOURBUNDLE",
	"Data": {
  		"DateOfBirthMatchThreshold":100,
		"DayOfBirth": 22,
		"Forename": "JOHN",
    		"MiddleNames":"JAMES",
    		"NameQueryMatchThreshold":100,
		"MonthOfBirth": 10,
		"Surname": "JAMES",
		"YearOfBirth": 1997
	}
}
FieldName Type Mandatory Notes
Forename string Y The forename of the person you are searching for.
Middlenames string N The middlename of the person you are searching for.
Surname string Y The surname of the person you are searching for.
NameQueryMatchThreshold integer N The minimum name match score* to match against. If not supplied we will assume 80.
DayOfBirth integer Y The day of the date of birth.
MonthOfBirth integer Y The month of the date of birth.
YearOfBirth integer Y The year of the date of birth.
DateOfBirthMatchingThreshold integer N The minimum date of birth score* to match against. If not supplied we will assume 0.
Postcode string N Used to further filter results if supplied.

Response

Sample Response for W2 Global Data Disqualified Directors Service

"w2DataDisqualifiedsUk008Result": {
            "results": [
                {
                    "details": {
                        "disqualifications": [
                            {
                                "caseNumber": "IJK676897642398",
                                "companyName": "SOUTH SEA TRADING",
                                "courtName": "INSOLVENCY SERVICE",
                                "disqualificationType": "UNDERTAKING",
                                "endDate": "2018-03-14T00:00:00",
                                "sectionOfTheAct": "CDDA 1986 S7",
                                "startDate": "2013-03-15T00:00:00",
                                "undertakingDate": "0001-01-01T00:00:00"
                            }
                        ],
                        "exemptions": [
                            {
                                "companyName": "ACME PRODUCTION LIMITED",
                                "endDate": "2016-01-01T00:00:00",
                                "purpose": "SANDBOX",
                                "startDate": "2015-01-01T00:00:00"
                            },
                            {
                                "companyName": "ADVENTURE WORKS",
                                "endDate": "2016-01-01T00:00:00",
                                "purpose": "SANDBOX",
                                "startDate": "2015-01-01T00:00:00"
                            }
                        ],
                        "person": {
                            "dateOfBirth": "1944-12-31T00:00:00",
                            "foreName": "Billy",
                            "id": "4",
                            "postcode": "RH13 3HE",
                            "searchableNames": [
                                "Billy Jones"
                            ],
                            "surname": "Jones"
                        },
                        "variation": {
                            "actionDate": "2018-01-01T00:00:00",
                            "caseNumber": "LMN234682769827364",
                            "courtName": "GLASGOW HIGH COURT"
                        }
                    },
                    "dob": "1944-12-31T00:00:00",
                    "dobScore": 100,
                    "matchedName": "Billy Jones",
                    "nameScore": 100
                }
            ]
        }
<W2DataDisqualifiedsUk008Result>
    <ErrorMessage />
    <Results>
        <!-- 0 or more of these -->
        <DirectorsSearchResult>
            <Details>
                <Disqualification>
                    <CaseNumber>ABC1234567</CaseNumber>
                    <CompanyName>ACME PRODUCTIONS</CompanyName>
                    <CourtName>HIGH COURT</CourtName>
                    <DisqualificationType>UNDERTAKING</DisqualificationType>
                    <EndDate>2017-11-30T00:00:00</EndDate>
                    <SectionOfTheAct>CDDA 1986 S7</SectionOfTheAct>
                    <StartDate>2016-06-01T00:00:00</StartDate>
                    <UndertakingDate>2016-05-11T00:00:00</UndertakingDate>
                </Disqualification>
                <Exemptions>
                    <!-- 0 or more of these -->
                    <Exemption>
                       <CompanyName>SOUTH SEA TRADING Co.</CompanyName>
                       <EndDate>2018-12-01T00:00:00</EndDate>
                       <Purpose>0000000001</Purpose>
                       <StartDate>2016-07-27T00:00:00</StartDate>
                    </Exemption>
                </Exemptions>
                <Person>
                    <AddressLine1>1 HIGH STREET</AddressLine1>
                    <AddressLine2>SOME PLACE</AddressLine2>
                    <CorporateNumber/>
                    <Country>UK</Country>
                    <CountryRegistration/>
                    <County/>
                    <DateOfBirth>1900-01-01T00:00:00</DateOfBirth>
                    <ForeName>JOHN</ForeName>
                    <Honours/>
                    <Id>123456789</Id>
                    <Nationality>BRITISH</Nationality>
                    <PostTown>SOME TOWN</PostTown>
                    <Postcode>AB1 2CD</Postcode>
                    <SearchableNames>
                        <!-- 1 or more of these aliases -->
                        <string>JOHN SMITH</string>
                        <string>JOHN JAMES SMITH</string>   
                    </SearchableNames>
                    <Surname>SMITH</Surname>
                    <Title>MR</Title>
                </Person>
                <Variation>
                    <ActionDate>2016-01-01</ActionDate>
                    <CaseNumber>ABC123</CaseNumber> 
                    <CourtName>HIGH COURT</CourtName>
                </Variation>
            </Details>
            <!-- THE DOB we matched on -->
            <Dob>1900-01-01</Dob>
            <!-- The dob score we found -->
            <DobScore>100</DobScore>
            <!-- The alias we matched on -->
            <MatchedName>John Smith</MatchedName>
            <!-- The score of the name we matched on -->   
            <NameScore>100</NameScore>
        </DirectorsSearchResult>
    </Results>
</W2DataDisqualifiedsUk008Result>

The table below contains explanations for a few of the fields returned in the response:

Field Explanation
Dob This is the date of birth that was provided in the query data that was used for searching. This can be different to the Person.DateOfBirth field if a low threshold is set for dob scoring and an exact match is not required.
DobScore This is the match score for the Person.DateOfBirth field against the dob that was used in the query.
MatchedName This is the name in the Person.SearchableNames collection that had the highest score.
NameScore The highest score found from the searchable names.
Person.SearchableNames This is a collection of known aliases for the individual in question. This field is what is used for searching.

Sandbox

Example Request - W2 DATA DISQUALIFIEDS UK 008

{
    "Bundle": "W2DataDisqualifiedsUk008",
    "Data": {
        "Forename": "James",
        "Surname": "Thorpe",
        "DayOfBirth": 10,
        "MonthOfBirth": 6,
        "YearOfBirth": 1978
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

This service has the following Sandbox Cases:

Forename Surname Date Of Birth Postcode Searchable Names Notes
James Thorpe 1978-06-10 AB54 4PN “James Thorpe”, “James Sebastien Thorpe”, “Thorpe James”, “James Thorpey”, “Sebastien James Thorpe” Returns a Disqualified Director with no exemptions or validations.
Ahenobarbus Michal 1944-12-31 RH13 3HE “Ahenobarbus Michal”, “Ahenobarbus Geronimo Michal”, “Michal Ahenobarbus”, “Ahenobarbusero Michal”, “Sebastien Ahenobarbus Michal” Returns a Disqualified Director with one exemption and no validations.
Allen Kiril 1943-01-08 IVT X34 “Allen Kiril”, “Allen Brian Kiril”, “Kiril Allen” Returns a Disqualified Director with two exemptions and no validations.
Billy Jones 1944-12-31 RH13 3HE “Billy Jones” Returns a Disqualified Director with two exemptions and one validations.

W2 DATA EKYC UK 007


This service has been deprecated.


W2_Data_Ekyc_Uk_007 Service is an identity verification service that includes the full Electoral Roll along with credit bureau data. This service will leave a money laundering footprint on the bureau profile of the person you are requesting information about.

Product Code: W2-DATA-EKYC-UK-007

Query Data

The following Query Data properties pertain to this service. Please note that in the SOAP request the fields should be in alphabetical order.  

Property Name Type Length Optional/Mandatory
Forename String 15 Mandatory
MiddleNames String 15 Optional
Surname String 30 Mandatory
DayOfBirth Integer 2 Mandatory
MonthOfBirth Integer 2 Mandatory
YearOfBirth Integer 4 Mandatory
HouseName String 26 Optional *
HouseNumber String 26 Optional *
Flat String 20 Optional *
Street String 40 Optional *
Region String 20 Optional *
County String 20 Optional *
Country String 20 Optional *
City String 20 Optional *
Postcode String 8 Optional *

After performing the search, the validation result (pass, fail, etc.) will be part of the <TransactionInformation> returned for the service call. 

Notes

  • By default we include a check for Mortality Data. Users can turn this option off by adding the IncludeHaloMortalityCheck query option and setting it to false *Please note this setting is case sensitive, so something like includehalomortalitycheck (all lowercase) won’t be picked up. *You can find information about the sandbox version of this service here.

Example Requests

Example 1 Request

{
    "Bundle": "{YOUR BUNDLE NAME HERE}",
    "Data": {
        "DayOfBirth": 22,
        "Forename": "Isabelle",
        "MonthOfBirth": 10,
        "Surname": "Davidson",
        "YearOfBirth": 1997        
    },
    "Options": {
        "AddressLookupRef": "12345"
    },
    "ClientReference": "{YOUR CLIENT REFERENCE HERE}"
}
 <serviceRequest>
   <BundleData>
     <BundleName>{YOUR BUNDLE NAME HERE}</BundleName>
   </BundleData>
   <QueryData>
     <DayOfBirth>{e.g. 01}</DayOfBirth>
     <Forename>{e.g. JOHN}</Forename>
     <MiddleNames>{e.g. JAMES} </MiddleNames>
     <MonthOfBirth>{e.g. 01}</MonthOfBirth>
     <Surname>e.g. SMITH</Surname>
     <YearOfBirth>{e.g. 1990}</YearOfBirth>
   </QueryData>
   <QueryOptions>
     <KeyValueOfstringstring>
       <Key>{AddressLookupRef}</Key>
       <Value>{e.g. 12345}</Value>
     </KeyValueOfstringstring>
   </QueryOptions>
   <ServiceAuthorisation>
     <APIKey>{YOUR API KEY HERE}</APIKey>
     <ClientReference>{YOUR CLIENT REFERENCE HERE}</ClientReference>
   </ServiceAuthorisation>
 </serviceRequest>

Example 2 Request

{
    "Bundle": "{YOUR BUNDLE NAME HERE}",
    "Data": {
    	"City": "Newport",
        "DayOfBirth": 22,
        "Forename": "Isabelle",
        "MonthOfBirth": 10,
        "Postcode": "WT1 1TD",
        "Surname": "Davidson",
        "YearOfBirth": 1997,
        "HouseNumber": "40",
        "MiddleNames":"Hope",
        "Street":"Awesome Street"
    },
    "ClientReference": "{YOUR CLIENT REFERENCE HERE}"
}
    <serviceRequest>
        <BundleData>
            <BundleName>{YOUR BUNDLE NAME HERE}</BundleName>
        </BundleData>
        <QueryData>
            <City>{e.g. Cardiff }</City>
            <DayOfBirth>{e.g. 01}</DayOfBirth>
            <Forename>{e.g. JOHN}</Forename>
            <HouseNumber>{e.g. 1 }</HouseNumber>
            <MiddleNames>{e.g. JAMES} </MiddleNames>
            <MonthOfBirth>{e.g. 01}</MonthOfBirth>
            <Postcode>{e.g. CF10 4RU }</Postcode>
            <Street>{e.g. Falcon Dr}</Street>
            <Surname>{e.g. SMITH}</Surname>
            <YearOfBirth>{e.g. 1990}</YearOfBirth>
        </QueryData>
        <ServiceAuthorisation>
            <APIKey>{YOUR API KEY HERE}</APIKey>
            <ClientReference>{YOUR CLIENT REFERENCE HERE}</ClientReference>
        </ServiceAuthorisation>
    </serviceRequest>        

Example 3 Request

{
    "Bundle": "{YOUR BUNDLE NAME HERE}",
    "Data": {
        "DayOfBirth": 22,
        "Forename": "Isabelle",
        "MonthOfBirth": 10,
        "Surname": "Davidson",
        "YearOfBirth": 1997        
    },
    "Options": {
        "AddressLookupRef": "12345",
        "IncludeHaloMortalityCheck":"true"
    },
    "ClientReference": "{YOUR CLIENT REFERENCE HERE}"
}
    <serviceRequest>
        <BundleData>
            <BundleName>{YOUR BUNDLE NAME HERE}</BundleName>
        </BundleData>
        <QueryData>
            <DayOfBirth>{e.g. 01}</DayOfBirth>
            <Forename>{e.g. JOHN}</Forename>
            <MiddleNames>{e.g. JAMES} </MiddleNames>
            <MonthOfBirth>{e.g. 01}</MonthOfBirth>
            <Surname>{e.g. SMITH}</Surname>
            <YearOfBirth>{e.g. 1990}</YearOfBirth>
        </QueryData>
        <QueryOptions>
            <KeyValueOfstringstring>
                <Key>{AddressLookupRef}</Key>
                <Value>{e.g. 12345}</Value>
            </KeyValueOfstringstring>
            <KeyValueOfstringstring>
                <Key>{IncludeHaloMortalityCheck}</Key>
                <Value>{false}</Value>
            </KeyValueOfstringstring>
        </QueryOptions>
        <ServiceAuthorisation>
            <APIKey>{YOUR API KEY HERE}</APIKey>
            <ClientReference>{YOUR CLIENT REFERENCE HERE}</ClientReference>
        </ServiceAuthorisation>
    </serviceRequest>

Example Responses

The responses below are just a few examples of possible responses there are other possible responses which may vary based on your particular bundle configuration but the examples below cover the main examples. 

General Response

{
    "clientReference": "{YOUR CLIENT REFERENCE}",
    "results": {
        "w2DataEkycUk007Result": {
            "identityCheckResult": {
                "matchInformation": {
                    "independentDataSources": true | false | null ,
                    "nameAndAddressMatch": true | false,
                    "nameAndDateOfBirthMatch": true | false
                },
                "matchResult": "NotChecked | TwoPlusTwo | TwoPlusOne | OnePlusOne | NoMatch"
            }
        }
    },
    "transaction": {
        "interpretResult": "Pass | Fail | Inconclusive | NotApplicable | NotPerformed",
        "serviceCallReference": "{Call reference will be a new GUID here}",
        "serviceTransactions": [
            {
                "haltTriggered": true | false,
                "service": "W2DataEkycUk007",
                "serviceInterpretResult": "Pass | Fail | Inconclusive",
                "serviceTransactionResult": "Success",
                "serviceTransactionResultMessage": " Any information pertinent to this call",
                "validationResult": "Pass | Fail | Inconclusive | NoValidationPerformed | NotApplicable"
            }
        ]
    }
}
    <ProcessRequestResult>
        <ServiceResult>
            {other services excluded from this example}
            <W2DataEkycUk007Result>
                <IdentityCheckResult>
                    <MatchInformation>
                        <IndependantDataSources>{ true | false | null }</IndependantDataSources>
                        <NameAndAddressMatch>{ true | false }</NameAndAddressMatch>
                        <NameAndDateOfBirthMatch>{ true | false }</NameAndDateOfBirthMatch>
                    </MatchInformation>
                    <MatchResult>                      { NotChecked | TwoPlusTwo | TwoPlusOne | OnePlusOne | NoMatch }                    </MatchResult>
                </IdentityCheckResult>
            </W2DataEkycUk007Result>
        </ServiceResult>
        <TransactionInformation>
            <InterpretResult>                { Pass | Fail | Inconclusive | NotApplicable | NotPerformed }            </InterpretResult>
            <ServiceCallReference>{Call reference will be a new GUID here}</ServiceCallReference>
            <ServiceTransactions>
                <ServiceTransactionInformation>
                    <FailedOverTo>{ only used if failovers are configured }</FailedOverTo>
                    <HaltTriggered>{ true | false }</HaltTriggered>
                    <Service>W2DataEkycUk007</Service>
                    <ServiceInterpretResult>{ Pass | Fail | Inconclusive }</ServiceInterpretResult>
                    <ServiceTransactionResult>{ Success }</ServiceTransactionResult>
                    <ServiceTransactionResultMessage>                         { Any information pertinent to this call }                    </ServiceTransactionResultMessage>
                    <ServiceValidationDetails>                         { only filled in if there are problems with the validation}                    </ServiceValidationDetails>
                    <ValidationResult>                         { Pass | Fail | Inconclusive | NoValidationPerformed | NotApplicable }                    </ValidationResult>
                </ServiceTransactionInformation>
            </ServiceTransactions>
        </TransactionInformation>
    </ProcessRequestResult>    

Successful Response

{
    "clientReference": "{YOUR CLIENT REFERENCE}",
    "results": {
        "w2DataEkycUk007Result": {
            "identityCheckResult": {
                "matchInformation": {
                    "independentDataSources": true,
                    "nameAndAddressMatch": true,
                    "nameAndDateOfBirthMatch": true
                },
                "matchResult": "TwoPlusTwo"
            }
        }
    },
    "transaction": {
        "interpretResult": "Pass",
        "serviceCallReference": "{Call reference will be a new GUID here}",
        "serviceTransactions": [
            {
                "haltTriggered": false,
                "service": "W2DataEkycUk007",
                "serviceInterpretResult": "Pass",
                "serviceTransactionResult": "Success",
                "validationResult": "Pass"
            }
        ]
    }
}
    <ProcessRequestResult>
        <ServiceResult>
            <W2DataEkycUk007Result>
                <IdentityCheckResult>
                    <MatchInformation>
                        <IndependantDataSources>true</IndependantDataSources>
                        <NameAndAddressMatch>true</NameAndAddressMatch>
                        <NameAndDateOfBirthMatch>true</NameAndDateOfBirthMatch>
                    </MatchInformation>
                    <MatchResult>TwoPlusTwo</MatchResult>
                </IdentityCheckResult>
            </W2DataEkycUk007Result>
        </ServiceResult>
        <TransactionInformation>
            <InterpretResult>Pass</InterpretResult>
            <ServiceCallReference>{e.g. 558003c3-3154-4e55-9c9e-e2dfb897b098}</ServiceCallReference>
            <ServiceTransactions>
                <ServiceTransactionInformation>
                    <FailedOverTo />
                    <HaltTriggered>false</HaltTriggered>
                    <Service>W2DataEkycUk007</Service>
                    <ServiceInterpretResult>Pass</ServiceInterpretResult>
                    <ServiceTransactionResult>Success</ServiceTransactionResult>
                    <ServiceTransactionResultMessage />
                    <ServiceValidationDetails />
                    <ValidationResult>Pass</ValidationResult>
                </ServiceTransactionInformation>
            </ServiceTransactions>
        </TransactionInformation>
    </ProcessRequestResult> 

Inconclusive Response

{
    "clientReference": "{YOUR CLIENT REFERENCE}",
    "results": {
        "w2DataEkycUk007Result": {
            "identityCheckResult": {
                "matchInformation": {
                    "independentDataSources": false,
                    "nameAndAddressMatch": true,
                    "nameAndDateOfBirthMatch": true
                },
                "matchResult": "TwoPlusTwo"
            }
        }
    },
    "transaction": {
        "interpretResult": "Inconclusive",
        "serviceCallReference": "{Call reference will be a new GUID here}",
        "serviceTransactions": [
            {
                "haltTriggered": false,
                "service": "W2DataEkycUk007",
                "serviceInterpretResult": "Inconclusive",
                "serviceTransactionResult": "Success",
                "validationResult": "Pass"
            }
        ]
    }
}
    <ProcessRequestResult>
        <ServiceResult>
            <W2DataEkycUk007Result>
                <IdentityCheckResult>
                    <MatchInformation>
                        <IndependantDataSources>false</IndependantDataSources>
                        <NameAndAddressMatch>true</NameAndAddressMatch>
                        <NameAndDateOfBirthMatch>true</NameAndDateOfBirthMatch>
                    </MatchInformation>
                    <MatchResult>TwoPlusOne</MatchResult>
                </IdentityCheckResult>
            </W2DataEkycUk007Result>
        </ServiceResult>
        <TransactionInformation>
            <InterpretResult>Inconclusive</InterpretResult>
            <ServiceCallReference>{e.g. 558003c3-3154-4e55-9c9e-e2dfb897b098}</ServiceCallReference>
            <ServiceTransactions>
                <ServiceTransactionInformation>
                    <FailedOverTo />
                    <HaltTriggered>false</HaltTriggered>
                    <Service>W2DataEkycUk007</Service>
                    <ServiceInterpretResult>Inconclusive</ServiceInterpretResult>
                    <ServiceTransactionResult>Success</ServiceTransactionResult>
                    <ServiceTransactionResultMessage />
                    <ServiceValidationDetails />
                    <ValidationResult>Pass</ValidationResult>
                </ServiceTransactionInformation>
            </ServiceTransactions>
        </TransactionInformation>
    </ProcessRequestResult>

Example Failing Response

{
    "clientReference": "{YOUR CLIENT REFERENCE}",
    "results": {
        "w2DataEkycUk007Result": {
            "identityCheckResult": {
                "matchInformation": {
                    "nameAndAddressMatch": false,
                    "nameAndDateOfBirthMatch": false
                },
                "matchResult": "NoMatch"
            }
        }
    },
    "transaction": {
        "interpretResult": "Fail",
        "serviceCallReference": "{Call reference will be a new GUID here}",
        "serviceTransactions": [
            {
                "haltTriggered": false,
                "service": "W2DataEkycUk007",
                "serviceInterpretResult": "Fail",
                "serviceTransactionResult": "Success",
                "validationResult": "Pass"
            }
        ]
    }
}
    <ProcessRequestResult>
        <ServiceResult>
            <W2DataEkycUk007Result>
                <IdentityCheckResult>
                    <MatchInformation>
                        <IndependantDataSources />
                        <NameAndAddressMatch>false</NameAndAddressMatch>
                        <NameAndDateOfBirthMatch>false</NameAndDateOfBirthMatch>
                    </MatchInformation>
                    <MatchResult>NoMatch</MatchResult>
                </IdentityCheckResult>
            </W2DataEkycUk007Result>
        </ServiceResult>
        <TransactionInformation>
            <InterpretResult>Fail</InterpretResult>
            <ServiceCallReference>{e.g. 558003c3-3154-4e55-9c9e-e2dfb897b098}</ServiceCallReference>
            <ServiceTransactions>
                <ServiceTransactionInformation>
                    <FailedOverTo />
                    <HaltTriggered>false</HaltTriggered>
                    <Service>W2DataEkycUk007</Service>
                    <ServiceInterpretResult>Fail</ServiceInterpretResult>
                    <ServiceTransactionResult>Success</ServiceTransactionResult>
                    <ServiceTransactionResultMessage />
                    <ServiceValidationDetails />
                    <ValidationResult>Pass</ValidationResult>
                </ServiceTransactionInformation>
            </ServiceTransactions>
        </TransactionInformation>
    </ProcessRequestResult>

Additional Information Response

"w2DataEkycUk007Result": {
	"fullResponse": {
		"mortalityData": [],
		"mortalityDataCheckType": "NotChecked | FullMatch | PartialMatch | NoMatch | MultipleMatch",
		"uniqueAddressMatchFound": true | false,
		"verificationData": {
			"electoralRollNameAndAddressMatch": true | false,
			"electoralRollNameAndDateOfBirthMatch": "NotChecked | FullMatch | PartialMatch | NoMatch | MultipleMatch",
			"lendersContributingToTheCreditFileCount": 0 - 99,
			"matchDateOfBirthUsingCreditRecords": "NotChecked | FullMatch | PartialMatch | NoMatch | MultipleMatch",
			"numberCcj": 0 - 99
		}
	},
	"identityCheckResult": {
		"matchInformation": {
			"independentDataSources": true | false | null,
			"nameAndAddressMatch": true | false,
			"nameAndDateOfBirthMatch": true | false
		},
		"matchResult": "NotChecked | TwoPlusTwo | TwoPlusOne | OnePlusOne | NoMatch"
	}
}
    <W2DataEkycUk007Result>
        <FullResponse>
            <MortalityData/>
            <MortalityDataCheckType>
                { NotChecked | FullMatch | PartialMatch | NoMatch | MultipleMatch }
            </MortalityDataCheckType>
            <UniqueAddressMatchFound>                { true | false }           </UniqueAddressMatchFound>
            <VerificationData>
                <ElectoralRollNameAndAddressMatch>                    { true | false }                </ElectoralRollNameAndAddressMatch>
                <ElectoralRollNameAndDateOfBirthMatch>
                    { NotChecked | FullMatch | PartialMatch | NoMatch | MultipleMatch }
                </ElectoralRollNameAndDateOfBirthMatch>
                <LendersContributingToTheCreditFileCount>                    { 0 - 99 }                </LendersContributingToTheCreditFileCount>
                <MatchDateOfBirthUsingCreditRecords>
                    { NotChecked | FullMatch | PartialMatch | NoMatch | MultipleMatch }
                </MatchDateOfBirthUsingCreditRecords>
                <NumberCcj>                    { 0 - 99 }                </NumberCcj>
            </VerificationData>
        </FullResponse>
        <IdentityCheckResult>
            <MatchInformation>
                <IndependantDataSources>{ true | false | null }</IndependantDataSources>
                <NameAndAddressMatch>{ true | false }</NameAndAddressMatch>
                <NameAndDateOfBirthMatch>{ true | false }</NameAndDateOfBirthMatch>
            </MatchInformation>
            <MatchResult>
                { NotChecked | TwoPlusTwo | TwoPlusOne | OnePlusOne | NoMatch }
            </MatchResult>
        </IdentityCheckResult>
    </W2DataEkycUk007Result>

Sandbox

 

Listed below are the details to set and the response you should expect to see (to see the details of the service response of each sandbox case, simply click on it in the table below).

Sandbox Example Cases

        
          (Click on a sandbox case to see the service result data here)
        
      
Forename Surname Day Of Birth Month Of Birth Year Of Birth Flat House Name/Number Street Postcode Result
Aaron Cross 20 6 1973 254 Ocean View WT1 1TD Inconclusive
Aaron John 3 8 1976 85 Ocean View WT1 1TD None
Abbie Forster 26 12 1962 241 Ocean View WT1 1TD None
Adam Davidson 12 5 1965 29 North Promenade FK14 2WX None
Ahenobarbus Michal 31 12 1944 68 RH13 3HE NotPerformed
Alice Jenkins 13 10 1983 First Floor Flat 9 Orchid Bank WT2 2DF Inconclusive
Allen Kiril 8 1 1943 99 IVT X34 None
Allison Leigh 17 4 1974 91 Brick Lane E1 6QL Pass
Angeline Error 12 3 1972 380 Ocean View NP1 1NP NotPerformed
Anquan Error 14 5 1978 10 Error Road ER3 3OR NotPerformed
Bethany Sharp 26 7 1949 259 Wellington Road South SK2 6NG None
Bradley Oliver 15 11 1973 209 Ocean View WT1 1TD Pass
Cameron Evans 24 12 1953 Flat B 5 Orchid Bank WT2 2DF Fail
Cerys Clayton 21 4 1983 Second Floor Flat 9 Orchid Bank WT2 2DF Inconclusive
Chloe Hardy 12 1 1979 1A 1 Orchid Bank WT2 2DF Pass
Connor Error 1 2 1947 8 Error Road ER3 3OR NotPerformed
David Cameron 9 10 1966 5 BS8 1HN None
David Error 7 3 1931 3 Error Road ER3 3OR Pass
Edward Pearson 9 4 1985 253 Ocean View WT1 1TD None
Evan Duncan 5 10 1962 202 Ocean View WT1 1TD None
Faisul Miah 4 12 1977 91 Brick Lane E1 6QL Pass
Francesca Murray 2 9 1964 32 TF12 3DY Fail
Francesca Woodward 23 9 1976 127 Ocean View WT1 1TD None
Isabelle Error 15 2 1973 168 Ocean View NP1 1NP NotPerformed
Jane Error 27 7 1986 168 Ocean View NP1 1NP NotPerformed
Jennifer Sykes 13 3 1938 57 S66 6LT Inconclusive
Jonny Miles 8 1 1943 2 99 IVT X34 NotPerformed
Kelvin Thursby 25 4 1985 91 Brick Lane E1 6QL Pass
Lily Error 9 3 1995 381 Ocean View NP1 1NP NotPerformed
Luana Melania 11 12 1924 8 AB54 5TR Inconclusive
Madison Reynolds 1 1 1900 85 NR24 9JB Pass
Megan Crawford 5 4 1957 1B 1 Orchid Bank WT2 2DF Pass
Moray Abdiou 11 12 1924 26 LN4 7AT Pass
Nicole Williamson 12 2 1976 379 WT1 1TD None
Rob James 12 10 1983 91 Brick Lane E1 6QL Pass
Rosie Duncan 1 2 1967 40 AB41 7YW None
Samantha Abbott 23 2 1966 137 Ocean View WT1 1TD None
Scott James 17 8 1976 91 Brick Lane E1 6QL Pass
Shannon Macdonald 21 1 1962 Flat B 7 Orchid Bank WT2 2DF Pass

ID Check Name Lookup


IDCheckNameLookupService is a name verification service. It checks that the name is not salacious, incomplete or randomly typed characters.

Product Name: W2-DATA-SALACIOUS_NAME-023

Properties

The following properties pertain to this service.

Property Name Type Length Optional/Mandatory Notes
NameQuery String   Mandatory* Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead
Forename String   Optional Used when NameQuery is not specified
MiddleNames String   Optional Used when NameQuery is not specified
Surname String   Optional Used when NameQuery is not specified

Response

Example Response - ID Check Name Lookup

"idCheckNameLookupResult": {
"validationResultReason": "The name is not salacious"
}
<IDCheckNameLookupResult>
  <ValidationResultReason>    The name is not salacious  </ValidationResultReason>
</IDCheckNameLookupResult>

 

Sandbox

Example Request - ID Check Name Lookup

{
    "Bundle": "IDCheckNameLookup",
    "Data": {
        "NameQuery": "John Smith"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

Sandbox Examples

Example Response for “John Smith”

"idCheckNameLookupResult": {
"validationResultReason": "The name is not salacious"
}
<IDCheckNameLookupResult>
  <ValidationResultReason>    The name is not salacious  </ValidationResultReason>
</IDCheckNameLookupResult>

The corresponding ServiceTransactions will show the following properties:

HaltTriggered False
ServiceTransactionResult - Success
ServiceInterpretResult - Pass
ServiceTransactionResultMessage “This call was generated using sandbox mode”
ValidationResult - NotApplicable

Example Response for “Mickey Mouse”

"idCheckNameLookupResult": {
"validationResultReason": "The name is flagged against our blacklist of known salacious words"
}
<IDCheckNameLookupResult>
  <ValidationResultReason>    The name is flagged against our blacklist of known salacious words  </ValidationResultReason>
</IDCheckNameLookupResult>

The corresponding ServiceTransactions will show the following properties:

HaltTriggered False
ServiceTransactionResult - Success
ServiceInterpretResult - Inconclusive
ServiceTransactionResultMessage “This call was generated using sandbox mode”
ValidationResult - NotApplicable

Example Response for “aabbccddee”

"idCheckNameLookupResult": {
	"validationResultReason": "The name appears to have been entered by hitting random keys"
}
<IDCheckNameLookupResult>
  <ValidationResultReason>    The name appears to have been entered by hitting random keys  </ValidationResultReason>
</IDCheckNameLookupResult>

The corresponding ServiceTransactions will show the following properties:

HaltTriggered False
ServiceTransactionResult - Success
ServiceInterpretResult - Inconclusive
ServiceTransactionResultMessage “This call was generated using sandbox mode”
ValidationResult - NotApplicable

The corresponding IDCheckNameLookupResult will show the following properties:

HaltTriggered False
ServiceTransactionResult - Success
ServiceInterpretResult - Pass
ServiceTransactionResultMessage “This call was generated using sandbox mode”
ValidationResult - NotApplicable

Director Check UK


Director Check UK (DirectorUKCheck) service lets you search by name the UK database of directors (Companies House). If there are multiple matches, it provides a list of them, up to a limit of 100.

Product Code: W2-DATA-DIRECTOR-UK-009

Properties

The following Query Data properties pertain to this service.

Property Name Type Length Optional/Mandatory Notes Accepted Characters
NameQuery String   Mandatory* Default field used for matching, can be blank if Forename/MiddleNames/Surname used instead  
Forename String   Optional Used when NameQuery is not specified  
MiddleNames String   Optional Used when NameQuery is not specified  
Surname String   Optional Used when NameQuery is not specified  
DayOfBirth Integer 2 Optional   Numbers Only - greater than 0
MonthOfBirth Integer 2 Optional   Numbers Only - greater than 0
YearOfBirth Integer 4 Optional   Numbers Only - greater than 0

Request

Example Request

<QueryData >
  <NameQuery>John Smith</NameQuery>
</QueryData>
"Data": {
	"NameQuery": "Jessica Black"
}

Response

Example Response

"directorUKCheckResult": {
	"directorUKCheckErrors": {
		"errorDetails": []
	},
	"directorUKCheckResults": {
		"result": [{
				"address1": "221B Baker Street",
				"address2": "",
				"birthDate": "01/01/1970",
				"country": "United Kingdrom",
				"county": "",
				"directorNumber": "1234565789",
				"name": "Jessica Black",
				"postcode": "W1S 1AA",
				"town": "London"
			}
		]
	}
}
<DirectorUKCheckResult>  <DirectorUKCheckErrors>
    <ErrorDetails/>
  </DirectorUKCheckErrors>
  <DirectorUKCheckResults>
    <!-- One or more of these -->
    <Result>
      <Address1>221B Baker Street</Address1>
      <Address2/>
      <BirthDate>01/01/1970</BirthDate>
      <Country>United Kingdom</Country>
      <County/>
      <DirectorNumber>1234565789</DirectorNumber>
      <Name>John Smith</Name>
      <Postcode>W1S 1AA</Postcode>
      <Town>London</Town>
    </Result>
  </DirectorUKCheckResults>
</DirectorUKCheckResult>

Sandbox

Example Request - Director Check UK

{
    "Bundle": "DirectorUKCheck",
    "Data": {
        "NameQuery": "Jessica Black"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

Sandbox Examples

Sample Response for “Jessica Black”

"directorUKCheckResult": {
	"directorUKCheckErrors": {
		"errorDetails": []
	},
	"directorUKCheckResults": {
		"result": [{
				"address1": "221B Baker Street",
				"address2": "",
				"birthDate": "01/01/1970",
				"country": "United Kingdrom",
				"county": "",
				"directorNumber": "1234565789",
				"name": "Jessica Black",
				"postcode": "W1S 1AA",
				"town": "London"
			}, {
				"address1": "221B Flour Street",
				"address2": "",
				"birthDate": "01/01/1960",
				"country": "United Kingdrom",
				"county": "",
				"directorNumber": "1234565789",
				"name": "Jessica Black",
				"postcode": "W1S 1BB",
				"town": "London"
			}
		]
	}
}
<DirectorUKCheckResult>
  <DirectorUKCheckErrors>
    <ErrorDetails/>
  </DirectorUKCheckErrors>  <DirectorUKCheckResults> 
    <Result>
      <Result>
        <Address1>221B Baker Street</Address1>
        <Address2/>
        <BirthDate>01/01/1970</BirthDate>
        <Country>United Kingdrom</Country>
        <County/>
        <DirectorNumber>1234565789</DirectorNumber>
        <Name>Jessica Black</Name>
        <Postcode>W1S 1AA</Postcode>
        <Town>London</Town>
      </Result>
      <Result>
        <Address1>221B Flour Street</Address1>
        <Address2/>
        <BirthDate>01/01/1960</BirthDate>
        <Country>United Kingdom</Country>
        <County/>
        <DirectorNumber>1234565789</DirectorNumber>
        <Name>Jessica Black</Name>
        <Postcode>W1S 1BB</Postcode>
        <Town>London</Town>
      </Result>
    </Result>
  </DirectorUKCheckResults>
</DirectorUKCheckResult>

The corresponding ServiceTransactions will show the following properties:

HaltTriggered False
ServiceTransactionResult - Success
ServiceInterpretResult - MultipleResults
ServiceTransactionResultMessage “This call was generated using sandbox mode”
ValidationResult - NotApplicable

The corresponding ServiceTransactions will show the following properties:

HaltTriggered False
ServiceTransactionResult SuccessNoResult
ServiceInterpretResult NoResults
ServiceTransactionResultMessage “This call was generated using sandbox mode”
ValidationResult NotApplicable

W2 Data Ekyc UK 005


W2 Data Ekyc UK 005 is an identity verification service that includes the full Electoral Roll and Credit Bureau data. This service will leave a money laundering footprint on the bureau profile of the person you are requesting information about.

Product Code: UK eKYC (005)

Query Data

The following QueryData properties pertain to this service. Please note in the actual SOAP request the fields should be in alphabetical order.

Property Name Type Length Optional/Mandatory Notes
Forename String 15 Mandatory  
MiddleNames String 15 Optional The contents of this field will be converted into initials, therefore the character limit can usually be ignored.
Surname String 30 Mandatory  
DayOfBirth Integer 2 Mandatory  
MonthOfBirth Integer 2 Mandatory  
YearOfBirth Integer 4 Mandatory  
HouseName String 26 Optional Either house name or house number must be supplied
HouseNumber String 26 Optional  Either house name or house number must be supplied
Flat String 16 Optional  
Street String 40 Optional  
County String 20 Optional  
City String 20 Optional  
Postcode String 8 Mandatory  
PhoneNumber String 16 Optional Please provide the phone number as one contiguous set of numbers with no other characters or spaces.

After performing the search, the validation result (pass, fail, etc.) will be part of the <TransactionInformation> returned for the service call.  Notes

  • Address information is optional if an AddressLookupRef is supplied in the query options. The AddressLookupRef is retrieved from the W2 Data Address Lookup 024 service as an addressId.

If an AddressLookupRef is not supplied then a minimum of House Name/Number and Postcode are required. Though it is advised to supply as much address information as possible as this is more likely to return a match if no prematched addressId is supplied. 

Request

Example Request - W2 Data Ekyc UK 005

"Data": {
	"DayOfBirth": 20,
	"Forename": "Aaron",
	"HouseNumber": "254",
	"MonthOfBirth": 6,
	"Postcode": "WT1 1TD",        
	"Street": "Ocean View",
	"Surname": "Cross",
	"YearOfBirth": 1973
}
<QueryData>
<DayOfBirth>20</DayOfBirth>
<Forename>Aaron</Forename>
<HouseNumber>254</HouseNumber>
<MonthOfBirth>6</MonthOfBirth>     
<Postcode>WT1 1TD</Postcode>  
<Street>Ocean View</Street>
<Surname>Cross</Surname>
<YearOfBirth>1973</YearOfBirth>
</QueryData>

Response

The following shows the basic schema for the <W2DataEkycUk005Result> object that is returned in the <ServiceResult> Section of the <ProcessRequestResult> object. 

Example Response - W2 Data Ekyc UK 005

"Data": {
	"DayOfBirth": 20,
	"Forename": "Aaron",
	"HouseNumber": "254",
	"MonthOfBirth": 6,
	"Postcode": "WT1 1TD",
	"Street": "Ocean View",
	"Surname": "Cross",
	"YearOfBirth": 1973
}

"w2DataEkycUk005Result": {
	"dataSources": [{
			"AllowMultipleRecordsAsSeparateDataSources": false,
			"MatchingCriteria": "NameAndAddress",
			"NumberOfMatches": 1,
			"Source": "CreditLendersA"
		}, {
			"AllowMultipleRecordsAsSeparateDataSources": false,
			"MatchingCriteria": "NameAndDateOfBirth",
			"NumberOfMatches": 1,
			"Source": "Electoral Roll"
		}
	],
	"interpretResult": "Pass",
	"Message": "The call was successful",
	"transactionResult": "SuccessIncompleteResults"
}
<W2DataEkycUk005Result>
    <DataSources>
        <!-- An array of MatchingSource elements --> 
        <MatchingSource>
            <AllowMultipleRecordsAsSeparateDataSources>
                { true | false }
            </AllowMultipleRecordsAsSeparateDataSources>
            <MatchingCriteria>
                { 
                    NotAssigned | NameAndAddress | NameAndDateOfBirth |
                    NameAndAddressAndDateOfBirth | MortalityHighConfidence | 
                    MortalityLowConfidence | SurnameAndPhoneNumberAtAddress
                }
            </MatchingCriteria>
            <NumberOfMatches>           
                { 0 - 99 }
            <NumberOfMatches>
            <Source>
               {
                    0 = NotAssigned 
                    1 = ElectoralRoll 
                    2 = CCJ
                    3 = CreditLendersA
                    4 = CreditLendersB
                    5 = BT_OSIS 
                    6 = MortalityData
                }            
            <Source>
        </MatchingSource>
    </DataSources>
    <InterpretResult>
        { 
            NotPerformed | Pass | Fail | Refer | NoInterpretPerformed 
        }
    </InterpretResult>
    <Message>
        { A message containing additional information about the call }
    </Message>
    <TransactionResult>
        {
            None | Success | SuccessNoResults | SuccessIncompleteResults |
            MultipleChoices | ClientErrorInformationFormatInvalid | ClientErrorInsufficientInformation |
            NotExecutedDueToPreviousHalt | ServerErrorGeneralError | ServiceFailureError
        }
    </TransactionResult>
</W2DataEkycUk005Result>

Below is some more information about the some of the elements of the response that require explanation:

Datasources = A collection showing every source of data that was used to formulate the result. Each source is represented by a element.

AllowMultipleRecordsAsSeparateDataSources = Indicates that two different record matches from the same data source may count as independent sources when formulating the 2 + 2 result. For example, two CCJ results may count as two sources, rather than one, as they would do under normal service circumstances.

MatchingCriteria = Precisely what data has been matched by the data source. E.g. NameAndAddressAndDateOfBirth

NumberOfMatches = The number of matches found by this data source

Source = The source of the data match. E.g. CCJ

SourceId Source Matched
1 Electoral Roll
2 County Court Judgements (CCJs)
3 Credit Lenders (CAIS)
4 N/A
5 BT_OSIS
6 Mortality Data

Transaction Result

HaltTriggered False
ServiceTransactionResult - Success
- SuccessIncompleteResults - Too many matches on the search criteria and the results have been truncated
- SuccessNoResults - No matches found
- ServerErrorGeneralError - An error occurred
- ServiceFailureError - Unable to contact third party service
- ClientErrorInsufficientInformationRequired field not supplied or insufficient/invalid information
- ClientErrorInformationFormatInvalid - Address fields cannot contain commas
ServiceInterpretResult - OneResult
- MultipleResults
- NoResults
- NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult - Pass
- NotPerformed - No search occurred to match against
- Fail - MissingMandatoryField or PatternNotMatched

Sandbox

Query options for Sandbox

"options": {
	"sandbox": "true"
}
<QueryOptions>
  <KeyValueOfstringstring>
    <Key>Sandbox</Key>
    <Value>true</Value>
  </KeyValueOfstringstring>
</QueryOptions>

To see the details of the service response of each sandbox case, simply click on it in the table below:

Sandbox Example Cases

       
       (Click on a sandbox case to see the service result data here) 
       
      
Forename Surname Day Of Birth Month Of Birth Year Of Birth Flat House Name/Number Street Postcode
Aaron Cross 20 6 1973 254 Ocean View WT1 1TD
Aaron John 3 8 1976 85 Ocean View WT1 1TD
Abbie Forster 26 12 1962 241 Ocean View WT1 1TD
Abigail Ford 22 10 1956 146 Ocean View WT1 1TD
Adam Crawford 27 6 1980 374 Ocean View WT1 1TD
Adam Sharpe 20 11 1996 250 Ocean View WT1 1TD
Ahenobarbus Michal 31 12 1944 68 RH13 3HE
Alexander Ball 21 5 1966 108 Ocean View WT1 1TD
Alexander Wallis 28 3 1953 142 Ocean View WT1 1TD
Alisha Owen 16 8 1979 113 Ocean View WT1 1TD
Allen Kiril 8 1 1943 99 IVT X34
Allen Kiril 8 1 1943 99 IVT X34
Amber Ball 9 7 1957 147 Ocean View WT1 1TD
Amelia Brady 14 8 1978 121 Ocean View WT1 1TD
Amy Bowen 6 4 1983 310 Ocean View WT1 1TD
Amy Freeman 12 7 1982 134 Ocean View WT1 1TD
Andrew Lyons 25 12 1973 304 Ocean View WT1 1TD
Andrew Sanders 26 2 1968 116 Ocean View WT1 1TD
Angeline Error 12 3 1972 380 Ocean View NP1 1NP
Ben Blake 5 7 1960 106 Ocean View WT1 1TD
Benjamin Davis 3 7 1962 321 Ocean View WT1 1TD
Bethany Bentley 10 9 1968 312 Ocean View WT1 1TD
Bethany Watts 30 4 1952 255 Ocean View WT1 1TD
Billy Jones 31 12 1944 68 RH13 3HE
Bradley Swift 14 7 1997 247 Ocean View WT1 1TD
Brandon Rose 13 4 1964 378 Ocean View WT1 1TD
Caitlin ODonnell 8 11 1961 268 Ocean View WT1 1TD
Caitlin Williams 1 1 1974 365 Ocean View WT1 1TD
Callum Saunders 13 10 1976 122 Ocean View WT1 1TD
Cerys Holden 24 9 1985 265 Ocean View WT1 1TD
Cerys Reeves 3 3 1978 270 Ocean View WT1 1TD
Charles Coleman 24 2 1964 306 Ocean View WT1 1TD
Charlie Byrne 30 1 1986 300 Ocean View WT1 1TD
Charlie Carroll 24 11 1957 112 Ocean View WT1 1TD
Charlie Clarke 14 2 1957 105 Ocean View WT1 1TD
Charlie Glover 3 12 1990 90 Ocean View WT1 1TD
Charlie Wilkinson 18 11 1968 26 LN4 7AT
Charlotte Cooper 18 4 1973 126 Ocean View WT1 1TD
Christopher Norman 2 5 1966 144 Ocean View WT1 1TD
Christopher Townsend 13 5 1972 83 Ocean View WT1 1TD
Courtney Webb 24 2 1952 148 Ocean View WT1 1TD
Daisy North 12 11 1979 86 Ocean View WT1 1TD
Danielle Evans 1 4 1963 295 Ocean View WT1 1TD
David Armstrong 25 2 1951 114 Ocean View WT1 1TD
David Cameron 9 10 1966 5 BS8 1HN
David Robson 9 5 1992 42 HU12 9FL
Dominic Andrews 2 2 1960 367 Ocean View WT1 1TD
Elise Bryant 19 5 1956 263 Ocean View WT1 1TD
Elizabeth Sheppard 23 10 1952 89 Ocean View WT1 1TD
Ella Fox 25 4 1974 303 Ocean View WT1 1TD
Ella Rowe 3 8 1955 107 Ocean View WT1 1TD
Ellie Horton 1 12 1953 279 Ocean View WT1 1TD
Elliot Gardiner 21 1 1977 259 Ocean View WT1 1TD
Elliot Simpson 21 4 1955 94 Ocean View WT1 1TD
Ellis Bryan 15 10 1967 290 Ocean View WT1 1TD
Emma Coles 10 8 1985 264 Ocean View WT1 1TD
Erin Godfrey 20 3 1964 160 Ocean View WT1 1TD
Eva Little 13 4 1985 150 Ocean View WT1 1TD
Evan Barnett 11 10 1968 153 Ocean View WT1 1TD
Evan Brown 13 4 1956 133 Ocean View WT1 1TD
Evan Butcher 24 8 1947 96 Ocean View WT1 1TD
Evie Boyle 7 4 1942 319 Ocean View WT1 1TD
Finlay Jones 25 10 1966 287 Ocean View WT1 1TD
Finlay Reynolds 20 5 1967 302 Ocean View WT1 1TD
Francesca Kemp 22 6 1968 317 Ocean View WT1 1TD
Francesca Woodward 23 9 1976 127 Ocean View WT1 1TD
Fred Error 3 4 1986 56 Ocean View NP1 1NP
Gabriel Stephens 21 11 1995 357 Ocean View WT1 1TD
Georgina Bird 1 1 1961 322 Ocean View WT1 1TD
Georgina Heath 15 12 1979 293 Ocean View WT1 1TD
Grace Anderson 9 3 1979 102 Ocean View WT1 1TD
Grace Bull 20 11 1978 82 Ocean View WT1 1TD
Gracie Gibbons 7 12 1988 364 Ocean View WT1 1TD
Gracie OSullivan 5 9 1950 111 Ocean View WT1 1TD
Gracie Williamson 28 2 1993 324 Ocean View WT1 1TD
Hannah Harvey 12 4 1983 162 Ocean View WT1 1TD
Hannah Hilton 6 4 1940 323 Ocean View WT1 1TD
Hannah Warner 8 12 1976 130 Ocean View WT1 1TD
Hayden Gray 22 2 1978 143 Ocean View WT1 1TD
Henry Brookes 25 3 1970 245 Ocean View WT1 1TD
Henry Gibson 18 1 1963 251 Ocean View WT1 1TD
Henry Hodgson 12 2 1963 132 Ocean View WT1 1TD
Holly Chapman 3 5 1990 375 Ocean View WT1 1TD
Holly Martin 1 10 1947 115 Ocean View WT1 1TD
Imogen Wilkins 19 4 1973 294 Ocean View WT1 1TD
Isaac Townsend 11 9 1971 138 Ocean View WT1 1TD
Isabella Wallis 22 5 1987 369 Ocean View WT1 1TD
Isabelle Error 15 2 1973 168 Ocean View NP1 1NP
Isabelle Error 15 2 1973 168 Ocean View NP1 1NP
Isabelle Taylor 5 7 1951 273 Ocean View WT1 1TD
Isabelle Vincent 19 9 1949 286 Ocean View WT1 1TD
Jake George 3 6 1977 260 Ocean View WT1 1TD
Jake Perkins 30 8 1978 285 Ocean View WT1 1TD
James Error 10 6 1978 4 Ocean View NP1 1NP
James Owen 23 2 1947 129 Ocean View WT1 1TD
James Smith 29 9 1977 314 Ocean View WT1 1TD
James Thorpe 10 6 1978 4 AB54 4PN
Jamie Error 15 8 1959 57 Ocean View NP1 1NP
Jamie Morton 19 8 1959 355 Ocean View WT1 1TD
Jane Error 27 7 1986 168 Ocean View NP1 1NP
Jasmine Lord 26 3 1949 103 Ocean View WT1 1TD
Jay Greenwood 14 6 1989 101 Ocean View WT1 1TD
Jennifer Error 3 11 1975 151 Ocean View NP1 1NP
Jessica Berry 29 1 1962 377 Ocean View WT1 1TD
Jodie Nolan 14 5 1967 152 Ocean View WT1 1TD
Jodie Woodward 29 6 1982 104 Ocean View WT1 1TD
Joe Sharpe 22 1 1965 87 Ocean View WT1 1TD
Joe Smith 10 5 1985 281 Ocean View WT1 1TD
Joe Waters 22 11 1991 362 Ocean View WT1 1TD
Joe West 21 11 1966 288 Ocean View WT1 1TD
John Bond 1 8 1948 123 Ocean View WT1 1TD
John Error 23 3 1956 45 Ocean View NP1 1NP
Jonathan Boyle 11 10 1983 120 Ocean View WT1 1TD
Jonathan Gibbons 28 3 1961 156 Ocean View WT1 1TD
Jonathan Newman 13 5 1985 93 Ocean View WT1 1TD
Jonny Miles 8 1 1943 2 99 IVT X34
Jordan McLean 14 10 1963 252 Ocean View WT1 1TD
Jordan Payne 28 12 1987 139 Ocean View WT1 1TD
Joshua Bryant 12 3 1977 274 Ocean View WT1 1TD
Katherine Cunningham 22 1 1987 155 Ocean View WT1 1TD
Katherine Stone 5 11 1972 157 Ocean View WT1 1TD
Katie Thornton 30 11 1977 315 Ocean View WT1 1TD
Keira Lamb 5 8 1948 109 Ocean View WT1 1TD
Kian Bartlett 30 7 1974 117 Ocean View WT1 1TD
Kian Morley 11 12 1972 372 Ocean View WT1 1TD
Kian Turnbull 13 6 1977 249 Ocean View WT1 1TD
Kiera Humphries 16 9 1985 297 Ocean View WT1 1TD
Kieran Collins 26 6 1970 258 Ocean View WT1 1TD
Laura Error 28 7 1965 33 Ocean View NP1 1NP
Laura Hewitt 5 10 1951 299 Ocean View WT1 1TD
Laura Sampson 11 3 1982 3 Oaklands BS1 1ST
Leman Russ 22 2 1942 49 BS4 1LT
Lewis Davey 5 10 1986 318 Ocean View WT1 1TD
Lewis Ingram 16 8 1976 140 Ocean View WT1 1TD
Liam Jackson 18 2 1985 277 Ocean View WT1 1TD
Libby Sharpe 23 2 1982 272 Ocean View WT1 1TD
Lilly Watson 24 12 1961 366 Ocean View WT1 1TD
Lily Error 9 3 1995 381 Ocean View NP1 1NP
Logan Douglas 1 6 1992 359 Ocean View WT1 1TD
Logan Fraser 11 10 1951 292 Ocean View WT1 1TD
Logan Pearce 6 3 1983 311 Ocean View WT1 1TD
Lola Turner 24 8 1981 291 Ocean View WT1 1TD
Louie Morrison 27 9 1984 356 Ocean View WT1 1TD
Louie Walters 5 2 1947 308 Ocean View WT1 1TD
Louis Poole 17 12 1980 354 Ocean View WT1 1TD
Louise Error 28 2 1987 567 Ocean View NP1 1NP
Louise Lucas 4 3 1984 269 Ocean View WT1 1TD
Luca Dale 12 11 1950 301 Ocean View WT1 1TD
Lydia Howe 30 5 1967 267 Ocean View WT1 1TD
Maddison Cox 7 11 1993 373 Ocean View WT1 1TD
Maisie Davey 11 10 1964 125 Ocean View WT1 1TD
Maisie Duffy 9 10 1966 276 Ocean View WT1 1TD
Mark Error 14 9 1938 800 Ocean View NP1 1NP
Martin Error 3 9 1987 63 Ocean View NP1 1NP
Mary Error 1 12 1991 32 Ocean View NP1 1NP
Mason Wallis 6 3 1981 88 Ocean View WT1 1TD
Matilda Hewitt 20 5 1963 278 Ocean View WT1 1TD
Matthew Dukes 10 2 1973 Willow BS3 2FF
Max Carpenter 19 11 1953 158 Ocean View WT1 1TD
Maya Burrows 23 1 1953 48 Ocean View WT1 1TD
Maya Harper 25 7 1981 256 Ocean View WT1 1TD
Mia Evans 14 10 1964 320 Ocean View WT1 1TD
Mia Holt 17 7 1972 151 Ocean View WT1 1TD
Millie Richards 18 6 1952 99 Ocean View WT1 1TD
Mohammed Collier 6 9 1996 368 Ocean View WT1 1TD
Molly Abbott 11 1 1973 248 Ocean View WT1 1TD
Morgan Hutchinson 10 10 1988 97 Ocean View WT1 1TD
Morgan Weston 17 2 1965 246 Ocean View WT1 1TD
Naomi Law 23 3 1971 313 Ocean View WT1 1TD
Natasha Pritchard 16 5 1976 87 Ponteland Rd PA6 0TH
Nicholas Chapman 7 7 1973 124 Ocean View WT1 1TD
Nicole Miles 23 12 1969 360 Ocean View WT1 1TD
Nicole Williamson 12 2 1976 379 WT1 1TD
Oliver Pickering 16 3 1986 358 Ocean View WT1 1TD
Oliver Watts 18 8 1982 346 Ocean View WT1 1TD
Olivia Godfrey 14 3 1974 353 Ocean View WT1 1TD
Olivia Jones 12 4 1964 296 Ocean View WT1 1TD
Oscar Doyle 11 1 1979 363 Ocean View WT1 1TD
Owen Talbot 11 4 1984 84 Ocean View WT1 1TD
Patrick Fleming 24 10 1947 98 Ocean View WT1 1TD
Reece Savage 15 9 1972 266 Ocean View WT1 1TD
Rhys Chadwick 2 5 1969 376 Ocean View WT1 1TD
Rhys Page 11 9 1950 283 Ocean View WT1 1TD
Rosie Duncan 1 2 1967 40 AB41 7YW
Ruby Smith 30 10 1951 161 Ocean View WT1 1TD
Ryan Howarth 26 12 1967 261 Ocean View WT1 1TD
Sam Error 7 5 1967 102 Ocean View NP1 1NP
Sam Foster 19 7 1952 275 Ocean View WT1 1TD
Sam Leach 27 2 1957 159 Ocean View WT1 1TD
Samantha Abbott 23 2 1966 137 Ocean View WT1 1TD
Samantha Stokes 2 5 1990 141 Ocean View WT1 1TD
Scott Buckley 3 6 1986 257 Ocean View WT1 1TD
Sean Pope 30 4 1972 282 Ocean View WT1 1TD
Sean Wheeler 30 6 1969 119 Ocean View WT1 1TD
Sophie Benson 16 4 1975 149 Ocean View WT1 1TD
Taylor Benson 21 3 1975 309 Ocean View WT1 1TD
Taylor Coles 6 7 1963 128 Ocean View WT1 1TD
Taylor Giles 19 6 1984 164 Ocean View WT1 1TD
Taylor Giles 19 6 1984
Tegan Steele 17 10 1952 110 Ocean View WT1 1TD
Thomas Holden 30 5 1952 305 Ocean View WT1 1TD
Toby Hussain 29 7 1958 371 Ocean View WT1 1TD
Toby Norton 1 11 1968 95 Ocean View WT1 1TD
Tom Dale 28 3 1957 131 Ocean View WT1 1TD
Tom Payne 8 5 1969 135 Ocean View WT1 1TD
Tom Smithersby 24 7 1958 12 BS11 5ST
William Byrne 14 2 1985 92 Ocean View WT1 1TD
Zak Carr 2 3 1985 243 Ocean View WT1 1TD
Zak Error 2 3 1985 243 Ocean View NP1 1NP
Za Randall 24 12 1960 284 Ocean View WT1 1TD

W2DataEkycUk007B


W2 Data Ekyc UK 007B is an identity verification service that includes the full Electoral Roll, CCJ and Credit Lenders data. This service will leave a money laundering footprint on the lenders profile of the person you are requesting information about.

Product Code: W2-DATA-EKYC-UK-007

Configuration

This service has some configuration that will be discussed with you as part of the on-boarding process. We can configure a matching profile and which sources of information to use when calculating a 2 plus 2 check. Please contact W2 Support for more information.

Query Data

The following Query Data properties pertain to this service. Please note that in the SOAP request the fields must be in alphabetical order.

Property Name Type Min Length Max Length Optional/Mandatory Accepted Characters
Forename String 1 15 Mandatory All apart from (new line ' - \ \\ ,)
MiddleNames String   15 Optional All apart from (new line ' - \ \\ ,)
Surname String 1 30 Mandatory All apart from (new line ' - \ \\ ,)
DayOfBirth Integer 1 2 Mandatory Numbers Only - greater than 0
MonthOfBirth Integer 1 2 Mandatory Numbers Only - greater than 0
YearOfBirth Integer 1 4 Mandatory Numbers Only - greater than 0
HouseName String   26 Optional  
HouseNumber String   26 Optional  
Flat String   20 Optional  
Street String   32 Optional  
Region String   20 Optional  
County String   18 Optional  
Country String   20 Optional  
City String   28 Optional  
Postcode String 1 8 Optional  

After performing the search, the validation result (pass, fail, etc.) will be part of the <TransactionInformation> returned for the service call. 

Notes

  • Address information is optional if an AddressLookupRef is supplied in the query options. The AddressLookupRef is retrieved from the W2 Data Address Lookup 024 service as an addressId.

  • If an AddressLookupRef is not supplied then a minimum of House Name/Number and Postcode are required. Though it is advised to supply as much address information as possible as this is more likely to return a match if no prematched addressId is supplied.

  After performing the search, the validation result (pass, fail, etc.) will be part of the <TransactionInformation> returned for the service call. 

Request

The following is an example SOAP request to the W2 Data Ekyc UK 007 B Service.

Example Request - W2 Data Ekyc UK 007B

{
	"Bundle": "YOURBUNDLE",
	"Data": {
		"DayOfBirth": 22,
		"Forename": "Isabelle",
		"MonthOfBirth": 10,
		"Surname": "Davidson",
		"YearOfBirth": 1997
	},
	"Options":{
		"AddressLookupRef":"12345"
	}
}
<serviceRequest>
    <BundleData>
        <BundleName>{YOUR BUNDLE NAME HERE}</BundleName>
    </BundleData>
    <QueryData>
        <DayOfBirth>{e.g. 01}</DayOfBirth>
        <Forename>{e.g. JOHN}</Forename>
        <MiddleNames>{e.g. JAMES} </MiddleNames>
        <MonthOfBirth>{e.g. 01}</MonthOfBirth>
        <Surname>{e.g. SMITH}</Surname>
        <YearOfBirth>{e.g. 1990}</YearOfBirth>
    </QueryData>
    <QueryOptions>
        <KeyValueOfstringstring>
            <Key>{AddressLookupRef}</Key>
            <Value>{e.g. 12345}</Value>
        </KeyValueOfstringstring>
    </QueryOptions>
    <ServiceAuthorisation>
        <APIKey>{YOUR API KEY HERE}</APIKey>
        <ClientReference>{YOUR CLIENT REFERENCE HERE}</ClientReference>
    </ServiceAuthorisation>
</serviceRequest>

Response

Example Response - W2 Data Ekyc UK 007B

"w2DataEkycUk007BResult": {
	"dataSources": [{
		"AllowMultipleRecordsAsSeparateDataSources": false,
		"MatchingCriteria": "NameAndAddressAndDateOfBirth",
		"NumberOfMatches": 2,
		"Source": "CreditLendersB"
		}
	],
	"interpretResult": "Pass",
	"Message": "The call was successful",
	"transactionResult": "SuccessIncompleteResults"
}
<W2DataEkycUk007BResult>
	<DataSources>        
		<!-- An array of MatchingSource elements -->         
		<MatchingSource>            
			<AllowMultipleRecordsAsSeparateDataSources>  
				true or false  
			</AllowMultipleRecordsAsSeparateDataSources>
			<MatchingCriteria>
				NotAssigned or NameAndAddress or NameAndDateOfBirth or
				NameAndAddressAndDateOfBirth or MortalityHighConfidence or
				MortalityLowConfidence or SurnameAndPhoneNumberAtAddress
			</MatchingCriteria>
			<NumberOfMatches>
				0 - 99
			<NumberOfMatches>
			<Source>
				0 = NotAssigned
				1 = ElectoralRoll
				2 = CCJ
				3 = CreditLendersA
				4 = CreditLendersB
				5 = BT_OSIS
				6 = MortalityData
			<Source>
		</MatchingSource>
	</DataSources>
	<InterpretResult>
		NotPerformed or Pass or Fail or Refer or NoResults or
		OneResult or MultipleResults or NotApplicable or NoInterpretPerformed
	</InterpretResult>
	<Message>
	A message containing additional information about the call
	</Message>
	<TransactionResult>
	None or Success or SuccessNoResults or SuccessIncompleteResults or
	MultipleChoices or ClientErrorInformationFormatInvalid or ClientErrorInsufficientInformation or
	NotExecutedDueToPreviousHalt or ServerErrorGeneralError or ServiceFailureError
	</TransactionResult>
</W2DataEkycUk007BResult>

The following shows the basic schema for the <W2DataEkycUk007BResult> object that is returned in the <ServiceResult> Section of the <ProcessRequestResult> object.

Below is some more information about the some of the elements of the response that require explanation:
DataSources = A collection showing every source of data that was used to formulate the result. Each source is represented by a <MatchingSource> element.
AllowMultipleRecordsAsSeparateDataSources = Indicates that two different record matches from the same data source may count as independent sources when formulating the 2 + 2 result. For example, two Insight results may count as two sources, rather than one, as they would do under normal service circumstances.

MatchingCriteria = Precisely what data has been matched by the data source. E.g. NameAndAddressAndDateOfBirth

NumberOfMatches = The number of matches found by this data source

Source = An integer representing the source of the data match. E.g. 2 = CCJ (County Court Judgement)

SourceId Source Matched
1 Electoral Roll
2 County Court Judgements (CCJs)
3 N/A
4 Credit Lenders (Insight)
5 BT_OSIS
6 Mortality Data

InterpretResult = The overall verification result, based on what matches were found in the data source against the query data submitted. The possibilities are Pass, Fail or Refer

Message = Gives some more details / context on the verification result

TransactionResult = A diagnostic result showing whether or not any technical errors were experienced during the check. This should always be “Success” unless a technical error has occured, in which case the verification check will be aborted.

Example Response:

The example shows a case where we have found one NameAndAddress match on the Electoral roll and 3 NameAndAddressAndDateOfBirth matches on CreditLendersB. This has resulted in a Pass.

Example Response - W2 Data Ekyc UK 007B  

<W2DataEkycUk007BResult>
    <DataSources>
        <MatchingSource>
            <AllowMultipleRecordsAsSeparateDataSources>false</AllowMultipleRecordsAsSeparateDataSources>
            <MatchingCriteria>NameAndAddress</MatchingCriteria>
            <NumberOfMatches>1<NumberOfMatches>
            <Source>1<Source>
        </MatchingSource>
        <MatchingSource>
            <AllowMultipleRecordsAsSeparateDataSources>true</AllowMultipleRecordsAsSeparateDataSources>
            <MatchingCriteria>NameAndAddressAndDateOfBirth</MatchingCriteria>
            <NumberOfMatches>3<NumberOfMatches>
            <Source>4<Source>
        </MatchingSource>
     </DataSources>
     <InterpretResult>Pass</InterpretResult>
     <Message />
     <TransactionResult>Success</TransactionResult>
</W2DataEkycUk007BResult>
"w2DataEkycUk007BResult": {
	"dataSources": [{
			"AllowMultipleRecordsAsSeparateDataSources": false,
			"MatchingCriteria": "NameAndAddress",
			"NumberOfMatches": 1,
			"Source": "ElectoralRoll"
		},
		{
			"AllowMultipleRecordsAsSeparateDataSources": true,
			"MatchingCriteria": "NameAndAddressAndDateOfBirth",
			"NumberOfMatches": 3,
			"Source": "CreditLendersB"
		}
	],
	"interpretResult": "Pass",
	"Message": "The call was successful",
	"transactionResult": "SuccessIncompleteResults"
}

Transaction Result

HaltTriggered False
ServiceTransactionResult - Success
- SuccessIncompleteResults - Too many matches on the search criteria and the results have been truncated
- SuccessNoResults - No matches found
- ServerErrorGeneralError - An error occurred
- ServiceFailureError - Unable to contact third party service
- ClientErrorInsufficientInformationRequired field not supplied or insufficient/invalid information
ServiceInterpretResult - OneResult
- MultipleResults
- Fail
- NoResults
- NoInterpretPerformed
- NotPerformed - An error occurred and the search was not performed
ServiceTransactionResultMessage Usually empty, can contain optional information such as too many matches etc.
ValidationResult - Pass
- NotPerformed - No search occurred to match against
- FailMissingMandatoryField or PatternNotMatched

Warnings

Example Scenario of a Warning Request

       <serviceRequest>
            <neur:BundleData>
               <neur:BundleName>W2DataEkycUK007B</neur:BundleName>
            </neur:BundleData>
            <neur:QueryData>
               <neur:DayOfBirth>20</neur:DayOfBirth> 
               <neur:Flat>254</neur:Flat>
               <neur:Forename>Bruce</neur:Forename>
               <neur:HouseName>TheHouse</neur:HouseName>
               <neur:HouseNumber>22</neur:HouseNumber>
               <neur:MonthOfBirth>04</neur:MonthOfBirth>
               <neur:Postcode>WT1 1TD</neur:Postcode>
               <neur:Street>Ocean View</neur:Street>
               <neur:Surname>Jones</neur:Surname>
               <neur:YearOfBirth>1981</neur:YearOfBirth>
            </neur:QueryData>
            <neur:QueryOptions>
               <arr:KeyValueOfstringstring>
                  <arr:Key>Sandbox</arr:Key>
                  <arr:Value>false</arr:Value>
               </arr:KeyValueOfstringstring>
            </neur:QueryOptions>
            <neur:ServiceAuthorisation>
                <neur:APIKey>{YOUR API KEY HERE}</neur:APIKey>
                <neur:ClientReference>{YOUR CLIENT REFERENCE HERE}</neur:ClientReference>
            </neur:ServiceAuthorisation>
         </serviceRequest>
{
    "Bundle": "W2DataEkycUK007B",
    "Data": {
        "DayOfBirth": 20,
        "Flat": "254",
        "Forename": "Bruce",
        "HouseName":"TheHouse",
        "HouseNumber":"22",
        "MonthOfBirth": 4,
        "Postcode":"WT1 1TD",
        "Street": "Ocean View",
        "Surname":"Jones",
        "YearOfBirth":1981
    },
    "Options": {
        "Sandbox": "false"
    },
    "ClientReference": "{YOUR CLIENT REFERENCE HERE}"
}

Example Scenario of a Warning Responses


<W2DataEkycUk007BResult>
         <DataSources/>
         <EncodedScore>13110</EncodedScore>
         <InterpretResult>Pass</InterpretResult>
         <Message>Matching performed using 3,1,1,2,4 sources as per profile</Message>
         <TransactionResult>Success</TransactionResult>
         <Characteristics/>
                <Warnings>
                     <Warning>
                         <Message>Address variance found in the HouseName response - this individual was verified using HouseName: The House; HouseName supplied in request: TheHouse;</Message>
                     </Warning>
                     <Warning>
                         <Message>Address variance found in the HouseNumber response - this individual was verified using HouseNumber: 23; HouseNumber supplied in request: 22;</Message>
                     </Warning>
                     <Warning>
                         <Message>Address variance found in the Street response - this individual was verified using Street: OceansView; Street supplied in request: Ocean View;</Message>
                     </Warning>
                     <Warning>
                         <Message>Address variance found in the Postcode response - this individual was verified using Postcode: WT1 1TA; Postcode supplied in request: WT1 1TD;</Message>
                     </Warning>
                     <Warning>
                         <Message>Address variance found in the Flat response - this individual was verified using Flat: 2; Flat supplied in request: 254;</Message>
                     </Warning>
                </Warnings>
</W2DataEkycUk007BResult>

{
    "clientReference": "REST API Client Wrapper Testing",
    "results": {
        "w2DataEkycUk007BResult": {
            "characteristics": [],
            "warnings": [
                {
                    "message": "Address variance found in the HouseName response - this individual was verified using HouseName: The House; HouseName supplied in request: TheHouse;"
                },
                {
                    "message": "Address variance found in the HouseNumber response - this individual was verified using HouseNumber: 23; HouseNumber supplied in request: 22;"
                },
                {
                    "message": "Address variance found in the Street response - this individual was verified using Street: OceansView; Street supplied in request: Ocean View;"
                },
                {
                    "message": "Address variance found in the Postcode response - this individual was verified using Postcode: WT1 1TA; Postcode supplied in request: WT1 1TD;"
                },
                {
                    "message": "Address variance found in the Flat response - this individual was verified using Flat: 2; Flat supplied in request: 254;"
                }
            ],
            "dataSources": [],
            "encodedScore": "13110",
            "interpretResult": "Pass",
            "message": "Matching performed using 3,1,1,2,4 sources as per profile",
            "transactionResult": "Success"
        }
    },
    "transaction": {
        "interpretResult": "Pass",
        "serviceCallReference": "9be156fe-c0ef-44bd-9aeb-ccdc5957deed",
        "serviceTransactions": [
            {
                "haltTriggered": false,
                "service": "W2_DATA_EKYC_UK_007_B",
                "serviceInterpretResult": "Pass",
                "serviceTransactionResult": "Success",
                "serviceTransactionResultMessage": "Matching performed using 3,1,1,2,4 sources as per profile",
                "validationResult": "Pass"
            }
        ]
    }
}

A warning occurs when a verified response returns an address variant that is different to the request that was sent.

This will now display several warning messages that identify the verified response, the supplied response and where this differs.

Below are the properties that will display if any address variance occurs, then these will be displayed :

Property Name Type
HouseName String
HouseNumber Integer
Street String
Postcode String
Flat String

Sandbox

Example Request - W2 Data Ekyc 007B

{
    "Bundle": "KYC_UK_007B",
    "Data": {
        "Forename": "Abbie",
        "Surname": "Forster",
        "DayOfBirth": 26,
        "MonthOfBirth": 12,
        "YearOfBirth": 1962,
        "HouseNumber": 241,
        "Street": "Ocean View",
        "Postcode": "WT1 1TD"
    },
    "Options": {
        "Sandbox": "true"
    },
    "ClientReference": "your-client-reference"
}

To see the details of the service response of each sandbox case, simply click on it in the table below:

Sandbox Example Cases

      (Click on a sandbox case to see the service result data here)
      
Forename Surname Day Of Birth Month Of Birth Year Of Birth Flat House Name/Number Street Postcode
Abbie Forster 26 12 1962 241 Ocean View WT1 1TD
Abbie Forster 26 12 1962
Abby Cameron 16 10 1970 192 Ocean View WT1 1TD
Abby Peacock 25 6 1982 58 Ocean View WT1 1TD
Abigail Ford 22 10 1956 146 Ocean View WT1 1TD
Abigail George 22 5 1985 23 Ocean View WT1 1TD
Adam Davidson 12 5 1965 29 North Promenade FK14 2WX
Adam Massey 1 6 1960 22 Ocean View WT1 1TD
Adam Potts 3 9 1982 218 Ocean View WT1 1TD
Ahenobarbus Michal 31 12 1944 68 RH13 3HE
Alex Chambers 14 7 1960 188 Ocean View WT1 1TD
Alex Robson 8 4 1961 65 Ocean View WT1 1TD
Alexander Robinson 9 5 1981 240 Ocean View WT1 1TD
Alexander Ward 12 6 1993 347 Ocean View WT1 1TD
Alexandra Duncan 27 9 1971 197 Ocean View WT1 1TD
Alfie Woods 3 3 1956 25 Ocean View