# Assets · DameDoklad API

> Operations in the Assets group.

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

# Assets

Operations in the Assets group.

## List received invoice lines that could become assets: by default those above the 80 000 Kč threshold

GET `/v1/asset-acquisition-candidates`

List received invoice lines that could become assets: by default those above the 80 000 Kč threshold. Lines already linked to an asset and invoices in storno are left out. Set all=true to see smaller lines too.

MCP tool: `list-asset-acquisition-candidates`

### 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.

`all` boolean

### Response · 200

`data` object\[\] required

`object` "asset\_acquisition\_candidate" required

`id` string required

`lineId` string required

`invoiceId` null | string required

`invoiceNumber` string required

`contactId` null | string required

`contactName` null | string required

`issueDate` null | string required date

`description` null | string required

`netHaler` integer required

`vatHaler` integer | null required

`totalHaler` integer | null required

`costHaler` integer 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/asset-acquisition-candidates \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Create an asset from a received invoice line: reclassifies the cost to 042 and, with placeOn, posts MD 022 / D 042

POST `/v1/asset-acquisitions`

Create an asset from a received invoice line: reclassifies the cost to 042 and, with placeOn, posts MD 022 / D 042. Pass assetId to add another line to an asset still in acquisition. In daňová evidence the paid part of the line is removed from cash book expenses, because the price reaches the tax base through depreciation.

MCP tool: `create-asset-from-invoice-line`

### Request body

`lineId` string required

ID of the line.

`assetId` string

ID of the asset. Find it with list-assets.

`name` string max 200 chars

`inventoryNumber` string max 500 chars

`category` "dhm" | "dnm" | "land\_art"

`assetAccount` string

`taxMethod` "straight" | "accelerated" | "extraordinary\_ev" | "accounting" | "time\_based" | "none"

`taxGroup` integer min 1 max 6

`taxVariant` "standard" | "plus10" | "plus15" | "plus20"

`firstDepreciator` boolean

`isM1` boolean

`zeroEmission` boolean

`accountingMethod` "straight\_line" | "performance" | "equal\_to\_tax" | "none"

`lifeMonths` integer min 1 max 1200

`location` string max 500 chars

`responsiblePerson` string max 500 chars

`placeOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Response · 201

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-acquisitions \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "lineId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

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

```python
import os
import requests

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

## Undo creating an asset from a received invoice line: reverses the reclass to 04x and the cash book correction, and frees the line and the invoice

POST `/v1/asset-acquisitions/{id}/undo`

Undo creating an asset from a received invoice line: reverses the reclass to 04x and the cash book correction, and frees the line and the invoice. The asset must be out of use; call unplaceAsset first. When the last line goes and the card was only that line, the card is deleted too.

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

MCP tool: `undo-asset-acquisition`

### Path parameters

`id` string required

### Response · 200

`id` string required

`assetDeleted` boolean required

`assetId` null | string required

`costHaler` integer required

`linesLeft` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-acquisitions/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/undo \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## List posted monthly depreciation batches

GET `/v1/asset-depreciation-runs`

List posted monthly depreciation batches

MCP tool: `list-asset-depreciation-runs`

### 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` "asset\_depreciation\_run" required

`id` string required

`month` string required

`postedOn` string required date

`totalHaler` integer required

`status` string required

`journalEntryId` null | string required

`reversalEntryId` null | 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/asset-depreciation-runs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Post the monthly depreciation batch (MD 551 / D 08x). One batch per month, months in order

POST `/v1/asset-depreciation-runs`

Post the monthly depreciation batch (MD 551 / D 08x). One batch per month, months in order

MCP tool: `post-asset-depreciation-run`

### Request body

`month` string required

### Response · 201

`id` string required

`month` string required

`postedOn` string required date

`totalHaler` integer required

`status` string required

`journalEntryId` null | string required

`reversalEntryId` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-depreciation-runs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "month": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/asset-depreciation-runs",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "month": "2026-10-30"
    },
)
data = response.json()
```

## Reverse the latest monthly depreciation batch with a storno entry

POST `/v1/asset-depreciation-runs/{id}/reverse`

Reverse the latest monthly depreciation batch with a storno entry

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

MCP tool: `reverse-asset-depreciation-run`

### Path parameters

`id` string required

### Response · 200

`id` string required

`month` string required

`postedOn` string required date

`totalHaler` integer required

`status` string required

`journalEntryId` null | string required

`reversalEntryId` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-depreciation-runs/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reverse \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Preview the monthly accounting depreciation batch before posting it

GET `/v1/asset-depreciation-runs/preview`

Preview the monthly accounting depreciation batch before posting it

MCP tool: `preview-asset-depreciation-run`

### Query parameters

`month` string required

### Response · 200

`month` null | string required

`totalHaler` integer | null required

`blockedBy` any required

Null in every recorded response.

`alreadyPosted` boolean required

`canPost` boolean required

`rows` object\[\] required

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`amountHaler` integer | null required

`accumulatedHaler` integer required

`bookValueHaler` integer required

`dimensions` object required

`centerOid` any required

Null in every recorded response.

`activityOid` any required

Null in every recorded response.

`projectOid` any required

Null in every recorded response.

```bash
curl https://api.damedoklad.cz/v1/asset-depreciation-runs/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## List asset disposals

GET `/v1/asset-disposals`

List asset disposals

MCP tool: `list-asset-disposals`

### 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` "asset\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`fullyDeductibleDamage` boolean required

`contactId` string | null required

`accountingCostHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | 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/asset-disposals \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Reverse a disposal with storno entries and return the asset to use

POST `/v1/asset-disposals/{id}/reverse`

Reverse a disposal with storno entries and return the asset to use

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

MCP tool: `reverse-asset-disposal`

### Path parameters

`id` string required

### Response · 200

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`fullyDeductibleDamage` boolean required

`contactId` string | null required

`accountingCostHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-disposals/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reverse \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Reverse the latest partial disposal of an asset with storno entries

POST `/v1/asset-partial-disposals/{id}/reverse`

Reverse the latest partial disposal of an asset with storno entries

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

MCP tool: `reverse-asset-partial-disposal`

### Path parameters

`id` string required

### Response · 200

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-partial-disposals/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reverse \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Reverse the latest entry price change of an asset, with a storno of its entry if it posted one

POST `/v1/asset-price-changes/{id}/reverse`

Reverse the latest entry price change of an asset, with a storno of its entry if it posted one

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

MCP tool: `reverse-asset-price-change`

### Path parameters

`id` string required

### Response · 200

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-price-changes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reverse \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Depreciation plan of all assets for a year: accounting by month next to tax for the year

GET `/v1/asset-reports/depreciation-plan`

Depreciation plan of all assets for a year: accounting by month next to tax for the year

MCP tool: `get-asset-depreciation-plan`

### Query parameters

`year` integer required min 1990 max 2100

### Response · 200

`year` integer required

`rows` object\[\] required

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`months` integer\[\] required

`accountingHaler` integer required

`taxHaler` integer required

`taxDeductibleHaler` integer required

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

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

## Inventory list of fixed assets with cost, accumulated depreciation, book value, and tax residual, optionally as of a date

GET `/v1/asset-reports/inventory`

Inventory list of fixed assets with cost, accumulated depreciation, book value, and tax residual, optionally as of a date

MCP tool: `get-asset-inventory`

### Query parameters

`asOf` string YYYY-MM-DD

Date as YYYY-MM-DD.

`lang` "cs" | "en"

### Response · 200

`asOf` null | string required date

`rows` object\[\] required

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`category` null | string required

`placedOn` null | string required date

`location` null | string required

`responsiblePerson` null | string required

`assetAccount` string required

`costHaler` integer required

`accumulatedHaler` integer required

`bookValueHaler` integer required

`taxResidualHaler` integer required

`totals` object required

`costHaler` integer required

`accumulatedHaler` integer required

`bookValueHaler` integer required

`taxResidualHaler` integer required

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

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

## Download the inventory list as CSV for a stocktake

GET `/v1/asset-reports/inventory.csv`

Download the inventory list as CSV for a stocktake

MCP tool: `export-asset-inventory-csv`

### Query parameters

`asOf` string YYYY-MM-DD

Date as YYYY-MM-DD.

`lang` "cs" | "en"

### Response · 200

Returns a text/csv; charset=utf-8 file.

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

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

## Download the inventory list of fixed assets as a PDF, optionally as of a date

GET `/v1/asset-reports/inventory.pdf`

Download the inventory list of fixed assets as a PDF, optionally as of a date

MCP tool: `export-asset-inventory-pdf`

### Query parameters

`asOf` string YYYY-MM-DD

Date as YYYY-MM-DD.

`lang` "cs" | "en"

### Response · 200

Returns a application/pdf file.

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

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

## Tax vs accounting difference per asset for a year; adjustmentHaler positive raises the income tax base

GET `/v1/asset-reports/tax-difference`

Tax vs accounting difference per asset for a year; adjustmentHaler positive raises the income tax base

MCP tool: `get-asset-tax-difference`

### Query parameters

`year` integer required min 1990 max 2100

### Response · 200

`year` integer required

`rows` object\[\] required

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`accountingDepreciationHaler` integer required

`accountingNotPostedHaler` integer required

`taxDepreciationHaler` integer required

`taxDeductibleHaler` integer required

`accountingResidualHaler` integer required

`taxResidualHaler` integer required

`taxResidualDeductibleHaler` integer required

`accountingCostHaler` integer required

`taxCostHaler` integer required

`adjustmentHaler` integer required

`totals` object required

`accountingDepreciationHaler` integer required

`accountingNotPostedHaler` integer required

`taxDepreciationHaler` integer required

`taxDeductibleHaler` integer required

`accountingResidualHaler` integer required

`taxResidualHaler` integer required

`taxResidualDeductibleHaler` integer required

`adjustmentHaler` integer required

`leaseAdjustmentHaler` integer required

`leases` object\[\] required

`leaseId` null | string required

`name` null | string required

`isM1` boolean required

`status` string required

`expenseHaler` integer required

`deductibleHaler` integer required

`adjustmentHaler` integer required

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

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

## List physical stocktakes of assets (fyzická inventura)

GET `/v1/asset-stocktakes`

List physical stocktakes of assets (fyzická inventura)

MCP tool: `list-asset-stocktakes`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### 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/asset-stocktakes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Start a physical stocktake: snapshots fixed and small assets in use on the date, optionally for one location. Each part of a set of movable assets gets its own line under its card

POST `/v1/asset-stocktakes`

Start a physical stocktake: snapshots fixed and small assets in use on the date, optionally for one location. Each part of a set of movable assets gets its own line under its card

MCP tool: `create-asset-stocktake`

### Request body

`name` string max 200 chars

`asOf` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`location` string max 500 chars

`countedBy` string max 500 chars

`responsibleBy` string max 500 chars

`method` string max 500 chars

`startedAt` string YYYY-MM-DD

`note` string max 2000 chars

### Response · 201

`id` string required

`number` string required

`name` string required

`asOf` string required date

`location` null | string required

`countedBy` null | string required

`responsibleBy` null | string required

`method` string required

`startedAt` null | string required date

`status` string required

`closedOn` null | string required date

`note` string | null required

`summary` null | object

`total` integer required

`counted` integer required

`uncounted` integer required

`shortage` integer required

`surplus` integer required

`moved` integer required

`shortageBookValueHaler` integer required

`surplusValueHaler` integer required

`unresolved` integer required

`lines` object\[\]

`object` "asset\_stocktake\_line" required

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

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

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

```python
import os
import requests

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

## Get a stocktake with its count lines, differences, and summary

GET `/v1/asset-stocktakes/{id}`

Get a stocktake with its count lines, differences, and summary

MCP tool: `get-asset-stocktake`

### Path parameters

`id` string required

### Response · 200

`id` string required

`number` string required

`name` string required

`asOf` string required date

`location` null | string required

`countedBy` null | string required

`responsibleBy` null | string required

`method` string required

`startedAt` null | string required date

`status` string required

`closedOn` null | string required date

`note` string | null required

`summary` null | object

`total` integer required

`counted` integer required

`uncounted` integer required

`shortage` integer required

`surplus` integer required

`moved` integer required

`shortageBookValueHaler` integer required

`surplusValueHaler` integer required

`unresolved` integer required

`lines` object\[\]

`object` "asset\_stocktake\_line" required

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

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

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

## Update who counted a stocktake, who is responsible, and how it was done

PATCH `/v1/asset-stocktakes/{id}`

Update who counted a stocktake, who is responsible, and how it was done

MCP tool: `update-asset-stocktake`

### Path parameters

`id` string required

### Request body

`name` string max 200 chars

`countedBy` string max 500 chars

`responsibleBy` string max 500 chars

`method` string max 500 chars

`startedAt` string YYYY-MM-DD

`note` string max 2000 chars

### Response · 200

`id` string required

`number` string required

`name` string required

`asOf` string required date

`location` null | string required

`countedBy` null | string required

`responsibleBy` null | string required

`method` string required

`startedAt` null | string required date

`status` string required

`closedOn` null | string required date

`note` string | null required

`summary` null | object

`total` integer required

`counted` integer required

`uncounted` integer required

`shortage` integer required

`surplus` integer required

`moved` integer required

`shortageBookValueHaler` integer required

`surplusValueHaler` integer required

`unresolved` integer required

`lines` object\[\]

`object` "asset\_stocktake\_line" required

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

```bash
curl -X PATCH https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "countedBy": "string",
  "responsibleBy": "string"
}'
```

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

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "countedBy": "string",
        "responsibleBy": "string"
    },
)
data = response.json()
```

## Delete a stocktake that is still open and has no resolved differences

DELETE `/v1/asset-stocktakes/{id}`

Delete a stocktake that is still open and has no resolved differences

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

MCP tool: `delete-asset-stocktake`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Close a stocktake once every line is counted; assets found elsewhere are moved unless applyMoves is false

POST `/v1/asset-stocktakes/{id}/close`

Close a stocktake once every line is counted; assets found elsewhere are moved unless applyMoves is false

MCP tool: `close-asset-stocktake`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`applyMoves` boolean

### Response · 200

`id` string required

`number` string required

`name` string required

`asOf` string required date

`location` null | string required

`countedBy` null | string required

`responsibleBy` null | string required

`method` string required

`startedAt` null | string required date

`status` string required

`closedOn` null | string required date

`note` string | null required

`summary` null | object

`total` integer required

`counted` integer required

`uncounted` integer required

`shortage` integer required

`surplus` integer required

`moved` integer required

`shortageBookValueHaler` integer required

`surplusValueHaler` integer required

`unresolved` integer required

`lines` object\[\]

`object` "asset\_stocktake\_line" required

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/close \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/close",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Mark every uncounted line of a stocktake as found in full at its expected location

POST `/v1/asset-stocktakes/{id}/count-all`

Mark every uncounted line of a stocktake as found in full at its expected location

MCP tool: `count-all-asset-stocktake-lines`

### Path parameters

`id` string required

### Response · 200

`id` string required

`number` string required

`name` string required

`asOf` string required date

`location` null | string required

`countedBy` null | string required

`responsibleBy` null | string required

`method` string required

`startedAt` null | string required date

`status` string required

`closedOn` null | string required date

`note` string | null required

`summary` null | object

`total` integer required

`counted` integer required

`uncounted` integer required

`shortage` integer required

`surplus` integer required

`moved` integer required

`shortageBookValueHaler` integer required

`surplusValueHaler` integer required

`unresolved` integer required

`lines` object\[\]

`object` "asset\_stocktake\_line" required

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/count-all \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Download the count sheet of a stocktake to fill in on site

GET `/v1/asset-stocktakes/{id}/count-sheet.pdf`

Download the count sheet of a stocktake to fill in on site

MCP tool: `export-asset-stocktake-count-sheet`

### Path parameters

`id` string required

### Query parameters

`lang` "cs" | "en"

### Response · 200

Returns a application/pdf file.

```bash
curl https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/count-sheet.pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

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

## Record what was found for one line of a stocktake: quantity, location, and a note

PATCH `/v1/asset-stocktakes/{id}/lines/{lineId}`

Record what was found for one line of a stocktake: quantity, location, and a note

MCP tool: `count-asset-stocktake-line`

### Path parameters

`id` string required

`lineId` string required

ID of the line.

### Request body

`foundQuantityMilli` integer | null

Integer thousandths: 1500 means 1.5.

`foundLocation` string | null

`note` string | null

### Response · 200

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

```bash
curl -X PATCH https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "foundQuantityMilli": 1000,
  "foundLocation": "string",
  "note": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "foundQuantityMilli": 1000,
    "foundLocation": "string",
    "note": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "foundQuantityMilli": 1000,
        "foundLocation": "string",
        "note": "string"
    },
)
data = response.json()
```

## Settle a stocktake difference: a shortage of a fixed asset is disposed (MD 549), a missing part of a set leaves the set, a surplus becomes a new asset (MD 02x / D 648)

POST `/v1/asset-stocktakes/{id}/lines/{lineId}/resolve`

Settle a stocktake difference: a shortage of a fixed asset is disposed (MD 549), a missing part of a set leaves the set, a surplus becomes a new asset (MD 02x / D 648). A surplus is valued at reprodukční pořizovací cena (ČÚS 013 bod 3.2) and credited to revenue, so it can be depreciated (§ 27 písm. g) ZDP). A shortage of a small asset leaves the register and posts nothing. A missing part of a set leaves the list of the set and posts nothing either: the card keeps its price until a partial disposal says otherwise. Differences belong to the audited period (§ 30 odst. 11 zákona o účetnictví).

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

MCP tool: `resolve-asset-stocktake-line`

### Path parameters

`id` string required

`lineId` string required

ID of the line.

### Request body

`action` "dispose" | "record" required

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`compensationHaler` integer min 0 max 9007199254740991

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

`taxGroup` integer min 1 max 6

`assetAccount` string

`note` string max 2000 chars

### Response · 200

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/resolve \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "action": "dispose",
  "date": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/resolve', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "action": "dispose",
    "date": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/resolve",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "action": "dispose",
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Download the inventurní soupis with found quantities and differences (§ 30 odst. 7 zákona o účetnictví)

GET `/v1/asset-stocktakes/{id}/result.pdf`

Download the inventurní soupis with found quantities and differences (§ 30 odst. 7 zákona o účetnictví)

MCP tool: `export-asset-stocktake-result`

### Path parameters

`id` string required

### Query parameters

`lang` "cs" | "en"

### Response · 200

Returns a application/pdf file.

```bash
curl https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/result.pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

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

## Add an asset found on site that is not on the books (inventarizační přebytek)

POST `/v1/asset-stocktakes/{id}/surpluses`

Add an asset found on site that is not on the books (inventarizační přebytek)

MCP tool: `add-asset-stocktake-surplus`

### Path parameters

`id` string required

### Request body

`name` string required max 200 chars

`foundLocation` string max 500 chars

`estimatedValueHaler` integer min 0 max 9007199254740991

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

`note` string max 2000 chars

### Response · 201

`id` string required

`stocktakeId` string required

`kind` string required

`assetId` null | string required

`smallAssetId` null | string required

`inventoryNumber` null | string required

`name` string required

`expectedLocation` null | string required

`expectedResponsible` string | null required

`account` null | string required

`costHaler` integer required

`bookValueHaler` integer required

`expectedQuantityMilli` integer required

`foundQuantityMilli` integer | null required

`foundLocation` null | string required

`estimatedValueHaler` integer required

`note` null | string required

`resolution` null | string required

`resolvedAssetId` null | string required

`difference` null | string required

`setItemId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/surpluses \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/surpluses', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/asset-stocktakes/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/surpluses",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Asset figures for the income tax return of a year. The tax module reads this

GET `/v1/asset-tax-summary`

Asset figures for the income tax return of a year. The tax module reads this. double\_entry: add adjustmentHaler to the accounting result (positive raises the base); it includes leaseAdjustmentHaler, the part of lease expense booked on 518 that § 30f or § 24 odst. 6 ZDP excludes. tax\_records and single\_entry: disposal residuals are written to the cash book as non\_cash expense\_deductible rows at the disposal date, so never add disposalDeductibleHaler again. When postedToCashBook is true, depreciation and the lease share are there too; when false, the year is not closed and deductibleHaler + leaseDeductibleHaler is still to come.

MCP tool: `get-asset-tax-summary`

### Query parameters

`year` integer required min 1990 max 2100

### Response · 200

`year` integer required

`regime` string required

`taxYearClosed` boolean required

`postedToCashBook` boolean required

`depreciationHaler` integer required

`deductibleHaler` integer required

`disposalResidualHaler` integer required

`disposalDeductibleHaler` integer required

`accountingDepreciationHaler` integer required

`accountingNotPostedHaler` integer required

`accountingResidualHaler` integer required

`adjustmentHaler` integer required

`leaseAdjustmentHaler` integer required

`leaseExpensePostedHaler` integer required

`leaseDeductibleHaler` integer required

`assets` integer required

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

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

## Yearly tax depreciation worksheet of all assets, with lease expense and whether the year is closed

GET `/v1/asset-tax-years/{year}`

Yearly tax depreciation worksheet of all assets, with lease expense and whether the year is closed

MCP tool: `get-asset-tax-year`

### Path parameters

`year` string required

### Response · 200

`year` integer required

`regime` string

`status` string required

`canClose` boolean

`totalDepreciationHaler` integer

`totalDeductibleHaler` integer

`leaseDeductibleHaler` integer

`rows` object\[\]

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`method` null | string required

`group` integer required

`status` string required

`ratePct` number required

`priceHaler` integer required

`depreciationHaler` integer required

`deductibleHaler` integer required

`accumulatedHaler` integer required

`residualHaler` integer required

`accountingPostedHaler` integer required

`accountingPlannedHaler` integer required

`disposed` boolean required

`partialDisposals` any\[\] required

`leases` object\[\]

`leaseId` null | string required

`name` null | string required

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`id` string

`depreciationHaler` integer

`deductibleHaler` integer

`leaseExpenseHaler` integer

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

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

## Daňová evidence: write the year’s tax depreciation and lease expense to the cash book as non-cash deductible rows

POST `/v1/asset-tax-years/{year}/close`

Daňová evidence: write the year’s tax depreciation and lease expense to the cash book as non-cash deductible rows. Guarded: one closed record per year. Rows use moneyAccount non\_cash, so they change the tax base and no cash balance.

MCP tool: `close-asset-tax-year`

### Path parameters

`year` string required

### Response · 200

`year` integer required

`regime` string

`status` string required

`canClose` boolean

`totalDepreciationHaler` integer

`totalDeductibleHaler` integer

`leaseDeductibleHaler` integer

`rows` object\[\]

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`method` null | string required

`group` integer required

`status` string required

`ratePct` number required

`priceHaler` integer required

`depreciationHaler` integer required

`deductibleHaler` integer required

`accumulatedHaler` integer required

`residualHaler` integer required

`accountingPostedHaler` integer required

`accountingPlannedHaler` integer required

`disposed` boolean required

`partialDisposals` any\[\] required

`leases` object\[\]

`leaseId` null | string required

`name` null | string required

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`id` string

`depreciationHaler` integer

`deductibleHaler` integer

`leaseExpenseHaler` integer

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

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

## Reopen a closed tax depreciation year by writing storno rows to the cash book

POST `/v1/asset-tax-years/{year}/reopen`

Reopen a closed tax depreciation year by writing storno rows to the cash book

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

MCP tool: `reopen-asset-tax-year`

### Path parameters

`year` string required

### Response · 200

`year` integer required

`regime` string

`status` string required

`canClose` boolean

`totalDepreciationHaler` integer

`totalDeductibleHaler` integer

`leaseDeductibleHaler` integer

`rows` object\[\]

`assetId` null | string required

`inventoryNumber` null | string required

`name` null | string required

`method` null | string required

`group` integer required

`status` string required

`ratePct` number required

`priceHaler` integer required

`depreciationHaler` integer required

`deductibleHaler` integer required

`accumulatedHaler` integer required

`residualHaler` integer required

`accountingPostedHaler` integer required

`accountingPlannedHaler` integer required

`disposed` boolean required

`partialDisposals` any\[\] required

`leases` object\[\]

`leaseId` null | string required

`name` null | string required

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`id` string

`depreciationHaler` integer

`deductibleHaler` integer

`leaseExpenseHaler` integer

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

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

## List fixed assets (dlouhodobý majetek) with inventory numbers, status, cost, and linked accounts

GET `/v1/assets`

List fixed assets (dlouhodobý majetek) with inventory numbers, status, cost, and linked accounts

MCP tool: `list-assets`

### 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.

`status` "in\_progress" | "active" | "disposed"

`category` "dhm" | "dnm" | "land\_art"

### Response · 200

`data` null | object\[\] required

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer 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/assets \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Create a fixed asset card; it starts in acquisition until placed in service

POST `/v1/assets`

Create a fixed asset card; it starts in acquisition until placed in service. Set isOpening with placedOn and opening values for assets already on the books; they post nothing when placed.

MCP tool: `create-asset`

### Request body

`name` string required max 200 chars

`inventoryNumber` string max 500 chars

`category` "dhm" | "dnm" | "land\_art"

`acquiredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`costHaler` integer min 0 max 9007199254740991

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

`assetAccount` string

`location` string max 500 chars

`responsiblePerson` string max 500 chars

`physicalDimensions` string max 500 chars

`serialNumber` string max 500 chars

`note` string max 2000 chars

`contactId` string

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

`centerId` string

ID of the center.

`activityId` string

ID of the activity. Find it with list-activity.

`projectId` string

ID of the project.

`taxMethod` "straight" | "accelerated" | "extraordinary\_ev" | "accounting" | "time\_based" | "none"

`taxGroup` integer min 1 max 6

`taxVariant` "standard" | "plus10" | "plus15" | "plus20"

`taxEntryPriceHaler` integer min 0 max 9007199254740991

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

`taxStartYear` integer min 1990 max 2100

`firstDepreciator` boolean

`isM1` boolean

`zeroEmission` boolean

`increaseExcluded` boolean

`businessUsePct` integer min 0 max 100

`accountingMethod` "straight\_line" | "performance" | "equal\_to\_tax" | "none"

`lifeMonths` integer min 1 max 1200

`residualValueHaler` integer min 0 max 9007199254740991

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

`totalUnitsMilli` integer min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`isOpening` boolean

`placedOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`openingAccumulatedHaler` integer min 0 max 9007199254740991

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

`openingThroughMonth` string

`taxTimeKind` "period" | "units" | "monument"

`taxTimeMonths` integer min 1 max 1200

`taxTimePrecision` "months" | "days"

`taxTimeUnitsMilli` integer min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`shareNumerator` integer min 1 max 1000000

`shareDenominator` integer min 1 max 1000000

`openingTaxAccumulatedHaler` integer min 0 max 9007199254740991

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

`openingTaxThroughYear` integer min 1990 max 2100

`openingTaxYears` integer min 0 max 120

`openingTaxDeductibleHaler` integer min 0 max 9007199254740991

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

`openingTaxIncreased` boolean

### Response · 201

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "name": "Pekárna U Lípy s.r.o."
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Get a fixed asset card with its improvements and current values

GET `/v1/assets/{id}`

Get a fixed asset card with its improvements and current values

MCP tool: `get-asset`

### Path parameters

`id` string required

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

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

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

## Update a fixed asset card. Price and depreciation method lock once the asset is in use

PATCH `/v1/assets/{id}`

Update a fixed asset card. Price and depreciation method lock once the asset is in use

MCP tool: `update-asset`

### Path parameters

`id` string required

### Request body

`name` string max 200 chars

`inventoryNumber` string max 500 chars

`category` "dhm" | "dnm" | "land\_art"

`acquiredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`costHaler` integer min 0 max 9007199254740991

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

`assetAccount` string

`location` string max 500 chars

`responsiblePerson` string max 500 chars

`physicalDimensions` string max 500 chars

`serialNumber` string max 500 chars

`note` string max 2000 chars

`contactId` string

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

`centerId` string

ID of the center.

`activityId` string

ID of the activity. Find it with list-activity.

`projectId` string

ID of the project.

`taxMethod` "straight" | "accelerated" | "extraordinary\_ev" | "accounting" | "time\_based" | "none"

`taxGroup` integer min 1 max 6

`taxVariant` "standard" | "plus10" | "plus15" | "plus20"

`taxEntryPriceHaler` integer min 0 max 9007199254740991

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

`taxStartYear` integer min 1990 max 2100

`firstDepreciator` boolean

`isM1` boolean

`zeroEmission` boolean

`increaseExcluded` boolean

`businessUsePct` integer min 0 max 100

`accountingMethod` "straight\_line" | "performance" | "equal\_to\_tax" | "none"

`lifeMonths` integer min 1 max 1200

`residualValueHaler` integer min 0 max 9007199254740991

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

`totalUnitsMilli` integer min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`isOpening` boolean

`placedOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`openingAccumulatedHaler` integer min 0 max 9007199254740991

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

`openingThroughMonth` string

`taxTimeKind` "period" | "units" | "monument"

`taxTimeMonths` integer min 1 max 1200

`taxTimePrecision` "months" | "days"

`taxTimeUnitsMilli` integer min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`shareNumerator` integer min 1 max 1000000

`shareDenominator` integer min 1 max 1000000

`openingTaxAccumulatedHaler` integer min 0 max 9007199254740991

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

`openingTaxThroughYear` integer min 1990 max 2100

`openingTaxYears` integer min 0 max 120

`openingTaxDeductibleHaler` integer min 0 max 9007199254740991

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

`openingTaxIncreased` boolean

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

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

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

```python
import os
import requests

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

## Delete a fixed asset card that has not been placed in service and has no acquisition postings

DELETE `/v1/assets/{id}`

Delete a fixed asset card that has not been placed in service and has no acquisition postings

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

MCP tool: `delete-asset`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

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

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

## Monthly accounting depreciation plan of an asset: posted months plus the months still planned

GET `/v1/assets/{id}/accounting-plan`

Monthly accounting depreciation plan of an asset: posted months plus the months still planned

MCP tool: `get-asset-accounting-plan`

### Path parameters

`id` string required

### Response · 200

`data` object\[\] required

`month` null | string required

`amountHaler` integer | null required

`accumulatedHaler` integer

`bookValueHaler` integer

`state` string required

`total` integer required

`hasMore` boolean required

```bash
curl https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/accounting-plan \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Received invoice lines that make up an asset’s price

GET `/v1/assets/{id}/acquisition-lines`

Received invoice lines that make up an asset’s price

MCP tool: `list-asset-acquisition-lines`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### 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/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/acquisition-lines \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Download the asset card as a PDF: values, tax and accounting depreciation, improvements, changes, and location history

GET `/v1/assets/{id}/card.pdf`

Download the asset card as a PDF: values, tax and accounting depreciation, improvements, changes, and location history

MCP tool: `export-asset-card-pdf`

### Path parameters

`id` string required

### Query parameters

`lang` "cs" | "en"

### Response · 200

Returns a application/pdf file.

```bash
curl https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/card.pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

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

## Dispose of an asset by sale, scrapping, damage, donation, or transfer to private use, with the right postings

POST `/v1/assets/{id}/dispose`

Dispose of an asset by sale, scrapping, damage, donation, or transfer to private use, with the right postings. Double entry: residual MD 541/551/549/543 / D 08x, then MD 08x / D 02x; a sale adds MD 311 / D 641 + D 343. If you also issue an invoice for the sale, leave saleHaler out so revenue is not posted twice. Cash book regimes write the deductible residual as a non-cash row.

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

MCP tool: `dispose-asset`

### Path parameters

`id` string required

### Request body

`kind` "sale" | "scrap" | "damage" | "donation" | "private\_use" | "shortage" required

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`saleHaler` integer min 0 max 9007199254740991

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

`saleVatHaler` integer min 0 max 9007199254740991

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

`compensationHaler` integer min 0 max 9007199254740991

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

`fullyDeductibleDamage` boolean

`contactId` string

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

`proceedsMethod` "transfer" | "cash" | "card"

`note` string max 2000 chars

### Response · 201

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`fullyDeductibleDamage` boolean required

`contactId` string | null required

`accountingCostHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "kind": "sale",
  "date": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "kind": "sale",
    "date": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "kind": "sale",
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Show the accounting residual, tax residual, half-year depreciation, and deductibility of a disposal without posting

POST `/v1/assets/{id}/dispose/preview`

Show the accounting residual, tax residual, half-year depreciation, and deductibility of a disposal without posting

MCP tool: `preview-asset-disposal`

### Path parameters

`id` string required

### Request body

`kind` "sale" | "scrap" | "damage" | "donation" | "private\_use" | "shortage" required

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`saleHaler` integer min 0 max 9007199254740991

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

`saleVatHaler` integer min 0 max 9007199254740991

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

`compensationHaler` integer min 0 max 9007199254740991

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

`fullyDeductibleDamage` boolean

`contactId` string

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

`proceedsMethod` "transfer" | "cash" | "card"

`note` string max 2000 chars

### Response · 200

`assetId` null | string required

`kind` string required

`accountingCostHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationInYearHaler` integer required

`taxDepreciationStatus` string required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`taxNonDeductibleHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "kind": "sale",
  "date": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose/preview', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "kind": "sale",
    "date": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose/preview",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "kind": "sale",
        "date": "2026-10-30"
    },
)
data = response.json()
```

## List technical improvements of a fixed asset

GET `/v1/assets/{id}/improvements`

List technical improvements of a fixed asset

MCP tool: `list-asset-improvements`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### 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/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/improvements \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Add a technical improvement. It raises the entry price from its tax year; in double entry posts MD 022 / D 042

POST `/v1/assets/{id}/improvements`

Add a technical improvement. It raises the entry price from its tax year; in double entry posts MD 022 / D 042. Under § 33 ZDP spending counts as an improvement above 80 000 Kč per asset per tax period. Below that the response flags it, and the taxpayer may still choose to treat it as one.

MCP tool: `create-asset-improvement`

### Path parameters

`id` string required

### Request body

`completedOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`description` string required max 200 chars

`amountHaler` integer required min 1 max 9007199254740991

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

`creditAccount` string

### Response · 201

`id` string required

`assetId` string required

`completedOn` string required date

`description` string required

`amountHaler` integer required

`totalInYearHaler` integer required

`overThreshold` boolean required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/improvements \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "completedOn": "2026-10-30",
  "description": "Pečivo, říjen",
  "amountHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/improvements', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "completedOn": "2026-10-30",
    "description": "Pečivo, říjen",
    "amountHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/improvements",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "completedOn": "2026-10-30",
        "description": "Pečivo, říjen",
        "amountHaler": 1210000
    },
)
data = response.json()
```

## History of an asset’s location, responsible person, and cost centre

GET `/v1/assets/{id}/moves`

History of an asset’s location, responsible person, and cost centre

MCP tool: `list-asset-moves`

### Path parameters

`id` string required

### 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` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | 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/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/moves \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Move an asset to another location, responsible person, or cost centre from a date, keeping the history

POST `/v1/assets/{id}/moves`

Move an asset to another location, responsible person, or cost centre from a date, keeping the history. Monthly depreciation uses the dimensions valid at the end of the posted month.

MCP tool: `move-asset`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`location` string | null

`responsiblePerson` string | null

`centerId` string | null

ID of the center.

`activityId` string | null

ID of the activity. Find it with list-activity.

`projectId` string | null

ID of the project.

`note` string max 2000 chars

### Response · 201

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/moves \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/moves",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Dispose of part of an asset: the entry price drops, the rate stays (§ 29 odst. 7 ZDP), and the part leaves with its share of accumulated depreciation

POST `/v1/assets/{id}/partial-disposals`

Dispose of part of an asset: the entry price drops, the rate stays (§ 29 odst. 7 ZDP), and the part leaves with its share of accumulated depreciation. Posts MD 08x / D 02x at the part’s cost and the part’s residual to 541/551/549/543/491. Cash book regimes write the deductible residual as a non-cash row. Pass toShareNumerator and toShareDenominator when selling part of a co-ownership share (§ 30e odst. 8 ZDP).

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

MCP tool: `dispose-asset-part`

### Path parameters

`id` string required

### Request body

`kind` "sale" | "scrap" | "damage" | "donation" | "private\_use" | "shortage" required

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`partCostHaler` integer required min 1 max 9007199254740991

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

`partTaxPriceHaler` integer min 0 max 9007199254740991

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

`saleHaler` integer min 0 max 9007199254740991

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

`saleVatHaler` integer min 0 max 9007199254740991

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

`compensationHaler` integer min 0 max 9007199254740991

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

`fullyDeductibleDamage` boolean

`contactId` string

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

`proceedsMethod` "transfer" | "cash" | "card"

`toShareNumerator` integer min 1 max 1000000

`toShareDenominator` integer min 1 max 1000000

`note` string max 2000 chars

### Response · 201

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/partial-disposals \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "kind": "sale",
  "date": "2026-10-30",
  "partCostHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/partial-disposals', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "kind": "sale",
    "date": "2026-10-30",
    "partCostHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/partial-disposals",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "kind": "sale",
        "date": "2026-10-30",
        "partCostHaler": 1210000
    },
)
data = response.json()
```

## Show what removing part of an asset does to accounting and tax values, without posting

POST `/v1/assets/{id}/partial-disposals/preview`

Show what removing part of an asset does to accounting and tax values, without posting

MCP tool: `preview-asset-partial-disposal`

### Path parameters

`id` string required

### Request body

`kind` "sale" | "scrap" | "damage" | "donation" | "private\_use" | "shortage" required

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`partCostHaler` integer required min 1 max 9007199254740991

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

`partTaxPriceHaler` integer min 0 max 9007199254740991

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

`saleHaler` integer min 0 max 9007199254740991

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

`saleVatHaler` integer min 0 max 9007199254740991

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

`compensationHaler` integer min 0 max 9007199254740991

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

`fullyDeductibleDamage` boolean

`contactId` string

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

`proceedsMethod` "transfer" | "cash" | "card"

`toShareNumerator` integer min 1 max 1000000

`toShareDenominator` integer min 1 max 1000000

`note` string max 2000 chars

### Response · 200

`assetId` null | string required

`kind` string required

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`taxNonDeductibleHaler` integer required

`remainingCostHaler` integer required

`remainingTaxPriceHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/partial-disposals/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "kind": "sale",
  "date": "2026-10-30",
  "partCostHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/partial-disposals/preview', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "kind": "sale",
    "date": "2026-10-30",
    "partCostHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/partial-disposals/preview",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "kind": "sale",
        "date": "2026-10-30",
        "partCostHaler": 1210000
    },
)
data = response.json()
```

## Place an acquired asset in service; in double entry posts MD 022 / D 042

POST `/v1/assets/{id}/place`

Place an acquired asset in service; in double entry posts MD 022 / D 042

MCP tool: `place-asset-in-service`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`creditAccount` string

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/place \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/place",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Change the tax entry price of an asset already depreciated for a reason other than an improvement: the rate stays (§ 29 odst. 7 ZDP), for example a change of VAT registration

POST `/v1/assets/{id}/price-changes`

Change the tax entry price of an asset already depreciated for a reason other than an improvement: the rate stays (§ 29 odst. 7 ZDP), for example a change of VAT registration. amountHaler is signed. Registering for VAT lowers the price by the VAT claimed, cancelling a registration raises it by the deduction lost (GFŘ D-59 K § 29 bod 2 and 3). An M1 vehicle recomputes its limit (§ 30e odst. 4, § 30f odst. 4). Tax only, unless counterAccount posts the same change in double entry.

MCP tool: `change-asset-entry-price`

### Path parameters

`id` string required

### 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č.

`reason` "vat\_registration" | "vat\_deregistration" | "grant" | "other" required

`counterAccount` string

`note` string max 2000 chars

### Response · 201

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/price-changes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "amountHaler": 1210000,
  "reason": "vat_registration"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/price-changes",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "amountHaler": 1210000,
        "reason": "vat_registration"
    },
)
data = response.json()
```

## Add an improvement of a vehicle under § 30a ZDP on a card of its own, sharing the M1 limit (§ 30a odst. 3, § 30e odst. 5)

POST `/v1/assets/{id}/separate-improvements`

Add an improvement of a vehicle under § 30a ZDP on a card of its own, sharing the M1 limit (§ 30a odst. 3, § 30e odst. 5)

MCP tool: `add-asset-separate-improvement`

### Path parameters

`id` string required

### Request body

`name` string required max 500 chars

`completedOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`amountHaler` integer required min 1 max 9007199254740991

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

`taxGroup` integer min 1 max 6

`taxMethod` "straight" | "accelerated"

`creditAccount` string

`note` string max 2000 chars

### Response · 201

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/separate-improvements \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "completedOn": "2026-10-30",
  "amountHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/separate-improvements', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o.",
    "completedOn": "2026-10-30",
    "amountHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/separate-improvements",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "completedOn": "2026-10-30",
        "amountHaler": 1210000
    },
)
data = response.json()
```

## The parts of a set of movable assets (soubor movitých věcí, § 26 odst. 2 ZDP), its main item first

GET `/v1/assets/{id}/set-items`

The parts of a set of movable assets (soubor movitých věcí, § 26 odst. 2 ZDP), its main item first

MCP tool: `list-asset-set-items`

### Path parameters

`id` string required

### 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` "asset\_set\_item" required

`id` string required

`name` string required

`serialNumber` null | string required

`costHaler` integer required

`isMain` boolean required

`addedOn` null | string required date

`disposedOn` null | string required date

`disposalReason` null | string required

`note` null | 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/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Add a part to a set of movable assets. The depreciation group follows the main item, and the card keeps the price

POST `/v1/assets/{id}/set-items`

Add a part to a set of movable assets. The depreciation group follows the main item, and the card keeps the price. A part added after the set was placed in service needs a date. Its price changes the card only through a technical improvement or a price change, as § 26 and § 29 ZDP treat it; this list is the evidence.

MCP tool: `create-asset-set-item`

### Path parameters

`id` string required

### Request body

`name` string required max 200 chars

`serialNumber` string | null

`costHaler` integer min 0 max 9007199254740991

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

`isMain` boolean

`addedOn` string | null

Date as YYYY-MM-DD.

`note` string | null

### Response · 201

`id` string required

`name` string required

`serialNumber` null | string required

`costHaler` integer required

`isMain` boolean required

`addedOn` null | string required date

`disposedOn` null | string required date

`disposalReason` null | string required

`note` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o."
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Change a part of a set, or record that it left: disposedOn and disposalReason. The card is not disposed by this

PATCH `/v1/assets/{id}/set-items/{itemId}`

Change a part of a set, or record that it left: disposedOn and disposalReason. The card is not disposed by this. POHODA records the same as an operation Vyřazení předmětu. The tax and the books follow when the part is written off with a partial disposal of the card.

MCP tool: `update-asset-set-item`

### Path parameters

`id` string required

`itemId` string required

ID of the item. Find it with list-items.

### Request body

`name` string max 200 chars

`serialNumber` string | null

`costHaler` integer min 0 max 9007199254740991

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

`isMain` boolean

`addedOn` string | null

Date as YYYY-MM-DD.

`note` string | null

`disposedOn` string | null

Date as YYYY-MM-DD.

`disposalReason` string | null

### Response · 200

`id` string required

`name` string required

`serialNumber` null | string required

`costHaler` integer required

`isMain` boolean required

`addedOn` null | string required date

`disposedOn` null | string required date

`disposalReason` null | string required

`note` null | string required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items/itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "serialNumber": "string",
  "costHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items/itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o.",
    "serialNumber": "string",
    "costHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items/itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "serialNumber": "string",
        "costHaler": 1210000
    },
)
data = response.json()
```

## Remove a part entered by mistake. One that really left stays, with disposedOn

DELETE `/v1/assets/{id}/set-items/{itemId}`

Remove a part entered by mistake. One that really left stays, with disposedOn

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

MCP tool: `delete-asset-set-item`

### Path parameters

`id` string required

`itemId` string required

ID of the item. Find it with list-items.

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/set-items/itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Buy a larger co-ownership share: it merges into the entry price at the same rate (§ 30c ZDP), and an M1 vehicle recomputes its limit (§ 30e odst. 7)

POST `/v1/assets/{id}/share-increases`

Buy a larger co-ownership share: it merges into the entry price at the same rate (§ 30c ZDP), and an M1 vehicle recomputes its limit (§ 30e odst. 7)

MCP tool: `increase-asset-share`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`toNumerator` integer required min 1 max 1000000

`toDenominator` integer required min 1 max 1000000

`addedPriceHaler` integer required min 1 max 9007199254740991

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

`continuing` boolean

`addedResidualHaler` integer min 0 max 9007199254740991

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

`creditAccount` string

`note` string max 2000 chars

### Response · 201

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/share-increases \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "toNumerator": 1,
  "toDenominator": 1,
  "addedPriceHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/share-increases', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "date": "2026-10-30",
    "toNumerator": 1,
    "toDenominator": 1,
    "addedPriceHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/share-increases",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "toNumerator": 1,
        "toDenominator": 1,
        "addedPriceHaler": 1210000
    },
)
data = response.json()
```

## Mark a year in which the owner claimed lump-sum expenses: depreciation counts as evidence only and is not deductible (§ 26 odst. 8 ZDP)

POST `/v1/assets/{id}/tax-evidence-only`

Mark a year in which the owner claimed lump-sum expenses: depreciation counts as evidence only and is not deductible (§ 26 odst. 8 ZDP)

MCP tool: `set-asset-evidence-only-year`

### Path parameters

`id` string required

### Request body

`year` integer required min 1990 max 2100

`enabled` boolean required

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/tax-evidence-only \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "year": 2026,
  "enabled": false
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/tax-evidence-only",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "year": 2026,
        "enabled": False
    },
)
data = response.json()
```

## Interrupt or resume tax depreciation for a year (přerušení, § 26 odst. 8 ZDP); depreciation later continues as if not interrupted

POST `/v1/assets/{id}/tax-interruptions`

Interrupt or resume tax depreciation for a year (přerušení, § 26 odst. 8 ZDP); depreciation later continues as if not interrupted

MCP tool: `set-asset-tax-interruption`

### Path parameters

`id` string required

### Request body

`year` integer required min 1990 max 2100

`enabled` boolean required

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

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

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/tax-interruptions",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "year": 2026,
        "enabled": False
    },
)
data = response.json()
```

## Use a lower straight-line rate than the maximum for one year (§ 31 odst. 7 ZDP); null restores the maximum

POST `/v1/assets/{id}/tax-rate`

Use a lower straight-line rate than the maximum for one year (§ 31 odst. 7 ZDP); null restores the maximum

MCP tool: `set-asset-tax-rate`

### Path parameters

`id` string required

### Request body

`year` integer required min 1990 max 2100

`ratePct` number | null required

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

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

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/tax-rate",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "year": 2026,
        "ratePct": 0
    },
)
data = response.json()
```

## Mark a year with a reduced transport flat rate: only 80 % of the vehicle depreciation is deductible (§ 28 odst. 6 ZDP)

POST `/v1/assets/{id}/tax-reduced-flat-rate`

Mark a year with a reduced transport flat rate: only 80 % of the vehicle depreciation is deductible (§ 28 odst. 6 ZDP)

MCP tool: `set-asset-reduced-flat-rate-year`

### Path parameters

`id` string required

### Request body

`year` integer required min 1990 max 2100

`enabled` boolean required

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/tax-reduced-flat-rate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "year": 2026,
  "enabled": false
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/tax-reduced-flat-rate",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "year": 2026,
        "enabled": False
    },
)
data = response.json()
```

## Tax depreciation schedule of one asset by year under § 30 to § 32 ZDP

GET `/v1/assets/{id}/tax-schedule`

Tax depreciation schedule of one asset by year under § 30 to § 32 ZDP

MCP tool: `get-asset-tax-schedule`

### Path parameters

`id` string required

### Response · 200

`data` object\[\] required

`year` integer required

`sequence` integer required

`status` string required

`priceHaler` integer required

`ratePct` null | number required

`depreciationHaler` integer required

`deductibleHaler` integer required

`accumulatedHaler` integer required

`residualHaler` integer required

`partial` object\[\]

`date` string required date

`partPriceHaler` integer required

`partAccumulatedHaler` integer required

`partDepreciationHaler` integer required

`partResidualHaler` integer required

`total` integer required

`hasMore` boolean required

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

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

## Take an asset back out of use with a storno of MD 02x / D 04x, while nothing has been depreciated

POST `/v1/assets/{id}/unplace`

Take an asset back out of use with a storno of MD 02x / D 04x, while nothing has been depreciated

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

MCP tool: `unplace-asset`

### Path parameters

`id` string required

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/unplace \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Record a month of output for an asset with performance-based depreciation

POST `/v1/assets/{id}/usage`

Record a month of output for an asset with performance-based depreciation

MCP tool: `record-asset-usage`

### Path parameters

`id` string required

### Request body

`month` string required

`unitsMilli` integer required min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

### Response · 200

`id` string required

`assetId` string required

`month` string required

`unitsMilli` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/usage \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "month": "2026-10-30",
  "unitsMilli": 1000
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/usage",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "month": "2026-10-30",
        "unitsMilli": 1000
    },
)
data = response.json()
```

## Import asset cards from XLSX with opening accumulated depreciation, for a company migrating mid-life. dryRun only validates

POST `/v1/assets/import`

Import asset cards from XLSX with opening accumulated depreciation, for a company migrating mid-life. dryRun only validates. Cards are taken over as opening balances and post nothing. Tax accumulated depreciation needs the year and the number of years, because § 32 odst. 2 ZDP counts them. Rows with an error are skipped and listed.

MCP tool: `import-assets`

### Request body

`fileBase64` string required max 40000000 chars

File content encoded as base64.

`dryRun` boolean

### Response · 200

`dryRun` boolean required

`valid` integer required

`imported` integer required

`errors` object\[\] required

`line` integer required

`message` null | string required

`name` null | string required

`preview` object\[\] required

`name` null | string required

`inventoryNumber` null | string required

`placedOn` null | string required date

`costHaler` integer required

`openingAccumulatedHaler` integer required

`openingTaxAccumulatedHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/assets/import \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "fileBase64": "string"
}'
```

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

```python
import os
import requests

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

## Download the XLSX template for importing asset cards, with an example row

GET `/v1/assets/import-template.xlsx`

Download the XLSX template for importing asset cards, with an example row

MCP tool: `download-asset-import-template`

### Response · 200

Returns a application/vnd.openxmlformats-officedocument.spreadsheetml.sheet file.

```bash
curl https://api.damedoklad.cz/v1/assets/import-template.xlsx \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

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

## Inventory labels with a Code 128 barcode of the inventory number as PDF: an A4 sheet of 3 × 8, or one 50 × 30 mm label per page

GET `/v1/assets/labels`

Inventory labels with a Code 128 barcode of the inventory number as PDF: an A4 sheet of 3 × 8, or one 50 × 30 mm label per page. Pass fixed and small asset ids separated by commas. A reader typing the number into the search box finds the card.

MCP tool: `get-asset-labels`

### Query parameters

`ids` string required max 20000 chars

`copies` integer min 1 max 500

`layout` "sheet" | "roll"

### Response · 200

Returns a application/pdf file.

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

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

## Post every unposted lease instalment due in a month

POST `/v1/lease-runs`

Post every unposted lease instalment due in a month

MCP tool: `post-lease-month`

### Request body

`month` string required

### Response · 200

`month` null | string required

`posted` integer required

`instalments` object\[\] required

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

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

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

```python
import os
import requests

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

## List lease contracts

GET `/v1/leases`

List lease contracts

MCP tool: `list-leases`

### 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` "lease" required

`id` string required

`name` string required

`contractNumber` null | string required

`contactId` null | string required

`startDate` string required date

`months` integer required

`downPaymentHaler` integer required

`instalmentHaler` integer required

`buyoutHaler` integer required

`vatRate` integer required

`isM1` boolean required

`taxGroup` integer | null required

`grossAmounts` boolean required

`terminatedOn` null | string required date

`terminationSettlementHaler` integer required

`terminationBeforeMinimum` boolean | null required

`actualMonths` integer | null required

`status` string required

`downPaymentPosted` boolean required

`boughtOutOn` null | string required date

`assetId` null | string required

`note` string | null required

`instalments` object\[\]

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

`taxYears` object\[\]

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`asset` null | object

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` string | null required

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` string | null required

`responsiblePerson` string | null required

`physicalDimensions` string | null required

`serialNumber` string | null required

`note` string | null required

`contactId` string | null required

`centerId` string | null required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` string | null required

`m1LinkLeaseId` string | null required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` any\[\] required

`evidenceOnlyYears` any\[\] required

`reducedFlatRateYears` any\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` string | null required

`taxTimeKind` string | null required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`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/leases \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Create a lease contract and generate its instalments with 518 expense and 381 accrual release

POST `/v1/leases`

Create a lease contract and generate its instalments with 518 expense and 381 accrual release. A VAT payer enters amounts net of VAT. A non-payer has no deduction, so VAT becomes part of the expense: enter net amounts with vatRate, or gross amounts with vatRate 0. If you also record the lessor’s calendar as received invoices, do not post the instalments here as well.

MCP tool: `create-lease`

### Request body

`name` string required max 200 chars

`contractNumber` string max 500 chars

`contactId` string

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

`startDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`months` integer required min 1 max 240

`downPaymentHaler` integer min 0 max 9007199254740991

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

`instalmentHaler` integer required min 0 max 9007199254740991

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

`buyoutHaler` integer min 0 max 9007199254740991

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

`vatRate` integer min 0 max 100

`isM1` boolean

`taxGroup` integer min 1 max 6

`note` string max 2000 chars

### Response · 201

`id` string required

`name` string required

`contractNumber` null | string required

`contactId` null | string required

`startDate` string required date

`months` integer required

`downPaymentHaler` integer required

`instalmentHaler` integer required

`buyoutHaler` integer required

`vatRate` integer required

`isM1` boolean required

`taxGroup` integer | null required

`grossAmounts` boolean required

`terminatedOn` null | string required date

`terminationSettlementHaler` integer required

`terminationBeforeMinimum` boolean | null required

`actualMonths` integer | null required

`status` string required

`downPaymentPosted` boolean required

`boughtOutOn` null | string required date

`assetId` null | string required

`note` string | null required

`instalments` object\[\]

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

`taxYears` object\[\]

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`asset` null | object

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` string | null required

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` string | null required

`responsiblePerson` string | null required

`physicalDimensions` string | null required

`serialNumber` string | null required

`note` string | null required

`contactId` string | null required

`centerId` string | null required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` string | null required

`m1LinkLeaseId` string | null required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` any\[\] required

`evidenceOnlyYears` any\[\] required

`reducedFlatRateYears` any\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` string | null required

`taxTimeKind` string | null required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/leases \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "name": "Pekárna U Lípy s.r.o.",
  "startDate": "2026-10-30",
  "months": 1,
  "instalmentHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/leases', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "name": "Pekárna U Lípy s.r.o.",
    "startDate": "2026-10-30",
    "months": 1,
    "instalmentHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/leases",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "name": "Pekárna U Lípy s.r.o.",
        "startDate": "2026-10-30",
        "months": 1,
        "instalmentHaler": 1210000
    },
)
data = response.json()
```

## Get a lease contract with its instalment schedule and yearly tax allocation

GET `/v1/leases/{id}`

Get a lease contract with its instalment schedule and yearly tax allocation

MCP tool: `get-lease`

### Path parameters

`id` string required

### Response · 200

`id` string required

`name` string required

`contractNumber` null | string required

`contactId` null | string required

`startDate` string required date

`months` integer required

`downPaymentHaler` integer required

`instalmentHaler` integer required

`buyoutHaler` integer required

`vatRate` integer required

`isM1` boolean required

`taxGroup` integer | null required

`grossAmounts` boolean required

`terminatedOn` null | string required date

`terminationSettlementHaler` integer required

`terminationBeforeMinimum` boolean | null required

`actualMonths` integer | null required

`status` string required

`downPaymentPosted` boolean required

`boughtOutOn` null | string required date

`assetId` null | string required

`note` string | null required

`instalments` object\[\]

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

`taxYears` object\[\]

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`asset` null | object

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` string | null required

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` string | null required

`responsiblePerson` string | null required

`physicalDimensions` string | null required

`serialNumber` string | null required

`note` string | null required

`contactId` string | null required

`centerId` string | null required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` string | null required

`m1LinkLeaseId` string | null required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` any\[\] required

`evidenceOnlyYears` any\[\] required

`reducedFlatRateYears` any\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` string | null required

`taxTimeKind` string | null required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

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

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

## Delete a lease contract that has no posted payments

DELETE `/v1/leases/{id}`

Delete a lease contract that has no posted payments

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

MCP tool: `delete-lease`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

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

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

## Buy out the leased asset: MD 042 + 343 / D 321, creates the asset and places it in service

POST `/v1/leases/{id}/buyout`

Buy out the leased asset: MD 042 + 343 / D 321, creates the asset and places it in service. A buyout up to 80 000 Kč is expensed instead (§ 27 písm. a) and § 24 odst. 2 písm. zl) ZDP), and no asset is created.

MCP tool: `buy-out-lease`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`assetName` string max 200 chars

`taxGroup` integer min 1 max 6

`accountingMethod` "straight\_line" | "performance" | "equal\_to\_tax" | "none"

`lifeMonths` integer min 1 max 1200

`method` "transfer" | "cash" | "card"

### Response · 200

`id` string required

`name` string required

`contractNumber` null | string required

`contactId` null | string required

`startDate` string required date

`months` integer required

`downPaymentHaler` integer required

`instalmentHaler` integer required

`buyoutHaler` integer required

`vatRate` integer required

`isM1` boolean required

`taxGroup` integer | null required

`grossAmounts` boolean required

`terminatedOn` null | string required date

`terminationSettlementHaler` integer required

`terminationBeforeMinimum` boolean | null required

`actualMonths` integer | null required

`status` string required

`downPaymentPosted` boolean required

`boughtOutOn` null | string required date

`assetId` null | string required

`note` string | null required

`instalments` object\[\]

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

`taxYears` object\[\]

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`asset` null | object

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` string | null required

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` string | null required

`responsiblePerson` string | null required

`physicalDimensions` string | null required

`serialNumber` string | null required

`note` string | null required

`contactId` string | null required

`centerId` string | null required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` string | null required

`m1LinkLeaseId` string | null required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` any\[\] required

`evidenceOnlyYears` any\[\] required

`reducedFlatRateYears` any\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` string | null required

`taxTimeKind` string | null required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/buyout \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/buyout",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Post the increased first payment: MD 381 + 343 / D 321 in double entry, a non-deductible cash row otherwise

POST `/v1/leases/{id}/down-payment`

Post the increased first payment: MD 381 + 343 / D 321 in double entry, a non-deductible cash row otherwise

MCP tool: `post-lease-down-payment`

### Path parameters

`id` string required

### Request body

`date` string YYYY-MM-DD

Date as YYYY-MM-DD.

`method` "transfer" | "cash" | "card"

### Response · 200

`id` string required

`name` string required

`contractNumber` null | string required

`contactId` null | string required

`startDate` string required date

`months` integer required

`downPaymentHaler` integer required

`instalmentHaler` integer required

`buyoutHaler` integer required

`vatRate` integer required

`isM1` boolean required

`taxGroup` integer | null required

`grossAmounts` boolean required

`terminatedOn` null | string required date

`terminationSettlementHaler` integer required

`terminationBeforeMinimum` boolean | null required

`actualMonths` integer | null required

`status` string required

`downPaymentPosted` boolean required

`boughtOutOn` null | string required date

`assetId` null | string required

`note` string | null required

`instalments` object\[\]

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

`taxYears` object\[\]

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`asset` null | object

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` string | null required

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` string | null required

`responsiblePerson` string | null required

`physicalDimensions` string | null required

`serialNumber` string | null required

`note` string | null required

`contactId` string | null required

`centerId` string | null required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` string | null required

`m1LinkLeaseId` string | null required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` any\[\] required

`evidenceOnlyYears` any\[\] required

`reducedFlatRateYears` any\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` string | null required

`taxTimeKind` string | null required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/down-payment \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "method": "transfer"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/down-payment",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "method": "transfer"
    },
)
data = response.json()
```

## Post one instalment: MD 518 + 343 / D 321 and the MD 518 / D 381 release in double entry, a non-deductible cash row otherwise

POST `/v1/leases/{id}/instalments/{sequence}/post`

Post one instalment: MD 518 + 343 / D 321 and the MD 518 / D 381 release in double entry, a non-deductible cash row otherwise

MCP tool: `post-lease-instalment`

### Path parameters

`id` string required

`sequence` string required

### Request body

`date` string YYYY-MM-DD

Date as YYYY-MM-DD.

`method` "transfer" | "cash" | "card"

### Response · 200

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

```bash
curl -X POST https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/instalments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/post \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "method": "transfer"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/instalments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/post",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "method": "transfer"
    },
)
data = response.json()
```

## Add an improvement or a user-paid cost of a leased M1 vehicle as a jiný majetek on its own card, sharing the limit with the lease (§ 30f odst. 5 až 8 ZDP)

POST `/v1/leases/{id}/other-assets`

Add an improvement or a user-paid cost of a leased M1 vehicle as a jiný majetek on its own card, sharing the limit with the lease (§ 30f odst. 5 až 8 ZDP). The first one sets the ratio of § 30f odst. 6, a further one odst. 7, buying the car out odst. 8, and from then the lease instalments use the same ratio (odst. 1 věta druhá).

MCP tool: `add-lease-other-asset`

### Path parameters

`id` string required

### Request body

`name` string required max 500 chars

`completedOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`amountHaler` integer required min 1 max 9007199254740991

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

`taxGroup` integer min 1 max 6

`taxMethod` "straight" | "accelerated"

`creditAccount` string

`note` string max 2000 chars

### Response · 201

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` null | string required date

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` null | string required

`responsiblePerson` null | string required

`physicalDimensions` null | string required

`serialNumber` string | null required

`note` string | null required

`contactId` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` null | string required

`m1LinkLeaseId` null | string required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` integer\[\] required

`evidenceOnlyYears` integer\[\] required

`reducedFlatRateYears` integer\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` null | string required

`taxTimeKind` null | string required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

`totalCostHaler` integer

`improvementsHaler` integer

`accumulatedHaler` integer

`bookValueHaler` integer

`improvements` any\[\]

`usage` any\[\]

`partialDisposals` object\[\]

`object` "asset\_partial\_disposal" required

`id` string required

`assetId` string required

`kind` string required

`disposedOn` string required date

`partCostHaler` integer required

`partTaxPriceHaler` integer required

`accountingAccumulatedHaler` integer required

`accountingResidualHaler` integer required

`taxDepreciationHaler` integer required

`taxResidualHaler` integer required

`taxDeductibleHaler` integer required

`saleHaler` integer required

`saleVatHaler` integer required

`compensationHaler` integer required

`toShareNumerator` integer | null required

`toShareDenominator` integer | null required

`journalEntryId` null | string required

`status` string required

`note` string | null required

`shareChanges` object\[\]

`object` "asset\_share\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`fromNumerator` integer required

`fromDenominator` integer required

`toNumerator` integer required

`toDenominator` integer required

`addedPriceHaler` integer required

`continuing` boolean required

`addedResidualHaler` integer | null required

`journalEntryId` null | string required

`status` string

`note` string | null required

`priceChanges` object\[\]

`object` "asset\_price\_change" required

`id` string required

`assetId` string required

`changedOn` string required date

`amountHaler` integer required

`reason` string required

`accountingAmountHaler` integer required

`journalEntryId` null | string required

`status` string required

`note` null | string required

`createdAt` string required date-time

`assignments` object\[\]

`object` "asset\_assignment" required

`id` string required

`assetId` string required

`effectiveOn` string required date

`location` null | string required

`responsiblePerson` null | string required

`centerId` null | string required

`activityId` string | null required

`projectId` string | null required

`source` string required

`note` null | string required

`acquisitionLines` object\[\]

`object` "asset\_acquisition\_line" required

`id` string required

`assetId` string required

`invoiceId` null | string required

`lineId` string required

`amountHaler` integer required

```bash
curl -X POST https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/other-assets \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "completedOn": "2026-10-30",
  "amountHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/other-assets', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o.",
    "completedOn": "2026-10-30",
    "amountHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/other-assets",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "completedOn": "2026-10-30",
        "amountHaler": 1210000
    },
)
data = response.json()
```

## End a lease early: cancels unposted instalments, releases the rest of the deferred down payment, and posts the settlement

POST `/v1/leases/{id}/terminate`

End a lease early: cancels unposted instalments, releases the rest of the deferred down payment, and posts the settlement. Before the minimum term of § 21d odst. 2 ZDP (set taxGroup on the lease) deductible cost is limited by § 24 odst. 6. After it, the lease counts as rent from the start (§ 21d odst. 4). For closed years compare taxYears with what you filed: a change may need a dodatečné přiznání.

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

MCP tool: `terminate-lease`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`settlementHaler` integer min 0 max 9007199254740991

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

`settlementVatHaler` integer min 0 max 9007199254740991

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

`compensationHaler` integer min 0 max 9007199254740991

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

`method` "transfer" | "cash" | "card"

`note` string max 2000 chars

### Response · 200

`id` string required

`name` string required

`contractNumber` null | string required

`contactId` null | string required

`startDate` string required date

`months` integer required

`downPaymentHaler` integer required

`instalmentHaler` integer required

`buyoutHaler` integer required

`vatRate` integer required

`isM1` boolean required

`taxGroup` integer | null required

`grossAmounts` boolean required

`terminatedOn` null | string required date

`terminationSettlementHaler` integer required

`terminationBeforeMinimum` boolean | null required

`actualMonths` integer | null required

`status` string required

`downPaymentPosted` boolean required

`boughtOutOn` null | string required date

`assetId` null | string required

`note` string | null required

`instalments` object\[\]

`object` "lease\_instalment" required

`id` string required

`leaseId` string required

`sequence` integer required

`dueOn` string required date

`month` string required

`instalmentHaler` integer required

`vatHaler` integer required

`accrualReleaseHaler` integer required

`expenseHaler` integer required

`kind` string required

`settlementHaler` integer required

`postedOn` null | string required date

`taxYears` object\[\]

`year` integer required

`expenseHaler` integer required

`deductibleHaler` integer required

`asset` null | object

`object` "asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`status` string required

`category` null | string required

`acquiredOn` null | string required date

`placedOn` null | string required date

`disposedOn` string | null required

`costHaler` integer required

`assetAccount` string required

`accumulatedAccount` null | string required

`expenseAccount` string required

`inProgressAccount` string required

`location` string | null required

`responsiblePerson` string | null required

`physicalDimensions` string | null required

`serialNumber` string | null required

`note` string | null required

`contactId` string | null required

`centerId` string | null required

`activityId` string | null required

`projectId` string | null required

`taxMethod` string required

`taxGroup` integer | null required

`taxVariant` string required

`taxEntryPriceHaler` integer | null required

`taxStartYear` integer | null required

`m1LinkAssetId` string | null required

`m1LinkLeaseId` string | null required

`firstDepreciator` boolean required

`isM1` boolean required

`zeroEmission` boolean required

`increaseExcluded` boolean required

`businessUsePct` integer required

`interruptedYears` any\[\] required

`evidenceOnlyYears` any\[\] required

`reducedFlatRateYears` any\[\] required

`rateOverrides` object required

`accountingMethod` string required

`lifeMonths` integer | null required

`residualValueHaler` integer required

`totalUnitsMilli` integer | null required

`isOpening` boolean required

`openingAccumulatedHaler` integer required

`openingThroughMonth` string | null required

`taxTimeKind` string | null required

`taxTimeMonths` integer | null required

`taxTimePrecision` string required

`taxTimeUnitsMilli` integer | null required

`shareNumerator` integer required

`shareDenominator` integer required

`openingTaxAccumulatedHaler` integer required

`openingTaxThroughYear` integer | null required

`openingTaxYears` integer | null required

`openingTaxDeductibleHaler` integer | null required

`openingTaxIncreased` boolean required

`createdAt` string required date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/terminate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/leases/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/terminate",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30"
    },
)
data = response.json()
```

## List small assets (drobný majetek), kept in a register without depreciation

GET `/v1/small-assets`

List small assets (drobný majetek), kept in a register without depreciation

MCP tool: `list-small-assets`

### 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.

`status` "active" | "disposed"

### Response · 200

`data` object\[\] required

`object` "small\_asset" required

`id` string required

`inventoryNumber` null | string required

`name` string required

`acquiredOn` string required date

`costHaler` integer required

`quantityMilli` integer required

`location` null | string required

`responsiblePerson` string | null required

`note` string | null required

`status` string required

`disposedOn` null | string required date

`disposalReason` null | string required

`writtenOffOn` null | string required date

`creditAccount` null | string required

`journalEntryId` null | 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/small-assets \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Add a small asset to the register, optionally writing it off at once (MD 501 / D 112 in double entry)

POST `/v1/small-assets`

Add a small asset to the register, optionally writing it off at once (MD 501 / D 112 in double entry)

MCP tool: `create-small-asset`

### Request body

`name` string required max 200 chars

`inventoryNumber` string max 500 chars

`acquiredOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`costHaler` integer required min 0 max 9007199254740991

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

`quantityMilli` integer min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`location` string max 500 chars

`responsiblePerson` string max 500 chars

`note` string max 2000 chars

`writeOff` boolean

`creditAccount` string

### Response · 201

`id` string required

`inventoryNumber` null | string required

`name` string required

`acquiredOn` string required date

`costHaler` integer required

`quantityMilli` integer required

`location` null | string required

`responsiblePerson` string | null required

`note` string | null required

`status` string required

`disposedOn` null | string required date

`disposalReason` null | string required

`writtenOffOn` null | string required date

`creditAccount` null | string required

`journalEntryId` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/small-assets \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "acquiredOn": "2026-10-30",
  "costHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/small-assets', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o.",
    "acquiredOn": "2026-10-30",
    "costHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/small-assets",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "acquiredOn": "2026-10-30",
        "costHaler": 1210000
    },
)
data = response.json()
```

## Update a small asset; the price locks after the write-off

PATCH `/v1/small-assets/{id}`

Update a small asset; the price locks after the write-off

MCP tool: `update-small-asset`

### Path parameters

`id` string required

### Request body

`name` string max 200 chars

`inventoryNumber` string max 500 chars

`acquiredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`costHaler` integer min 0 max 9007199254740991

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

`quantityMilli` integer min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`location` string max 500 chars

`responsiblePerson` string max 500 chars

`note` string max 2000 chars

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`acquiredOn` string required date

`costHaler` integer required

`quantityMilli` integer required

`location` null | string required

`responsiblePerson` string | null required

`note` string | null required

`status` string required

`disposedOn` null | string required date

`disposalReason` null | string required

`writtenOffOn` null | string required date

`creditAccount` null | string required

`journalEntryId` null | string required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "inventoryNumber": "string",
  "acquiredOn": "2026-10-30"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Pekárna U Lípy s.r.o.",
    "inventoryNumber": "string",
    "acquiredOn": "2026-10-30"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "inventoryNumber": "string",
        "acquiredOn": "2026-10-30"
    },
)
data = response.json()
```

## Delete a small asset that has no write-off posting

DELETE `/v1/small-assets/{id}`

Delete a small asset that has no write-off posting

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

MCP tool: `delete-small-asset`

### Path parameters

`id` string required

### Response · 200

`id` string required

`deleted` boolean required

```bash
curl -X DELETE https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Take a small asset off the register; nothing is posted because it is already expensed

POST `/v1/small-assets/{id}/dispose`

Take a small asset off the register; nothing is posted because it is already expensed

MCP tool: `dispose-small-asset`

### Path parameters

`id` string required

### Request body

`date` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`reason` string max 500 chars

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`acquiredOn` string required date

`costHaler` integer required

`quantityMilli` integer required

`location` null | string required

`responsiblePerson` string | null required

`note` string | null required

`status` string required

`disposedOn` null | string required date

`disposalReason` null | string required

`writtenOffOn` null | string required date

`creditAccount` null | string required

`journalEntryId` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/dispose",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30"
    },
)
data = response.json()
```

## Write a small asset off to consumption (MD 501 / D 112, or another credit account)

POST `/v1/small-assets/{id}/write-off`

Write a small asset off to consumption (MD 501 / D 112, or another credit account)

MCP tool: `write-off-small-asset`

### Path parameters

`id` string required

### Request body

`date` string YYYY-MM-DD

Date as YYYY-MM-DD.

`creditAccount` string

### Response · 200

`id` string required

`inventoryNumber` null | string required

`name` string required

`acquiredOn` string required date

`costHaler` integer required

`quantityMilli` integer required

`location` null | string required

`responsiblePerson` string | null required

`note` string | null required

`status` string required

`disposedOn` null | string required date

`disposalReason` null | string required

`writtenOffOn` null | string required date

`creditAccount` null | string required

`journalEntryId` null | string required

```bash
curl -X POST https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/write-off \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "date": "2026-10-30",
  "creditAccount": "518"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/write-off', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "date": "2026-10-30",
    "creditAccount": "518"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/small-assets/ast_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/write-off",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "date": "2026-10-30",
        "creditAccount": "518"
    },
)
data = response.json()
```
