# Reports · DameDoklad API

> Operations in the Reports group.

Source: https://damedoklad.cz/en/docs/api-reference/reports/

# Reports

Operations in the Reports group.

## Get the financial overview: to-do counts, overdue receivables, cash on hand, year result, monthly revenue and expense with a forecast, and breakdowns by account

GET `/v1/overview`

Get the financial overview: to-do counts, overdue receivables, cash on hand, year result, monthly revenue and expense with a forecast, and breakdowns by account

MCP tool: `get-financial-overview`

### Query parameters

`year` integer min 2000 max 2100

The year an accounting period starts in, so a hospodářský rok from July 2026 is 2026. Defaults to the current one.

`periodId` string

One accounting period exactly, for two starting in the same year. Takes precedence over year.

`centerId` string

ID of the center.

### Response · 200

`asOf` string required date-time

`regime` string required

`year` integer required

`toDo` object required

`total` integer required

`documents` integer required

`movements` integer required

`overdue` object required

`amountHaler` integer | null required

`count` integer required

`oldestDays` integer required

`oldestBucket` null | string required

`money` object required

`balanceHaler` integer required

`changePercent` integer | null required

`result` null | object required

`amountHaler` integer | null required

`revenueHaler` integer required

`expenseHaler` integer required

`months` object\[\] required

`month` null | string required

`revenueHaler` integer required

`expenseHaler` integer required

`forecast` null | object required

`month` null | string required

`actualProfitHaler` integer required

`estimatedProfitHaler` integer required

`estimatedRevenueHaler` integer required

`estimatedExpenseHaler` integer required

`expensesByAccount` object\[\] required

`key` string required

`label` null | string required

`amountHaler` integer | null required

`revenuesByAccount` object\[\] required

`key` string required

`label` null | string required

`amountHaler` integer | null required

`toFinish` object\[\] required

`type` string required

`count` integer required

`path` null | string required

`label` null | string

`labelEn` string

`kind` string

`requires` string

`from` string date

`to` string date

`periodId` string

```bash
curl https://api.damedoklad.cz/v1/overview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/overview', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/overview",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Get open receivables or payables by age (not due, 1–30, 31–60, 61–90, over 90 days) in total and per contact

GET `/v1/reports/aging`

Get open receivables or payables by age (not due, 1–30, 31–60, 61–90, over 90 days) in total and per contact

MCP tool: `get-aging-report`

### Query parameters

`kind` "receivables" | "payables" default `"receivables"`

`asOf` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`kind` string required

`asOf` string required date

`buckets` object required

`not_due` integer required

`d1_30` integer required

`d31_60` integer required

`d61_90` integer required

`d90_plus` integer required

`totalHaler` integer | null required

`data` object\[\] required

`contactId` null | string required

`contactName` null | string required

`totalHaler` integer | null required

`not_due` integer required

`d1_30` integer required

`d31_60` integer required

`d61_90` integer required

`d90_plus` integer required

`retainedHaler` integer

`retainedBuckets` object

`not_due` integer required

`d1_30` integer required

`d31_60` integer required

`d61_90` integer required

`d90_plus` integer required

`retainedHaler` integer

```bash
curl https://api.damedoklad.cz/v1/reports/aging \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/reports/aging', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/reports/aging",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Get money in, money out, and closing balance per month for a year

GET `/v1/reports/cash-flow`

Get money in, money out, and closing balance per month for a year

MCP tool: `get-cash-flow-report`

### Query parameters

`year` integer min 2000 max 2100

The year an accounting period starts in, so a hospodářský rok from July 2026 is 2026. Defaults to the current one.

`periodId` string

One accounting period exactly, for two starting in the same year. Takes precedence over year.

`centerId` string

ID of the center.

### Response · 200

`year` integer required

`openingHaler` integer required

`data` object\[\] required

`month` null | string required

`inflowHaler` integer required

`outflowHaler` integer required

`closingHaler` integer required

`from` string date

`to` string date

```bash
curl https://api.damedoklad.cz/v1/reports/cash-flow \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/reports/cash-flow', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/reports/cash-flow",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Download a report or document list as XLSX or CSV

GET `/v1/reports/export`

Download a report or document list as XLSX or CSV

MCP tool: `export-report`

### Query parameters

`kind` "income\_expense" | "cash\_flow" | "aging" | "payment\_discipline" | "top\_contacts" | "issued\_invoices" | "received\_invoices" | "contacts" required

`format` "xlsx" | "csv" default `"xlsx"`

`year` integer min 2000 max 2100

The year an accounting period starts in, so a hospodářský rok from July 2026 is 2026. Defaults to the current one.

`periodId` string

One accounting period exactly, for two starting in the same year. Takes precedence over year.

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

Returns a application/octet-stream file.

```bash
curl https://api.damedoklad.cz/v1/reports/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/reports/export', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const file = await response.arrayBuffer();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/reports/export",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
content = response.content
```

## Get monthly revenue, expense, and result for a year (accrual under double entry, cash under tax records)

GET `/v1/reports/income-expense`

Get monthly revenue, expense, and result for a year (accrual under double entry, cash under tax records)

MCP tool: `get-income-expense-report`

### Query parameters

`year` integer min 2000 max 2100

The year an accounting period starts in, so a hospodářský rok from July 2026 is 2026. Defaults to the current one.

`periodId` string

One accounting period exactly, for two starting in the same year. Takes precedence over year.

`centerId` string

ID of the center.

### Response · 200

`year` integer required

`data` object\[\] required

`month` null | string required

`revenueHaler` integer required

`expenseHaler` integer required

`resultHaler` integer required

`from` string date

`to` string date

```bash
curl https://api.damedoklad.cz/v1/reports/income-expense \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/reports/income-expense', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/reports/income-expense",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Get how each customer pays (Platební kázeň): share paid on time, average and longest days late, and what is overdue now

GET `/v1/reports/payment-discipline`

Get how each customer pays (Platební kázeň): share paid on time, average and longest days late, and what is overdue now. For issued invoices, debit notes, and other receivables of the period, in CZK. Average late days are weighted by amount. A retention falls due on its own date. A set-off counts as paid on its date, an advance as on time.

MCP tool: `get-payment-discipline-report`

### Query parameters

`from` string YYYY-MM-DD

Invoices issued from this day. Defaults to 1 January of the asOf year.

`to` string YYYY-MM-DD

Invoices issued up to this day. Defaults to asOf.

`asOf` string YYYY-MM-DD

What counts as overdue is read on this day. Defaults to today.

`contactId` string

ID of the contact. Find it with list-contacts.

`year` integer min 2000 max 2100

The year an accounting period starts in, so a hospodářský rok from July 2026 is 2026. Defaults to the current one.

`periodId` string

One accounting period exactly, for two starting in the same year. Takes precedence over year.

### Response · 200

`from` string required date

`to` string required date

`asOf` string required date

`data` object\[\] required

`contactId` null | string required

`contactName` null | string required

`documents` integer required

`settledHaler` integer required

`lateHaler` integer required

`maxLateDays` integer required

`openHaler` integer required

`overdueHaler` integer required

`overdueDays` integer required

`averageLateDays` number required

`onTimePercent` null | number required

`rating` string required

```bash
curl https://api.damedoklad.cz/v1/reports/payment-discipline \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/reports/payment-discipline', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/reports/payment-discipline",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Get the largest customers or suppliers by turnover excluding VAT for a year

GET `/v1/reports/top-contacts`

Get the largest customers or suppliers by turnover excluding VAT for a year

MCP tool: `get-top-contacts-report`

### Query parameters

`kind` "customers" | "suppliers" default `"customers"`

`year` integer min 2000 max 2100

The year an accounting period starts in, so a hospodářský rok from July 2026 is 2026. Defaults to the current one.

`periodId` string

One accounting period exactly, for two starting in the same year. Takes precedence over year.

### Response · 200

`kind` string required

`year` integer required

`data` object\[\] required

`contactId` null | string required

`contactName` null | string required

`documents` integer required

`netHaler` integer required

`totalHaler` integer | null required

`hasMore` boolean required

`from` string date

`to` string date

```bash
curl https://api.damedoklad.cz/v1/reports/top-contacts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/reports/top-contacts', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/reports/top-contacts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```
