openapi: 3.0.0
info:
  version: '1'
  title: Case Management API
  description: This API provides services to manage screening history, cases and decisions.
security:
  - apiKey: []
tags:
  - name: Case Management
    description: Endpoints to manage screening history, cases and decisions.
paths:
  /cases:
    get:
      summary: Get all business partner cases.
      description: Endpoint to get all business partner cases.
      tags:
        - Case Management
      x-wsdl: false
      parameters:
        - $ref: '#/components/parameters/CaseIdQueryParam'
        - $ref: '#/components/parameters/BusinessPartnerStorageDataSourceIdQueryParam'
        - $ref: '#/components/parameters/AMLBusinessPartnerIdQueryParam'
        - $ref: '#/components/parameters/AMLBusinessPartnerNameQueryParam'
        - $ref: '#/components/parameters/AmlScreeningScoreQueryParam'
        - $ref: '#/components/parameters/FromDateQueryParam'
        - $ref: '#/components/parameters/ToDateQueryParam'
        - $ref: '#/components/parameters/ListTypesQueryParam'
        - $ref: '#/components/parameters/ListAuthorityQueryParam'
        - $ref: '#/components/parameters/ListNameQueryParam'
        - $ref: '#/components/parameters/CaseStatusQueryParam'
        - $ref: '#/components/parameters/CaseSystemStatusQueryParam'
        - $ref: '#/components/parameters/DecisionTypeQueryParam'
        - $ref: '#/components/parameters/OnlyOpenCasesQueryParam'
        - $ref: '#/components/parameters/AMLCaseSortQueryParam'
        - $ref: '#/components/parameters/startAfterQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AMLCasePage'
        '400':
          $ref: '#/components/responses/BadRequest'
  /businesspartners:
    get:
      summary: List all screened business partners.
      description: Endpoint to list all screened business partners with filtering options.
      tags:
        - Case Management
      x-wsdl: false
      parameters:
        - $ref: '#/components/parameters/BusinessPartnerStorageDataSourceIdQueryParam'
        - $ref: '#/components/parameters/AMLBusinessPartnerIdQueryParam'
        - $ref: '#/components/parameters/AMLBusinessPartnerNameQueryParam'
        - $ref: '#/components/parameters/LastDecisionDateQueryParam'
        - $ref: '#/components/parameters/FromDateQueryParam'
        - $ref: '#/components/parameters/ToDateQueryParam'
        - $ref: '#/components/parameters/ListTypesQueryParam'
        - $ref: '#/components/parameters/OnlyOpenCasesQueryParam'
        - $ref: '#/components/parameters/OnlyConfirmedCasesQueryParam'
        - $ref: '#/components/parameters/OnlyClearedCasesQueryParam'
        - $ref: '#/components/parameters/OnlyVerifiedCasesQueryParam'
        - $ref: '#/components/parameters/AMLBusinessPartnerSortQueryParam'
        - $ref: '#/components/parameters/startAfterQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AMLBusinessPartnerPage'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ApiError'
        application/xml:
          schema:
            $ref: '#/components/schemas/schemas-ApiError'
  parameters:
    AMLBusinessPartnerIdPathParam:
      name: businessPartnerId
      in: path
      description: ID of the business partner.
      required: true
      schema:
        $ref: '#/components/schemas/BusinessPartnerId'
    AMLBusinessPartnerIdsPathParam:
      name: businessPartnerIds
      in: path
      description: ID's of business partners.
      required: true
      schema:
        type: array
        items:
          $ref: '#/components/schemas/BusinessPartnerId'
    OrganizationIdPathParam:
      name: organizationId
      in: path
      description: ID of the organization.
      required: true
      schema:
        type: string
        example: cdq_monitor
    BusinessPartnerStorageDataSourceIdQueryParam:
      name: dataSourceId
      in: query
      description: ID of the business partner storage data source.
      required: false
      schema:
        $ref: '#/components/schemas/BusinessPartnerStorageDataSourceId'
    AMLBusinessPartnerIdQueryParam:
      name: businessPartnerId
      in: query
      description: ID of the business partner.
      required: false
      schema:
        $ref: '#/components/schemas/BusinessPartnerId'
    AmlScreeningScoreQueryParam:
      name: screeningScore
      in: query
      description: Screening score.
      required: false
      schema:
        type: number
        example: 0.8
    AMLBusinessPartnerNameQueryParam:
      name: businessPartnerName
      in: query
      description: Name of the business partner.
      required: false
      schema:
        type: string
        example: Apple
    LastDecisionDateQueryParam:
      name: lastDecisionDate
      in: query
      description: Date of the last decision.
      required: false
      schema:
        type: string
        example: '2025-08-27T14:26:38Z'
    FromDateQueryParam:
      name: fromDate
      in: query
      description: Date from a point in time.
      required: false
      schema:
        type: string
        example: '2025-08-27T14:26:38Z'
    ToDateQueryParam:
      name: toDate
      in: query
      description: Date to a point in time.
      required: false
      schema:
        type: string
        example: '2025-08-27T14:26:38Z'
    ListTypesQueryParam:
      name: listTypes
      in: query
      description: Types of the compliance list.
      required: false
      schema:
        $ref: '#/components/schemas/ListTypes'
    ListAuthorityQueryParam:
      name: listAuthority
      in: query
      description: Authority of the list.
      required: false
      schema:
        type: string
        example: United States Department of the Treasury
    ListNameQueryParam:
      name: listName
      in: query
      description: Name of the list.
      required: false
      schema:
        type: string
        example: OFAC
    OnlyOpenCasesQueryParam:
      name: onlyOpenCases
      in: query
      description: Flag to filter business partners with open cases.
      required: false
      schema:
        type: boolean
        example: true
    OnlyVerifiedCasesQueryParam:
      name: onlyVerifiedCases
      in: query
      description: >-
        Flag to filter business partners with verified cases (totalVerifiedCases
        > 0).
      required: false
      schema:
        type: boolean
        example: true
    OnlyConfirmedCasesQueryParam:
      name: onlyConfirmedCases
      in: query
      description: >-
        Flag to filter business partners with confirmed cases (Last decision
        type is CONFIRMED).
      required: false
      schema:
        type: boolean
        example: true
    OnlyClearedCasesQueryParam:
      name: onlyClearedCases
      in: query
      description: >-
        Flag to filter business partners with cleared cases (Last decision type
        is CLEARED).
      required: false
      schema:
        type: boolean
        example: true
    AMLBusinessPartnerSortQueryParam:
      name: sort
      in: query
      description: >
        Defines the attributes to sort by. The result is sorted in ascending
        order. To use descending order use prefix -. Sorting is available only
        for a single attribute.

        Available options:
          * `businessPartnerId`
          * `businessPartnerName`
          * `country`
          * `lastCheckedAt`
          * `lastHitAt`
          * `totalCases`
          * `openCases`
          * `closedCases`
      required: false
      schema:
        type: string
        example: '-lastCheckedAt'
    AMLCaseSortQueryParam:
      name: sort
      in: query
      description: >
        Defines the attributes to sort by. The result is sorted in ascending
        order. To use descending order use prefix -. Sorting is available only
        for a single attribute.

        Available options:
          * `caseId`
          * `screeningScore`
          * `issuedAt`
          * `businessPartnerId`
          * `businessPartnerName`
          * `country`
          * `listType`
          * `lastCheckedAt`
          * `listAuthority`
          * `listName`
          * `lastDecisionAt`
          * `lastDecisionType`
      required: false
      schema:
        type: string
        example: '-lastCheckedAt'
    CaseIdQueryParam:
      name: caseId
      in: query
      description: ID of the case.
      required: false
      schema:
        type: string
        example: '123'
    CaseStatusQueryParam:
      name: status
      in: query
      description: Status of the case.
      required: false
      schema:
        $ref: '#/components/schemas/AMLCaseStatus'
    CaseSystemStatusQueryParam:
      name: systemStatus
      in: query
      description: System status of the case.
      required: false
      schema:
        $ref: '#/components/schemas/AMLCaseSystemStatus'
    DecisionTypeQueryParam:
      name: decisionType
      in: query
      description: Type of the decision.
      required: false
      schema:
        $ref: '#/components/schemas/AMLDecisionType'
    AMLCaseIdPathParam:
      name: caseId
      in: path
      description: ID of the case.
      required: true
      schema:
        $ref: '#/components/schemas/AMLCaseId'
    VersionIdPathParam:
      name: versionId
      in: path
      description: ID of the AML case history version.
      required: true
      schema:
        type: string
        example: 6735e6a8d264a321483afe2a
    AMLCaseVersionIdPathParam:
      name: versionId
      in: path
      description: ID of the aml case history version.
      required: true
      schema:
        $ref: '#/components/schemas/AMLCaseHistoryId'
    StorageIdPathParam:
      name: storageId
      in: path
      description: ID of the storage.
      required: true
      schema:
        type: string
        example: '456'
    startAfterQueryParam:
      name: startAfter
      description: >-
        [Pagination](https://developer.cdq.com/documentation/developer-guidelines/#pagination)
        cursor which should be filled with nextStartAfter value provided in the
        previous page read response.
      in: query
      required: false
      schema:
        type: string
        example: NjI4ZGNkZjAzYjlkMjY4NjhlNjQxNDRm
    limitQueryParam:
      name: limit
      description: Number of resources to be returned on the page.
      in: query
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        default: 500
        example: '200'
  schemas:
    ListTypes:
      type: array
      description: List of list types.
      example:
        - PEP
        - SL
        - WL
      items:
        $ref: '#/components/schemas/ListType'
    ListType:
      type: string
      description: Type of the list.
      example: PEP
      enum:
        - SL
        - PEP
        - WL
    ListAuthority:
      type: string
      description: Authority of the list.
      example: United States Department of the Treasury
    ListName:
      type: string
      description: Name of the list.
      example: OFAC
    LastHit:
      type: string
      description: Date of last hit found during screening.
      example: '2025-08-27T14:26:38Z'
    LastCheckDate:
      type: string
      description: Date of the last checking.
      example: '2025-08-27T14:26:38Z'
    ScreeningDate:
      type: string
      description: Date of the last screening.
      example: '2025-08-27T14:26:38Z'
    DecisionDate:
      type: string
      description: Date of the decision.
      example: '2025-08-27T14:26:38Z'
    IssuingDate:
      type: string
      description: Date of the issuing.
      example: '2025-08-27T14:26:38Z'
    ModificationDate:
      type: string
      description: Date of the modification.
      example: '2025-08-27T14:26:38Z'
    BusinessPartnerName:
      type: string
      description: Name of the business partner.
      example: Apple
    ScreeningType:
      type: string
      description: Type of the screening.
      example: TRANSACTIONAL
      enum:
        - TRANSACTIONAL
        - JOB
    TotalHits:
      type: integer
      description: Total number of hits found during screening.
      example: 3
    OpenCases:
      type: integer
      description: Number of open cases.
      example: 1
    ResolvedCases:
      type: integer
      description: Number of resolved cases.
      example: 2
    TotalCases:
      type: integer
      description: Total number of cases.
      example: 3
    ConfirmedCases:
      type: integer
      description: Total number of cases with last decision type CONFIRMED.
      example: 3
    ClearedCases:
      type: integer
      description: Total number of cases with last decision type CLEARED.
      example: 3
    TotalVerifiedSanctions:
      type: integer
      description: Total number of verified sanctions.
      example: 3
    TotalVerifiedPEP:
      type: integer
      description: Total number of verified PEPs.
      example: 3
    TotalVerifiedWatchlists:
      type: integer
      description: Total number of verified whitelists.
      example: 3
    TotalVerifiedCases:
      type: integer
      description: Total number of verified cases.
      example: 9
    DeletionDate:
      type: string
      description: Date of the deletion.
      example: '2025-08-27T14:26:38Z'
    MatchingScore:
      type: number
      description: Matching score calculated during screening.
      example: 0.8
    AMLBusinessPartnerPage:
      type: object
      description: Page of business partners.
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/AMLBusinessPartner'
        startAfter:
          $ref: '#/components/schemas/StartAfter'
        nextStartAfter:
          $ref: '#/components/schemas/NextStartAfter'
        limit:
          $ref: '#/components/schemas/Limit'
        total:
          $ref: '#/components/schemas/PageTotal'
    AMLBusinessPartner:
      type: object
      description: Business partner with compliance information.
      properties:
        dataSourceId:
          $ref: '#/components/schemas/BusinessPartnerStorageDataSourceId'
        dataSourceName:
          $ref: '#/components/schemas/BusinessPartnerStorageDataSourceName'
        businessPartnerId:
          $ref: '#/components/schemas/BusinessPartnerId'
        businessPartnerName:
          $ref: '#/components/schemas/NameValue'
        externalId:
          $ref: '#/components/schemas/ExternalId'
        country:
          $ref: '#/components/schemas/CountryShortName'
        listTypes:
          $ref: '#/components/schemas/ListTypes'
        lastCheckDate:
          $ref: '#/components/schemas/LastCheckDate'
        lastDecisionDate:
          $ref: '#/components/schemas/DecisionDate'
        lastHit:
          $ref: '#/components/schemas/LastHit'
        openCases:
          $ref: '#/components/schemas/OpenCases'
        resolvedCases:
          $ref: '#/components/schemas/ResolvedCases'
        totalCases:
          $ref: '#/components/schemas/TotalCases'
        totalVerifiedSanctions:
          $ref: '#/components/schemas/TotalVerifiedSanctions'
        totalVerifiedPEP:
          $ref: '#/components/schemas/TotalVerifiedPEP'
        totalVerifiedWatchlists:
          $ref: '#/components/schemas/TotalVerifiedWatchlists'
        totalVerifiedCases:
          $ref: '#/components/schemas/TotalVerifiedCases'
        confirmedCases:
          $ref: '#/components/schemas/ConfirmedCases'
        clearedCases:
          $ref: '#/components/schemas/ClearedCases'
        deletionDate:
          $ref: '#/components/schemas/DeletionDate'
    BusinessPartnerCasesSummaryHistory:
      type: object
      description: Business partner cases summary history.
      properties:
        businessPartnerId:
          $ref: '#/components/schemas/BusinessPartnerId'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        statistics:
          $ref: '#/components/schemas/AMLCaseStatistics'
        businessPartner:
          $ref: '#/components/schemas/AMLBusinessPartner'
        screeningResults:
          type: array
          items:
            $ref: '#/components/schemas/AMLCaseReference'
    AMLCaseReference:
      type: object
      description: Reference to the case.
      properties:
        amlCaseId:
          $ref: '#/components/schemas/AMLCaseId'
        info4cId:
          $ref: '#/components/schemas/Info4cId'
    AMLCaseHistoryId:
      type: string
      description: ID of the screening history entry.
      example: 6735c38c8fedd67d354791ad
    AMLCaseStatistics:
      type: object
      description: Statistics of the case.
      properties:
        numberOfTotalCases:
          type: integer
          description: Total number of cases.
          example: 3
        numberOfOpenCases:
          type: integer
          description: Number of open cases.
          example: 1
        numberOfClosedCases:
          type: integer
          description: Number of closed cases.
          example: 3
    AMLCasePage:
      type: object
      description: Page of cases.
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/AMLCase'
        startAfter:
          $ref: '#/components/schemas/StartAfter'
        nextStartAfter:
          $ref: '#/components/schemas/NextStartAfter'
        limit:
          $ref: '#/components/schemas/Limit'
        total:
          $ref: '#/components/schemas/PageTotal'
    AMLBusinessPartnerDetails:
      type: object
      description: Details of the business partner.
      properties:
        businessPartnerId:
          $ref: '#/components/schemas/BusinessPartnerId'
        name:
          $ref: '#/components/schemas/BusinessPartnerName'
        address:
          $ref: '#/components/schemas/Address'
        externalId:
          $ref: '#/components/schemas/ExternalId'
        legalForm:
          $ref: '#/components/schemas/LegalForm'
        identifiers:
          type: array
          description: List of Identifiers.
          items:
            $ref: '#/components/schemas/Identifier'
    Address:
      type: string
      description: >-
        An address provides information about the physical location of a
        business partner. It can be specialized in a certain context(e.g.
        delivery address or invoice address).
      example: 221B Baker Street, London, UK
    AMLCase:
      type: object
      description: Case related to the business partner.
      properties:
        id:
          $ref: '#/components/schemas/AMLCaseId'
        version:
          $ref: '#/components/schemas/Version'
        info4cId:
          $ref: '#/components/schemas/Info4cId'
        dataMirrorId:
          $ref: '#/components/schemas/DataMirrorId'
        dataSourceId:
          $ref: '#/components/schemas/BusinessPartnerStorageDataSourceId'
        dataSourceName:
          $ref: '#/components/schemas/BusinessPartnerStorageDataSourceName'
        screeningScore:
          $ref: '#/components/schemas/MatchingScore'
        issuingDate:
          $ref: '#/components/schemas/IssuingDate'
        modificationDate:
          $ref: '#/components/schemas/ModificationDate'
        businessPartnerId:
          $ref: '#/components/schemas/BusinessPartnerId'
        businessPartnerName:
          $ref: '#/components/schemas/BusinessPartnerName'
        country:
          $ref: '#/components/schemas/CountryShortName'
        listType:
          $ref: '#/components/schemas/ListType'
        screeningDate:
          $ref: '#/components/schemas/ScreeningDate'
        listAuthority:
          $ref: '#/components/schemas/ListAuthority'
        listName:
          $ref: '#/components/schemas/ListName'
        decisionDate:
          $ref: '#/components/schemas/DecisionDate'
        complianceDataSource:
          $ref: '#/components/schemas/ComplianceDataSource'
        decisions:
          type: array
          items:
            $ref: '#/components/schemas/AMLDecision'
        configurationId:
          $ref: '#/components/schemas/ConfigurationId'
        status:
          $ref: '#/components/schemas/AMLCaseStatus'
        systemStatus:
          $ref: '#/components/schemas/AMLCaseSystemStatus'
    AMLCaseId:
      type: string
      description: ID of the case.
      example: '123'
    Version:
      type: string
      description: Version of the case.
      example: '1'
    ExternalId:
      type: string
      description: External ID of the business partner.
      example: '123'
    Info4cId:
      type: string
      description: ID of the provided Info4c entry.
      example: '123'
    DataMirrorId:
      type: string
      description: ID of the data mirror.
      example: '123'
    AMLCaseStatus:
      type: string
      description: Status of the case.
      example: OPEN
      enum:
        - OPEN
        - CLOSED
        - OUTDATED
    AMLCaseSystemStatus:
      type: string
      description: System status of the case.
      example: VALID
      enum:
        - VALID
        - OUTDATED
        - DELETED
    ComplianceDataSource:
      type: object
      description: Data source of the compliance screening.
      example: AML
      properties:
        technicalKey:
          $ref: '#/components/schemas/TechnicalKey'
    TechnicalKey:
      type: string
      description: Technical key of the data source.
      example: INFO4C_WL_37
    AMLDecision:
      type: object
      description: Decision related to the case.
      properties:
        reviewerName:
          $ref: '#/components/schemas/ReviewerName'
        reviewerId:
          $ref: '#/components/schemas/UserId'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        type:
          $ref: '#/components/schemas/AMLDecisionType'
        comment:
          $ref: '#/components/schemas/AMLDecisionComment'
        reason:
          $ref: '#/components/schemas/AMLDecisionReason'
        caseStatus:
          $ref: '#/components/schemas/AMLCaseStatus'
        caseSystemStatus:
          $ref: '#/components/schemas/AMLCaseSystemStatus'
        amlCaseHistoryId:
          $ref: '#/components/schemas/AMLCaseHistoryId'
    ReviewerName:
      type: string
      description: Name of the reviewer.
      example: John Doe
    AMLDecisionType:
      type: string
      description: Status of the decision.
      example: CONFIRMED
      enum:
        - CREATE
        - CONFIRMED
        - CLEARED
        - REOPEN
        - DELETED
        - OUTDATED
        - REVALIDATED
    AMLDecisionComment:
      type: string
      description: Comment for the decision.
      example: My decision
    AMLDecisionReason:
      type: string
      description: Reason of the decision.
      example: CONFIRMED_MATCH
      enum:
        - FALSE_POSITIVE
        - DUPLICATE_CASE
        - SANCTION_NOT_APPLICABLE
        - BUSINESS_PARTNER_CLEARED
        - INSUFFICIENT_EVIDENCE
        - DATA_ERROR
        - MITIGATED_RISK
        - COMPLIANCE_EXCEPTION_GRANTED
        - FIRST_MATCH
        - CONFIRMED_MATCH
        - BUSINESS_RELATIONSHIP_TERMINATED
        - CONTRACTUAL_ACTIONS_TAKEN
        - REPORT_TO_AUTHORITIES
        - BUSINESS_RESTRICTIONS_IMPOSED
        - RISK_MITIGATION_MEASURES_APPLIED
        - ONGOING_MONITORING
        - NEW_INFORMATION_OR_EVIDENCE
        - REGULATORY_CHANGES
        - INCREASED_RISK_PROFILE
        - MONITORING_ALERT
        - AUDIT_FINDINGS
        - BUSINESS_PARTNER_SANCTIONED
        - COMPLIANCE_POLICY_CHANGE
        - CORRECTION_OF_DATA_ERROR
        - FAILURE_TO_IMPLEMENT_REMEDIATION
        - BUSINESS_PARTNER_DELETION
        - COMPLIANCE_RECORD_DELETION
        - COMPLIANCE_RECORD_NO_LONGER_MATCHES
      x-enumDescriptions:
        FALSE_POSITIVE: No actual match found with the sanctioned entity.
        DUPLICATE_CASE: The case is already addressed in another open or closed case.
        SANCTION_NOT_APPLICABLE: >-
          The match is legitimate but the sanction is not relevant (e.g., not
          within the jurisdiction or business scope).
        BUSINESS_PARTNER_CLEARED: >-
          After investigation, the business partner has been cleared of any
          sanction-related issues.
        INSUFFICIENT_EVIDENCE: >-
          There is not enough information or evidence to conclude a
          sanction-related issue.
        DATA_ERROR: The hit occurred due to incorrect or outdated data.
        MITIGATED_RISK: >-
          The potential risk has been mitigated through additional controls or
          actions.
        COMPLIANCE_EXCEPTION_GRANTED: The case has been closed due to an approved exception from compliance.
        CONFIRMED_MATCH: >-
          The business partner is positively identified on the sanctions list,
          and further action is required.
        BUSINESS_RELATIONSHIP_TERMINATED: >-
          The relationship with the business partner has been terminated due to
          confirmed sanctions.
        CONTRACTUAL_ACTIONS_TAKEN: >-
          Necessary contractual or legal steps have been taken in response to
          the compliance issue.
        REPORT_TO_AUTHORITIES: >-
          The case has been escalated and reported to relevant regulatory or
          enforcement authorities.
        BUSINESS_RESTRICTIONS_IMPOSED: >-
          Specific restrictions (e.g., freezing of transactions, halting trade)
          have been placed on the business partner.
        RISK_MITIGATION_MEASURES_APPLIED: >-
          Additional controls or monitoring have been applied to continue a
          restricted relationship with the business partner.
        ONGOING_MONITORING: >-
          The case has been flagged for continued or enhanced monitoring due to
          partial sanctions or heightened risk.
        NEW_INFORMATION_OR_EVIDENCE: >-
          New facts or evidence have emerged that were not available during the
          initial investigation, which may affect the original decision.
        REGULATORY_CHANGES: >-
          Changes in laws, sanctions, or regulations that could impact the
          original case and require re-evaluation of the business partner.
        INCREASED_RISK_PROFILE: >-
          The business partner's risk profile has increased due to new
          associations, transactions, or geographic shifts that may now require
          compliance action.
        MONITORING_ALERT: >-
          An alert triggered during ongoing monitoring (e.g., change in
          ownership, financial activity or just a scheduled update) that raises
          concerns and warrants re-investigation.
        AUDIT_FINDINGS: >-
          An internal or external audit identified gaps or errors in the
          original compliance decision or process, leading to the need for case
          re-examination.
        BUSINESS_PARTNER_SANCTIONED: >-
          The business partner, previously cleared, has now been added to a
          sanctions list or linked to a new compliance concern.
        COMPLIANCE_POLICY_CHANGE: >-
          Internal compliance policies have been updated, necessitating a review
          of previously closed cases under the new criteria.
        CORRECTION_OF_DATA_ERROR: >-
          A past data error (e.g., in name, country, or ID number) has been
          corrected, and the case must be reopened for proper investigation.
        FAILURE_TO_IMPLEMENT_REMEDIATION: >-
          The case was closed with a remediation plan in place, but the business
          partner failed to comply with the required measures.
    ConfigurationId:
      type: object
      description: Configuration ID.
      properties:
        id:
          type: string
          description: ID of the configuration.
          example: '123'
        version:
          type: string
          description: Version of the configuration.
          example: '0'
    InformationBar:
      type: object
      description: Information bar.
      properties:
        status:
          $ref: '#/components/schemas/AMLCaseStatus'
        listType:
          $ref: '#/components/schemas/ListType'
        screeningScore:
          $ref: '#/components/schemas/MatchingScore'
        screeningDate:
          $ref: '#/components/schemas/ScreeningDate'
        decisionDate:
          $ref: '#/components/schemas/DecisionDate'
        modificationDate:
          $ref: '#/components/schemas/ModificationDate'
        issuingDate:
          $ref: '#/components/schemas/IssuingDate'
        dateOfInformation:
          $ref: '#/components/schemas/DateOfInformation'
        dateOfPublication:
          $ref: '#/components/schemas/DateOfPublication'
        dateOfBirth:
          $ref: '#/components/schemas/Dob'
    FormattedCaseDetails:
      type: object
      description: Holds the result of a formatted compliance list.
      properties:
        caseDetails:
          $ref: '#/components/schemas/CaseDetails'
        listDetails:
          $ref: '#/components/schemas/ListDetails'
        identification:
          $ref: '#/components/schemas/Identification'
        activity:
          $ref: '#/components/schemas/Activity'
        metadata:
          $ref: '#/components/schemas/Metadata'
    CaseDetails:
      type: object
      description: Details of the case.
      properties:
        case:
          type: string
          description: Case identifier.
          example: CASE-2023-0001
        dateOfInformation:
          type: string
          description: Date when the information was last updated.
          example: '2025-08-27T14:26:38Z'
        dateOfPublication:
          type: string
          description: Date when the case was published.
          example: '2025-08-27T14:26:38Z'
        country:
          $ref: '#/components/schemas/Info4cCountry'
        countryOfOrigin:
          $ref: '#/components/schemas/Info4cCountry'
        countriesOfActivity:
          type: array
          items:
            $ref: '#/components/schemas/Info4cCountry'
    ListDetails:
      type: object
      description: Details of the list.
      properties:
        authority:
          type: string
          description: Authority responsible for the list.
          example: United Nations
        category:
          type: array
          items:
            type: string
            description: Categories associated with the list.
            example: Sanctions
        nameOfTheList:
          type: string
          description: Name of the list.
          example: OFAC Sanctions List
        noLongerOnList:
          type: string
          description: Indicates if the entity is no longer on the list.
          example: 'Yes'
        dateOfPublicationOfTheList:
          type: string
          description: Date when the list was published.
          example: '2025-08-27T14:26:38Z'
        typeOfList:
          type: string
          description: Type of the list.
          example: Sanctions
        whitelist:
          type: string
          description: Indicates if the entity is whitelisted.
          example: 'No'
    Identification:
      type: object
      description: Identification details of the entity.
      properties:
        id:
          type: string
          description: Unique identifier for the entity.
          example: '123456789'
        relativeId:
          type: string
          description: Identifier of related entities.
          example: REL-2023-0054
        firstName:
          type: string
          description: First name of the individual.
          example: John
        lastName:
          type: string
          description: Last name of the individual.
          example: Doe
        fullName:
          type: string
          description: Full name of the individual.
          example: John Alexander Doe
        gender:
          type: string
          description: Gender of the individual.
          example: Male
        address:
          type: string
          description: Address of the individual.
          example: 221B Baker Street, London, UK
        addressCountry:
          $ref: '#/components/schemas/Info4cCountry'
        alternativeScript:
          type: string
          description: Name or information in an alternative script.
          example: جون دو
        entityType:
          type: string
          description: Type of entity.
          example: Individual
        dob:
          type: string
          description: Date of birth of the individual.
          example: '2025-08-27T14:26:38Z'
        pob:
          type: string
          description: Place of birth of the individual.
          example: London, United Kingdom
        passportNr:
          type: string
          description: Passport number of the individual.
          example: A12345678
        typeSdnOrEntity:
          type: string
          description: Type of SDN or entity.
          example: SDN
        functions:
          type: array
          items:
            $ref: '#/components/schemas/Info4cFunction'
          description: List of functions or roles of the individual.
        otherNames:
          type: array
          items:
            $ref: '#/components/schemas/OtherNames'
        title:
          type: string
          description: Title of the individual.
          example: Dr.
    Activity:
      type: object
      description: Activity details.
      properties:
        additionalInformation:
          type: string
          description: Additional information or remarks.
          example: Listed for suspected involvement in financial fraud.
    Metadata:
      type: object
      description: Metadata information.
      properties:
        caseType:
          type: string
          description: Type of the case.
          example: Sanctions
        cdqEntityType:
          type: string
          description: CDQ entity type.
          example: Individual
        dateOfPublication:
          type: string
          description: Date when the information was published.
          example: '2025-08-27T14:26:38Z'
    Info4cCountry:
      type: object
      description: Country information.
      properties:
        countryName:
          type: string
          description: Name of the country.
          example: United Kingdom
        countryIso:
          type: string
          description: ISO code of the country.
          example: GB
        code:
          type: string
          description: Code associated with the country.
          example: UK
    Info4cFunction:
      type: object
      description: Function or role of the individual.
      properties:
        position:
          $ref: '#/components/schemas/Position'
        notInChargeSince:
          type: string
          description: Date since the individual is not in charge.
          example: '2025-08-27T14:26:38Z'
        active:
          type: boolean
          description: Indicates if the function is active.
          example: true
        categories:
          type: array
          items:
            type: string
            description: Categories associated with the function.
            example: Director
    Position:
      type: object
      description: Position details of the individual.
      properties:
        organization:
          type: string
          description: Organization associated with the position.
          example: ABC Corp
        function:
          type: string
          description: Function or role of the individual.
          example: Director
        functionDetail:
          type: string
          description: Detailed description of the function.
          example: Director of Operations
        otherFunctionDetails:
          type: object
          description: Other details related to the function.
    OtherNames:
      type: string
      description: Alternate names for the entity or individual.
      example: John Doe, Jonathan Doe
    DateOfInformation:
      type: string
      description: The date when the information was last updated.
      example: '2025-08-27T14:26:38Z'
    Dob:
      type: string
      description: Date of birth of the individual.
      example: '2025-08-27T14:26:38Z'
    DateOfPublication:
      type: string
      description: Date when the entry was published on the list.
      example: '2025-08-27T14:26:38Z'
    LegalForm:
      type: string
      description: >-
        The legal form of a [business partner/type/legal
        entity](https://meta.cdq.com/Business_partner/type/legal_entity) is the
        form it takes in the eyes of the law governing it. The legal form of a
        [company](https://meta.cdq.com/Business_partner) is the general type it
        may legally use to identify itself according to the local, regional,
        national, or international law governing it.
      example: CZ_8911(Společnost s ručením omezeným)
    Identifier:
      type: string
      description: >-
        Identifies a Business Partner in a given context uniquely such as a VAT
        identification number.
      example: IT0003128367(EU_VAT_ID_IT)
    AMLCaseStatusMetadata:
      type: object
      description: Metadata of the case status.
      properties:
        technicalKey:
          $ref: '#/components/schemas/AMLCaseStatus'
        decisionTypes:
          type: array
          items:
            $ref: '#/components/schemas/AMLDecisionMetadata'
    AMLDecisionMetadata:
      type: object
      description: Metadata of the decision.
      properties:
        technicalKey:
          $ref: '#/components/schemas/AMLDecisionType'
        requiresReason:
          type: boolean
          description: Flag indicating if a reason is required for the decision.
          example: true
        reasons:
          type: array
          items:
            $ref: '#/components/schemas/AMLDecisionReasonMetadata'
    AMLDecisionReasonMetadata:
      type: object
      description: Metadata of the decision reason.
      properties:
        technicalKey:
          $ref: '#/components/schemas/AMLDecisionReason'
        description:
          type: string
          description: Description of the decision reason.
          example: >-
            The business partner is positively identified on the sanctions list,
            and further action is required.
    BusinessPartnerStorageDataSourceId:
      type: string
      description: Unique identifier for a Data Source of the Storage.
      example: 648824a691d8d2503d65103e
    BusinessPartnerId:
      type: string
      description: >-
        A CDQ ID identifies a business partner uniquely in the context of the
        Corporate Data League.
      example: 63e635235c06b7396330fe40
    BusinessPartnerStorageDataSourceName:
      type: string
      description: Name of a data source of a storage.
      example: Internal customers
    CountryShortName:
      type: string
      description: Country code (ISO 3166-1 alpha-2).
      example: CH
    UserId:
      type: string
      description: Unique ID of a user.
      example: johndoe
    CreatedAt:
      type: string
      description: Date of creation (ISO 8601-compliant).
      example: '2025-08-27T14:26:38Z'
    StartAfter:
      type: string
      description: The ID which is used to read the page.
      example: '5712566172571652'
    NextStartAfter:
      type: string
      description: Provides a value to be used as a startAfter in next page request.
      example: '5712566172571652'
    Limit:
      type: integer
      description: Number of items per page.
      example: '100'
    PageTotal:
      description: Total number of items which can be paged.
      example: '67'
      type: integer
    HttpStatusCode:
      type: integer
      description: RFC 7231 status code for this error.
      example: '400'
    HttpStatusTechnicalKey:
      type: string
      description: Technical key describing the status or error
      example: OK
    StatusDetailsMessageId:
      type: integer
      description: 9-digit code which is uniquely identifying a message
      example: 200000004
    StatusDetailsMessage:
      type: string
      description: Human-readable message which may also be presented in user interface.
      example: Business Partner Name is mandatory.
    StatusDetailsTechnicalKey:
      type: string
      description: Technical key to uniquely identify a message.
      example: JOB_FINISHED
    JsonPath:
      type: string
      description: JSONPath as specified by the IETF standard
      example: $.businessPartner.names[0].value
    JsonObject:
      type: string
      description: Object provided in plain JSON format.
      example: '{ "key" : "value"}'
      additionalProperties: true
    StatusDetails:
      type: object
      description: Details about this status or error
      required:
        - id
        - message
      properties:
        id:
          $ref: '#/components/schemas/StatusDetailsMessageId'
        message:
          $ref: '#/components/schemas/StatusDetailsMessage'
        technicalKey:
          $ref: '#/components/schemas/StatusDetailsTechnicalKey'
        jsonPath:
          $ref: '#/components/schemas/JsonPath'
        jsonRecord:
          $ref: '#/components/schemas/JsonObject'
    HttpPath:
      type: string
      description: Requested path which caused this error.
      example: /v2/businesspartners/lookup
    StatusTimestamp:
      type: string
      description: ISO 8601 representation of the timestamp.
      example: '2025-08-27T14:26:38Z'
    Status:
      type: object
      description: Details about status or error of a service
      required:
        - code
        - technicalKey
        - details
      properties:
        code:
          $ref: '#/components/schemas/HttpStatusCode'
        technicalKey:
          $ref: '#/components/schemas/HttpStatusTechnicalKey'
        details:
          type: array
          items:
            $ref: '#/components/schemas/StatusDetails'
        path:
          $ref: '#/components/schemas/HttpPath'
        timestamp:
          $ref: '#/components/schemas/StatusTimestamp'
    schemas-ApiError:
      type: object
      description: Detailed information about API errors.
      properties:
        status:
          $ref: '#/components/schemas/Status'
    NameValue:
      type: string
      description: The actual name.
      example: Corporate Data Quality AG
    schemas-ConfigurationId:
      type: string
      description: Uniquely identifies a configuration.
      example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
    ConfigurationName:
      type: string
      description: Display name for a configuration.
      example: Client configuration.
servers:
  - description: Production
    url: https://api.cdq.com/case-management/rest
    x-cdq-soap-url: https://api.corporate-data-league.ch/case-management/soap/v1
