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

# Month-end MRR snapshots

> Every month with a month-end MRR snapshot, newest first, with its versions (newest first): when and by whom it was taken, the reason of an explicit re-snapshot and the checksum of the copied figures. Version 1 is taken automatically on the 1st of the following month at 05:00 in the time zone of the organisation.

Required permission: `analytics:read`.



## OpenAPI

````yaml assets/openapi-v2-finance.json get /api/analytics/finance/snapshots
openapi: 3.0.3
info:
  title: Fynn Finanzberichte API
  version: 2026-09
  description: >-
    The finance reporting API returns the same figures as the finance pages of
    the app: MRR and its movements, Accounted MRR, cash, receivables, revenue,
    the customer base, month-end snapshots with their restatements and the Excel
    books. Every amount is an exact decimal string in one currency, never
    converted and never a float. Months are `YYYY-MM` in the time zone of the
    organisation.


    Authenticate every request with an API token of your organisation
    (`Authorization: Bearer api_...`). Reading needs `analytics:read`, taking a
    snapshot and changing the settings `analytics:write`. Every route also needs
    the finance reports to be enabled for the organisation (feature flag
    `analytics.advanced`); otherwise it answers 403 `feature-not-available`.
servers:
  - url: https://coreapi.io
    description: Production
  - url: https://preview.coreapi.io
    description: Sandbox
security:
  - ApiToken: []
tags:
  - name: Datensätze
    description: Page datasets and the MRR table.
  - name: Drill-downs und Hinweise
    description: Lines behind a cell and data-quality findings.
  - name: Snapshots
    description: Month-end snapshots and their versions.
  - name: Excel-Exporte
    description: Excel books of the finance pages.
  - name: Definitionen
    description: The versioned definitions catalogue with its changelog.
  - name: Einstellungen
    description: Organisation-wide settings of the finance figures.
paths:
  /api/analytics/finance/snapshots:
    get:
      tags:
        - Snapshots
      summary: Month-end MRR snapshots
      description: >-
        Every month with a month-end MRR snapshot, newest first, with its
        versions (newest first): when and by whom it was taken, the reason of an
        explicit re-snapshot and the checksum of the copied figures. Version 1
        is taken automatically on the 1st of the following month at 05:00 in the
        time zone of the organisation.


        Required permission: `analytics:read`.
      operationId: listSnapshots
      responses:
        '200':
          description: The months and versions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SnapshotListView'
        '401':
          description: Missing or invalid authentication.
        '403':
          description: >-
            Missing permission `analytics:read` (`FRAMEWORK__ACCESS_DENIED`), or
            the finance reports are not enabled for the organisation (feature
            flag `analytics.advanced`, `type`
            https://fynn.dev/problems/feature-not-available).
          content:
            application/problem+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Problem'
                  - $ref: '#/components/schemas/FeatureNotAvailableProblem'
      security:
        - ApiToken: []
components:
  schemas:
    SnapshotListView:
      description: Months with month-end MRR snapshots.
      properties:
        data:
          description: Months, newest first.
          type: array
          items:
            $ref: '#/components/schemas/SnapshotMonthView'
      type: object
    Problem:
      type: object
      description: >-
        Error body (problem+json). `type` is the error key, e.g.
        `ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED`; further keys carry
        the parameters of the error.
      properties:
        status:
          type: integer
          example: 409
        type:
          type: string
          example: ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED
        title:
          type: string
          example: An error occurred
        detail:
          type: string
          description: German sentence that can be shown to the user.
      required:
        - status
        - type
        - title
        - detail
      additionalProperties: true
    FeatureNotAvailableProblem:
      type: object
      description: >-
        403 body when the finance reports are not enabled for the organisation
        (feature flag `analytics.advanced`).
      properties:
        type:
          type: string
          enum:
            - https://fynn.dev/problems/feature-not-available
        title:
          type: string
          example: Feature not available
        detail:
          type: string
          example: >-
            The requested feature is not available. Please contact customer
            support.
        featureFlags:
          type: array
          items:
            type: string
          example:
            - analytics.advanced
      required:
        - type
        - title
        - detail
        - featureFlags
      additionalProperties: true
    SnapshotMonthView:
      description: The snapshot versions of one month.
      properties:
        month:
          description: Month (YYYY-MM).
          type: string
        versions:
          description: Versions, newest first.
          type: array
          items:
            $ref: '#/components/schemas/SnapshotView'
      type: object
    SnapshotView:
      description: One version of a month-end MRR snapshot.
      properties:
        id:
          description: Id.
          type: string
        month:
          description: Month (YYYY-MM).
          type: string
          example: 2026-08
        version:
          description: >-
            Version (1 = the automatic snapshot on the 1st of the following
            month).
          type: integer
          example: 1
        takenAt:
          description: When it was taken.
          type: string
          format: date-time
        takenBy:
          description: Name of the user who took it; null for the automatic snapshot.
          type: string
          nullable: true
        reason:
          description: Reason of an explicit re-snapshot.
          type: string
          nullable: true
        checksum:
          description: SHA-256 over the copied rows.
          type: string
        builtAt:
          description: Calculation the snapshot was copied from.
          type: string
          format: date-time
        alertedAt:
          description: When its restatements first exceeded the alert share.
          type: string
          format: date-time
          nullable: true
        latest:
          description: Whether this is the newest version of the month.
          type: boolean
        definitionsVersion:
          description: >-
            Version of the definitions catalogue the snapshot was taken under
            (`v1` for snapshots taken before 28.09.2026).
          type: string
          example: v2
      type: object
  securitySchemes:
    ApiToken:
      type: http
      scheme: bearer
      description: >-
        API token of the organisation. Send it as Authorization: Bearer api_...
        The token is bound to exactly one organisation.

````