arrow-left

Only this pageAll pages
gitbookPowered by GitBook
1 of 14

Tiller - Verifications API

GETTING STARTED

Loading...

Loading...

Loading...

Loading...

Loading...

Reference

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Address Verification

hashtag
Overview

The Address Verification service offered enables reliable international address verification as part of the KYC process. This service covers 53 countries and leverages trusted in-country data sources, such as government agencies, credit bureaus, and utility companies. By directly accessing these sources, the system ensures that verification results are accurate and up-to-date.

Check Type ID: 1

This is the check type used for Address Verification. It validates the individual’s address against trusted data sources, such as government registries and utility records.

Required Profile Information

To perform Address Verification, the following fields are required in the profile section of the request:

  • Personal Details:

    • firstName (Required): The first name of the individual.

    • lastName (Required): The last name of the individual.

See for more information on structuring a request.

hashtag
How it works

  1. Data Sources: Verification utilizes regulatory-quality data sources, including government registries, voter databases, and utility records. Mobile and marketing data sources are not used to ensure compliance with regulatory standards.

  2. Match Process: Verify matches the provided address details with available data sources. A positive match confirms residency at the stated address.

  3. Data Protection: Personal data is shared temporarily with data providers for matching purposes. Strict legal agreements ensure GDPR compliance and limit data usage.

International residential address verification uses a number of data providers with access to regional data source providers within the supported countries. Verify by Tiller uses data sources direct from government agencies, credit agencies, utility companies and landline telecommunication providers. Mobile telecommunication providers, marketing lists or other sources which do not meet regulatory standards are not used.

When verifying the address, Verify determines which in-country data sources are available and most likely to be able to obtain a match and get the provider to confirm if the credentials provided match their records. By matching directly to the original data source provider, we ensure the data is as up to date as possible. The number and degree of match is then used to confirm if the individual is a resident at their stated address.

hashtag
Address sources

Tiller partners with a number of carefully selected agents who have access to specific in-country regulatory-quality data sources. Tiller’s Verify application will use one or more of the following data source types to verify the residential address of an individual:

  • Credit Agency Databases,

  • Government Databases (e.g., Voter, Social Security, Population/Citizenship Registries)

  • Utility Company Databases (e.g., Electricity, Water, Gas, Telephone (excluding Mobile)).

Most regulators make provision for the address to be verified against such data sources and Verifications includes which data source types were used in the verification results it provides back via its API.

It is necessary to support residential address checks to temporarily share name and address PII information with a data source provider for the match check to be performed. Tillers legal agreements with our providers strictly restricts the use and retention of the PII information shared. PII data is only permitted to be used for the purposes of confirming a name and address match and may not be retained or used for any other purposes. The providers are also contractually required to adhere to all provisions of GDPR.

Tillers systems and data are hosted within the EU/EEA, however, where an individual being checked is resident outside the EU it is necessary for Tiller to share that individuals PII data with the data source providers in that individual’s country of residence. Tillers legal agreements with our providers include the modernised 2021 EU SCC (Standard Contractual Clauses) that have been “pre-approved” by the European Commission, ensuring appropriate data protection safeguards covering international transfers of PII data.

The above data handling & verification model is that same as that used by our larger enterprise customers such has HSBC, who received a confirmation of ‘no objection’ from the JSFC (Jersey Financial Services Commission) when they submitted their outsourcing request to use Tillers services to them.

Welcome!

hashtag
Welcome to the Tiller Verifications API

The Tiller Verifications API powers KYC and CDD processes, enabling platforms to perform checks on individuals with precision and efficiency. This API also forms the backbone of our solution, helping businesses meet regulatory requirements while streamlining compliance workflows.

Ongoing Monitoring

hashtag
Overview

The Ongoing Monitoring API allows you to manage and retrieve updates for continuous background checks. When ongoing monitoring is enabled during a verification request (enableOngoingMonitoring: true), the system monitors the individual on a daily basis to identify new PEP & Sanctions, Adverse Media, or Watchlist events. Alerts are sent to the subscribed return URL whenever there is a status change, and results can be retrieved using the relevant endpoints.

Changelog and Versioning

hashtag
Changelog and Versioning

The Verifications API is continuously evolving, with new features and updates being added to enhance functionality. This section provides information about our versioning policy and a changelog that details the historical and recent changes to the API.

hashtag

dateOfBirth (Optional): Improves match accuracy when included.

  • Address Details:

    • currentAddress.structured (Preferred): A structured address format that includes:

      • flatApartmentSubBuilding (Optional)

      • BuildingNumber (Optional)

      • BuildingName (Optional)

      • RoadStreet (Optional)

      • townCity (Optional)

      • postZipCode (Required)

      • countryCode (Required): Must be a valid ISO 3166-1 alpha-2 code.

    • currentAddress.unstructured (Fallback): If structured data is unavailable, unstructured data can be provided, though this decreases match accuracy.

  • Request Structure
    hashtag
    What is the Tiller Verifications API

    The Tiller Verifications API is a flexible, secure solution tailored to the complexities of modern compliance needs. Whether integrating it directly into your systems or using it as part of the Verify platform, this API empowers your business to:

    • Verify Addresses: Validate international addresses with trusted, regulatory-quality data from 53 countries.

    • Perform PEP & Sanctions and Adverse Media Screening: Identify politically exposed persons, individuals on watchlists and sanctions lists and adverse media.

    • Check UK Bank Accounts: Securely confirm bank account details to ensure accurate financial transactions.

    hashtag
    Core Principles

    The Tiller Verifications API is designed with developers in mind, offering:

    • RESTful Design: Simplify integration with predictable, resource-based URLs.

    • Customisable Workflows: Tailor verification processes to fit your specific business needs.

    • Scalable Infrastructure: Handle verifications for businesses of all sizes, from start-ups to large enterprises.

    • Real-Time Updates: Stay informed with webhook notifications for screening events.

    • Comprehensive Security: Ensure data privacy and integrity with encryption and strict authentication protocols.

    hashtag
    Want to jump right in?

    Get started today with our Quick Start Guide. Learn how to:

    1. Sign up for an API credentials.

    2. Authenticate your requests.

    3. Perform your first Address Verification check.

    hashtag
    Want to deep dive?

    Dive a little deeper and start exploring our API reference to get an idea of everything that's possible with the API:

    Verify by Tillerarrow-up-right
    API Referencechevron-right
    Versioning Policy

    Our API versioning is designed to ensure backward compatibility and minimise disruptions to your integration.

    • Version Format: We use a simple versioning, vX, where X is the major version.

    • Major Versions: Changes in the major version indicate significant updates that may not be backwards compatible. These changes could include modifications to existing endpoint functionality or removing endpoints. This will alter the API base URL.

    • Minor Changes: Minor version updates involve backward-compatible additions or enhancements, such as adding or extending new endpoints. These will not change the base URL.

    verifications-api.tiller-verify.com/api/{version}/
    hashtag
    Retrieving monitoring results

    Endpoint:

    GET /api/v1/ongoingmonitoring/{correlationId}

    Description:

    Retrieves the verification statuses and results for a specific ongoing monitoring record using the correlationId provided during the initial verification request.

    Path parameters:

    • correlationId (string, required): The unique ID associated with the monitoring request.

    Query Parameters:

    • fromDate (date-time, optional): Filter results starting from this date.

    • toDate (date-time, optional): Filter results up to this date.

    hashtag
    Subcribing to the Monitoring Service

    Endpoint:

    POST /api/v1/ongoingmonitoring/subscribe

    Description:

    Subscribes to the ongoing monitoring service by registering a return URL and API key. This URL will receive webhook notifications for updates in monitored results.

    hashtag
    Unsubscribe from the Monitoring Service

    Endpoint:

    POST /api/v1/ongoingmonitoring/unsubscribe

    Description:

    Unsubscribes the provided return URL from ongoing monitoring. After unsubscribing, you will no longer receive updates for monitored profiles.

    API Reference

    The Tiller Verifications API is divided into three main components: Authentication, Verifications, and Ongoing Monitoring.

    hashtag
    Authentication

    Before using the API, clients must authenticate their requests. The authentication service ensures that all interactions with the API are authorized and secure.

    Authenticationchevron-right

    hashtag
    Verificatons

    The Verifications component is the heart of the API, enabling businesses to perform a variety of checks. These include Address Verification, Background Checks (PEP & Sanctions, Watchlist, and Adverse Media), and UK Bank Account Checks.

    hashtag
    Ongoing Monitoring

    Ongoing Monitoring enhances Background Checks by providing continuous updates on an individual’s PEP, sanctions, or adverse media status. This ensures businesses are alerted to compliance risks as soon as they arise.

    hashtag
    How It Works

    1. Authenticate: Begin by authenticating your API client and obtaining a bearer token. This token is required for all subsequent API calls.

    2. Submit a Verification Request: Use the Verifications API to perform compliance checks on an individual. Configure checks and provide the necessary profile details.

    3. Enable Monitoring (Optional): For continuous monitoring of PEP & Sanctions or Adverse Media, include enableOngoingMonitoring: true in your verification request.

    This API overview serves as your starting point for integrating the Tiller Verifications API into your workflows. For detailed technical documentation and examples, explore the linked sections or contact our support team at [email protected].

    Verifications

    The Verifications API can a variety of checks for customer verification purposes. This section outlines the available check types, the required request structure, and the specific profile details needed for each type of check.

    For more details on building a request please see Request Structure.

    hashtag
    Making a Verifications Request

    Endpoint:

    POST /api/v1/verifications

    Description: This endpoint is used to initiate a verification request. It processes and returns the results of the specified checks.

    Key Features:

    • Supports synchronous (runAsync: false) and asynchronous (runAsync: true) processing.

    • When runAsync is false, the response includes the verification results.

    Usage: This endpoint allows users to perform one or more checks (e.g., Address Verification, Bankground Checks, Bank Account Check) in a single request. Ensure that the required information is provided for each check type. For more detail on building a request please see .

    hashtag
    Retrieving Check Results

    Endpoint:

    GET /api/v1/verifications/{correlationId}

    Description: Used to retrieve the results of a previously submitted verification request. This endpoint is primarily used when runAsync: true was specified in the initial request. But can be used when runAsync: false as well.

    Key Features:

    • Can be polled to check the status of the verification process.

    • Returns the detailed results of each check once available.

    Parameters:

    • correlationId (path): The unique identifier returned when the initial verification request was submitted.

    hashtag
    References

    Endpoint: GET /api/v1/verifications/references

    Description: This endpoint provides reference data required for verifications. It includes details such as valid check types, status codes, titles, genders, and country codes.

    Key Features:

    • Useful for retrieving a list of valid codes and identifiers required when making a verification request.

    • Helps to ensure requests are formatted correctly with the proper values.

    Retrieve Results: Access results directly from the response (synchronous) or poll using the correlation ID (asynchronous).

  • Manage Monitoring Subscriptions: Use the Ongoing Monitoring endpoints to subscribe to notifications, retrieve results, or unsubscribe when no longer needed.

  • Verificationschevron-right
    Ongoing Monitoringchevron-right
    When runAsync is true, a correlationId is returned, which must be used to fetch the results via the GET /api/v1/verifications/{correlationId} endpoint.
    Request Structure

    Quick Start Guide

    This quick start guide will help you set up and execute your first verification request in just a few steps.

    circle-info

    Good to know: While this guide is designed to get you up and running quickly, we recommend working closely with us to maximise the benefits of our services. Contact us at [email protected] to connect with one of our experts.

    hashtag
    Step 1: Get Your API Credentials

    To use the Tiller Verifications API, you'll need some credentials. This is essential for authenticating your requests and ensuring secure access to the system. Here’s how to get started:

    • Contact your Tiller account manager to request your API credentials. -

      • [email protected].

    • Safeguard your credentials; it is required for authorization. Treat it like a password—never share it or expose it publicly.


    hashtag
    Step 2: Set Up Authentication

    The Tiller Verifications API uses token-based authentication via the OAuth 2.0 protocol. You’ll need to obtain an access token to authenticate your requests. Here’s how to do it:

    Authentication Endpoint

    Parameters Required

    • grant_type: Always set to client_credentials.

    • scope: Use VerificationsAPI as the scope.

    Example request:

    Example response:

    Include the retrieved access token in the Authorization header of all subsequent API requests:

    Please see for more information.


    hashtag
    Step 3: Make Your First Request

    This step walks you through performing an Address Verification Check using the Tiller Verifications API. Below, we explain the required payload, headers, and the structure of the request.

    Endpoint:

    Headers Required

    Header
    Value

    Payload structure

    We need some basic information in the request to be able to perform the check. The request is broken down into the following elements:

    • externalReferenceId - Your reference for this request.

    • options - These parameters change the behaviour of the request. Keep to the default values in the example payload below.

      • runAsync - determines whether the verification request is processed synchronously (returns results immediately) or asynchronously (returns a correlation ID to retrieve results later).

    Example payload:

    Making your first request:

    Error Handling

    hashtag
    Error Handling

    What error codes are there and how to handle errors.

    hashtag
    Success and Error codes

    Each API request will return a response. A successful request will typically return a 200 OK status code along with any requested data. Errors or issues with your request will return different status codes (e.g., 400 Bad Request, 401 Unauthorized) and an error message explaining what went wrong.

    hashtag
    Success Codes

    Comment

    hashtag
    Error codes

    hashtag
    Error Message Standard

    Error handling for all API methods must adhere to the RFC7807 standard, ensuring standardized and informative error responses for clients. Please see . Please see below of a standard example.

    Example:

    Authentication

    The Tiller Verifications API uses token-based authentication via the OAuth 2.0 protocol. To ensure secure communication and protect sensitive data, every request to the API requires a valid access token in the Authorization header.

    hashtag
    Prerequisities

    To use the Tiller Verifications API, you'll need some credentials. This is essential for authenticating your requests and ensuring secure access to the system. Here’s how to get started:

    Bank Check

    hashtag
    Overview

    The UK Bank Account Check is a specialised service designed to verify the ownership of a UK bank account by an individual. This verification process ensures that the bank account details provided by a customer match their personal information, enabling businesses to confirm account authenticity and ownership with high confidence.

    Check Type ID: 3

    This is the check type used to validate the ownership of a UK bank account. It ensures the provided bank account details match the personal information of the account holder.

    client_id: Your client ID, provided by Tiller.
  • client_secret: Your client secret, provided by Tiller.

  • mock - We return mock data for testing purposes if True

  • checks - This controls which checks will be performed in this request and includes some parameters around how the check will be performed. Keep to the default values in the example payload below for address check.

  • profile - The personal information about the individual you are making a request about.

  • Authorization

    Bearer YOUR_ACCESS_TOKEN (Replace YOUR_ACCESS_TOKEN with your valid token)

    Content-Type

    application/json

    Authentication

    Gateway timeout

    Code

    Description

    200

    OK - The request has succeeded.

    201

    Created - The request has been fulfilled and has resulted in one or more new resources being created.

    202

    Accepted - The request has been accepted for processing, but the processing has not been completed.

    204

    No Content - The server successfully processed the request, but is not returning any content.

    303

    Redirect - Provides redirections to another resource.

    Code

    Description

    400

    Bad Request - The server cannot process the request due to a client error (e.g., malformed request syntax).

    401

    Unauthorised - The request lacks valid authentication credentials for the target resource.

    404

    Not Found - The server can't find the requested resource.

    408

    Request timeout

    500

    Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request.

    502

    Bad gateway

    https://www.rfc-editor.org/rfc/rfc7807arrow-up-right

    504

    https://verifications-auth.tiller-verify.com/connect/token
    curl --location 'https://verify-auth.tiller-verify.com/connect/token' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'grant_type=client_credentials' \
    --data-urlencode 'scope=VerificationsAPI' \
    --data-urlencode 'client_id=CLIENT_ID' \
    --data-urlencode 'client_secret=CLIENT_SECRET'
    import requests
    
    url = "https://verifications-auth.tiller-verify.com/connect/token"
    
    payload = {'grant_type':'client_credentials',
               'scope': 'VerificationsAPI',
               'client_id': CLIENT_ID,
               'client_secret': CLIENT_SECRET
              }
    
    headers = {
      'Accept': 'application/json',
      'Content-Type': 'application/x-www-form-urlencoded'
    }
    
    response = requests.request("POST", AUTH_URL, headers=headers, data=payload)
    
    print(response.text)
    
    {
        "access_token": "eyJhbGciOiJS...",
        "expires_in": 600,
        "token_type": "Bearer",
        "scope": "VerificationsAPI"
    }
    POST https://verifications-api.tiller-verify.com/api/v1/verifications
    {
        "externalReferenceId": "YOUR_REQUEST_REFERENCE",
        "options": {
            "runAsync": false,
            "mock": true
        },
        "checks": [
            {
                "checkTypeId": 1,
                "externalCheckReferenceId": "YOUR_CHECK_REFERENCE",
                "maximumSources": 3,
                "CheckMethod": 1,
                "matchesRequired": 1
            }
        ],
        "profile": {
            "titleId": 1,
            "genderTypeId": 1,
            "firstName": "John",
            "middleName": "Charles",        
            "lastName": "Smith",
            "dateOfBirth": "1980-06-12",
            "currentAddress": {
                "structured": {
                    "flatApartmentSubBuilding": "10A",
                    "BuildingNumber": "50",
                    "BuildingName": "Example House",
                    "RoadStreet": "Example Street",
                    "townCity": "Exampleton",
                    "District": "Exampleshire",
                    "StateProvinceName": "Example",
                    "StateProvinceCode": "EG",
                    "postZipCode": "EX12AB",
                    "countryCode": "GB",
                    "dateFrom": "2020-01-03T00:00:00"
                }
            }
        }
    }
    curl -X POST "https://verifications-api.tiller-verify.com/api/v1/verifications" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
        "externalReferenceId": "YOUR_REQUEST_REFERENCE",
        "options": {
            "runAsync": false,
            "mock": true
        },
        "checks": [
            {
                "checkTypeId": 1,
                "externalCheckReferenceId": "YOUR_CHECK_REFERENCE",
                "maximumSources": 3,
                "CheckMethod": 1,
                "matchesRequired": 1
            }
        ],
        "profile": {
            "titleId": 1,
            "genderTypeId": 1,
            "firstName": "John",
            "middleName": "Charles",        
            "lastName": "Smith",
            "dateOfBirth": "1980-06-12",
            "currentAddress": {
                "structured": {
                    "flatApartmentSubBuilding": "10A",
                    "BuildingNumber": "50",
                    "BuildingName": "Example House",
                    "RoadStreet": "Example Street",
                    "townCity": "Exampleton",
                    "District": "Exampleshire",
                    "StateProvinceName": "Example",
                    "StateProvinceCode": "EG",
                    "postZipCode": "EX12AB",
                    "countryCode": "GB",
                    "dateFrom": "2020-01-03T00:00:00"
                }
            }
        }
    }'
    import requests
    
    # API endpoint
    url = "https://verifications-api.tiller-verify.com/api/v1/verifications"
    
    # Headers
    headers = {
        "Authorization": "Bearer YOUR_ACCESS_TOKEN",
        "Content-Type": "application/json"
    }
    
    # Payload
    payload = {
        "externalReferenceId": "YOUR_REQUEST_REFERENCE",
        "options": {
            "runAsync": False,
            "mock": True
        },
        "checks": [
            {
                "checkTypeId": 1,
                "externalCheckReferenceId": "YOUR_CHECK_REFERENCE",
                "maximumSources": 3,
                "CheckMethod": 1,
                "matchesRequired": 1
            }
        ],
        "profile": {
            "titleId": 1,
            "genderTypeId": 1,
            "firstName": "John",
            "middleName": "Charles",        
            "lastName": "Smith",
            "dateOfBirth": "1980-06-12",
            "currentAddress": {
                "structured": {
                    "flatApartmentSubBuilding": "10A",
                    "BuildingNumber": "50",
                    "BuildingName": "Example House",
                    "RoadStreet": "Example Street",
                    "townCity": "Exampleton",
                    "District": "Exampleshire",
                    "StateProvinceName": "Example",
                    "StateProvinceCode": "EG",
                    "postZipCode": "EX12AB",
                    "countryCode": "GB",
                    "dateFrom": "2020-01-03T00:00:00"
                }
            }
        }
    }
    
    # Request
    response = requests.post(url, headers=headers, json=payload)
    
    # Response
    print(response.json())
    
    {
        "ValidationErrors": {
            "Profile.FirstName": [
                "FirstName: field is required"
            ],
            "Profile.CurrentAddress.Structured.CountryCode": [
                "CountryCode: field is required"
            ]
        },
        "Type": null,
        "Title": "Request Validation Error",
        "Status": 400,
        "Detail": "One or more validation errors occurred. See ValidationErrors for details.",
        "Instance": "urn:tillertechverifications:badrequest:43f3e884-c791-4c39-a05d-351d8ed162b6",
        "Extensions": {}
    }
    

    Contact your Tiller account manager to request your API credentials. -

    • [email protected].

  • Safeguard your credentials; it is required for authorization. Treat it like a password—never share it or expose it publicly.

  • hashtag
    Obtain an Access Token

    To authenticate your requests, you need to retrieve an access token by sending a POST request to the authentication /connect/token endpoint. The request should include the following form data:

    Parameter
    Required
    Description

    grant_type

    Yes

    Specifies the OAuth 2.0 grant type. Use client_credentials.

    client_id

    Yes

    Your client unique identifier provided by Tiller.

    client_secret

    Yes

    Your secret key provided by Tiller.

    scope

    Yes

    hashtag
    Example request

    hashtag
    Example response

    To use the access token with the Verifications service, include it in the Authorization header of your HTTP requests.

    hashtag
    Best Practices for Using Access Tokens

    • Token Renewal: Monitor the token’s expiry and implement logic to request a new one before making further API calls.

    • Secure Transmission: Always use HTTPS to prevent interception of the access token during transmission.

    • Scope Management: Use minimal scopes necessary for each request to enhance security.

    By including the access token in your requests, you gain secure and authenticated access to the Verifications service, protecting sensitive information.

    Required Profile Information

    To perform a UK Bank Account Check, the following fields are required in the profile section of the request:

    • Personal Details:

      • firstName (Required): The first name of the individual.

      • lastName (Required): The last name of the individual.

      • dateOfBirth (Required): Validates the individual against the bank’s internal records.

    • Bank Account Details:

      • bankDetails.accountNumber (Required): The 8-digit bank account number.

      • bankDetails.sortCode (Required): The 6-digit bank sort code in the format XXXXXX

    See Request Structure for more information on structuring a request.

    hashtag
    How It Works

    1. Customer Data Submission:

      • The customer provides their personal details (e.g., first name, last name, and date of birth) and bank account information (account number and sort code).

      • This data is included in the profile section of the verification request payload.

    2. Data Matching:

      • The provided account details are matched against the bank’s internal records, ensuring that the account is registered to the named individual.

      • This process confirms that the customer owns the supplied bank account.

    3. Validation Process:

      • The service validates the format and accuracy of the sort code and account number.

      • If the bank account exists and matches the individual’s personal details, the check returns a "Pass" result.

    curl --location 'https://verify-auth.tiller-verify.com/connect/token' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'grant_type=client_credentials' \
    --data-urlencode 'scope=VerificationsAPI' \
    --data-urlencode 'client_id=CLIENT_ID' \
    --data-urlencode 'client_secret=CLIENT_SECRET'
    import requests
    
    url = "https://verifications-auth.tiller-verify.com/connect/token"
    
    payload = {'grant_type':'client_credentials',
               'scope': 'VerificationsAPI',
               'client_id': CLIENT_ID,
               'client_secret': CLIENT_SECRET
              }
    
    headers = {
      'Accept': 'application/json',
      'Content-Type': 'application/x-www-form-urlencoded'
    }
    
    response = requests.request("POST", AUTH_URL, headers=headers, data=payload)
    
    print(response.text)
    
    {
        "access_token": "eyJhbGciOiJS...",
        "expires_in": 600,
        "token_type": "Bearer",
        "scope": "VerificationsAPI"
    }
    .
  • bankDetails.openedDate (Optional): The date the account was opened, for additional accuracy.

  • In cases of mismatched or incomplete data, the check provides specific failure details.

    Use VerificationsAPI as the scope.

    Background Checks

    hashtag
    Overview

    Background Checks currently include PEP (Politically Exposed Persons) & Sanctions, Watchlist, and Adverse Media Screening. These services help businesses assess compliance risks and identify individuals involved in activities that may pose financial or reputational risks.

    hashtag
    Components

    • PEP & Sanctions Screening:

      • Uses daily updated databases of PEPs and sanctioned individuals.

      • Sources include HM Treasury, UN Security Council Committees, OFAC, and other government and international agencies.

    Check Type ID: 2

    This is the check type used for Background Check, which includes PEP & Sanctions, Watchlists, and Adverse Media screening. It helps identify individuals who pose financial, legal, or reputational risks.

    Required Profile Information

    To perform Background Checks, the following fields are required in the profile section of the request:

    • Personal Details:

      • firstName (Required): The first name of the individual.

      • lastName (Required): The last name of the individual.

    See for more information on structuring a request.

    hashtag
    PEP & Sanctions / Watchlist Screening

    PEP and Sanction screening uses an external data provider. They maintain a correlation database of PEP Tier 1, 2, 3 & PEP by association OECD categorises lists which are updated daily from various sources, such as official government websites or national assemblies of foreign offices, CIA World leaders lists, open source verified repositories and selected media websites.

    For Sanction screening, the database is collated and updated daily from the following sources: UK HM Treasury, US Department of the Treasury - Office of Foreign Assets Control (OFAC), US Department of State - Bureau of International Security & Non-Proliferation Sanctions, UN Security Council Committees, EU Sanction records, US Defence Trade Controls and other international government and local authority resources.

    hashtag
    Sanctions Sources

    Please see below a list of sanctions sources that the individuals is checked

    chevron-rightSanctions Source Listhashtag
    • Australia DFAT Sanctions List

    • Austria National Bank - Sanctions

    hashtag
    PEP Sources and Types

    The individual is checked against various global sources to assess whether they are potentially a politically exposed person. Each PEP type helps categorise the type of PEP (e.g. HOS - Head of State).

    chevron-rightPEP Sources & Typeshashtag

    hashtag
    PEP Sources

    • CIA World Leaders

    PEPs are categorised into tiers of risk. With Tier 1 being the highest potential risk, including heads of state and high ranking government positions.

    chevron-rightPEP Tiershashtag

    hashtag
    Tier 1 - High Risk

    • Heads of state and government (including Royal families).

    hashtag
    PEPs by Association

    Family members and personal and business associates of PEPs, typically individuals who are not PEPs in their own capacity but serve on a board of directors alongside PEPs. Based on FATF, Close Associates are considered to be: (known) (sexual) partners outside the family unit (e.g., girlfriends, boyfriends, mistresses); prominent members of the same political party, civil organisation, labour, or employee union as the PEP; business partners or associates, especially those that share (beneficial) ownership of legal entities with the PEP, or who are otherwise connected (e.g., through joint membership of a company board). In the case of personal relationships, the social, economic, and cultural context may also play a role in determining how close those relationships generally are (FATF Guidelines, 2013).

    Should the individual have a potential match within the PEP & Sanctions sources they will be flagged up for review.

    hashtag
    Adverse Media

    The Adverse Media check offers a comprehensive screening against negative media sources to ascertain any potential risks associated with an individual. This feature conducts daily scans across a vast array of media outlets, including newspapers, magazines, TV/radio transcripts, and more, encompassing over 120,000 sources. With a formidable database established from screening over 2.5 billion media articles, it boasts an extensive collection of negative news, encompassing individuals ranging from terrorists and fraudsters to criminals and influencers.

    The core of this feature lies in its ability to categorise Adverse Media Events based on their Risk Stage and Risk Type. The Risk Stage determines where an event is in its lifecycle, while the Risk Type provides insights into the nature of the event, such as abuse, arson, fraud, cybercrime, and more. These classifications work in tandem to decide if a particular Adverse Media Event should be included in the results, ensuring a thorough and precise assessment for every individual screened.

    hashtag
    Adverse Media Stages

    The Risk Stage describes where in its lifecycle an Adverse Media Event is. Risk Stages are used in conjunction with Risk Types to determine if the Adverse Media Event is to be included in the results.

    Stage 1
    Stage 2
    Stage 3
    Stage 4

    hashtag
    Risk types

    The Risk Type describes the nature of the Adverse Media Event. Risk Types are used in conjunction with Risk Stage to determine if the Adverse Media Event is to be included in the results.

    These include

    • 🔴Critical - Risk Stages 1, 2, 3 & 4

    • 🟠Valuable - Risk Stages 2, 3 & 4

    • 🟡Investigate - Risk Stages 3 & 4

    chevron-right🔴Critical Typeshashtag
    • BRB - Bribery, Graft, Kickbacks, Political Corruption

    • BUS - Business Crimes (Antitrust, Bankruptcy, Price Fixing)

    chevron-right🟠Valuable Typeshashtag
    • CFT - Counterfeiting, Forgery

    • CYB - Computer Related, Cyber Crime

    chevron-right🟡Investigate Typeshashtag
    • ARS - Arson

    • AST - Assault, Battery

    chevron-right🟢 Probativehashtag
    • ABU - Abuse (Domestic, Elder, Child)

    • CPR - Copyright Infringement (Intellectual Property, Electronic Piracy

    Should the individual have a potential match within adverse media sources they will be flagged up for review.

    Identifies close associates of PEPs as part of the screening.
  • Watchlist Checks:

    • Screen individuals against global watchlists maintained by international organisations.

  • Adverse Media Screening:

    • Conducts extensive scans across 120,000+ media sources.

    • Categorises media events by risk type (e.g., fraud, abuse) and lifecycle stage.

    • Detects potential risks linked to individuals or entities.

  • dateOfBirth (Required): Critical for accurate screening results.

  • middleName (Optional): Improves the accuracy of matches.

  • titleId (Optional): Helps differentiate individuals with similar names.

  • Additional Information:

    • nationalityCountryCode (Optional): Enhances accuracy by considering the individual’s nationality.

    • placeOfBirthTownCity (Optional): Provides additional context to improve match quality.

  • Bangladesh Central Bank - Domestic Sanction List
  • Belgium - Federal Public Service National Financial Sanctions List

  • Canada - Freezing Assets of Corrupt Foreign Officials (Tunisia and Egypt) Regulations

  • Canada - Freezing Assets of Corrupt Foreign Officials (Ukraine) Regulations

  • Canada Criminal Code - Terrorist Organizations

  • Canada OSFI Entities List

  • Canada OSFI Individuals List

  • Canada OSFI UN Sanctions Act Resolution on Iran

  • Canada Special Economic Measures Act - Consolidated Sanctions List:

    • Burma

    • Iran

    • Nicaragua

    • Russia

    • South Sudan

    • Syria

    • Ukraine

    • Venezuela

    • Zimbabwe

  • Dutch Foreign Ministry Individuals & Organizations with Frozen Funds

  • EU Consolidated List of Sanctioned Persons, Groups, & Entities

  • EU COUNCIL DECISION 2014/512/CFSP

  • France Directorate General of the Treasury - Terrorism

  • India - National Investigation Agency - Banned Terrorist Organizations

  • Interpol UNSC Special Notices - Entities

  • Interpol UNSC Special Notices - Individuals

  • Japan Finance Ministry Asset Freeze List

  • Japan Ministry of Economy, Trade, and Industry (METI) - WMD End User List

  • Latvia Financial Intelligence Service - Sanctions

  • Libya National Transitional Council Law 36

  • Malaysia Ministry of Home Affairs - Sanctions List

  • Netherlands - National Sanctions List for Terrorism

  • Official Journal of the European Union - EU International, Economic, Military Sanctions

  • Pakistan National Counter Terrorism Authority - Proscribed Organizations

  • Pakistan National Counter Terrorism Authority - Proscribed Persons

  • Qatari Linked Terrorist List

  • Singapore Terrorism (Suppression of Financing) Act List

  • South Korea Financial Intelligence Unit (KOFIU) - WMD End-User Controls List

  • Sri Lanka Government Gazette - List of Designated Persons, Groups and Entities

  • Switzerland State Secretariat for Economic Affairs (SECO) Sanctions List

  • UK HM Treasury Financial Sanctions Target List

  • UK HM Treasury Financial Sanctions - Ukraine Restrictive Measures

  • UK Home Office/Ofc for Security & CT Proscribed Terror Groups

  • Ukraine State Committee for Financial Monitoring - Terrorism List

  • Ukraine State Committee for Financial Monitoring - UN Sanctions Program

  • United Nations Security Council (UNSC) Consolidated Sanctions List:

    • Resolution 751 (1992) I 1907 (2009) Somalia

    • Resolution 1267/1989 Al-Qaida

    • Resolution 1518 (2003) Iraq

    • Resolution 1533 (2004) Democratic Republic of the Congo

    • Resolution 1591 (2005) Sudan

    • Resolution 1718 (2006) Democratic People's Republic of Korea

    • Resolution 1970 (2011) Libya

    • Resolution 1988 (2011) Taliban

    • Resolution 2048 (2012) Guinea-Bissau

    • Resolution 2127 (2013) Central African Republic

    • Resolution 2140 (2014) Yemen

    • Resolution 2206 (2015) South Sudan

    • Resolution 2374 (2017) Mali

  • US Department of State - Bureau of Economic & Business Affairs - Cuba Restricted List

  • US Department of State - CAATSA Section 231(d) List

  • US Department of State Consolidated Non-proliferation Sanctions

  • Chemical and Biological Weapons Control and Warfare Elimination Act (CBW Act)

  • Executive Order 12938

  • US Department of State Foreign Terrorist Organisations

  • US Department of State Terrorist Exclusion List

  • US Treasury Department FinCEN Advisory Notice on Iran, North Korea

  • US Treasury Department FinCEN Section 311 Measures

  • US Treasury Department FinCEN OFAC Consolidated Non-SDN Sanctions List

  • US Treasury Department FinCEN OFAC Specially Designated nationals List

  • US Treasury Department FinCEN Designated Charities and Fronts for FTOs

  • CIA World Factbook

  • Rulers articles and other databases continually monitored to additional information

  • Gov’t/Official websites covering all levels of PEPs

  • Other open sources. For example, those independent from the state control

  • hashtag
    PEP Types

    • HOS - Heads of state

    • CAB - Cabinet officials

    • INF - Senior officials overseeing key infrastructure sectors.

    • NIO - Senior officials overseeing non-infrastructure sectors.

    • MUN - Municipal level officials

    • REG - Regional officials

    • LEG - Senior legislative branch officials

    • AMB - Ambassadors and top diplomatic officials

    • MIL - Senior military officials

    • JUD - Senior judicial officials

    • POL - Political party officials

    • GCO - Top executives/officers in state-controlled enterprises

    • FAM - Family members

    • ASC - Close associates and advisors

    • ISO - International Sporting Officials

    Members of government (ministers, deputies, state, and under-state secretaries) at national and sub-national levels in case of federal states (e.g., Florida in the US, Bavaria in Germany, Johor in Malaysia, Lagos in Nigeria, Goa in India etc) and provinces in China (e.g., Henan); President and College of Commissioner of the European Commission.

  • Members of Parliament or similar legislative bodies (at national and sub-national level in case of federal states – same as above); Members of the European Parliament.

  • Heads and top commanders of military and law enforcement and their deputies.

  • Heads and members of supreme courts, of constitutional courts or of other high-level judicial bodies whose decisions are not subject to further appeal, except in exceptional cases, similar for EU Court of Justice.

  • Heads and members of courts of auditors (including EU Court of Auditors) and of the boards of central banks (including the European Central Bank).

  • Top ranking officials of mainstream political parties (e.g., party leaders and members of governing bodies) and only the heads/deputy heads of minor political parties (without representation in parliament).

  • hashtag
    Tier 2 - Medium Risk

    • Members of legislative (e.g., aldermen, councillors) and executive (e.g., prefects) bodies at regional, provincial, cantonal, or equivalent levels (below the level of states in case of federal jurisdiction).

    • Judges, justices, magistrates, prosecutors, attorneys in courts with jurisdiction at regional, provincial or equivalent level.

    • Ambassadors, general consuls, high commissioners, permanent representatives, head of missions and their deputies, charge d’affairs.

    • Chairmen, secretary generals, directors, deputy directors and members of the board or equivalent function of international/regional organisations (e.g., UN, EU, World Bank, EBRD, OAS, Arab League, ASEAN, CARICOM etc).

    • Presidents/Chairperson and board members of State-Owned Enterprises (SOEs), businesses and organisations.

    • Senior officials of the military, judiciary, law enforcement agencies, central banks, and other state agencies, authorities and state bodies (e.g., high ranking civil servants, director generals, directors, heads of units, secretaries (permanent, principal, joint secretaries etc).

    • Heads and senior members of mainstream religious groups (e.g., archbishop, patriarch, cardinal, bishop, imam, rabbi).

    • Mayors of capital cities (e.g., London, New Delhi, Paris, New York, Rio de Janeiro) and Head of Cities which are directly appointed and answerable to the Chinese central government.

    hashtag
    PEP Tier 3 - Low Risk

    • Advisers, heads of cabinet and similar roles of senior officials of the military, judiciary, law enforcement, central banks.

    • And other state agencies, authorities, and state bodies (designation/level to be determined depending on country ML/TF and corruption risks profile and administration structure).

    • Heads and board members / senior officials of Trade Unions. In case of Chambers of Commerce and Charities a risk- based approach is followed.

    • Presidents, secretary generals, directors, deputy directors and members of the board or equivalent function of international NGOs (e.g., Oxfam, Amnesty, Transparency International etc).

    • Middle ranking diplomats (minister-counsellors, councillors, 1st Secretaries and 2nd Secretaries).

    • Alternate/deputy members of parliament/senate (not currently occupying seat).

    • Mayors and members of local councils at municipal, town, village, or equivalent levels (i.e., below regional, provincial, cantonal, and other levels not captured elsewhere).

    • Senior civil servants at regional/provincial or equivalent levels; senior officials of administrative bodies at local levels (directors/secretaries of city governments).

    Plea

    Regulatory Action

    Probe

    Charged

    Settlement or Suit

    Arbitration

    Suspected

    Complaint Filed

    Trial

    Associated

    Indict

    Censure

    Lien

    Convict

    Seizure

    Deported

    Dismissed

    Expelled

    Fine (<$10K, >$10K)

    Govt Official

    Revoked Registration

    Sanction

    Served Jail Time

    Suspended

    🟢 Probative - Risk Stages 4

    DEN - Denied Entity

  • FOF - Former OFAC List

  • FOS - Former Sanctions List

  • FRD - Fraud, Scams, Swindles

  • IRC - Iran Connect

  • MLA - Money Laundering

  • ORG - Organized Crime, Criminal Association, Racketeering

  • PEP - Person Political REG - Regulatory Action

  • SEC - SEC Violations (Insider Trading, Securities Fraud)

  • SNX - Sanctions Connect

  • TER - Terrorist Related

  • WLT - Watch List

  • DTF - Trafficking or Distribution of Drug

  • FAR - Foreign Agent Registration Act

  • FUG - Fugitive, Escape

  • GAM - Illegal Gambling

  • HUM - Human Rights, Genocide, War Crimes

  • IMP - Identity Theft, Impersonation

  • KID - Kidnapping, Abduction, Held Against Will

  • LMD - Legal Marijuana Dispensary

  • LNS - Loan Sharking, Usury, Predatory Lending

  • MOR - Mortgage Related MSB - Money Services Business

  • MUR - Murder, Manslaughter (Committed, Planned or Attempted)

  • OBS - Obscenity Related, Child Pornography

  • PRJ - Perjury, Obstruction of Justice, False Filings, False Statements

  • RES - Real Estate Actions

  • SEX - Sex Offenses (Rape, Sodomy, Sexual Abuse, Paedophilia)

  • SMG - Smuggling (Does not include Drugs, Money, People or Guns

  • SPY - Spying (Treason, Espionage)

  • TAX - Tax Related Offenses

  • TFT - Theft (Larceny, Misappropriation, Embezzlement, Extortion)

  • TRF - People Trafficking, Organ Trafficking

  • BUR - Burglary

  • CON - Conspiracy (no specific crime named)

  • DPS - Possession of Drugs or Drug Paraphernalia

  • FOR - Forfeiture IGN - Possession or Sale of Guns, Weapons and Explosives

  • PSP - Possession of Stolen Property

  • ROB - Robbery (Stealing by Threat, Use of Force)

  • ENV - Environmental Crimes (Poaching, Illegal Logging, Animal Cruelty)

  • IPR - Illegal Prostitution

  • MIS - Misconduct

  • NSC - Nonspecific Crimes

  • Accuse

    Arraign

    Appeal

    Acquit / Not Guilty

    Allege

    Arrest

    Confession

    Disciplinary

    Conspire

    Request Structure

    Audit

    Request Structure

    This guide details all the parameters required for a request to the Tiller Verifications API. The parameters are grouped into four sections: External Reference, Options, Checks, and Profile.

    hashtag
    Introduction to the Request Structure

    The Tiller Verifications API uses a well-defined request structure to ensure that all the required information is included to perform verification checks effectively. Each request is composed of several key sections. Understanding these sections is essential for building robust integrations and achieving reliable results.

    The request is divided into the following components:

    1. : This provides a unique identifier for tracking your request. It acts as a client-generated reference to link API responses to specific operations in your system.

    2. : This section configures the behaviour of the request. Options such as asynchronous or synchronous processing and mock mode for testing.

    3. : This is the core of the verification request. It specifies what checks need to be performed. Multiple check types can be included in a single request, provided the necessary information for each check is supplied.

    chevron-rightExample request payload with all checks types and attributeshashtag

    hashtag
    External Reference

    The externalReferenceId parameter is used to uniquely identify a request.

    Parameter
    Type
    Required?
    Description

    Example:


    hashtag
    Options

    The options parameter defines how the request is processed.

    Parameter
    Type
    Required
    Description

    Example:


    hashtag
    Checks

    The checks array contains details about the verification checks to perform.

    hashtag
    Available Check Types

    The following checks are currently supported by the Verifications API:

    1. Address Verification Verifies the subject’s address against trusted data sources.

    2. Background Checks Performs PEP (Politically Exposed Persons) & Sanctions screening and Adverse Media checks.

    3. UK Bank Account Check Verifies the subject's ownership of a UK bank account.

    You can request one or more of these services in a single verifications request.

    hashtag
    Check Type Fields

    Check Field
    Address Check
    Screening
    UK Bank Check

    checkTypeId: Identifies the type of verification being performed.

    • 1 = Address Verification

    • 2 = Screening (PEP & Sanctions/Adverse Media)

    • 3 = UK Bank Account Check

    externalCheckReferenceId: A unique client-provided identifier for the check, useful for tracking.

    maximumSources: Specifies the maximum number of sources to query for the check. The default value is 3 for most checks.

    CheckMethod: Determines how the check is performed.

    • 1 = Sequentially (default)

    • 2 = In parallel

    matchesRequired: Specifies the minimum number of matches required for the check to pass. The default value is 1.

    Example - one check in request:

    Example - multiple checks in request:


    hashtag
    Profile

    The profile contains personal, address and bank details for the individual being verified.

    hashtag
    Profile Requirements by Check Type

    The table below outlines the specific profile fields required for each check type supported by the Tiller Verifications API. Each column specifies whether the field is required, optional, or not applicable (N/A) for the respective check type.

    Profile Field
    Address Check
    Screening
    UK Bank Check
    • titleId: Optional, but useful for added clarity, especially in Screening checks, but optional for all check types.

    • firstName / lastName: The subject's first and last names are required across all check types to identify the individual.

    • middleName: Including the middle name can enhance the accuracy of checks but is optional for all check types.

    hashtag
    Profile parameters

    Parameter
    Type
    Description

    hashtag
    Current Address

    The currentAddress parameter provides the individual's current residence details.

    hashtag
    Structured address fields

    Field
    Type
    Required
    Description

    Example:

    hashtag
    Unstructured Address

    If you are unable to map a client’s address to the structured format, you can provide an unstructured address in the request.

    circle-exclamation

    Note that using an unstructured address decreases the likelihood of achieving a positive match since it may lack the precision of a structured format. Unstructured addresses should only be used as a fall-back when structured details are unavailable.

    Field
    Type
    Required?

    Example

    hashtag
    Bank Details

    The bankDetails object in the profile section is required for performing a UK Bank Account Check (CheckTypeId: 3). It contains the necessary information to validate the ownership of a UK bank account against an individual.

    hashtag
    Bank Account Fields

    Field
    Type
    Required
    Required

    Example:

    hashtag
    Key Best Practices

    1. Accuracy and Completeness: Always include all required fields for the checks you are performing to maximize the chances of successful verification.

    2. Structured Data: Use structured addresses and complete profile details wherever possible to achieve higher match rates.

    3. Traceability: Leverage unique identifiers such as externalReferenceId and externalCheckReferenceId

    By following these guidelines, you can build robust integrations with the Tiller Verifications API, enabling efficient, secure, and accurate compliance and verification processes. If you need further assistance or guidance, please contact [email protected].

    Profile: This section contains the personal and address details of the individual or entity being verified. Depending on the type of check, the profile must include specific fields such as names, date of birth, and addresses. Addresses can be provided in either structured or unstructured formats, though structured formats are recommended for higher match accuracy.

    mock

    boolean

    No

    When set to true, the request is processed in a simulated environment for testing purposes.

    checkMethod

    Required (default: 1)

    Required (default: 1)

    Required (default: 1)

    matchesRequired

    Required (default: 1)

    N/A

    N/A

    middleName

    Optional

    Optional

    Optional

    dateOfBirth

    Optional

    Optional (preferred)

    Required

    currentAddress.structured

    Required (preferred)

    N/A

    N/A

    currentAddress.unstructured

    Required (if structured address unavailable)

    N/A

    N/A

    bankDetails.accountNumber

    N/A

    N/A

    Required

    bankDetails.sortCode

    N/A

    N/A

    Required

    dateOfBirth: While optional for Address Verification and Screening, it is needed for UK Bank Account checks to ensure accurate matches.

  • currentAddress.structured: A structured address is preferred for Address Verification, as it improves the likelihood of a positive match.

  • currentAddress.unstructured: If structured data is unavailable, an unstructured address may be used for Address Verification, though it reduces accuracy.

  • bankDetails.accountNumber / bankDetails.sortCode: These fields are mandatory for UK Bank Account checks to validate the account details.

  • - 4: Miss

    genderType

    integer

    The individual's gender.

    - 1: Male

    - 2: Female

    firstName

    string

    The individual's first name.

    middleName

    string

    The individual's middle name (if available).

    lastName

    string

    The individual's last name.

    dateOfBirth

    string

    The individual's date of birth in YYYY-MM-DD format.

    At least one of building number, building name , flat number or road street is required.

    roadStreet

    string

    No

    Street or road name (e.g., "Example Street").

    district

    string

    No

    Name of the town or city (e.g., "Exampleton").

    townCity

    string

    No

    District name (if applicable).

    stateProvinceName

    string

    No

    State or province name (e.g., "Exampleshire").

    stateProvinceCode

    string

    No

    State or province code (e.g., "FL" for US state Florida).

    postZipCode

    string

    No

    Postcode or ZIP code (e.g., "EX12AB").

    countryCode

    string

    Yes

    ISO 3166-1 alpha-2 country code (e.g., "GB" for the United Kingdom). See for more details.

    dateFrom

    string

    No

    Date when the individual started living at this address (in YYYY-MM-DD format).

    address5

    string

    No

    townCity

    string

    No

    stateCounty

    string

    No

    postZipCode

    string

    No

    countryCode

    string

    Yes

    dateFrom

    string

    No

    for efficient tracking and troubleshooting.
  • Security: Ensure all requests are securely transmitted with the required JWT authentication token.

  • externalReferenceId

    string

    Yes

    A unique identifier for your request, provided by your system. This helps in tracking specific requests.

    runAsync

    boolean

    Yes

    Determines whether the request is processed asynchronously or synchronously.

    - true: Returns a correlation ID; the results must be fetched in a subsequent request.

    checkTypeId

    1 (required)

    2 (required)

    3 (required)

    externalCheckReferenceId

    Required

    Required

    Required

    maximumSources

    Required (default: 3)

    Required (default: 3)

    titleID

    Optional

    Optional

    Optional

    firstName

    Required

    Required

    Required

    lastName

    Required

    Required

    titleID

    integer

    The individual's title. See Referencesfor full details.

    - 1: Mr

    - 2: Mrs

    - 3: Ms

    flatApartmentSubBuilding

    string

    No

    Flat or apartment number (if applicable).

    buildingNumber

    string

    No

    Building number (if applicable).

    buildingName

    string

    No

    address1

    string

    Yes

    address2

    string

    No

    address3

    string

    No

    address4

    string

    No

    accountNumber

    string

    Yes

    The 8-digit bank account number.

    sortCode

    string

    Yes

    The 6-digit bank sort code in the format XXXXXX.

    openedDate

    string

    Optional

    External Reference
    Options
    Checks
    {
        "externalReferenceId": "UniqueRequestID-123456", 
        "options": {
            "runAsync": false, // Synchronous processing
            "mock": true // Mock mode for testing purposes
        },
        "checks": [
            {
                "checkTypeId": 1, // Address Verification
                "externalCheckReferenceId": "AddressCheck-12345", 
                "maximumSources": 3, // Query up to 3 sources
                "CheckMethod": 1, // Sequential processing
                "matchesRequired": 1, // Minimum of 1 match required
            },
            {
                "checkTypeId": 2, // Screening (PEP & Sanctions, Adverse Media)
                "externalCheckReferenceId": "ScreeningCheck-67890", 
                "maximumSources": 3 // Query up to 3 sources
                "CheckMethod": 1, // Sequential processing
            },
            {
                "checkTypeId": 3, // UK Bank Account Check
                "externalCheckReferenceId": "BankCheck-98765",
                "maximumSources": 3, // Query up to 3 sources
                "CheckMethod": 1, // Sequential processing
            }
        ],
        "profile": {
            "titleId": 1, // Mr
            "genderTypeId": 1, // Male
            "firstName": "John",
            "middleName": "Charles",
            "lastName": "Doe",
            "dateOfBirth": "1980-06-12",
            "nationalityCountryCode": "GB", // United Kingdom
            "placeOfBirthTownCity": "London",
            "currentAddress": {
                "structured": {
                    "flatApartmentSubBuilding": "10A",
                    "BuildingNumber": "50",
                    "BuildingName": "Example House",
                    "RoadStreet": "Example Street",
                    "townCity": "Exampleton",
                    "postZipCode": "EX12AB",
                    "countryCode": "GB",
                    "dateFrom": "2020-01-03T00:00:00"
                }
            },
            "bankDetails": {
                "accountNumber": "12345678", 
                "sortCode": "12-34-56"
            }
        }
    }
    

    - false: Returns the results directly.

    Required (default: 3)

    Required

    Name of the building (e.g., "Example House").

    The date the bank account was opened, provided in format (YYYY-MM-DD). Optional but recommended for added precision.

    "externalReferenceId": "ABCDEFGHI123456789"
    "options": {
        "runAsync": false,
        "mock": true
    }
    "checks": [
        {
            "checkTypeId": 1,
            "externalCheckReferenceId": "Check-12345",
            "maximumSources": 3,
            "CheckMethod": 1,
            "matchesRequired": 1
        }
    ]
    "checks": [
        {
            "checkTypeId": 1, // Address Verification
            "externalCheckReferenceId": "AddressCheck-12345",
            "maximumSources": 3, // Default value is 3
            "CheckMethod": 1, // Sequential check
            "matchesRequired": 1, // Default value is 1
        },
        {
            "checkTypeId": 2, // Screening
            "externalCheckReferenceId": "ScreeningCheck-67890"
            "maximumSources": 3, // Default value is 3
            "CheckMethod": 1, // Sequential check
        },
        {
            "checkTypeId": 3, // UK Bank Account Check
            "externalCheckReferenceId": "BankCheck-98765"
            "maximumSources": 3, // Default value is 3
            "CheckMethod": 1, // Sequential check
        }
    ]
    "profile": {
        "titleId": 1,  // Mr
        "genderTypeId": 1,  // Male
        "firstName": "John",
        "middleName": "Charles",
        "lastName": "Smith",
        "dateOfBirth": "1980-06-12",
        "currentAddress": {
            "structured": {
                "flatApartmentSubBuilding": "10A",
                "BuildingNumber": "50",
                "BuildingName": "Example House",
                "RoadStreet": "Example Street",
                "townCity": "Exampleton",
                "district": "Exampleshire",
                "stateProvinceName": "Example",
                "stateProvinceCode": "EG",
                "postZipCode": "EX12AB",
                "countryCode": "GB",
                "dateFrom": "2020-01-03"
            }
        }
    }
    
    "currentAddress": {
        "unstructured": { 
            "address1": "10A",
            "address2": "50",
            "address3": "Example House",
            "address4": "Example Street",
            "address5": "",
            "townCity": "Exampleton",
            "stateCounty": "Exampleshire",
            "postZipCode": "EX12AB",
            "countryCode": "GB",
            "dateFrom": "2013-01-22",
            "dateTo": "2020-06-11"
        }
    }
    "bankDetails": {
        "accountNumber": "12345678",
        "sortCode": "12-34-56",
        "openedDate": "2015-03-10"
    }
    API Reference

    hashtag
    Authentication token

    post

    Obtain an authentication token using client credentials.

    Body
    grant_typestringRequiredDefault: client_credentials
    scopestringRequiredDefault: {{scope}}
    client_idstringRequiredDefault: {{client_id}}
    client_secretstringRequiredDefault: {{client_secret}}
    Responses
    chevron-right
    200

    Successful response

    application/json
    access_tokenstringOptional
    token_typestringOptional
    expires_inintegerOptional
    chevron-right
    default

    Unexpected error

    application/json
    post
    /token
    {
      "access_token": "text",
      "token_type": "text",
      "expires_in": 1
    }
    POST /connect/token HTTP/1.1
    Host: verifications-auth.tiller-verify.com
    Content-Type: application/x-www-form-urlencoded
    Accept: */*
    Content-Length: 119
    
    "grant_type='client_credentials'&scope='{{scope}}'&client_id='{{client_id}}'&client_secret='{{client_secret}}'"

    hashtag
    GET - Get monitoring verification statuses and result for a verification process

    get
    Authorizations
    AuthorizationstringRequired

    JWT Authorization header using the Bearer scheme. Example: "Authorization: bearer {token}". You authenticate to the Tiller WealthXcel Verification API by providing your bearer token in the request header. Tiller WealthXcel Verification API requires the use of an access token used for requests made to the server side.

    Path parameters
    correlationIdstring · uuidRequired
    Query parameters
    fromDatestring · date-timeOptional
    toDatestring · date-timeOptional
    Responses
    chevron-right
    200

    Ok request

    application/json

    Verification Result DTO

    correlationIdstring · uuidOptional

    ID of the correlation

    externalReferenceIdstring · nullableOptional

    External reference ID

    chevron-right
    400

    Missing/invalid values

    application/json
    chevron-right
    404

    Verification result not found

    application/json
    chevron-right
    500

    Internal server error

    get
    /api/v1/ongoingmonitoring/{correlationId}

    hashtag
    Post - add / update subscription

    post
    Authorizations
    AuthorizationstringRequired

    JWT Authorization header using the Bearer scheme. Example: "Authorization: bearer {token}". You authenticate to the Tiller WealthXcel Verification API by providing your bearer token in the request header. Tiller WealthXcel Verification API requires the use of an access token used for requests made to the server side.

    Body

    Subscriber Request Model

    returnUrlstring · nullableOptional

    Request Url

    apiKeystring · nullableOptional

    Api Key

    Responses
    chevron-right
    200

    OK

    application/json

    Verification Result DTO

    correlationIdstring · uuidOptional

    ID of the correlation

    externalReferenceIdstring · nullableOptional

    External reference ID

    chevron-right
    303

    See Other

    chevron-right
    400

    Bad Request

    application/json
    chevron-right
    408

    Request Timeout

    application/json
    chevron-right
    500

    Internal Server Error

    post
    /api/v1/ongoingmonitoring/subscribe

    hashtag
    Unsubscribe the subscription

    post
    Authorizations
    AuthorizationstringRequired

    JWT Authorization header using the Bearer scheme. Example: "Authorization: bearer {token}". You authenticate to the Tiller WealthXcel Verification API by providing your bearer token in the request header. Tiller WealthXcel Verification API requires the use of an access token used for requests made to the server side.

    Responses
    chevron-right
    200

    OK

    application/json

    Verification Result DTO

    correlationIdstring · uuidOptional

    ID of the correlation

    externalReferenceIdstring · nullableOptional

    External reference ID

    chevron-right
    303

    See Other

    chevron-right
    400

    Bad Request

    application/json
    chevron-right
    408

    Request Timeout

    application/json
    chevron-right
    500

    Internal Server Error

    post
    /api/v1/ongoingmonitoring/unsubscribe

    hashtag
    POST - Create a verification process with external IDs

    post
    Authorizations
    AuthorizationstringRequired

    JWT Authorization header using the Bearer scheme. Example: "Authorization: bearer {token}". You authenticate to the Tiller WealthXcel Verification API by providing your bearer token in the request header. Tiller WealthXcel Verification API requires the use of an access token used for requests made to the server side.

    Body
    Responses
    chevron-right
    200

    OK request

    application/json

    Verification Result DTO

    correlationIdstring · uuidOptional

    ID of the correlation

    externalReferenceIdstring · nullableOptional

    External reference ID

    chevron-right
    303

    Redirect

    chevron-right
    400

    Missing/invalid values

    application/json
    chevron-right
    408

    Request Timeout

    application/json
    chevron-right
    500

    Internal server error

    post
    /api/v1/verifications

    hashtag
    GET - Get verification statuses and result for a verification process

    get
    Authorizations
    AuthorizationstringRequired

    JWT Authorization header using the Bearer scheme. Example: "Authorization: bearer {token}". You authenticate to the Tiller WealthXcel Verification API by providing your bearer token in the request header. Tiller WealthXcel Verification API requires the use of an access token used for requests made to the server side.

    Path parameters
    correlationIdstring · uuidRequired
    Responses
    chevron-right
    200

    Ok request

    application/json

    Verification Result DTO

    correlationIdstring · uuidOptional

    ID of the correlation

    externalReferenceIdstring · nullableOptional

    External reference ID

    chevron-right
    400

    Missing/invalid values

    application/json
    chevron-right
    404

    Verification result not found

    application/json
    chevron-right
    500

    Internal server error

    get
    /api/v1/verifications/{correlationId}

    hashtag
    GET - Get verification reference fields

    get
    Authorizations
    AuthorizationstringRequired

    JWT Authorization header using the Bearer scheme. Example: "Authorization: bearer {token}". You authenticate to the Tiller WealthXcel Verification API by providing your bearer token in the request header. Tiller WealthXcel Verification API requires the use of an access token used for requests made to the server side.

    Responses
    chevron-right
    200

    Ok request

    application/json

    Verification reference DTO

    referenceNamestring · nullableOptional

    Value name of the reference

    referenceCategorystring · nullableOptional

    Category of the reference

    referenceCodestring · nullableOptional

    Secondary code used for item identification. i.e. For country category items, of the ReferenceCode would be the ISO-3 country code

    referenceIdinteger · int32Optional

    ID of the reference

    chevron-right
    400

    Bad Request

    application/json
    chevron-right
    404

    Reference not found

    application/json
    chevron-right
    500

    Internal server error

    get
    /api/v1/verifications/references

    Verification check request DTO

    externalReferenceIdstring · max: 256 · nullableOptional

    External reference ID

    clientEmailstring · nullableOptional
    clientIdstring · nullableOptional
    GET /api/v1/ongoingmonitoring/{correlationId} HTTP/1.1
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    [
      {
        "correlationId": "123e4567-e89b-12d3-a456-426614174000",
        "externalReferenceId": "text",
        "checkStatuses": [
          {
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "checkTypeId": 1,
            "externalCheckReferenceId": "text",
            "status": {
              "id": 1,
              "status": "text"
            },
            "resultCount": {
              "totalSourcesChecked": 1,
              "totalSourcesPassed": 1,
              "totalSourcesFailed": 1,
              "totalSourcesForReview": 1
            },
            "matchesRequired": 1,
            "sourceResults": {
              "id": 1,
              "date": "2026-03-15T16:40:23.349Z",
              "rule": "text",
              "ruleId": 1,
              "status": {
                "id": 1,
                "status": "text"
              },
              "result": {
                "id": 1,
                "result": "text"
              },
              "title": "text",
              "summaryTitle": "text",
              "summary": [
                {
                  "id": 1,
                  "key": "text",
                  "value": "text"
                }
              ],
              "results": [
                {
                  "id": 1,
                  "title": "text",
                  "description": "text",
                  "result": "text",
                  "recordedDate": "text",
                  "detail": {
                    "reasons": [
                      {
                        "id": 1,
                        "key": "text",
                        "result": "text",
                        "reason": "text",
                        "code": "text",
                        "metaData": {
                          "sourceName": "text",
                          "sourceOriginName": "text",
                          "title": "text",
                          "date": "text",
                          "name": "text",
                          "dob": [
                            "text"
                          ],
                          "matchScore": 1,
                          "riskScore": 1,
                          "gender": "text",
                          "relations": [
                            {
                              "relationType": "text",
                              "entityName": "text"
                            }
                          ],
                          "positions": [
                            {
                              "position": "text",
                              "fromYear": "text",
                              "toYear": "text"
                            }
                          ],
                          "aliases": [
                            {
                              "type": "text",
                              "name": "text"
                            }
                          ],
                          "regNumber": "text",
                          "branch": "text",
                          "address": "text",
                          "currentStatus": "text",
                          "incorporationDate": "text",
                          "dissolutionDate": "text",
                          "type": "text",
                          "officers": [
                            {
                              "id": 1,
                              "name": "text",
                              "position": "text",
                              "startDate": "text",
                              "endDate": "text",
                              "status": "text",
                              "address": "text"
                            }
                          ],
                          "parentCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "primaryCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "filings": {
                            "lastFilingDate": "text",
                            "filingType": {
                              "filingTypeCode": "text",
                              "filingTypeDescription": "text"
                            }
                          },
                          "officerId": "text",
                          "position": "text",
                          "startDate": "text",
                          "endDate": "text",
                          "actedCompany": "text",
                          "actedRegNumber": "text",
                          "country": "text",
                          "state": "text"
                        }
                      }
                    ]
                  }
                }
              ],
              "resultsExcludedByFilters": [
                {
                  "id": 1,
                  "title": "text",
                  "description": "text",
                  "recordedDate": "text",
                  "detail": {
                    "reasons": [
                      {
                        "id": 1,
                        "key": "text",
                        "result": "text",
                        "reason": "text",
                        "code": "text",
                        "metaData": {
                          "sourceName": "text",
                          "sourceOriginName": "text",
                          "title": "text",
                          "date": "text",
                          "name": "text",
                          "dob": [
                            "text"
                          ],
                          "matchScore": 1,
                          "riskScore": 1,
                          "gender": "text",
                          "relations": [
                            {
                              "relationType": "text",
                              "entityName": "text"
                            }
                          ],
                          "positions": [
                            {
                              "position": "text",
                              "fromYear": "text",
                              "toYear": "text"
                            }
                          ],
                          "aliases": [
                            {
                              "type": "text",
                              "name": "text"
                            }
                          ],
                          "regNumber": "text",
                          "branch": "text",
                          "address": "text",
                          "currentStatus": "text",
                          "incorporationDate": "text",
                          "dissolutionDate": "text",
                          "type": "text",
                          "officers": [
                            {
                              "id": 1,
                              "name": "text",
                              "position": "text",
                              "startDate": "text",
                              "endDate": "text",
                              "status": "text",
                              "address": "text"
                            }
                          ],
                          "parentCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "primaryCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "filings": {
                            "lastFilingDate": "text",
                            "filingType": {
                              "filingTypeCode": "text",
                              "filingTypeDescription": "text"
                            }
                          },
                          "officerId": "text",
                          "position": "text",
                          "startDate": "text",
                          "endDate": "text",
                          "actedCompany": "text",
                          "actedRegNumber": "text",
                          "country": "text",
                          "state": "text"
                        },
                        "excludedReasons": [
                          "text"
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            "result": {
              "id": 1,
              "result": "text"
            }
          }
        ],
        "overallResult": {
          "id": 1,
          "result": "text"
        },
        "overallStatus": {
          "id": 1,
          "status": "text"
        }
      }
    ]
    POST /api/v1/ongoingmonitoring/subscribe HTTP/1.1
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 36
    
    {
      "returnUrl": "text",
      "apiKey": "text"
    }
    {
      "correlationId": "123e4567-e89b-12d3-a456-426614174000",
      "externalReferenceId": "text",
      "checkStatuses": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "checkTypeId": 1,
          "externalCheckReferenceId": "text",
          "status": {
            "id": 1,
            "status": "text"
          },
          "resultCount": {
            "totalSourcesChecked": 1,
            "totalSourcesPassed": 1,
            "totalSourcesFailed": 1,
            "totalSourcesForReview": 1
          },
          "matchesRequired": 1,
          "sourceResults": {
            "id": 1,
            "date": "2026-03-15T16:40:23.349Z",
            "rule": "text",
            "ruleId": 1,
            "status": {
              "id": 1,
              "status": "text"
            },
            "result": {
              "id": 1,
              "result": "text"
            },
            "title": "text",
            "summaryTitle": "text",
            "summary": [
              {
                "id": 1,
                "key": "text",
                "value": "text"
              }
            ],
            "results": [
              {
                "id": 1,
                "title": "text",
                "description": "text",
                "result": "text",
                "recordedDate": "text",
                "detail": {
                  "reasons": [
                    {
                      "id": 1,
                      "key": "text",
                      "result": "text",
                      "reason": "text",
                      "code": "text",
                      "metaData": {
                        "sourceName": "text",
                        "sourceOriginName": "text",
                        "title": "text",
                        "date": "text",
                        "name": "text",
                        "dob": [
                          "text"
                        ],
                        "matchScore": 1,
                        "riskScore": 1,
                        "gender": "text",
                        "relations": [
                          {
                            "relationType": "text",
                            "entityName": "text"
                          }
                        ],
                        "positions": [
                          {
                            "position": "text",
                            "fromYear": "text",
                            "toYear": "text"
                          }
                        ],
                        "aliases": [
                          {
                            "type": "text",
                            "name": "text"
                          }
                        ],
                        "regNumber": "text",
                        "branch": "text",
                        "address": "text",
                        "currentStatus": "text",
                        "incorporationDate": "text",
                        "dissolutionDate": "text",
                        "type": "text",
                        "officers": [
                          {
                            "id": 1,
                            "name": "text",
                            "position": "text",
                            "startDate": "text",
                            "endDate": "text",
                            "status": "text",
                            "address": "text"
                          }
                        ],
                        "parentCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "primaryCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "filings": {
                          "lastFilingDate": "text",
                          "filingType": {
                            "filingTypeCode": "text",
                            "filingTypeDescription": "text"
                          }
                        },
                        "officerId": "text",
                        "position": "text",
                        "startDate": "text",
                        "endDate": "text",
                        "actedCompany": "text",
                        "actedRegNumber": "text",
                        "country": "text",
                        "state": "text"
                      }
                    }
                  ]
                }
              }
            ],
            "resultsExcludedByFilters": [
              {
                "id": 1,
                "title": "text",
                "description": "text",
                "recordedDate": "text",
                "detail": {
                  "reasons": [
                    {
                      "id": 1,
                      "key": "text",
                      "result": "text",
                      "reason": "text",
                      "code": "text",
                      "metaData": {
                        "sourceName": "text",
                        "sourceOriginName": "text",
                        "title": "text",
                        "date": "text",
                        "name": "text",
                        "dob": [
                          "text"
                        ],
                        "matchScore": 1,
                        "riskScore": 1,
                        "gender": "text",
                        "relations": [
                          {
                            "relationType": "text",
                            "entityName": "text"
                          }
                        ],
                        "positions": [
                          {
                            "position": "text",
                            "fromYear": "text",
                            "toYear": "text"
                          }
                        ],
                        "aliases": [
                          {
                            "type": "text",
                            "name": "text"
                          }
                        ],
                        "regNumber": "text",
                        "branch": "text",
                        "address": "text",
                        "currentStatus": "text",
                        "incorporationDate": "text",
                        "dissolutionDate": "text",
                        "type": "text",
                        "officers": [
                          {
                            "id": 1,
                            "name": "text",
                            "position": "text",
                            "startDate": "text",
                            "endDate": "text",
                            "status": "text",
                            "address": "text"
                          }
                        ],
                        "parentCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "primaryCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "filings": {
                          "lastFilingDate": "text",
                          "filingType": {
                            "filingTypeCode": "text",
                            "filingTypeDescription": "text"
                          }
                        },
                        "officerId": "text",
                        "position": "text",
                        "startDate": "text",
                        "endDate": "text",
                        "actedCompany": "text",
                        "actedRegNumber": "text",
                        "country": "text",
                        "state": "text"
                      },
                      "excludedReasons": [
                        "text"
                      ]
                    }
                  ]
                }
              }
            ]
          },
          "result": {
            "id": 1,
            "result": "text"
          }
        }
      ],
      "overallResult": {
        "id": 1,
        "result": "text"
      },
      "overallStatus": {
        "id": 1,
        "status": "text"
      }
    }
    POST /api/v1/ongoingmonitoring/unsubscribe HTTP/1.1
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    {
      "correlationId": "123e4567-e89b-12d3-a456-426614174000",
      "externalReferenceId": "text",
      "checkStatuses": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "checkTypeId": 1,
          "externalCheckReferenceId": "text",
          "status": {
            "id": 1,
            "status": "text"
          },
          "resultCount": {
            "totalSourcesChecked": 1,
            "totalSourcesPassed": 1,
            "totalSourcesFailed": 1,
            "totalSourcesForReview": 1
          },
          "matchesRequired": 1,
          "sourceResults": {
            "id": 1,
            "date": "2026-03-15T16:40:23.349Z",
            "rule": "text",
            "ruleId": 1,
            "status": {
              "id": 1,
              "status": "text"
            },
            "result": {
              "id": 1,
              "result": "text"
            },
            "title": "text",
            "summaryTitle": "text",
            "summary": [
              {
                "id": 1,
                "key": "text",
                "value": "text"
              }
            ],
            "results": [
              {
                "id": 1,
                "title": "text",
                "description": "text",
                "result": "text",
                "recordedDate": "text",
                "detail": {
                  "reasons": [
                    {
                      "id": 1,
                      "key": "text",
                      "result": "text",
                      "reason": "text",
                      "code": "text",
                      "metaData": {
                        "sourceName": "text",
                        "sourceOriginName": "text",
                        "title": "text",
                        "date": "text",
                        "name": "text",
                        "dob": [
                          "text"
                        ],
                        "matchScore": 1,
                        "riskScore": 1,
                        "gender": "text",
                        "relations": [
                          {
                            "relationType": "text",
                            "entityName": "text"
                          }
                        ],
                        "positions": [
                          {
                            "position": "text",
                            "fromYear": "text",
                            "toYear": "text"
                          }
                        ],
                        "aliases": [
                          {
                            "type": "text",
                            "name": "text"
                          }
                        ],
                        "regNumber": "text",
                        "branch": "text",
                        "address": "text",
                        "currentStatus": "text",
                        "incorporationDate": "text",
                        "dissolutionDate": "text",
                        "type": "text",
                        "officers": [
                          {
                            "id": 1,
                            "name": "text",
                            "position": "text",
                            "startDate": "text",
                            "endDate": "text",
                            "status": "text",
                            "address": "text"
                          }
                        ],
                        "parentCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "primaryCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "filings": {
                          "lastFilingDate": "text",
                          "filingType": {
                            "filingTypeCode": "text",
                            "filingTypeDescription": "text"
                          }
                        },
                        "officerId": "text",
                        "position": "text",
                        "startDate": "text",
                        "endDate": "text",
                        "actedCompany": "text",
                        "actedRegNumber": "text",
                        "country": "text",
                        "state": "text"
                      }
                    }
                  ]
                }
              }
            ],
            "resultsExcludedByFilters": [
              {
                "id": 1,
                "title": "text",
                "description": "text",
                "recordedDate": "text",
                "detail": {
                  "reasons": [
                    {
                      "id": 1,
                      "key": "text",
                      "result": "text",
                      "reason": "text",
                      "code": "text",
                      "metaData": {
                        "sourceName": "text",
                        "sourceOriginName": "text",
                        "title": "text",
                        "date": "text",
                        "name": "text",
                        "dob": [
                          "text"
                        ],
                        "matchScore": 1,
                        "riskScore": 1,
                        "gender": "text",
                        "relations": [
                          {
                            "relationType": "text",
                            "entityName": "text"
                          }
                        ],
                        "positions": [
                          {
                            "position": "text",
                            "fromYear": "text",
                            "toYear": "text"
                          }
                        ],
                        "aliases": [
                          {
                            "type": "text",
                            "name": "text"
                          }
                        ],
                        "regNumber": "text",
                        "branch": "text",
                        "address": "text",
                        "currentStatus": "text",
                        "incorporationDate": "text",
                        "dissolutionDate": "text",
                        "type": "text",
                        "officers": [
                          {
                            "id": 1,
                            "name": "text",
                            "position": "text",
                            "startDate": "text",
                            "endDate": "text",
                            "status": "text",
                            "address": "text"
                          }
                        ],
                        "parentCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "primaryCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "filings": {
                          "lastFilingDate": "text",
                          "filingType": {
                            "filingTypeCode": "text",
                            "filingTypeDescription": "text"
                          }
                        },
                        "officerId": "text",
                        "position": "text",
                        "startDate": "text",
                        "endDate": "text",
                        "actedCompany": "text",
                        "actedRegNumber": "text",
                        "country": "text",
                        "state": "text"
                      },
                      "excludedReasons": [
                        "text"
                      ]
                    }
                  ]
                }
              }
            ]
          },
          "result": {
            "id": 1,
            "result": "text"
          }
        }
      ],
      "overallResult": {
        "id": 1,
        "result": "text"
      },
      "overallStatus": {
        "id": 1,
        "status": "text"
      }
    }
    {
      "correlationId": "123e4567-e89b-12d3-a456-426614174000",
      "externalReferenceId": "text",
      "checkStatuses": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "checkTypeId": 1,
          "externalCheckReferenceId": "text",
          "status": {
            "id": 1,
            "status": "text"
          },
          "resultCount": {
            "totalSourcesChecked": 1,
            "totalSourcesPassed": 1,
            "totalSourcesFailed": 1,
            "totalSourcesForReview": 1
          },
          "matchesRequired": 1,
          "sourceResults": {
            "id": 1,
            "date": "2026-03-15T16:40:23.349Z",
            "rule": "text",
            "ruleId": 1,
            "status": {
              "id": 1,
              "status": "text"
            },
            "result": {
              "id": 1,
              "result": "text"
            },
            "title": "text",
            "summaryTitle": "text",
            "summary": [
              {
                "id": 1,
                "key": "text",
                "value": "text"
              }
            ],
            "results": [
              {
                "id": 1,
                "title": "text",
                "description": "text",
                "result": "text",
                "recordedDate": "text",
                "detail": {
                  "reasons": [
                    {
                      "id": 1,
                      "key": "text",
                      "result": "text",
                      "reason": "text",
                      "code": "text",
                      "metaData": {
                        "sourceName": "text",
                        "sourceOriginName": "text",
                        "title": "text",
                        "date": "text",
                        "name": "text",
                        "dob": [
                          "text"
                        ],
                        "matchScore": 1,
                        "riskScore": 1,
                        "gender": "text",
                        "relations": [
                          {
                            "relationType": "text",
                            "entityName": "text"
                          }
                        ],
                        "positions": [
                          {
                            "position": "text",
                            "fromYear": "text",
                            "toYear": "text"
                          }
                        ],
                        "aliases": [
                          {
                            "type": "text",
                            "name": "text"
                          }
                        ],
                        "regNumber": "text",
                        "branch": "text",
                        "address": "text",
                        "currentStatus": "text",
                        "incorporationDate": "text",
                        "dissolutionDate": "text",
                        "type": "text",
                        "officers": [
                          {
                            "id": 1,
                            "name": "text",
                            "position": "text",
                            "startDate": "text",
                            "endDate": "text",
                            "status": "text",
                            "address": "text"
                          }
                        ],
                        "parentCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "primaryCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "filings": {
                          "lastFilingDate": "text",
                          "filingType": {
                            "filingTypeCode": "text",
                            "filingTypeDescription": "text"
                          }
                        },
                        "officerId": "text",
                        "position": "text",
                        "startDate": "text",
                        "endDate": "text",
                        "actedCompany": "text",
                        "actedRegNumber": "text",
                        "country": "text",
                        "state": "text"
                      }
                    }
                  ]
                }
              }
            ],
            "resultsExcludedByFilters": [
              {
                "id": 1,
                "title": "text",
                "description": "text",
                "recordedDate": "text",
                "detail": {
                  "reasons": [
                    {
                      "id": 1,
                      "key": "text",
                      "result": "text",
                      "reason": "text",
                      "code": "text",
                      "metaData": {
                        "sourceName": "text",
                        "sourceOriginName": "text",
                        "title": "text",
                        "date": "text",
                        "name": "text",
                        "dob": [
                          "text"
                        ],
                        "matchScore": 1,
                        "riskScore": 1,
                        "gender": "text",
                        "relations": [
                          {
                            "relationType": "text",
                            "entityName": "text"
                          }
                        ],
                        "positions": [
                          {
                            "position": "text",
                            "fromYear": "text",
                            "toYear": "text"
                          }
                        ],
                        "aliases": [
                          {
                            "type": "text",
                            "name": "text"
                          }
                        ],
                        "regNumber": "text",
                        "branch": "text",
                        "address": "text",
                        "currentStatus": "text",
                        "incorporationDate": "text",
                        "dissolutionDate": "text",
                        "type": "text",
                        "officers": [
                          {
                            "id": 1,
                            "name": "text",
                            "position": "text",
                            "startDate": "text",
                            "endDate": "text",
                            "status": "text",
                            "address": "text"
                          }
                        ],
                        "parentCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "primaryCompanyInfo": {
                          "companyName": "text",
                          "countryCode": "text",
                          "regNumber": "text"
                        },
                        "filings": {
                          "lastFilingDate": "text",
                          "filingType": {
                            "filingTypeCode": "text",
                            "filingTypeDescription": "text"
                          }
                        },
                        "officerId": "text",
                        "position": "text",
                        "startDate": "text",
                        "endDate": "text",
                        "actedCompany": "text",
                        "actedRegNumber": "text",
                        "country": "text",
                        "state": "text"
                      },
                      "excludedReasons": [
                        "text"
                      ]
                    }
                  ]
                }
              }
            ]
          },
          "result": {
            "id": 1,
            "result": "text"
          }
        }
      ],
      "overallResult": {
        "id": 1,
        "result": "text"
      },
      "overallStatus": {
        "id": 1,
        "status": "text"
      }
    }
    POST /api/v1/verifications HTTP/1.1
    Authorization: Bearer YOUR_SECRET_TOKEN
    Content-Type: application/json
    Accept: */*
    Content-Length: 2796
    
    {
      "options": {
        "runAsync": true,
        "mock": true,
        "piiDataObscure": true
      },
      "externalReferenceId": "text",
      "checks": [
        {
          "checkTypeId": 1,
          "checkMethod": 1,
          "matchesRequired": 1,
          "maximumSources": 1,
          "externalCheckReferenceId": "text",
          "enableOngoingMonitoring": true,
          "filters": {
            "byDob": {
              "includeAllDob": true,
              "includeFullDob": true,
              "includeYearOnlyDob": true,
              "includeYearOnlyDobTolerance": 1,
              "excludeIfSourceDobUnknown": true
            },
            "byName": {
              "nameMatchType": 0,
              "nameMatchMethod": 0,
              "nameMatchMethodTolerance": 1
            },
            "byGender": {
              "excludeGenderMatch": true,
              "excludeIfSourceGenderUnknown": true
            },
            "byPepType": {
              "excludePepTypes": [
                "text"
              ],
              "excludePepByFamilyAssociation": true
            },
            "byAdverseMediaType": {
              "excludeAdverseMediaTypes": [
                "text"
              ]
            }
          }
        }
      ],
      "profile": {
        "titleId": 1,
        "cardTypes": [
          {
            "cardTypeId": 1,
            "cardNumber": "text"
          }
        ],
        "genderTypeId": 1,
        "firstName": "text",
        "middleName": "text",
        "lastName": "text",
        "maidenSecondLastName": "text",
        "dateOfBirth": "2026-03-15T16:40:23.349Z",
        "countryOfBirthCountryCode": "text",
        "placeOfBirthTownCity": "text",
        "nationalityCountryCode": "text",
        "maritalStatusId": 1,
        "mobileNumber": "text",
        "landlineNumber": "text",
        "email": "[email protected]",
        "bankDetails": {
          "accountNumber": "text",
          "sortCode": "text",
          "openedDate": "2026-03-15T16:40:23.349Z"
        },
        "currentAddress": {
          "unStructured": {
            "address1": "text",
            "address2": "text",
            "address3": "text",
            "address4": "text",
            "address5": "text",
            "townCity": "text",
            "stateCounty": "text",
            "postZipCode": "text",
            "countryCode": "text",
            "dateFrom": "2026-03-15T16:40:23.349Z",
            "dateTo": "2026-03-15T16:40:23.349Z"
          },
          "structured": {
            "flatApartmentSubBuilding": "text",
            "buildingNumber": "text",
            "buildingName": "text",
            "roadStreet": "text",
            "district": "text",
            "townCity": "text",
            "stateProvinceName": "text",
            "stateProvinceCode": "text",
            "postZipCode": "text",
            "countryCode": "text",
            "dateFrom": "2026-03-15T16:40:23.349Z",
            "dateTo": "2026-03-15T16:40:23.349Z"
          }
        },
        "previousAddresses": [
          {
            "unStructured": {
              "address1": "text",
              "address2": "text",
              "address3": "text",
              "address4": "text",
              "address5": "text",
              "townCity": "text",
              "stateCounty": "text",
              "postZipCode": "text",
              "countryCode": "text",
              "dateFrom": "2026-03-15T16:40:23.349Z",
              "dateTo": "2026-03-15T16:40:23.349Z"
            },
            "structured": {
              "flatApartmentSubBuilding": "text",
              "buildingNumber": "text",
              "buildingName": "text",
              "roadStreet": "text",
              "district": "text",
              "townCity": "text",
              "stateProvinceName": "text",
              "stateProvinceCode": "text",
              "postZipCode": "text",
              "countryCode": "text",
              "dateFrom": "2026-03-15T16:40:23.349Z",
              "dateTo": "2026-03-15T16:40:23.349Z"
            }
          }
        ]
      },
      "companyDetails": {
        "countryCode": "text",
        "state": "text",
        "companyName": "text",
        "companyNumber": "text",
        "companyAddress": "text",
        "branch": "text"
      },
      "officerDetails": {
        "countryCode": "text",
        "state": "text",
        "companyName": "text",
        "companyNumber": "text",
        "companyAddress": "text",
        "firstName": "text",
        "middleName": "text",
        "lastName": "text",
        "officerId": "text",
        "position": "text"
      },
      "clientEmail": "text",
      "clientId": "text"
    }
    GET /api/v1/verifications/{correlationId} HTTP/1.1
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    [
      {
        "correlationId": "123e4567-e89b-12d3-a456-426614174000",
        "externalReferenceId": "text",
        "checkStatuses": [
          {
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "checkTypeId": 1,
            "externalCheckReferenceId": "text",
            "status": {
              "id": 1,
              "status": "text"
            },
            "resultCount": {
              "totalSourcesChecked": 1,
              "totalSourcesPassed": 1,
              "totalSourcesFailed": 1,
              "totalSourcesForReview": 1
            },
            "matchesRequired": 1,
            "sourceResults": {
              "id": 1,
              "date": "2026-03-15T16:40:23.349Z",
              "rule": "text",
              "ruleId": 1,
              "status": {
                "id": 1,
                "status": "text"
              },
              "result": {
                "id": 1,
                "result": "text"
              },
              "title": "text",
              "summaryTitle": "text",
              "summary": [
                {
                  "id": 1,
                  "key": "text",
                  "value": "text"
                }
              ],
              "results": [
                {
                  "id": 1,
                  "title": "text",
                  "description": "text",
                  "result": "text",
                  "recordedDate": "text",
                  "detail": {
                    "reasons": [
                      {
                        "id": 1,
                        "key": "text",
                        "result": "text",
                        "reason": "text",
                        "code": "text",
                        "metaData": {
                          "sourceName": "text",
                          "sourceOriginName": "text",
                          "title": "text",
                          "date": "text",
                          "name": "text",
                          "dob": [
                            "text"
                          ],
                          "matchScore": 1,
                          "riskScore": 1,
                          "gender": "text",
                          "relations": [
                            {
                              "relationType": "text",
                              "entityName": "text"
                            }
                          ],
                          "positions": [
                            {
                              "position": "text",
                              "fromYear": "text",
                              "toYear": "text"
                            }
                          ],
                          "aliases": [
                            {
                              "type": "text",
                              "name": "text"
                            }
                          ],
                          "regNumber": "text",
                          "branch": "text",
                          "address": "text",
                          "currentStatus": "text",
                          "incorporationDate": "text",
                          "dissolutionDate": "text",
                          "type": "text",
                          "officers": [
                            {
                              "id": 1,
                              "name": "text",
                              "position": "text",
                              "startDate": "text",
                              "endDate": "text",
                              "status": "text",
                              "address": "text"
                            }
                          ],
                          "parentCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "primaryCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "filings": {
                            "lastFilingDate": "text",
                            "filingType": {
                              "filingTypeCode": "text",
                              "filingTypeDescription": "text"
                            }
                          },
                          "officerId": "text",
                          "position": "text",
                          "startDate": "text",
                          "endDate": "text",
                          "actedCompany": "text",
                          "actedRegNumber": "text",
                          "country": "text",
                          "state": "text"
                        }
                      }
                    ]
                  }
                }
              ],
              "resultsExcludedByFilters": [
                {
                  "id": 1,
                  "title": "text",
                  "description": "text",
                  "recordedDate": "text",
                  "detail": {
                    "reasons": [
                      {
                        "id": 1,
                        "key": "text",
                        "result": "text",
                        "reason": "text",
                        "code": "text",
                        "metaData": {
                          "sourceName": "text",
                          "sourceOriginName": "text",
                          "title": "text",
                          "date": "text",
                          "name": "text",
                          "dob": [
                            "text"
                          ],
                          "matchScore": 1,
                          "riskScore": 1,
                          "gender": "text",
                          "relations": [
                            {
                              "relationType": "text",
                              "entityName": "text"
                            }
                          ],
                          "positions": [
                            {
                              "position": "text",
                              "fromYear": "text",
                              "toYear": "text"
                            }
                          ],
                          "aliases": [
                            {
                              "type": "text",
                              "name": "text"
                            }
                          ],
                          "regNumber": "text",
                          "branch": "text",
                          "address": "text",
                          "currentStatus": "text",
                          "incorporationDate": "text",
                          "dissolutionDate": "text",
                          "type": "text",
                          "officers": [
                            {
                              "id": 1,
                              "name": "text",
                              "position": "text",
                              "startDate": "text",
                              "endDate": "text",
                              "status": "text",
                              "address": "text"
                            }
                          ],
                          "parentCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "primaryCompanyInfo": {
                            "companyName": "text",
                            "countryCode": "text",
                            "regNumber": "text"
                          },
                          "filings": {
                            "lastFilingDate": "text",
                            "filingType": {
                              "filingTypeCode": "text",
                              "filingTypeDescription": "text"
                            }
                          },
                          "officerId": "text",
                          "position": "text",
                          "startDate": "text",
                          "endDate": "text",
                          "actedCompany": "text",
                          "actedRegNumber": "text",
                          "country": "text",
                          "state": "text"
                        },
                        "excludedReasons": [
                          "text"
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            "result": {
              "id": 1,
              "result": "text"
            }
          }
        ],
        "overallResult": {
          "id": 1,
          "result": "text"
        },
        "overallStatus": {
          "id": 1,
          "status": "text"
        }
      }
    ]
    GET /api/v1/verifications/references HTTP/1.1
    Authorization: Bearer YOUR_SECRET_TOKEN
    Accept: */*
    
    [
      {
        "referenceName": "text",
        "referenceCategory": "text",
        "referenceCode": "text",
        "referenceId": 1
      }
    ]