curl --request GET \
--url https://coreapi.io/api/analytics/finance/revenue \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/finance/revenue"
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/finance/revenue', 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/finance/revenue",
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;
}{
"months": [
"<string>"
],
"byCountry": [
{
"countryCode": "DE",
"net": {
"amount": "1234.56",
"currency": "EUR"
},
"share": "0.250000"
}
],
"arrAtPeriodEnd": {
"committed": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"variable": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": [
{
"amount": "1234.56",
"currency": "EUR"
}
]
},
"details": [
{
"currency": "EUR",
"committed": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"variable": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"arr": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"oneOff": [
{
"amount": "1234.56",
"currency": "EUR"
}
]
}
],
"byProduct": [
{
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"values": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": {
"amount": "1234.56",
"currency": "EUR"
}
}
],
"topProducts": [
{
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"net": {
"amount": "1234.56",
"currency": "EUR"
},
"share": "0.125000"
}
],
"byCustomerAndProduct": {
"data": [
{
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"values": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": {
"amount": "1234.56",
"currency": "EUR"
},
"sparkline": [
"1200.00"
],
"products": [
{
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"values": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": {
"amount": "1234.56",
"currency": "EUR"
}
}
]
}
],
"meta": {
"page": 1,
"pageSize": 25,
"total": 112,
"sum": {
"amount": "1234.56",
"currency": "EUR"
},
"asOf": "2023-11-07T05:31:56Z"
}
},
"totals": {},
"meta": {
"asOf": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"scope": "invoice_address",
"currency": "EUR",
"from": "2025-10",
"to": "2026-09",
"findings": {
"error": 0,
"warning": 3,
"info": 12
},
"filtersNotApplied": [
"<string>"
],
"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": "<string>",
"failed": {
"invariants": [
"CASH_WITHIN_DOCUMENT"
],
"rowCount": 5,
"invoiceRowCount": 5
}
},
"dataBuildId": "<string>"
},
"accountingClosed": [
true
],
"revenueDetails": [
{
"currency": "EUR",
"recurring": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"oneOff": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"variable": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"totals": {}
}
]
}{
"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>"
}Revenue page datasets
Billed net revenue (all classes; net = gross − tax after position discounts, credit notes negative) by country, by product and per customer with product sub-rows, the top products, and ARR at each month end: committed (MRR × 12) plus the trailing twelve-month variable revenue. One currency, never converted; details repeats the ARR series for every currency the organisation has.
Required permission: analytics:read.
curl --request GET \
--url https://coreapi.io/api/analytics/finance/revenue \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/finance/revenue"
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/finance/revenue', 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/finance/revenue",
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;
}{
"months": [
"<string>"
],
"byCountry": [
{
"countryCode": "DE",
"net": {
"amount": "1234.56",
"currency": "EUR"
},
"share": "0.250000"
}
],
"arrAtPeriodEnd": {
"committed": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"variable": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": [
{
"amount": "1234.56",
"currency": "EUR"
}
]
},
"details": [
{
"currency": "EUR",
"committed": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"variable": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"arr": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"oneOff": [
{
"amount": "1234.56",
"currency": "EUR"
}
]
}
],
"byProduct": [
{
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"values": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": {
"amount": "1234.56",
"currency": "EUR"
}
}
],
"topProducts": [
{
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"net": {
"amount": "1234.56",
"currency": "EUR"
},
"share": "0.125000"
}
],
"byCustomerAndProduct": {
"data": [
{
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"values": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": {
"amount": "1234.56",
"currency": "EUR"
},
"sparkline": [
"1200.00"
],
"products": [
{
"product": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"values": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": {
"amount": "1234.56",
"currency": "EUR"
}
}
]
}
],
"meta": {
"page": 1,
"pageSize": 25,
"total": 112,
"sum": {
"amount": "1234.56",
"currency": "EUR"
},
"asOf": "2023-11-07T05:31:56Z"
}
},
"totals": {},
"meta": {
"asOf": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"scope": "invoice_address",
"currency": "EUR",
"from": "2025-10",
"to": "2026-09",
"findings": {
"error": 0,
"warning": 3,
"info": 12
},
"filtersNotApplied": [
"<string>"
],
"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": "<string>",
"failed": {
"invariants": [
"CASH_WITHIN_DOCUMENT"
],
"rowCount": 5,
"invoiceRowCount": 5
}
},
"dataBuildId": "<string>"
},
"accountingClosed": [
true
],
"revenueDetails": [
{
"currency": "EUR",
"recurring": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"oneOff": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"variable": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"total": [
{
"amount": "1234.56",
"currency": "EUR"
}
],
"totals": {}
}
]
}{
"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
First month (YYYY-MM, time zone of the organisation). Default: to minus 11 months.
Last month (YYYY-MM). Default: the current month. At most 36 months.
ISO-4217 code. Default: the default currency.
Movement scope (committed ARR is scope-independent; accepted for a uniform query).
subscription, invoice_address, customer, organisation Analytics segment filter.
Customer filter.
Product filter.
byCustomerAndProduct only: page, starting at 1.
x >= 1byCustomerAndProduct only: customers per page.
1 <= x <= 100byCustomerAndProduct only: customer name, customer number or the name of one of the customer's products contains this text (case-insensitive, % and _ are literal).
100Antwort
The datasets.
Datasets of the revenue page: revenue by country, ARR at each month end (MRR × 12, the one ARR of every page) with the trailing twelve-month variable revenue as its own row, per-currency ARR details, invoiced revenue per month by class ("Umsatzdetails", reconciling to the revenue by country and by product), revenue by product, top products, and revenue per customer with product sub-rows. Revenue is invoiced net revenue of all classes (net = gross − tax after position discounts) by finalization month; credit notes and cancellations are negative in the month they were issued. Dunning fees are not revenue.
Months of the range (YYYY-MM, time zone of the organisation), ascending.
Net revenue per country of the invoice address in the range, largest first. countryCode is null when no country is known.
Show child attributes
Show child attributes
ARR at each month end in the selected currency (MRR × 12) and the trailing twelve-month variable revenue.
Show child attributes
Show child attributes
ARR and the trailing twelve-month variable revenue per currency the organisation has data in.
Show child attributes
Show child attributes
Net revenue per product and month; the product is null for positions without product.
Show child attributes
Show child attributes
The ten products with the most net revenue in the range.
Show child attributes
Show child attributes
Page 1 (or the requested page) of the customer rows with product sub-rows and sparklines, as {data, meta}. Page turns should use GET /api/analytics/finance/revenue/customers, which returns the same shape without recomputing the other datasets.
Show child attributes
Show child attributes
Totals over the range: net (all revenue).
Show child attributes
Show child attributes
Calculation time, effective scope and currency, finding counts.
Show child attributes
Show child attributes
Per month of months: the month's postings are closed in accounting (the ledger of the month is final). The analytics figures follow the source dates (finalization, payment and settlement date, service period) and can still change after the close; a record made after the close is a POST_CLOSE_CHANGE finding.
Invoiced net revenue per month by class ("Umsatzdetails") per currency the organisation has data in: recurring + one-off + variable = total. Over the range the total equals totals.net, the sum of byCountry and the sum of byProduct (same revenue lines, same filter).
Show child attributes
Show child attributes
War diese Seite hilfreich?