curl --request GET \
--url https://coreapi.io/api/analytics/mrr-financials/details \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/mrr-financials/details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://coreapi.io/api/analytics/mrr-financials/details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://coreapi.io/api/analytics/mrr-financials/details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": [
{
"kind": "movement",
"id": "<string>",
"month": "<string>",
"amount": {
"amount": "1234.56",
"currency": "EUR"
},
"account": {
"key": "<string>",
"label": "<string>"
},
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"subscription": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"item": {
"id": "<string>",
"name": "<string>",
"productName": "<string>"
},
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"productName": "<string>",
"invoice": {
"id": "<string>",
"number": "<string>",
"type": "TYPE_INVOICE",
"status": "<string>"
},
"transaction": {
"id": "<string>",
"type": "collected"
},
"countryCode": "<string>",
"movementType": "new",
"revenueClass": "recurring",
"reason": "<string>",
"reasons": {},
"mrrBop": {
"amount": "1234.56",
"currency": "EUR"
},
"mrrEop": {
"amount": "1234.56",
"currency": "EUR"
},
"delta": {
"amount": "1234.56",
"currency": "EUR"
},
"netAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"grossAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"openAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"unitAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"quantity": "3",
"billingInterval": "<string>",
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z",
"finalizationDate": "2023-11-07T05:31:56Z",
"dueDate": "2023-11-07T05:31:56Z",
"paidDate": "2023-11-07T05:31:56Z",
"documentKind": "invoice",
"documentNumber": "<string>",
"documentId": "<string>",
"referencedInvoiceId": "<string>",
"referencedInvoiceNumber": "<string>",
"positionName": "<string>",
"net": {
"amount": "1234.56",
"currency": "EUR"
},
"sources": [
{
"kind": "subscription_item",
"id": "<string>"
}
],
"daysToPayment": 12,
"forwardKind": "scheduled_end",
"cancellationReason": "<string>",
"invoiceDate": "2023-11-07T05:31:56Z",
"forecastKind": "pending_billing_item",
"days": 30,
"totalDays": 360,
"contractAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"expectedAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"accountedAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"cause": "partial_month",
"causeLabel": "Abrechnung beginnt später",
"expectedText": "erste Rechnung am 01.12.2026",
"invoiceMonth": "2026-03",
"billableSince": "2023-11-07T05:31:56Z",
"reasonLabel": "Preisänderung",
"check": "CASH_WITHIN_DOCUMENT",
"actualText": "collected 23800 − overpaid 0",
"counterpartTransactionId": "<string>",
"paymentMethodKind": "sepa_debit"
}
],
"meta": {
"page": 1,
"pageSize": 25,
"total": 112,
"sum": {
"amount": "1234.56",
"currency": "EUR"
},
"asOf": "2023-11-07T05:31:56Z"
}
}{
"status": 409,
"type": "ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED",
"title": "An error occurred",
"detail": "<string>"
}{
"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": "<string>"
}Lines behind one cell of the finance tables
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.
Required permission: analytics:read.
curl --request GET \
--url https://coreapi.io/api/analytics/mrr-financials/details \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/mrr-financials/details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://coreapi.io/api/analytics/mrr-financials/details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://coreapi.io/api/analytics/mrr-financials/details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": [
{
"kind": "movement",
"id": "<string>",
"month": "<string>",
"amount": {
"amount": "1234.56",
"currency": "EUR"
},
"account": {
"key": "<string>",
"label": "<string>"
},
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"subscription": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"item": {
"id": "<string>",
"name": "<string>",
"productName": "<string>"
},
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"productName": "<string>",
"invoice": {
"id": "<string>",
"number": "<string>",
"type": "TYPE_INVOICE",
"status": "<string>"
},
"transaction": {
"id": "<string>",
"type": "collected"
},
"countryCode": "<string>",
"movementType": "new",
"revenueClass": "recurring",
"reason": "<string>",
"reasons": {},
"mrrBop": {
"amount": "1234.56",
"currency": "EUR"
},
"mrrEop": {
"amount": "1234.56",
"currency": "EUR"
},
"delta": {
"amount": "1234.56",
"currency": "EUR"
},
"netAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"grossAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"openAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"unitAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"quantity": "3",
"billingInterval": "<string>",
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z",
"finalizationDate": "2023-11-07T05:31:56Z",
"dueDate": "2023-11-07T05:31:56Z",
"paidDate": "2023-11-07T05:31:56Z",
"documentKind": "invoice",
"documentNumber": "<string>",
"documentId": "<string>",
"referencedInvoiceId": "<string>",
"referencedInvoiceNumber": "<string>",
"positionName": "<string>",
"net": {
"amount": "1234.56",
"currency": "EUR"
},
"sources": [
{
"kind": "subscription_item",
"id": "<string>"
}
],
"daysToPayment": 12,
"forwardKind": "scheduled_end",
"cancellationReason": "<string>",
"invoiceDate": "2023-11-07T05:31:56Z",
"forecastKind": "pending_billing_item",
"days": 30,
"totalDays": 360,
"contractAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"expectedAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"accountedAmount": {
"amount": "1234.56",
"currency": "EUR"
},
"cause": "partial_month",
"causeLabel": "Abrechnung beginnt später",
"expectedText": "erste Rechnung am 01.12.2026",
"invoiceMonth": "2026-03",
"billableSince": "2023-11-07T05:31:56Z",
"reasonLabel": "Preisänderung",
"check": "CASH_WITHIN_DOCUMENT",
"actualText": "collected 23800 − overpaid 0",
"counterpartTransactionId": "<string>",
"paymentMethodKind": "sepa_debit"
}
],
"meta": {
"page": 1,
"pageSize": 25,
"total": 112,
"sum": {
"amount": "1234.56",
"currency": "EUR"
},
"asOf": "2023-11-07T05:31:56Z"
}
}{
"status": 409,
"type": "ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED",
"title": "An error occurred",
"detail": "<string>"
}{
"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": "<string>"
}Autorisierungen
API token of the organisation. Send it as Authorization: Bearer api_... The token is bound to exactly one organisation.
Abfrageparameter
The row of the cell.
new, expansion, contraction, lost, resurrecting, mrr_bop, mrr_eop, one_off, variable, cash_collected, cash_collected_this_month, cash_collected_other_months, cash_collected_unassigned, cash_collected_refund_returned, cash_refunded, cash_refunded_refund, cash_refunded_chargeback, cash_refunded_payout, cash_refunded_return_fee, cash_correction, cash_net, receivables_eop, billed_gross, billed_net, status_paid, status_settled, status_open, status_overdue, status_credited, status_written_off, status_overpaid, cash_in, cash_out, cash_in_for_month, outstanding_eop, outstanding_not_due_eop, outstanding_overdue_eop, owed_to_customers, forecast_invoice, accounted_mrr, billing_gap, ageing_not_due, ageing_1_30, ageing_31_60, ageing_61_90, ageing_over_90, revenue_product, revenue_customer_product, revenue_country, cohort, churn_reason, backlog_event, payment_behaviour, logo_new, logo_lost, restatement, build_failure Month of the cell (YYYY-MM, time zone of the organisation). Required except for ageing_* (as of today), build_failure and the revenue-page metrics, which accept from / to instead.
"2026-09"
Revenue-page metrics without month: first month of the range (YYYY-MM).
Revenue-page metrics without month: last month of the range (YYYY-MM).
ISO-4217 code of one of the organisation's currencies. Default: the default currency.
Movement scope. Default: the organisation setting.
subscription, invoice_address, customer, organisation Movement metrics: only the share of these reasons (comma-separated, e.g. discount_start,discount_end,discount_change).
Revenue-page cell: the product (revenue_product without it selects positions without product).
Revenue-page cell: the customer (revenue_customer_product).
Revenue-page cell: the country (revenue_country, ISO 3166-1 alpha-2; none or omitted selects positions without country).
Analytics segment filter of the page.
Customer filter of the page.
Product filter of the page.
Free text over customer name and number, subscription, item, product and invoice number.
100Revenue metrics only (one_off, variable, revenue_*): document groups the lines by the invoice they belong to (the invoice with its cancellations and credit notes) and pages over groups.
document lost with reason=contract_end: only contract ends with this cancellation reason code (none: without one). churn_reason: the churn-by-reason entry (a code, none, pause or voided).
cohort (required): first month of the cohort (YYYY-MM).
cohort (required): months since the cohort month.
x >= 0payment_behaviour: payment method type (sepa_debit, bank_transfer, card, …). Default: every method.
backlog_event: only this kind of known change.
end, price, discount_end, ramp, trial_end, start, other cash_correction: one side of the correction pairs, reversed (the cancelled entries, positive) or counter (the counter-entries, negative). Default: both. Only with metric=cash_correction; with any other metric the answer is 422 at part with code analytics.mrr_financials.part_correction_only.
reversed, counter restatement: only the findings of this restated figure (mrr_eop, lost_mrr, reasons.<movement>.<reason>, …).
Page, starting at 1.
x >= 1Lines per page.
1 <= x <= 200Antwort
One page of lines, with groupBy=document one page of document groups, for restatement one page of findings with explanations.
War diese Seite hilfreich?