LSEG World-Check One Group API

Retrieve groups, case templates, and resolution toolkits that govern how cases are created and results resolved.

OpenAPI Specification

london-stock-exchange-group-group-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: London Stock Exchange LSEG World-Check One Api-Info Group API
  description: 'The World-Check One API enables developers to integrate the next generation of LSEG screening capabilities into existing workflows and internal systems (such as CRMs) in order to help streamline the processes for on-boarding, KYC and third party due diligence.

    The API provides, among other features:

    - The ability to screen entity names, with or without secondary fields such as date of birth for individuals. These names are called “cases” within the World-Check One system.

    - The ability to retrieve results of the screening process from the World-Check database

    - The ability to flag cases for Ongoing Screening, and retrieve the World-Check results from the Ongoing Screening process.

    - The ability to submit request for reports.

    - The ability to fetch the status of the report requests and download the completed reports.

    > © 2018 - 2023 LSEG. All rights reserved. Republication or redistribution of LSEG content, including by framing or similar means, is prohibited without the prior written consent of LSEG. ''LSEG'' and the LSEG logo are registered trademarks and trademarks of LSEG and its affiliated companies.

    '
  version: 2.61.0
  termsOfService: https://www.lseg.com/en/risk-intelligence/screening-solutions/world-check-kyc-screening/one-kyc-verification
  contact:
    name: LSEG World-Check One API Q&A
    url: https://community.developers.refinitiv.com/index.html
    email: c3r.api1@lseg.com
  license:
    name: Commercial
    url: https://www.lseg.com/en/risk-intelligence/screening-solutions/world-check-kyc-screening/one-kyc-verification
host: api-worldcheck.refinitiv.com
basePath: /v2
schemes:
- https
consumes:
- application/json
produces:
- application/json
- application/octet-stream
tags:
- name: Group
  description: Operations for the group domain.
paths:
  /groups:
    get:
      operationId: getGroups
      tags:
      - Group
      summary: London Stock Exchange Group Get all the top-level groups with their immediate descendants
      description: Get all the top-level groups with their immediate descendants
      parameters:
      - name: Authorization
        description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
        in: header
        type: string
        required: true
      - name: Date
        description: The date and time at which the message was originated in 'RFC 1123' format
        in: header
        type: string
        required: true
      responses:
        200:
          description: A list of all top-level groups containing their immediate descendants
          schema:
            type: array
            items:
              $ref: '#/definitions/Group'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        404:
          $ref: '#/responses/CannotReturnResponse'
        415:
          $ref: '#/responses/UnsupportedMediaType'
        429:
          $ref: '#/responses/TooManyRequests'
        500:
          $ref: '#/responses/UnexpectedError'
  /groups/{groupId}:
    get:
      operationId: getGroupById
      tags:
      - Group
      summary: London Stock Exchange Group Get a specified group including its immediate descendants
      description: Get a specified group including its immediate descendants
      parameters:
      - name: Authorization
        description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
        in: header
        type: string
        required: true
      - name: Date
        description: The date and time at which the message was originated in 'RFC 1123' format
        in: header
        type: string
        required: true
      - name: groupId
        in: path
        type: string
        required: true
        description: Group ID under which we wish to retrieve children groups
      responses:
        200:
          description: A specified group including its immediate descendants
          schema:
            $ref: '#/definitions/Group'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        404:
          $ref: '#/responses/CannotReturnResponse'
        415:
          $ref: '#/responses/UnsupportedMediaType'
        429:
          $ref: '#/responses/TooManyRequests'
        500:
          $ref: '#/responses/UnexpectedError'
  /groups/{groupId}/caseTemplate:
    get:
      operationId: getCaseTemplateForGroup
      tags:
      - Group
      summary: London Stock Exchange Group Get the CaseTemplate for the given Group
      description: "Get the CaseTemplate for the given Group, used for constructing a Case\n\n**Available secondary fields:**\n<details>\n  <summary>Click here to expand</summary>\n\n  | Type ID   | NAME                    | VALUE                     |\n  |--|-||\n  | SFCT_1    | GENDER                  | MALE, FEMALE, UNSPECIFIED |\n  | SFCT_2    | DATE OF BIRTH           | DATE                      |\n  | SFCT_3    | COUNTRY LOCATION        | COUNTRY CODE              |\n  | SFCT_4    | PLACE OF BIRTH          | COUNTRY CODE              |\n  | SFCT_5    | NATIONALITY             | COUNTRY CODE              |\n  | SFCT_6    | REGISTERED COUNTRY      | COUNTRY CODE              |\n  | SFCT_7    | IMO NUMBER              | TEXT                      |\n  | SFCT_8    | PASSPORT GIVEN NAMES    | TEXT                      |\n  | SFCT_9    | PASSPORT LAST NAME      | TEXT                      |\n  | SFCT_10   | PASSPORT GENDER         | MALE, FEMALE, UNSPECIFIED |\n  | SFCT_11   | PASSPORT ISSUING STATE  | STATE CODE                |\n  | SFCT_12   | PASSPORT NATIONALITY    | STATE CODE                |\n  | SFCT_13   | PASSPORT DATE OF BIRTH  | DATE                      |\n  | SFCT_14   | PASSPORT DOCUMENT TYPE  | PASSPORT, ID1, ID2        |\n  | SFCT_15   | PASSPORT ID NUMBER      | TEXT                      |\n  | SFCT_16   | PASSPORT DATE OF EXPIRY | DATE                      |\n  | SFCT_191  | DOCUMENT ID             | TEXT                      |\n  | SFCT_192  | DOCUMENT ID COUNTRY     | COUNTRY CODE              |\n  | SFCT_193  | DOCUMENT ID TYPE        | TEXT                      |\n\n</details>\n"
      parameters:
      - name: Authorization
        description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
        in: header
        type: string
        required: true
      - name: Date
        description: The date and time at which the message was originated in 'RFC 1123' format
        in: header
        type: string
        required: true
      - name: groupId
        in: path
        type: string
        required: true
        description: Group ID under which we wish to manage Cases and perform screening
      responses:
        200:
          description: The CaseTemplate for the given Group
          schema:
            $ref: '#/definitions/CaseTemplateResponse'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        404:
          $ref: '#/responses/CannotReturnResponse'
        415:
          $ref: '#/responses/UnsupportedMediaType'
        429:
          $ref: '#/responses/TooManyRequests'
        500:
          $ref: '#/responses/UnexpectedError'
  /groups/{groupId}/resolutionToolkit:
    get:
      operationId: getResolutionToolkitForGroup
      tags:
      - Group
      summary: London Stock Exchange Group Get the ResolutionToolkit for the given Group.
      description: 'Get the ResolutionToolkit for the given Group, used to construct a valid resolution request(s) on the results

        for a Case belonging to the given Group `groupId`.

        '
      parameters:
      - name: Authorization
        description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details).
        in: header
        type: string
        required: true
      - name: Date
        description: The date and time at which the message was originated in 'RFC 1123' format.
        in: header
        type: string
        required: true
      - name: groupId
        in: path
        type: string
        required: true
        description: ID of the Group to which the resolution toolkit belongs.
      responses:
        200:
          description: The ResolutionToolkit for the given Group.
          schema:
            $ref: '#/definitions/ResolutionToolkitResponse'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        404:
          $ref: '#/responses/CannotReturnResponse'
        415:
          $ref: '#/responses/UnsupportedMediaType'
        429:
          $ref: '#/responses/TooManyRequests'
        500:
          $ref: '#/responses/UnexpectedError'
  /groups/{groupId}/resolutionToolkits:
    get:
      operationId: getResolutionToolkitsForGroup
      tags:
      - Group
      summary: London Stock Exchange Group Get all the ResolutionToolkits for the given Group
      description: 'Get the ResolutionToolkits for the given Group for all enabled provider types, used to construct a valid

        resolution request(s) on the results for a Case belonging to the given Group `groupId`.

        '
      parameters:
      - name: Authorization
        description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
        in: header
        type: string
        required: true
      - name: Date
        description: The date and time at which the message was originated in 'RFC 1123' format
        in: header
        type: string
        required: true
      - name: groupId
        in: path
        type: string
        required: true
        description: ID of the Group to which the resolution toolkits belong.
      responses:
        200:
          description: Map of ResolutionToolkits for the given Group keyed by provider type
          schema:
            type: object
            additionalProperties:
              $ref: '#/definitions/ResolutionToolkitResponse'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        404:
          $ref: '#/responses/CannotReturnResponse'
        415:
          $ref: '#/responses/UnsupportedMediaType'
        429:
          $ref: '#/responses/TooManyRequests'
        500:
          $ref: '#/responses/UnexpectedError'
  /groups/{groupId}/resolutionToolkits/{providerType}:
    get:
      operationId: getResolutionToolkitForGroupWithProviderType
      tags:
      - Group
      summary: London Stock Exchange Group Get the ResolutionToolkit for a specific provider type for the given Group
      description: 'Get the ResolutionToolkit for a specific provider type the given Group, used to construct a valid resolution request(s) on the results

        for a Case belonging to the given Group `groupId`.

        '
      parameters:
      - name: Authorization
        description: The authorization credentials including 'keyId', 'algorithm', 'headers', 'signature' (see 'Security and Authentication details' documentation section for more details)
        in: header
        type: string
        required: true
      - name: Date
        description: The date and time at which the message was originated in 'RFC 1123' format
        in: header
        type: string
        required: true
      - name: groupId
        in: path
        type: string
        required: true
        description: ID of the Group to which the resolution toolkit belongs.
      - name: providerType
        in: path
        type: string
        required: true
        description: Provider type for which the resolution toolkit applies.
        enum:
        - WATCHLIST
        - CLIENT_WATCHLIST
      responses:
        200:
          description: The ResolutionToolkit for the given Group and provider type
          schema:
            $ref: '#/definitions/ResolutionToolkitResponse'
        400:
          $ref: '#/responses/BadRequest'
        401:
          $ref: '#/responses/Unauthorized'
        404:
          $ref: '#/responses/CannotReturnResponse'
        415:
          $ref: '#/responses/UnsupportedMediaType'
        429:
          $ref: '#/responses/TooManyRequests'
        500:
          $ref: '#/responses/UnexpectedError'
definitions:
  ResolutionRules:
    type: object
    description: A collection of [StatusRules] (#StatusRule) keyed by Status ID.
    additionalProperties:
      type: object
      $ref: '#/definitions/StatusRule'
  StatusRule:
    type: object
    description: Represents the rules that should be applied when resolving a Result with a specific Status.
    required:
    - reasons
    - remarkRequired
    - reasonRequired
    - risks
    properties:
      reasons:
        type: array
        description: The IDs for the Reasons that can be used when resolving a Result with a specific Status.
        items:
          type: string
      remarkRequired:
        type: boolean
        description: Flag indicating whether a remark is required when resolving a Result with a specific Status.
      reasonRequired:
        type: boolean
        description: Flag indicating whether a reason is required when resolving a Result with a specific Status.
      risks:
        type: array
        description: The IDs for the Risks that can be used when resolving a Result with a specific Status.
        items:
          type: string
  ProviderType:
    type: string
    description: Provider Type Enumeration
    enum:
    - WATCHLIST
    - PASSPORT_CHECK
    - CLIENT_WATCHLIST
    - MEDIA_CHECK
  ResolutionStatusType:
    type: string
    description: Enumeration of resolution Status types.
    enum:
    - POSITIVE
    - POSSIBLE
    - 'FALSE'
    - UNSPECIFIED
  ResolutionToolkitResponse:
    type: object
    description: Resolution toolkit settings applicable for a Group.
    required:
    - groupId
    properties:
      groupId:
        type: string
        description: ID of the Group to which this resolution toolkit belongs.
        maxLength: 255
      providerType:
        $ref: '#/definitions/ProviderType'
      resolutionFields:
        $ref: '#/definitions/ResolutionFields'
      resolutionRules:
        $ref: '#/definitions/ResolutionRules'
    example:
      groupId: GROUP_ID
      providerType: WATCHLIST
      resolutionFields:
        statuses:
        - id: STATUS_ID_1
          label: 'FALSE'
          type: 'FALSE'
        - id: STATUS_ID_2
          label: POSSIBLE
          type: POSSIBLE
        - id: STATUS_ID_3
          label: POSITIVE
          type: POSITIVE
        - id: STATUS_ID_4
          label: UNSPECIFIED
          type: UNSPECIFIED
        risks:
        - id: RISK_ID_1
          label: MEDIUM
          type: 'null'
        - id: RISK_ID_2
          label: LOW
          type: 'null'
        - id: RISK_ID_3
          label: HIGH
          type: 'null'
        - id: RISK_ID_4
          label: UNKNOWN
          type: 'null'
        reasons:
        - id: REASON_ID_1
          label: unreasonable
          type: 'null'
        - id: REASON_ID_2
          label: reason
          type: 'null'
      resolutionRules:
        STATUS_ID_1:
          reasons:
          - REASON_ID_1
          - REASON_ID_2
          remarkRequired: true
          reasonRequired: true
          risks:
          - RISK_ID_1: null
          - RISK_ID_2: null
        STATUS_ID_2:
          reasons: []
          remarkRequired: false
          reasonRequired: false
          risks: []
        STATUS_ID_3:
          reasons:
          - REASON_ID_2
          remarkRequired: false
          reasonRequired: true
          risks:
          - RISK_ID_3: null
        STATUS_ID_4:
          reasons:
          - REASON_ID_1
          remarkRequired: false
          reasonRequired: true
          risks:
          - RISK_ID_4: null
          - RISK_ID_2: null
  Group:
    type: object
    description: Structure of Groups accessible by user
    required:
    - id
    - name
    properties:
      id:
        type: string
        description: Group ID
        maxLength: 255
      parentId:
        type: string
        description: Parent Group ID
        maxLength: 255
      name:
        type: string
        description: Name for the Group
        maxLength: 255
      hasChildren:
        type: boolean
        default: false
      children:
        type: array
        description: Child groups
        items:
          $ref: '#/definitions/Group'
      status:
        $ref: '#/definitions/StatusType'
    example:
      id: Group Id
      parentId: Parent Group ID
      name: John Smith
      hasChildren: true
      children: []
      status: ACTIVE
  FieldValueType:
    type: string
    description: 'Enumerated value formats for a secondary / custom field.


      - GENDER can be one of enumerated values in `GenderType.UKNOWN/MALE/FEMALE`.

      - DATE is a Date in ISO 8601 format excluding Week and Ordinal dates.

      - COUNTRY is a ISO_3166-1_alpha-3 Country Code. All supported country codes can be obtained via `/reference/countries`.

      - PASSPORT_DOCUMENT_TYPE can be screened by `ProviderType.PASSPORT_CHECK`.

      - STATE - a State/Country type used by `ProviderType.PASSPORT_CHECK` for nationality and passport issuing state.

      - TEXT is a string.

      '
    enum:
    - COUNTRY
    - DATE
    - GENDER
    - PASSPORT_DOCUMENT_TYPE
    - STATE
    - TEXT
  StatusType:
    type: string
    description: Enumeration of Status types
    enum:
    - ACTIVE
    - INACTIVE
    - DELETED
  GroupScreeningType:
    type: string
    description: Group screening type enumeration
    enum:
    - CASE_MANAGEMENT_AUDIT
    - ZERO_FOOTPRINT
  AbstractField:
    type: object
    description: Generic Field representing a Custom Field or a Secondary Field.
    required:
    - typeId
    properties:
      typeId:
        type: string
        description: Type Identifier of this Field
        maxLength: 255
  TypeAvailableSelected:
    type: object
    description: Represents a type and also tells whether it is available and whether it should be selected by default
    properties:
      selected:
        type: boolean
        default: false
      type:
        type: string
      available:
        type: boolean
        default: false
  ResolutionFields:
    type: object
    description: Describes all resolution fields (statuses, risks and reasons) in detail.
    required:
    - statuses
    - risks
    - reasons
    properties:
      statuses:
        type: array
        items:
          $ref: '#/definitions/ResolutionField'
      risks:
        type: array
        items:
          $ref: '#/definitions/ResolutionField'
      reasons:
        type: array
        items:
          $ref: '#/definitions/ResolutionField'
  SecondaryFieldsByEntity:
    type: object
    description: Wrapper which contains secondary fields grouped by CaseEntityType.
    required:
    - secondaryFieldsByEntity
    properties:
      secondaryFieldsByEntity:
        type: object
        additionalProperties:
          type: array
          items:
            $ref: '#/definitions/FieldDefinition'
  Error:
    type: object
    required:
    - error
    - cause
    properties:
      error:
        type: string
      cause:
        type: string
      objectId:
        type: string
  FieldDefinition:
    type: object
    description: 'Secondary or Custom Field metadata describing the rules for populating the corresponding

      Field data when creating or updating a Case. Extends [AbstractField](#AbstractField).

      '
    allOf:
    - $ref: '#/definitions/AbstractField'
    - type: object
      required:
      - fieldValueType
      - label
      properties:
        fieldValueType:
          $ref: '#/definitions/FieldValueType'
        fieldRequired:
          type: boolean
          description: Indicates whether this field is required
          default: false
        label:
          type: string
          description: Human-readable label for this field
          maxLength: 1000
        regExp:
          type: string
          description: Optional regular expression which applies to fields where fieldValueType is TEXT
          maxLength: 255
  ResolutionField:
    type: object
    description: Represents the ID, label and type for a Status, a Risk or a Reason.
    required:
    - id
    - label
    properties:
      id:
        type: string
        description: The ID for the resolution label.
      label:
        type: string
        description: The label for the resolution label.
      type:
        $ref: '#/definitions/ResolutionStatusType'
  CaseTemplateResponse:
    type: object
    description: Case template, containing metadata required by the client to construct a valid Case
    required:
    - groupScreeningType
    - groupId
    properties:
      groupScreeningType:
        $ref: '#/definitions/GroupScreeningType'
      groupId:
        type: string
      customFields:
        type: array
        items:
          $ref: '#/definitions/FieldDefinition'
      secondaryFieldsByProvider:
        type: object
        description: 'Mapping from ProviderType to SecondaryFieldsByEntity which contains all secondary fields that is available

          for that ProviderType.

          '
        additionalProperties:
          $ref: '#/definitions/SecondaryFieldsByEntity'
      nameTransposition:
        description: The indication of whether name transposition screening is available and selected.
        $ref: '#/definitions/TypeAvailableSelected'
      mandatoryProviderTypes:
        type: array
        items:
          $ref: '#/definitions/ProviderType'
    example:
      groupScreeningType: CASE_MANAGEMENT_AUDIT
      groupId: Group Id
      customFields:
      - typeId: Custom Field Id
        fieldValueType: TEXT
        fieldRequired: true
      secondaryFieldsByProvider:
        watchlist:
          secondaryFieldsByEntity:
            individual:
            - typeId: GENDER_TYPE_ID
              fieldFormat: GENDER
            - typeId: DATE_OF_BIRTH_TYPE_ID
              fieldFormat: DATE
            - typeId: PLACE_OF_BIRTH_TYPE_ID
              fieldFormat: COUNTRY
            organisation:
            - typeId: REGISTERED_COUNTRY_TYPE_ID
              fieldFormat: COUNTRY
            - typeId: REGISTERED_TEXT_TYPE_ID
              fieldFormat: DOCUMENT_ID
            - typeId: REGISTERED_COUNTRY_TYPE_ID
              fieldFormat: DOCUMENT_ID_COUNTRY
            - typeId: REGISTERED_TEXT_TYPE_ID
              fieldFormat: DOCUMENT_ID_TYPE
            vessel:
            - typeId: IMO_NUMBER_TYPE_ID
              fieldFormat: TEXT
              regExp: '[0-9]{7}'
        passport-check:
          secondaryFieldsByEntity:
            individual:
            - typeId: PASSPORT_GENDER_TYPE_ID
              fieldFormat: GENDER
            - typeId: PASSPORT_ID_NUMBER
              fieldFormat: TEXT
responses:
  Unauthorized:
    description: The request has failed an authorisation check. This can happen for a variety of reasons, such as an invalid or expired API key, an invalid HMAC signature or a request timing issue/problem with the Date header value. The API client should ensure a correctly synchronised clock is used to generate request timestamps.
  UnsupportedMediaType:
    description: For requests with payloads, an unsupported Content-Type was specified. The World-Check One API only supports a content type of application/json.
  CannotReturnResponse:
    description: Cannot return response
    schema:
      type: array
      items:
        $ref: '#/definitions/Error'
  TooManyRequests:
    description: The API client is making too many concurrent requests, and some are being throttled. Throttled requests can be retried (with an updated request Date and HTTP signature) after a short delay.
  BadRequest:
    description: Bad request
    schema:
      type: array
      items:
        $ref: '#/definitions/Error'
  UnexpectedError:
    description: Unexpected error
    schema:
      type: array
      items:
        $ref: '#/definitions/Error'
externalDocs:
  description: Refer to the LSEG Developer Portal for additional documentation on the World-Check One API.
  url: https://developers.lseg.com/en/api-catalog/customer-and-third-party-screening/world-check-one-api
x-tagGroups:
- name: Upcoming Features and Changes
  tags:
  - upcoming
- name: Zero Footprint Screening
  tags:
  - zfs
- name: Case Management and Audit
  tags:
  - api-info
  - reference
  - group
  - case
  - audit
  - media-check
  - client-watchlist
  - user
  - passport-check
  - linked-cases
  - case-rating
  - smart-filter
  - reporting