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.