Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (meta.asOf).
Narrow to these products (MRR and non-recurring revenue; cash has no product).
Antwort
The table.
The MRR financials table: one value per row and month. Money values are objects with an exact decimal amount (two places) and currency; rates are exact decimal strings with six places ("0.001600" = 0.16 %). Contraction and lost are unsigned amounts (they lower MRR); reason amounts are signed.
Series per row key: one_off (Net (gross − tax, after position discounts) of the one-off positions of the documents finalized in the month: one-time prices of subscription items, manual positions, setup fees, and discounts without a parent position (dunning fees are other operating income, not revenue); credit notes and cancellations count negative.), variable (Net (gross − tax, after position discounts) of the usage-based positions of the documents finalized in the month: usage quantities, metered measurements and percentage prices; credit notes and cancellations count negative.), mrr_bop, mrr_eop (MRR at the end of the previous / this month), accounted_mrr ("Accounted MRR": the recurring invoice positions' shares of the month by their service period, 30/360; null for a snapshot copy), billing_gap ("Differenz Vertrag zu Rechnung": mrr_eop − accounted_mrr, its causes under reasons.billing_gap), new, expansion, contraction, lost, resurrecting (movements), arr_eop (MRR × 12), revenue_churn_rate ((contraction + lost) / BoP), mom_growth ((EoP − BoP) / BoP), cash_collected ("Zahlungseingang") and its split by the invoice the money pays, adding up to it: cash_collected_this_month (invoices finalized in the same month), cash_collected_other_months (invoices of other months), cash_collected_unassigned (no finalized invoice: top-ups, prepayments, the part above the gross of an overpaid invoice), cash_collected_refund_returned ("Erstattung zurückgekommen": a negative refund matched from the bank account), cash_refunded ("Zahlungsausgang": refunds, chargebacks, payouts and return debit fees) and its split by kind, adding up to it: cash_refunded_refund ("Erstattungen"), cash_refunded_chargeback ("Rücklastschriften"), cash_refunded_payout ("Auszahlungen"), cash_refunded_return_fee ("Rücklastschrift-Gebühren": the bank fee of a return debit without a return case, not part of the invoice; all four null for a snapshot copy), cash_corrections ("Korrekturen": refunds entered by hand and cancelled by a counter-entry, no money moved, outside cash in and out; 0 over a range that holds both entries) with cash_corrections_reversed ("storniert") and cash_corrections_counter ("Gegenbuchung", negative; all three null for a snapshot copy), cash_net (by payment date, whatever month the invoice belongs to), cash_forecast ("Rechnungsprognose (brutto)": gross of the invoices the billing forecast expects in the month; null for elapsed months), receivables_eop (open amounts of finalized invoices at the month end; months after the current one carry the invoices open today forward). A value is null when the month has no data at all.
Total column per row key: flows are summed over the range, mrr_bop is the BoP of the first month, mrr_eop, accounted_mrr, billing_gap, arr_eop and receivables_eop are the value of the last month, rates are null. Totals are computed from the exact amounts and rounded once, so they can differ by a cent from the sum of the rounded cells.
Reason split of the movements: expansion and contraction (and new, lost, resurrecting for the detail view), each a map from reason (price_change, quantity_change, discount_start, plan_change, …) to a series aligned with months. Amounts are signed: contraction reasons are negative. billing_gap: the difference contract − invoice per cause (partial_month, billing_start_later, not_yet_billed (the next billing run will invoice it), not_billed (an elapsed month no run will invoice), upcoming_invoice, trial, credit_or_cancellation, billed_after_end, period_shift, price_mismatch, unknown); the causes of a month add up to the billing_gap cell.
German name of every key of reasons: the movement reasons (the one catalogue, the same names as the card "Ursachen der Bewegungen"; every reason is its own "davon" row, added and removed products are not netted) and the causes of billing_gap. "Sonstiges" only for a key outside the catalogue.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Fynn Docs","colors":{"primary":"#000","light":"#fff","dark":"#000"},"logo":{"light":"https://mintcdn.com/fynnsubscriptionbilling/kPbBeWVEZfmEic9q/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=kPbBeWVEZfmEic9q\u0026q=85\u0026s=83e4b30a53d77c3809e0f22afa29335d","dark":"https://mintcdn.com/fynnsubscriptionbilling/kPbBeWVEZfmEic9q/logo/dark.svg?fit=max\u0026auto=format\u0026n=kPbBeWVEZfmEic9q\u0026q=85\u0026s=5798319f6c8632d79fe789f72eaa94e2"},"favicon":"https://mintcdn.com/fynnsubscriptionbilling/zDQkHT5wBBQ3jA-O/favicon.svg?fit=max\u0026auto=format\u0026n=zDQkHT5wBBQ3jA-O\u0026q=85\u0026s=410ff1f698a399faed9fbb877457bb43","api":{"openapi":["assets/openapi.json","assets/openapi-v2-plans.json","assets/openapi-v2-offers.json","assets/openapi-v2-commission.json","assets/openapi-v2-payment-plans.json","assets/openapi-v2-finance.json"],"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript","php"]}},"navbar":{"links":[{"href":"https://cal.com/team/fynn/fynn-documentation","label":"Termin buchen"},{"href":"mailto:hi@fynn.eu","label":"Support"}],"primary":{"type":"button","label":"App Login","href":"https://app.fynn.eu"}},"footer":{"socials":{"x":"https://twitter.com/wearefynn","github":"https://github.com/fynn-digital","linkedin":"https://www.linkedin.com/company/wearefynn"}},"integrations":{"gtm":{"tagId":"GTM-NKGQ4TQ9"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"de","default":true,"href":"introduction"},{"language":"en","href":"en/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fynnsubscriptionbilling","hasAudioNarration":false,"actualSubdomain":"fynnsubscriptionbilling","customDomains":["docs.fynn.eu"],"gitSource":{"type":"gitlab","owner":"fynn/core","repo":"core-api23","deployBranch":"main","contentDirectory":"public-docs","isPrivate":true,"projectId":396,"hostUrl":"https://git.netzfabrik.com","mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ade24310e2252351b6bcf20","collectionId":"c63f4a48-46bb-4163-a4ce-a54574f206c1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ade24310e2252351b6bcf20"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"REMOVE_BRANDING":{"status":"ENABLED"}},"buildId":"6ade65cd8bc03ecc3442159a","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"de","tag":"API Referenz","count":249},{"language":"de","tag":"Dokumentation","count":93},{"language":"de","tag":"API V2","count":71},{"language":"en","tag":"Documentation","count":59},{"language":"de","tag":"API","count":46},{"language":"de","tag":"Catalogue","count":42},{"language":"de","tag":"Angebote","count":36},{"language":"de","tag":"Subscription","count":30},{"language":"de","tag":"Customer","count":30},{"language":"de","tag":"Finanzberichte","count":29},{"language":"de","tag":"Payment","count":26},{"language":"default","tag":"API V2","count":18},{"language":"default","tag":"Dokumentation","count":15},{"language":"default","tag":"Pläne","count":15},{"language":"en","tag":"Integrations","count":15},{"language":"default","tag":"API","count":11},{"language":"default","tag":"API Referenz","count":10},{"language":"default","tag":"API documentation","count":10},{"language":"en","tag":"Products","count":9},{"language":"en","tag":"Settings","count":9},{"language":"en","tag":"Customers","count":7},{"language":"en","tag":"Subscriptions","count":7},{"language":"default","tag":"Guides","count":6},{"language":"default","tag":"Plan-Verwaltung","count":6},{"language":"en","tag":"Payment Providers","count":6},{"language":"default","tag":"Nutzungsbasierte Abrechnung","count":5},{"language":"en","tag":"Accounting","count":5},{"language":"en","tag":"Developers","count":5},{"language":"en","tag":"Invoices","count":5},{"language":"default","tag":"KI-Assistent","count":4}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".update-container{display:flex}.update-container>div{position:unset!important}@media (min-width:1024px){.update-container{flex-direction:column!important}}[data-component-part=update-label]{background:0 0}[data-component-part=update-tag]{-webkit-text-size-adjust:100%;tab-size:4;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-feature-settings:\"cv02\",\"cv03\",\"cv04\",\"cv11\";--scroll-mt:9.5rem;--font-inter:'__Inter_86cd50', '__Inter_Fallback_86cd50';--font-jetbrains-mono:'__JetBrains_Mono_3c557b', '__JetBrains_Mono_Fallback_3c557b';--primary:39 19 64;--primary-light:255 255 255;--primary-dark:0 0 0;--background-light:255 255 255;--background-dark:0 0 0;--gray-50:244 243 244;--gray-100:239 238 239;--gray-200:223 223 224;--gray-300:207 206 207;--gray-400:159 159 160;--gray-500:113 112 113;--gray-600:81 80 81;--gray-700:63 63 64;--gray-800:38 37 39;--gray-900:23 23 24;--gray-950:11 10 12;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";-webkit-font-smoothing:antialiased;--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;-webkit-user-modify:read-only;box-sizing:border-box;border-width:0;border-style:solid;border-color:rgb(var(--gray-200));--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;display:flex;flex-grow:0;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--rounded-lg,.5rem);background-color:rgb(var(--primary)/.1);padding:.25rem .5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(var(--primary)/var(--tw-text-opacity))}"}],"page":{"pagePath":"v2-finance-api/datasets/get-mrr-table","slug":"/v2-finance-api/datasets/get-mrr-table","pageMetadata":{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials","title":"MRR financials table","description":"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (`meta.asOf`).\n\nRequired permission: `analytics:read`.","href":"/v2-finance-api/datasets/get-mrr-table"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (\", _jsx(_components.code, {\n children: \"meta.asOf\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Required permission: \", _jsx(_components.code, {\n children: \"analytics:read\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials","title":"MRR financials table","description":"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (`meta.asOf`).\n\nRequired permission: `analytics:read`.","href":"/v2-finance-api/datasets/get-mrr-table"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/fynnsubscriptionbilling/086131e1768d5953/changelog-sidebar.js"],"openApiReferenceData":{"operation":{"tags":["Datensätze"],"summary":"MRR financials table","description":"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (`meta.asOf`).\n\nRequired permission: `analytics:read`.","parameters":["1e682e4c-6b1c-4d13-9ec7-d5eac888101a","635a1ead-b81e-4722-bcc4-76e77d66b9d6","0d7639dd-34fd-4fb2-80d8-310fd868ab46","50f65780-38e0-461d-8756-1d811e4a6d51","75b6aedd-435d-459c-9683-585e8e88b5fd","89604a7f-cbc2-43f5-8214-8b8a05bdad02","8af65b29-9d40-4248-8e52-35ea3f65fbe8"],"responses":{"200":"af44a963-acec-4e73-9f32-de05a4971c47","401":"94dda098-231b-4a18-82bd-e459f73f1d47","403":"0b9da4f8-b765-467e-ae79-dd3d4428846c","422":"25c211de-8194-40f6-aeaf-24675a6051a6"},"security":["a271391e-b503-4c06-aa7b-dd5b225c5614"],"operationId":"getMrrFinancials","method":"get","type":"path","servers":["58ca1bf5-c883-4c98-a975-3a85f96f2f94","761f9cb6-1d17-4197-9e03-b79594029e5c"],"path":"/api/analytics/mrr-financials","baseUrlOptions":["https://coreapi.io","https://preview.coreapi.io"],"title":"MRR financials table","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","php"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1e682e4c-6b1c-4d13-9ec7-d5eac888101a":{"name":"from","in":"query","description":"First month (YYYY-MM, time zone of the organisation). Default: `to` minus 11 months.","required":false,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","example":"2025-10","isRequired":false,"description":"First month (YYYY-MM, time zone of the organisation). Default: `to` minus 11 months.","uniqueKey":"","typeLabel":"string"}},"635a1ead-b81e-4722-bcc4-76e77d66b9d6":{"name":"to","in":"query","description":"Last month (YYYY-MM). Default: the current month. At most 36 months per request; `from` must not be after `to`.","required":false,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","example":"2026-09","isRequired":false,"description":"Last month (YYYY-MM). Default: the current month. At most 36 months per request; `from` must not be after `to`.","uniqueKey":"","typeLabel":"string"}},"0d7639dd-34fd-4fb2-80d8-310fd868ab46":{"name":"currency","in":"query","description":"ISO-4217 code of one of the organisation's currencies. Default: the default currency.","required":false,"schema":{"type":"string","example":"EUR","isRequired":false,"description":"ISO-4217 code of one of the organisation's currencies. Default: the default currency.","uniqueKey":"","typeLabel":"string"}},"50f65780-38e0-461d-8756-1d811e4a6d51":{"name":"scope","in":"query","description":"Level on which movements are classified. Default: the organisation setting (`invoice_address` unless changed).","required":false,"schema":{"type":"string","enum":["subscription","invoice_address","customer","organisation"],"isRequired":false,"description":"Level on which movements are classified. Default: the organisation setting (`invoice_address` unless changed).","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"75b6aedd-435d-459c-9683-585e8e88b5fd":{"name":"segmentId","in":"query","description":"Analytics segment to narrow the figures to.","required":false,"schema":{"type":"string","format":"uuid","isRequired":false,"description":"Analytics segment to narrow the figures to.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"89604a7f-cbc2-43f5-8214-8b8a05bdad02":{"name":"customerIds[]","in":"query","description":"Narrow to these customers.","required":false,"schema":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"items.[INDEX]","typeLabel":"string\u003cuuid>"},"isRequired":false,"description":"Narrow to these customers.","uniqueKey":"","typeLabel":"string\u003cuuid>[]"}},"8af65b29-9d40-4248-8e52-35ea3f65fbe8":{"name":"productIds[]","in":"query","description":"Narrow to these products (MRR and non-recurring revenue; cash has no product).","required":false,"schema":{"type":"array","items":{"type":"string","format":"uuid","uniqueKey":"items.[INDEX]","typeLabel":"string\u003cuuid>"},"isRequired":false,"description":"Narrow to these products (MRR and non-recurring revenue; cash has no product).","uniqueKey":"","typeLabel":"string\u003cuuid>[]"}}},"responses":{"af44a963-acec-4e73-9f32-de05a4971c47":{"description":"The table.","content":{"application/json":{"schema":{"description":"The MRR financials table: one value per row and month. Money values are objects with an exact decimal `amount` (two places) and `currency`; rates are exact decimal strings with six places (`\"0.001600\"` = 0.16 %). Contraction and lost are unsigned amounts (they lower MRR); reason amounts are signed.","properties":{"months":{"description":"Months of the range (YYYY-MM, time zone of the organisation), ascending. Every series is aligned with this list.","type":"array","items":{"type":"string","example":"2026-09","uniqueKey":"months.items.[INDEX]","typeLabel":"string"},"uniqueKey":"months","typeLabel":"string[]"},"rows":{"description":"Series per row key: `one_off` (Net (gross − tax, after position discounts) of the one-off positions of the documents finalized in the month: one-time prices of subscription items, manual positions, setup fees, and discounts without a parent position (dunning fees are other operating income, not revenue); credit notes and cancellations count negative.), `variable` (Net (gross − tax, after position discounts) of the usage-based positions of the documents finalized in the month: usage quantities, metered measurements and percentage prices; credit notes and cancellations count negative.), `mrr_bop`, `mrr_eop` (MRR at the end of the previous / this month), `accounted_mrr` (\"Accounted MRR\": the recurring invoice positions' shares of the month by their service period, 30/360; null for a snapshot copy), `billing_gap` (\"Differenz Vertrag zu Rechnung\": `mrr_eop − accounted_mrr`, its causes under `reasons.billing_gap`), `new`, `expansion`, `contraction`, `lost`, `resurrecting` (movements), `arr_eop` (MRR × 12), `revenue_churn_rate` ((contraction + lost) / BoP), `mom_growth` ((EoP − BoP) / BoP), `cash_collected` (\"Zahlungseingang\") and its split by the invoice the money pays, adding up to it: `cash_collected_this_month` (invoices finalized in the same month), `cash_collected_other_months` (invoices of other months), `cash_collected_unassigned` (no finalized invoice: top-ups, prepayments, the part above the gross of an overpaid invoice), `cash_collected_refund_returned` (\"Erstattung zurückgekommen\": a negative refund matched from the bank account), `cash_refunded` (\"Zahlungsausgang\": refunds, chargebacks, payouts and return debit fees) and its split by kind, adding up to it: `cash_refunded_refund` (\"Erstattungen\"), `cash_refunded_chargeback` (\"Rücklastschriften\"), `cash_refunded_payout` (\"Auszahlungen\"), `cash_refunded_return_fee` (\"Rücklastschrift-Gebühren\": the bank fee of a return debit without a return case, not part of the invoice; all four null for a snapshot copy), `cash_corrections` (\"Korrekturen\": refunds entered by hand and cancelled by a counter-entry, no money moved, outside cash in and out; 0 over a range that holds both entries) with `cash_corrections_reversed` (\"storniert\") and `cash_corrections_counter` (\"Gegenbuchung\", negative; all three null for a snapshot copy), `cash_net` (by payment date, whatever month the invoice belongs to), `cash_forecast` (\"Rechnungsprognose (brutto)\": gross of the invoices the billing forecast expects in the month; null for elapsed months), `receivables_eop` (open amounts of finalized invoices at the month end; months after the current one carry the invoices open today forward). A value is null when the month has no data at all.","type":"object","additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","description":"A money amount. `amount` is an exact decimal string with two decimal places (net, excluding VAT, unless stated otherwise); `currency` is the ISO-4217 code.","properties":{"amount":{"description":"Exact decimal amount with two decimal places, dot as separator. Negative amounts carry a leading minus.","type":"string","example":"1234.56","uniqueKey":"rows.additionalProperties.items.[INDEX].oneOf.0.amount","typeLabel":"string"},"currency":{"description":"ISO-4217 currency code.","type":"string","example":"EUR","uniqueKey":"rows.additionalProperties.items.[INDEX].oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"rows.additionalProperties.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"string","example":"0.012500","uniqueKey":"rows.additionalProperties.items.[INDEX].oneOf.1","typeLabel":"string"},{"type":"null","uniqueKey":"rows.additionalProperties.items.[INDEX].oneOf.2","typeLabel":"null"}],"uniqueKey":"rows.additionalProperties.items.[INDEX]","typeLabel":"object | string | null"},"uniqueKey":"rows.additionalProperties","typeLabel":"(object | string | null)[]"},"uniqueKey":"rows","typeLabel":"object"},"totals":{"description":"Total column per row key: flows are summed over the range, `mrr_bop` is the BoP of the first month, `mrr_eop`, `accounted_mrr`, `billing_gap`, `arr_eop` and `receivables_eop` are the value of the last month, rates are null. Totals are computed from the exact amounts and rounded once, so they can differ by a cent from the sum of the rounded cells.","type":"object","additionalProperties":{"oneOf":[{"type":"object","description":"A money amount. `amount` is an exact decimal string with two decimal places (net, excluding VAT, unless stated otherwise); `currency` is the ISO-4217 code.","properties":{"amount":{"description":"Exact decimal amount with two decimal places, dot as separator. Negative amounts carry a leading minus.","type":"string","example":"1234.56","uniqueKey":"totals.additionalProperties.oneOf.0.amount","typeLabel":"string"},"currency":{"description":"ISO-4217 currency code.","type":"string","example":"EUR","uniqueKey":"totals.additionalProperties.oneOf.0.currency","typeLabel":"string"}},"uniqueKey":"totals.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"string","uniqueKey":"totals.additionalProperties.oneOf.1","typeLabel":"string"},{"type":"null","uniqueKey":"totals.additionalProperties.oneOf.2","typeLabel":"null"}],"uniqueKey":"totals.additionalProperties","typeLabel":"object | string | null"},"uniqueKey":"totals","typeLabel":"object"},"reasons":{"description":"Reason split of the movements: `expansion` and `contraction` (and `new`, `lost`, `resurrecting` for the detail view), each a map from reason (`price_change`, `quantity_change`, `discount_start`, `plan_change`, …) to a series aligned with `months`. Amounts are signed: contraction reasons are negative. `billing_gap`: the difference contract − invoice per cause (`partial_month`, `billing_start_later`, `not_yet_billed` (the next billing run will invoice it), `not_billed` (an elapsed month no run will invoice), `upcoming_invoice`, `trial`, `credit_or_cancellation`, `billed_after_end`, `period_shift`, `price_mismatch`, `unknown`); the causes of a month add up to the `billing_gap` cell.","type":"object","additionalProperties":{"description":"Reason => series of money values aligned with `months`.","type":"object","uniqueKey":"reasons.additionalProperties","typeLabel":"object"},"uniqueKey":"reasons","typeLabel":"object"},"meta":{"type":"object","description":"Calculation time, effective scope and currency, finding counts.","properties":{"asOf":{"oneOf":[{"description":"When the figures were last calculated (ISO 8601). Null when no calculation exists yet.","type":"string","format":"date-time","uniqueKey":"meta.asOf.oneOf.0","typeLabel":"string\u003cdate-time>"},{"description":"When the figures were last calculated (ISO 8601). Null when no calculation exists yet.","type":"null","format":"date-time","uniqueKey":"meta.asOf.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.asOf","typeLabel":"string\u003cdate-time> | null"},"buildId":{"oneOf":[{"description":"Id of the calculation the figures come from. Null when no calculation exists yet.","type":"string","uniqueKey":"meta.buildId.oneOf.0","typeLabel":"string"},{"description":"Id of the calculation the figures come from. Null when no calculation exists yet.","type":"null","uniqueKey":"meta.buildId.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.buildId","typeLabel":"string | null"},"scope":{"description":"Effective movement scope: the level on which new, expansion, contraction, lost and resurrecting are classified.","type":"string","enum":["subscription","invoice_address","customer","organisation"],"example":"invoice_address","uniqueKey":"meta.scope","typeLabel":"enum\u003cstring>"},"currency":{"description":"Effective currency (ISO-4217). Amounts are never converted between currencies.","type":"string","example":"EUR","uniqueKey":"meta.currency","typeLabel":"string"},"from":{"description":"First month of the range (YYYY-MM, time zone of the organisation).","type":"string","example":"2025-10","uniqueKey":"meta.from","typeLabel":"string"},"to":{"description":"Last month of the range (YYYY-MM, time zone of the organisation).","type":"string","example":"2026-09","uniqueKey":"meta.to","typeLabel":"string"},"findings":{"type":"object","description":"Number of data-quality findings of the calculation.","properties":{"error":{"description":"Findings that point at wrong numbers.","type":"integer","example":0,"uniqueKey":"meta.findings.error","typeLabel":"integer"},"warning":{"description":"Findings that point at data that should be checked.","type":"integer","example":3,"uniqueKey":"meta.findings.warning","typeLabel":"integer"},"info":{"description":"Informational findings.","type":"integer","example":12,"uniqueKey":"meta.findings.info","typeLabel":"integer"}},"uniqueKey":"meta.findings","typeLabel":"object"},"filtersNotApplied":{"description":"Datasets of this response that ignore the customer, product or segment filter because the underlying facts have no such dimension (for example receivables at past month ends).","type":"array","items":{"type":"string","uniqueKey":"meta.filtersNotApplied.items.[INDEX]","typeLabel":"string"},"uniqueKey":"meta.filtersNotApplied","typeLabel":"string[]"},"notSnapshotted":{"description":"MRR table rows a month-end snapshot does not hold (invoice, cash and forecast figures). In the snapshot view they keep their current values. Empty when the range has no snapshot or a segment is applied.","type":"array","items":{"type":"string","uniqueKey":"meta.notSnapshotted.items.[INDEX]","typeLabel":"string"},"example":["one_off","accounted_mrr","cash_collected"],"uniqueKey":"meta.notSnapshotted","typeLabel":"string[]"},"projectedFrom":{"oneOf":[{"description":"First month of the range after the current one (YYYY-MM): from there the month-end stocks (open receivables, amounts owed to customers) carry today's open invoices forward, a projection as of today (\"Prognose (Stand heute)\"), not a fact. Null when the range ends in or before the current month.","type":"string","example":"2026-10","uniqueKey":"meta.projectedFrom.oneOf.0","typeLabel":"string"},{"description":"First month of the range after the current one (YYYY-MM): from there the month-end stocks (open receivables, amounts owed to customers) carry today's open invoices forward, a projection as of today (\"Prognose (Stand heute)\"), not a fact. Null when the range ends in or before the current month.","type":"null","example":"2026-10","uniqueKey":"meta.projectedFrom.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.projectedFrom","typeLabel":"string | null"},"forecast":{"type":"object","description":"Completeness of the invoice forecast (\"Rechnungsprognose\") in the range: `incomplete` with the number of subscriptions whose forecast failed. The forecast rows then show what the other subscriptions bring; they are marked \"unvollständig\", never read as 0.","properties":{"incomplete":{"description":"True when the forecast of at least one subscription failed and the range contains forecast months (the current month or later).","type":"boolean","example":false,"uniqueKey":"meta.forecast.incomplete","typeLabel":"boolean"},"failedSubscriptions":{"description":"Number of subscriptions whose billing forecast failed (0 when complete).","type":"integer","example":0,"uniqueKey":"meta.forecast.failedSubscriptions","typeLabel":"integer"}},"uniqueKey":"meta.forecast","typeLabel":"object"},"build":{"oneOf":[{"type":"object","description":"The latest calculation attempt, also when it failed (\"Berechnung abgebrochen\"). Null when the organisation was never calculated.","properties":{"status":{"description":"Outcome of the attempt: `succeeded`, or `failed` when it broke a consistency check and was cancelled (nothing of it was stored).","type":"string","enum":["succeeded","failed"],"example":"failed","uniqueKey":"meta.build.oneOf.0.status","typeLabel":"enum\u003cstring>"},"builtAt":{"description":"When the attempt started (ISO 8601).","type":"string","format":"date-time","uniqueKey":"meta.build.oneOf.0.builtAt","typeLabel":"string\u003cdate-time>"},"buildId":{"description":"Id of the attempt. Equal to `meta.dataBuildId` when it succeeded.","type":"string","uniqueKey":"meta.build.oneOf.0.buildId","typeLabel":"string"},"failed":{"oneOf":[{"type":"object","description":"The broken checks; null unless `status` is `failed`.","properties":{"invariants":{"description":"Codes of the broken checks (sorted), e.g. `CASH_WITHIN_DOCUMENT`; `IDENTITY` for the MRR identity.","type":"array","items":{"type":"string","uniqueKey":"meta.build.oneOf.0.failed.oneOf.0.invariants.items.[INDEX]","typeLabel":"string"},"example":["CASH_WITHIN_DOCUMENT"],"uniqueKey":"meta.build.oneOf.0.failed.oneOf.0.invariants","typeLabel":"string[]"},"rowCount":{"description":"Number of rows that broke a check (complete, also above the listed rows).","type":"integer","example":5,"uniqueKey":"meta.build.oneOf.0.failed.oneOf.0.rowCount","typeLabel":"integer"},"invoiceRowCount":{"description":"Number of the listed rows that name an invoice. Equal to `rowCount` when every row is an invoice.","type":"integer","example":5,"uniqueKey":"meta.build.oneOf.0.failed.oneOf.0.invoiceRowCount","typeLabel":"integer"}},"uniqueKey":"meta.build.oneOf.0.failed.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"meta.build.oneOf.0.failed.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.build.oneOf.0.failed","typeLabel":"object | null"}},"uniqueKey":"meta.build.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"meta.build.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.build","typeLabel":"object | null"},"dataBuildId":{"oneOf":[{"description":"Id of the calculation the figures come from (the last successful one). Differs from `build.buildId` when the latest attempt failed. Null when no calculation exists yet.","type":"string","uniqueKey":"meta.dataBuildId.oneOf.0","typeLabel":"string"},{"description":"Id of the calculation the figures come from (the last successful one). Differs from `build.buildId` when the latest attempt failed. Null when no calculation exists yet.","type":"null","uniqueKey":"meta.dataBuildId.oneOf.1","typeLabel":"null"}],"uniqueKey":"meta.dataBuildId","typeLabel":"string | null"}},"uniqueKey":"meta","typeLabel":"object"},"reasonLabels":{"description":"German name of every key of `reasons`: the movement reasons (the one catalogue, the same names as the card \"Ursachen der Bewegungen\"; every reason is its own \"davon\" row, added and removed products are not netted) and the causes of `billing_gap`. \"Sonstiges\" only for a key outside the catalogue.","type":"object","example":{"contract_start":"Vertragsbeginn","price_change":"Preisänderung","not_billed":"Nicht abgerechnet"},"additionalProperties":{"type":"string","uniqueKey":"reasonLabels.additionalProperties","typeLabel":"string"},"uniqueKey":"reasonLabels","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"months":["2026-09"],"rows":{},"totals":{},"reasons":{},"meta":{"asOf":"2023-11-07T05:31:56Z","buildId":"\u003cstring>","scope":"invoice_address","currency":"EUR","from":"2025-10","to":"2026-09","findings":{"error":0,"warning":3,"info":12},"filtersNotApplied":["\u003cstring>"],"notSnapshotted":["one_off","accounted_mrr","cash_collected"],"projectedFrom":"2026-10","forecast":{"incomplete":false,"failedSubscriptions":0},"build":{"status":"failed","builtAt":"2023-11-07T05:31:56Z","buildId":"\u003cstring>","failed":{"invariants":["CASH_WITHIN_DOCUMENT"],"rowCount":5,"invoiceRowCount":5}},"dataBuildId":"\u003cstring>"},"reasonLabels":{"contract_start":"Vertragsbeginn","price_change":"Preisänderung","not_billed":"Nicht abgerechnet"}}}},"exampleType":"generated"}},"exampleType":"generated"},"94dda098-231b-4a18-82bd-e459f73f1d47":{"description":"Missing or invalid authentication.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"0b9da4f8-b765-467e-ae79-dd3d4428846c":{"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":[{"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.","required":["status","type","title","detail"],"properties":{"status":{"type":"integer","example":409,"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"integer"},"type":{"type":"string","example":"ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED","isRequired":true,"uniqueKey":"oneOf.0.type","typeLabel":"string"},"title":{"type":"string","example":"An error occurred","isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"detail":{"type":"string","description":"German sentence that can be shown to the user.","isRequired":true,"uniqueKey":"oneOf.0.detail","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"403 body when the finance reports are not enabled for the organisation (feature flag `analytics.advanced`).","required":["type","title","detail","featureFlags"],"properties":{"type":{"type":"string","enum":["https://fynn.dev/problems/feature-not-available"],"isRequired":true,"uniqueKey":"oneOf.1.type","typeLabel":"enum\u003cstring>"},"title":{"type":"string","example":"Feature not available","isRequired":true,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"detail":{"type":"string","example":"The requested feature is not available. Please contact customer support.","isRequired":true,"uniqueKey":"oneOf.1.detail","typeLabel":"string"},"featureFlags":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.featureFlags.items.[INDEX]","typeLabel":"string"},"example":["analytics.advanced"],"isRequired":true,"uniqueKey":"oneOf.1.featureFlags","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":409,"type":"ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED","title":"An error occurred","detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"25c211de-8194-40f6-aeaf-24675a6051a6":{"description":"Invalid query parameter. The body lists the offending parameters in `violations` (`propertyPath`, `message`, `code`).","content":{"application/problem+json":{"schema":{"type":"object","description":"422 body: one entry per rejected field in `violations`.","properties":{"status":{"type":"integer","example":422,"isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"type":{"type":"string","example":"https://tools.ietf.org/html/rfc2616#section-10","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"violations":{"type":"array","items":{"type":"object","properties":{"propertyPath":{"type":"string","example":"to","isRequired":true,"uniqueKey":"violations.items.[INDEX].propertyPath","typeLabel":"string"},"message":{"type":"string","example":"Der Zeitraum darf höchstens 36 Monate umfassen.","isRequired":true,"uniqueKey":"violations.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","example":"analytics.mrr_financials.range_too_long","isRequired":true,"uniqueKey":"violations.items.[INDEX].code","typeLabel":"string"}},"required":["propertyPath","message","code"],"uniqueKey":"violations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"violations","typeLabel":"object[]"},"title":{"type":"string","example":"Validation Failed","uniqueKey":"title","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"}},"required":["status","type","violations"],"additionalProperties":true,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":422,"type":"https://tools.ietf.org/html/rfc2616#section-10","violations":[{"propertyPath":"to","message":"Der Zeitraum darf höchstens 36 Monate umfassen.","code":"analytics.mrr_financials.range_too_long"}],"title":"Validation Failed","detail":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a271391e-b503-4c06-aa7b-dd5b225c5614":{"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.","scopes":[],"schemeName":"ApiToken"}}},"servers":{"58ca1bf5-c883-4c98-a975-3a85f96f2f94":{"url":"https://coreapi.io","description":"Production"},"761f9cb6-1d17-4197-9e03-b79594029e5c":{"url":"https://preview.coreapi.io","description":"Sandbox"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API token of the organisation. Send it as Authorization: Bearer api_... The token is bound to exactly one organisation.","scopes":[],"schemeName":"ApiToken"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API token of the organisation. Send it as Authorization: Bearer api_... The token is bound to exactly one organisation.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiToken","name":"Authorization"}],"title":"ApiToken"}]},"originalFileLocation":"assets/openapi-v2-finance.json"},"subdomain":"fynnsubscriptionbilling","siteName":"Fynn Docs","title":"MRR financials table - Fynn Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"de":{"href":"/v2-finance-api/datasets/get-mrr-table","matchLevel":0},"en":{"href":"/en/introduction","matchLevel":4}}},"lastModified":"2026-10-25T20:26:34.012Z","originalFileLocation":"v2-finance-api/datasets/get-mrr-table.mdx","locale":"de"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (meta.asOf). Required permission: analytics:read.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fynn Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"MRR financials table - Fynn Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (meta.asOf). Required permission: analytics:read.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fynn Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fynnsubscriptionbilling.mintlify.app/_mintlify/api/og/v2?division=Datens%C3%A4tze\u0026amp;title=MRR+financials+table\u0026amp;description=Monthly+recurring+revenue+%28MRR%29+at+the+start+and+end+of+every+month%2C+its+movements+%28new%2C+expansion%2C+contraction%2C+lost%2C+resurrecting%29+with+their+reasons%2C+ARR%2C+re\u0026amp;theme=4b76c1a49202070b198dd6e7\u0026amp;signature=48235c736110ed07f0aef62256ad5f6bc139394ae0a3fbddd374fff409e690c4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"MRR financials table - Fynn Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (meta.asOf). Required permission: analytics:read.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fynnsubscriptionbilling.mintlify.app/_mintlify/api/og/v2?division=Datens%C3%A4tze\u0026amp;title=MRR+financials+table\u0026amp;description=Monthly+recurring+revenue+%28MRR%29+at+the+start+and+end+of+every+month%2C+its+movements+%28new%2C+expansion%2C+contraction%2C+lost%2C+resurrecting%29+with+their+reasons%2C+ARR%2C+re\u0026amp;theme=4b76c1a49202070b198dd6e7\u0026amp;signature=48235c736110ed07f0aef62256ad5f6bc139394ae0a3fbddd374fff409e690c4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/fynnsubscriptionbilling/aEyoysRsbJwnVfa3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fynn Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v2-finance-api/datasets/get-mrr-table.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fynn.eu/#organization\",\"name\":\"Fynn Docs\",\"url\":\"https://docs.fynn.eu\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fynnsubscriptionbilling/kPbBeWVEZfmEic9q/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=kPbBeWVEZfmEic9q\u0026q=85\u0026s=83e4b30a53d77c3809e0f22afa29335d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fynn.eu#website\",\"name\":\"Fynn Docs\",\"url\":\"https://docs.fynn.eu\",\"publisher\":{\"@id\":\"https://docs.fynn.eu/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table#webpage\",\"url\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table\",\"name\":\"MRR financials table\",\"description\":\"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (meta.asOf). Required permission: analytics:read.\",\"dateModified\":\"2026-10-25T20:26:34.012Z\",\"isPartOf\":{\"@id\":\"https://docs.fynn.eu#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Finanzberichte\",\"item\":\"https://docs.fynn.eu/v2-finance-api/concepts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-recurring\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Datensätze\",\"item\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-recurring\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"MRR financials table\",\"item\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table#apireference\",\"headline\":\"MRR financials table\",\"name\":\"MRR financials table\",\"description\":\"Monthly recurring revenue (MRR) at the start and end of every month, its movements (new, expansion, contraction, lost, resurrecting) with their reasons, ARR, revenue churn rate, month-over-month growth, non-recurring revenue (one-off and variable, net), cash collected and refunded, and outstanding receivables at the month end. One currency per response, never converted. MRR is the monthly-normalized recurring net amount the contracts entitle to at the last second of the month (time zone of the organisation). Non-recurring revenue is net = gross − tax of the finalized invoice positions (after position discounts), by finalization month; credit notes are negative. Collected cash counts settled payments (status captured, booked, refunded, partial_refunded) by payment date; refunds count separately. The figures come from the latest calculation (meta.asOf). Required permission: analytics:read.\",\"url\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fynn.eu/v2-finance-api/datasets/get-mrr-table#webpage\"},\"dateModified\":\"2026-10-25T20:26:34.012Z\",\"publisher\":{\"@id\":\"https://docs.fynn.eu/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fynn.eu#website\"}}]}\u003c/script>","siteName":"Fynn Docs","nav":{"global":null,"languages":[{"language":"de","default":true,"tabs":[{"tab":"Dokumentation","pages":[{"title":"Dokumentation","href":"/introduction"}]},{"tab":"Integrationen","pages":[{"title":"Integrationen","href":"/integrations/overview"}]},{"tab":"API Referenz","pages":[{"title":"API Referenz","href":"/api-reference/introduction"}]},{"tab":"API V2","groups":[{"group":"Einführung","icon":"compass","pages":[{"title":"Fynn API V2","sidebarTitle":"Einführung","icon":"compass","href":"/v2-plans-api/introduction"}]},{"group":"Grundlagen","icon":"cube","pages":[{"title":"Authentifizierung","sidebarTitle":"Authentifizierung","icon":"key","href":"/v2-plans-api/authentication"},{"title":"Asynchrone Abrechnung","sidebarTitle":"Asynchrone Abrechnung","icon":"receipt","href":"/v2-plans-api/billing"}]},{"group":"Pläne","icon":"layer-group","pages":[{"title":"Schnellstart","sidebarTitle":"Schnellstart","icon":"rocket","href":"/v2-plans-api/quickstart"},{"title":"Kernkonzepte","sidebarTitle":"Kernkonzepte","icon":"book","href":"/v2-plans-api/concepts"},{"title":"Up- und Downgrades","sidebarTitle":"Up- und Downgrades","icon":"arrow-up-arrow-down","href":"/v2-plans-api/upgrades-downgrades"},{"title":"Checkout","sidebarTitle":"Checkout","icon":"cart-shopping","href":"/v2-plans-api/checkout-and-sales-channels"},{"group":"API","pages":[{"group":"Plan-Verwaltung","pages":[{"openapi":"get /api/plans","title":"List plans","href":"/v2-plans-api/plans/list-plans"},{"openapi":"post /api/plans","title":"Create a plan","href":"/v2-plans-api/plans/create-plan"},{"openapi":"get /api/plans/{id}","title":"Retrieve a plan","href":"/v2-plans-api/plans/get-plan"},{"openapi":"put /api/plans/{id}","title":"Update a plan","href":"/v2-plans-api/plans/update-plan"},{"openapi":"post /api/plans/{id}/activate","title":"Activate a plan","href":"/v2-plans-api/plans/activate-plan"},{"openapi":"delete /api/plans/{id}","title":"Delete or archive a plan","href":"/v2-plans-api/plans/delete-plan"}]},{"group":"Checkout-Links","pages":[{"openapi":"post /api/plans/{id}/checkout-links","title":"Create a checkout link","href":"/v2-plans-api/checkout-links/create-checkout-link"},{"openapi":"get /api/plans/{id}/checkout-links","title":"List checkout links of a plan","href":"/v2-plans-api/checkout-links/list-checkout-links"}]},{"group":"Tarifwechsel","pages":[{"openapi":"get /api/customer/subscriptions/{id}/plan-options","title":"Get plan switch options","href":"/v2-plans-api/customer/plan-options"},{"openapi":"post /api/customer/subscriptions/{id}/plan-tier-preview","title":"Preview a tier switch","href":"/v2-plans-api/customer/preview-plan-tier-switch"},{"openapi":"post /api/customer/subscriptions/{id}/switch-plan-tier","title":"Switch the plan tier","href":"/v2-plans-api/customer/switch-plan-tier"}]}]}]},{"group":"Angebote","icon":"file-signature","pages":[{"title":"Angebote","sidebarTitle":"Einführung","icon":"file-signature","href":"/v2-offers-api/introduction"},{"title":"Schnellstart","sidebarTitle":"Schnellstart","icon":"rocket","href":"/v2-offers-api/quickstart"},{"title":"Kernkonzepte","sidebarTitle":"Kernkonzepte","icon":"book","href":"/v2-offers-api/concepts"},{"title":"Der Angebots-Editor","sidebarTitle":"Der Editor","icon":"pen-ruler","href":"/v2-offers-api/editor"},{"title":"Die Angebots-Ansicht","sidebarTitle":"Angebots-Ansicht","icon":"eye","href":"/v2-offers-api/angebots-ansicht"},{"title":"Annahme und Signatur","sidebarTitle":"Annahme und Signatur","icon":"file-signature","href":"/v2-offers-api/acceptance-and-signing"},{"title":"Rechnungsdaten","sidebarTitle":"Rechnungsdaten","icon":"receipt","href":"/v2-offers-api/billing-details"},{"title":"Veröffentlichen und Empfänger","sidebarTitle":"Veröffentlichen","icon":"paper-plane","href":"/v2-offers-api/sending-and-recipients"},{"title":"Freigaben","sidebarTitle":"Freigaben","icon":"circle-check","href":"/v2-offers-api/freigaben"},{"title":"Einstellungen","sidebarTitle":"Einstellungen","icon":"gear","href":"/v2-offers-api/settings"},{"title":"Authentifizierung","sidebarTitle":"Authentifizierung","icon":"key","href":"/v2-offers-api/authentication"},{"title":"Webhooks","sidebarTitle":"Webhooks","icon":"bell","href":"/v2-offers-api/webhooks"},{"group":"API","pages":[{"group":"Angebote","pages":[{"openapi":"assets/openapi-v2-offers.json get /offers","title":"List offers","href":"/v2-offers-api/offers/list-offers"},{"openapi":"assets/openapi-v2-offers.json get /api/offers/{id}","title":"Get an offer","href":"/v2-offers-api/offers/get-offer"},{"openapi":"assets/openapi-v2-offers.json put /offers/{id}","title":"Update an offer","href":"/v2-offers-api/offers/update-offer"},{"openapi":"assets/openapi-v2-offers.json get /offers/{id}/document","title":"Download an offer as PDF","href":"/v2-offers-api/offers/download-offer"},{"openapi":"assets/openapi-v2-offers.json post /api/offers/{id}/publish","title":"Publish an offer","href":"/v2-offers-api/offers/publish-offer"},{"openapi":"assets/openapi-v2-offers.json post /api/offers/{id}/accept","title":"Accept an offer manually","href":"/v2-offers-api/offers/accept-offer"},{"openapi":"assets/openapi-v2-offers.json post /offers/{id}/cancel-signing","title":"Cancel a signing process","href":"/v2-offers-api/offers/cancel-signing"},{"openapi":"assets/openapi-v2-offers.json post /offers/{id}/recipients","title":"Add a recipient","href":"/v2-offers-api/offers/add-recipient"},{"openapi":"assets/openapi-v2-offers.json get /api/offers/{id}/activities","title":"List offer activity","href":"/v2-offers-api/offers/list-activities"},{"openapi":"assets/openapi-v2-offers.json delete /offers/{id}","title":"Archive an offer","href":"/v2-offers-api/offers/archive-offer"}]},{"group":"Freigabe","pages":[{"openapi":"assets/openapi-v2-offers.json get /api/offers/{id}/approval","title":"Get the approval state","href":"/v2-offers-api/approval/get-approval"},{"openapi":"assets/openapi-v2-offers.json post /api/offers/{id}/approval/approve","title":"Approve a pending request","href":"/v2-offers-api/approval/approve"},{"openapi":"assets/openapi-v2-offers.json post /api/offers/{id}/approval/reject","title":"Reject a pending request","href":"/v2-offers-api/approval/reject"},{"openapi":"assets/openapi-v2-offers.json post /api/offers/{id}/approval/cancel","title":"Cancel a pending request","href":"/v2-offers-api/approval/cancel-approval"}]}]}]},{"group":"Finanzberichte","icon":"chart-line","pages":[{"title":"Finanzberichte: Konzepte","sidebarTitle":"Konzepte","icon":"book","href":"/v2-finance-api/concepts"},{"title":"Datensätze","sidebarTitle":"Datensätze","icon":"table","href":"/v2-finance-api/datasets"},{"title":"Drill-downs","sidebarTitle":"Drill-downs","icon":"magnifying-glass","href":"/v2-finance-api/drill-downs"},{"title":"Snapshots","sidebarTitle":"Snapshots","icon":"lock","href":"/v2-finance-api/snapshots"},{"title":"Excel-Exporte","sidebarTitle":"Excel-Exporte","icon":"file-excel","href":"/v2-finance-api/excel"},{"title":"Fehler","sidebarTitle":"Fehler","icon":"triangle-exclamation","href":"/v2-finance-api/errors"},{"title":"Definitionen","sidebarTitle":"Definitionen","icon":"book-open","href":"/v2-finance-api/definitions"},{"group":"API","pages":[{"group":"Datensätze","pages":[{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/recurring","title":"Recurring revenue page datasets","href":"/v2-finance-api/datasets/get-recurring"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/customers","title":"Customer base page datasets","href":"/v2-finance-api/datasets/get-customers"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/liquidity","title":"Liquidity page datasets","href":"/v2-finance-api/datasets/get-liquidity"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/revenue","title":"Revenue page datasets","href":"/v2-finance-api/datasets/get-revenue"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/revenue/customers","title":"Revenue per customer, paged","href":"/v2-finance-api/datasets/get-revenue-customers"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/overview","title":"Finance overview datasets","description":"Cash flow (collected counts settled payments with status captured, booked, refunded or partial_refunded, by payment date), MRR movements (signed), billed net revenue by class (net = gross − tax after position discounts, credit notes negative), outstanding receivables at each month end, ageing of the invoices open today, and the receivables table. One currency, never converted. Cash and receivables have no product dimension: a product filter does not narrow them (`meta.filtersNotApplied`).\n\nRequired permission: `analytics:read`.","href":"/v2-finance-api/datasets/get-overview"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials","title":"MRR financials table","href":"/v2-finance-api/datasets/get-mrr-table"}]},{"group":"Drill-downs und Hinweise","pages":[{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials/details","title":"Lines behind one cell of the finance tables","description":"Returns the records that make up one cell: for movements the items of the accounts with that movement (signed change per item), for `mrr_bop` / `mrr_eop` the items contributing MRR at the snapshot, for `one_off` / `variable` and the revenue-page metrics the invoice positions (net = gross − tax, credit notes negative), for cash the payments and refunds (collected cash counts settled payments with status captured, booked, refunded or partial_refunded; every cash line carries `invoiceMonth`, the month of the invoice it pays), for `cash_collected_this_month` / `cash_collected_other_months` / `cash_collected_unassigned` the payments of the month for invoices of the same month / of other months / without a finalized invoice, for `cash_collected_refund_returned` the refunds that came back from the bank, for `cash_correction` both entries of every correction pair (signed; `counterpartTransactionId` names the other entry; `part` selects one side), for `cash_refunded_refund` / `cash_refunded_chargeback` / `cash_refunded_payout` / `cash_refunded_return_fee` the money-out lines of one kind (refunds / chargebacks / payouts / bank fees of return debits without a return case; they add up to `cash_refunded` and `cash_out`), `amount` = the payment's part (an overpaid invoice's payment splits into the part within its gross and the part above it, which is unassigned), for the receivables rows the invoices (invoices of the month; credit notes and cancellations act only through the credited amount of the invoice they reference) with the amount of that row — `status_paid` payments through payment transactions, `status_settled` settlements without one (customer balance, Skonto), `status_overpaid` the overpaid invoices with the amount paid above the gross, `cash_in_for_month` the payments received for the invoice at any date — for `ageing_*` the invoices open today in that bucket, for `outstanding_eop` / `receivables_eop` the invoices open at the month end (months after the current one: the invoices open today, carried forward) and for `outstanding_not_due_eop` / `outstanding_overdue_eop` those not yet due / overdue at the month end, for `owed_to_customers` the invoices whose customer paid more than the invoice still claims at the month end (credited after payment, paid twice) and got neither a refund nor a balance transfer, amount = the owed part, for `forecast_invoice` the expected invoices of the billing forecast by invoice date (`kind: forecast`, amount = gross), for `accounted_mrr` the recurring invoice positions with their share of the month by service period (`kind: accounted`), for `billing_gap` the difference between contract MRR and Accounted MRR per subscription item and cause (`kind: billing_gap`; `reason` = one cause, filter with `reason`), for `build_failure` (no month) the rows of the latest calculation attempt that broke a consistency check and cancelled it (`kind: build_failure`: `check`, `invoice`, `month`, `expectedText`, `actualText`, no amount; empty when the latest attempt succeeded, see `meta.build` of the finance datasets). `meta.sum` is the exact sum of `amount` over all lines. Customer-base and backlog cells: `cohort` the items of the cohort accounts at cohort month + age (MRR at month end), `churn_reason` the items of the lost accounts in the entry (item change, negative) over `month` or `from` / `to`, `backlog_event` the known future changes of a month (`kind: forward`), `payment_behaviour` the invoices paid in the month (`daysToPayment`), `logo_new` / `logo_lost` the items of the new / lost accounts, `restatement` the restatement findings of the month with their explanations.\n\nRequired permission: `analytics:read`.","href":"/v2-finance-api/drill-downs/get-details"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials/findings","title":"Data-quality findings of the MRR calculation","href":"/v2-finance-api/drill-downs/list-findings"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials/findings/{id}","title":"One data-quality finding with its explanation","href":"/v2-finance-api/drill-downs/get-finding"}]},{"group":"Snapshots","pages":[{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/snapshots","title":"Month-end MRR snapshots","href":"/v2-finance-api/snapshots/list-snapshots"},{"openapi":"assets/openapi-v2-finance.json post /api/analytics/finance/snapshots","title":"Take a month-end MRR snapshot again","href":"/v2-finance-api/snapshots/take-snapshot"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/snapshots/{month}/{version}","title":"Frozen MRR figures of a snapshot","href":"/v2-finance-api/snapshots/get-snapshot"}]},{"group":"Excel-Exporte","pages":[{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/recurring/excel","title":"Export the recurring revenue page as XLSX","href":"/v2-finance-api/excel/export-recurring"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/customers/excel","title":"Export the customer base page as XLSX","href":"/v2-finance-api/excel/export-customers"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/liquidity/excel","title":"Export the liquidity page as XLSX","href":"/v2-finance-api/excel/export-liquidity"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/revenue/excel","title":"Export the revenue page as XLSX","href":"/v2-finance-api/excel/export-revenue"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials/export/excel","title":"Export the MRR financials as XLSX","href":"/v2-finance-api/excel/export-mrr-table"},{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials/findings/export/excel","title":"Export the data-quality findings as XLSX","href":"/v2-finance-api/excel/export-findings"}]},{"group":"Definitionen","pages":[{"openapi":"assets/openapi-v2-finance.json get /api/analytics/finance/definitions","title":"Read the finance definitions catalogue","href":"/v2-finance-api/definitions/get-definitions"}]},{"group":"Einstellungen","pages":[{"openapi":"assets/openapi-v2-finance.json get /api/analytics/mrr-financials/settings","title":"Read the finance settings","href":"/v2-finance-api/settings/get-settings"},{"openapi":"assets/openapi-v2-finance.json patch /api/analytics/mrr-financials/settings","title":"Update the finance settings","href":"/v2-finance-api/settings/update-settings"}]}]}]},{"group":"Provisionen","icon":"percent","pages":[{"title":"Provisionen API","sidebarTitle":"Einführung","icon":"percent","href":"/v2-commission-api/introduction"},{"title":"Kernkonzepte","sidebarTitle":"Kernkonzepte","icon":"book","href":"/v2-commission-api/concepts"},{"group":"API","pages":[{"group":"Provisionspläne","pages":[{"openapi":"assets/openapi-v2-commission.json get /api/commissions/plans","title":"List commission plans","href":"/v2-commission-api/plans/list-plans"},{"openapi":"assets/openapi-v2-commission.json post /api/commissions/plans","title":"Create a commission plan","href":"/v2-commission-api/plans/create-plan"},{"openapi":"assets/openapi-v2-commission.json get /api/commissions/plans/{id}","title":"Get a commission plan","href":"/v2-commission-api/plans/get-plan"},{"openapi":"assets/openapi-v2-commission.json put /api/commissions/plans/{id}","title":"Update a commission plan","href":"/v2-commission-api/plans/update-plan"},{"openapi":"assets/openapi-v2-commission.json delete /api/commissions/plans/{id}","title":"Delete a commission plan","href":"/v2-commission-api/plans/delete-plan"}]}]}]},{"group":"Zahlungspläne","icon":"calendar-days","pages":[{"title":"Zahlungsplan API","sidebarTitle":"Einführung","icon":"calendar-days","href":"/v2-payment-plans-api/introduction"},{"title":"Schnellstart","sidebarTitle":"Schnellstart","icon":"rocket","href":"/v2-payment-plans-api/quickstart"},{"title":"Kernkonzepte","sidebarTitle":"Kernkonzepte","icon":"book","href":"/v2-payment-plans-api/concepts"},{"title":"Webhooks","sidebarTitle":"Webhooks","icon":"bell","href":"/v2-payment-plans-api/webhooks"},{"group":"API","pages":[{"group":"Zahlungsplan-Verwaltung","pages":[{"openapi":"assets/openapi-v2-payment-plans.json post /api/payment-plans","title":"Create a payment plan","href":"/v2-payment-plans-api/payment-plans/create-payment-plan"},{"openapi":"assets/openapi-v2-payment-plans.json get /api/payment-plans/{id}","title":"Get a payment plan","href":"/v2-payment-plans-api/payment-plans/get-payment-plan"},{"openapi":"assets/openapi-v2-payment-plans.json get /api/invoices/{id}/payment-plan","title":"Get the payment plan of an invoice","href":"/v2-payment-plans-api/payment-plans/get-invoice-payment-plan"},{"openapi":"assets/openapi-v2-payment-plans.json post /api/payment-plans/{id}/cancel","title":"Cancel a payment plan","href":"/v2-payment-plans-api/payment-plans/cancel-payment-plan"},{"openapi":"assets/openapi-v2-payment-plans.json post /api/payment-plans/{id}/extend","title":"Extend a payment plan","href":"/v2-payment-plans-api/payment-plans/extend-payment-plan"}]}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/2026-07"}]}]},{"language":"en","pages":[{"title":"en","href":"/en/introduction"}]}]},"title":"MRR financials table - Fynn Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}