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
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 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 Antwort
One page of lines, with groupBy=document one page of document groups, for restatement one page of findings with explanations.
War diese Seite hilfreich?