# VAT and taxes · DameDoklad API

> Operations in the VAT and taxes group.

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

# VAT and taxes

Operations in the VAT and taxes group.

## List bad debt corrections, creditor (§ 46) and debtor (§ 74b)

GET `/v1/tax/bad-debts`

List bad debt corrections, creditor (§ 46) and debtor (§ 74b)

MCP tool: `list-tax-bad-debts`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`data` any\[\] required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/bad-debts', {
  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/tax/bad-debts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Record a bad debt correction once its § 46 or § 74b conditions hold; it enters the return for its date

POST `/v1/tax/bad-debts`

Record a bad debt correction once its § 46 or § 74b conditions hold; it enters the return for its date

MCP tool: `create-tax-bad-debt`

### Request body

`side` "creditor" | "debtor"

`kind` "reduction" | "increase"

`documentType` "invoice" | "received\_invoice" required

`documentId` string required

ID of the document.

`correctionDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`unpaidHaler` integer required min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`vatRate` integer required min 0 max 100

`ground` "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "74b1" | "74b2" | "74b3" | "74b4"

`facts` object

`firstOrderOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`limitSuspended` boolean

`legalGround` string max 200 chars

`evidenceNumber` string max 60 chars

`note` string max 2000 chars

### Response · 201

`id` string required

`side` string required

`documentType` string required

`documentId` string required

`kind` string required

`ground` null | string required

`facts` object required

`notRelated` boolean

`debtorKnown` boolean

`didNotKnowUnpaid` boolean

`enforcementStoppedNoAssets` boolean

`noOtherGround` boolean

`twoWrittenNotices` boolean

`insolvencyDecision` boolean

`insolvencyClaimFiled` boolean

`firstOrderOn` string | null required

`limitSuspended` boolean required

`correctionDate` string required date

`unpaidHaler` integer required

`vatRate` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`legalGround` null | string required

`evidenceNumber` null | string required

`note` string | null required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/bad-debts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "invoice",
  "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "correctionDate": "2026-10-30",
  "unpaidHaler": 1210000,
  "vatRate": 21
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/bad-debts', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "documentType": "invoice",
    "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "correctionDate": "2026-10-30",
    "unpaidHaler": 1210000,
    "vatRate": 21
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/bad-debts",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "documentType": "invoice",
        "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "correctionDate": "2026-10-30",
        "unpaidHaler": 1210000,
        "vatRate": 21
    },
)
data = response.json()
```

## Delete a bad debt correction

DELETE `/v1/tax/bad-debts/{id}`

Delete a bad debt correction

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-tax-bad-debt`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/bad-debts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/bad-debts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/tax/bad-debts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Check the § 46 or § 74b conditions for a correction without saving it, with the statute behind each condition

POST `/v1/tax/bad-debts/check`

Check the § 46 or § 74b conditions for a correction without saving it, with the statute behind each condition

MCP tool: `check-tax-bad-debt`

### Request body

`side` "creditor" | "debtor"

`kind` "reduction" | "increase"

`documentType` "invoice" | "received\_invoice" required

`documentId` string required

ID of the document.

`correctionDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`unpaidHaler` integer required min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`vatRate` integer required min 0 max 100

`ground` "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "74b1" | "74b2" | "74b3" | "74b4"

`facts` object

`firstOrderOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`limitSuspended` boolean

`legalGround` string max 200 chars

`evidenceNumber` string max 60 chars

`note` string max 2000 chars

### Response · 200

`allowed` boolean required

`conditions` object\[\] required

`code` null | string required

`met` boolean required

`section` string required

`message` null | string required

`latestDate` null | string required date

`side` string required

`section` string required

`deadline` string date

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/bad-debts/check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "invoice",
  "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "correctionDate": "2026-10-30",
  "unpaidHaler": 1210000,
  "vatRate": 21
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/bad-debts/check', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "documentType": "invoice",
    "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "correctionDate": "2026-10-30",
    "unpaidHaler": 1210000,
    "vatRate": 21
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/bad-debts/check",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "documentType": "invoice",
        "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "correctionDate": "2026-10-30",
        "unpaidHaler": 1210000,
        "vatRate": 21
    },
)
data = response.json()
```

## Received invoices past the deadline of § 74b odst. 3 whose deduction must be lowered

GET `/v1/tax/bad-debts/debtor-due`

Received invoices past the deadline of § 74b odst. 3 whose deduction must be lowered

MCP tool: `list-tax-debtor-corrections`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "tax\_debtor\_correction" required

`id` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`action` string required

`dueDate` null | string required date

`deadline` string required date

`lastPayDay` string required date

`unpaidHaler` integer required

`alreadyCorrectedHaler` integer required

`vatRate` integer required

`rates` object\[\] required

`vatRate` integer required

`unpaidHaler` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`correctionDate` string required date

`currency` null | string required

`lastDate` string date

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/tax/bad-debts/debtor-due \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/bad-debts/debtor-due', {
  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/tax/bad-debts/debtor-due",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## The grounds of § 46 odst. 1 with the facts the user must confirm for each

GET `/v1/tax/bad-debts/grounds`

The grounds of § 46 odst. 1 with the facts the user must confirm for each

MCP tool: `get-tax-bad-debt-grounds`

### Response · 200

`common` string\[\] required

`grounds` object\[\] required

`ground` null | string required

`section` string required

`facts` string\[\] required

`date` string

`factLabels` object required

`enforcementRunning` string required

`enforcementStoppedNoAssets` string required

`insolvencyClaimFiled` string required

`insolvencyDecision` string required

`probateFinished` string required

`proceedingRunning` string required

`rightsExercised` string required

`otherClaimEnforcementEnded` string required

`otherClaimEnforcementRunning` string required

`twoWrittenNotices` string required

`noOtherGround` string required

`debtorKnown` string required

`didNotKnowUnpaid` string required

`notRelated` string required

```bash
curl https://api.damedoklad.cz/v1/tax/bad-debts/grounds \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/bad-debts/grounds', {
  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/tax/bad-debts/grounds",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Every tax deadline of a year for this taxpayer: VAT, OSS, income tax, overviews, road and property tax, advances, with their status

GET `/v1/tax/calendar`

Every tax deadline of a year for this taxpayer: VAT, OSS, income tax, overviews, road and property tax, advances, with their status

MCP tool: `get-tax-calendar`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`year` integer required

`data` object\[\] required

`form` string required

`periodKey` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`statutory` string required date

`due` string required date

`moved` boolean required

`status` string required

`daysLeft` integer required

`overdue` boolean required

`key` string required

`kind` string required

`amountKc` integer | null required

`total` integer required

`hasMore` boolean required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/calendar', {
  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/tax/calendar",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## All VAT, income and road tax deadlines for a year, moved to the next working day where needed

GET `/v1/tax/deadlines`

All VAT, income and road tax deadlines for a year, moved to the next working day where needed

MCP tool: `list-tax-deadlines`

### Query parameters

`year` integer required min 2016 max 2100

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`form` string required

`periodKey` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`statutory` string required date

`due` string required date

`moved` boolean required

`status` string required

`daysLeft` integer required

`overdue` boolean required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/deadlines', {
  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/tax/deadlines",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## List own VAT registrations in other EU states, with the rates entered for each

GET `/v1/tax/eu-registrations`

List own VAT registrations in other EU states, with the rates entered for each

MCP tool: `list-eu-vat-registrations`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "eu\_vat\_registration" required

`id` string required

`country` null | string required

`vatNumber` string required

`validFrom` null | string required date

`validTo` null | string required date

`establishment` null | string required

`basicRate` integer | null required

`reducedRate` integer | null required

`secondReducedRate` integer | null required

`currency` null | string required

`vatAccount` string required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations', {
  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/tax/eu-registrations",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add a VAT registration in another EU state: number, dates, branch, and that state’s rates

POST `/v1/tax/eu-registrations`

Add a VAT registration in another EU state: number, dates, branch, and that state’s rates. A document then takes vatMode eu\_registration: the buyer’s country picks the registration, and only the base reaches the Czech return, on ř. 26. Rates left out come from the Commission’s table on the first day, and the currency from the state.

MCP tool: `create-eu-vat-registration`

### Request body

`country` string required 2 chars

`vatNumber` string required min 3 chars max 20 chars

`validFrom` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`validTo` string | null

Date as YYYY-MM-DD.

`establishment` string | null

`basicRate` number | null

`reducedRate` number | null

`secondReducedRate` number | null

`currency` string | null

ISO 4217 currency code, for example CZK or EUR.

### Response · 201

`id` string required

`country` null | string required

`vatNumber` string required

`validFrom` null | string required date

`validTo` null | string required date

`establishment` null | string required

`basicRate` integer | null required

`reducedRate` integer | null required

`secondReducedRate` integer | null required

`currency` null | string required

`vatAccount` string required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/eu-registrations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "country": "string",
  "vatNumber": "string",
  "validFrom": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "country": "string",
    "vatNumber": "string",
    "validFrom": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/eu-registrations",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "country": "string",
        "vatNumber": "string",
        "validFrom": "2026-10-30"
    },
)
data = response.json()
```

## Change a VAT registration in another EU state, for example its end date or rates

PATCH `/v1/tax/eu-registrations/{id}`

Change a VAT registration in another EU state, for example its end date or rates

MCP tool: `update-eu-vat-registration`

### Path parameters

`id` string required

### Request body

`country` string 2 chars

`vatNumber` string min 3 chars max 20 chars

`validFrom` string YYYY-MM-DD

Date as YYYY-MM-DD.

`validTo` string | null

Date as YYYY-MM-DD.

`establishment` string | null

`basicRate` number | null

`reducedRate` number | null

`secondReducedRate` number | null

`currency` string | null

ISO 4217 currency code, for example CZK or EUR.

### Response · 200

`id` string required

`country` null | string required

`vatNumber` string required

`validFrom` null | string required date

`validTo` null | string required date

`establishment` null | string required

`basicRate` integer | null required

`reducedRate` integer | null required

`secondReducedRate` integer | null required

`currency` null | string required

`vatAccount` string required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/tax/eu-registrations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "country": "string",
  "vatNumber": "string",
  "validFrom": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "country": "string",
    "vatNumber": "string",
    "validFrom": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/tax/eu-registrations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "country": "string",
        "vatNumber": "string",
        "validFrom": "2026-10-30"
    },
)
data = response.json()
```

## Delete a VAT registration no document uses yet. One already used is ended with a date instead

DELETE `/v1/tax/eu-registrations/{id}`

Delete a VAT registration no document uses yet. One already used is ended with a date instead

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-eu-vat-registration`

### Path parameters

`id` string required

### Response · 200

`id` string required

`country` null | string required

`vatNumber` string required

`validFrom` null | string required date

`validTo` null | string required date

`establishment` null | string required

`basicRate` integer | null required

`reducedRate` integer | null required

`secondReducedRate` integer | null required

`currency` null | string required

`vatAccount` string required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/eu-registrations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/tax/eu-registrations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Which registration a buyer’s state picks on a date, with the currency a document under it takes

GET `/v1/tax/eu-registrations/for-contact`

Which registration a buyer’s state picks on a date, with the currency a document under it takes

MCP tool: `get-eu-registration-for-contact`

### Query parameters

`contactId` string required

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

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`country` null | string required

`registered` boolean required

`currency` null | string required

```bash
curl https://api.damedoklad.cz/v1/tax/eu-registrations/for-contact \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations/for-contact', {
  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/tax/eu-registrations/for-contact",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## A member state’s VAT rates and currency on a date, from the Commission’s table that OSS uses. The state’s own website decides

GET `/v1/tax/eu-registrations/rates`

A member state’s VAT rates and currency on a date, from the Commission’s table that OSS uses. The state’s own website decides

MCP tool: `get-eu-vat-rates`

### Query parameters

`country` string required 2 chars

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`country` null | string required

`date` string required date

`currency` null | string required

`known` boolean required

`standard` integer required

`reduced` integer\[\] required

```bash
curl https://api.damedoklad.cz/v1/tax/eu-registrations/rates \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations/rates', {
  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/tax/eu-registrations/rates",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Base and VAT per state and rate for a period, as a working paper for the return filed in that state

GET `/v1/tax/eu-registrations/summary`

Base and VAT per state and rate for a period, as a working paper for the return filed in that state

MCP tool: `get-eu-vat-summary`

### Query parameters

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`from` string required date

`to` string required date

`rows` object\[\] required

`country` null | string required

`currency` null | string required

`rate` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`documentCount` integer required

```bash
curl https://api.damedoklad.cz/v1/tax/eu-registrations/summary \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/eu-registrations/summary', {
  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/tax/eu-registrations/summary",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## List tax filings, newest first, with their status

GET `/v1/tax/filings`

List tax filings, newest first, with their status

MCP tool: `list-tax-filings`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`form` "DPHDP3" | "DPHKH1" | "DPHSHV" | "DPFDP7" | "DPPDP9" | "DSLDP3" | "OSSEI1" | "OSSNI1" | "OSSII1" | "SMEHL1" | "SMEOZ1" | "DNEDP6" | "OSVCSS" | "OSVCZP"

`year` integer min -9007199254740991 max 9007199254740991

### Response · 200

`data` object\[\] required

`object` "tax\_filing" required

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`certificates` object\[\]

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`A2` object\[\] required

`A3` any\[\] required

`A4` object\[\] required

`A5` object required

`B1` any\[\] required

`B2` object\[\] required

`B3` object required

`C` object required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`tableB` null | object

`tableC` object

`tableF` object

`tableG` integer

`tableH` null | object

`tableI` null | object

`tableJ` any

Null in every recorded response.

`tableK` object

`losses` object\[\] required

`remainingLossKc` integer required

`issues` object\[\] required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`inputs` object required

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`attachment2` null | object

`attachment3` null | object

`attachment4` null | object

`foreignCertificates` object\[\]

`spouse` object

`children` object\[\]

`employers` object\[\]

`bonus` object

`spouseDetails` object

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`liabilities` object\[\] required

`income` object\[\] required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`mainStart` object required

`side` object required

`health` object required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`mainStart` object required

`side` object required

`health` object required

`computed` object

`year` integer required

`land` object\[\]

`buildings` object\[\]

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`returnDue` string date

`rows` object\[\]

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`issues` object\[\] required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings', {
  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/tax/filings",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Start a draft filing for a form and period; the figures stay live until it is finalized

POST `/v1/tax/filings`

Start a draft filing for a form and period; the figures stay live until it is finalized

MCP tool: `create-tax-filing`

### Request body

`form` "DPHDP3" | "DPHKH1" | "DPHSHV" | "DPFDP7" | "DPPDP9" | "DSLDP3" | "OSSEI1" | "OSSNI1" | "OSSII1" | "SMEHL1" | "SMEOZ1" | "DNEDP6" | "OSVCSS" | "OSVCZP" required

`year` integer required min 2016 max 2100

`month` integer min 1 max 12

`quarter` integer min 1 max 4

`kind` "regular" | "corrective" | "additional" | "additional\_corrective" | "followup" | "followup\_corrective"

`discoveredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`nextPeriodCode` "Q" | "M"

`callNumber` string max 32 chars

`note` string max 2000 chars

`inputs` object

### Response · 201

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/filings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "form": "DPHDP3",
  "year": 2026
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "form": "DPHDP3",
    "year": 2026
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/filings",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "form": "DPHDP3",
        "year": 2026
    },
)
data = response.json()
```

## A filing with its figures, problems and audit trail; a locked filing shows its snapshot and whether books changed since

GET `/v1/tax/filings/{id}`

A filing with its figures, problems and audit trail; a locked filing shows its snapshot and whether books changed since

MCP tool: `get-tax-filing`

### Path parameters

`id` string required

### Response · 200

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  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/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Change a draft filing’s details such as discovery date, next period code or notes

PATCH `/v1/tax/filings/{id}`

Change a draft filing’s details such as discovery date, next period code or notes

MCP tool: `update-tax-filing`

### Path parameters

`id` string required

### Request body

`discoveredOn` string | null

Date as YYYY-MM-DD.

`nextPeriodCode` "Q" | "M" | null

`callNumber` string | null

`note` string | null

`inputs` object

### Response · 200

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

```bash
curl -X PATCH https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "discoveredOn": "2026-10-30",
  "nextPeriodCode": "Q",
  "callNumber": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "discoveredOn": "2026-10-30",
    "nextPeriodCode": "Q",
    "callNumber": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "discoveredOn": "2026-10-30",
        "nextPeriodCode": "Q",
        "callNumber": "string"
    },
)
data = response.json()
```

## Delete a draft filing. Locked and filed filings cannot be deleted

DELETE `/v1/tax/filings/{id}`

Delete a draft filing. Locked and filed filings cannot be deleted

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-tax-filing`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## Record that a finalized filing was submitted, with the date and reference

POST `/v1/tax/filings/{id}/filed`

Record that a finalized filing was submitted, with the date and reference

MCP tool: `mark-tax-filing-filed`

### Path parameters

`id` string required

### Request body

`filedOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`reference` string max 100 chars

### Response · 200

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/filed \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "filedOn": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/filed', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "filedOn": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/filed",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "filedOn": "2026-10-30"
    },
)
data = response.json()
```

## Lock a draft: store a snapshot and the exact XML. Later changes in the books never alter it

POST `/v1/tax/filings/{id}/finalize`

Lock a draft: store a snapshot and the exact XML. Later changes in the books never alter it

MCP tool: `finalize-tax-filing`

### Path parameters

`id` string required

### Response · 200

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/finalize \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## Override one VAT return row in a draft (or clear it with null); the reason is kept in the audit trail

POST `/v1/tax/filings/{id}/overrides`

Override one VAT return row in a draft (or clear it with null); the reason is kept in the audit trail

MCP tool: `override-tax-filing-row`

### Path parameters

`id` string required

### Request body

`field` string required

`value` integer | null required

`reason` string required min 3 chars max 500 chars

### Response · 200

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/overrides \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "field": "string",
  "value": -9007199254740991,
  "reason": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/overrides', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "field": "string",
    "value": -9007199254740991,
    "reason": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/overrides",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "field": "string",
        "value": -9007199254740991,
        "reason": "string"
    },
)
data = response.json()
```

## Download a working PDF copy of a filing; drafts are marked by their status

GET `/v1/tax/filings/{id}/pdf`

Download a working PDF copy of a filing; drafts are marked by their status

MCP tool: `download-tax-filing-pdf`

### Path parameters

`id` string required

### Response · 200

Returns a application/pdf file.

```bash
curl https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf', {
  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/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
content = response.content
```

## Unlock a finalized filing that has not been filed; the old snapshot is dropped and the step is audited

POST `/v1/tax/filings/{id}/reopen`

Unlock a finalized filing that has not been filed; the old snapshot is dropped and the step is audited

MCP tool: `reopen-tax-filing`

### Path parameters

`id` string required

### Request body

`reason` string required min 3 chars max 500 chars

### Response · 200

`id` string required

`form` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`kind` string required

`status` string required

`discoveredOn` null | string required date

`nextPeriodCode` string | null required

`callNumber` string | null required

`overrides` object required

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`advancesPaidKc` integer

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`sub` string required

`letter` string required

`section` string required

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`eurRate` integer

`schemeNumber` string

`internalNumber` string

`additionalReasons` string

`osszCode` string

`birthDate` null | string date

`mainMonths` integer

`sideMonths` integer

`birthNumber` string

`overpaymentToAdvances` boolean

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRateDate` string date

`losses` object\[\]

`to` string required date

`from` string required date

`lossKc` integer required

`usedNowKc` integer required

`usedPriorKc` integer required

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`states` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`taxCredits` object

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`turnoverKc` integer

`researchClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`educationClaims` object\[\]

`to` string required date

`from` string required date

`claimKc` integer required

`usedNowKc` integer required

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`cooperating` object\[\] required

`dic` null | string required

`lastName` null | string required

`relation` string required

`sharePct` integer required

`firstName` null | string required

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`row` string required

`text` string required

`separateBaseIncomes` object\[\]

`kind` string required

`country` null | string required

`incomeKc` integer required

`description` null | string required

`foreignTaxKc` integer

`acquisitionCostKc` integer

`otherDeductionsKc` integer

`taxReturnDuty` boolean

`variableSymbol` null | string

`nextSide` boolean

`flatTaxReason` string

`sideReason_zam` boolean

`cooperatingCity` string

`cooperatingLastName` string

`filedElectronically` boolean

`cooperatingBirthDate` string date

`cooperatingFirstName` string

`cooperatingPostalCode` string

`cooperatingBirthNumber` string

`cooperatingHouseNumber` string

`foreign` object

`credits` object\[\] required

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`certificates` object\[\]

`taxKc` integer required

`country` null | string required

`incomeKc` integer required

`taxLocal` integer required

`authority` string required

`publication` object

`email` null | string required

`notes` boolean

`equityChanges` boolean

`statementFiles` string\[\]

`rental` object

`flat` boolean required

`incomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`lastName` null | string required

`birthDate` null | string required date

`firstName` null | string required

`childUnder3` boolean required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`otherIncome` object\[\]

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`description` null | string required

`separateBase` object

`capitalIncomeKc` integer required

`bonusEligible` boolean

`previousId` null | string required

`finalizedAt` null | string required date-time

`filedOn` null | string required date

`filedReference` null | string required

`note` string | null required

`createdAt` string required date-time

`updatedAt` string required date-time

`computed` object

`form` string required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`subject` null | object required

`oid` string

`workspaceOid` string

`subjectType` string required

`firstName` null | string

`lastName` null | string

`title` string | null

`financeOfficeCode` null | string

`workplaceCode` null | string

`naceCode` null | string

`street` null | string

`houseNumber` null | string

`orientationNumber` string | null

`city` null | string

`postalCode` null | string

`country` string | null

`phone` null | string

`email` null | string

`contactFirstName` string | null

`contactLastName` string | null

`contactPhone` string | null

`signerFirstName` null | string

`signerLastName` null | string

`signerRole` null | string

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

`createdAt` string date-time

`updatedAt` string date-time

`name` null | string required

`dic` null | string required

`ico` null | string required

`rows` array | object

`country` null | string required

`vatId` string

`code` integer | null

`count` integer

`valueHaler` integer | null

`contactName` null | string

`value` integer

`storno` boolean

`rate` integer

`rateType` string

`supplyType` string

`baseCents` integer

`vatCents` integer

`sector` null | string

`cents` integer

`identifiedPerson` boolean

`cumulativeRows` object

`attachments` object\[\]

`section` string required

`title` null | string required

`lines` string\[\] required

`row` string

`adjustmentDetails` object\[\]

`id` string required

`kind` string required

`row` integer required

`values` object required

`base` integer

`full` integer

`deductible` integer

`value` integer

`note` null | string required

`source` string required

`settlement` null | object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`entriesCount` integer

`issues` object\[\] required

`severity` string required

`code` null | string required

`message` null | string required

`documentId` null | string

`number` null | string

`statement` object

`A1` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`code` null | string required

`baseHaler` integer | null required

`A2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`country` null | string required

`vatId` string required

`evidenceNumber` null | string required

`date` string required date

`base1` integer required

`vat1` integer required

`A3` any\[\] required

`A4` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`regime` integer required

`badDebt` string required

`base1` integer required

`vat1` integer required

`A5` object required

`base1` integer

`vat1` integer

`base2` integer

`vat2` integer

`B1` any\[\] required

`B2` object\[\] required

`documentId` null | string required

`number` null | string required

`contactName` null | string required

`dic` null | string required

`evidenceNumber` null | string required

`date` string required date

`proportional` string required

`badDebt` string required

`base1` integer required

`vat1` integer required

`base2` integer

`vat2` integer

`B3` object required

`base1` integer

`vat1` integer

`C` object required

`obrat23` integer required

`obrat5` integer required

`pln23` integer required

`pln5` integer required

`plnRezPren` integer required

`rezPren23` integer required

`rezPren5` integer required

`celkZdA2` integer required

`empty` boolean

`allRows` object\[\]

`country` null | string required

`vatId` string required

`code` integer | null required

`count` integer required

`valueHaler` integer | null required

`contactName` null | string required

`value` integer required

`worksheet` object

`year` integer required

`rows` object required

`annex2` any

Null in every recorded response.

`annex3` any

Null in every recorded response.

`cfcCredit` any

Null in every recorded response.

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`2` integer required

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` object\[\] required

`education` object\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`disabledEmployees` number required

`severelyDisabledEmployees` number required

`tableI` null | object

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`row320` integer required

`states` object\[\] required

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` integer | null required

`currency` null | string required

`losses` object\[\] required

`to` string required date

`from` string required date

`lossKc` integer required

`lossYear` integer required

`usedNowKc` integer required

`remainingKc` integer required

`usedPriorKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`links` object required

`previousLosses` any\[\] required

`allowances` object required

`transition` object required

`depreciationDifferenceKc` integer

`tableC` object

`inputs` object required

`wageTaxPaidKc` integer

`employmentIncomeKc` integer

`losses` object\[\]

`giftsKc` integer

`accountingCategory` string

`tableC` object

`foreignTax` object

`taxCredits` object

`turnoverKc` integer

`researchClaims` object\[\]

`educationClaims` object\[\]

`employeesAverage` integer

`otherAdditionsKc` integer

`business` object

`flatRatePercent` integer

`otherIncreaseKc` integer

`specialAttachments` object\[\]

`separateBaseIncomes` object\[\]

`otherDeductionsKc` integer

`additionalReasons` string

`foreign` object

`publication` object

`statementFiles` string\[\]

`rental` object

`spouse` boolean | object

`children` object\[\]

`employers` object\[\]

`otherIncome` object\[\]

`separateBase` object

`bonusEligible` boolean

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` object\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`other` object required

`rental` object required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`attachment4` null | object

`foreignCertificates` object\[\]

`authority` string required

`country` null | string required

`taxLocal` integer required

`taxKc` integer required

`incomeKc` integer required

`estimated` boolean required

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`lastName` null | string

`birthDate` null | string date

`firstName` null | string

`childUnder3` boolean

`statementsNeeded` boolean

`publicBenefit` any

Null in every recorded response.

`separateBase` null | object

`331` integer required

`332` integer required

`333` integer required

`334` integer required

`335` integer required

`items` object\[\] required

`source` object

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`previous` null | object

`taxKc` integer required

`lossKc` integer required

`statements` null | object

`assets` object\[\] required

`c_radku` integer required

`kc_brutto` integer required

`kc_korekce` integer | null required

`kc_netto` integer required

`kc_netto_min` integer | null required

`liabilities` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`income` object\[\] required

`c_radku` integer required

`kc_sled` integer | null required

`kc_min` integer | null required

`asOf` string required date

`range` string required

`beforeTaxKc` integer required

`corrections` object\[\]

`year` integer required

`country` null | string required

`quarter` integer | null required

`correctionCents` integer required

`eurRate` integer | null

`eurRateDate` null | string date

`scheme` string

`schemeNumber` null | string

`intermediaryNumber` any

Null in every recorded response.

`internalNumber` string

`totalVatCents` integer

`totalDueCents` integer

`bank` object

`iban` string | null required

`accountName` string required

`overview` object

`year` integer required

`rows` object required

`participatesSide` boolean

`decisiveAmountKc` integer | null

`balanceKc` integer required

`nextAdvanceKc` integer | null required

`nextYear` integer required

`issues` any\[\] required

`taxBase` object

`taxBaseKc` integer required

`source` string required

`filingId` null | string required

`status` null | string required

`deadlines` object

`taxDue` string required date

`overview` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`balanceDue` string required date

`minimum` object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`minimumNext` null | object

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

`computed` object

`year` integer required

`land` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number

`coefficient` integer | null

`parcelNumber` integer required

`inflation` integer required

`computed` object required

`cadastralCode` integer

`municipalityCode` integer

`pricePerM2` integer

`exemptAreaM2` integer

`exemptions` object\[\]

`buildings` object\[\]

`type` string required

`areaM2` integer required

`ratePerM2` number required

`houseNumber` integer | null required

`parcelNumber` integer required

`cadastralCode` integer required

`businessAreaM2` integer required

`municipalityCode` integer required

`inflation` integer required

`computed` object required

`landTax` integer

`buildingTax` integer

`total` integer required

`payments` object\[\]

`due` string required date

`amountKc` integer required

`returnDue` string date

`rows` object\[\]

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`payable` integer

`reasons` any

Null in every recorded response.

`notice` object

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`totalCents` integer required

`limit` object

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`evidenceNumber` null | string

`exceededOn` null | string date

`totalCents` integer

`due` string date

`publication` null | object

`pr11_rozv` string required

`pr11_vzz` string required

`pr11_puz` string required

`pr11_pzvk` string required

`pr11_ppt` string required

`pr11_uzmus` string required

`pr11_email` string required

`xmlIssues` object\[\]

`code` null | string required

`severity` string required

`message` null | string required

`lockedAt` null | string date-time

`locked` boolean

`changedSinceLock` boolean

`events` object\[\]

`object` "tax\_filing\_event" required

`id` string required

`action` string required

`field` null | string required

`oldValue` null | string required

`newValue` null | string required

`reason` null | string required

`actorId` null | string required

`createdAt` string required date-time

`rowLabels` object

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "reason": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "reason": "string"
    },
)
data = response.json()
```

## Download a finalized filing as EPO XML for the Finanční správa

GET `/v1/tax/filings/{id}/xml`

Download a finalized filing as EPO XML for the Finanční správa

MCP tool: `download-tax-filing-xml`

### Path parameters

`id` string required

### Response · 200

Returns a application/xml file.

```bash
curl https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/xml \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/xml', {
  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/tax/filings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/xml",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
content = response.content
```

## Income tax worksheet for a year from the books: DPFO from the cash book or DPPO from the journal, plus deadlines and advances

GET `/v1/tax/income`

Income tax worksheet for a year from the books: DPFO from the cash book or DPPO from the journal, plus deadlines and advances

MCP tool: `get-income-tax-worksheet`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`form` string required

`year` integer required

`filingId` null | string required

`filingStatus` null | string

`worksheet` object required

`year` integer required

`rows` object required

`annex2` null | object

`271` integer required

`272` integer required

`273` integer required

`274` integer required

`282` integer required

`284` integer required

`286` integer required

`288` integer required

`290` integer required

`periods` object\[\] required

`to` string required date

`from` string required date

`days` integer required

`annex3` null | object

`a` object required

`b` object required

`totalA` integer required

`totalB` integer required

`tableI` any required

Null in every recorded response.

`tableII` any required

Null in every recorded response.

`tableIII` object required

`rows` object required

`priceKc` integer required

`expenseKc` integer required

`differenceKc` integer required

`companies` any\[\] required

`tableIVKc` integer required

`tableV` object required

`1` integer required

`2` integer required

`claims` any\[\] required

`cfcCredit` null | object

`states` object\[\] required

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`6` integer required

`7` integer required

`country` null | string required

`r6` integer required

`r7` integer required

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`1` integer

`2` integer

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` any\[\] required

`education` any\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` any

Null in every recorded response.

`tableI` any

Null in every recorded response.

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` any required

Null in every recorded response.

`currency` null | string required

`losses` object\[\] required

`from` string required date

`to` string required date

`lossKc` integer required

`usedPriorKc` integer required

`usedNowKc` integer required

`lossYear` integer required

`remainingKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`relatedPartyAdvances` object

`increaseKc` integer required

`decreaseKc` integer required

`rows` object\[\] required

`publicBenefit` object

`treatment` null | string required

`activities` object\[\] required

`outsideHaler` integer required

`exemptHaler` integer required

`costBackHaler` integer required

`taxedHaler` integer required

`filingRequired` boolean required

`issues` object\[\] required

`inputs` object required

`flatRatePercent` integer

`fundPeriods` object\[\]

`to` string required date

`from` string required date

`antiAvoidance` object

`hybridKc` integer required

`transfersOther` object required

`otherAdditionsKc` integer

`cfcForeignTaxStates` object\[\]

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`useAssetLinks` boolean

`useTransportFlatRate` boolean

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`rental` object

`incomeKc` integer required

`flat` boolean required

`otherIncome` object\[\]

`kind` string required

`description` null | string required

`incomeKc` integer required

`expensesKc` integer required

`foreign` object

`credits` object\[\] required

`separateBase` object

`capitalIncomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`childUnder3` boolean required

`firstName` null | string required

`lastName` null | string required

`birthDate` null | string required date

`children` object\[\]

`order` integer required

`months` integer

`firstName` null | string

`lastName` null | string

`birthDate` null | string date

`employmentIncomeKc` integer

`wageTaxPaidKc` integer

`losses` object\[\]

`from` string required date

`to` string required date

`lossKc` integer required

`usedPriorKc` integer required

`usedNowKc` integer required

`giftsKc` integer

`accountingCategory` string

`bonusEligible` boolean

`publicBenefit` object

`enabled` boolean required

`standard` string

`activities` object\[\]

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` any\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`rental` object required

`201` integer required

`202` integer required

`203` integer required

`204` integer required

`205` integer required

`206` integer required

`201a` integer required

`flat` boolean required

`other` object required

`207` integer required

`208` integer required

`209` integer required

`items` object\[\] required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`321` integer required

`322` integer required

`323` integer required

`324` number required

`325` number required

`326` integer required

`327` integer required

`country` null | string required

`attachment4` null | object

`foreignCertificates` any\[\]

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`firstName` null | string

`lastName` null | string

`birthDate` null | string date

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`childUnder3` boolean

`firstName` null | string

`lastName` null | string

`birthDate` null | string date

`statementsNeeded` boolean

`publicBenefit` null | object

`standard` string required

`reductionKc` integer required

`treatment` null | string required

`activities` object\[\] required

`name` null | string required

`economic` boolean required

`subsidyHaler` integer required

`giftHaler` integer required

`membershipHaler` integer required

`interestHaler` integer required

`otherIncomeHaler` integer required

`costHaler` integer required

`outsideBase` boolean required

`taxableIncomeHaler` integer required

`costAllowedHaler` integer required

`costDisallowedHaler` integer required

`filingRequired` boolean required

`reductionLimitKc` integer required

`savedTaxKc` integer required

`useBy` string required date

`separateBase` any

Null in every recorded response.

`deadlines` object

`paper` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`electronic` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`adviser` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`advancePlan` object

`frequency` string required

`amountKc` integer required

`dates` object\[\] required

`statutory` string required date

`due` string required date

`basisKc` integer required

`advances` object\[\]

`id` string required

`taxYear` integer required

`dueOn` null | string required date

`amountKc` integer required

`paidOn` null | string required date

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/income', {
  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/tax/income",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Save worksheet inputs for a year: flat expenses, reliefs, gifts, losses, other adjustments

PUT `/v1/tax/income`

Save worksheet inputs for a year: flat expenses, reliefs, gifts, losses, other adjustments

MCP tool: `update-income-tax-inputs`

### Query parameters

`year` integer required min 2016 max 2100

### Request body

`publicBenefit` object

`enabled` boolean required

`taxTreatment` "general" | "all\_income"

`standard` "general" | "research" | "none"

`membershipExempt` boolean

`giftsExempt` boolean

`alwaysTaxable` string\[\]

`withheldInterestKc` integer min 0 max 9007199254740991

`reductionKc` integer | null

`priorUnusedSavingKc` integer min 0 max 9007199254740991

`activities` object\[\]

`name` string required max 120 chars

`economic` boolean

`subsidyKc` integer min 0 max 9007199254740991

`giftKc` integer min 0 max 9007199254740991

`membershipKc` integer min 0 max 9007199254740991

`interestKc` integer min 0 max 9007199254740991

`incomeKc` integer min 0 max 9007199254740991

`costKc` integer min 0 max 9007199254740991

`flatRatePercent` 80 | 60 | 40 | 30 | null

`employmentIncomeKc` integer min 0 max 9007199254740991

`employers` object\[\]

`name` string required max 255 chars

`incomeKc` integer required min 0 max 9007199254740991

`advanceKc` integer min 0 max 9007199254740991

`bonusKc` integer min 0 max 9007199254740991

`foreignEmploymentTaxKc` integer min 0 max 9007199254740991

`capitalBaseKc` integer min -9007199254740991 max 9007199254740991

`rentalBaseKc` integer min -9007199254740991 max 9007199254740991

`otherBaseKc` integer min -9007199254740991 max 9007199254740991

`rental` object | null

`incomeKc` integer required min 0 max 9007199254740991

`realEstateKc` integer min 0 max 9007199254740991

`expensesKc` integer min 0 max 9007199254740991

`flat` boolean

`increaseKc` integer min 0 max 9007199254740991

`decreaseKc` integer min 0 max 9007199254740991

`otherIncome` object\[\]

`kind` "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" required

`description` string max 50 chars

`incomeKc` integer required min 0 max 9007199254740991

`expensesKc` integer min 0 max 9007199254740991

`code` "P" | "S" | "Z" | "N"

`foreign` object | null

`exemptEmploymentKc` integer min 0 max 9007199254740991

`exemptOtherKc` integer min 0 max 9007199254740991

`credits` object\[\]

`country` string required 2 chars

`incomeKc` integer required min 0 max 9007199254740991

`expensesKc` integer min 0 max 9007199254740991

`taxPaidKc` integer required min 0 max 9007199254740991

`certificates` object\[\]

`authority` string required max 255 chars

`country` string required 2 chars

`taxLocal` integer min 0 max 9007199254740991

`taxKc` integer required min 0 max 9007199254740991

`incomeKc` integer required min -9007199254740991 max 9007199254740991

`estimated` boolean

`separateBase` object | null

`partnerIncomeKc` integer min 0 max 9007199254740991

`capitalIncomeKc` integer min 0 max 9007199254740991

`prizeIncomeKc` integer min 0 max 9007199254740991

`prizeExpensesKc` integer min 0 max 9007199254740991

`lotteryIncomeKc` integer min 0 max 9007199254740991

`lotteryExpensesKc` integer min 0 max 9007199254740991

`creditIncomeKc` integer min 0 max 9007199254740991

`creditTaxKc` integer min 0 max 9007199254740991

`business` object | null

`increaseKc` integer min 0 max 9007199254740991

`decreaseKc` integer min 0 max 9007199254740991

`months` integer min 0 max 12

`realEstateDepreciationKc` integer min 0 max 9007199254740991

`cooperating` object\[\]

`firstName` string required max 36 chars

`lastName` string required max 36 chars

`dic` string required

VAT number (DIČ), for example CZ12345678.

`sharePct` number required min 0 max 100

`months` integer min 1 max 12

`relation` "spouse" | "household" | "family" required

`receivedShare` object | null

`firstName` string required max 36 chars

`lastName` string required max 36 chars

`dic` string required

VAT number (DIČ), for example CZ12345678.

`sharePct` number min 0 max 100

`incomeKc` integer required min 0 max 9007199254740991

`expensesKc` integer required min 0 max 9007199254740991

`lossKc` integer min 0 max 9007199254740991

`losses` object\[\]

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`period` string max 22 chars

`lossKc` integer required min 0 max 9007199254740991

`usedPriorKc` integer min 0 max 9007199254740991

`usedNowKc` integer required min 0 max 9007199254740991

`ico` string

Czech company number (IČO), 8 digits.

`giftsKc` integer min 0 max 9007199254740991

`interestKc` integer min 0 max 9007199254740991

`pensionKc` integer min 0 max 9007199254740991

`lifeInsuranceKc` integer min 0 max 9007199254740991

`longTermProductKc` integer min 0 max 9007199254740991

`longTermCareKc` integer min 0 max 9007199254740991

`researchKc` integer min 0 max 9007199254740991

`educationKc` integer min 0 max 9007199254740991

`spouse` boolean | object | null

`disability12` boolean | integer

`disability3` boolean | integer

`ztpp` boolean | integer

`children` object\[\]

`order` integer required min 1 max 9007199254740991

`months` integer min 0 max 12

`monthsZtpp` integer min 0 max 12

`ztpp` boolean

`firstName` string max 36 chars

`lastName` string max 36 chars

`birthNumber` string

`birthDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`bonusEligible` boolean | null

`wageTaxPaidKc` integer min 0 max 9007199254740991

`monthlyBonusPaidKc` integer min 0 max 9007199254740991

`unlawfulReductionsKc` integer min -9007199254740991 max 9007199254740991

`otherAdditionsKc` integer min -9007199254740991 max 9007199254740991

`depreciationDifferenceKc` integer min -9007199254740991 max 9007199254740991

`taxDepreciationExcessKc` integer min 0 max 9007199254740991

`otherIncreaseKc` integer min -9007199254740991 max 9007199254740991

`otherDeductionsKc` integer min -9007199254740991 max 9007199254740991

`creditsKc` integer min 0 max 9007199254740991

`tableC` object

`researchClaims` object\[\]

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`claimKc` integer required min 0 max 9007199254740991

`usedPriorKc` integer min 0 max 9007199254740991

`usedNowKc` integer required min 0 max 9007199254740991

`educationClaims` object\[\]

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`claimKc` integer required min 0 max 9007199254740991

`usedPriorKc` integer min 0 max 9007199254740991

`usedNowKc` integer required min 0 max 9007199254740991

`taxCredits` object | null

`disabledEmployees` number min 0

`severelyDisabledEmployees` number min 0

`enforcementKc` integer min 0 max 9007199254740991

`investmentKc` integer min 0 max 9007199254740991

`foreignExemptKc` integer min -9007199254740991 max 9007199254740991

`foreignTax` object | null

`fullCreditKc` integer min 0 max 9007199254740991

`states` object\[\]

`country` string required 2 chars

`taxPaidKc` integer required min 0 max 9007199254740991

`incomeKc` integer required min 0 max 9007199254740991

`expensesKc` integer min 0 max 9007199254740991

`limitedPartnership` object | null

`1` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`2` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`3` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`4` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`5` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`7` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`9` object

`generalKc` integer min -9007199254740991 max 9007199254740991

`limitedKc` integer min -9007199254740991 max 9007199254740991

`turnoverKc` integer min -9007199254740991 max 9007199254740991

`employeesAverage` integer min 0 max 9007199254740991

`fundPeriods` object\[\]

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`antiAvoidance` object | null

`borrowing` object | null

`priorIncreasesKc` integer min 0 max 9007199254740991

`priorDecreasesKc` integer min 0 max 9007199254740991

`excessKc` integer min -9007199254740991 max 9007199254740991

`taxEbitdaKc` integer min -9007199254740991 max 9007199254740991

`transfersTreaty` object | null

`hmot` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`nehm` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`fin` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`zas` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`pohl` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`ost` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`transfersOther` object | null

`hmot` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`nehm` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`fin` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`zas` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`pohl` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`ost` object

`priceKc` integer min 0 max 9007199254740991

`expenseKc` integer min 0 max 9007199254740991

`transferInIncreaseKc` integer min 0 max 9007199254740991

`transferInDecreaseKc` integer min 0 max 9007199254740991

`hybridKc` integer min 0 max 9007199254740991

`cfcCompanies` object\[\]

`name` string required max 255 chars

`taxId` string max 20 chars

ID of the tax.

`country` string required 2 chars

`amountKc` integer required min 0 max 9007199254740991

`cfcClaims` object\[\]

`name` string required max 255 chars

`taxId` string max 20 chars

ID of the tax.

`country` string required 2 chars

`rows` object\[\] required

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`claimKc` integer required min 0 max 9007199254740991

`usedPriorKc` integer min 0 max 9007199254740991

`usedNowKc` integer min 0 max 9007199254740991

`cfcForeignTaxStates` object\[\]

`country` string required 2 chars

`taxPaidKc` integer required min 0 max 9007199254740991

`incomeKc` integer required min 0 max 9007199254740991

`expensesKc` integer min 0 max 9007199254740991

`cfcFundTaxKc` integer min 0 max 9007199254740991

`separateBaseIncomes` object\[\]

`description` string required max 120 chars

`country` string required 2 chars

`kind` "dividend" | "settlement" required

`incomeKc` integer required min 0 max 9007199254740991

`acquisitionCostKc` integer min 0 max 9007199254740991

`foreignTaxKc` integer min 0 max 9007199254740991

`specialAttachments` object\[\]

`row` string required

`text` string required max 4000 chars

`publication` object | null

`email` string required max 255 chars email

`balanceSheet` boolean

`incomeStatement` boolean

`notes` boolean

`cashFlow` boolean

`equityChanges` boolean

`statementFiles` "notes" | "cashFlow" | "equityChanges"\[\]

`investmentIncentive` object | null

`section` "35a" | "35b" required

`decisionNumber` integer min 0 max 999

`decisionPart` integer min 0 max 9999

`decisionDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`firstPeriod` string max 30 chars

`capKc` integer min 0 max 9007199254740991

`usedPriorKc` integer min 0 max 9007199254740991

`interestExcessKc` integer min 0 max 9007199254740991

`violationKc` integer min 0 max 9007199254740991

`startingS2Kc` integer min 0 max 9007199254740991

`indexPercent` number

`advancesPaidKc` integer min 0 max 9007199254740991

`useAssetLinks` boolean

`useTransportFlatRate` boolean

`statementStructure` "full" | "short" | "micro"

`accountingCategory` "M" | "L" | "S" | "V" | null

`additionalReasons` string max 4000 chars

### Response · 200

`form` string required

`year` integer required

`filingId` null | string required

`filingStatus` null | string

`worksheet` object required

`year` integer required

`rows` object required

`annex2` null | object

`271` integer required

`272` integer required

`273` integer required

`274` integer required

`282` integer required

`284` integer required

`286` integer required

`288` integer required

`290` integer required

`periods` object\[\] required

`to` string required date

`from` string required date

`days` integer required

`annex3` null | object

`a` object required

`b` object required

`totalA` integer required

`totalB` integer required

`tableI` any required

Null in every recorded response.

`tableII` any required

Null in every recorded response.

`tableIII` object required

`rows` object required

`priceKc` integer required

`expenseKc` integer required

`differenceKc` integer required

`companies` any\[\] required

`tableIVKc` integer required

`tableV` object required

`1` integer required

`2` integer required

`claims` any\[\] required

`cfcCredit` null | object

`states` object\[\] required

`1` integer required

`2` integer required

`3` integer required

`4` integer required

`5` integer required

`6` integer required

`7` integer required

`country` null | string required

`r6` integer required

`r7` integer required

`incentive` any

Null in every recorded response.

`tableA` object\[\]

`name` null | string required

`amountKc` integer required

`tableB` null | object

`1` integer

`2` integer

`total` integer required

`accountingKc` integer required

`tableC` object

`tableF` object

`research` any\[\] required

`education` any\[\] required

`researchRemainingKc` integer required

`educationRemainingKc` integer required

`tableG` integer

`tableH` any

Null in every recorded response.

`tableI` any

Null in every recorded response.

`tableJ` any

Null in every recorded response.

`tableK` object

`turnoverKc` integer required

`employeesAverage` any required

Null in every recorded response.

`currency` null | string required

`losses` object\[\] required

`from` string required date

`to` string required date

`lossKc` integer required

`usedPriorKc` integer required

`usedNowKc` integer required

`lossYear` integer required

`remainingKc` integer required

`remainingLossKc` integer required

`issues` object\[\] required

`code` null | string required

`severity` string required

`message` null | string required

`lossKc` integer

`taxKc` integer required

`advancesPaidKc` integer

`payableKc` integer required

`lastKnownTaxKc` integer required

`source` object required

`kind` string required

`incomeKc` integer required

`expensesKc` integer required

`resultKc` integer required

`nonDeductibleKc` integer required

`exemptIncomeKc` integer required

`nonDeductibleGroups` object\[\] required

`name` null | string required

`amountKc` integer required

`links` object required

`assets` object required

`allowances` object required

`transition` object required

`transportKc` integer required

`transportVehicles` integer required

`wagesKc` integer required

`useAssetLinks` boolean required

`useTransportFlatRate` boolean required

`previousLosses` any\[\] required

`allowances` object required

`addBackKc` integer required

`releasedKc` integer required

`transition` object required

`increaseKc` integer required

`decreaseKc` integer required

`depreciationDifferenceKc` integer

`tableC` object

`relatedPartyAdvances` object

`increaseKc` integer required

`decreaseKc` integer required

`rows` object\[\] required

`publicBenefit` object

`treatment` null | string required

`activities` object\[\] required

`outsideHaler` integer required

`exemptHaler` integer required

`costBackHaler` integer required

`taxedHaler` integer required

`filingRequired` boolean required

`issues` object\[\] required

`inputs` object required

`flatRatePercent` integer

`fundPeriods` object\[\]

`to` string required date

`from` string required date

`antiAvoidance` object

`hybridKc` integer required

`transfersOther` object required

`otherAdditionsKc` integer

`cfcForeignTaxStates` object\[\]

`country` null | string required

`incomeKc` integer required

`taxPaidKc` integer required

`expensesKc` integer required

`useAssetLinks` boolean

`useTransportFlatRate` boolean

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`rental` object

`incomeKc` integer required

`flat` boolean required

`otherIncome` object\[\]

`kind` string required

`description` null | string required

`incomeKc` integer required

`expensesKc` integer required

`foreign` object

`credits` object\[\] required

`separateBase` object

`capitalIncomeKc` integer required

`spouse` boolean | object

`months` integer required

`incomeKc` integer required

`childUnder3` boolean required

`firstName` null | string required

`lastName` null | string required

`birthDate` null | string required date

`children` object\[\]

`order` integer required

`months` integer

`firstName` null | string

`lastName` null | string

`birthDate` null | string date

`employmentIncomeKc` integer

`wageTaxPaidKc` integer

`losses` object\[\]

`from` string required date

`to` string required date

`lossKc` integer required

`usedPriorKc` integer required

`usedNowKc` integer required

`giftsKc` integer

`accountingCategory` string

`bonusEligible` boolean

`publicBenefit` object

`enabled` boolean required

`standard` string

`activities` object\[\]

`regime` string

`flatRatePercent` integer | null

`attachment1` object

`months` integer | null required

`depreciationKc` integer required

`realEstateDepreciationKc` integer required

`wagesKc` integer required

`cooperating` any\[\] required

`receivedShare` any required

Null in every recorded response.

`attachment2` null | object

`rental` object required

`201` integer required

`202` integer required

`203` integer required

`204` integer required

`205` integer required

`206` integer required

`201a` integer required

`flat` boolean required

`other` object required

`207` integer required

`208` integer required

`209` integer required

`items` object\[\] required

`attachment3` null | object

`311` any required

Null in every recorded response.

`312` any required

Null in every recorded response.

`313` any required

Null in every recorded response.

`314` any required

Null in every recorded response.

`315` any required

Null in every recorded response.

`316` any required

Null in every recorded response.

`328` integer required

`329` integer required

`330` integer required

`states` object\[\] required

`321` integer required

`322` integer required

`323` integer required

`324` number required

`325` number required

`326` integer required

`327` integer required

`country` null | string required

`attachment4` null | object

`foreignCertificates` any\[\]

`spouse` object

`months` integer required

`monthsZtpp` integer required

`children` object\[\]

`order` integer required

`months` integer

`firstName` null | string

`lastName` null | string

`birthDate` null | string date

`employers` object\[\]

`name` null | string required

`incomeKc` integer required

`advanceKc` integer required

`bonus` object

`wouldBeKc` integer required

`thresholdKc` integer required

`incomeKc` integer required

`incomeTestMet` boolean required

`confirmed` boolean | null required

`spouseDetails` object

`months` integer

`incomeKc` integer

`childUnder3` boolean

`firstName` null | string

`lastName` null | string

`birthDate` null | string date

`statementsNeeded` boolean

`publicBenefit` null | object

`standard` string required

`reductionKc` integer required

`treatment` null | string required

`activities` object\[\] required

`name` null | string required

`economic` boolean required

`subsidyHaler` integer required

`giftHaler` integer required

`membershipHaler` integer required

`interestHaler` integer required

`otherIncomeHaler` integer required

`costHaler` integer required

`outsideBase` boolean required

`taxableIncomeHaler` integer required

`costAllowedHaler` integer required

`costDisallowedHaler` integer required

`filingRequired` boolean required

`reductionLimitKc` integer required

`savedTaxKc` integer required

`useBy` string required date

`separateBase` any

Null in every recorded response.

`deadlines` object

`paper` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`electronic` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`adviser` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`advancePlan` object

`frequency` string required

`amountKc` integer required

`dates` object\[\] required

`statutory` string required date

`due` string required date

`basisKc` integer required

`advances` object\[\]

`id` string required

`taxYear` integer required

`dueOn` null | string required date

`amountKc` integer required

`paidOn` null | string required date

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/income \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "publicBenefit": {
    "enabled": false
  },
  "flatRatePercent": 80,
  "employmentIncomeKc": 0
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/income', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "publicBenefit": {
      "enabled": false
    },
    "flatRatePercent": 80,
    "employmentIncomeKc": 0
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/income",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "publicBenefit": {
            "enabled": False
        },
        "flatRatePercent": 80,
        "employmentIncomeKc": 0
    },
)
data = response.json()
```

## Create the advance payments (§ 38a) due after filing the given tax year, from its last known tax

POST `/v1/tax/income/advances`

Create the advance payments (§ 38a) due after filing the given tax year, from its last known tax

MCP tool: `generate-income-advances`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`frequency` string required

`amountKc` integer required

`basisKc` integer required

`dates` object\[\] required

`statutory` string required date

`due` string required date

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/income/advances \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## Mark an income tax advance as paid, which feeds the worksheet for its tax year

PATCH `/v1/tax/income/advances/{id}`

Mark an income tax advance as paid, which feeds the worksheet for its tax year

MCP tool: `mark-income-advance`

### Path parameters

`id` string required

### Request body

`paidOn` string | null required

Date as YYYY-MM-DD.

### Response · 200

`id` string required

`dueOn` string required date

`amountKc` integer required

`paidOn` null | string required date

```bash
curl -X PATCH https://api.damedoklad.cz/v1/tax/income/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "paidOn": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/income/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "paidOn": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/tax/income/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "paidOn": "2026-10-30"
    },
)
data = response.json()
```

## Separate record of supplies in the § 89 and § 90 margin schemes for a period: price, purchase, margin, base, and tax

GET `/v1/tax/margin`

Separate record of supplies in the § 89 and § 90 margin schemes for a period: price, purchase, margin, base, and tax

MCP tool: `get-margin-report`

### Query parameters

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`from` string required date

`to` string required date

`rows` object\[\] required

`documentType` null | string required

`documentId` null | string required

`number` null | string required

`taxPointDate` null | string required date

`contactName` null | string required

`vatMode` string required

`section` string required

`grossHaler` integer required

`purchaseHaler` integer required

`marginHaler` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`totals` object required

`marginHaler` integer required

`vatHaler` integer | null required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin', {
  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/tax/margin",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Purchase prices and margin per line of a document in a § 89 or § 90 margin scheme

GET `/v1/tax/margin-documents/{id}`

Purchase prices and margin per line of a document in a § 89 or § 90 margin scheme

MCP tool: `get-margin-document`

### Path parameters

`id` string required

### Response · 200

`documentType` null | string required

`documentId` null | string required

`number` null | string required

`vatMode` string required

`status` string required

`complete` boolean required

`lines` object\[\] required

`position` integer | null required

`description` null | string required

`vatRate` integer required

`grossHaler` integer required

`purchaseHaler` integer | null required

`exemptPercent` integer required

`marginHaler` integer

`baseHaler` integer | null

`vatHaler` integer | null

`outsideMarginHaler` integer

```bash
curl https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  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/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Enter the purchase price per line of a draft in a margin scheme. Needed before it can be issued

PUT `/v1/tax/margin-documents/{id}`

Enter the purchase price per line of a draft in a margin scheme. Needed before it can be issued

MCP tool: `set-margin-document-lines`

### Path parameters

`id` string required

### Request body

`lines` object\[\] required

`position` integer required min 0 max 9007199254740991

`purchaseHaler` integer required min 0 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`exemptPercent` number min 0 max 100

`note` string max 240 chars

### Response · 200

`documentType` null | string required

`documentId` null | string required

`number` null | string required

`vatMode` string required

`status` string required

`complete` boolean required

`lines` object\[\] required

`position` integer | null required

`description` null | string required

`vatRate` integer required

`grossHaler` integer required

`purchaseHaler` integer | null required

`exemptPercent` integer required

`marginHaler` integer

`baseHaler` integer | null

`vatHaler` integer | null

`outsideMarginHaler` integer

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "lines": [
    {
      "position": 0,
      "purchaseHaler": 1210000
    }
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "lines": [
      {
        "position": 0,
        "purchaseHaler": 1210000
      }
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "lines": [
            {
                "position": 0,
                "purchaseHaler": 1210000
            }
        ]
    },
)
data = response.json()
```

## Document on the sale of a vehicle to a person with a disability, stating the tax on the margin. § 85 ZDPH ended on 31. 12. 2024: only for a contribution decided before it (zákon 461/2024 Sb., bod 24)

POST `/v1/tax/margin-documents/{id}/vehicle-sale`

Document on the sale of a vehicle to a person with a disability, stating the tax on the margin. § 85 ZDPH ended on 31. 12. 2024: only for a contribution decided before it (zákon 461/2024 Sb., bod 24)

MCP tool: `get-margin-vehicle-sale-pdf`

### Path parameters

`id` string required

### Request body

`buyerName` string required max 200 chars

`buyerAddress` string required max 400 chars

`decisionReference` string required max 120 chars

`decisionDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`vehicleIdentification` string required max 64 chars

### Response · 200

Returns a application/pdf file.

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vehicle-sale \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "buyerName": "Pekárna U Lípy s.r.o.",
  "buyerAddress": "string",
  "decisionReference": "string",
  "decisionDate": "2026-10-30",
  "vehicleIdentification": "string"
}' \
  -o soubor
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vehicle-sale', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "buyerName": "Pekárna U Lípy s.r.o.",
    "buyerAddress": "string",
    "decisionReference": "string",
    "decisionDate": "2026-10-30",
    "vehicleIdentification": "string"
  }),
});
const file = await response.arrayBuffer();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin-documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/vehicle-sale",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "buyerName": "Pekárna U Lípy s.r.o.",
        "buyerAddress": "string",
        "decisionReference": "string",
        "decisionDate": "2026-10-30",
        "vehicleIdentification": "string"
    },
)
content = response.content
```

## The coefficient of a travel service advance (§ 89 odst. 5 to 7) for one proforma, with the payments it taxed

GET `/v1/tax/margin/advances/{id}`

The coefficient of a travel service advance (§ 89 odst. 5 to 7) for one proforma, with the payments it taxed

MCP tool: `get-margin-advance-plan`

### Path parameters

`id` string required

### Response · 200

`proformaId` string required

`number` null | string required

`totalHaler` integer | null required

`method` string required

`purchasesHaler` integer required

`coefficient` null | number required

`payments` any\[\] required

```bash
curl https://api.damedoklad.cz/v1/tax/margin/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  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/tax/margin/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Set how a proforma in the travel scheme taxes its advances: by what was already paid for the service (§ 89 odst. 5) or what is expected (odst. 6)

PUT `/v1/tax/margin/advances/{id}`

Set how a proforma in the travel scheme taxes its advances: by what was already paid for the service (§ 89 odst. 5) or what is expected (odst. 6)

MCP tool: `set-margin-advance-plan`

### Path parameters

`id` string required

### Request body

`method` "paid" | "estimated" required

`purchasesHaler` integer required min 0 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`keepFirstCoefficient` boolean

### Response · 200

`proformaId` string required

`number` null | string required

`totalHaler` integer | null required

`method` string required

`purchasesHaler` integer required

`coefficient` null | number required

`payments` any\[\] required

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/margin/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "method": "paid",
  "purchasesHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "method": "paid",
    "purchasesHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/margin/advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "method": "paid",
        "purchasesHaler": 1210000
    },
)
data = response.json()
```

## Art, collectibles and antiques whose deduction waits for a sale outside the scheme (§ 90 odst. 15 and 16)

GET `/v1/tax/margin/deferred`

Art, collectibles and antiques whose deduction waits for a sale outside the scheme (§ 90 odst. 15 and 16)

MCP tool: `list-margin-deferred-deductions`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "tax\_margin\_deferred\_deduction" required

`id` string required

`receivedInvoiceId` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`vatHaler` integer | null required

`caseCode` string required

`description` null | string required

`status` string required

`saleDocumentId` null | string

`saleDocumentType` null | string

`claimedOn` null | string date

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/deferred', {
  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/tax/margin/deferred",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Hold back the deduction on a received invoice under § 90 odst. 15: it stays out of the return until the goods are sold outside the scheme

POST `/v1/tax/margin/deferred`

Hold back the deduction on a received invoice under § 90 odst. 15: it stays out of the return until the goods are sold outside the scheme

MCP tool: `create-margin-deferred-deduction`

### Request body

`receivedInvoiceId` string required

ID of the received invoice. Find it with list-received-invoices.

`caseCode` "imported" | "author" | "other\_taxable" required

`description` string | null

### Response · 201

`id` string required

`receivedInvoiceId` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`vatHaler` integer | null required

`caseCode` string required

`description` null | string required

`status` string required

`saleDocumentId` null | string

`saleDocumentType` null | string

`claimedOn` null | string date

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin/deferred \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "receivedInvoiceId": "rin_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "caseCode": "imported"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/deferred', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "receivedInvoiceId": "rin_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "caseCode": "imported"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin/deferred",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "receivedInvoiceId": "rin_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "caseCode": "imported"
    },
)
data = response.json()
```

## The goods were sold outside the scheme: the deduction arises when the tax on that sale is due (§ 90 odst. 16), and reaches that period’s return

POST `/v1/tax/margin/deferred/{id}/claim`

The goods were sold outside the scheme: the deduction arises when the tax on that sale is due (§ 90 odst. 16), and reaches that period’s return

MCP tool: `claim-margin-deferred-deduction`

### Path parameters

`id` string required

### Request body

`saleDocumentId` string required

ID of the sale document.

### Response · 200

`id` string required

`receivedInvoiceId` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`vatHaler` integer | null required

`caseCode` string required

`description` null | string required

`status` string required

`saleDocumentId` null | string

`saleDocumentType` null | string

`claimedOn` null | string date

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin/deferred/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/claim \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "saleDocumentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/deferred/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/claim', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "saleDocumentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin/deferred/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/claim",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "saleDocumentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    },
)
data = response.json()
```

## The goods were sold in the scheme after all: no deduction will arise (§ 90 odst. 11)

POST `/v1/tax/margin/deferred/{id}/sold-in-scheme`

The goods were sold in the scheme after all: no deduction will arise (§ 90 odst. 11)

MCP tool: `close-margin-deferred-deduction`

### Path parameters

`id` string required

### Response · 200

`id` string required

`receivedInvoiceId` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`vatHaler` integer | null required

`caseCode` string required

`description` null | string required

`status` string required

`saleDocumentId` null | string

`saleDocumentType` null | string

`claimedOn` null | string date

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin/deferred/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/sold-in-scheme \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/deferred/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/sold-in-scheme', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin/deferred/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/sold-in-scheme",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Tax periods whose § 90 margin is set per period and rate (§ 90 odst. 4), with sales, purchases, margin and tax

GET `/v1/tax/margin/periods`

Tax periods whose § 90 margin is set per period and rate (§ 90 odst. 4), with sales, purchases, margin and tax

MCP tool: `list-margin-periods`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "tax\_margin\_period" required

`id` string required

`from` string required date

`to` string required date

`purchases` object\[\] required

`vatRate` integer required

`purchaseHaler` integer required

`status` string required

`closedAt` null | string required date-time

`rates` object\[\] required

`vatRate` integer required

`salesHaler` integer required

`purchaseHaler` integer required

`marginHaler` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`vatHaler` integer | null required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/periods', {
  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/tax/margin/periods",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Set the § 90 margin of the tax period holding a date by its purchases per rate, instead of per line. The whole period follows it (§ 90 odst. 6)

PUT `/v1/tax/margin/periods`

Set the § 90 margin of the tax period holding a date by its purchases per rate, instead of per line. The whole period follows it (§ 90 odst. 6)

MCP tool: `set-margin-period`

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`purchases` object\[\] required

`vatRate` number required min 0 max 100

`purchaseHaler` integer required min 0 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`confirmedUnitLimit` true required

### Response · 200

`id` string required

`from` string required date

`to` string required date

`purchases` object\[\] required

`vatRate` integer required

`purchaseHaler` integer required

`status` string required

`closedAt` null | string required date-time

`rates` object\[\] required

`vatRate` integer required

`salesHaler` integer required

`purchaseHaler` integer required

`marginHaler` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`vatHaler` integer | null required

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/margin/periods \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "purchases": [
    {
      "vatRate": 21,
      "purchaseHaler": 1210000
    }
  ],
  "confirmedUnitLimit": true
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/periods', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "date": "2026-10-30",
    "purchases": [
      {
        "vatRate": 21,
        "purchaseHaler": 1210000
      }
    ],
    "confirmedUnitLimit": true
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/margin/periods",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "purchases": [
            {
                "vatRate": 21,
                "purchaseHaler": 1210000
            }
        ],
        "confirmedUnitLimit": True
    },
)
data = response.json()
```

## Go back to a margin per line for an open tax period

DELETE `/v1/tax/margin/periods/{id}`

Go back to a margin per line for an open tax period

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-margin-period`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## Close a § 90 odst. 4 period: posts the tax on the margin MD revenue / D 343 on its last day, or a cash book row with no money in daňová evidence

POST `/v1/tax/margin/periods/{id}/close`

Close a § 90 odst. 4 period: posts the tax on the margin MD revenue / D 343 on its last day, or a cash book row with no money in daňová evidence

MCP tool: `close-margin-period`

### Path parameters

`id` string required

### Response · 200

`id` string required

`from` string required date

`to` string required date

`purchases` object\[\] required

`vatRate` integer required

`purchaseHaler` integer required

`status` string required

`closedAt` null | string required date-time

`rates` object\[\] required

`vatRate` integer required

`salesHaler` integer required

`purchaseHaler` integer required

`marginHaler` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`vatHaler` integer | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/close \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/close', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/close",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Reopen a closed § 90 odst. 4 period and reverse what closing it posted

POST `/v1/tax/margin/periods/{id}/reopen`

Reopen a closed § 90 odst. 4 period and reverse what closing it posted

MCP tool: `reopen-margin-period`

### Path parameters

`id` string required

### Response · 200

`id` string required

`from` string required date

`to` string required date

`purchases` object\[\] required

`vatRate` integer required

`purchaseHaler` integer required

`status` string required

`closedAt` null | string required date-time

`rates` object\[\] required

`vatRate` integer required

`salesHaler` integer required

`purchaseHaler` integer required

`marginHaler` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`vatHaler` integer | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin/periods/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Výkup: goods bought for resale under § 90 from someone odst. 2 allows, and which of them are still unsold

GET `/v1/tax/margin/purchases`

Výkup: goods bought for resale under § 90 from someone odst. 2 allows, and which of them are still unsold

MCP tool: `list-margin-purchases`

### Query parameters

`available` "true" | "false"

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "tax\_margin\_purchase" required

`id` string required

`number` string required

`purchasedOn` string required date

`sellerKind` string required

`sellerName` string required

`sellerAddress` null | string required

`sellerIco` string | null required

`sellerDocument` null | string required

`contactId` string | null required

`receivedInvoiceId` string | null required

`vatMode` string required

`totalHaler` integer required

`note` string | null required

`lines` object\[\] required

`id` string required

`position` integer | null required

`description` null | string required

`serialNumber` null | string required

`purchaseHaler` integer required

`soldDocumentId` string | null

`soldDocumentType` string | null

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/purchases', {
  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/tax/margin/purchases",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Buy goods for resale under § 90 from a non-payer or another person odst. 2 allows. With recordInvoice it also records the cost as a received invoice without VAT, to be paid as any other

POST `/v1/tax/margin/purchases`

Buy goods for resale under § 90 from a non-payer or another person odst. 2 allows. With recordInvoice it also records the cost as a received invoice without VAT, to be paid as any other

MCP tool: `create-margin-purchase`

### Request body

`purchasedOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`sellerKind` "non\_taxable" | "small\_business" | "exempt\_62" | "margin\_dealer" required

`sellerName` string required max 200 chars

`sellerAddress` string | null

`sellerIco` string | null

Czech company number (IČO), 8 digits.

`sellerDocument` string | null

`contactId` string | null

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

`vatMode` "margin\_used\_goods" | "margin\_art" | "margin\_collectibles"

`note` string | null

`recordInvoice` boolean

`lines` object\[\] required

`description` string required max 240 chars

`serialNumber` string | null

`purchaseHaler` integer required min 0 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

### Response · 201

`id` string required

`number` string required

`purchasedOn` string required date

`sellerKind` string required

`sellerName` string required

`sellerAddress` null | string required

`sellerIco` string | null required

`sellerDocument` null | string required

`contactId` string | null required

`receivedInvoiceId` string | null required

`vatMode` string required

`totalHaler` integer required

`note` string | null required

`lines` object\[\] required

`id` string required

`position` integer | null required

`description` null | string required

`serialNumber` null | string required

`purchaseHaler` integer required

`soldDocumentId` string | null

`soldDocumentType` string | null

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/margin/purchases \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "purchasedOn": "2026-10-30",
  "sellerKind": "non_taxable",
  "sellerName": "Pekárna U Lípy s.r.o.",
  "lines": [
    {
      "description": "Pečivo, říjen",
      "purchaseHaler": 1210000
    }
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/purchases', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "purchasedOn": "2026-10-30",
    "sellerKind": "non_taxable",
    "sellerName": "Pekárna U Lípy s.r.o.",
    "lines": [
      {
        "description": "Pečivo, říjen",
        "purchaseHaler": 1210000
      }
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/margin/purchases",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "purchasedOn": "2026-10-30",
        "sellerKind": "non_taxable",
        "sellerName": "Pekárna U Lípy s.r.o.",
        "lines": [
            {
                "description": "Pečivo, říjen",
                "purchaseHaler": 1210000
            }
        ]
    },
)
data = response.json()
```

## The purchase document for a výkup, for the seller to sign

GET `/v1/tax/margin/purchases/{id}/pdf`

The purchase document for a výkup, for the seller to sign

MCP tool: `get-margin-purchase-pdf`

### Path parameters

`id` string required

### Response · 200

Returns a application/pdf file.

```bash
curl https://api.damedoklad.cz/v1/tax/margin/purchases/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/purchases/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf', {
  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/tax/margin/purchases/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
content = response.content
```

## Whether the margin schemes are offered on documents, and the drafts waiting for a purchase price

GET `/v1/tax/margin/settings`

Whether the margin schemes are offered on documents, and the drafts waiting for a purchase price

MCP tool: `get-margin-settings`

### Response · 200

`enabled` boolean required

`drafts` object\[\] required

`documentId` null | string required

`documentType` null | string required

`contactName` null | string required

`issueDate` null | string required date

`totalHaler` integer | null required

`vatMode` string required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/settings', {
  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/tax/margin/settings",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Offer the § 89 and § 90 margin schemes on documents, or stop offering them

PUT `/v1/tax/margin/settings`

Offer the § 89 and § 90 margin schemes on documents, or stop offering them

MCP tool: `set-margin-settings`

### Request body

`enabled` boolean required

### Response · 200

`enabled` boolean required

`drafts` object\[\] required

`documentId` null | string required

`documentType` null | string required

`contactName` null | string required

`issueDate` null | string required date

`totalHaler` integer | null required

`vatMode` string required

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/margin/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/margin/settings', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "enabled": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/margin/settings",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "enabled": False
    },
)
data = response.json()
```

## Minimum monthly social and health advances of a self-employed person for a year, from the verified tables

GET `/v1/tax/osvc/minimum-advances`

Minimum monthly social and health advances of a self-employed person for a year, from the verified tables

MCP tool: `get-osvc-minimum-advances`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`year` integer required

`averageWage` integer required

`main` object required

`base` integer required

`advance` integer required

`mainStart` object required

`base` integer required

`advance` integer required

`side` object required

`base` integer required

`advance` integer required

`health` object required

`base` number required

`advance` integer required

```bash
curl https://api.damedoklad.cz/v1/tax/osvc/minimum-advances \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/osvc/minimum-advances', {
  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/tax/osvc/minimum-advances",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## VAT to pay or refund for a period, filing deadlines with their status, and next income and road tax dates

GET `/v1/tax/overview`

VAT to pay or refund for a period, filing deadlines with their status, and next income and road tax dates

MCP tool: `get-tax-overview`

### Query parameters

`year` integer min 2016 max 2100

`month` integer min 1 max 12

`quarter` integer min 1 max 4

### Response · 200

`vatPayer` boolean required

`frequency` string required

`regime` string required

`profileComplete` boolean required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`vatToPayKc` integer required

`vatRefundKc` integer required

`outputVatKc` integer required

`deductionKc` integer required

`documents` integer required

`issues` any\[\] required

`issuesCount` integer required

`deadlines` object\[\] required

`form` string required

`periodKey` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`statutory` string required date

`due` string required date

`moved` boolean required

`status` string required

`daysLeft` integer required

`overdue` boolean required

`otherDeadlines` object\[\] required

`form` string required

`periodKey` string required

`year` integer required

`month` integer | null required

`quarter` integer | null required

`statutory` string required date

`due` string required date

`moved` boolean required

`status` string required

`daysLeft` integer required

`overdue` boolean required

`upcoming` object\[\] required

`key` string required

`form` string required

`date` string required date

`period` string required

`overdue` boolean required

`labelCs` string required

`labelEn` string required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/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/tax/overview",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Get the tax details filings need: finance office, address, signer

GET `/v1/tax/profile`

Get the tax details filings need: finance office, address, signer

MCP tool: `get-tax-profile`

### Response · 200

`name` null | string required

`dic` null | string required

`ico` null | string required

`regime` string required

`vatPayer` boolean required

`vatPeriod` string required

`subjectType` string required

`firstName` null | string required

`lastName` null | string required

`title` string | null required

`financeOfficeCode` null | string required

`workplaceCode` null | string required

`naceCode` null | string required

`street` null | string required

`houseNumber` null | string required

`orientationNumber` string | null required

`city` null | string required

`postalCode` null | string required

`country` string | null required

`phone` null | string required

`email` null | string required

`contactFirstName` string | null required

`contactLastName` string | null required

`contactPhone` string | null required

`signerFirstName` null | string required

`signerLastName` null | string required

`signerRole` null | string required

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean required

`ossImportRegistered` boolean required

`ownsProperty` boolean required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/profile', {
  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/tax/profile",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Update the tax details filings need

PATCH `/v1/tax/profile`

Update the tax details filings need

MCP tool: `update-tax-profile`

### Request body

`subjectType` "F" | "P"

`firstName` string max 30 chars

`lastName` string max 36 chars

`title` string max 10 chars

`financeOfficeCode` string

`workplaceCode` string

`naceCode` string

`street` string max 38 chars

`houseNumber` string

`orientationNumber` string max 4 chars

`city` string max 48 chars

`postalCode` string

`country` string max 25 chars

`phone` string max 14 chars

`email` string max 255 chars email

`contactFirstName` string max 20 chars

`contactLastName` string max 36 chars

`contactPhone` string max 14 chars

`signerFirstName` string max 20 chars

`signerLastName` string max 36 chars

`signerRole` string max 40 chars

`summaryQuarterly` boolean

`ossRegistered` boolean

`ossNonEuRegistered` boolean

`ossImportRegistered` boolean

`ownsProperty` boolean

### Response · 200

`name` null | string required

`dic` null | string required

`ico` null | string required

`regime` string required

`vatPayer` boolean required

`vatPeriod` string required

`subjectType` string required

`firstName` null | string required

`lastName` null | string required

`title` string | null required

`financeOfficeCode` null | string required

`workplaceCode` null | string required

`naceCode` null | string required

`street` null | string required

`houseNumber` null | string required

`orientationNumber` string | null required

`city` null | string required

`postalCode` null | string required

`country` string | null required

`phone` null | string required

`email` null | string required

`contactFirstName` string | null required

`contactLastName` string | null required

`contactPhone` string | null required

`signerFirstName` null | string required

`signerLastName` null | string required

`signerRole` null | string required

`summaryQuarterly` boolean required

`ossRegistered` boolean required

`ossNonEuRegistered` boolean required

`ossImportRegistered` boolean required

`ownsProperty` boolean required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/tax/profile \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "subjectType": "F",
  "firstName": "Pekárna U Lípy s.r.o.",
  "lastName": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/profile', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "subjectType": "F",
    "firstName": "Pekárna U Lípy s.r.o.",
    "lastName": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/tax/profile",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "subjectType": "F",
        "firstName": "Pekárna U Lípy s.r.o.",
        "lastName": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Legal grounds of exemption from property tax claimed in the return, for a year: § 4 for land, § 9 for buildings, § 17a, from the code list of the Finanční správa

GET `/v1/tax/property/exemptions`

Legal grounds of exemption from property tax claimed in the return, for a year: § 4 for land, § 9 for buildings, § 17a, from the code list of the Finanční správa

MCP tool: `list-property-exemptions`

### Query parameters

`year` integer required min 2016 max 2100

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`kind` string required

`section` string required

`letter` string required

`sub` string

`label` null | string required

`since` integer

`timeLimited` boolean

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/property/exemptions', {
  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/tax/property/exemptions",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Deduction coefficient (§ 76) for a year and its settlement preview from the year’s documents

GET `/v1/tax/regimes/coefficient`

Deduction coefficient (§ 76) for a year and its settlement preview from the year’s documents

MCP tool: `get-tax-coefficient`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`year` integer required

`coefficient` integer | null required

`source` null | string

`settlementCoefficient` integer | null

`settlementChangeHaler` integer | null

`settledAt` string | null

`preview` object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`settled` boolean

`numerator` integer

`exempt` integer

`reducedInput` integer

`claimed` integer

`entitled` integer

`change` integer

`applies` boolean

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/regimes/coefficient', {
  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/tax/regimes/coefficient",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Set the coefficient used during a year (§ 76 odst. 6), usually a qualified estimate in the first year

PUT `/v1/tax/regimes/coefficient`

Set the coefficient used during a year (§ 76 odst. 6), usually a qualified estimate in the first year

MCP tool: `set-tax-coefficient`

### Query parameters

`year` integer required min 2016 max 2100

### Request body

`coefficient` integer | null required

### Response · 200

`year` integer required

`coefficient` integer | null required

`source` null | string

`settlementCoefficient` integer | null

`settlementChangeHaler` integer | null

`settledAt` string | null

`preview` object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`settled` boolean

`numerator` integer

`exempt` integer

`reducedInput` integer

`claimed` integer

`entitled` integer

`change` integer

`applies` boolean

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/regimes/coefficient \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "coefficient": 0
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/regimes/coefficient', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "coefficient": 0
  }),
});
const data = await response.json();
```

```python
import os
import requests

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

## Run the year-end settlement (§ 76 odst. 7): stores the settlement coefficient and the change for ř. 53

POST `/v1/tax/regimes/coefficient/settle`

Run the year-end settlement (§ 76 odst. 7): stores the settlement coefficient and the change for ř. 53

MCP tool: `settle-tax-coefficient`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`year` integer required

`coefficient` integer | null required

`source` null | string

`settlementCoefficient` integer | null

`settlementChangeHaler` integer | null

`settledAt` string | null

`preview` object

`numerator` integer required

`exempt` integer required

`reducedInput` integer required

`claimed` integer required

`coefficient` integer | null required

`entitled` integer required

`change` integer required

`applies` boolean required

`settled` boolean

`numerator` integer

`exempt` integer

`reducedInput` integer

`claimed` integer

`entitled` integer

`change` integer

`applies` boolean

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/regimes/coefficient/settle \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## OSS return summary for a period by member state and rate, with the due date: a quarter, or a month for the import scheme

GET `/v1/tax/regimes/oss`

OSS return summary for a period by member state and rate, with the due date: a quarter, or a month for the import scheme

MCP tool: `get-vat-oss`

### Query parameters

`date` string YYYY-MM-DD

Date as YYYY-MM-DD.

`year` integer required min -9007199254740991 max 9007199254740991

`quarter` integer min 1 max 4

`month` integer min 1 max 12

`scheme` "EU" | "NON\_EU" | "IMPORT"

### Response · 200

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`scheme` string required

`deadline` object required

`statutory` string required date

`due` string required date

`moved` boolean required

`period` object required

`year` integer required

`month` integer | null

`key` string required

`from` string required date

`to` string required date

`quarter` integer | null

`rows` object\[\] required

`country` null | string required

`rate` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`issues` any\[\] required

`totalVatHaler` integer required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/regimes/oss', {
  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/tax/regimes/oss",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## ECB reference rate CZK/EUR for the last day of a quarter or, for the import scheme, a month, or the next day it was published (§ 110ze zákona o DPH). With date, that day: the first of the year for the small business scheme (§ 109bs)

GET `/v1/tax/regimes/oss/ecb-rate`

ECB reference rate CZK/EUR for the last day of a quarter or, for the import scheme, a month, or the next day it was published (§ 110ze zákona o DPH). With date, that day: the first of the year for the small business scheme (§ 109bs)

MCP tool: `get-oss-ecb-rate`

### Query parameters

`date` string YYYY-MM-DD

Date as YYYY-MM-DD.

`year` integer required min -9007199254740991 max 9007199254740991

`quarter` integer min 1 max 4

`month` integer min 1 max 12

### Response · 200

`date` string required date

`rate` number required

`requestedFor` string required date

`source` string required

```bash
curl https://api.damedoklad.cz/v1/tax/regimes/oss/ecb-rate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/regimes/oss/ecb-rate', {
  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/tax/regimes/oss/ecb-rate",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Special VAT regimes in a period: § 92a both sides, self-assessed EU documents, advances, bad debts, § 92a codes

GET `/v1/tax/regimes/overview`

Special VAT regimes in a period: § 92a both sides, self-assessed EU documents, advances, bad debts, § 92a codes

MCP tool: `get-vat-regimes`

### Query parameters

`year` integer min 2016 max 2100

`month` integer min 1 max 12

`quarter` integer min 1 max 4

### Response · 200

`period` object required

`year` integer required

`month` integer | null required

`key` string required

`from` string required date

`to` string required date

`reverseChargeSupplied` any\[\] required

`reverseChargeReceived` any\[\] required

`selfAssessed` any\[\] required

`advances` any\[\] required

`partialDeductions` any\[\] required

`codes` object\[\] required

`code` null | string required

`label` null | string required

`countries` string\[\] required

`treatments` string\[\] required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/regimes/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/tax/regimes/overview",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Road tax for a year from the vehicle register, with the rate of each vehicle and the due date

GET `/v1/tax/road`

Road tax for a year from the vehicle register, with the rate of each vehicle and the due date

MCP tool: `get-road-tax`

### Query parameters

`year` integer required min 2016 max 2100

### Response · 200

`year` integer required

`rows` object\[\] required

`plate` string required

`code` null | string required

`axles` integer | null required

`weightTons` integer required

`rate` integer required

`months` integer required

`gross` integer required

`exemptLetter` string | null required

`exemptMonths` integer required

`exempt` integer required

`discount` integer required

`partial` integer required

`outside` boolean required

`reportable` boolean required

`id` string required

`name` string | null required

`total` integer required

`payable` integer required

`deadline` object required

`statutory` string required date

`due` string required date

`moved` boolean required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/road', {
  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/tax/road",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## The small business scheme for other EU states (§ 109bb ZDPH): the -EX number, the states, and what was entered by hand

GET `/v1/tax/sme`

The small business scheme for other EU states (§ 109bb ZDPH): the -EX number, the states, and what was entered by hand

MCP tool: `get-vat-sme`

### Response · 200

`registered` boolean required

`evidenceNumber` null | string required

`states` object\[\] required

`country` null | string required

`from` string required date

`to` any required

Null in every recorded response.

`adjustments` any\[\] required

`registeredForCzechia` boolean required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/sme', {
  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/tax/sme",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Record the registration for the small business scheme in other EU states, as the tax office decided it

PUT `/v1/tax/sme`

Record the registration for the small business scheme in other EU states, as the tax office decided it

MCP tool: `set-vat-sme`

### Request body

`evidenceNumber` string required min 4 chars max 16 chars

`states` object\[\] required

`country` string required 2 chars

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string | null

Date as YYYY-MM-DD.

### Response · 200

`registered` boolean required

`evidenceNumber` null | string required

`states` object\[\] required

`country` null | string required

`from` string required date

`to` any required

Null in every recorded response.

`adjustments` any\[\] required

`registeredForCzechia` boolean required

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/sme \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "evidenceNumber": "string",
  "states": [
    {
      "country": "string",
      "from": "2026-10-30"
    }
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/sme', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "evidenceNumber": "string",
    "states": [
      {
        "country": "string",
        "from": "2026-10-30"
      }
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/sme",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "evidenceNumber": "string",
        "states": [
            {
                "country": "string",
                "from": "2026-10-30"
            }
        ]
    },
)
data = response.json()
```

## Say a company seated in another state uses the scheme here: the limits of § 6 then apply to it instead of § 6c. Its filings go to its own state (§ 109bg)

PUT `/v1/tax/sme/czechia`

Say a company seated in another state uses the scheme here: the limits of § 6 then apply to it instead of § 6c. Its filings go to its own state (§ 109bg)

MCP tool: `set-vat-sme-for-czechia`

### Request body

`registered` boolean required

### Response · 200

`registered` boolean required

`evidenceNumber` null | string required

`states` object\[\] required

`country` null | string required

`from` string required date

`to` any required

Null in every recorded response.

`adjustments` any\[\] required

`registeredForCzechia` boolean required

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/sme/czechia \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "registered": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/sme/czechia', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "registered": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/sme/czechia",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "registered": False
    },
)
data = response.json()
```

## The year against the 100 000 EUR limit with the day it was passed, and a quarter’s figures per state in euros as the notice states them, at the ECB rate of the first day of the year

GET `/v1/tax/sme/notice`

The year against the 100 000 EUR limit with the day it was passed, and a quarter’s figures per state in euros as the notice states them, at the ECB rate of the first day of the year. File it through a tax filing with the form SMEHL1 or SMEOZ1. Which supplies fall in a state’s turnover is that state’s law: enter what the documents do not say with createVatSmeTurnover.

MCP tool: `get-vat-sme-notice`

### Query parameters

`year` integer required min 2025 max 2100

`quarter` integer min 1 max 4

`eurRate` number

### Response · 200

`year` integer required

`quarter` integer | null required

`limit` object required

`object` "vat\_sme\_limit" required

`year` integer required

`eurRate` integer | null required

`limitCents` integer required

`turnoverCents` integer required

`remainingCents` integer required

`previousYearCents` any required

Null in every recorded response.

`previousYearExceeded` boolean required

`exceededOn` null | string required date

`noticeDue` null | string required date

`usableUntil` null | string required date

`notice` null | object required

`year` integer required

`quarter` integer | null required

`from` string required date

`to` string required date

`due` string required date

`rows` object\[\] required

`country` null | string required

`sector` null | string required

`cents` integer required

`issues` any\[\] required

`totalCents` integer required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/sme/notice', {
  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/tax/sme/notice",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add to a state’s turnover by hand: a sector where the state has thresholds by sector, or a supply the documents do not show

POST `/v1/tax/sme/turnover`

Add to a state’s turnover by hand: a sector where the state has thresholds by sector, or a supply the documents do not show

MCP tool: `create-vat-sme-turnover`

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`country` string required 2 chars

`amountHaler` integer required min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`sector` string | null

`note` string | null

### Response · 201

`id` string required

`date` string required date

`country` null | string required

`amountHaler` integer | null required

`sector` null | string required

`note` string | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/sme/turnover \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "country": "string",
  "amountHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/sme/turnover', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "date": "2026-10-30",
    "country": "string",
    "amountHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/sme/turnover",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "country": "string",
        "amountHaler": 1210000
    },
)
data = response.json()
```

## Remove a figure entered by hand

DELETE `/v1/tax/sme/turnover/{id}`

Remove a figure entered by hand

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-vat-sme-turnover`

### Path parameters

`id` string required

### Response · 200

`id` string required

`date` string required date

`country` null | string required

`amountHaler` integer | null required

`sector` null | string required

`note` string | null required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/sme/turnover/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## Check a supplier before paying: unreliable payer status and whether the bank account is published (ADIS)

POST `/v1/tax/suppliers/check`

Check a supplier before paying: unreliable payer status and whether the bank account is published (ADIS)

MCP tool: `check-supplier-reliability`

### Request body

`dic` string required min 3 chars max 14 chars

VAT number (DIČ), for example CZ12345678.

`bankAccount` string max 40 chars

### Response · 200

`dic` string required

`status` string required

`source` string required

`unreliableSince` string | null required

`publishedAccounts` object\[\] required

`accountNumber` null | string required

`bankCode` null | string required

`iban` null | string required

`checkedAt` string required date-time

`accountPublished` any required

Null in every recorded response.

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/suppliers/check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dic": "CZ12345678"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/suppliers/check', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "dic": "CZ12345678"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/suppliers/check",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "dic": "CZ12345678"
    },
)
data = response.json()
```

## Unpaid received invoices with the last known supplier status and account check, so risky payments stand out

GET `/v1/tax/suppliers/unpaid`

Unpaid received invoices with the last known supplier status and account check, so risky payments stand out

MCP tool: `list-unpaid-supplier-checks`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "tax\_unpaid\_invoice" required

`id` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`dic` null | string required

`dueDate` null | string required date

`totalHaler` integer | null required

`account` null | string required

`accountPublished` boolean | null required

`status` null | string required

`source` null | string required

`checkedAt` null | string required date-time

`unreliableSince` string | null required

`risk` string required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/suppliers/unpaid', {
  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/tax/suppliers/unpaid",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Check every supplier of an unpaid received invoice against ADIS and store the answers

POST `/v1/tax/suppliers/unpaid/check`

Check every supplier of an unpaid received invoice against ADIS and store the answers

MCP tool: `run-unpaid-supplier-checks`

### Response · 200

`data` object\[\] required

`object` "tax\_unpaid\_invoice" required

`id` string required

`number` null | string required

`supplierNumber` string required

`contactName` null | string required

`dic` null | string required

`dueDate` null | string required date

`totalHaler` integer | null required

`account` null | string required

`accountPublished` boolean | null required

`status` null | string required

`source` null | string required

`checkedAt` null | string required date-time

`unreliableSince` string | null required

`risk` string required

`total` integer required

`hasMore` boolean required

`checked` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/suppliers/unpaid/check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## Whether the company is in a VAT group (§ 5a ZDPH), in which role and from when

GET `/v1/tax/vat-group`

Whether the company is in a VAT group (§ 5a ZDPH), in which role and from when

MCP tool: `get-vat-group`

### Response · 200

`registered` boolean required

`active` boolean required

`role` null | string required

`name` null | string required

`dic` null | string required

`from` null | string required date

`to` any required

Null in every recorded response.

`applicationOn` any required

Null in every recorded response.

`earliestFrom` any required

Null in every recorded response.

`previousDic` null | string required

`members` object\[\] required

`ico` null | string required

`name` null | string required

`filesOwnReturn` boolean required

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group', {
  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/tax/vat-group",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Record the VAT group: its number, this company’s role, and the other members. From the date the company is a payer under the group’s number and a member files no return itself

PUT `/v1/tax/vat-group`

Record the VAT group: its number, this company’s role, and the other members. From the date the company is a payer under the group’s number and a member files no return itself. A decision of the tax office makes a group, not this record. Application dates and their deadlines are checked by getVatGroupStart: the record is what the office decided.

MCP tool: `set-vat-group`

### Request body

`role` "representative" | "member" required

`name` string required max 200 chars

`dic` string required min 10 chars max 14 chars

VAT number (DIČ), for example CZ12345678.

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string | null

Date as YYYY-MM-DD.

`applicationOn` string | null

Date as YYYY-MM-DD.

`members` object\[\]

`name` string required max 200 chars

`ico` string | null

Czech company number (IČO), 8 digits.

`contactId` string | null

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

### Response · 200

`registered` boolean required

`active` boolean required

`role` null | string required

`name` null | string required

`dic` null | string required

`from` null | string required date

`to` any required

Null in every recorded response.

`applicationOn` any required

Null in every recorded response.

`earliestFrom` any required

Null in every recorded response.

`previousDic` null | string required

`members` object\[\] required

`ico` null | string required

`name` null | string required

`filesOwnReturn` boolean required

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/vat-group \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "role": "representative",
  "name": "Pekárna U Lípy s.r.o.",
  "dic": "CZ12345678",
  "from": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "role": "representative",
    "name": "Pekárna U Lípy s.r.o.",
    "dic": "CZ12345678",
    "from": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/vat-group",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "role": "representative",
        "name": "Pekárna U Lípy s.r.o.",
        "dic": "CZ12345678",
        "from": "2026-10-30"
    },
)
data = response.json()
```

## Remove a group entered by mistake and give the company its number back. A membership that ended is ended with a date, as documents stand on it

DELETE `/v1/tax/vat-group`

Remove a group entered by mistake and give the company its number back. A membership that ended is ended with a date, as documents stand on it

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-vat-group`

### Response · 200

`registered` boolean required

`active` boolean required

`role` null | string required

`name` null | string required

`dic` null | string required

`from` null | string required date

`to` any required

Null in every recorded response.

`applicationOn` any required

Null in every recorded response.

`earliestFrom` any required

Null in every recorded response.

`previousDic` null | string required

`members` object\[\] required

`ico` null | string required

`name` null | string required

`filesOwnReturn` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vat-group \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## This member’s part of the group’s return and KH for a period, to give to the representative. What passed between members is left out

GET `/v1/tax/vat-group/contribution`

This member’s part of the group’s return and KH for a period, to give to the representative. What passed between members is left out

MCP tool: `get-vat-group-contribution`

### Query parameters

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`ico` null | string required

`name` null | string required

`from` string required date

`to` string required date

`entries` object\[\] required

`documentId` null | string required

`documentType` null | string required

`number` null | string required

`evidenceNumber` null | string required

`contactName` null | string required

`contactDic` string | null required

`contactCountry` string required

`date` string required date

`taxPointDate` null | string required date

`treatment` null | string required

`isDefaultTreatment` boolean required

`rate` integer required

`band` null | string required

`column` integer | null required

`baseHaler` integer | null required

`vatHaler` integer | null required

`deductibleVatHaler` integer required

`carLimited` boolean required

`coefficientExcluded` boolean required

`deduction` null | string required

`deductionPercent` integer | null required

`reverseChargeCode` string | null required

`specialRegime` integer required

`documentTotalHaler` integer required

`isBadDebt` boolean required

`khGroupId` any required

Null in every recorded response.

`isDebtorCorrection` boolean required

`offLedger` boolean required

`isCorrection` boolean required

`ossCountry` null | string required

`ossRate` string | null required

`ossRateType` string | null required

`ossSupplyType` string | null required

`ossScheme` string | null required

`currency` null | string required

`documentNetHaler` integer required

```bash
curl https://api.damedoklad.cz/v1/tax/vat-group/contribution \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group/contribution', {
  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/tax/vat-group/contribution",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## What the members handed over, as the representative has it

GET `/v1/tax/vat-group/contributions`

What the members handed over, as the representative has it

MCP tool: `list-vat-group-contributions`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "vat\_group\_contribution\_saved" required

`id` string required

`ico` string | null required

`name` null | string required

`from` string required date

`to` string required date

`entryCount` integer required

`createdAt` string date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

```bash
curl https://api.damedoklad.cz/v1/tax/vat-group/contributions \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group/contributions', {
  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/tax/vat-group/contributions",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Take in a member’s part of the return. The same member and period replaces the earlier one, and the return and KH then read it with the company’s own documents

POST `/v1/tax/vat-group/contributions`

Take in a member’s part of the return. The same member and period replaces the earlier one, and the return and KH then read it with the company’s own documents

MCP tool: `save-vat-group-contribution`

### Request body

`ico` string | null

Czech company number (IČO), 8 digits.

`name` string | null

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`entries` object\[\] required

### Response · 201

`id` string required

`ico` string | null required

`name` null | string required

`from` string required date

`to` string required date

`entryCount` integer required

`createdAt` string date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/vat-group/contributions \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "2026-10-30",
  "to": "2026-10-30",
  "entries": [
    {}
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group/contributions', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "from": "2026-10-30",
    "to": "2026-10-30",
    "entries": [
      {}
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/vat-group/contributions",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "from": "2026-10-30",
        "to": "2026-10-30",
        "entries": [
            {}
        ]
    },
)
data = response.json()
```

## Remove a member’s part from the return

DELETE `/v1/tax/vat-group/contributions/{id}`

Remove a member’s part from the return

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-vat-group-contribution`

### Path parameters

`id` string required

### Response · 200

`id` string required

`ico` string | null required

`name` null | string required

`from` string required date

`to` string required date

`entryCount` integer required

`createdAt` string date-time

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vat-group/contributions/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group/contributions/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/tax/vat-group/contributions/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## What passed between members of the group, kept apart as § 100 odst. 4 asks. None of it is in the return

GET `/v1/tax/vat-group/internal`

What passed between members of the group, kept apart as § 100 odst. 4 asks. None of it is in the return

MCP tool: `get-vat-group-internal-supplies`

### Query parameters

`from` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`from` string required date

`to` string required date

`rows` object\[\] required

`documentType` null | string required

`documentId` null | string required

`number` null | string required

`taxPointDate` null | string required date

`contactName` null | string required

`totalHaler` integer | null required

`totalHaler` integer | null required

```bash
curl https://api.damedoklad.cz/v1/tax/vat-group/internal \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group/internal', {
  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/tax/vat-group/internal",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## The first day a company can be in a group, from the day of the application (§ 94a odst. 2 to 4 ZDPH)

GET `/v1/tax/vat-group/start`

The first day a company can be in a group, from the day of the application (§ 94a odst. 2 to 4 ZDPH)

MCP tool: `get-vat-group-start`

### Query parameters

`applicationOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`applicationOn` string required date

`from` string required date

```bash
curl https://api.damedoklad.cz/v1/tax/vat-group/start \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-group/start', {
  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/tax/vat-group/start",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## VAT status of the company today and from which dates it changed

GET `/v1/tax/vat-status`

VAT status of the company today and from which dates it changed

MCP tool: `get-vat-status`

### Response · 200

`vatPayer` boolean required

`vatPeriod` string required

`dic` null | string required

`history` object\[\] required

`from` null | string required date

`vatPayer` boolean required

`vatPeriod` string required

`note` null | string required

`payerSince` null | string required date

`seatAbroad` boolean required

`identifiedFrom` null | string required date

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-status', {
  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/tax/vat-status",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Become or stop being a VAT payer from a date. Documents follow their own date: before it the old status, from it the new one

POST `/v1/tax/vat-status`

Become or stop being a VAT payer from a date. Documents follow their own date: before it the old status, from it the new one. A new payer is monthly in the year of registration and the next (§ 99a odst. 3 ZDPH). The § 79 deduction and § 79a reduction are entered on ř. 45 as adjustments. Documents already issued are not changed: previewVatStatusChange lists them.

MCP tool: `change-vat-status`

### Request body

`effectiveFrom` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`vatPayer` boolean required

`vatPeriod` "monthly" | "quarterly"

`dic` string max 14 chars

VAT number (DIČ), for example CZ12345678.

`note` string max 240 chars

`confirm` true required

### Response · 201

`vatPayer` boolean required

`vatPeriod` string required

`dic` null | string required

`history` object\[\] required

`from` null | string required date

`vatPayer` boolean required

`vatPeriod` string required

`note` null | string required

`payerSince` null | string required date

`seatAbroad` boolean required

`identifiedFrom` null | string required date

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/vat-status \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "effectiveFrom": "2026-10-30",
  "vatPayer": false,
  "confirm": true
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-status', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "effectiveFrom": "2026-10-30",
    "vatPayer": false,
    "confirm": true
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/vat-status",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "effectiveFrom": "2026-10-30",
        "vatPayer": False,
        "confirm": True
    },
)
data = response.json()
```

## Remove a change of VAT status entered for a date

DELETE `/v1/tax/vat-status/{date}`

Remove a change of VAT status entered for a date

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-vat-status-change`

### Path parameters

`date` string required

Date as YYYY-MM-DD.

### Response · 200

`vatPayer` boolean required

`vatPeriod` string required

`dic` null | string required

`history` object\[\] required

`from` null | string required date

`vatPayer` boolean required

`vatPeriod` string required

`note` null | string required

`payerSince` null | string required date

`seatAbroad` boolean required

`identifiedFrom` null | string required date

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vat-status/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-status/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/tax/vat-status/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Record that a non-payer has been an identified person since a date (§ 6g to § 6l): it self-assesses services and goods from abroad with no deduction

PUT `/v1/tax/vat-status/identified`

Record that a non-payer has been an identified person since a date (§ 6g to § 6l): it self-assesses services and goods from abroad with no deduction

MCP tool: `set-vat-identified-person`

### Request body

`from` string | null required

Date as YYYY-MM-DD.

### Response · 200

`vatPayer` boolean required

`vatPeriod` string required

`dic` null | string required

`history` object\[\] required

`from` null | string required date

`vatPayer` boolean required

`vatPeriod` string required

`note` null | string required

`payerSince` null | string required date

`seatAbroad` boolean required

`identifiedFrom` null | string required date

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/vat-status/identified \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "from": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-status/identified', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "from": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/vat-status/identified",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "from": "2026-10-30"
    },
)
data = response.json()
```

## What a change of VAT status on a date would touch: documents on the wrong side of it, and § 79 deduction or § 79a reduction to go through

GET `/v1/tax/vat-status/review`

What a change of VAT status on a date would touch: documents on the wrong side of it, and § 79 deduction or § 79a reduction to go through

MCP tool: `preview-vat-status-change`

### Query parameters

`effectiveFrom` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`vatPayer` "true" | "false" required

### Response · 200

`effectiveFrom` null | string required date

`vatPayer` boolean required

`documentsToReview` object\[\] required

`id` string required

`number` null | string required

`taxPointDate` null | string required date

`totalHaler` integer | null required

`section79` object

`rule` string required

`row` integer required

`candidates` any\[\] required

`totalVatHaler` integer required

`section79a` object

`rule` string required

`row` integer required

`assets` any\[\] required

`stockValueHaler` integer required

```bash
curl https://api.damedoklad.cz/v1/tax/vat-status/review \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-status/review', {
  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/tax/vat-status/review",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Say the company has no seat in the Czech Republic: § 6c then replaces the turnover limits of § 6, the first taxable supply here makes it a payer

PUT `/v1/tax/vat-status/seat`

Say the company has no seat in the Czech Republic: § 6c then replaces the turnover limits of § 6, the first taxable supply here makes it a payer

MCP tool: `set-vat-seat-abroad`

### Request body

`seatAbroad` boolean required

### Response · 200

`vatPayer` boolean required

`vatPeriod` string required

`dic` null | string required

`history` object\[\] required

`from` null | string required date

`vatPayer` boolean required

`vatPeriod` string required

`note` null | string required

`payerSince` null | string required date

`seatAbroad` boolean required

`identifiedFrom` null | string required date

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/vat-status/seat \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "seatAbroad": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-status/seat', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "seatAbroad": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/vat-status/seat",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "seatAbroad": False
    },
)
data = response.json()
```

## Obrat pro DPH (§ 4a, § 6 ZDPH): the calendar year by month, the 2 000 000 and 2 536 500 Kč limits, the day each was exceeded, and when the application is due

GET `/v1/tax/vat-turnover`

Obrat pro DPH (§ 4a, § 6 ZDPH): the calendar year by month, the 2 000 000 and 2 536 500 Kč limits, the day each was exceeded, and when the application is due. A warning for a person to check: supplies with a place of supply abroad are left out by VAT mode, and sales of long-term assets by account 641. Whatever the documents cannot show goes in as an adjustment.

MCP tool: `get-vat-turnover`

### Query parameters

`year` integer min 2000 max 2100

### Response · 200

`year` integer required

`turnoverHaler` integer required

`limitHaler` integer required

`fastLimitHaler` integer required

`remainingHaler` integer | null required

`percent` integer | null required

`status` string required

`annualExceededOn` null | string required date

`fastExceededOn` any required

Null in every recorded response.

`previousYearHaler` any required

Null in every recorded response.

`duty` null | object required

`rule` string required

`payerFrom` string required date

`applicationDue` string required date

`earlierFrom` string date

`seatAbroad` boolean

`mayDeregister` boolean required

`months` object\[\] required

`month` integer | null required

`amountHaler` integer | null required

`cumulativeHaler` integer required

`vatPayer` boolean required

`bySource` object required

`invoice` integer

`credit_note` integer

`journal` integer

`adjustment` integer

`adjustments` object\[\] required

`object` "vat\_turnover\_adjustment" required

`id` string required

`date` string required date

`amountHaler` integer | null required

`note` null | string required

`seatAbroad` boolean

`inGroup` boolean

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-turnover', {
  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/tax/vat-turnover",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add to or take from the turnover: sales before this app, or a supply that § 4a does not count

POST `/v1/tax/vat-turnover/adjustments`

Add to or take from the turnover: sales before this app, or a supply that § 4a does not count

MCP tool: `create-vat-turnover-adjustment`

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`amountHaler` integer required min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`note` string required max 240 chars

### Response · 201

`id` string required

`date` string required date

`amountHaler` integer | null required

`note` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/vat-turnover/adjustments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "amountHaler": 1210000,
  "note": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-turnover/adjustments', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "date": "2026-10-30",
    "amountHaler": 1210000,
    "note": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/vat-turnover/adjustments",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "amountHaler": 1210000,
        "note": "string"
    },
)
data = response.json()
```

## Remove a turnover adjustment

DELETE `/v1/tax/vat-turnover/adjustments/{id}`

Remove a turnover adjustment

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-vat-turnover-adjustment`

### Path parameters

`id` string required

### Response · 200

`id` string required

`date` string required date

`amountHaler` integer | null required

`note` null | string required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vat-turnover/adjustments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat-turnover/adjustments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/tax/vat-turnover/adjustments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Items for VAT return rows 45, 47, 51, 60 and 61 in a period, with their effect on the row

GET `/v1/tax/vat/adjustments`

Items for VAT return rows 45, 47, 51, 60 and 61 in a period, with their effect on the row

MCP tool: `list-tax-vat-adjustments`

### Query parameters

`year` integer min 2016 max 2100

`month` integer min 1 max 12

`quarter` integer min 1 max 4

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "tax\_vat\_adjustment" required

`id` string required

`kind` string required

`reportDate` string required date

`baseHaler` integer | null required

`vatHaler` integer | null required

`valueHaler` integer | null required

`reducedDeduction` boolean required

`inputs` object required

`carLimit` boolean

`years` integer

`inputVatHaler` integer

`currentPercent` integer

`originalPercent` integer

`carAcquiredOn` string date

`note` null | string required

`effect` object required

`row` integer required

`values` object required

`full` integer

`base` integer

`deductible` integer

`value` integer

`createdAt` string required date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/adjustments', {
  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/tax/vat/adjustments",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Add an item to VAT return row 45, 47, 51, 60 or 61, for example a § 77 settlement or a § 78 adjustment

POST `/v1/tax/vat/adjustments`

Add an item to VAT return row 45, 47, 51, 60 or 61, for example a § 77 settlement or a § 78 adjustment

MCP tool: `create-tax-vat-adjustment`

### Request body

`kind` "s75\_correction" | "s77\_settlement" | "s77a\_car" | "s79\_registration" | "s4\_long\_term\_asset" | "s76\_excluded\_taxable" | "s76\_excluded\_exempt" | "s78\_adjustment" | "s78\_oneoff" | "s84\_refund" required

`reportDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`baseHaler` integer min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`vatHaler` integer min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`valueHaler` integer min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`reducedDeduction` boolean

`inputs` object

`inputVatHaler` integer min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`years` 5 | 10

`originalPercent` number min 0 max 100

`currentPercent` number min 0 max 100

`carLimit` boolean

`carPriorVatHaler` integer min -9007199254740991 max 9007199254740991

Integer amount in haléře: 100 = 1 Kč.

`carAcquiredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`note` string max 2000 chars

### Response · 201

`id` string required

`kind` string required

`reportDate` string required date

`baseHaler` integer | null required

`vatHaler` integer | null required

`valueHaler` integer | null required

`reducedDeduction` boolean required

`inputs` object required

`carLimit` boolean

`years` integer

`inputVatHaler` integer

`currentPercent` integer

`originalPercent` integer

`carAcquiredOn` string date

`note` null | string required

`effect` object required

`row` integer required

`values` object required

`full` integer

`base` integer

`deductible` integer

`value` integer

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/vat/adjustments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "s75_correction",
  "reportDate": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/adjustments', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "kind": "s75_correction",
    "reportDate": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/vat/adjustments",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "kind": "s75_correction",
        "reportDate": "2026-10-30"
    },
)
data = response.json()
```

## Delete an item from VAT return row 45, 47, 51, 60 or 61

DELETE `/v1/tax/vat/adjustments/{id}`

Delete an item from VAT return row 45, 47, 51, 60 or 61

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-tax-vat-adjustment`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vat/adjustments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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

## One document as the VAT evidence sees it: classification, default treatment, return rows and KH section

GET `/v1/tax/vat/documents/{type}/{id}`

One document as the VAT evidence sees it: classification, default treatment, return rows and KH section

MCP tool: `get-vat-document-detail`

### Path parameters

`type` string required

`id` string required

### Response · 200

`id` string required

`documentType` null | string required

`number` null | string required

`vatMode` string

`status` string required

`taxPointDate` null | string date

`contactName` null | string

`contactDic` null | string

`totalHaler` integer | null

`currency` null | string

`exchangeRate` integer | null required

`defaultTreatment` string required

`classification` null | object required

`treatment` string | null

`deduction` null | string

`deductionPercent` integer | null

`selfAssessRate` integer | null

`reverseChargeCode` string | null

`specialRegime` integer

`reportDate` string | null

`evidenceNumber` string | null

`partnerDic` string | null

`partnerCountry` string | null

`ossCountry` string | null

`ossRate` string | null

`ossRateType` string | null

`ossSupplyType` string | null

`ossScheme` string | null

`carLimit` boolean

`carPriorVatHaler` integer | null

`coefficientExcluded` boolean

`note` string | null

`carInUseOn` string | null

`entries` object\[\] required

`documentId` null | string required

`documentType` null | string required

`number` null | string required

`evidenceNumber` null | string required

`contactName` null | string required

`contactDic` null | string required

`contactCountry` string required

`date` string required date

`taxPointDate` null | string required date

`treatment` null | string required

`isDefaultTreatment` boolean required

`rate` integer required

`band` string required

`column` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`deductibleVatHaler` integer required

`carLimited` boolean required

`coefficientExcluded` boolean required

`deduction` null | string required

`deductionPercent` integer | null required

`reverseChargeCode` string | null required

`specialRegime` integer required

`documentTotalHaler` integer required

`isBadDebt` boolean required

`khGroupId` any required

Null in every recorded response.

`isDebtorCorrection` boolean required

`offLedger` boolean required

`isCorrection` boolean required

`ossCountry` null | string required

`ossRate` string | null required

`ossRateType` string | null required

`ossSupplyType` string | null required

`ossScheme` string | null required

`currency` null | string required

`documentNetHaler` integer required

`returnRows` object required

`rowLabels` object required

`issues` any\[\] required

```bash
curl https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  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/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Set the VAT classification of a document: treatment, deduction, § 92a code, reporting date, evidence number

PUT `/v1/tax/vat/documents/{type}/{id}/classification`

Set the VAT classification of a document: treatment, deduction, § 92a code, reporting date, evidence number

MCP tool: `update-vat-classification`

### Path parameters

`type` string required

`id` string required

### Request body

`treatment` "output\_domestic" | "output\_reverse\_92a" | "output\_eu\_goods" | "output\_eu\_transfer" | "output\_triangular" | "output\_eu\_services" | "output\_export" | "output\_new\_vehicle" | "output\_oss" | "output\_other\_deductible" | "output\_gold" | "output\_exempt" | "input\_triangular" | "input\_domestic" | "input\_reverse\_92a" | "input\_eu\_goods" | "input\_eu\_services" | "input\_other\_self\_assessed" | "input\_new\_vehicle" | "input\_import\_self" | "input\_import\_customs" | "none" | null

`deduction` "full" | "proportional" | "coefficient" | "none" | null

`deductionPercent` integer | null

`selfAssessRate` integer | null

`reverseChargeCode` string | null

`specialRegime` integer min 0 max 2

`reportDate` string | null

Date as YYYY-MM-DD.

`evidenceNumber` string | null

`partnerDic` string | null

VAT number (DIČ), for example CZ12345678.

`partnerCountry` string | null

`ossCountry` string | null

`ossRate` number | null

`ossRateType` "Z" | "S" | null

`ossSupplyType` "G" | "S" | null

`ossScheme` "EU" | "NON\_EU" | "IMPORT" | null

`carLimit` boolean

`carPriorVatHaler` integer | null

Integer amount in haléře: 100 = 1 Kč.

`carInUseOn` string | null

Date as YYYY-MM-DD.

`coefficientExcluded` boolean

`note` string | null

### Response · 200

`documentType` null | string required

`documentId` null | string required

`treatment` null | string required

`deduction` null | string required

`deductionPercent` integer | null required

`selfAssessRate` integer | null required

`reverseChargeCode` null | string required

`specialRegime` integer required

`reportDate` null | string required date

`evidenceNumber` string | null required

`partnerDic` null | string required

`partnerCountry` string | null required

`ossCountry` null | string required

`ossRate` integer | null required

`ossRateType` null | string required

`ossSupplyType` null | string required

`ossScheme` null | string required

`carLimit` boolean required

`carPriorVatHaler` integer | null required

`coefficientExcluded` boolean required

`note` string | null required

`carInUseOn` null | string date

```bash
curl -X PUT https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/classification \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "treatment": "output_domestic",
  "deduction": "full",
  "deductionPercent": 0
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/classification', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "treatment": "output_domestic",
    "deduction": "full",
    "deductionPercent": 0
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/classification",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "treatment": "output_domestic",
        "deduction": "full",
        "deductionPercent": 0
    },
)
data = response.json()
```

## Drop the manual classification of a document so the default from its VAT mode applies again

DELETE `/v1/tax/vat/documents/{type}/{id}/classification`

Drop the manual classification of a document so the default from its VAT mode applies again

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `reset-vat-classification`

### Path parameters

`type` string required

`id` string required

### Response · 200

`documentType` null | string required

`documentId` null | string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/classification \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/classification', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const data = await response.json();
```

```python
import os
import requests

response = requests.delete(
    "https://api.damedoklad.cz/v1/tax/vat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/classification",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## VAT register for a period: every document with its classification, amounts, KH section and problems

GET `/v1/tax/vat/register`

VAT register for a period: every document with its classification, amounts, KH section and problems

MCP tool: `get-vat-register`

### Query parameters

`year` integer min 2016 max 2100

`month` integer min 1 max 12

`quarter` integer min 1 max 4

### Response · 200

`period` object required

`year` integer required

`month` integer | null required

`key` string required

`from` string required date

`to` string required date

`data` object\[\] required

`object` "tax\_document" required

`id` string required

`documentType` null | string required

`number` null | string required

`evidenceNumber` null | string required

`contactName` null | string required

`contactDic` null | string required

`contactCountry` string required

`date` string required date

`taxPointDate` null | string required date

`treatment` null | string required

`isDefaultTreatment` boolean required

`deduction` null | string required

`deductionPercent` integer | null required

`reverseChargeCode` null | string required

`khSection` null | string required

`isAdvance` boolean required

`isBadDebt` boolean required

`baseHaler` integer | null required

`vatHaler` integer | null required

`rates` object\[\] required

`rate` integer required

`baseHaler` integer | null required

`vatHaler` integer | null required

`flags` object\[\] required

`code` null | string required

`message` null | string required

`note` string | null required

`total` integer required

`hasMore` boolean required

`reconciliation` null | object required

`expectedOutputHaler` integer required

`expectedInputHaler` integer required

`journalOutputHaler` integer required

`journalInputHaler` integer required

`offLedgerVatHaler` integer required

`nonDeductibleHaler` integer required

`outputDifferenceHaler` integer required

`inputDifferenceHaler` integer required

`balanced` boolean required

`differences` object\[\] required

`documentId` null | string required

`documentType` null | string required

`isDebtorCorrection` boolean required

`number` null | string required

`documentVatHaler` integer required

`journalVatHaler` integer required

`unmatched` object\[\] required

`debitHaler` integer required

`creditHaler` integer required

`accountNumber` null | string required

`sourceOid` string required

`sourceType` null | string required

`sourceEvent` null | string required

`sourceLineOid` any required

Null in every recorded response.

`number` integer | null required

`documentNumber` null | string required

`entryDate` string required date

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/register', {
  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/tax/vat/register",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Check an EU VAT number: its format here, then its validity in VIES

POST `/v1/tax/vat/vies-check`

Check an EU VAT number: its format here, then its validity in VIES

MCP tool: `check-vies-number`

### Request body

`vatId` string required min 4 chars max 16 chars

ID of the vat.

### Response · 200

`source` string required

`checkedAt` null | string date-time

`vatNumber` string required

`valid` boolean required

`name` null | string

`address` null | string

`wellFormed` boolean

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/vat/vies-check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "vatId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vat/vies-check', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "vatId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/vat/vies-check",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "vatId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    },
)
data = response.json()
```

## List TaxVehicles

GET `/v1/tax/vehicles`

List TaxVehicles

MCP tool: `list-tax-vehicles`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 200

`data` any\[\] required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

More rows follow. Ask again with offset + the number of rows received.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vehicles', {
  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/tax/vehicles",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
data = response.json()
```

## Create a TaxVehicle

POST `/v1/tax/vehicles`

Create a TaxVehicle

MCP tool: `create-tax-vehicle`

### Request body

`plate` string required max 12 chars

`name` string | null

`category` "M1" | "M2" | "M3" | "N1" | "N2" | "N3" | "O1" | "O2" | "O3" | "O4" required

`bodyCode` string | null

`axles` integer | null

`weightTons` number required max 999

`airSuspension` boolean

`specialPurpose` boolean

`specialPlate` boolean

`outOfService` boolean

`taxedFrom` string | null

Date as YYYY-MM-DD.

`taxedTo` string | null

Date as YYYY-MM-DD.

`exemptLetter` string | null

`monthsExempt` integer min 0 max 12

`discountPercent` 0 | 25 | 50 | 75 | 90 | 100

### Response · 201

`id` string required

`plate` string required

`name` null | string required

`category` string required

`bodyCode` null | string required

`axles` integer | null required

`weightTons` integer required

`airSuspension` boolean required

`specialPurpose` boolean required

`specialPlate` boolean required

`outOfService` boolean required

`taxedFrom` null | string required date

`taxedTo` string | null required

`exemptLetter` string | null required

`monthsExempt` integer required

`discountPercent` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/tax/vehicles \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "plate": "string",
  "category": "M1",
  "weightTons": 1
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vehicles', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "plate": "string",
    "category": "M1",
    "weightTons": 1
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/tax/vehicles",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "plate": "string",
        "category": "M1",
        "weightTons": 1
    },
)
data = response.json()
```

## Update a TaxVehicle

PATCH `/v1/tax/vehicles/{id}`

Update a TaxVehicle

MCP tool: `update-tax-vehicle`

### Path parameters

`id` string required

### Request body

`plate` string max 12 chars

`name` string | null

`category` "M1" | "M2" | "M3" | "N1" | "N2" | "N3" | "O1" | "O2" | "O3" | "O4"

`bodyCode` string | null

`axles` integer | null

`weightTons` number max 999

`airSuspension` boolean

`specialPurpose` boolean

`specialPlate` boolean

`outOfService` boolean

`taxedFrom` string | null

Date as YYYY-MM-DD.

`taxedTo` string | null

Date as YYYY-MM-DD.

`exemptLetter` string | null

`monthsExempt` integer min 0 max 12

`discountPercent` 0 | 25 | 50 | 75 | 90 | 100

### Response · 200

`id` string required

`plate` string required

`name` null | string required

`category` string required

`bodyCode` null | string required

`axles` integer | null required

`weightTons` integer required

`airSuspension` boolean required

`specialPurpose` boolean required

`specialPlate` boolean required

`outOfService` boolean required

`taxedFrom` null | string required date

`taxedTo` string | null required

`exemptLetter` string | null required

`monthsExempt` integer required

`discountPercent` integer required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/tax/vehicles/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "plate": "string",
  "name": "Pekárna U Lípy s.r.o.",
  "category": "M1"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/tax/vehicles/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "plate": "string",
    "name": "Pekárna U Lípy s.r.o.",
    "category": "M1"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/tax/vehicles/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "plate": "string",
        "name": "Pekárna U Lípy s.r.o.",
        "category": "M1"
    },
)
data = response.json()
```

## Delete a TaxVehicle

DELETE `/v1/tax/vehicles/{id}`

Delete a TaxVehicle

IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.

MCP tool: `delete-tax-vehicle`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/tax/vehicles/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

```python
import os
import requests

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