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

# List Transaction Validations

> Use this endpoint to list transaction validation records with cursor-based pagination and filters. Useful for compliance reporting and trend analysis.



## OpenAPI

````yaml /en/openapi/v3-current/tracer.yaml get /v1/validations
openapi: 3.1.0
info:
  title: Tracer API
  description: >-
    Complete API reference for Tracer services including transaction validation,
    rules management, spending limits, and audit events for SOX/GLBA compliance.
  version: 1.0.0
servers:
  - url: https://tracer.lerian.io
security: []
tags:
  - name: Health API
    description: >-
      Health check endpoints for liveness and readiness probes. These endpoints
      do not require authentication.
  - name: Validations API
    description: >-
      Transaction validation endpoints. Performance target is under 80ms (p99).
      Validations are not idempotent.
  - name: Rules API
    description: >-
      Validation rule management endpoints. Rules use CEL (Common Expression
      Language) expressions.
  - name: Limits API
    description: >-
      Spending limit management endpoints. Limits control transaction amounts by
      scope and period.
  - name: Audit Events API
    description: >-
      Audit trail endpoints for SOX/GLBA compliance. All validation decisions
      and configuration changes are recorded.
paths:
  /v1/validations:
    get:
      tags:
        - Validations API
      summary: List Transaction Validations
      description: >-
        Use this endpoint to list transaction validation records with
        cursor-based pagination and filters. Useful for compliance reporting and
        trend analysis.
      operationId: listValidations
      parameters:
        - $ref: '#/components/parameters/ContentType'
        - $ref: '#/components/parameters/XApiKey'
        - $ref: '#/components/parameters/XRequestId'
        - name: limit
          in: query
          description: >-
            The maximum number of items to include in the response. Default:
            100, Max: 1000
          required: false
          example: 100
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 100
        - name: cursor
          in: query
          description: >-
            Pagination cursor from previous response. When using cursor, sortBy
            and sortOrder cannot be changed.
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          description: The field used to sort the results.
          required: false
          example: createdAt
          schema:
            type: string
            enum:
              - createdAt
              - processingTimeMs
            default: createdAt
        - name: sortOrder
          in: query
          description: The order used to sort the results.
          required: false
          example: DESC
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: DESC
        - name: startDate
          in: query
          description: >-
            Filter from this date (inclusive). Must be RFC3339 format with
            timezone. Defaults to 90 days before current time.
          required: false
          example: '2026-01-01T00:00:00Z'
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          description: >-
            Filter to this date (exclusive). Must be RFC3339 format with
            timezone. Defaults to current time.
          required: false
          example: '2026-01-31T23:59:59Z'
          schema:
            type: string
            format: date-time
        - name: decision
          in: query
          description: Filter by decision (ALLOW, DENY, REVIEW).
          required: false
          schema:
            type: string
            enum:
              - ALLOW
              - DENY
              - REVIEW
        - name: accountId
          in: query
          description: Filter by account ID (UUID).
          required: false
          schema:
            type: string
            format: uuid
        - name: matchedRuleId
          in: query
          description: Filter by matched rule ID (UUID).
          required: false
          schema:
            type: string
            format: uuid
        - name: exceededLimitId
          in: query
          description: Filter by exceeded limit ID (UUID).
          required: false
          schema:
            type: string
            format: uuid
        - name: segmentId
          in: query
          description: Filter by segment ID (UUID).
          required: false
          schema:
            type: string
            format: uuid
        - name: portfolioId
          in: query
          description: Filter by portfolio ID (UUID).
          required: false
          schema:
            type: string
            format: uuid
        - name: transactionType
          in: query
          description: Filter by transaction type.
          required: false
          schema:
            type: string
            enum:
              - CARD
              - WIRE
              - PIX
              - CRYPTO
      responses:
        '200':
          description: >-
            Indicates that the request was successful and the response contains
            the expected data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListValidationsResponse'
              example:
                transactionValidations:
                  - validationId: 019c96a0-10d2-7193-8841-0d7347efd09a
                    accountId: 019c96a0-0c0c-7221-8cf3-13313fb60081
                    segmentId: 019c96a0-0b4e-7079-8be0-ab6bdccf975f
                    transactionType: CARD
                    amount: 150000
                    currency: BRL
                    decision: ALLOW
                    reason: Transaction approved
                    matchedRuleIds: []
                    exceededLimitIds: []
                    processingTimeMs: 23
                    createdAt: '2026-01-30T10:30:00Z'
                hasMore: true
                nextCursor: eyJpZCI6IjEyMzQifQ==
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0006:
                  $ref: '#/components/examples/Error0006'
                Error0020:
                  $ref: '#/components/examples/Error0020'
                Error0044:
                  $ref: '#/components/examples/Error0044'
                Error0045:
                  $ref: '#/components/examples/Error0045'
                Error0250:
                  $ref: '#/components/examples/Error0250'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0010:
                  $ref: '#/components/examples/Error0010'
                Error0011:
                  $ref: '#/components/examples/Error0011'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0004:
                  $ref: '#/components/examples/Error0004'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0252:
                  $ref: '#/components/examples/Error0252'
      security: []
components:
  parameters:
    ContentType:
      name: Content-Type
      in: header
      description: The type of media of the resource. Must be `application/json`.
      required: true
      example: application/json
      schema:
        type: string
    XApiKey:
      name: X-API-Key
      in: header
      description: >-
        The API Key for authentication. **This header is required for all
        endpoints except health checks**.
      required: true
      schema:
        type: string
    XRequestId:
      name: X-Request-Id
      in: header
      description: A unique identifier used to trace and track each request.
      required: false
      example: 019c96a0-10ce-75fc-a273-dc799079a99c
      schema:
        type: string
        format: uuid
  schemas:
    ListValidationsResponse:
      type: object
      description: Paginated list of transaction validations.
      properties:
        transactionValidations:
          type: array
          items:
            $ref: '#/components/schemas/TransactionValidation'
          description: List of transaction validation records.
        hasMore:
          type: boolean
          description: Whether there are more results available.
        nextCursor:
          type:
            - string
            - 'null'
          description: Cursor for fetching the next page. Null if no more results.
    ErrorFormat:
      type: object
      description: The response message error.
      required:
        - code
        - title
        - message
      properties:
        code:
          type: string
          description: A unique, stable identifier for the error.
        title:
          type: string
          description: A brief summary of the issue.
        message:
          type: string
          description: Detailed guidance for resolving the error.
        fields:
          type: object
          additionalProperties: true
          description: Additional information about the fields that caused the error.
    TransactionValidation:
      type: object
      description: Full transaction validation record.
      properties:
        validationId:
          type: string
          format: uuid
          description: Server-generated unique identifier for this validation record.
        requestId:
          type: string
          format: uuid
          description: Client-provided request identifier for correlation.
        transactionType:
          type: string
          enum:
            - CARD
            - WIRE
            - PIX
            - CRYPTO
          description: Type of transaction (payment method).
        subType:
          type: string
          description: Transaction subtype for additional context.
        amount:
          type: integer
          description: Transaction amount in cents (smallest currency unit).
        currency:
          type: string
          description: ISO 4217 currency code.
        transactionTimestamp:
          type: string
          format: date-time
          description: When the transaction occurred.
        decision:
          type: string
          enum:
            - ALLOW
            - DENY
            - REVIEW
          description: Validation decision.
        reason:
          type: string
          description: Human-readable reason for the decision.
        account:
          $ref: '#/components/schemas/AccountContext'
        segment:
          $ref: '#/components/schemas/SegmentContext'
        portfolio:
          $ref: '#/components/schemas/PortfolioContext'
        merchant:
          $ref: '#/components/schemas/MerchantContext'
        metadata:
          type: object
          additionalProperties: true
          description: Custom key-value pairs provided in the request.
        matchedRuleIds:
          type: array
          items:
            type: string
            format: uuid
          description: IDs of rules that matched and triggered the decision.
        evaluatedRuleIds:
          type: array
          items:
            type: string
            format: uuid
          description: IDs of all rules that were evaluated.
        limitUsageDetails:
          type: array
          items:
            $ref: '#/components/schemas/LimitUsageDetail'
          description: Details about each limit checked during validation.
        processingTimeMs:
          type: number
          format: double
          description: Processing time in milliseconds.
        totalRulesLoaded:
          type: integer
          description: Total number of rules loaded for evaluation.
        truncated:
          type: boolean
          description: Whether the response was truncated due to size limits.
        createdAt:
          type: string
          format: date-time
          description: When the validation record was created.
    AccountContext:
      type: object
      description: Account context for validation.
      required:
        - accountId
      properties:
        accountId:
          type: string
          format: uuid
          description: Account identifier (required).
        type:
          type: string
          description: Account type.
          enum:
            - checking
            - savings
            - credit
        status:
          type: string
          description: Account status.
          enum:
            - active
            - suspended
            - closed
        metadata:
          type: object
          additionalProperties: true
          description: Additional account attributes for rule evaluation.
    SegmentContext:
      type: object
      description: Segment context (optional). If provided, segmentId is required.
      properties:
        segmentId:
          type: string
          format: uuid
          description: Segment identifier (required if segment object provided).
        name:
          type: string
          description: Segment name for rule expressions.
        metadata:
          type: object
          additionalProperties: true
          description: Additional segment attributes for rule evaluation.
    PortfolioContext:
      type: object
      description: Portfolio context (optional). If provided, portfolioId is required.
      properties:
        portfolioId:
          type: string
          format: uuid
          description: Portfolio identifier (required if portfolio object provided).
        name:
          type: string
          description: Portfolio name for rule expressions.
        metadata:
          type: object
          additionalProperties: true
          description: Additional portfolio attributes for rule evaluation.
    MerchantContext:
      type: object
      description: >-
        Merchant context (optional, recommended for card transactions). If
        provided, merchantId is required.
      properties:
        merchantId:
          type: string
          format: uuid
          description: Merchant identifier (required if merchant object provided).
        name:
          type: string
          description: Merchant name.
        category:
          type: string
          description: Merchant Category Code (MCC). Must be a 4-digit code per ISO 18245.
          pattern: ^[0-9]{4}$
        country:
          type: string
          description: >-
            Merchant country. Must be ISO 3166-1 alpha-2 code (2 uppercase
            letters).
          pattern: ^[A-Z]{2}$
        metadata:
          type: object
          additionalProperties: true
          description: Additional merchant attributes for rule evaluation.
    LimitUsageDetail:
      type: object
      description: Details about a limit check during validation.
      properties:
        limitId:
          type: string
          format: uuid
          description: The limit that was checked.
        limitAmount:
          type: integer
          description: Total limit amount in cents.
        currentUsage:
          type: integer
          description: >-
            Projected usage after applying transaction. When exceeded, shows
            what usage would have been if allowed.
        exceeded:
          type: boolean
          description: >-
            Whether the limit was exceeded. When true, the counter was not
            incremented.
        period:
          type: string
          description: Limit period type.
          enum:
            - DAILY
            - WEEKLY
            - MONTHLY
            - CUSTOM
            - PER_TRANSACTION
        scope:
          type: string
          description: >-
            Human-readable scope (e.g., "account:uuid", "segment:uuid", or
            "global").
        attemptedAmount:
          type: integer
          description: Transaction amount being validated in cents.
  examples:
    Error0006:
      summary: Invalid Query Parameters
      value:
        code: TRC-0006
        title: Invalid Query Parameters
        message: >-
          One or more query parameters are invalid. Please verify the parameters
          and try again.
    Error0020:
      summary: Invalid Date Format
      value:
        code: TRC-0020
        title: Invalid Date Format
        message: >-
          The date must be in RFC3339 format with timezone (e.g.,
          2026-01-28T10:30:00Z). Date-only format is not accepted.
    Error0044:
      summary: Invalid Pagination Cursor
      value:
        code: TRC-0044
        title: Invalid Pagination Cursor
        message: >-
          The provided pagination cursor is invalid or expired. Please start a
          new query without a cursor.
    Error0045:
      summary: Sort Parameters Locked
      value:
        code: TRC-0045
        title: Sort Parameters Locked
        message: >-
          Cannot change sortBy or sortOrder when using a pagination cursor.
          Please start a new query to change sort parameters.
    Error0250:
      summary: Invalid Transaction Validation Filters
      value:
        code: TRC-0250
        title: Invalid Filters
        message: >-
          One or more transaction validation filters are invalid. Please verify
          the filter values and try again.
    Error0010:
      summary: API Key Missing
      value:
        code: TRC-0010
        title: API Key Missing
        message: >-
          A valid API Key must be provided in the X-API-Key header. Please
          include your API Key and try again.
    Error0011:
      summary: Invalid API Key
      value:
        code: TRC-0011
        title: Invalid API Key
        message: >-
          The provided API Key is invalid or expired. Please provide a valid API
          Key and try again.
    Error0004:
      summary: Internal Server Error
      value:
        code: TRC-0004
        title: Internal Server Error
        message: >-
          An unexpected error occurred. Please try again later or contact
          support if the issue persists.
    Error0252:
      summary: Query Timeout
      value:
        code: TRC-0252
        title: Gateway Timeout
        message: >-
          The query exceeded the allowed timeout. Please refine the filters to
          reduce the query scope.

````