> ## 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.

# Modify a matchlist entry

> This can be used in updating a matchlist entry's non-attribute fields such as `reference`, `state`, `reason`.

This endpoint can also be used to "delete" an entry by changing its state to `DELETED` and capturing comments.

NOTE: Updating `attributes` field of a matchlist entry is not allowed. An entry could be used in existing matches, and modifying attributes directly could lead to inconsistencies. 
As a workaround, retrieve the entry details, then create a new entry with the original and updated values. The old entry should have its state changed to `DELETED`.



## OpenAPI

````yaml /specs/fc-core-bundled_generated.yaml patch /v2/matchlists/{matchlistName}/entries/{entryId}
openapi: 3.0.3
info:
  title: Core V2 API
  version: 2.0.0
  description: >-
    This is the APIs for V2 Core. It allows you to do common operations, such as
    read audit entries or get workflow lists.
  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: Audit
    description: Manage audit entries
  - name: Customers
    description: Manage customer accounts
  - name: Users
    description: Manage users provisioned in child customer accounts
  - name: Request
    description: Retrieve background request results
  - name: Reports
    description: Generate and manage reports
  - name: Results
    description: Manage process results including redaction
  - name: Workflow Definitions
    description: Create and update workflow definitions
  - name: Status
    description: All valid customers will get a successful response.
  - name: Workflows
    description: Manage Workflows and Workflow Definitions
  - name: Tags
    description: Query tags and tag mappings on objects
paths:
  /v2/matchlists/{matchlistName}/entries/{entryId}:
    parameters:
      - $ref: '#/components/parameters/matchlistName'
      - $ref: '#/components/parameters/entryId'
    patch:
      tags:
        - Matchlists
      summary: Modify a matchlist entry
      description: >-
        This can be used in updating a matchlist entry's non-attribute fields
        such as `reference`, `state`, `reason`.


        This endpoint can also be used to "delete" an entry by changing its
        state to `DELETED` and capturing comments.


        NOTE: Updating `attributes` field of a matchlist entry is not allowed.
        An entry could be used in existing matches, and modifying attributes
        directly could lead to inconsistencies. 

        As a workaround, retrieve the entry details, then create a new entry
        with the original and updated values. The old entry should have its
        state changed to `DELETED`.
      operationId: updateMatchlistEntry
      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-Background'
        - $ref: '#/components/parameters/X-Frankie-Username'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                entry:
                  $ref: '#/components/schemas/Update-Matchlist-Entry-Request'
                comment:
                  $ref: '#/components/schemas/Comment'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestId:
                    $ref: '#/components/schemas/Request-ID'
                  entry:
                    $ref: '#/components/schemas/Matchlist-Entry'
        '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:
    matchlistName:
      name: matchlistName
      in: path
      schema:
        type: string
      description: The name of the matchlist.
      required: true
    entryId:
      name: entryId
      in: path
      schema:
        type: string
      description: The unique identifier of the matchlist entry.
      required: true
    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-Background:
      name: X-Frankie-Background
      schema:
        type: integer
        enum:
          - 0
          - 1
      description: >
        If this header parameter is supplied and set to 1, then the request will
        not wait for the process to finish,

        and will return a 202 if there are no obvious errors in the input. The
        request will then run in the background

        and send a notification back to the customer. See our callback API for
        details on this.
      in: header
      required: false
    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:
    Update-Matchlist-Entry-Request:
      type: object
      description: >
        Request to change the state and the optional parts of an entry in a
        matchlist.
      properties:
        reference:
          type: string
          description: |
            Optional reference to describe the context of this entry.
          example: CERT-BAD-ACTOR-1234-5678
        reasons:
          type: array
          description: >
            Optional reasons for the matchlist entry. These codes will translate
            to configured description strings.

            Note: Reasons are not additive to existing reasons. Updating the
            reasons will replace the existing value.
          items:
            $ref: '#/components/schemas/Matchlist-Entry-Reason-Code'
        state:
          $ref: '#/components/schemas/Matchlist-Entry-State-Writeable'
    Comment:
      type: object
      properties:
        commentId:
          type: string
          description: Unique identifier for the comment
          format: ulid
          example: 01K3G4CCQ3DY3B1413S19M9QW1
          readOnly: true
        text:
          type: string
          description: The text content of the comment.
          example: Update after speaking to customer over the phone directly.
        entityId:
          $ref: '#/components/schemas/Entity-ID-Writeable'
        entityType:
          $ref: '#/components/schemas/Entity-Type-Writeable'
    Request-ID:
      type: string
      example: 01HN9XHZN6MGXM9JXG50K59Q85
      description: The unique request identifier for the API call made.
    Matchlist-Entry:
      type: object
      description: Represents a single entry in a matchlist.
      allOf:
        - $ref: '#/components/schemas/Matchlist-Entry-Base'
        - type: object
          description: >-
            Additional entry details that are only visible to the matchlist
            owner.
          title: Matchlist Entry
          required:
            - attributes
          properties:
            attributes:
              $ref: '#/components/schemas/Matchlist-Entry-Attributes'
            state:
              $ref: '#/components/schemas/Matchlist-Entry-State'
            batchName:
              type: string
              description: Optional batch name to identify the source of this entry.
              example: blocklist.csv
            createdBy:
              type: string
              readOnly: true
              description: >-
                The user who created the matchlist entry. This is set to the
                value in the `X-Frankie-Username` header.
            createdAt:
              type: string
              format: date-time
              readOnly: true
              description: The date and time when the matchlist entry was created.
            updatedBy:
              type: string
              readOnly: true
              description: >-
                The user who last updated the matchlist entry. This is set to
                the value in the `X-Frankie-Username` header. On creation, this
                is the same as `createdBy`.
            updatedAt:
              type: string
              format: date-time
              readOnly: true
              description: >-
                The date and time when the matchlist entry was last updated. On
                creation, this is the same as `createdAt`.
    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'
    Matchlist-Entry-Reason-Code:
      type: string
      description: >-
        The reason code for the matchlist entry. This code will be translated to
        a configured description string. Supported codes are 1 to 24 characters
        long, consisting only of uppercase letters (A-Z), digits (0-9),
        underscores (_), or hyphens (-), with no spaces or special characters.
      pattern: ^[A-Z0-9_-]{1,24}$
    Matchlist-Entry-State-Writeable:
      type: string
      description: |-
        The state of the matchlist entry.
          - `ACTIVE`: The matchlist entry is active and can be used for matching.
          - `EXPIRED`: The matchlist entry has expired. It is visible and retrievable, but cannot be used for matching.
          - `DELETED`: The matchlist entry has been marked as deleted, rendering it unusable.

        To modify an entry's state, use `Matchlist-Entry-State-Writeable`.
      default: ACTIVE
      enum:
        - ACTIVE
        - EXPIRED
        - DELETED
    Entity-ID-Writeable:
      type: string
      description: >-
        Entities are assigned a FrankieOne auto-generated UUID to ensure global
        uniqueness, represented as entityId. The entityId allows for precise
        modification when required.

        To modify an entity, set the entityId of the entity you wish to update
        in an update request.
      example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
    Entity-Type-Writeable:
      type: string
      enum:
        - INDIVIDUAL
        - ORGANIZATION
        - UNKNOWN
      description: >-
        The type of entity within Frankie. This can be "INDIVIDUAL",
        "ORGANIZATION", or "UNKNOWN".
    Matchlist-Entry-Base:
      type: object
      description: Basic details about a matchlist entry, excluding metadata.
      properties:
        entryId:
          type: string
          format: uuid
          readOnly: true
          description: Unique identifier for the matchlist entry.
        entityId:
          type: string
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
          description: >-
            The entity ID from which the attributes of this entry are derived.
            This is optional and can be used to link the matchlist entry to an
            entity.
        entityType:
          $ref: '#/components/schemas/Entity-Type'
          description: >-
            The type of entity from which the attributes of this entry are
            derived. This is optional and can be used to link the matchlist
            entry to an entity.
        reference:
          type: string
          description: Optional reference describing the context of this entry.
          example: CERT-BAD-ACTOR-1234-5678
        reasons:
          description: >-
            The reasons for the matchlist entry. These codes will be translated
            to configured description strings.
          type: array
          items:
            $ref: '#/components/schemas/Matchlist-Entry-Reason-Code'
    Matchlist-Entry-Attributes:
      type: array
      description: All attributes associated with a matchlist entry.
      minItems: 1
      items:
        $ref: '#/components/schemas/Matchlist-Entry-Attribute'
    Matchlist-Entry-State:
      type: string
      description: |-
        The state of the matchlist entry.
          - `ACTIVE`: The matchlist entry is active and can be used for matching.
          - `EXPIRED`: The matchlist entry has expired. It is visible and retrievable, but cannot be used for matching.
          - `DELETED`: The matchlist entry has been marked as deleted, rendering it unusable.

        To modify an entry's state, use `Matchlist-Entry-State-Writeable`.
      default: ACTIVE
      readOnly: true
      enum:
        - ACTIVE
        - EXPIRED
        - DELETED
    Error-Base:
      type: object
      properties:
        errorCode:
          type: string
        errorMsg:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
    Entity-Type:
      type: string
      enum:
        - INDIVIDUAL
        - ORGANIZATION
        - UNKNOWN
      description: >-
        The type of entity within Frankie. This can be "INDIVIDUAL",
        "ORGANIZATION", or "UNKNOWN".
      readOnly: true
      x-oapi-codegen-extra-tags:
        audit: keep
    Matchlist-Entry-Attribute:
      type: object
      description: Represents a single attribute of a matchlist entry.
      required:
        - type
        - value
      properties:
        type:
          $ref: '#/components/schemas/Matchlist-Entry-Attribute-Type'
        value:
          description: >-
            The value of the attribute, e.g., last name "Smith" if the type is
            IND_FAMILY_NAME.
          type: string
    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.
    Matchlist-Entry-Attribute-Type:
      type: string
      description: >-
        Entity attributes eligible for screening.


        A matchlist entry may not contain both `ORG_*` and `IND_*` attributes,
        and they must match the `ENTITY_TYPE` if it is provided.
      enum:
        - ENTITY_TYPE
        - EMAIL_ADDRESS
        - EMAIL_DOMAIN
        - PHONE_NUMBER
        - ADDR_STREET_NUMBER
        - ADDR_STREET_NAME
        - ADDR_STREET_TYPE
        - ADDR_NEIGHBORHOOD
        - ADDR_LOCALITY
        - ADDR_DISTRICT
        - ADDR_SUBDIVISION
        - ADDR_COUNTRY
        - ADDR_POSTAL_CODE
        - ADDR_UNSTRUCTURED_LONG_FORM
        - DOC_CLASS
        - DOC_TYPE
        - DOC_SUBTYPE
        - DOC_PRIMARY_IDENTIFIER
        - DOC_SECONDARY_IDENTIFIER
        - IND_DISPLAY_NAME
        - IND_GIVEN_NAME
        - IND_FAMILY_NAME
        - IND_MIDDLE_NAME
        - IND_DATE_OF_BIRTH
        - IND_NATIONALITY
        - ORG_REGISTERED_SUBDIVISION
        - ORG_REGISTERED_COUNTRY
        - ORG_REGISTRATION_NUMBER
        - ORG_REGISTRATION_NUMBER_TYPE
        - ORG_NAME
  securitySchemes:
    Api-Key:
      type: apiKey
      in: header
      name: api_key
      description: ''
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````