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

# Create one or more entries in a matchlist

> Create a new entry in an existing matchlist.
Entries must have at least one attribute and those attributes must be of valid types. Attribute values must have at least one non-whitespace character in their values.
Optionally a batch name can be provided in the request, which will be applied to all given entries. The batch name should reflect the source of the entry list, for example blocklist.csv. The entries can later be retrieved by batch name.
Optionally a reference can be provided for each entry in the request. The reference should be a unique name (but uniqueness is not required) from for example an externally sourced blocklist. The entries can later be retrieved by reference.
Optionally each entry can refer to an entity ID and type (both ID and type, or neither), to indicate that the entry is based on en existing entity.



## OpenAPI

````yaml /specs/fc-core-bundled_generated.yaml post /v2/matchlists/{matchlistName}/entries
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:
    parameters:
      - $ref: '#/components/parameters/matchlistName'
    post:
      tags:
        - Matchlists
      summary: Create one or more entries in a matchlist
      description: >-
        Create a new entry in an existing matchlist.

        Entries must have at least one attribute and those attributes must be of
        valid types. Attribute values must have at least one non-whitespace
        character in their values.

        Optionally a batch name can be provided in the request, which will be
        applied to all given entries. The batch name should reflect the source
        of the entry list, for example blocklist.csv. The entries can later be
        retrieved by batch name.

        Optionally a reference can be provided for each entry in the request.
        The reference should be a unique name (but uniqueness is not required)
        from for example an externally sourced blocklist. The entries can later
        be retrieved by reference.

        Optionally each entry can refer to an entity ID and type (both ID and
        type, or neither), to indicate that the entry is based on en existing
        entity.
      operationId: createMatchlistEntry
      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/Create-Matchlist-Entries-Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Matchlist-Entries-Response'
        '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
    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:
    Create-Matchlist-Entries-Request:
      type: object
      description: Request to create one or more entries in a matchlist
      required:
        - entries
      properties:
        batchName:
          type: string
          description: >-
            Optional name to identify a batch of matchlist entries. This name
            should reflect the source of the batch. When entries are later
            retrieved, they can be filtered by this batch name.
          example: blocklist.csv
        entries:
          description: Entries to create in the matchlist
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Create-Matchlist-Entry-Request'
        comment:
          $ref: '#/components/schemas/Comment'
    Matchlist-Entries-Response:
      type: object
      description: Response object for a list of matchlist entries.
      required:
        - requestId
        - matchlist
        - entries
      properties:
        requestId:
          $ref: '#/components/schemas/Request-ID'
        matchlist:
          $ref: '#/components/schemas/Matchlist-Entry-Matchlist'
        entries:
          description: Entries in the matchlist.
          type: array
          items:
            $ref: '#/components/schemas/Matchlist-Entry'
    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'
    Create-Matchlist-Entry-Request:
      type: object
      description: >-
        Request to create an entry in a matchlist. The entity ID and type must
        either both be omitted, or both be provided. Note that the entity type
        is separate from the entity type in the attributes to be searched for.
        For example an entry may be created from an address of an individual,
        but the search may be set to only apply to organisations.
      required:
        - attributes
      properties:
        entityId:
          $ref: '#/components/schemas/Entity-ID-Writeable'
          description: >-
            The entity ID of the 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
        entityType:
          $ref: '#/components/schemas/Entity-Type'
          description: >-
            The type of the 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 to describe the context of this entry.
          example: CERT-BAD-ACTOR-1234-5678
        reasons:
          description: >-
            Optional reasons for the matchlist entry. These codes will translate
            to configured description strings.
          type: array
          items:
            $ref: '#/components/schemas/Matchlist-Entry-Reason-Code'
        attributes:
          $ref: '#/components/schemas/Matchlist-Entry-Attributes'
    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-Matchlist:
      type: object
      description: >-
        The basic details for the matchlist to which the entry or entries
        belong.
      required:
        - matchlistId
        - name
        - action
        - state
      properties:
        matchlistId:
          type: string
          format: uuid
          description: Unique identifier of the matchlist.
        name:
          type: string
          description: Unique name of the matchlist.
        action:
          $ref: '#/components/schemas/Matchlist-Action'
        state:
          $ref: '#/components/schemas/Matchlist-State'
    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-Base:
      type: object
      properties:
        errorCode:
          type: string
        errorMsg:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
    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:
      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-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-Attributes:
      type: array
      description: All attributes associated with a matchlist entry.
      minItems: 1
      items:
        $ref: '#/components/schemas/Matchlist-Entry-Attribute'
    Entity-Type-Writeable:
      type: string
      enum:
        - INDIVIDUAL
        - ORGANIZATION
        - UNKNOWN
      description: >-
        The type of entity within Frankie. This can be "INDIVIDUAL",
        "ORGANIZATION", or "UNKNOWN".
    Matchlist-Action:
      type: string
      description: >-
        Default action recommended for a match. The action can be one of the
        following:
          - `BLOCK`: Recommended action is to block the entity.
          - `ALERT`: Recommended action is to create an alert for the entity.
          - `ALLOW`: Recommended action is to allow the entity.
          - `REVIEW`: Recommended action is to review the entity.
          - `NONE`: No action; only use the `riskFactor` if any.
      enum:
        - BLOCK
        - ALERT
        - ALLOW
        - REVIEW
        - NONE
    Matchlist-State:
      type: string
      description: |-
        The state of the matchlist. Possible values:
          - "ACTIVE": The matchlist is active and can be used for matching. Note: the default matchlist is always active.
          - "ARCHIVED": The matchlist is archived and cannot be used for matching.
      default: ACTIVE
      enum:
        - ACTIVE
        - ARCHIVED
    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-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
    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: 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
    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

````