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

# List compliance check findings

> Lists the findings of a check in order, with the invoice line, expected values and cited evidence as they were when the check ran. Later edits to the invoice, prices or alerts do not change them.



## OpenAPI

````yaml /openapi.json get /v1/compliance-checks/{id}/findings
openapi: 3.1.0
info:
  title: Watchdog API
  version: 1.0.0
  description: >-
    The Watchdog API is served from https://api.watchdog.no. Request bodies are
    limited to 2 MiB unless an endpoint says otherwise. Files are uploaded
    directly to storage, not through the API.
servers:
  - url: https://api.watchdog.no
    description: Watchdog API
security: []
paths:
  /v1/compliance-checks/{id}/findings:
    get:
      tags:
        - Compliance checks
      summary: List compliance check findings
      description: >-
        Lists the findings of a check in order, with the invoice line, expected
        values and cited evidence as they were when the check ran. Later edits
        to the invoice, prices or alerts do not change them.
      operationId: listComplianceCheckFindings
      parameters:
        - name: X-Organization-Id
          in: header
          required: false
          schema:
            type: string
          description: >-
            The organization to act in. Required for personal API keys; list the
            organizations you can access with GET /v1/organizations.
        - name: fields
          in: query
          required: false
          schema:
            type: string
          description: >-
            Return only these fields of each row, comma-separated; use dots for
            nested fields, such as confidence.level. id is always returned.
            Fields: id, alert_id, title, explanation, correction_type, currency,
            impact_amount, confidence, questions, invoice_line, invoiced,
            expected, price_items, citations, position.
        - schema:
            type: string
            format: uuid
          required: true
          name: id
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 50
            description: Maximum number of results per page.
          required: false
          description: Maximum number of results per page.
          name: limit
          in: query
        - schema:
            type: string
            maxLength: 4096
            description: >-
              Opaque next_cursor from the previous page. Keep the same filters
              and sort; omit for the first page.
          required: false
          description: >-
            Opaque next_cursor from the previous page. Keep the same filters and
            sort; omit for the first page.
          name: cursor
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: >-
              true adds context_before and context_after to document citations:
              the text around each quote, used to locate it in the document.
          required: false
          description: >-
            true adds context_before and context_after to document citations:
            the text around each quote, used to locate it in the document.
          name: citation_context
          in: query
      responses:
        '200':
          description: A bounded page of findings.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ComplianceCheckFinding'
                    maxItems: 1000
                  next_cursor:
                    type:
                      - string
                      - 'null'
                required:
                  - data
                  - next_cursor
        '400':
          description: >-
            The request is invalid. details lists up to 20 field errors. Request
            bodies are limited to 2 MiB.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_validation_error'
              example:
                error:
                  code: validation_error
                  message: >-
                    The request is invalid. details lists up to 20 field errors.
                    Request bodies are limited to 2 MiB.
                  request_id: req_example
        '401':
          description: The bearer token is missing or invalid.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
            WWW-Authenticate:
              schema:
                type: string
              required: false
              description: Bearer authentication challenge, when supplied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_invalid_token'
              example:
                error:
                  code: invalid_token
                  message: The bearer token is missing or invalid.
                  request_id: req_example
        '403':
          description: >-
            Access denied. The error code says why: forbidden, token_disabled,
            organization_required, insufficient_role or mfa_required.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Error_forbidden_token_disabled_organization_required_insufficient_role_mfa_required
              example:
                error:
                  code: forbidden
                  message: >-
                    Access denied. The error code says why: forbidden,
                    token_disabled, organization_required, insufficient_role or
                    mfa_required.
                  request_id: req_example
        '404':
          description: The resource does not exist in the current organization.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_not_found'
              example:
                error:
                  code: not_found
                  message: The resource does not exist in the current organization.
                  request_id: req_example
        '429':
          description: Too many requests. Wait for the Retry-After delay before retrying.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
            Retry-After:
              schema:
                type: string
                example: '60'
              required: true
              description: Seconds to wait before retrying the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_rate_limit_exceeded'
              example:
                error:
                  code: rate_limit_exceeded
                  message: >-
                    Too many requests. Wait for the Retry-After delay before
                    retrying.
                  request_id: req_example
        '500':
          description: >-
            Unexpected server failure. Include the request ID when contacting
            support.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_internal_error'
              example:
                error:
                  code: internal_error
                  message: >-
                    Unexpected server failure. Include the request ID when
                    contacting support.
                  request_id: req_example
        '503':
          description: >-
            Temporarily unavailable. Retry after the Retry-After delay, when
            provided.
          headers:
            X-Request-Id:
              schema:
                type: string
              required: true
              description: >-
                Request ID, also included in error bodies. Include it when
                contacting support.
            Cache-Control:
              schema:
                type: string
                enum:
                  - private, no-store
                  - private, no-store, no-transform
              required: false
              description: API responses are private and must not be cached.
            X-RateLimit-Limit:
              schema:
                type: string
                example: '500'
              required: false
              description: >-
                Requests allowed per minute for this credential, or failed API
                key attempts allowed per minute from this IP address.
            Retry-After:
              schema:
                type: string
                example: '60'
              required: true
              description: Seconds to wait before retrying the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_service_unavailable'
              example:
                error:
                  code: service_unavailable
                  message: >-
                    Temporarily unavailable. Retry after the Retry-After delay,
                    when provided.
                  request_id: req_example
      security:
        - ApiKeyBearer: []
components:
  schemas:
    ComplianceCheckFinding:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID of the finding.
        alert_id:
          type: string
          format: uuid
          description: >-
            The alert created from this finding. A later check may have replaced
            it.
        title:
          type:
            - string
            - 'null'
        explanation:
          type:
            - string
            - 'null'
        correction_type:
          type: string
          enum:
            - modify_item
            - modify_invoice
            - add_item
        currency:
          type: string
        impact_amount:
          type:
            - string
            - 'null'
        confidence:
          type: object
          properties:
            level:
              type:
                - string
                - 'null'
            reason:
              type:
                - string
                - 'null'
          required:
            - level
            - reason
        questions:
          type: array
          items:
            type: string
        invoice_line:
          type:
            - object
            - 'null'
          properties:
            id:
              type: string
              format: uuid
            line_number:
              type:
                - integer
                - 'null'
            product_code:
              type:
                - string
                - 'null'
            description:
              type:
                - string
                - 'null'
            unit:
              type:
                - string
                - 'null'
          required:
            - id
            - line_number
            - product_code
            - description
            - unit
        invoiced:
          type: object
          properties:
            base_price:
              type:
                - string
                - 'null'
            net_price:
              type:
                - string
                - 'null'
            quantity:
              type:
                - string
                - 'null'
            discount:
              type:
                - string
                - 'null'
            surcharge:
              type:
                - string
                - 'null'
            total:
              type:
                - string
                - 'null'
          required:
            - base_price
            - net_price
            - quantity
            - discount
            - surcharge
            - total
        expected:
          type: object
          properties:
            base_price:
              type:
                - string
                - 'null'
            quantity:
              type:
                - string
                - 'null'
            discount:
              type:
                - string
                - 'null'
            surcharge:
              type:
                - string
                - 'null'
            adjustment_uplift:
              type:
                - string
                - 'null'
            net_price:
              type:
                - string
                - 'null'
            total:
              type:
                - string
                - 'null'
            price_explanation:
              type:
                - string
                - 'null'
            adjustment_explanation:
              type:
                - string
                - 'null'
            product_code:
              type:
                - string
                - 'null'
            description:
              type:
                - string
                - 'null'
            unit:
              type:
                - string
                - 'null'
          required:
            - base_price
            - quantity
            - discount
            - surcharge
            - adjustment_uplift
            - net_price
            - total
            - price_explanation
            - adjustment_explanation
            - product_code
            - description
            - unit
        price_items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              item_no:
                type: integer
              product_code:
                type:
                  - string
                  - 'null'
              description:
                type:
                  - string
                  - 'null'
              unit:
                type:
                  - string
                  - 'null'
              currency:
                type:
                  - string
                  - 'null'
              unit_price:
                type:
                  - string
                  - 'null'
              discount_rate:
                type:
                  - string
                  - 'null'
              price_type:
                type:
                  - string
                  - 'null'
              rate_fraction:
                type:
                  - string
                  - 'null'
              rate_basis:
                type:
                  - string
                  - 'null'
              surcharge_rate:
                type:
                  - string
                  - 'null'
              applies_to:
                type:
                  - string
                  - 'null'
              calculation_rules:
                type:
                  - string
                  - 'null'
              valid_from:
                type:
                  - string
                  - 'null'
              valid_until:
                type:
                  - string
                  - 'null'
              conversion:
                type:
                  - object
                  - 'null'
                properties:
                  rate:
                    type: string
                  date:
                    type:
                      - string
                      - 'null'
                  source:
                    type: string
                    enum:
                      - invoice
                      - norges_bank
                default: null
                required:
                  - rate
                  - date
                  - source
            required:
              - id
              - item_no
              - product_code
              - description
              - unit
              - currency
              - unit_price
              - discount_rate
              - price_type
              - rate_fraction
              - rate_basis
              - surcharge_rate
              - applies_to
              - calculation_rules
              - valid_from
              - valid_until
        citations:
          type: array
          items:
            anyOf:
              - type: object
                properties:
                  source_ref:
                    type: integer
                    exclusiveMinimum: 0
                  citation_id:
                    type:
                      - string
                      - 'null'
                    format: uuid
                  available:
                    type: boolean
                    enum:
                      - true
                  source_type:
                    type: string
                    enum:
                      - document
                  document_id:
                    type: string
                    format: uuid
                  document_name:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                  section_title:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                  quote:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                    description: >-
                      The cited text as found in the document. Null when only
                      context_before and context_after locate it.
                  context_before:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                    description: Only with citation_context=true.
                  context_after:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                    description: Only with citation_context=true.
                  verification:
                    type:
                      - string
                      - 'null'
                    enum:
                      - verified
                      - corrected
                      - recovered
                      - unverified
                      - null
                    description: >-
                      verified: the quote was found in the document. corrected:
                      found after fixing the document or wording. recovered:
                      located by its context only. unverified: not found.
                  original_quote:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                    description: >-
                      The check's wording when the quote was not found verbatim
                      (quote is null); null otherwise.
                required:
                  - source_ref
                  - citation_id
                  - available
                  - source_type
                  - document_id
                  - document_name
                  - section_title
                  - quote
                  - verification
                  - original_quote
              - type: object
                properties:
                  source_ref:
                    type: integer
                    exclusiveMinimum: 0
                  citation_id:
                    type:
                      - string
                      - 'null'
                    format: uuid
                  available:
                    type: boolean
                    enum:
                      - true
                  source_type:
                    type: string
                    enum:
                      - web
                  url:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                  title:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                  quote:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                  text:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                  cited_at:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                required:
                  - source_ref
                  - citation_id
                  - available
                  - source_type
                  - url
                  - title
                  - quote
                  - text
                  - cited_at
              - type: object
                properties:
                  source_ref:
                    type: integer
                    exclusiveMinimum: 0
                  citation_id:
                    type:
                      - string
                      - 'null'
                    format: uuid
                  available:
                    type: boolean
                    enum:
                      - true
                  source_type:
                    type: string
                    enum:
                      - agreement_items
                  item_ids:
                    type: array
                    items:
                      type: string
                      format: uuid
                required:
                  - source_ref
                  - citation_id
                  - available
                  - source_type
                  - item_ids
              - type: object
                properties:
                  source_ref:
                    type: integer
                    exclusiveMinimum: 0
                  citation_id:
                    type:
                      - string
                      - 'null'
                    format: uuid
                  available:
                    type: boolean
                    enum:
                      - true
                  source_type:
                    type: string
                    enum:
                      - user_context
                  text:
                    type:
                      - string
                      - 'null'
                    maxLength: 10000
                required:
                  - source_ref
                  - citation_id
                  - available
                  - source_type
                  - text
              - type: object
                properties:
                  source_ref:
                    type:
                      - integer
                      - 'null'
                    exclusiveMinimum: 0
                  citation_id:
                    type:
                      - string
                      - 'null'
                    format: uuid
                  source_type:
                    type:
                      - string
                      - 'null'
                  available:
                    type: boolean
                    enum:
                      - false
                  reason:
                    type: string
                    enum:
                      - source_unavailable
                required:
                  - source_ref
                  - citation_id
                  - source_type
                  - available
                  - reason
          description: Cited evidence, with exact excerpts and locations.
        position:
          type: integer
          minimum: 0
          description: Order of the finding within its check.
      required:
        - id
        - alert_id
        - title
        - explanation
        - correction_type
        - currency
        - impact_amount
        - confidence
        - questions
        - invoice_line
        - invoiced
        - expected
        - price_items
        - citations
        - position
    Error_validation_error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_error
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
    Error_invalid_token:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - invalid_token
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
    Error_forbidden_token_disabled_organization_required_insufficient_role_mfa_required:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - forbidden
                - token_disabled
                - organization_required
                - insufficient_role
                - mfa_required
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
    Error_not_found:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - not_found
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
    Error_rate_limit_exceeded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - rate_limit_exceeded
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
    Error_internal_error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - internal_error
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
    Error_service_unavailable:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - service_unavailable
            message:
              type: string
            request_id:
              type: string
            description:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - field
                  - message
              maxItems: 20
            workflow_run_id:
              type: string
              format: uuid
            import_id:
              type: string
              format: uuid
            existing_party:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - supplier
                    - recipient
                id:
                  type: string
                  format: uuid
              required:
                - type
                - id
          required:
            - code
            - message
            - request_id
      required:
        - error
  securitySchemes:
    ApiKeyBearer:
      type: http
      scheme: bearer
      description: >-
        Personal API key sent as a bearer token, together with
        X-Organization-Id. The key must have at least the access level the
        endpoint requires (read, write or admin).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.