> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frankieone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search for individual profiles

> Search for Individuals that match the provided search parameters.  Search parameters are supplied in the form of an entity object, similar to how you would create an individual.



## OpenAPI

````yaml /specs/fc-kyc-bundled_generated.yaml post /v2/search/serviceprofiles
openapi: 3.0.3
info:
  title: KYC V2 API
  version: 2.0.1
  description: >-
    This is the APIs for V2 KYC. It allows you to manage individuals, profiles,
    workflows, results, and documents in the context of Individuals.
  contact:
    name: FrankieOne
    url: https://www.frankieone.com/
    email: help@frankieone.com
servers:
  - url: https://api.uat.frankie.one
    description: UAT Environment API Base URL
  - url: https://api.frankie.one
    description: Production API Base URL
security:
  - Api-Key: []
tags:
  - name: Individual Entities
    description: Manage individual entity records
  - name: Individual Entity Elements
    description: Manage individual entity record elements
  - name: Individual Documents
    description: Manage documents for individuals
  - name: Individual Workflows
    description: Manage workflows and executions for individuals
  - name: Individual Results
    description: Manage results for individuals
  - name: Individual Profiles
    description: Manage individual profiles
  - name: Individual Risks
    description: Manage risks associated with an individual
  - name: Monitoring
    description: Turn on/off ongoing monitoring for an individual entity
  - name: HostedURL
    description: Manage hosted URLs for an individual
  - name: IDV
    description: Get a token and/or upload documents to initiate an IDV process
  - name: Search
    description: Search for entity profiles
paths:
  /v2/search/serviceprofiles:
    parameters:
      - $ref: '#/components/parameters/sortFields'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/limit'
    post:
      tags:
        - Search
      summary: Search for individual profiles
      description: >-
        Search for Individuals that match the provided search parameters. 
        Search parameters are supplied in the form of an entity object, similar
        to how you would create an individual.
      operationId: searchIndividuals
      parameters:
        - $ref: '#/components/parameters/Api-Key'
        - $ref: '#/components/parameters/X-Frankie-CustomerID'
        - $ref: '#/components/parameters/X-Frankie-CustomerChildID'
        - $ref: '#/components/parameters/X-Frankie-Channel'
        - $ref: '#/components/parameters/X-Frankie-Username'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Search-Profile'
        description: Search for an individual profile
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  meta:
                    $ref: '#/components/schemas/List-Operation-Meta'
                  requestId:
                    $ref: '#/components/schemas/Request-ID'
                  matches:
                    type: array
                    items:
                      $ref: '#/components/schemas/Search-Matches'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Invalid EntityId:
                  value:
                    errorCode: API-0400,
                    errorMsg: 'Multiple Errors: See Issues list'
                    details:
                      - issue: 'entityId in path must be of type uuid: "test"'
                        issueLocation: VALIDATE-entityId
                    requestId: 01HM5XJ7VASZ3EJMB1VQGTBFJ4
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Invalid authentication:
                  value:
                    errorCode: AUTH-0002,
                    errorMsg: Unauthorized
                    details:
                      - issue: Invalid Authentication provided. Access denied.
                        issueLocation: request
                    requestId: 00000000S6MNG7624K2TDXT1E3
                No Api-Key:
                  value:
                    errorCode: AUTH-0401
                    errorMsg: Unauthorized
                    details:
                      - issue: No api key provided. Access denied.
                        issueLocation: request
                    requestId: 00000001S6MNG7624K2TDXT1E3
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - Api-Key: []
        - jwt:
            - kyc:api
components:
  parameters:
    sortFields:
      name: sortFields
      in: query
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
      description: |-
        List of fields that the Process Results will be filtered with
        Available values : createdAt, updatedAt
    sort:
      in: query
      name: sort
      schema:
        type: string
        enum:
          - asc
          - desc
      description: Order of the sort fields will be sorted upon
    page:
      in: query
      name: page
      example: 2
      schema:
        type: integer
      description: The page number that you want to retrieve for the list query
    limit:
      in: query
      name: limit
      schema:
        type: integer
        minimum: 1
        default: 20
      example: 20
      description: Limit the number of items that will be returned as part of the request
    Api-Key:
      name: api_key
      in: header
      schema:
        type: string
        example: 245c765b124a098d09ef8765....
      description: Your API key provided by FrankieOne
      required: true
    X-Frankie-CustomerID:
      name: X-Frankie-CustomerID
      in: header
      required: true
      schema:
        type: string
        example: 12345678-1234-1234-1234-123456789012
      description: Your Customer ID provided by FrankieOne
    X-Frankie-CustomerChildID:
      name: X-Frankie-CustomerChildID
      in: header
      required: false
      schema:
        type: string
        example: 87654321-4321-4321-4321-210987654321
      description: Your Customer Child ID provided by FrankieOne
    X-Frankie-Channel:
      name: X-Frankie-Channel
      in: header
      required: false
      schema:
        type: string
      description: >-
        Open string that can be used to define the "channel" the request comes
        in from. It can potentially be used in routing and risk calculations
        upon request. Default values that can be used are:  api portal smartui
        Any alphanumeric string is supported though. Anything over 64 characters
        will be truncated.
    X-Frankie-Username:
      name: X-Frankie-Username
      in: header
      description: Username provided by API caller
      required: false
      schema:
        type: string
        example: fred.flintstone@frankieone.com
  schemas:
    Search-Profile:
      type: object
      properties:
        search:
          $ref: '#/components/schemas/Search-Criteria'
        filters:
          $ref: '#/components/schemas/Search-Filters'
    List-Operation-Meta:
      type: object
      description: >-
        Meta information about the request and response returned during a list
        operation.
      properties:
        page:
          type: integer
          description: The current page number of the request.
        total:
          type: integer
          description: The total number of items found for the search criteria.
        limit:
          type: integer
          description: The limit applied to this response.
        count:
          type: integer
          description: The number of items returned in this response.
        sort:
          type: string
          enum:
            - asc
            - desc
          description: The sort order applied to the items in the response.
        sortFields:
          type: array
          items:
            type: string
            enum:
              - createdAt
              - updatedAt
    Request-ID:
      type: string
      example: 01HN9XHZN6MGXM9JXG50K59Q85
      description: The unique request identifier for the API call made.
    Search-Matches:
      type: array
      items:
        $ref: '#/components/schemas/Search-Match'
    Error:
      type: object
      x-examples:
        '400':
          requestId: 0123456789ABCDEFGHIJKLMNOP
          errorCode: API-0400
          errorMsg: Parsing credentials from "<invalid>" failed, because invalid.
          httpStatusCode: 400
        '401':
          requestId: 0123456789ABCDEFGHIJKLMNOP
          errorCode: API-0401
          errorMsg: Unauthenticated due to invalid credentials.
          httpStatusCode: 401
        '409':
          requestId: 0123456789ABCDEFGHIJKLMNOP
          errorCode: API-0409
          errorMsg: Conflict.
          httpStatusCode: 409
      allOf:
        - $ref: '#/components/schemas/Error-Base'
        - type: object
          properties:
            requestId:
              $ref: '#/components/schemas/Request-ID'
    Search-Criteria:
      type: object
      required:
        - type
        - terms
      properties:
        type:
          $ref: '#/components/schemas/Search-Type'
        terms:
          type: array
          items:
            $ref: '#/components/schemas/Search-Term'
          description: List of search terms to be used as criteria.
    Search-Filters:
      type: object
      properties:
        entityIds:
          type: array
          items:
            type: string
          description: Entity IDs to filter the Service Profiles by.
        entityTypes:
          type: array
          items:
            $ref: '#/components/schemas/Search-Filter-Entity-Type'
          description: >-
            Limit result to entities of the given types. By default all types
            are considered.

            Accepted values are:
              - INDIVIDUAL
              - ORGANIZATION
          example:
            - INDIVIDUAL
            - ORGANIZATION
        createdAtBefore:
          type: string
          format: date-time
          description: >-
            Filter Service Profiles created on or before this date and time
            (inclusive).
        createdAtAfter:
          type: string
          format: date-time
          description: >-
            Filter Service Profiles created on or after this date and time
            (inclusive).
        updatedAtAfter:
          type: string
          format: date-time
          description: >-
            Filter Service Profiles updated on or after this date and time
            (inclusive).
        updatedAtBefore:
          type: string
          format: date-time
          description: >-
            Filter Service Profiles updated on or before this date and time
            (inclusive).
        assignees:
          type: array
          items:
            type: string
          description: Filter Service Profiles by assignee(s).
        reviewers:
          type: array
          items:
            type: string
          description: Filter Service Profiles by reviewer(s).
        states:
          description: List of Service Profile state values to filter Service Profiles.
          type: array
          items:
            $ref: '#/components/schemas/Service-Profile-State'
        workflowNames:
          type: array
          items:
            type: string
          description: Filter by workflow execution summary workflow names.
        workflowExecutionStatuses:
          description: >-
            Filter by combinations of workflowStatus and statusOverrideType.

            If this filter is used, the deprecated statusOverrideType and
            workflowStatuses filters are ignored.
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Execution-Statuses'
        statusOverrideType:
          type: string
          description: |-
            Filter by status override type. Accepted values are:
              - ONLY_OVERRIDDEN: Returns only profiles with manually overridden statuses.
              - EXCLUDE_OVERRIDDEN: Excludes profiles with manually overridden statuses.
              - ALL: Returns both profiles with and without manually overridden statuses.
            If not provided, the default behavior is ALL.
          enum:
            - ONLY_OVERRIDDEN
            - EXCLUDE_OVERRIDDEN
            - ALL
          default: ALL
          deprecated: true
        workflowStatuses:
          deprecated: true
          description: List of workflowStatus values to filter Service Profiles.
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Execution-ResultEnum'
        issueCategories:
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Issue-Category'
          description: List of issue categories to filter Service Profiles.
        issueSeverities:
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Issue-Severity'
          description: List of issue severities to filter Service Profiles.
        riskLevels:
          type: array
          items:
            $ref: '#/components/schemas/Risk-Level'
          description: >-
            Filter by workflow execution summary risk levels. If workflow name
            is not provided, all execution summaries are searched.
        issues:
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Issue-Type'
            description: >-
              Filter for issues. Should match categories being filtered for. For
              each category, this provides the actual issue.

              VERIFY:
                NOT_FOUND (was 404)
                BAD_DATA_NAME
                BAD_DATA_DOB
                BAD_DATA_ADDRESS
                BAD_DATA_ID
                BAD_DATA_EMAIL
                BAD_DATA_MOBILE
              DECEASED:
                DECEASED
              EXPIRY:
                REQUIRES_KYC
                REQUIRES_IDV
                REQUIRES_AML
              INFORMATIONAL:
                CREDIT_HEADER
              AML:
                PEP
                SANCTION
                MEDIA
                WATCHLIST
              FRAUD:
                FRAUD_LIST  
                FRAUD_CHECK
              DEVICE:
                DEVICE_FRAUD_MATCH
                DEVICE_INVALID
              TRANSACTION:
                AML_ISSUE
                FRAUD_ISSUE
                BLOCKED
              WATCHLIST:
                INTERNAL_MATCH
              DUPLICATE:
                DUPLICATE
              BLOCKLISTED:
                MATCHED_INTERNAL
                MATCHED_SHARED
                MATCHED_EXTERNAL
              SYSTEM:
                SERVICE_TIMEOUT
                SERVICE_ERROR
        workflowExecutionScope:
          $ref: '#/components/schemas/Workflow-Execution-ScopeEnum'
    Search-Match:
      type: object
      properties:
        serviceProfile:
          $ref: '#/components/schemas/Service-Profile'
        confidence:
          $ref: '#/components/schemas/Search-Confidence'
        fieldsMatched:
          type: array
          items:
            $ref: '#/components/schemas/Search-Field-Match'
    Error-Base:
      type: object
      properties:
        errorCode:
          type: string
        errorMsg:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
    Search-Type:
      type: string
      description: |-
        Specifies the type of search to perform.

        - "EXACT": Returns only results that exactly match the search term.
        - "FUZZY": Returns results that are similar to the search term.
      enum:
        - EXACT
        - FUZZY
    Search-Term:
      type: object
      required:
        - term
        - field
      properties:
        term:
          description: >-
            The value to search for in profiles. This term will be matched
            against the specified field.
          type: string
        field:
          $ref: '#/components/schemas/Search-Field'
    Search-Filter-Entity-Type:
      type: string
      enum:
        - INDIVIDUAL
        - ORGANIZATION
      description: >-
        The type of entity within Frankie to filter on. This can be "INDIVIDUAL"
        or "ORGANIZATION".
    Service-Profile-State:
      type: string
      description: >-
        Current state of the Service Profile

        - INIT: Initial state when the profile is created.

        - AUTO: Automatically assigned state, typically after initial
        processing.

        - ACTIVE: The profile is active and in use.

        - ARCHIVED: The profile has been archived and is no longer active.

        - BLOCKLISTED: The profile is blocked from further actions.

        - INACTIVE: The profile is inactive, not currently in use.

        - DELETED: The profile has been deleted.

        - DUPLICATE: The profile is a duplicate of another existing profile.
      enum:
        - INIT
        - AUTO
        - ACTIVE
        - ARCHIVED
        - BLOCKLISTED
        - INACTIVE
        - DELETED
        - DUPLICATE
    Workflow-Execution-Statuses:
      type: object
      required:
        - status
        - overrideType
      properties:
        overrideType:
          $ref: '#/components/schemas/Status-Override-Type-Filter'
        status:
          description: >-
            List of workflowStatus value that the Service Profiles will be
            filter with
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Execution-ResultEnum'
    Workflow-Execution-ResultEnum:
      type: string
      x-oapi-codegen-extra-tags:
        audit: keep
      description: |
        Outcome of this workflow execution. Possible results:
          - UNCHECKED: The workflow has not yet been run and has no result.
          - IN_PROGRESS: The workflow is currently running and awaiting completion.
          - REVIEW: The workflow produced results that require review. Check the risks and step results for more details.
          - PASS: The workflow successfully completed with a PASS recommendation.
          - FAIL: The workflow finished with a FAIL recommendation.
          - COMPLETE: The workflow has finished and the results are considered complete. PASS/FAIL is not required.
          - INCOMPLETE: The workflow has finished and the results are considered incomplete. PASS/FAIL is not required.
          - NEEDS_APPROVAL: The workflow requires an approval process. Once approved, re-run the workflow.
          - APPROVED: The workflow was approved, typically by an external source such as a human.
          - REJECTED: The workflow was rejected, typically by an external source such as a human.
          - BLOCKED: The workflow was blocked from completing. Manual review is required.
          - CLEAR: The workflow completed with no issues raised. Often used for ongoing monitoring workflows.
          - URGENT: The workflow completed with matters requiring urgent review. Often used for ongoing monitoring workflows that return sanctions or similarly critical items.
          - MONITOR: The workflow completed and further monitoring is required. Should be manually reviewed.
      default: UNCHECKED
      enum:
        - UNCHECKED
        - IN_PROGRESS
        - REVIEW
        - PASS
        - FAIL
        - COMPLETE
        - INCOMPLETE
        - NEEDS_APPROVAL
        - APPROVED
        - REJECTED
        - BLOCKED
        - CLEAR
        - URGENT
        - MONITOR
    Workflow-Issue-Category:
      type: string
      x-oapi-codegen-extra-tags:
        audit: keep
      enum:
        - AML
        - BAD_DATA
        - BIOMETRICS
        - BLOCKLISTED
        - DECEASED
        - DEVICE
        - DOCUMENT
        - DUPLICATE
        - EXPIRY
        - FRAUD
        - IDV
        - INFORMATIONAL
        - KYC
        - SYSTEM
        - VERIFY
        - VISA
        - WATCHLIST
        - ACTIVITY
        - SUPPORTING_DOC
        - RISK
      description: |-
        General category of issue found:
          - AML: Anti-Money Laundering issues.
          - BAD_DATA: Indicates that the data provided is invalid or incorrect.
          - BIOMETRICS: Issues found during a biometrics check.
          - BLOCKLISTED: The entity has a hit on a blocklist.
          - DECEASED: Indicates that the entity is deceased.
          - DEVICE: Issues found during device checks.
          - DOCUMENT: Issues found during a document check.
          - DUPLICATE: Indicates that the entity has duplicates.
          - EXPIRY: Indicates that a process or document for the entity has expired.
          - FRAUD: Possible fraud detected.
          - IDV: Issues found during an Identity Verification (IDV) process.
          - INFORMATIONAL: Informational messages that are not issues but are required to be returned.
          - KYC: Issues found during a Know Your Customer (KYC) process.
          - SYSTEM: System-level issues.
          - VERIFY: Issues found during a verification process.
          - VISA: Issues found during a visa check.
          - WATCHLIST: Issues found during a watchlist check.
          - ACTIVITY: Issues found during an activity process.
          - SUPPORTING_DOC: Issues found during a supporting document check.
          - RISK: Issues related to risk assessment.
    Workflow-Issue-Severity:
      type: string
      x-oapi-codegen-extra-tags:
        audit: keep
      enum:
        - INFO
        - REVIEW
        - BLOCK
        - WARNING
        - CRITICAL
        - ERROR
      description: |
        The severity level of the issue. Possible values:
          - INFO: Informational only.
          - REVIEW: Requires review.
          - BLOCK: Blocks further processing.
          - WARNING: Warning, but not blocking.
          - CRITICAL: Critical issue.
          - ERROR: Error encountered.
    Risk-Level:
      type: string
      enum:
        - UNKNOWN
        - LOW
        - MEDIUM
        - HIGH
        - UNACCEPTABLE
      description: |
        The risk level classification:
          - UNKNOWN: Risk level is not determined.
          - LOW: Low risk.
          - MEDIUM: Medium risk.
          - HIGH: High risk.
          - UNACCEPTABLE: Risk level is unacceptable.
    Workflow-Issue-Type:
      type: string
      x-oapi-codegen-extra-tags:
        audit: keep
      enum:
        - AML_ISSUE
        - BAD_DATA_ADDRESS
        - BAD_DATA_DOB
        - BAD_DATA_DOCUMENT
        - BAD_DATA_EMAIL
        - BAD_DATA_ID
        - BAD_DATA_MOBILE
        - BAD_DATA_DEVICE
        - BAD_DATA_IP_ADDRESS
        - BAD_DATA_EMAIL_ADDRESS
        - BAD_DATA_NAME
        - BLOCKED
        - COMPROMISED_DOCUMENT
        - CREDIT_HEADER
        - DATA_COMPARISON
        - DATA_CONSISTENCY
        - DATA_VALIDATION
        - DENY_LIST
        - DECEASED
        - DEVICE_FRAUD_MATCH
        - DEVICE_INVALID
        - DOCUMENT_COMPARISON
        - DUPLICATE
        - FRAUD_CHECK
        - FRAUD_DEVICE
        - FRAUD_IP_ADDRESS
        - FRAUD_EMAIL_ADDRESS
        - FRAUD_PHONE_NUMBER
        - FRAUD_INCOMPLETE
        - FRAUD_ISSUE
        - FRAUD_LIST
        - IMAGE_INTEGRITY
        - INSUFFICIENT_ADDRESS_MATCH
        - INSUFFICIENT_DOB_MATCH
        - INSUFFICIENT_GOVID_MATCH
        - INSUFFICIENT_NAME_MATCH
        - INTERNAL_MATCH
        - LIVENESS_DETECTION
        - MATCHED_EXTERNAL
        - MATCHED_INTERNAL
        - MATCHED_SHARED
        - MEDIA
        - NO_ADDRESS_MATCH
        - NO_DOB_MATCH
        - NO_GOVID_MATCH
        - NO_NAME_MATCH
        - NOT_FOUND
        - OCR
        - PARTIAL
        - PARTIAL_MATCH
        - PEP
        - REQUIRES_AML
        - REQUIRES_IDV
        - REQUIRES_KYC
        - REQUIRES_VISA
        - SANCTION
        - SERVICE_ERROR
        - SERVICE_TIMEOUT
        - VISA_FAILED
        - VISUAL_AUTHENTICITY
        - WATCHLIST
        - ACTIVITY_AML
        - ACTIVITY_FRAUD
        - ACTIVITY_EVENT
        - ACTIVITY_DEVICE
        - DOCUMENT_MISSING
        - DOCUMENTS_NOT_APPROVED
        - RISK_THRESHOLD_HIGH
        - RISK_THRESHOLD_UNACCEPTABLE
        - RISK_THRESHOLD_MEDIUM
      description: |-
        For each category, this provides the specific issue type.

        AML:
          - PEP: The entity has Politically Exposed Person (PEP) hits.
          - SANCTION: The entity has sanction hits.
          - MEDIA: The entity has adverse media hits.
          - WATCHLIST: The entity has watchlist hits.

        BAD_DATA:
          - BAD_DATA_NAME: Name is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_DOB: Date of Birth is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_ADDRESS: Address is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_ID: ID is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_EMAIL: Email is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_MOBILE: Mobile is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_DEVICE: Device is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_IP_ADDRESS: IP Address is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_EMAIL_ADDRESS: Email Address is required for verification but is missing or unusable due to data quality issues.
          - BAD_DATA_DOCUMENT: Document data is required for verification but is missing or unusable due to data quality issues.

        BLOCKLISTED:
          - MATCHED_INTERNAL: The entity matched an internal blocklist.
          - MATCHED_SHARED: The entity matched a shared blocklist.
          - MATCHED_EXTERNAL: The entity matched an external blocklist.

        DECEASED:
          - DECEASED: The person whose data is being verified is deceased.

        DEVICE:
          - DEVICE_FRAUD_MATCH: Fraud detected on the device.
          - DEVICE_INVALID: The device is invalid.

        DUPLICATE:
          - DUPLICATE: The entity is a duplicate of another entity.

        EXPIRY:
          - REQUIRES_KYC: KYC process needs to be re-initiated.
          - REQUIRES_IDV: IDV process needs to be re-initiated.
          - REQUIRES_AML: AML process needs to be re-initiated.
          - REQUIRES_VISA: Visa process needs to be re-initiated.

        FRAUD:
          - FRAUD_LIST: The entity is on a fraud list.
          - FRAUD_CHECK: Fraud detected during checks.
          - FRAUD_DEVICE: Device fraud detected.
          - FRAUD_IP_ADDRESS: IP address fraud detected.
          - FRAUD_EMAIL_ADDRESS: Email address fraud detected.
          - FRAUD_PHONE_NUMBER: Phone number fraud detected.

        IDV:
          - DATA_COMPARISON: Data comparison issue.
          - DATA_VALIDATION: Data validation issue.
          - DATA_CONSISTENCY: Data consistency issue.
          - VISUAL_AUTHENTICITY: Visual authenticity issue.
          - IMAGE_INTEGRITY: Image integrity issue.
          - COMPROMISED_DOCUMENT: Document is compromised.
          - LIVENESS_DETECTION: Liveness detection failed.
          - DOCUMENT_COMPARISON: Document comparison issue.

        INFORMATIONAL:
          - CREDIT_HEADER: Credit header information was returned as part of a credit agency check.

        KYC:
          - NOT_FOUND: KYC ruleset not met.
          - PARTIAL: Some matches but insufficient.
          - NO_GOVID_MATCH: GovID required but no GovID match.
          - INSUFFICIENT_GOVID_MATCH: GovID required but insufficient matches.
          - NO_DOB_MATCH: DOB required but no DOB match.
          - INSUFFICIENT_DOB_MATCH: DOB required but insufficient matches.
          - NO_ADDRESS_MATCH: Address required but no address match.
          - INSUFFICIENT_ADDRESS_MATCH: Address required but insufficient matches.
          - NO_NAME_MATCH: Name required but no name match.
          - INSUFFICIENT_NAME_MATCH: Name required but insufficient matches.
          - PARTIAL_MATCH: General partial match.

        OCR:
          - OCR: The OCR data does not match what was entered by the user.

        SYSTEM:
          - SERVICE_TIMEOUT: All providers have timed out.
          - SERVICE_ERROR: All providers have returned an error or an internal error has occurred.

        VISA:
          - DENY_LIST: The entity matched a visa deny list.
          - VISA_FAILED: Visa check failed from the provider.

        WATCHLIST:
          - INTERNAL_MATCH: The entity matched an internal watchlist.

        ACTIVITY:
          - ACTIVITY_AML: The entity has had an activity that is flagged for AML
          - ACTIVITY_FRAUD: The entity has had an activity that is flagged for fraud
          - ACTIVITY_EVENT: The entity has had an activity that is deemed as suspicious, but not exactly classified as either fraud or AML

        SUPPORTING_DOC:
          - DOCUMENT_MISSING: The document is not provided
          - DOCUMENTS_NOT_APPROVED: The document is not approved

        RISK:
          - RISK_THRESHOLD_HIGH: The risk threshold is too high
          - RISK_THRESHOLD_MEDIUM: The risk threshold is medium
          - RISK_THRESHOLD_UNACCEPTABLE: The risk threshold is unacceptable
    Workflow-Execution-ScopeEnum:
      type: string
      enum:
        - LAST
        - ANY
      description: |
        Determines how workflow status and name filters are applied:
          - LAST: Applies filters only to the most recent workflow execution.
          - ANY: Searches across all workflow executions.
      default: ANY
      example: LAST
    Service-Profile:
      allOf:
        - $ref: '#/components/schemas/Service-Profile-Base'
        - type: object
          properties:
            state:
              $ref: '#/components/schemas/Service-Profile-State'
    Search-Confidence:
      type: number
      format: float
      minimum: 0
      maximum: 1
      description: >
        Confidence level of the search result, represented as a number between 0
        and 1.

        A higher value indicates greater confidence in the accuracy of the
        search result.
    Search-Field-Match:
      type: object
      properties:
        field:
          $ref: '#/components/schemas/Search-Field'
        confidence:
          $ref: '#/components/schemas/Search-Confidence'
    Issue:
      type: object
      properties:
        issue:
          type: string
          description: Description of the issue.
        issueLocation:
          type: string
          description: The location or context where the issue was identified.
        issueType:
          type: string
          description: The type or category of the issue.
    Search-Field:
      type: string
      description: >-
        List of fields that can be searched.

          - "NAME": Searches all name parts of the profile.
          - "GIVEN_NAME": Searches the given name of the individual linked to the profile.
          - "FAMILY_NAME": Searches the family name of the individual linked to the profile.
          - "MIDDLE_NAME": Searches the middle name of the individual linked to the profile.
          - "DISPLAY_NAME": Searches the preferred display name. By default, this is the combined given, middle, and family names.
          - "OTHER_NAME": Searches other names of the individual linked to the profile.
          - "EXTERNAL_REFERENCE": Searches the external reference of the entity linked to the profile.
          - "REGISTERED_NAME": Searches the registered names of the organization linked to the profile.
          - "ALTERNATE_NAME": Searches the alternate (other than registered) names of the organization linked to the profile.
          - "REGISTRATION_NUMBER": Searches the registration numbers of the organization linked to the profile.

        Planned for future implementation:
          - "ADDRESS": Searches the address of the entity linked to the profile.
          - "EMAIL_ADDRESS": Searches the email address of the entity linked to the profile.
          - "PHONE_NUMBER": Searches the phone number of the entity linked to the profile.
          - "DOCUMENT_IDENTIFIER": Searches primary and secondary identifiers in documents linked to the profile.

        If an individual field type is specified and the search is limited to
        organizations, or vice versa, then nothing

        will be found for those fields. The "NAME" and "EXTERNAL_REFERENCE"
        field types will search both individuals and

        organziations, if both are requested in the search, which is the
        default.
      enum:
        - NAME
        - GIVEN_NAME
        - FAMILY_NAME
        - MIDDLE_NAME
        - DISPLAY_NAME
        - OTHER_NAME
        - ADDRESS
        - EMAIL_ADDRESS
        - PHONE_NUMBER
        - DOCUMENT_IDENTIFIER
        - EXTERNAL_REFERENCE
        - REGISTERED_NAME
        - ALTERNATE_NAME
        - REGISTRATION_NUMBER
    Status-Override-Type-Filter:
      type: string
      description: >-
        Filter on the status override type. Accepted values are:


        - ONLY_OVERRIDDEN: Returns only profiles with manually overridden
        statuses.

        - EXCLUDE_OVERRIDDEN: Excludes profiles with manually overridden
        statuses.

        - ALL: Returns both profiles with and without manually overridden
        statuses.
      enum:
        - ONLY_OVERRIDDEN
        - EXCLUDE_OVERRIDDEN
        - ALL
      default: ALL
    Service-Profile-Base:
      type: object
      properties:
        serviceProfileId:
          type: string
          description: The unique identifier for the service profile.
          example: 55fc5d54-46f7-49c8-bf78-e07ec79c42fd
          readOnly: true
        latestRiskAssessmentId:
          $ref: '#/components/schemas/Risk-Assessment-ID'
          description: >-
            The ID of the latest risk assessment in the most recent workflow
            with a valid assessment.

            Omitted if no valid risk assessment exists.
        latestWorkflowExecutionId:
          type: string
          description: |-
            The ID of the most recent workflow execution.
            Omitted if no workflows exist.
        entityId:
          type: string
          readOnly: true
        entityName:
          type: string
          readOnly: true
        entityType:
          type: string
          readOnly: true
        schemaVersion:
          type: integer
          description: The version number of the schema.
          example: 2
          readOnly: true
        createdAt:
          type: string
          format: date-time
          description: The UTC date and time when this service profile was created.
          example: '2024-01-15T02:18:11.365Z'
          readOnly: true
        createdRequestId:
          type: string
          description: >-
            The unique ULID identifier of the request that created this service
            profile.
          example: 01HMR2ERSKCYAVXKS1FKSRT2T4
          readOnly: true
        createdBy:
          type: string
          description: The user or client that created this profile.
          example: Ryan Reynolds
          readOnly: true
        updatedAt:
          type: string
          format: date-time
          description: >-
            The UTC date and time when this service profile was last updated, if
            applicable.
          example: '2024-01-15T02:18:11.365Z'
          readOnly: true
        updatedBy:
          type: string
          description: The user or client that last updated this profile.
          example: Ryan Reynolds
          readOnly: true
        updatedRequestId:
          type: string
          description: >-
            The unique ULID identifier of the request that last updated this
            service profile.
          example: 01HMR2ERSKCYAVXKS1FKSRT2T4
          readOnly: true
        assignee:
          type: string
          description: The name of the officer assigned to approve this profile.
          example: Ryan Gosling
        reviewer:
          type: string
          description: The name of the officer assigned to review this profile.
          example: Ryan Trahan
        currentWorkflowId:
          type: string
          readOnly: true
        currentWorkflowName:
          type: string
          description: The name of the current workflow, if applicable.
        workflowSummaries:
          type: array
          items:
            $ref: '#/components/schemas/Workflow-Execution-Summary'
          readOnly: true
        serviceName:
          type: string
          description: The name of the service associated with this profile.
          readOnly: true
        customerReference:
          type: string
          readOnly: true
          description: Customer-specific identifier(s).
        subscriptions:
          type: array
          description: >-
            The list of subscriptions associated with the service profile.

            A subscription determines if the service profile is subscribed to a
            particular ongoing process.
          items:
            $ref: '#/components/schemas/Service-Profile-Subscription'
          readOnly: true
    Risk-Assessment-ID:
      type: string
      description: Unique identifier of the risk assessment.
      readOnly: true
    Workflow-Execution-Summary:
      type: object
      description: >
        Summary of the workflow execution.


        ### Using and interpreting the status field


        The result of the workflow is represented in the **status** field. Users
        can manually override this status with a different value to change the
        outcome of the workflow.

        When the **status** field is overridden, the **statusOverrideRequestId**
        field is populated with the request ID of the override request.

        If the **statusOverrideRequestId** field is present and non-empty, it
        indicates that the status has been manually changed.

          1. Initial State:
             - When a workflow completes, its result is set in the **status** field.
          2. Status Override:
             - Users may override the **status** field with a different value (e.g., change FAIL to PASS).
          3. Identifying Overrides:
             - To determine if a status has been overridden, check for the presence of the **statusOverrideRequestId** field.
             - If present, it indicates that the status has been manually changed.
          4. Additional Override Information:
             - **statusOverrideBy**: Identifies the user who performed the override (may not always be present).
             - **statusOverrideAt**: Timestamp of when the override occurred.
          5. Interpretation:
             - If **statusOverrideRequestId** is empty or absent, no override has occurred.
             - If **statusOverrideRequestId** is present, then a manual override has occurred.
      properties:
        schemaVersion:
          type: integer
          description: Version of the schema used for this workflow execution.
        workflowName:
          type: string
          description: Name of the workflow.
        workflowExecutionId:
          type: string
          description: Unique identifier for the workflow execution.
        workflowExecutionState:
          $ref: '#/components/schemas/Workflow-Execution-StateEnum'
          description: Current state of the workflow execution.
        status:
          $ref: '#/components/schemas/Workflow-Execution-ResultEnum'
          description: Current status/result of the workflow execution.
        statusOverrideAt:
          type: string
          format: date-time
          description: Timestamp when the status override occurred.
        statusOverrideRequestId:
          type: string
          description: Request ID associated with the status override.
        statusOverrideBy:
          type: string
          description: Identifier of the user who performed the status override.
        riskAssessment:
          $ref: '#/components/schemas/Risk-Assessment'
          description: Risk assessment for the workflow execution.
        isManual:
          type: boolean
          description: Indicates if the workflow was executed manually.
        steps:
          $ref: '#/components/schemas/Workflow-Execution-Steps'
          description: Steps executed as part of the workflow.
        startedAt:
          type: string
          format: date-time
          description: The timestamp when the workflow execution started.
        endedAt:
          type: string
          format: date-time
          description: The timestamp when the workflow execution ended.
        issues:
          type: array
          x-oapi-codegen-extra-tags:
            audit: keep
          description: List of issues encountered during the workflow execution.
          items:
            $ref: '#/components/schemas/Workflow-Issue'
        lifecyclePhase:
          $ref: '#/components/schemas/Workflow-LifecyclePhaseEnum'
          description: Current lifecycle phase of the workflow.
        monitoringTypes:
          description: |
            The types of monitoring that subscribe to the workflow.
          type: array
          items:
            $ref: '#/components/schemas/Monitoring-Type'
    Service-Profile-Subscription:
      type: object
      properties:
        serviceProfileId:
          type: string
          description: The unique identifier of the service profile.
        status:
          type: string
          enum:
            - ENABLED
            - DISABLED
          description: >-
            Indicates whether the subscription is currently active and
            operational.
        type:
          $ref: '#/components/schemas/Subscription-Type'
        workflowName:
          type: string
          description: >-
            The name of the monitoring workflow executed when a monitoring alert
            occurs.
        workflowId:
          type: string
          description: The unique identifier of the monitoring workflow.
        enabledAt:
          type: string
          format: date-time
          description: The date and time when the subscription was most recently enabled.
        enabledRequestId:
          type: string
          description: The request identifier for the most recent enable action.
        enabledBy:
          type: string
          description: The user who most recently enabled the subscription.
        disabledAt:
          type: string
          format: date-time
          description: The date and time when the subscription was most recently disabled.
        disabledRequestId:
          type: string
          description: The request identifier for the most recent disable action.
        disabledBy:
          type: string
          description: The user who most recently disabled the subscription.
    Workflow-Execution-StateEnum:
      type: string
      description: |
        Current state of the workflow execution. Possible values:
          - COMPLETED: The workflow execution has completed successfully.
          - CANCELED: The workflow execution was canceled.
          - TERMINATED: The workflow execution was terminated before completion.
          - ERROR: The workflow execution encountered an error.
          - TIMEOUT: The workflow execution timed out.
          - IN_PROGRESS: The workflow execution is currently in progress.
      enum:
        - COMPLETED
        - CANCELED
        - TERMINATED
        - ERROR
        - TIMEOUT
        - IN_PROGRESS
    Risk-Assessment:
      type: object
      required:
        - entityId
        - serviceProfileId
        - workflowId
        - workflowExecutionId
      properties:
        serviceProfileId:
          $ref: '#/components/schemas/Profile-ID'
        riskAssessmentId:
          $ref: '#/components/schemas/Risk-Assessment-ID'
        workflowId:
          type: string
          description: Unique identifier of the workflow.
        workflowExecutionId:
          type: string
          description: Unique identifier of the workflow execution.
        entityId:
          type: string
          description: Unique identifier of the entity being assessed.
        schemaVersion:
          type: integer
          description: Version of the risk assessment schema.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the risk assessment was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the risk assessment was last updated.
        updatedBy:
          type: string
          description: Identifier of the user or system that updated this assessment.
        updatedRequestId:
          type: string
          description: Identifier of the request that updated this assessment.
        workflowRiskScore:
          type: number
          description: Risk score calculated for the workflow.
        workflowRiskLevel:
          $ref: '#/components/schemas/Risk-Level'
          description: >-
            Risk level of the workflow execution associated with this risk
            assessment.
        riskScore:
          type: number
          description: Risk score calculated for the entity.
        riskLevel:
          $ref: '#/components/schemas/Risk-Level'
          description: Risk level of the entity.
        isOutdated:
          type: boolean
          description: >-
            Indicates whether the assessment is out of date, either due to
            manual updates or changes to risk factors that were assessed.
          default: false
        riskFactors:
          type: array
          items:
            $ref: '#/components/schemas/Risk-Factor'
          readOnly: true
          description: List of risk factors considered in this assessment.
    Workflow-Execution-Steps:
      type: object
      properties:
        order:
          type: array
          items:
            type: string
        passed:
          type: array
          items:
            type: string
        failed:
          type: array
          items:
            type: string
        incomplete:
          type: array
          items:
            type: string
        notApplicable:
          type: array
          items:
            type: string
    Workflow-Issue:
      type: object
      required:
        - category
        - issue
        - severity
      properties:
        issueId:
          allOf:
            - $ref: '#/components/schemas/Issue-ID'
          readOnly: true
        category:
          $ref: '#/components/schemas/Workflow-Issue-Category'
        issue:
          $ref: '#/components/schemas/Workflow-Issue-Type'
        workflowExecutionId:
          type: string
          description: >-
            Identifier of the workflow execution in which this issue was
            generated.
        stepResultId:
          type: string
          description: >-
            Identifier of the step from which this issue originated, if
            applicable.
        isCleared:
          type: boolean
          description: >-
            Indicates if this specific issue has been manually flagged as
            addressed.
        createdBy:
          type: string
          description: User or system that created this issue.
          readOnly: true
        createdAt:
          type: string
          format: date-time
          description: The timestamp when the issue was created.
          readOnly: true
        updatedAt:
          type: string
          format: date-time
          description: The timestamp when the issue was last updated.
          readOnly: true
        updatedBy:
          type: string
          description: >-
            User or system that last updated this issue (e.g.,
            System:<service_name> or User:<user_name>).
          readOnly: true
        updatedRequestId:
          type: string
          description: Identifier of the request that updated this issue.
          readOnly: true
        severity:
          $ref: '#/components/schemas/Workflow-Issue-Severity'
    Workflow-LifecyclePhaseEnum:
      type: string
      description: >
        Specifies the lifecycle phase of the customer in which this workflow is
        executed:
          - ONBOARDING: Workflow is in the onboarding stage.
          - MONITORING: Workflow is in the monitoring stage.
          - REFRESH: Workflow is in the refresh stage.
          - OTHER: Workflow is in another stage.
      enum:
        - ONBOARDING
        - MONITORING
        - REFRESH
        - OTHER
      default: OTHER
    Monitoring-Type:
      type: string
      description: >-
        The type of workflow subscription. This determines which types are
        subscribing to a workflow.
      allOf:
        - $ref: '#/components/schemas/Subscription-Type'
    Subscription-Type:
      type: string
      description: >-
        Specifies the type of service profile subscription. This value
        determines the category of the service profile subscription.
      enum:
        - AML
        - ACTIVITY
    Profile-ID:
      type: string
      description: Unique identifier of the Service Profile.
    Risk-Factor:
      type: object
      properties:
        riskFactorId:
          $ref: '#/components/schemas/Risk-Factor-ID'
        factor:
          type: string
          description: Name of the Frankie risk factor.
          readOnly: true
        value:
          type: string
          description: Value assigned to the risk factor.
          readOnly: true
        score:
          type: number
          description: Risk score assigned to the factor (based on customer configuration).
          readOnly: true
        description:
          type: string
          description: Description of the risk factor.
          readOnly: true
        workflowExecutionId:
          type: string
          description: >-
            Unique identifier of the workflow execution in which the risk factor
            was generated.
          readOnly: true
        stepResultId:
          type: string
          description: >-
            Unique identifier of the step result if the factor originated from a
            step.
          readOnly: true
        manualOverrideScore:
          type: number
          description: >-
            If present, this score overrides all others and is used as the final
            score in risk assessment.
        status:
          $ref: '#/components/schemas/Risk-Factor-Status'
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the risk factor was created.
          readOnly: true
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the risk factor was last updated.
          readOnly: true
        updatedBy:
          type: string
          description: >-
            Identifier of the user or system that updated this risk factor
            (e.g., System:<service_name>; or User:<user_name>).
          readOnly: true
        updatedRequestId:
          type: string
          description: Identifier of the request that updated this risk factor.
          readOnly: true
        createdServiceProfileId:
          type: string
          format: uuid
          description: >-
            Identifier of the service profile associated with this risk factor
            when it was created.
        createdWorkflowExecutionId:
          type: string
          description: >-
            Identifier of the workflow execution that originally created the
            risk factor.
        createdStepResultId:
          type: string
          description: >-
            Identifier of the step result that originally created the risk
            factor.
    Issue-ID:
      type: string
      description: Unique identifier for the risk issue.
      readOnly: true
    Risk-Factor-ID:
      type: string
      description: Unique identifier of the risk factor.
      readOnly: true
    Risk-Factor-Status:
      type: string
      enum:
        - VALID
        - STALE
        - OVERRIDDEN
        - DISCARDED
      description: |
        The current status of the risk factor:
          - VALID: The risk factor is applicable to the entity.
          - STALE: The risk factor is no longer applicable to the entity. If this status is returned, it means that at the time of risk assessment, the risk factor was valid.
          - OVERRIDDEN: The risk factor was manually overridden. If present, manualOverrideScore was used for risk score calculation in the risk assessment.
          - DISCARDED: The risk factor was added during workflow execution but was discarded at a later stage in the same workflow. This factor was not used in the final risk assessment.
      default: VALID
  securitySchemes:
    Api-Key:
      type: apiKey
      in: header
      name: api_key
      description: ''
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````