World-Check One API

RESTful API for integrating LSEG World-Check screening capabilities into existing workflows and internal systems. It enables automated customer and third-party screening for onboarding, KYC, and due diligence processes against the World-Check risk intelligence database.

OpenAPI Specification

refinitiv-world-check-one-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Refinitiv World-Check One API
  description: >-
    RESTful API for integrating LSEG World-Check screening capabilities into
    existing workflows and internal systems. It enables automated customer and
    third-party screening for onboarding, KYC, and due diligence processes
    against the World-Check risk intelligence database, supporting synchronous
    and asynchronous screening, ongoing monitoring, case management, and
    audit trail capabilities.
  version: '2.0.0'
  contact:
    name: LSEG Developer Support
    url: https://developers.lseg.com/en/support
  termsOfService: https://developers.lseg.com/en/terms-and-conditions
externalDocs:
  description: World-Check One API Documentation
  url: https://developers.lseg.com/en/api-catalog/customer-and-third-party-screening/world-check-one-api/documentation
servers:
  - url: https://api-worldcheck.refinitiv.com/v2
    description: Production Server
tags:
  - name: Cases
    description: >-
      Case creation, screening, retrieval, update, and deletion operations
      for entity screening against the World-Check database.
  - name: Groups
    description: >-
      Group management operations for organizing cases and configuring
      screening parameters per group.
  - name: Ongoing Screening
    description: >-
      Ongoing screening monitoring for cases that have been flagged for
      continuous surveillance against the World-Check database.
  - name: Reference
    description: >-
      Reference data operations for retrieving profile details and
      resolution toolkit configurations.
  - name: Screening Results
    description: >-
      Operations for retrieving and managing screening results including
      matched profiles and resolution workflows.
security:
  - hmacAuth: []
paths:
  /cases/screeningRequest:
    post:
      operationId: createCaseAndScreen
      summary: Create Case with Synchronous Screening
      description: >-
        Creates a new case and performs synchronous screening in a single
        request. Returns all matched screening results within the response.
        Optionally enables ongoing screening by setting the caseScreeningState
        to WATCHLIST with ONGOING monitoring.
      tags:
        - Cases
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScreeningRequest'
      responses:
        '200':
          description: Screening completed with results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScreeningResponse'
        '400':
          description: Invalid screening request
        '401':
          description: Unauthorized or invalid HMAC signature
        '403':
          description: Forbidden
  /cases/{caseSystemId}:
    get:
      operationId: getCase
      summary: Get Case Details
      description: >-
        Retrieves the details of an existing case including its current
        status, screening state, and metadata.
      tags:
        - Cases
      parameters:
        - $ref: '#/components/parameters/caseSystemId'
      responses:
        '200':
          description: Case details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Case'
        '401':
          description: Unauthorized
        '404':
          description: Case not found
    put:
      operationId: updateCase
      summary: Update an Existing Case
      description: >-
        Updates the details of an existing case such as name fields, custom
        data, and screening parameters.
      tags:
        - Cases
      parameters:
        - $ref: '#/components/parameters/caseSystemId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseUpdateRequest'
      responses:
        '200':
          description: Case updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Case'
        '400':
          description: Invalid update request
        '401':
          description: Unauthorized
        '404':
          description: Case not found
    delete:
      operationId: deleteCase
      summary: Delete a Case
      description: >-
        Permanently deletes a case and all associated screening results
        and audit history.
      tags:
        - Cases
      parameters:
        - $ref: '#/components/parameters/caseSystemId'
      responses:
        '204':
          description: Case deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Case not found
  /cases/{caseSystemId}/results:
    get:
      operationId: getScreeningResults
      summary: Get Screening Results
      description: >-
        Retrieves detailed screening results for a specific case including
        all matched profiles, match strength indicators, and resolution
        status for each match.
      tags:
        - Screening Results
      parameters:
        - $ref: '#/components/parameters/caseSystemId'
      responses:
        '200':
          description: Screening results returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScreeningResultsResponse'
        '401':
          description: Unauthorized
        '404':
          description: Case not found
  /cases/{caseSystemId}/results/{resultId}/resolution:
    put:
      operationId: resolveResult
      summary: Resolve a Screening Result
      description: >-
        Resolves a specific screening result match by assigning a resolution
        status such as True Positive, False Positive, or Unresolved. The
        valid resolution options depend on the group's resolution toolkit
        configuration.
      tags:
        - Screening Results
      parameters:
        - $ref: '#/components/parameters/caseSystemId'
        - name: resultId
          in: path
          required: true
          description: >-
            The unique identifier of the screening result to resolve.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResolutionRequest'
      responses:
        '200':
          description: Result resolved successfully
        '400':
          description: Invalid resolution request
        '401':
          description: Unauthorized
        '404':
          description: Result not found
  /cases/ongoingScreeningUpdates:
    get:
      operationId: getOngoingScreeningUpdates
      summary: Get Ongoing Screening Updates
      description: >-
        Retrieves all ongoing screening updates for cases that have been
        flagged for continuous monitoring. Returns cases where new matches
        have been found or existing matches have changed since the last
        screening cycle.
      tags:
        - Ongoing Screening
      parameters:
        - name: since
          in: query
          description: >-
            Filter updates since this date-time in ISO 8601 format.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: Ongoing screening updates returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OngoingScreeningUpdate'
        '401':
          description: Unauthorized
  /groups:
    get:
      operationId: listGroups
      summary: List Groups
      description: >-
        Retrieves all groups available in the account. Groups are used to
        organize cases and configure screening parameters such as
        provider types, match thresholds, and resolution toolkits.
      tags:
        - Groups
      responses:
        '200':
          description: Groups returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Group'
        '401':
          description: Unauthorized
  /groups/{groupId}:
    get:
      operationId: getGroup
      summary: Get Group Details
      description: >-
        Retrieves the details and configuration of a specific group
        including its screening settings and resolution toolkit.
      tags:
        - Groups
      parameters:
        - name: groupId
          in: path
          required: true
          description: >-
            The unique identifier of the group.
          schema:
            type: string
      responses:
        '200':
          description: Group details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          description: Unauthorized
        '404':
          description: Group not found
  /groups/{groupId}/resolutionToolkit:
    get:
      operationId: getResolutionToolkit
      summary: Get Resolution Toolkit
      description: >-
        Retrieves the resolution toolkit configuration for a specific group.
        The toolkit defines the valid resolution statuses, risk levels, and
        reasons that can be applied to screening results for cases
        belonging to the group.
      tags:
        - Groups
      parameters:
        - name: groupId
          in: path
          required: true
          description: >-
            The unique identifier of the group.
          schema:
            type: string
      responses:
        '200':
          description: Resolution toolkit returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResolutionToolkit'
        '401':
          description: Unauthorized
        '404':
          description: Group not found
  /reference/profile/{profileId}:
    get:
      operationId: getProfile
      summary: Get Reference Profile
      description: >-
        Retrieves the full reference profile details for a matched entity
        from the World-Check database, including biographical information,
        associated countries, linked entities, and source documents.
      tags:
        - Reference
      parameters:
        - name: profileId
          in: path
          required: true
          description: >-
            The unique identifier of the World-Check profile.
          schema:
            type: string
      responses:
        '200':
          description: Profile returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
        '401':
          description: Unauthorized
        '404':
          description: Profile not found
components:
  securitySchemes:
    hmacAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        HMAC-SHA256 authentication. All requests must include the API key
        and be signed with the API secret using HMAC-SHA256. The signature
        is computed over the request method, path, date, and body content,
        and included in the Authorization header as a base64-encoded value.
  parameters:
    caseSystemId:
      name: caseSystemId
      in: path
      required: true
      description: >-
        The system-generated unique identifier for the case.
      schema:
        type: string
  schemas:
    ScreeningRequest:
      type: object
      required:
        - groupId
        - entityType
        - providerTypes
        - name
      properties:
        groupId:
          type: string
          description: >-
            The group under which to create the case.
        entityType:
          type: string
          description: >-
            The type of entity being screened.
          enum:
            - INDIVIDUAL
            - ORGANISATION
            - VESSEL
        caseId:
          type: string
          description: >-
            A client-defined case identifier for tracking purposes.
        providerTypes:
          type: array
          items:
            type: string
            enum:
              - WATCHLIST
              - CLIENT_WATCHLIST
              - MEDIA_CHECK
              - PASSPORT_CHECK
          description: >-
            The provider types to screen against, such as WATCHLIST for
            World-Check risk intelligence data.
        caseScreeningState:
          type: object
          properties:
            WATCHLIST:
              type: string
              description: >-
                Set to ONGOING to enable continuous monitoring.
              enum:
                - INITIAL
                - ONGOING
        name:
          type: object
          properties:
            firstName:
              type: string
              description: >-
                First name of the individual being screened.
            middleName:
              type: string
              description: >-
                Middle name of the individual being screened.
            lastName:
              type: string
              description: >-
                Last name of the individual being screened.
            fullName:
              type: string
              description: >-
                Full name, used when individual name parts are not available,
                or the organization name when screening organizations.
        secondaryFields:
          type: object
          properties:
            dateOfBirth:
              type: string
              format: date
              description: >-
                Date of birth for individual screening.
            countryLocation:
              type: string
              description: >-
                Country of location, ISO 3166-1 alpha-2 code.
            nationality:
              type: string
              description: >-
                Nationality, ISO 3166-1 alpha-2 code.
            gender:
              type: string
              description: >-
                Gender of the individual.
              enum:
                - MALE
                - FEMALE
                - UNSPECIFIED
        customFields:
          type: array
          items:
            type: object
            properties:
              typeId:
                type: string
                description: >-
                  The custom field type identifier.
              value:
                type: string
                description: >-
                  The custom field value.
    ScreeningResponse:
      type: object
      properties:
        caseSystemId:
          type: string
          description: >-
            The system-generated case identifier.
        caseId:
          type: string
          description: >-
            The client-defined case identifier.
        results:
          type: array
          items:
            $ref: '#/components/schemas/ScreeningResult'
    ScreeningResult:
      type: object
      properties:
        resultId:
          type: string
          description: >-
            The unique identifier of the screening result.
        referenceId:
          type: string
          description: >-
            The World-Check reference profile identifier.
        matchStrength:
          type: string
          description: >-
            The strength of the match, such as EXACT, STRONG, MEDIUM, or WEAK.
        matchedTerm:
          type: string
          description: >-
            The name or term that was matched.
        submittedTerm:
          type: string
          description: >-
            The original term submitted for screening.
        matchedNameType:
          type: string
          description: >-
            The type of name matched, such as PRIMARY or ALIAS.
        categories:
          type: array
          items:
            type: string
          description: >-
            Categories assigned to the matched profile such as PEP,
            Sanctions, or Adverse Media.
        resolution:
          type: object
          description: >-
            The current resolution status of the result, null if unresolved.
          properties:
            statusId:
              type: string
              description: >-
                The resolution status identifier.
            riskId:
              type: string
              description: >-
                The risk level identifier.
            reasonId:
              type: string
              description: >-
                The resolution reason identifier.
    Case:
      type: object
      properties:
        caseSystemId:
          type: string
          description: >-
            The system-generated case identifier.
        caseId:
          type: string
          description: >-
            The client-defined case identifier.
        groupId:
          type: string
          description: >-
            The group the case belongs to.
        entityType:
          type: string
          description: >-
            The entity type of the case.
        name:
          type: object
          properties:
            firstName:
              type: string
            middleName:
              type: string
            lastName:
              type: string
            fullName:
              type: string
        caseScreeningState:
          type: object
          description: >-
            The current screening state for each provider type.
        creationDate:
          type: string
          format: date-time
          description: >-
            The date and time the case was created.
        modificationDate:
          type: string
          format: date-time
          description: >-
            The date and time the case was last modified.
    CaseUpdateRequest:
      type: object
      properties:
        name:
          type: object
          properties:
            firstName:
              type: string
            middleName:
              type: string
            lastName:
              type: string
            fullName:
              type: string
        secondaryFields:
          type: object
          description: >-
            Updated secondary screening fields.
        customFields:
          type: array
          items:
            type: object
            properties:
              typeId:
                type: string
              value:
                type: string
    ScreeningResultsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/ScreeningResult'
    OngoingScreeningUpdate:
      type: object
      properties:
        caseSystemId:
          type: string
          description: >-
            The case that has updated screening results.
        caseId:
          type: string
          description: >-
            The client-defined case identifier.
        updateDate:
          type: string
          format: date-time
          description: >-
            The date and time of the screening update.
        providerType:
          type: string
          description: >-
            The provider type that generated the update.
    Group:
      type: object
      properties:
        groupId:
          type: string
          description: >-
            The unique identifier of the group.
        name:
          type: string
          description: >-
            The name of the group.
        parentId:
          type: string
          description: >-
            The parent group identifier, if applicable.
        status:
          type: string
          description: >-
            The status of the group, such as ACTIVE or INACTIVE.
    ResolutionToolkit:
      type: object
      properties:
        groupId:
          type: string
          description: >-
            The group this toolkit applies to.
        statuses:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  The status identifier.
              label:
                type: string
                description: >-
                  The display label for the status.
              type:
                type: string
                description: >-
                  The status type such as POSITIVE, FALSE, or UNSPECIFIED.
        risks:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  The risk level identifier.
              label:
                type: string
                description: >-
                  The display label for the risk level.
        reasons:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  The reason identifier.
              label:
                type: string
                description: >-
                  The display label for the reason.
    ResolutionRequest:
      type: object
      required:
        - statusId
      properties:
        statusId:
          type: string
          description: >-
            The resolution status to assign, from the resolution toolkit.
        riskId:
          type: string
          description: >-
            The risk level to assign, from the resolution toolkit.
        reasonId:
          type: string
          description: >-
            The reason for the resolution, from the resolution toolkit.
        remarks:
          type: string
          description: >-
            Free-text remarks or notes for the resolution.
    Profile:
      type: object
      properties:
        profileId:
          type: string
          description: >-
            The unique identifier of the World-Check profile.
        primaryName:
          type: string
          description: >-
            The primary name of the profiled entity.
        entityType:
          type: string
          description: >-
            The entity type such as INDIVIDUAL or ORGANISATION.
        categories:
          type: array
          items:
            type: string
          description: >-
            Categories such as PEP, Sanctions, Law Enforcement, or
            Adverse Media.
        countryLinks:
          type: array
          items:
            type: object
            properties:
              country:
                type: string
                description: >-
                  Country name.
              countryCode:
                type: string
                description: >-
                  ISO 3166-1 alpha-2 code.
              type:
                type: string
                description: >-
                  Relationship type such as NATIONALITY or LOCATION.
        sources:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: >-
                  The source name.
              url:
                type: string
                format: uri
                description: >-
                  The source URL.
        aliases:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: >-
                  The alias name.
              type:
                type: string
                description: >-
                  The alias type such as AKA, FKA, or DBA.