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

# Total overcharged alert amounts per supplier, agreement, topic or month

> Groups matching alerts by agreement, supplier, topic, claim, verdict or invoice issue month and returns counts and impact totals for each group, such as the overcharged amount per supplier or per month. Pass a group's key to the matching filter (agreement_ids, supplier_ids, topic_ids, claim_ids or verdicts, or issued_from and issued_through for a month) to list its alerts or its subgroups.



## OpenAPI

````yaml /openapi.json get /v1/alerts/groups
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/alerts/groups:
    get:
      tags:
        - Alerts
      summary: Total overcharged alert amounts per supplier, agreement, topic or month
      description: >-
        Groups matching alerts by agreement, supplier, topic, claim, verdict or
        invoice issue month and returns counts and impact totals for each group,
        such as the overcharged amount per supplier or per month. Pass a group's
        key to the matching filter (agreement_ids, supplier_ids, topic_ids,
        claim_ids or verdicts, or issued_from and issued_through for a month) to
        list its alerts or its subgroups.
      operationId: listAlertGroups
      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 counts.pending. key is always returned.
            Fields: total_count, invoice_count, counts, currencies,
            organization_currency, group_by, key, resource.
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: >-
              Only records matched by the filters of teams you belong to. Teams
              combine with OR; other filters combine with AND. Cannot be
              combined with team_ids.
          required: false
          description: >-
            Only records matched by the filters of teams you belong to. Teams
            combine with OR; other filters combine with AND. Cannot be combined
            with team_ids.
          name: mine
          in: query
        - schema:
            type: string
            description: >-
              Only records matched by the filters of these teams: at most 50,
              comma-separated in a query string or an array in a JSON body.
              Teams combine with OR. Unknown teams return 404.
          required: false
          description: >-
            Only records matched by the filters of these teams: at most 50,
            comma-separated in a query string or an array in a JSON body. Teams
            combine with OR. Unknown teams return 404.
          name: team_ids
          in: query
        - schema:
            type: string
            description: >-
              Match alerts in any of these claims; null matches alerts in no
              claim.
          required: false
          description: >-
            Match alerts in any of these claims; null matches alerts in no
            claim.
          name: claim_ids
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: >-
              Use false to select alerts that are not currently attached to any
              claim.
          required: false
          description: >-
            Use false to select alerts that are not currently attached to any
            claim.
          name: has_claim
          in: query
        - schema:
            type: string
            description: >-
              Match alerts whose current claim has any of these statuses:
              pending, in_progress, completed, cancelled.
          required: false
          description: >-
            Match alerts whose current claim has any of these statuses: pending,
            in_progress, completed, cancelled.
          name: claim_statuses
          in: query
        - schema:
            type: string
            enum:
              - and
              - or
            description: >-
              Combine invoice, agreement, supplier, recipient and topic ID
              filters with AND (default) or OR. Tenant, validity, search and
              other filters always apply.
          required: false
          description: >-
            Combine invoice, agreement, supplier, recipient and topic ID filters
            with AND (default) or OR. Tenant, validity, search and other filters
            always apply.
          name: join_operator
          in: query
        - schema:
            type: string
            enum:
              - is
              - is_not
          required: false
          name: invoice_operator
          in: query
        - schema:
            type: string
            enum:
              - is
              - is_not
          required: false
          name: agreement_operator
          in: query
        - schema:
            type: string
            enum:
              - is
              - is_not
          required: false
          name: supplier_operator
          in: query
        - schema:
            type: string
            enum:
              - is
              - is_not
          required: false
          name: recipient_operator
          in: query
        - schema:
            type: string
            enum:
              - is
              - is_not
          required: false
          name: topic_operator
          in: query
        - schema:
            type: string
            description: Comma-separated, at most 50 values.
          required: false
          description: Comma-separated, at most 50 values.
          name: invoice_ids
          in: query
        - schema:
            type: string
            description: Comma-separated, at most 50 values.
          required: false
          description: Comma-separated, at most 50 values.
          name: agreement_ids
          in: query
        - schema:
            type: string
            description: >-
              Match alerts whose agreement has any of these statuses: draft,
              active, archived.
          required: false
          description: >-
            Match alerts whose agreement has any of these statuses: draft,
            active, archived.
          name: agreement_statuses
          in: query
        - schema:
            type: string
            description: Comma-separated, at most 50 values.
          required: false
          description: Comma-separated, at most 50 values.
          name: supplier_ids
          in: query
        - schema:
            type: string
            description: Comma-separated, at most 50 values.
          required: false
          description: Comma-separated, at most 50 values.
          name: recipient_ids
          in: query
        - schema:
            type: string
            description: Comma-separated, at most 50 values.
          required: false
          description: Comma-separated, at most 50 values.
          name: tag_ids
          in: query
        - schema:
            type: string
            description: >-
              Match alerts in any selected topic; null matches uncategorized
              alerts.
          required: false
          description: >-
            Match alerts in any selected topic; null matches uncategorized
            alerts.
          name: topic_ids
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Use false to select uncategorized alerts.
          required: false
          description: Use false to select uncategorized alerts.
          name: has_topic
          in: query
        - schema:
            type: string
            description: >-
              Match alerts with any of these verdicts, whatever their credit:
              pending, accepted, dismissed. pending means no decision yet.
          required: false
          description: >-
            Match alerts with any of these verdicts, whatever their credit:
            pending, accepted, dismissed. pending means no decision yet.
          name: verdicts
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Match alerts with or without a credit, regardless of verdict.
          required: false
          description: Match alerts with or without a credit, regardless of verdict.
          name: credited
          in: query
        - schema:
            type: string
            description: >-
              Match credit provenance: credit_note, user. null selects alerts
              without a credit.
          required: false
          description: >-
            Match credit provenance: credit_note, user. null selects alerts
            without a credit.
          name: credit_sources
          in: query
        - schema:
            type: string
            description: >-
              Match any listed confidence level: certain, uncertain. null
              matches alerts without one.
          required: false
          description: >-
            Match any listed confidence level: certain, uncertain. null matches
            alerts without one.
          name: confidence_levels
          in: query
        - schema:
            type: string
            description: Comma-separated, at most 50 values.
          required: false
          description: Comma-separated, at most 50 values.
          name: currency_codes
          in: query
        - schema:
            type: string
            description: >-
              Match any of these correction types: modify_item, modify_invoice,
              add_item.
          required: false
          description: >-
            Match any of these correction types: modify_item, modify_invoice,
            add_item.
          name: correction_types
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: >-
              true matches alerts whose agreement or invoice changed after the
              check that found them; false matches alerts whose inputs are
              unchanged. Alerts that do not record what they assessed match
              neither.
          required: false
          description: >-
            true matches alerts whose agreement or invoice changed after the
            check that found them; false matches alerts whose inputs are
            unchanged. Alerts that do not record what they assessed match
            neither.
          name: changed_since_check
          in: query
        - schema:
            type: string
            enum:
              - live
              - invalidated
              - all
            description: >-
              live (default) returns alerts that count; invalidated returns
              alerts that stopped counting, for example because their invoice no
              longer matches the agreement. Alerts in claims named by claim_ids
              are included either way.
          required: false
          description: >-
            live (default) returns alerts that count; invalidated returns alerts
            that stopped counting, for example because their invoice no longer
            matches the agreement. Alerts in claims named by claim_ids are
            included either way.
          name: validity
          in: query
        - schema:
            type: string
            maxLength: 100
            pattern: ^-?\d+(?:\.\d+)?$
            description: >-
              Minimum impact in the organization currency, inclusive. Alerts
              without an impact never match.
          required: false
          description: >-
            Minimum impact in the organization currency, inclusive. Alerts
            without an impact never match.
          name: impact_min
          in: query
        - schema:
            type: string
            maxLength: 100
            pattern: ^-?\d+(?:\.\d+)?$
            description: >-
              Maximum impact in the organization currency, inclusive. Alerts
              without an impact never match.
          required: false
          description: >-
            Maximum impact in the organization currency, inclusive. Alerts
            without an impact never match.
          name: impact_max
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: Invoice issued on or after this date.
          required: false
          description: Invoice issued on or after this date.
          name: issued_from
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: Invoice issued on or before this date.
          required: false
          description: Invoice issued on or before this date.
          name: issued_through
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: >-
              Created on or after this calendar date in the organization's
              timezone.
          required: false
          description: >-
            Created on or after this calendar date in the organization's
            timezone.
          name: created_from
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            description: >-
              Created on or before this calendar date in the organization's
              timezone.
          required: false
          description: >-
            Created on or before this calendar date in the organization's
            timezone.
          name: created_through
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 200
            description: >-
              Case-insensitive search across alert, invoice, supplier, agreement
              and topic text. A UUID matches the alert, invoice, supplier or
              agreement ID.
          required: false
          description: >-
            Case-insensitive search across alert, invoice, supplier, agreement
            and topic text. A UUID matches the alert, invoice, supplier or
            agreement ID.
          name: search
          in: query
        - 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'
            default: 'false'
            description: Also count distinct invoices. Slower on large selections.
          required: false
          description: Also count distinct invoices. Slower on large selections.
          name: include_invoice_count
          in: query
        - schema:
            type: string
            enum:
              - agreement
              - supplier
              - topic
              - claim
              - verdict
              - month
          required: true
          name: group_by
          in: query
        - schema:
            type: string
            enum:
              - impact_amount
              - total_count
              - title
              - key
            default: impact_amount
            description: >-
              impact_amount sorts by organization-currency impact. key sorts by
              the group key, so months in calendar order.
          required: false
          description: >-
            impact_amount sorts by organization-currency impact. key sorts by
            the group key, so months in calendar order.
          name: sort
          in: query
        - schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
          required: false
          name: direction
          in: query
      responses:
        '200':
          description: >-
            A page of alert groups with verdict and credit counts and totals per
            currency.
          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/AlertGroup'
                    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
        '409':
          description: >-
            One or more selected teams have invalid saved filter rules. Update
            the team filters 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.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_conflict'
              example:
                error:
                  code: conflict
                  message: >-
                    One or more selected teams have invalid saved filter rules.
                    Update the team filters before retrying.
                  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:
    AlertGroup:
      allOf:
        - $ref: '#/components/schemas/AlertMetrics'
        - type: object
          properties:
            group_by:
              type: string
              enum:
                - agreement
                - supplier
                - topic
                - claim
                - verdict
                - month
            key:
              type:
                - string
                - 'null'
              description: >-
                The group's filter value: an agreement, supplier, topic or claim
                ID, a verdict, or the invoice issue month as YYYY-MM (select it
                with issued_from and issued_through). Null means no supplier,
                topic, claim or issue date.
            resource:
              type:
                - object
                - 'null'
              properties:
                id:
                  type: string
                  format: uuid
                title:
                  type:
                    - string
                    - 'null'
              required:
                - id
                - title
              description: >-
                The agreement, supplier, topic or claim of the group, with its
                current title or name. Null for verdict and month groups, and
                for alerts without one.
          required:
            - group_by
            - key
            - resource
    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_conflict:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - conflict
            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
    AlertMetrics:
      type: object
      properties:
        total_count:
          type: integer
        invoice_count:
          type:
            - integer
            - 'null'
          description: >-
            Distinct invoices among the matching alerts. Null unless
            include_invoice_count is true.
        counts:
          type: object
          properties:
            pending:
              type: object
              properties:
                credited:
                  type: integer
                  minimum: 0
                uncredited:
                  type: integer
                  minimum: 0
              required:
                - credited
                - uncredited
            accepted:
              type: object
              properties:
                credited:
                  type: integer
                  minimum: 0
                uncredited:
                  type: integer
                  minimum: 0
              required:
                - credited
                - uncredited
            dismissed:
              type: object
              properties:
                credited:
                  type: integer
                  minimum: 0
                uncredited:
                  type: integer
                  minimum: 0
              required:
                - credited
                - uncredited
          required:
            - pending
            - accepted
            - dismissed
          description: Alerts by verdict, each split into credited and uncredited alerts.
        currencies:
          type: array
          items:
            type: object
            properties:
              currency_code:
                type: string
              alert_count:
                type: integer
              impact_amount:
                type: string
                pattern: ^-?\d+(?:\.\d+)?$
                description: >-
                  Sum of the alerts’ impacts; alerts without an impact add
                  nothing.
              by_verdict:
                type: object
                properties:
                  pending:
                    type: object
                    properties:
                      credited:
                        type: object
                        properties:
                          alert_count:
                            type: integer
                          impact_amount:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                            description: >-
                              Sum of the alerts’ impacts; alerts without an
                              impact add nothing.
                        required:
                          - alert_count
                          - impact_amount
                      uncredited:
                        type: object
                        properties:
                          alert_count:
                            type: integer
                          impact_amount:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                            description: >-
                              Sum of the alerts’ impacts; alerts without an
                              impact add nothing.
                        required:
                          - alert_count
                          - impact_amount
                    required:
                      - credited
                      - uncredited
                  accepted:
                    type: object
                    properties:
                      credited:
                        type: object
                        properties:
                          alert_count:
                            type: integer
                          impact_amount:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                            description: >-
                              Sum of the alerts’ impacts; alerts without an
                              impact add nothing.
                        required:
                          - alert_count
                          - impact_amount
                      uncredited:
                        type: object
                        properties:
                          alert_count:
                            type: integer
                          impact_amount:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                            description: >-
                              Sum of the alerts’ impacts; alerts without an
                              impact add nothing.
                        required:
                          - alert_count
                          - impact_amount
                    required:
                      - credited
                      - uncredited
                  dismissed:
                    type: object
                    properties:
                      credited:
                        type: object
                        properties:
                          alert_count:
                            type: integer
                          impact_amount:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                            description: >-
                              Sum of the alerts’ impacts; alerts without an
                              impact add nothing.
                        required:
                          - alert_count
                          - impact_amount
                      uncredited:
                        type: object
                        properties:
                          alert_count:
                            type: integer
                          impact_amount:
                            type: string
                            pattern: ^-?\d+(?:\.\d+)?$
                            description: >-
                              Sum of the alerts’ impacts; alerts without an
                              impact add nothing.
                        required:
                          - alert_count
                          - impact_amount
                    required:
                      - credited
                      - uncredited
                required:
                  - pending
                  - accepted
                  - dismissed
                description: >-
                  Impact in the original currency by verdict, each split into
                  credited and uncredited alerts.
            required:
              - currency_code
              - alert_count
              - impact_amount
              - by_verdict
        organization_currency:
          type: object
          properties:
            currency_code:
              type: string
              description: The organization's reporting currency from its settings.
            impact_amount:
              type: string
              pattern: ^-?\d+(?:\.\d+)?$
            by_verdict:
              type: object
              properties:
                pending:
                  type: object
                  properties:
                    credited:
                      type: object
                      properties:
                        alert_count:
                          type: integer
                        impact_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Sum of the alerts’ impacts; alerts without an impact
                            add nothing.
                      required:
                        - alert_count
                        - impact_amount
                    uncredited:
                      type: object
                      properties:
                        alert_count:
                          type: integer
                        impact_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Sum of the alerts’ impacts; alerts without an impact
                            add nothing.
                      required:
                        - alert_count
                        - impact_amount
                  required:
                    - credited
                    - uncredited
                accepted:
                  type: object
                  properties:
                    credited:
                      type: object
                      properties:
                        alert_count:
                          type: integer
                        impact_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Sum of the alerts’ impacts; alerts without an impact
                            add nothing.
                      required:
                        - alert_count
                        - impact_amount
                    uncredited:
                      type: object
                      properties:
                        alert_count:
                          type: integer
                        impact_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Sum of the alerts’ impacts; alerts without an impact
                            add nothing.
                      required:
                        - alert_count
                        - impact_amount
                  required:
                    - credited
                    - uncredited
                dismissed:
                  type: object
                  properties:
                    credited:
                      type: object
                      properties:
                        alert_count:
                          type: integer
                        impact_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Sum of the alerts’ impacts; alerts without an impact
                            add nothing.
                      required:
                        - alert_count
                        - impact_amount
                    uncredited:
                      type: object
                      properties:
                        alert_count:
                          type: integer
                        impact_amount:
                          type: string
                          pattern: ^-?\d+(?:\.\d+)?$
                          description: >-
                            Sum of the alerts’ impacts; alerts without an impact
                            add nothing.
                      required:
                        - alert_count
                        - impact_amount
                  required:
                    - credited
                    - uncredited
              required:
                - pending
                - accepted
                - dismissed
              description: >-
                Counts and impact by verdict, each split into credited and
                uncredited alerts.
          required:
            - currency_code
            - impact_amount
            - by_verdict
          description: >-
            Impact in the organization currency: the sum of the alerts’
            converted impacts.
      required:
        - total_count
        - invoice_count
        - counts
        - currencies
        - organization_currency
  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.