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

# Select exception ids by filter

> Resolves the ids of every exception matching the SAME filter as GET /v1/exceptions (status, severity, contextId, reason, assigned_to, external_system, search, date_from, date_to, min_age_days), up to a cap of 10000, for the bulk "select all matching" path. The response carries the filtered total and a truncated flag; the client chunks the returned ids into the capped bulk-action calls. No pagination/sort: it returns the whole filtered set (capped).



## OpenAPI

````yaml en/openapi/v3-current/matcher.yaml get /v1/exceptions/ids
openapi: 3.1.0
info:
  title: Matcher APIs
  description: >-
    Complete API reference for the Matcher reconciliation engine, providing
    automated transaction matching between Midaz Ledger and external systems.
  version: 4.1.0
  license:
    name: Elastic License 2.0
    url: https://www.elastic.co/licensing/elastic-license
servers:
  - url: https://matcher.sandbox.lerian.net
security: []
paths:
  /v1/exceptions/ids:
    get:
      tags:
        - Exception
      summary: Select exception ids by filter
      description: >-
        Resolves the ids of every exception matching the SAME filter as GET
        /v1/exceptions (status, severity, contextId, reason, assigned_to,
        external_system, search, date_from, date_to, min_age_days), up to a cap
        of 10000, for the bulk "select all matching" path. The response carries
        the filtered total and a truncated flag; the client chunks the returned
        ids into the capped bulk-action calls. No pagination/sort: it returns
        the whole filtered set (capped).
      operationId: selectExceptionIDs
      parameters:
        - description: >-
            Filter by reconciliation context ID (UUID, verified against the
            tenant; 404 when unknown)
          explode: false
          in: query
          name: contextId
          schema:
            description: >-
              Filter by reconciliation context ID (UUID, verified against the
              tenant; 404 when unknown)
            examples:
              - 550e8400-e29b-41d4-a716-446655440000
            format: uuid
            type: string
        - description: Filter by status
          explode: false
          in: query
          name: status
          schema:
            description: Filter by status
            enum:
              - OPEN
              - ASSIGNED
              - RESOLVED
            type: string
        - description: Filter by severity
          explode: false
          in: query
          name: severity
          schema:
            description: Filter by severity
            enum:
              - LOW
              - MEDIUM
              - HIGH
              - CRITICAL
            type: string
        - description: Filter by exception reason
          explode: false
          in: query
          name: reason
          schema:
            description: Filter by exception reason
            enum:
              - UNMATCHED
              - FX_RATE_UNAVAILABLE
              - MISSING_BASE_AMOUNT
              - MISSING_BASE_CURRENCY
              - SPLIT_INCOMPLETE
              - VALIDATION_FAILED
              - SOURCE_MISMATCH
              - DUPLICATE_TRANSACTION
              - FEE_VARIANCE
              - FEE_DATA_MISSING
              - FEE_CURRENCY_MISMATCH
              - FX_RATE_VARIANCE
              - AGED_BREAK
              - OVER_SETTLED
            type: string
        - description: Filter by assigned user
          explode: false
          in: query
          name: assigned_to
          schema:
            description: Filter by assigned user
            examples:
              - user@example.com
            type: string
        - description: Filter by external system
          explode: false
          in: query
          name: external_system
          schema:
            description: Filter by external system
            examples:
              - JIRA
            type: string
        - description: >-
            Free-text search across transaction id, reason, and external issue
            id (case-insensitive substring match)
          explode: false
          in: query
          name: search
          schema:
            description: >-
              Free-text search across transaction id, reason, and external issue
              id (case-insensitive substring match)
            examples:
              - null
            type: string
        - description: >-
            Filter from date, inclusive lower bound. Accepts an RFC 3339
            timestamp or a bare date (YYYY-MM-DD); a bare date is taken at
            00:00:00 UTC
          explode: false
          in: query
          name: date_from
          schema:
            description: >-
              Filter from date, inclusive lower bound. Accepts an RFC 3339
              timestamp or a bare date (YYYY-MM-DD); a bare date is taken at
              00:00:00 UTC
            examples:
              - '2025-01-01T00:00:00Z'
            type: string
        - description: >-
            Filter to date, inclusive upper bound. Accepts an RFC 3339 timestamp
            or a bare date (YYYY-MM-DD); a bare date covers the whole day
            through 23:59:59.999999999 UTC
          explode: false
          in: query
          name: date_to
          schema:
            description: >-
              Filter to date, inclusive upper bound. Accepts an RFC 3339
              timestamp or a bare date (YYYY-MM-DD); a bare date covers the
              whole day through 23:59:59.999999999 UTC
            examples:
              - '2025-01-31T23:59:59Z'
            type: string
        - description: >-
            Filter to exceptions at least this many days old (by created_at). 0
            (default) disables the filter.
          explode: false
          in: query
          name: min_age_days
          schema:
            description: >-
              Filter to exceptions at least this many days old (by created_at).
              0 (default) disables the filter.
            examples:
              - 30
            format: int64
            maximum: 3650
            minimum: 0
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelectExceptionIDsResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    SelectExceptionIDsResponse:
      additionalProperties: false
      properties:
        ids:
          description: >-
            Exception ids matching the filter, deterministically ordered
            (created_at DESC, id DESC), capped at 10000
          items:
            type: string
          maxItems: 10000
          type:
            - array
            - 'null'
        total:
          description: >-
            Total exceptions matching the filter (full set; may exceed the
            returned ids)
          examples:
            - 530
          format: int64
          type: integer
        truncated:
          description: >-
            True when the filtered set exceeds the returned ids (the cap was
            reached); a single bulk pass will not cover every match
          examples:
            - false
          type: boolean
      required:
        - ids
        - total
        - truncated
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Bearer token authentication (format: "Bearer {token}")'

````