# Platforma · API DameDokladu

> Operace ve skupině Platforma.

Source: https://damedoklad.cz/docs/api-reference/platform/

# Platforma

Operace ve skupině Platforma.

## List the custom roles of this company and how many people have each

GET `/v1/access-roles`

List the custom roles of this company and how many people have each

Nástroj MCP: `list-access-roles`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "access\_role" povinné

`id` string povinné

`name` string povinné

`description` string | null povinné

`agendas` object povinné

`sales` string

`payroll` string

`administration` string

`bank` string

`cash` string

`reports` string

`contacts` string

`inventory` string

`inbox` string

`purchases` string

`assets` string

`travel` string

`tax` string

`agendas` string

`ledger` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

`memberCount` integer povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`parentId` null | string

`denied` object

`formats` string\[\] povinné

`reports` string\[\] povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Create a custom role: a level per agenda (none, read, own, write, full), and optionally only chosen warehouses, cash registers, bank accounts, number series, and cost centres, without some print reports or export types, or as a sub-role of another

POST `/v1/access-roles`

Create a custom role: a level per agenda (none, read, own, write, full), and optionally only chosen warehouses, cash registers, bank accounts, number series, and cost centres, without some print reports or export types, or as a sub-role of another. own: reads everything, creates, and changes only what the person created. Delete and storno need full. A sub-role takes its parent's rights and can only take away. Members, API keys of others, webhooks, the audit log, and company-wide exports and imports stay with an owner or accountant whatever a custom role says.

Nástroj MCP: `create-access-role`

### Tělo požadavku

`name` string povinné max 120 chars

`description` string | null

`agendas` object povinné

`scopes` object

`warehouses` string\[\] | null

`registers` string\[\] | null

`accounts` string\[\] | null

`series` string\[\] | null

`centers` string\[\] | null

`parentId` string | null

ID of the parent.

`denied` object

`formats` "pdf" | "xlsx" | "csv" | "xml" | "zip"\[\]

`reports` string\[\]

### Odpověď · 201

`id` string povinné

`name` string povinné

`description` string | null povinné

`agendas` object povinné

`sales` string

`payroll` string

`administration` string

`bank` string

`cash` string

`reports` string

`contacts` string

`inventory` string

`inbox` string

`purchases` string

`assets` string

`travel` string

`tax` string

`agendas` string

`ledger` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

`memberCount` integer povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`parentId` null | string

`denied` object

`formats` string\[\] povinné

`reports` string\[\] povinné

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/access-roles', {
  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.",
    "agendas": {}
  }),
});
const data = await response.json();
```

```python
import os
import requests

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

## Get one custom role with its rights

GET `/v1/access-roles/{id}`

Get one custom role with its rights

Nástroj MCP: `get-access-role`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`name` string povinné

`description` string | null povinné

`agendas` object povinné

`sales` string

`payroll` string

`administration` string

`bank` string

`cash` string

`reports` string

`contacts` string

`inventory` string

`inbox` string

`purchases` string

`assets` string

`travel` string

`tax` string

`agendas` string

`ledger` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

`memberCount` integer povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`parentId` null | string

`denied` object

`formats` string\[\] povinné

`reports` string\[\] povinné

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

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

## Change a custom role. It holds at once for everyone who has it, including their API keys and connected apps

PATCH `/v1/access-roles/{id}`

Change a custom role. It holds at once for everyone who has it, including their API keys and connected apps

Nástroj MCP: `update-access-role`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`name` string max 120 chars

`description` string | null

`agendas` object

`scopes` object

`warehouses` string\[\] | null

`registers` string\[\] | null

`accounts` string\[\] | null

`series` string\[\] | null

`centers` string\[\] | null

`parentId` string | null

ID of the parent.

`denied` object

`formats` "pdf" | "xlsx" | "csv" | "xml" | "zip"\[\]

`reports` string\[\]

### Odpověď · 200

`id` string povinné

`name` string povinné

`description` string | null povinné

`agendas` object povinné

`sales` string

`payroll` string

`administration` string

`bank` string

`cash` string

`reports` string

`contacts` string

`inventory` string

`inbox` string

`purchases` string

`assets` string

`travel` string

`tax` string

`agendas` string

`ledger` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

`memberCount` integer povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`parentId` null | string

`denied` object

`formats` string\[\] povinné

`reports` string\[\] povinné

```bash
curl -X PATCH https://api.damedoklad.cz/v1/access-roles/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "description": "Pečivo, říjen",
  "agendas": {}
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/access-roles/obj_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.",
    "description": "Pečivo, říjen",
    "agendas": {}
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/access-roles/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o.",
        "description": "Pečivo, říjen",
        "agendas": {}
    },
)
data = response.json()
```

## Delete a custom role nobody has. A role in use is refused, so nobody is left without rights by accident

DELETE `/v1/access-roles/{id}`

Delete a custom role nobody has. A role in use is refused, so nobody is left without rights by accident

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `delete-access-role`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## What a custom role really comes to, with its parent applied: level per agenda and whether it is inherited, limits with their names, what it goes without, and who has it

GET `/v1/access-roles/{id}/effective`

What a custom role really comes to, with its parent applied: level per agenda and whether it is inherited, limits with their names, what it goes without, and who has it

Nástroj MCP: `get-access-role-effective`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`role` null | object povinné

`id` string povinné

`name` null | string povinné

`fixedRole` null | string povinné

`parent` null | object povinné

`id` string povinné

`name` null | string povinné

`agendas` object\[\] povinné

`key` string povinné

`level` string povinné

`inherited` boolean povinné

`scopes` object povinné

`warehouses` array | null povinné

`id` string povinné

`name` null | string povinné

`registers` any povinné

Null in every recorded response.

`accounts` any povinné

Null in every recorded response.

`series` any povinné

Null in every recorded response.

`centers` any povinné

Null in every recorded response.

`denied` object povinné

`formats` string\[\] povinné

`reports` object\[\] povinné

`key` string povinné

`cs` string povinné

`en` string povinné

`fixedOnly` string\[\] povinné

`members` string\[\] povinné

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

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

## List the agendas and levels a custom role can set, what each agenda needs to work, and the fixed roles written as rights to start from

GET `/v1/access-roles/catalog`

List the agendas and levels a custom role can set, what each agenda needs to work, and the fixed roles written as rights to start from

Nástroj MCP: `get-access-catalog`

### Odpověď · 200

`agendas` object\[\] povinné

`key` string povinné

`needs` string\[\] povinné

`own` boolean

`levels` string\[\] povinné

`presets` object povinné

`owner` object povinné

`contacts` string povinné

`sales` string povinné

`purchases` string povinné

`bank` string povinné

`cash` string povinné

`ledger` string povinné

`tax` string povinné

`inventory` string povinné

`assets` string povinné

`travel` string povinné

`payroll` string povinné

`agendas` string povinné

`reports` string povinné

`inbox` string povinné

`administration` string povinné

`accountant` object povinné

`contacts` string povinné

`sales` string povinné

`purchases` string povinné

`bank` string povinné

`cash` string povinné

`ledger` string povinné

`tax` string povinné

`inventory` string povinné

`assets` string povinné

`travel` string povinné

`payroll` string povinné

`agendas` string povinné

`reports` string povinné

`inbox` string povinné

`administration` string povinné

`invoicing` object povinné

`contacts` string povinné

`sales` string povinné

`purchases` string povinné

`bank` string povinné

`cash` string povinné

`ledger` string povinné

`tax` string povinné

`inventory` string povinné

`assets` string povinné

`travel` string povinné

`payroll` string povinné

`agendas` string povinné

`reports` string povinné

`inbox` string povinné

`administration` string povinné

`warehouse` object povinné

`contacts` string povinné

`sales` string povinné

`purchases` string povinné

`bank` string povinné

`cash` string povinné

`ledger` string povinné

`tax` string povinné

`inventory` string povinné

`assets` string povinné

`travel` string povinné

`payroll` string povinné

`agendas` string povinné

`reports` string povinné

`inbox` string povinné

`administration` string povinné

`readonly` object povinné

`contacts` string povinné

`sales` string povinné

`purchases` string povinné

`bank` string povinné

`cash` string povinné

`ledger` string povinné

`tax` string povinné

`inventory` string povinné

`assets` string povinné

`travel` string povinné

`payroll` string povinné

`agendas` string povinné

`reports` string povinné

`inbox` string povinné

`administration` string povinné

`exportFormats` string\[\]

`printReports` object\[\]

`key` string povinné

`agenda` string povinné

`cs` string povinné

`en` string povinné

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

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

## Seznam: aktivita

GET `/v1/activity`

List what happened in this company lately: documents issued, payments recorded, statements imported. Without IP addresses or technical calls; the full log is in the audit log

Nástroj MCP: `list-activity`

### Parametry dotazu

`limit` integer min 1 max 100

### Odpověď · 200

`data` object\[\] povinné

`object` "activity" povinné

`id` string povinné

`action` string povinné

`objectType` null | string povinné

`objectId` null | string povinné

`summary` null | string povinné

`actorLabel` null | string povinné

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## List API keys of this company. Secrets are never shown again after creation.

GET `/v1/api-keys`

List API keys of this company. Secrets are never shown again after creation.

Nástroj MCP: `list-api-keys`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "api\_key" povinné

`id` string povinné

`name` null | string povinné

`hint` string povinné

`scope` string povinné

`sendScope` boolean povinné

`lastUsedAt` null | string povinné date-time

`revokedAt` string | null povinné

`createdAt` string povinné date-time

`secret` string

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Create an API key. scope "read" allows only reading, "full" also writing. sendScope lets it confirm payment orders and filings where an owner turned that on: only an owner in the dashboard can give it. The secret is returned once.

POST `/v1/api-keys`

Create an API key. scope "read" allows only reading, "full" also writing. sendScope lets it confirm payment orders and filings where an owner turned that on: only an owner in the dashboard can give it. The secret is returned once.

Nástroj MCP: `create-api-key`

### Tělo požadavku

`name` string povinné max 120 chars

`scope` "read" | "full" výchozí `"full"`

`sendScope` boolean výchozí `false`

### Odpověď · 201

`id` string povinné

`name` null | string povinné

`hint` string povinné

`scope` string povinné

`sendScope` boolean povinné

`lastUsedAt` null | string povinné date-time

`revokedAt` string | null povinné

`createdAt` string povinné date-time

`secret` string

```bash
curl -X POST https://api.damedoklad.cz/v1/api-keys \
  -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/api-keys', {
  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/api-keys",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "name": "Pekárna U Lípy s.r.o."
    },
)
data = response.json()
```

## Revoke an API key. Anything using it stops working immediately.

DELETE `/v1/api-keys/{id}`

Revoke an API key. Anything using it stops working immediately.

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `revoke-api-key`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## List the audit log: who did what, when, from which IP, on which object. Read only: entries can never be changed or deleted.

GET `/v1/audit-events`

List the audit log: who did what, when, from which IP, on which object. Read only: entries can never be changed or deleted.

Nástroj MCP: `list-audit-events`

### Parametry dotazu

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

`action` string max 100 chars

`oid` string max 64 chars

`actorId` string max 64 chars

ID of the actor.

### Odpověď · 200

`data` object\[\] povinné

`object` "audit\_event" povinné

`id` string povinné

`action` string povinné

`objectType` null | string povinné

`objectId` null | string povinné

`summary` null | string povinné

`diff` any povinné

`actorType` string

`actorId` null | string

`actorLabel` null | string

`ip` null | string

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## The state of the tamper-evident chain: its latest hash, what waits to be sealed, and the last verification.

GET `/v1/audit/chain`

The state of the tamper-evident chain: its latest hash, what waits to be sealed, and the last verification.

Nástroj MCP: `get-audit-chain`

### Odpověď · 200

`last` null | object povinné

`ok` boolean povinné

`reason` null | string povinné

`entries` integer povinné

`waiting` integer povinné

`complete` boolean povinné

`headHash` null | string povinné

`brokenSeq` integer | null povinné

`sealsChecked` integer povinné

`verifiedAt` string povinné date-time

`headHash` null | string povinné

`headSeq` integer povinné

`sealedAt` null | string povinné date-time

`waiting` integer povinné

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

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

## The company's audit as a timeline: who did what, when and from where. One entry per request or job, including everything a trigger recorded. Ordinary reads are not recorded.

GET `/v1/audit/entries`

The company's audit as a timeline: who did what, when and from where. One entry per request or job, including everything a trigger recorded. Ordinary reads are not recorded.

Nástroj MCP: `list-audit-entries`

### Parametry dotazu

`actorId` string max 80 chars

ID of the actor.

`agenda` string max 40 chars

`objectType` string max 80 chars

`objectId` string max 200 chars

ID of the object.

`action` string max 40 chars

`surface` "dashboard" | "public\_api" | "mcp" | "job" | "import" | "public\_link" | "webhook" | "migration" | "unknown"

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`search` string max 100 chars

`locale` "cs" | "en"

`limit` integer min 1 max 200

`offset` integer min 0 max 9007199254740991

### Odpověď · 200

`data` object\[\] povinné

`object` "audit\_entry" povinné

`id` string povinné

`createdAt` string povinné date-time

`actor` object povinné

`type` string povinné

`id` null | string povinné

`name` null | string povinné

`email` null | string povinné

`job` null | string povinné

`display` string povinné

`behalf` null | object povinné

`id` string povinné

`name` null | string povinné

`email` null | string povinné

`support` string | null povinné

`where` object povinné

`surface` string povinné

`surfaceLabel` string povinné

`operationId` null | string povinné

`method` null | string povinné

`route` null | string povinné

`ip` null | string povinné

`userAgent` null | string povinné

`requestId` null | string povinné

`action` null | string povinné

`what` string povinné

`subject` null | object povinné

`type` null | string povinné

`typeLabel` null | string povinné

`id` string povinné

`label` null | string povinné

`agenda` null | string povinné

`changeCount` integer povinné

`eventCount` integer povinné

`agendas` object\[\]

`id` string povinné

`label` null | string povinné

`legacy` boolean povinné

`directCount` integer

`collapsed` object\[\]

`table` string povinné

`op` string povinné

`typeLabel` string povinné

`action` string povinné

`actionLabel` string povinné

`count` integer povinné

`changes` object\[\]

`object` "audit\_change" povinné

`id` integer povinné

`table` string povinné

`typeLabel` string povinné

`agenda` string povinné

`agendaLabel` string povinné

`objectId` null | string povinné

`parentId` null | string povinné

`label` null | string povinné

`action` string povinné

`actionLabel` string povinné

`fields` object\[\] povinné

`field` null | string povinné

`label` null | string povinné

`format` null | string povinné

`before` array | integer | null | string povinné

`after` array | boolean | integer | null | object | string povinné

`hidden` boolean | null povinné

`beforeLabel` null | string

`afterLabel` null | string

`beforeText` null | string

`afterText` null | string

`currency` null | string

`events` object\[\]

`object` "audit\_event" povinné

`id` string povinné

`action` string povinné

`objectType` null | string povinné

`objectId` null | string povinné

`summary` null | string povinné

`diff` any povinné

`actorType` string

`actorId` null | string

`actorLabel` null | string

`ip` null | string

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## The filtered audit as CSV, up to 20 000 entries. The export itself is recorded.

GET `/v1/audit/entries.csv`

The filtered audit as CSV, up to 20 000 entries. The export itself is recorded.

Nástroj MCP: `export-audit-csv`

### Parametry dotazu

`actorId` string max 80 chars

ID of the actor.

`agenda` string max 40 chars

`objectType` string max 80 chars

`objectId` string max 200 chars

ID of the object.

`action` string max 40 chars

`surface` "dashboard" | "public\_api" | "mcp" | "job" | "import" | "public\_link" | "webhook" | "migration" | "unknown"

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`search` string max 100 chars

`locale` "cs" | "en"

`limit` integer min 1 max 200

`offset` integer min 0 max 9007199254740991

### Odpověď · 200

Vrací soubor text/csv.

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

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

## The filtered audit as XLSX, up to 20 000 entries. The export itself is recorded.

GET `/v1/audit/entries.xlsx`

The filtered audit as XLSX, up to 20 000 entries. The export itself is recorded.

Nástroj MCP: `export-audit-xlsx`

### Parametry dotazu

`actorId` string max 80 chars

ID of the actor.

`agenda` string max 40 chars

`objectType` string max 80 chars

`objectId` string max 200 chars

ID of the object.

`action` string max 40 chars

`surface` "dashboard" | "public\_api" | "mcp" | "job" | "import" | "public\_link" | "webhook" | "migration" | "unknown"

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`search` string max 100 chars

`locale` "cs" | "en"

`limit` integer min 1 max 200

`offset` integer min 0 max 9007199254740991

### Odpověď · 200

Vrací soubor application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.

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

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

## One audit entry with every row it changed, field by field. A secret field says it changed and never its value.

GET `/v1/audit/entries/{id}`

One audit entry with every row it changed, field by field. A secret field says it changed and never its value.

Nástroj MCP: `get-audit-entry`

### Parametry v cestě

`id` string povinné

### Parametry dotazu

`locale` "cs" | "en"

`table` string max 80 chars

`op` "I" | "U" | "D"

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

### Odpověď · 200

`id` string povinné

`createdAt` string povinné date-time

`actor` object povinné

`type` string povinné

`id` null | string povinné

`name` null | string povinné

`email` null | string povinné

`job` null | string povinné

`display` string povinné

`behalf` null | object povinné

`id` string povinné

`name` null | string povinné

`email` null | string povinné

`support` string | null povinné

`where` object povinné

`surface` string povinné

`surfaceLabel` string povinné

`operationId` null | string povinné

`method` null | string povinné

`route` null | string povinné

`ip` null | string povinné

`userAgent` null | string povinné

`requestId` null | string povinné

`action` null | string povinné

`what` string povinné

`subject` null | object povinné

`type` null | string povinné

`typeLabel` null | string povinné

`id` string povinné

`label` null | string povinné

`agenda` null | string povinné

`changeCount` integer povinné

`eventCount` integer povinné

`agendas` object\[\]

`id` string povinné

`label` null | string povinné

`legacy` boolean povinné

`directCount` integer

`collapsed` object\[\]

`table` string povinné

`op` string povinné

`typeLabel` string povinné

`action` string povinné

`actionLabel` string povinné

`count` integer povinné

`changes` object\[\]

`object` "audit\_change" povinné

`id` integer povinné

`table` string povinné

`typeLabel` string povinné

`agenda` string povinné

`agendaLabel` string povinné

`objectId` null | string povinné

`parentId` null | string povinné

`label` null | string povinné

`action` string povinné

`actionLabel` string povinné

`fields` object\[\] povinné

`field` null | string povinné

`label` null | string povinné

`format` null | string povinné

`before` array | integer | null | string povinné

`after` array | boolean | integer | null | object | string povinné

`items` integer

`offers` integer

`orders` integer

`prices` integer

`journal` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer | string

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` string

`saleVouchers` integer | string

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`hidden` boolean | null povinné

`beforeLabel` null | string

`afterLabel` null | string

`beforeText` null | string

`afterText` null | string

`currency` null | string

`events` object\[\]

`object` "audit\_event" povinné

`id` string povinné

`action` string povinné

`objectType` null | string povinné

`objectId` null | string povinné

`summary` null | string povinné

`diff` any povinné

`actorType` string

`actorId` null | string

`actorLabel` null | string

`ip` null | string

`createdAt` string povinné date-time

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

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

## What the audit can be filtered by: people and keys that appear in it, agendas, actions and surfaces.

GET `/v1/audit/facets`

What the audit can be filtered by: people and keys that appear in it, agendas, actions and surfaces.

Nástroj MCP: `get-audit-facets`

### Parametry dotazu

`locale` "cs" | "en"

### Odpověď · 200

`actors` object\[\] povinné

`id` string povinné

`type` string povinné

`name` null | string povinné

`email` null | string povinné

`label` null | string povinné

`agendas` object\[\] povinné

`id` string povinné

`label` null | string povinné

`actions` object\[\] povinné

`id` string povinné

`label` null | string povinné

`surfaces` object\[\] povinné

`id` string povinné

`label` null | string povinné

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

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

## The whole trail of one record: a document with its lines and payments, or a contact. Whoever may read the record may read this.

GET `/v1/audit/objects/{id}/history`

The whole trail of one record: a document with its lines and payments, or a contact. Whoever may read the record may read this.

Nástroj MCP: `get-audit-history`

### Parametry v cestě

`id` string povinné

### Parametry dotazu

`locale` "cs" | "en"

`table` string max 80 chars

`op` "I" | "U" | "D"

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "audit\_entry" povinné

`id` string povinné

`createdAt` string povinné date-time

`actor` object povinné

`type` string povinné

`id` null | string povinné

`name` null | string povinné

`email` null | string povinné

`job` null | string povinné

`display` string povinné

`behalf` null | object povinné

`id` string povinné

`name` null | string povinné

`email` null | string povinné

`support` string | null povinné

`where` object povinné

`surface` string povinné

`surfaceLabel` string povinné

`operationId` null | string povinné

`method` null | string povinné

`route` null | string povinné

`ip` null | string povinné

`userAgent` null | string povinné

`requestId` null | string povinné

`action` null | string povinné

`what` string povinné

`subject` null | object povinné

`type` null | string povinné

`typeLabel` null | string povinné

`id` string povinné

`label` null | string povinné

`agenda` null | string povinné

`changeCount` integer povinné

`eventCount` integer povinné

`agendas` object\[\]

`id` string povinné

`label` null | string povinné

`legacy` boolean povinné

`directCount` integer

`collapsed` object\[\]

`table` string povinné

`op` string povinné

`typeLabel` string povinné

`action` string povinné

`actionLabel` string povinné

`count` integer povinné

`changes` object\[\]

`object` "audit\_change" povinné

`id` integer povinné

`table` string povinné

`typeLabel` string povinné

`agenda` string povinné

`agendaLabel` string povinné

`objectId` null | string povinné

`parentId` null | string povinné

`label` null | string povinné

`action` string povinné

`actionLabel` string povinné

`fields` object\[\] povinné

`field` null | string povinné

`label` null | string povinné

`format` null | string povinné

`before` array | integer | null | string povinné

`after` array | boolean | integer | null | object | string povinné

`hidden` boolean | null povinné

`beforeLabel` null | string

`afterLabel` null | string

`beforeText` null | string

`afterText` null | string

`currency` null | string

`events` object\[\]

`object` "audit\_event" povinné

`id` string povinné

`action` string povinné

`objectType` null | string povinné

`objectId` null | string povinné

`summary` null | string povinné

`diff` any povinné

`actorType` string

`actorId` null | string

`actorLabel` null | string

`ip` null | string

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Seals what is waiting and recomputes the company's hash chain against the recorded data. Answers the first thing that does not hold.

POST `/v1/audit/verify`

Seals what is waiting and recomputes the company's hash chain against the recorded data. Answers the first thing that does not hold.

Nástroj MCP: `verify-audit-chain`

### Odpověď · 200

`ok` boolean povinné

`complete` boolean povinné

`sealsChecked` integer povinné

`entries` integer povinné

`waiting` integer povinné

`headHash` null | string povinné

`brokenSeq` integer | null povinné

`reason` null | string povinné

`verifiedAt` string povinné date-time

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

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

## Show the current plan, trial, usage against limits, and whether online payment is available

GET `/v1/billing`

Show the current plan, trial, usage against limits, and whether online payment is available

Nástroj MCP: `get-billing`

### Odpověď · 200

`enabled` boolean povinné

`subscription` object povinné

`object` "billing\_subscription" povinné

`id` null | string povinné

`plan` string povinné

`status` string povinné

`interval` null | string povinné

`trialEndsAt` null | string povinné date-time

`currentPeriodEnd` null | string povinné date-time

`cancelAtPeriodEnd` boolean povinné

`hasCustomer` boolean povinné

`plan` object povinné

`object` "plan" povinné

`id` string povinné

`name` null | object povinné

`cs` string povinné

`en` string povinné

`description` null | object povinné

`cs` string povinné

`en` string povinné

`monthlyHaler` integer povinné

`yearlyHaler` integer povinné

`limits` object povinné

`documentsPerMonth` integer | null povinné

`members` integer | null povinné

`features` object povinné

`api` boolean povinné

`webhooks` boolean povinné

`inboxAi` boolean povinné

`purchasable` boolean povinné

`usage` object povinné

`documentsThisMonth` integer povinné

`members` integer povinné

`plans` object\[\] povinné

`object` "plan" povinné

`id` string povinné

`name` null | object povinné

`cs` string povinné

`en` string povinné

`description` null | object povinné

`cs` string povinné

`en` string povinné

`monthlyHaler` integer povinné

`yearlyHaler` integer povinné

`limits` object povinné

`documentsPerMonth` integer | null povinné

`members` integer | null povinné

`features` object povinné

`api` boolean povinné

`webhooks` boolean povinné

`inboxAi` boolean povinné

`purchasable` boolean povinné

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

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

## Get the company profile: name, IČO, DIČ, address, VAT status, default bank account, document design

GET `/v1/company`

Get the company profile: name, IČO, DIČ, address, VAT status, default bank account, document design

Nástroj MCP: `get-company`

### Odpověď · 200

`id` string povinné

`sid` string povinné

`name` null | string povinné

`ico` null | string povinné

`dic` null | string povinné

`regime` string povinné

`vatPayer` boolean povinné

`vatPeriod` string povinné

`defaultCurrency` string povinné

`onboarded` boolean povinné

`scheduledRegimeChange` null | object povinné

`regime` string povinné

`effectiveFrom` null | string povinné date

`vatHistory` object\[\] povinné

`from` null | string povinné date

`vatPayer` boolean povinné

`vatPeriod` string povinné

`note` null | string

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

`email` null | string povinné

`phone` null | string povinné

`www` null | string povinné

`registerNote` any povinné

Null in every recorded response.

`defaultLanguage` string povinné

`bankAccount` object povinné

`accountNumber` null | string povinné

`bankCode` null | string povinné

`iban` null | string

`swift` string | null

`logoFileId` null | string povinné

`design` object povinné

`accentColor` null | string povinné

`footerText` null | string povinné

`showLogo` boolean povinné

`showQrCode` boolean povinné

`logoPosition` string

`createdAt` string povinné date-time

`stampFileId` null | string

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

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

## Update the company profile. The accounting regime has its own operation.

PATCH `/v1/company`

Update the company profile. The accounting regime has its own operation.

Nástroj MCP: `update-company`

### Tělo požadavku

`name` string max 160 chars

`ico` string | null

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

`dic` string | null

VAT number (DIČ), for example CZ12345678.

`street` string | null

`city` string | null

`postalCode` string | null

`country` string 2 chars

`email` string | null

`phone` string | null

`www` string | null

`registerNote` string | null

`vatPayer` boolean

`vatPeriod` "monthly" | "quarterly"

`defaultCurrency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`defaultLanguage` "cs" | "en"

`bankAccount` object

`accountNumber` string | null

Account number from the chart of accounts, for example 311. list-accounts lists them.

`bankCode` string | null

`iban` string | null

IBAN without spaces.

`swift` string | null

`design` object

`accentColor` string | null

`footerText` string | null

`showLogo` boolean

`showQrCode` boolean

### Odpověď · 200

`id` string povinné

`sid` string povinné

`name` null | string povinné

`ico` null | string povinné

`dic` null | string povinné

`regime` string povinné

`vatPayer` boolean povinné

`vatPeriod` string povinné

`defaultCurrency` string povinné

`onboarded` boolean povinné

`scheduledRegimeChange` null | object povinné

`regime` string povinné

`effectiveFrom` null | string povinné date

`vatHistory` object\[\] povinné

`from` null | string povinné date

`vatPayer` boolean povinné

`vatPeriod` string povinné

`note` null | string

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

`email` null | string povinné

`phone` null | string povinné

`www` null | string povinné

`registerNote` any povinné

Null in every recorded response.

`defaultLanguage` string povinné

`bankAccount` object povinné

`accountNumber` null | string povinné

`bankCode` null | string povinné

`iban` null | string

`swift` string | null

`logoFileId` null | string povinné

`design` object povinné

`accentColor` null | string povinné

`footerText` null | string povinné

`showLogo` boolean povinné

`showQrCode` boolean povinné

`logoPosition` string

`createdAt` string povinné date-time

`stampFileId` null | string

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/company', {
  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.",
    "ico": "12345678",
    "dic": "CZ12345678"
  }),
});
const data = await response.json();
```

```python
import os
import requests

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

## Which agendas this company shows in the dashboard. Display only: the API and MCP reach every agenda whatever this says, and data is never removed. An agenda holding data or required by the regime stays visible

GET `/v1/company/agendas`

Which agendas this company shows in the dashboard. Display only: the API and MCP reach every agenda whatever this says, and data is never removed. An agenda holding data or required by the regime stays visible

Nástroj MCP: `get-company-agendas`

### Odpověď · 200

`showAll` boolean povinné

`chosen` boolean povinné

`agendas` object\[\] povinné

`key` string povinné

`group` string povinné

`parent` null | string povinné

`locked` boolean povinné

`hasData` boolean povinné

`enabled` boolean povinné

`visible` boolean povinné

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

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

## Turn agendas on or off in the dashboard, or show everything. Owner only. Nothing is removed, and an agenda holding data stays visible

PUT `/v1/company/agendas`

Turn agendas on or off in the dashboard, or show everything. Owner only. Nothing is removed, and an agenda holding data stays visible

Nástroj MCP: `update-company-agendas`

### Tělo požadavku

`showAll` boolean

`on` string\[\]

`off` string\[\]

### Odpověď · 200

`showAll` boolean povinné

`chosen` boolean povinné

`agendas` object\[\] povinné

`key` string povinné

`group` string povinné

`parent` null | string povinné

`locked` boolean povinné

`hasData` boolean povinné

`enabled` boolean povinné

`visible` boolean povinné

```bash
curl -X PUT https://api.damedoklad.cz/v1/company/agendas \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "showAll": false,
  "on": [
    "string"
  ],
  "off": [
    "string"
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/company/agendas', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "showAll": false,
    "on": [
      "string"
    ],
    "off": [
      "string"
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/company/agendas",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "showAll": False,
        "on": [
            "string"
        ],
        "off": [
            "string"
        ]
    },
)
data = response.json()
```

## Look up an IČO in ARES and return name, address and DIČ to prefill. Saves nothing.

POST `/v1/company/ares`

Look up an IČO in ARES and return name, address and DIČ to prefill. Saves nothing.

Nástroj MCP: `lookup-company-in-ares`

### Tělo požadavku

`ico` string povinné

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

### Odpověď · 200

`source` string povinné

`ico` null | string povinné

`dic` null | string povinné

`name` null | string povinné

`vatPayerType` string povinné

`address` null | object povinné

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/company/ares \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ico": "12345678"
}'
```

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

```python
import os
import requests

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

## Download the company logo

GET `/v1/company/logo`

Download the company logo

Nástroj MCP: `get-company-logo`

### Odpověď · 200

Vrací soubor image/png.

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

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

## Upload the logo printed on documents (PNG or JPEG, up to 2 MB)

POST `/v1/company/logo`

Upload the logo printed on documents (PNG or JPEG, up to 2 MB)

Nástroj MCP: `upload-company-logo`

### Tělo požadavku

`contentType` "image/png" | "image/jpeg" povinné

`fileBase64` string povinné max 3145728 chars

File content encoded as base64.

### Odpověď · 200

`id` string povinné

`sid` string povinné

`name` null | string povinné

`ico` null | string povinné

`dic` null | string povinné

`regime` string povinné

`vatPayer` boolean povinné

`vatPeriod` string povinné

`defaultCurrency` string povinné

`onboarded` boolean povinné

`scheduledRegimeChange` null | object povinné

`regime` string povinné

`effectiveFrom` null | string povinné date

`vatHistory` object\[\] povinné

`from` null | string povinné date

`vatPayer` boolean povinné

`vatPeriod` string povinné

`note` null | string

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

`email` null | string povinné

`phone` null | string povinné

`www` null | string povinné

`registerNote` any povinné

Null in every recorded response.

`defaultLanguage` string povinné

`bankAccount` object povinné

`accountNumber` null | string povinné

`bankCode` null | string povinné

`iban` null | string

`swift` string | null

`logoFileId` null | string povinné

`design` object povinné

`accentColor` null | string povinné

`footerText` null | string povinné

`showLogo` boolean povinné

`showQrCode` boolean povinné

`logoPosition` string

`createdAt` string povinné date-time

`stampFileId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/company/logo \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contentType": "image/png",
  "fileBase64": "string"
}'
```

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

```python
import os
import requests

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

## Change the accounting regime (daňová evidence, jednoduché, podvojné účetnictví). With entries in the books it can only be scheduled for the first day of a future period.

POST `/v1/company/regime`

Change the accounting regime (daňová evidence, jednoduché, podvojné účetnictví). With entries in the books it can only be scheduled for the first day of a future period.. Returns 409 regime\_has\_entries when the books hold entries and no valid effectiveFrom is given. This has tax consequences: confirm with the user.

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `change-accounting-regime`

### Tělo požadavku

`regime` "tax\_records" | "single\_entry" | "double\_entry" povinné

`effectiveFrom` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Odpověď · 200

`id` string povinné

`sid` string povinné

`name` null | string povinné

`ico` null | string povinné

`dic` null | string povinné

`regime` string povinné

`vatPayer` boolean povinné

`vatPeriod` string povinné

`defaultCurrency` string povinné

`onboarded` boolean povinné

`scheduledRegimeChange` null | object povinné

`regime` string povinné

`effectiveFrom` null | string povinné date

`vatHistory` object\[\] povinné

`from` null | string povinné date

`vatPayer` boolean povinné

`vatPeriod` string povinné

`note` null | string

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

`email` null | string povinné

`phone` null | string povinné

`www` null | string povinné

`registerNote` any povinné

Null in every recorded response.

`defaultLanguage` string povinné

`bankAccount` object povinné

`accountNumber` null | string povinné

`bankCode` null | string povinné

`iban` null | string

`swift` string | null

`logoFileId` null | string povinné

`design` object povinné

`accentColor` null | string povinné

`footerText` null | string povinné

`showLogo` boolean povinné

`showQrCode` boolean povinné

`logoPosition` string

`createdAt` string povinné date-time

`stampFileId` null | string

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

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

```python
import os
import requests

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

## Upload the company stamp a print layout can place as an element (PNG or JPEG, up to 2 MB)

POST `/v1/company/stamp`

Upload the company stamp a print layout can place as an element (PNG or JPEG, up to 2 MB)

Nástroj MCP: `upload-company-stamp`

### Tělo požadavku

`contentType` "image/png" | "image/jpeg" povinné

`fileBase64` string povinné max 3145728 chars

File content encoded as base64.

### Odpověď · 200

`id` string povinné

`sid` string povinné

`name` null | string povinné

`ico` null | string povinné

`dic` null | string povinné

`regime` string povinné

`vatPayer` boolean povinné

`vatPeriod` string povinné

`defaultCurrency` string povinné

`onboarded` boolean povinné

`scheduledRegimeChange` null | object povinné

`regime` string povinné

`effectiveFrom` null | string povinné date

`vatHistory` object\[\] povinné

`from` null | string povinné date

`vatPayer` boolean povinné

`vatPeriod` string povinné

`note` null | string

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

`email` null | string povinné

`phone` null | string povinné

`www` null | string povinné

`registerNote` any povinné

Null in every recorded response.

`defaultLanguage` string povinné

`bankAccount` object povinné

`accountNumber` null | string povinné

`bankCode` null | string povinné

`iban` null | string

`swift` string | null

`logoFileId` null | string povinné

`design` object povinné

`accentColor` null | string povinné

`footerText` null | string povinné

`showLogo` boolean povinné

`showQrCode` boolean povinné

`logoPosition` string

`createdAt` string povinné date-time

`stampFileId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/company/stamp \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contentType": "image/png",
  "fileBase64": "string"
}'
```

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

```python
import os
import requests

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

## Forget the company stamp picture. A stamp on a layout then prints the company name and numbers in a frame

DELETE `/v1/company/stamp`

Forget the company stamp picture. A stamp on a layout then prints the company name and numbers in a frame

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `delete-company-stamp`

### Odpověď · 200

`id` string povinné

`sid` string povinné

`name` null | string povinné

`ico` null | string povinné

`dic` null | string povinné

`regime` string povinné

`vatPayer` boolean povinné

`vatPeriod` string povinné

`defaultCurrency` string povinné

`onboarded` boolean povinné

`scheduledRegimeChange` null | object povinné

`regime` string povinné

`effectiveFrom` null | string povinné date

`vatHistory` object\[\] povinné

`from` null | string povinné date

`vatPayer` boolean povinné

`vatPeriod` string povinné

`note` null | string

`street` null | string povinné

`city` null | string povinné

`postalCode` null | string povinné

`country` null | string povinné

`email` null | string povinné

`phone` null | string povinné

`www` null | string povinné

`registerNote` any povinné

Null in every recorded response.

`defaultLanguage` string povinné

`bankAccount` object povinné

`accountNumber` null | string povinné

`bankCode` null | string povinné

`iban` null | string

`swift` string | null

`logoFileId` null | string povinné

`design` object povinné

`accentColor` null | string povinné

`footerText` null | string povinné

`showLogo` boolean povinné

`showQrCode` boolean povinné

`logoPosition` string

`createdAt` string povinné date-time

`stampFileId` null | string

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

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

## List the comments on one document, oldest first

GET `/v1/document-comments`

List the comments on one document, oldest first

Nástroj MCP: `list-document-comments`

### Parametry dotazu

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

`documentKind` "invoice" | "received\_invoice" | "proforma" | "supplier\_advance" | "credit\_note" | "delivery\_note" | "inbox\_document" | "cash\_document" | "sales\_document" povinné

`documentId` string povinné max 64 chars

ID of the document.

### Odpověď · 200

`data` object\[\] povinné

`object` "document\_comment" povinné

`id` string povinné

`documentKind` string povinné

`documentId` string povinné

`authorId` null | string povinné

`authorName` null | string povinné

`body` string povinné

`resolvedAt` null | string povinné date-time

`createdAt` string povinné date-time

`mine` boolean povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Comment on a document. E-mails the other people who run the books here.

POST `/v1/document-comments`

Comment on a document. E-mails the other people who run the books here.

Nástroj MCP: `create-document-comment`

### Tělo požadavku

`documentKind` "invoice" | "received\_invoice" | "proforma" | "supplier\_advance" | "credit\_note" | "delivery\_note" | "inbox\_document" | "cash\_document" | "sales\_document" povinné

`documentId` string povinné max 64 chars

ID of the document.

`body` string povinné max 4000 chars

### Odpověď · 201

`id` string povinné

`documentKind` string povinné

`documentId` string povinné

`authorId` null | string povinné

`authorName` null | string povinné

`body` string povinné

`resolvedAt` null | string povinné date-time

`createdAt` string povinné date-time

`mine` boolean povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/document-comments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentKind": "invoice",
  "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "body": "string"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/document-comments",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "documentKind": "invoice",
        "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "body": "string"
    },
)
data = response.json()
```

## Delete your own comment

DELETE `/v1/document-comments/{id}`

Delete your own comment

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `delete-document-comment`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## Mark a comment as dealt with, so it no longer counts as open

POST `/v1/document-comments/{id}/resolve`

Mark a comment as dealt with, so it no longer counts as open

Nástroj MCP: `resolve-document-comment`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`documentKind` string povinné

`documentId` string povinné

`authorId` null | string povinné

`authorName` null | string povinné

`body` string povinné

`resolvedAt` null | string povinné date-time

`createdAt` string povinné date-time

`mine` boolean povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/document-comments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/resolve \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Export: doklad, účetnictví

GET `/v1/document-exports`

Download finished documents for another accounting system: POHODA XML, Money S3 XML, CSV with the journal, or ISDOC files in a ZIP. format=pohoda gives a dataPack of invoices, credit notes, advance invoices, orders, stock cards and stock documents. format=money\_s3 gives MoneyData with issued and received invoices, orders, stock cards and stock documents; proformas have no place there. format=csv gives a ZIP of invoices, lines and journal. format=isdoc gives a ZIP of issued documents. Drafts and cancelled documents are left out. kinds narrows it: order, stock\_card, stock\_document only for the two XML formats.

Nástroj MCP: `export-accounting-documents`

### Parametry dotazu

`format` "pohoda" | "money\_s3" | "csv" | "isdoc" povinné

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`kinds` string

### Odpověď · 200

Vrací soubor application/octet-stream.

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

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

## List requests for documents in this company, newest first

GET `/v1/document-requests`

List requests for documents in this company, newest first

Nástroj MCP: `list-document-requests`

### Parametry dotazu

`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` "open" | "fulfilled" | "cancelled"

### Odpověď · 200

`data` object\[\] povinné

`object` "document\_request" povinné

`id` string povinné

`title` string povinné

`message` string | null povinné

`periodFrom` string | null povinné

`periodTo` string | null povinné

`dueOn` string povinné date

`recipients` string\[\] povinné

`status` string povinné

`reminderEveryDays` integer povinné

`maxReminders` integer povinné

`remindersSent` integer povinné

`nextReminderOn` null | string povinné date

`lastRemindedAt` null | string povinné date-time

`documentsReceived` integer povinné

`fulfilledAt` null | string povinné date-time

`createdAt` string povinné date-time

`failedRecipients` any\[\]

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Ask the client for documents and remind them by e-mail until they are in. Sends real e-mail; confirm the recipients first.

POST `/v1/document-requests`

Ask the client for documents and remind them by e-mail until they are in. Sends real e-mail; confirm the recipients first.

Nástroj MCP: `create-document-request`

### Tělo požadavku

`title` string povinné max 160 chars

`message` string max 2000 chars

`periodFrom` string YYYY-MM-DD

Date as YYYY-MM-DD.

`periodTo` string YYYY-MM-DD

Date as YYYY-MM-DD.

`dueOn` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`recipients` string\[\]

`reminderEveryDays` integer min 1 max 30 výchozí `3`

`maxReminders` integer min 0 max 20 výchozí `5`

### Odpověď · 201

`id` string povinné

`title` string povinné

`message` string | null povinné

`periodFrom` string | null povinné

`periodTo` string | null povinné

`dueOn` string povinné date

`recipients` string\[\] povinné

`status` string povinné

`reminderEveryDays` integer povinné

`maxReminders` integer povinné

`remindersSent` integer povinné

`nextReminderOn` null | string povinné date

`lastRemindedAt` null | string povinné date-time

`documentsReceived` integer povinné

`fulfilledAt` null | string povinné date-time

`createdAt` string povinné date-time

`failedRecipients` any\[\]

```bash
curl -X POST https://api.damedoklad.cz/v1/document-requests \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string",
  "dueOn": "2026-10-30"
}'
```

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

```python
import os
import requests

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

## Withdraw a request for documents. Stops the reminders.

POST `/v1/document-requests/{id}/cancel`

Withdraw a request for documents. Stops the reminders.

Nástroj MCP: `cancel-document-request`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`title` string povinné

`message` string | null povinné

`periodFrom` string | null povinné

`periodTo` string | null povinné

`dueOn` string povinné date

`recipients` string\[\] povinné

`status` string povinné

`reminderEveryDays` integer povinné

`maxReminders` integer povinné

`remindersSent` integer povinné

`nextReminderOn` null | string povinné date

`lastRemindedAt` null | string povinné date-time

`documentsReceived` integer povinné

`fulfilledAt` null | string povinné date-time

`createdAt` string povinné date-time

`failedRecipients` any\[\]

```bash
curl -X POST https://api.damedoklad.cz/v1/document-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/cancel \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Say the requested documents are all in. Stops the reminders.

POST `/v1/document-requests/{id}/fulfil`

Say the requested documents are all in. Stops the reminders.

Nástroj MCP: `fulfil-document-request`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`title` string povinné

`message` string | null povinné

`periodFrom` string | null povinné

`periodTo` string | null povinné

`dueOn` string povinné date

`recipients` string\[\] povinné

`status` string povinné

`reminderEveryDays` integer povinné

`maxReminders` integer povinné

`remindersSent` integer povinné

`nextReminderOn` null | string povinné date

`lastRemindedAt` null | string povinné date-time

`documentsReceived` integer povinné

`fulfilledAt` null | string povinné date-time

`createdAt` string povinné date-time

`failedRecipients` any\[\]

```bash
curl -X POST https://api.damedoklad.cz/v1/document-requests/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/fulfil \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## List workspace exports, newest first

GET `/v1/exports`

List workspace exports, newest first

Nástroj MCP: `list-data-exports`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "data\_export" povinné

`id` string povinné

`status` string povinné

`byteSize` integer | null povinné

`summary` null | object povinné

`pdfs` integer povinné

`files` integer povinné

`tables` object povinné

`boms` integer

`files` integer povinné

`items` integer

`assets` integer

`leases` integer

`series` integer povinné

`periods` integer povinné

`accounts` integer povinné

`contacts` integer povinné

`invoices` integer povinné

`vehicles` integer

`bom_lines` integer

`employees` integer

`movements` integer

`proformas` integer

`dimensions` integer

`stock_lots` integer

`stocktakes` integer

`warehouses` integer

`credentials` integer povinné

`audit_events` integer povinné

`credit_notes` integer

`data_exports` integer povinné

`stock_layers` integer

`tax_profiles` integer

`bank_accounts` integer

`cash_counters` integer

`invoice_lines` integer povinné

`journal_lines` integer povinné

`movement_lots` integer

`travel_orders` integer

`bank_movements` integer

`cash_documents` integer

`cash_registers` integer

`contact_groups` integer

`delivery_notes` integer

`import_batches` integer

`proforma_lines` integer

`stock_balances` integer

`user_workspace` integer povinné

`vehicle_routes` integer

`inbox_documents` integer povinné

`journal_entries` integer povinné

`movement_layers` integer

`stock_documents` integer

`stocktake_lines` integer

`bank_allocations` integer

`invoice_payments` integer

`credit_note_lines` integer

`invoice_vat_lines` integer povinné

`lease_instalments` integer

`received_invoices` integer

`proforma_vat_lines` integer

`stock_lot_balances` integer

`stock_reservations` integer

`delivery_note_lines` integer

`stock_number_series` integer

`accounting_templates` integer povinné

`credit_note_payments` integer

`employment_contracts` integer

`stock_document_lines` integer

`received_invoice_lines` integer

`received_invoice_vat_lines` integer

`received_invoice_settlements` integer

`contact_addresses` integer

`webhook_endpoints` integer

`warnings` any\[\] povinné

`error` string | null povinné

`createdAt` string povinné date-time

`finishedAt` null | string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Start a full export of this company: a ZIP of JSON, spreadsheets, document PDFs and attachments, built in the background

POST `/v1/exports`

Start a full export of this company: a ZIP of JSON, spreadsheets, document PDFs and attachments, built in the background

Nástroj MCP: `create-data-export`

### Odpověď · 202

`id` string povinné

`status` string povinné

`byteSize` integer | null povinné

`summary` null | object povinné

`pdfs` integer povinné

`files` integer povinné

`tables` object povinné

`boms` integer

`files` integer povinné

`items` integer

`assets` integer

`leases` integer

`series` integer povinné

`periods` integer povinné

`accounts` integer povinné

`contacts` integer povinné

`invoices` integer povinné

`vehicles` integer

`bom_lines` integer

`employees` integer

`movements` integer

`proformas` integer

`dimensions` integer

`stock_lots` integer

`stocktakes` integer

`warehouses` integer

`credentials` integer povinné

`audit_events` integer povinné

`credit_notes` integer

`data_exports` integer povinné

`stock_layers` integer

`tax_profiles` integer

`bank_accounts` integer

`cash_counters` integer

`invoice_lines` integer povinné

`journal_lines` integer povinné

`movement_lots` integer

`travel_orders` integer

`bank_movements` integer

`cash_documents` integer

`cash_registers` integer

`contact_groups` integer

`delivery_notes` integer

`import_batches` integer

`proforma_lines` integer

`stock_balances` integer

`user_workspace` integer povinné

`vehicle_routes` integer

`inbox_documents` integer povinné

`journal_entries` integer povinné

`movement_layers` integer

`stock_documents` integer

`stocktake_lines` integer

`bank_allocations` integer

`invoice_payments` integer

`credit_note_lines` integer

`invoice_vat_lines` integer povinné

`lease_instalments` integer

`received_invoices` integer

`proforma_vat_lines` integer

`stock_lot_balances` integer

`stock_reservations` integer

`delivery_note_lines` integer

`stock_number_series` integer

`accounting_templates` integer povinné

`credit_note_payments` integer

`employment_contracts` integer

`stock_document_lines` integer

`received_invoice_lines` integer

`received_invoice_vat_lines` integer

`received_invoice_settlements` integer

`contact_addresses` integer

`webhook_endpoints` integer

`warnings` any\[\] povinné

`error` string | null povinné

`createdAt` string povinné date-time

`finishedAt` null | string povinné date-time

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

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

## Get the status of a workspace export

GET `/v1/exports/{id}`

Get the status of a workspace export

Nástroj MCP: `get-data-export`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`status` string povinné

`byteSize` integer | null povinné

`summary` null | object povinné

`pdfs` integer povinné

`files` integer povinné

`tables` object povinné

`boms` integer

`files` integer povinné

`items` integer

`assets` integer

`leases` integer

`series` integer povinné

`periods` integer povinné

`accounts` integer povinné

`contacts` integer povinné

`invoices` integer povinné

`vehicles` integer

`bom_lines` integer

`employees` integer

`movements` integer

`proformas` integer

`dimensions` integer

`stock_lots` integer

`stocktakes` integer

`warehouses` integer

`credentials` integer povinné

`audit_events` integer povinné

`credit_notes` integer

`data_exports` integer povinné

`stock_layers` integer

`tax_profiles` integer

`bank_accounts` integer

`cash_counters` integer

`invoice_lines` integer povinné

`journal_lines` integer povinné

`movement_lots` integer

`travel_orders` integer

`bank_movements` integer

`cash_documents` integer

`cash_registers` integer

`contact_groups` integer

`delivery_notes` integer

`import_batches` integer

`proforma_lines` integer

`stock_balances` integer

`user_workspace` integer povinné

`vehicle_routes` integer

`inbox_documents` integer povinné

`journal_entries` integer povinné

`movement_layers` integer

`stock_documents` integer

`stocktake_lines` integer

`bank_allocations` integer

`invoice_payments` integer

`credit_note_lines` integer

`invoice_vat_lines` integer povinné

`lease_instalments` integer

`received_invoices` integer

`proforma_vat_lines` integer

`stock_lot_balances` integer

`stock_reservations` integer

`delivery_note_lines` integer

`stock_number_series` integer

`accounting_templates` integer povinné

`credit_note_payments` integer

`employment_contracts` integer

`stock_document_lines` integer

`received_invoice_lines` integer

`received_invoice_vat_lines` integer

`received_invoice_settlements` integer

`contact_addresses` integer

`webhook_endpoints` integer

`warnings` any\[\] povinné

`error` string | null povinné

`createdAt` string povinné date-time

`finishedAt` null | string povinné date-time

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

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

## Download a finished workspace export as a ZIP

GET `/v1/exports/{id}/download`

Download a finished workspace export as a ZIP

Nástroj MCP: `download-data-export`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

Vrací soubor application/zip.

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

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

## List imports, newest first

GET `/v1/imports`

List imports, newest first

Nástroj MCP: `list-imports`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "import\_batch" povinné

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`bank` object

`vouchers` object

`orders` object

`offers` object

`stock_documents` object

`stock` object

`accounts` object

`postings` object

`dimensions` object

`price_lists` object

`journal` object

`invoices` object

`opening_balances` object

`fixed_assets` object

`enquiries` object

`productions` object

`sale_vouchers` object

`stock_transfers` object

`internal_documents` object

`product_data` object

`money` object

`income` object

`expenses` object

`payables` object

`receivables` object

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Upload a POHODA XML, XLSX or CSV file and get a dry-run report of what importing it would do. Changes nothing yet.

POST `/v1/imports`

Upload a POHODA XML, XLSX or CSV file and get a dry-run report of what importing it would do. Changes nothing yet.. source=pohoda reads a dataPack or responsePack: adresář, faktury, zásoby, účetní deník, pokladna, banka, objednávky, nabídky, příjemky, výdejky, převodky, výroba, prodejky, poptávky, interní doklady, ceníky, účtová osnova, předkontace, střediska, činnosti, zakázky. With kind=opening\_from\_journal it turns a deník into opening balances at openingDate. source=tabular needs kind contacts, opening\_balances or fixed\_assets.

Nástroj MCP: `create-import`

### Tělo požadavku

`source` "pohoda" | "tabular" povinné

`kind` "contacts" | "opening\_balances" | "fixed\_assets" | "opening\_from\_journal"

`filename` string povinné max 200 chars

`fileBase64` string povinné max 62914560 chars

File content encoded as base64.

`openingDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Odpověď · 201

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`bank` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`orders` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`offers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`stock_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`accounts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`postings` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`dimensions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`price_lists` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`journal` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`invoices` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`opening_balances` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`fixed_assets` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`enquiries` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`productions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`sale_vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock_transfers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`internal_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`product_data` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`money` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` any\[\] povinné

`warnings` any\[\] povinné

`income` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`expenses` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`payables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`receivables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

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

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

```python
import os
import requests

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

## Get an import with its dry-run report and result

GET `/v1/imports/{id}`

Get an import with its dry-run report and result

Nástroj MCP: `get-import`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`bank` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`orders` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`offers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`stock_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`accounts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`postings` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`dimensions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`price_lists` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`journal` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`invoices` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`opening_balances` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`fixed_assets` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`enquiries` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`productions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`sale_vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock_transfers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`internal_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`product_data` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`money` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` any\[\] povinné

`warnings` any\[\] povinné

`income` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`expenses` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`payables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`receivables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

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

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

## Run an import after its dry run. All or nothing. Posting a journal or opening balances writes to the books.

POST `/v1/imports/{id}/apply`

Run an import after its dry run. All or nothing. Posting a journal or opening balances writes to the books.

Nástroj MCP: `apply-import`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`sections` "accounts" | "postings" | "dimensions" | "contacts" | "stock" | "price\_lists" | "invoices" | "vouchers" | "bank" | "orders" | "offers" | "stock\_documents" | "journal"\[\]

`importStockQuantities` boolean výchozí `true`

### Odpověď · 202

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`bank` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`orders` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`offers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`stock_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`accounts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`postings` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`dimensions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`price_lists` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`journal` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`invoices` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`opening_balances` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`fixed_assets` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`enquiries` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`productions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`sale_vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock_transfers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`internal_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`product_data` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`money` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` any\[\] povinné

`warnings` any\[\] povinné

`income` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`expenses` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`payables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`receivables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/imports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/apply \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "sections": [
    "accounts"
  ],
  "importStockQuantities": true
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/imports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/apply', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "sections": [
      "accounts"
    ],
    "importStockQuantities": true
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/imports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/apply",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "sections": [
            "accounts"
        ],
        "importStockQuantities": True
    },
)
data = response.json()
```

## Compare what a POHODA file says with what is in the books now, section by section: counts, totals, missing documents and differences

GET `/v1/imports/{id}/reconciliation`

Compare what a POHODA file says with what is in the books now, section by section: counts, totals, missing documents and differences

Nástroj MCP: `get-import-reconciliation`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`status` string povinné

`balanced` boolean povinné

`sections` object\[\] povinné

`key` string povinné

`label` null | string povinné

`pohodaCount` integer povinné

`oursCount` integer povinné

`totals` object\[\] povinné

`currency` null | string povinné

`pohodaHaler` integer povinné

`oursHaler` integer povinné

`differenceHaler` integer povinné

`missing` object\[\] povinné

`number` null | string povinné

`currency` null | string

`pohodaHaler` integer

`different` object\[\] povinné

`number` null | string povinné

`currency` null | string povinné

`pohodaHaler` integer povinné

`oursHaler` integer povinné

`differenceHaler` integer povinné

`skipped` integer povinné

`balanced` boolean povinné

`accounts` object\[\] povinné

`accountNumber` null | string povinné

`pohodaDebitHaler` integer povinné

`pohodaCreditHaler` integer povinné

`oursDebitHaler` integer povinné

`oursCreditHaler` integer povinné

`differenceHaler` integer povinné

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

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

## Say whether an applied import can still be undone, and what stands in the way

GET `/v1/imports/{id}/undo`

Say whether an applied import can still be undone, and what stands in the way

Nástroj MCP: `get-import-undo-check`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`possible` boolean povinné

`reason` null | string povinné

`blockers` object\[\] povinné

`objectType` null | string povinné

`objectId` null | string povinné

`reason` null | string povinné

`counts` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`received_invoice` integer

`blockerCount` integer

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

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

## Undo a whole import while nothing has been built on it. Removes what it created and reverses what it posted. All or nothing.

POST `/v1/imports/{id}/undo`

Undo a whole import while nothing has been built on it. Removes what it created and reverses what it posted. All or nothing.

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `undo-import`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`bank` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`orders` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`offers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`stock_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`accounts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`postings` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`dimensions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`price_lists` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`journal` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`invoices` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`opening_balances` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`fixed_assets` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`enquiries` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`productions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`sale_vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock_transfers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`internal_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`product_data` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`money` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` any\[\] povinné

`warnings` any\[\] povinné

`income` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`expenses` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`payables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`receivables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

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

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

## POHODA documents kept as history without an agenda of their own: interní doklady and received enquiries

GET `/v1/imports/documents`

POHODA documents kept as history without an agenda of their own: interní doklady and received enquiries

Nástroj MCP: `list-imported-documents`

### Parametry dotazu

`kind` "internal\_document" | "received\_enquiry"

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "imported\_document" povinné

`id` string povinné

`kind` string povinné

`number` string povinné

`date` string povinné date

`description` null | string povinné

`contactName` null | string povinné

`currency` string povinné

`netHaler` integer povinné

`vatHaler` integer povinné

`totalHaler` integer povinné

`lines` object\[\] povinné

`unit` null | string povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer povinné

`description` null | string povinné

`quantityMilli` integer | null povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Mid-year transition for tax records and single entry: balances of accounts and registers, open receivables and payables, income and expenses so far. Returns a dry-run report. Changes nothing until the import is applied

POST `/v1/imports/mid-year`

Mid-year transition for tax records and single entry: balances of accounts and registers, open receivables and payables, income and expenses so far. Returns a dry-run report. Changes nothing until the import is applied

Nástroj MCP: `create-mid-year-transition`

### Tělo požadavku

`openingDate` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`bankAccounts` object\[\]

`id` string povinné

`balanceHaler` integer povinné min -9007199254740991 max 9007199254740991

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

`cashRegisters` object\[\]

`id` string povinné

`balanceHaler` integer povinné min 0 max 9007199254740991

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

`receivables` object\[\]

`number` string povinné max 60 chars

`contactName` string povinné max 200 chars

`ico` string

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

`issueDate` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`dueDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`amountHaler` integer povinné min 1 max 9007199254740991

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

`vatHaler` integer min 0 max 9007199254740991

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

`payables` object\[\]

`number` string povinné max 60 chars

`contactName` string povinné max 200 chars

`ico` string

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

`issueDate` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`dueDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`amountHaler` integer povinné min 1 max 9007199254740991

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

`vatHaler` integer min 0 max 9007199254740991

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

`income` object\[\]

`description` string povinné max 200 chars

`amountHaler` integer povinné min 1 max 9007199254740991

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

`vatHaler` integer min 0 max 9007199254740991

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

`classification` "income\_taxable" | "income\_exempt" | "expense\_deductible" | "expense\_nondeductible"

`category` string max 60 chars

`activityKind` "main" | "economic"

`moneyAccount` "bank" | "cash"

`expenses` object\[\]

`description` string povinné max 200 chars

`amountHaler` integer povinné min 1 max 9007199254740991

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

`vatHaler` integer min 0 max 9007199254740991

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

`classification` "income\_taxable" | "income\_exempt" | "expense\_deductible" | "expense\_nondeductible"

`category` string max 60 chars

`activityKind` "main" | "economic"

`moneyAccount` "bank" | "cash"

### Odpověď · 201

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`bank` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`orders` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`offers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`stock_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`accounts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`postings` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`dimensions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`price_lists` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`journal` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`invoices` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`opening_balances` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`fixed_assets` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`enquiries` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`productions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`sale_vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock_transfers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`internal_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`product_data` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`money` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` any\[\] povinné

`warnings` any\[\] povinné

`income` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`expenses` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`payables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`receivables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

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

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

```python
import os
import requests

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

## Type opening balances for a mid-year switch and get a dry-run report. Changes nothing until the import is applied.

POST `/v1/imports/opening-balances`

Type opening balances for a mid-year switch and get a dry-run report. Changes nothing until the import is applied.

Nástroj MCP: `create-typed-opening-balances`

### Tělo požadavku

`openingDate` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`lines` object\[\] povinné

`accountNumber` string povinné

Account number from the chart of accounts, for example 311. list-accounts lists them.

`accountName` string max 200 chars

`debitHaler` integer min 0 max 9007199254740991 výchozí `0`

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

`creditHaler` integer min 0 max 9007199254740991 výchozí `0`

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

### Odpověď · 201

`id` string povinné

`source` string povinné

`kind` string povinné

`filename` null | string povinné

`status` string povinné

`report` object povinné

`format` string

`sections` object povinné

`contacts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`bank` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`orders` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`offers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`stock_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`accounts` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`postings` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`dimensions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`price_lists` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`journal` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`invoices` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`opening_balances` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`fixed_assets` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`enquiries` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`productions` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`sale_vouchers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`stock_transfers` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`internal_documents` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`product_data` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`money` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` any\[\] povinné

`warnings` any\[\] povinné

`income` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` string\[\] povinné

`expenses` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` any\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`payables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`receivables` object

`skip` integer povinné

`label` null | string povinné

`total` integer povinné

`create` integer povinné

`errors` string\[\] povinné

`update` integer povinné

`samples` object\[\] povinné

`warnings` any\[\] povinné

`warnings` string\[\]

`sourceIco` null | string

`application` null | string

`unsupported` object

`claim` integer

`balanceItems` integer

`balanced` boolean

`debitHaler` integer

`creditHaler` integer

`openingDate` null | string date

`unknownColumns` string\[\]

`taxBaseSoFarHaler` integer

`result` null | object povinné

`lines` integer

`journal` integer

`items` integer

`offers` integer

`orders` integer

`prices` integer

`accounts` integer

`archived` integer

`contacts` integer

`invoices` integer

`postings` integer

`vouchers` integer

`enquiries` integer

`movements` integer

`dimensions` integer

`priceLists` integer

`warehouses` integer

`productions` integer

`bankAccounts` integer

`saleVouchers` integer

`bankMovements` integer

`cashRegisters` integer

`stockDocuments` integer

`stockTransfers` integer

`contactsUpdated` integer

`fixedAssets` integer

`gpsr` integer

`customFields` integer

`recyclingFees` integer

`income` integer

`expenses` integer

`payables` integer

`registers` integer

`receivables` integer

`error` null | string povinné

`createdAt` string povinné date-time

`appliedAt` null | string povinné date-time

`undoneAt` null | string povinné date-time

`undo` object

`removed` object povinné

`contact` integer

`dimension` integer

`invoice` integer

`item` integer

`warehouse` integer

`asset` integer

`stock_document` integer

`sales_document` integer

`imported_document` integer

`gpsr_record` integer

`recycling_fee` integer

`custom_field` integer

`received_invoice` integer

`cash_book_entry` integer

`book_balance_opening` integer

`reversedEntries` integer povinné

`keptAccounts` integer povinné

`keptDimensions` integer povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/imports/opening-balances \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "openingDate": "2026-10-30",
  "lines": [
    {
      "accountNumber": "string"
    }
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/imports/opening-balances', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "openingDate": "2026-10-30",
    "lines": [
      {
        "accountNumber": "string"
      }
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/imports/opening-balances",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "openingDate": "2026-10-30",
        "lines": [
            {
                "accountNumber": "string"
            }
        ]
    },
)
data = response.json()
```

## Detail: adresa, k vyřízení

GET `/v1/inbox/address`

Get the e-mail address that puts received attachments into this queue

Nástroj MCP: `get-inbox-address`

### Odpověď · 200

`address` null | string povinné

`enabled` boolean povinné

`aiEnabled` boolean

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

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

## Replace the company address with a new one, for when the old one leaked. Mail to the old address stops being accepted.

POST `/v1/inbox/address/rotate`

Replace the company address with a new one, for when the old one leaked. Mail to the old address stops being accepted.

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `rotate-inbox-address`

### Odpověď · 200

`address` null | string povinné

`enabled` boolean povinné

`aiEnabled` boolean

```bash
curl -X POST https://api.damedoklad.cz/v1/inbox/address/rotate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Seznam: doklad, k vyřízení

GET `/v1/inbox/documents`

List received documents in the queue. By default those not finished yet.

Nástroj MCP: `list-inbox-documents`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`status` "new" | "done" | "discarded"

### Odpověď · 200

`data` object\[\] povinné

`object` "inbox\_document" povinné

`id` string povinné

`filename` string povinné

`source` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`fileId` string povinné

`extractionSource` null | string povinné

`extraction` null | object povinné

`iban` string | null

`dueDate` null | string date

`bankCode` null | string

`currency` null | string

`netHaler` integer | null povinné

`vatHaler` integer | null povinné

`vatLines` object\[\] povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer | null povinné

`issueDate` null | string povinné date

`totalHaler` integer | null povinné

`supplierDic` null | string

`supplierIco` null | string

`documentType` integer | null

`payableHaler` integer | null

`supplierCity` any

Null in every recorded response.

`supplierName` null | string povinné

`taxPointDate` null | string date

`accountNumber` null | string

`documentNumber` null | string povinné

`supplierStreet` any

Null in every recorded response.

`variableSymbol` null | string

`supplierPostalCode` any

Null in every recorded response.

`isInvoice` boolean

`extractionError` null | string povinné

`receivedInvoiceId` null | string povinné

`supplierAdvanceId` null | string povinné

`requestId` null | string povinné

`hasCompanion` boolean povinné

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Add a received document (PDF, image, or ISDOC, base64, up to 25 MB) to the queue. Values are read from it automatically.

POST `/v1/inbox/documents`

Add a received document (PDF, image, or ISDOC, base64, up to 25 MB) to the queue. Values are read from it automatically.

Nástroj MCP: `upload-inbox-document`

### Tělo požadavku

`requestId` string max 64 chars

ID of the request.

`filename` string povinné max 200 chars

`contentType` string max 100 chars

`fileBase64` string povinné max 62914560 chars

File content encoded as base64.

### Odpověď · 201

`id` string povinné

`filename` string povinné

`source` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`fileId` string povinné

`extractionSource` null | string povinné

`extraction` null | object povinné

`iban` string | null

`dueDate` null | string date

`bankCode` null | string

`currency` null | string

`netHaler` integer | null povinné

`vatHaler` integer | null povinné

`vatLines` object\[\] povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer | null povinné

`issueDate` null | string povinné date

`totalHaler` integer | null povinné

`supplierDic` null | string

`supplierIco` null | string

`documentType` integer | null

`payableHaler` integer | null

`supplierCity` any

Null in every recorded response.

`supplierName` null | string povinné

`taxPointDate` null | string date

`accountNumber` null | string

`documentNumber` null | string povinné

`supplierStreet` any

Null in every recorded response.

`variableSymbol` null | string

`supplierPostalCode` any

Null in every recorded response.

`isInvoice` boolean

`extractionError` null | string povinné

`receivedInvoiceId` null | string povinné

`supplierAdvanceId` null | string povinné

`requestId` null | string povinné

`hasCompanion` boolean povinné

`createdAt` string povinné date-time

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

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

```python
import os
import requests

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

## Detail: doklad, k vyřízení

GET `/v1/inbox/documents/{id}`

Get a received document with the values read from it

Nástroj MCP: `get-inbox-document`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`filename` string povinné

`source` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`fileId` string povinné

`extractionSource` null | string povinné

`extraction` null | object povinné

`iban` string | null

`dueDate` null | string date

`bankCode` null | string

`currency` null | string

`netHaler` integer | null povinné

`vatHaler` integer | null povinné

`vatLines` object\[\] povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer | null povinné

`issueDate` null | string povinné date

`totalHaler` integer | null povinné

`supplierDic` null | string

`supplierIco` null | string

`documentType` integer | null

`payableHaler` integer | null

`supplierCity` any

Null in every recorded response.

`supplierName` null | string povinné

`taxPointDate` null | string date

`accountNumber` null | string

`documentNumber` null | string povinné

`supplierStreet` any

Null in every recorded response.

`variableSymbol` null | string

`supplierPostalCode` any

Null in every recorded response.

`isInvoice` boolean

`extractionError` null | string povinné

`receivedInvoiceId` null | string povinné

`supplierAdvanceId` null | string povinné

`requestId` null | string povinné

`hasCompanion` boolean povinné

`createdAt` string povinné date-time

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

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

```python
import os
import requests

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

## Úprava: doklad, k vyřízení

PATCH `/v1/inbox/documents/{id}`

Correct the values read from a received document before creating the invoice

Nástroj MCP: `update-inbox-document`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`supplierName` string | null

`supplierIco` string | null

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

`supplierDic` string | null

VAT number (DIČ), for example CZ12345678.

`documentNumber` string | null

`variableSymbol` string | null

`issueDate` string | null

Date as YYYY-MM-DD.

`taxPointDate` string | null

Date as YYYY-MM-DD.

`dueDate` string | null

Date as YYYY-MM-DD.

`currency` string | null

ISO 4217 currency code, for example CZK or EUR.

`netHaler` integer | null

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

`vatHaler` integer | null

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

`totalHaler` integer | null

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

`accountNumber` string | null

Account number from the chart of accounts, for example 311. list-accounts lists them.

`bankCode` string | null

`iban` string | null

IBAN without spaces.

### Odpověď · 200

`id` string povinné

`filename` string povinné

`source` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`fileId` string povinné

`extractionSource` null | string povinné

`extraction` null | object povinné

`iban` string | null

`dueDate` null | string date

`bankCode` null | string

`currency` null | string

`netHaler` integer | null povinné

`vatHaler` integer | null povinné

`vatLines` object\[\] povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer | null povinné

`issueDate` null | string povinné date

`totalHaler` integer | null povinné

`supplierDic` null | string

`supplierIco` null | string

`documentType` integer | null

`payableHaler` integer | null

`supplierCity` any

Null in every recorded response.

`supplierName` null | string povinné

`taxPointDate` null | string date

`accountNumber` null | string

`documentNumber` null | string povinné

`supplierStreet` any

Null in every recorded response.

`variableSymbol` null | string

`supplierPostalCode` any

Null in every recorded response.

`isInvoice` boolean

`extractionError` null | string povinné

`receivedInvoiceId` null | string povinné

`supplierAdvanceId` null | string povinné

`requestId` null | string povinné

`hasCompanion` boolean povinné

`createdAt` string povinné date-time

```bash
curl -X PATCH https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "supplierName": "Pekárna U Lípy s.r.o.",
  "supplierIco": "12345678",
  "supplierDic": "CZ12345678"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "supplierName": "Pekárna U Lípy s.r.o.",
    "supplierIco": "12345678",
    "supplierDic": "CZ12345678"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "supplierName": "Pekárna U Lípy s.r.o.",
        "supplierIco": "12345678",
        "supplierDic": "CZ12345678"
    },
)
data = response.json()
```

## Take a document out of the queue without creating anything. The file is kept.

POST `/v1/inbox/documents/{id}/discard`

Take a document out of the queue without creating anything. The file is kept.

Nástroj MCP: `discard-inbox-document`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`filename` string povinné

`source` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`fileId` string povinné

`extractionSource` null | string povinné

`extraction` null | object povinné

`iban` string | null

`dueDate` null | string date

`bankCode` null | string

`currency` null | string

`netHaler` integer | null povinné

`vatHaler` integer | null povinné

`vatLines` object\[\] povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer | null povinné

`issueDate` null | string povinné date

`totalHaler` integer | null povinné

`supplierDic` null | string

`supplierIco` null | string

`documentType` integer | null

`payableHaler` integer | null

`supplierCity` any

Null in every recorded response.

`supplierName` null | string povinné

`taxPointDate` null | string date

`accountNumber` null | string

`documentNumber` null | string povinné

`supplierStreet` any

Null in every recorded response.

`variableSymbol` null | string

`supplierPostalCode` any

Null in every recorded response.

`isInvoice` boolean

`extractionError` null | string povinné

`receivedInvoiceId` null | string povinné

`supplierAdvanceId` null | string povinné

`requestId` null | string povinné

`hasCompanion` boolean povinné

`createdAt` string povinné date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/discard \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Read the values from a received document again

POST `/v1/inbox/documents/{id}/extract`

Read the values from a received document again

Nástroj MCP: `extract-inbox-document`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`filename` string povinné

`source` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`fileId` string povinné

`extractionSource` null | string povinné

`extraction` null | object povinné

`iban` string | null

`dueDate` null | string date

`bankCode` null | string

`currency` null | string

`netHaler` integer | null povinné

`vatHaler` integer | null povinné

`vatLines` object\[\] povinné

`vatRate` integer povinné

`netHaler` integer povinné

`vatHaler` integer | null povinné

`issueDate` null | string povinné date

`totalHaler` integer | null povinné

`supplierDic` null | string

`supplierIco` null | string

`documentType` integer | null

`payableHaler` integer | null

`supplierCity` any

Null in every recorded response.

`supplierName` null | string povinné

`taxPointDate` null | string date

`accountNumber` null | string

`documentNumber` null | string povinné

`supplierStreet` any

Null in every recorded response.

`variableSymbol` null | string

`supplierPostalCode` any

Null in every recorded response.

`isInvoice` boolean

`extractionError` null | string povinné

`receivedInvoiceId` null | string povinné

`supplierAdvanceId` null | string povinné

`requestId` null | string povinné

`hasCompanion` boolean povinné

`createdAt` string povinné date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/extract \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Detail: soubor, doklad, k vyřízení

GET `/v1/inbox/documents/{id}/file`

Download the attachment of a received document

Nástroj MCP: `get-inbox-document-file`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

Vrací soubor application/octet-stream.

```bash
curl https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/file \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor
```

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

## Create a received invoice from a document in the queue and attach the file. Posts to the books unless record is false.

POST `/v1/inbox/documents/{id}/received-invoice`

Create a received invoice from a document in the queue and attach the file. Posts to the books unless record is false.. Recording posts to the books. Confirm the supplier, number, dates and amounts with the user first.

Nástroj MCP: `create-received-invoice-from-inbox`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`record` boolean výchozí `true`

`confirmDuplicate` boolean

### Odpověď · 201

`id` string povinné

`receivedInvoiceId` null | string

`totalHaler` integer | null povinné

`differenceHaler` integer povinné

`supplierAdvanceId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/received-invoice \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "record": true,
  "confirmDuplicate": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/received-invoice', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "record": true,
    "confirmDuplicate": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/received-invoice",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "record": True,
        "confirmDuplicate": False
    },
)
data = response.json()
```

## Create an advance to a supplier from a document in the queue, such as a supplier's zálohová faktura read from ISDOC, and attach the file. Posts nothing until it is paid.

POST `/v1/inbox/documents/{id}/supplier-advance`

Create an advance to a supplier from a document in the queue, such as a supplier's zálohová faktura read from ISDOC, and attach the file. Posts nothing until it is paid.. A zálohová faktura is not a tax document: no VAT is claimed from it. The amounts become the lines of the advance; its payment and the supplier's tax document follow on the advance.

Nástroj MCP: `create-supplier-advance-from-inbox`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`record` boolean výchozí `true`

`confirmDuplicate` boolean

`advanceAccount` "151" | "152" | "153" | "314" | "051" | "052"

### Odpověď · 201

`id` string povinné

`receivedInvoiceId` null | string

`totalHaler` integer | null povinné

`differenceHaler` integer povinné

`supplierAdvanceId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/supplier-advance \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "record": true,
  "confirmDuplicate": false,
  "advanceAccount": "151"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/supplier-advance', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "record": true,
    "confirmDuplicate": false,
    "advanceAccount": "151"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/supplier-advance",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "record": True,
        "confirmDuplicate": False,
        "advanceAccount": "151"
    },
)
data = response.json()
```

## See who may send documents to the company address

GET `/v1/inbox/email-settings`

See who may send documents to the company address

Nástroj MCP: `get-inbound-email-settings`

### Odpověď · 200

`mode` string povinné

`allowList` string\[\] povinné

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

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

```python
import os
import requests

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

## Set who may send documents to the company address: anyone, or only listed addresses and @domains. The company's own people are always allowed.

PUT `/v1/inbox/email-settings`

Set who may send documents to the company address: anyone, or only listed addresses and @domains. The company's own people are always allowed.

Nástroj MCP: `update-inbound-email-settings`

### Tělo požadavku

`mode` "any" | "allow\_list" povinné

`allowList` string\[\] výchozí `[]`

### Odpověď · 200

`mode` string povinné

`allowList` string\[\] povinné

```bash
curl -X PUT https://api.damedoklad.cz/v1/inbox/email-settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "mode": "any"
}'
```

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

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/inbox/email-settings",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "mode": "any"
    },
)
data = response.json()
```

## List what arrived at the company address, including mail that was refused or held no documents

GET `/v1/inbox/emails`

List what arrived at the company address, including mail that was refused or held no documents

Nástroj MCP: `list-inbound-emails`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "inbound\_email" povinné

`id` string povinné

`sender` null | string povinné

`subject` null | string povinné

`status` string povinné

`receivedCount` integer povinné

`duplicateCount` integer povinné

`skipped` object\[\] povinné

`reason` null | string povinné

`filename` null | string povinné

`documentIds` string\[\] povinné

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Count what is waiting to be finished: received documents in the queue, drafts, unmatched bank movements, overdue invoices

GET `/v1/inbox/summary`

Count what is waiting to be finished: received documents in the queue, drafts, unmatched bank movements, overdue invoices

Nástroj MCP: `get-inbox-summary`

### Odpověď · 200

`documents` integer povinné

`drafts` integer povinné

`movements` integer povinné

`overdue` integer povinné

`total` integer povinné

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

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

## One to-do list: documents to finish, drafts, overdue invoices, and upcoming tax deadlines, each with where to go next

GET `/v1/inbox/todo`

One to-do list: documents to finish, drafts, overdue invoices, and upcoming tax deadlines, each with where to go next

Nástroj MCP: `list-inbox-todo`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`kind` string povinné

`id` string povinné

`title` null | string povinné

`subtitle` string

`amountHaler` integer | null

`currency` null | string

`date` null | string povinné date

`path` null | string povinné

`subtitleEn` string

`direction` string

`deadline` string

`titleEn` string

`selfAssess` boolean

`overdue` boolean

`approvalId` string

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Seznam: pozvánka

GET `/v1/invitations`

List invitations nobody has accepted yet

Nástroj MCP: `list-invitations`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` any\[\] povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Cancel an invitation so its link stops working

DELETE `/v1/invitations/{id}`

Cancel an invitation so its link stops working

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `revoke-invitation`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## Send an invitation again with a new link and a fresh expiry

POST `/v1/invitations/{id}/resend`

Send an invitation again with a new link and a fresh expiry

Nástroj MCP: `resend-invitation`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`email` null | string povinné

`role` string povinné

`accessRoleId` null | string

`expiresAt` string povinné date-time

`expired` boolean povinné

`createdAt` string povinné date-time

`token` string

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

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

## List the mailboxes read into K vyřízení, with when each was last read and any problem. Passwords are never returned

GET `/v1/mailboxes`

List the mailboxes read into K vyřízení, with when each was last read and any problem. Passwords are never returned

Nástroj MCP: `list-mailboxes`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "mailbox" povinné

`id` string povinné

`provider` null | string povinné

`email` null | string povinné

`label` string | null povinné

`host` null | string povinné

`port` integer | null povinné

`security` null | string povinné

`username` null | string povinné

`folder` null | string povinné

`status` string povinné

`errorCode` null | string povinné

`lastSyncAt` null | string povinné date-time

`readFrom` string povinné date

`createdAt` string povinné date-time

`folders` string\[\]

`keepMessages` boolean

`smtpHost` null | string

`smtpPort` integer | null

`smtpSecurity` null | string

`smtpUsername` string | null

`sendingReady` boolean

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Connect a mailbox over IMAP with a password: tests the login first, stores the password encrypted, and from then on reads new attachments into K vyřízení. Nothing on the mail server changes

POST `/v1/mailboxes`

Connect a mailbox over IMAP with a password: tests the login first, stores the password encrypted, and from then on reads new attachments into K vyřízení. Nothing on the mail server changes. Only public servers on the standard ports. The company’s sender rules from the inbound e-mail settings apply. Reads back 30 days on the first run unless readFrom says otherwise.

Nástroj MCP: `connect-mailbox`

### Tělo požadavku

`email` string povinné email

`label` string | null

`host` string povinné min 3 chars max 253 chars

`port` integer min 1 max 65535

`security` "tls" | "starttls"

`username` string max 200 chars

`password` string povinné max 500 chars

`readFrom` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Odpověď · 201

`id` string povinné

`provider` null | string povinné

`email` null | string povinné

`label` string | null povinné

`host` null | string povinné

`port` integer | null povinné

`security` null | string povinné

`username` null | string povinné

`folder` null | string povinné

`status` string povinné

`errorCode` null | string povinné

`lastSyncAt` null | string povinné date-time

`readFrom` string povinné date

`createdAt` string povinné date-time

`folders` string\[\]

`keepMessages` boolean

`smtpHost` null | string

`smtpPort` integer | null

`smtpSecurity` null | string

`smtpUsername` string | null

`sendingReady` boolean

```bash
curl -X POST https://api.damedoklad.cz/v1/mailboxes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "info@example.cz",
  "host": "string",
  "password": "string"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/mailboxes",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "email": "info@example.cz",
        "host": "string",
        "password": "string"
    },
)
data = response.json()
```

## Rename a mailbox, pause it, give it a new password, choose which server folders are read, whether message text is kept, and its outgoing SMTP server. A new password is tested first

PATCH `/v1/mailboxes/{id}`

Rename a mailbox, pause it, give it a new password, choose which server folders are read, whether message text is kept, and its outgoing SMTP server. A new password is tested first

Nástroj MCP: `update-mailbox`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`label` string | null

`password` string max 500 chars

`active` boolean

`folders` string\[\]

`keepMessages` boolean

`smtpHost` string | null

`smtpPort` integer | null

`smtpSecurity` "tls" | "starttls" | null

`smtpUsername` string | null

### Odpověď · 200

`id` string povinné

`provider` null | string povinné

`email` null | string povinné

`label` string | null povinné

`host` null | string povinné

`port` integer | null povinné

`security` null | string povinné

`username` null | string povinné

`folder` null | string povinné

`status` string povinné

`errorCode` null | string povinné

`lastSyncAt` null | string povinné date-time

`readFrom` string povinné date

`createdAt` string povinné date-time

`folders` string\[\]

`keepMessages` boolean

`smtpHost` null | string

`smtpPort` integer | null

`smtpSecurity` null | string

`smtpUsername` string | null

`sendingReady` boolean

```bash
curl -X PATCH https://api.damedoklad.cz/v1/mailboxes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "label": "string",
  "password": "string",
  "active": false
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/mailboxes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "label": "string",
    "password": "string",
    "active": false
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/mailboxes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "label": "string",
        "password": "string",
        "active": False
    },
)
data = response.json()
```

## Disconnect a mailbox and forget its password or token. Documents already in K vyřízení stay, and nothing on the mail server changes

DELETE `/v1/mailboxes/{id}`

Disconnect a mailbox and forget its password or token. Documents already in K vyřízení stay, and nothing on the mail server changes

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `remove-mailbox`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## List the folders on the mail server of a mailbox, to choose which are read. Asks the server, and changes nothing on it

GET `/v1/mailboxes/{id}/folders`

List the folders on the mail server of a mailbox, to choose which are read. Asks the server, and changes nothing on it

Nástroj MCP: `list-mailbox-folders`

### Parametry v cestě

`id` string povinné

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`path` null | string povinné

`name` null | string povinné

`specialUse` string povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Read a mailbox now instead of waiting for the next run. Says how many documents came, were refused, or were already there

POST `/v1/mailboxes/{id}/sync`

Read a mailbox now instead of waiting for the next run. Says how many documents came, were refused, or were already there

Nástroj MCP: `sync-mailbox`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`status` string povinné

`errorCode` null | string

`received` integer povinné

`rejected` integer povinné

`duplicates` integer povinné

`skipped` integer povinné

`remaining` integer | null povinné

`unreadableFolders` string\[\]

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

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

## Suggest the IMAP server for an e-mail address. A suggestion only: connecting proves it

POST `/v1/mailboxes/detect`

Suggest the IMAP server for an e-mail address. A suggestion only: connecting proves it

Nástroj MCP: `detect-mailbox-server`

### Tělo požadavku

`email` string povinné email

### Odpověď · 200

`email` null | string povinné

`host` null | string povinné

`port` integer | null povinné

`security` null | string povinné

`username` null | string povinné

`known` boolean povinné

`suggestedProvider` string povinné

`smtpHost` null | string

`smtpPort` integer | null

`smtpSecurity` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/mailboxes/detect \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "info@example.cz"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/mailboxes/detect",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "email": "info@example.cz"
    },
)
data = response.json()
```

## List the mail of connected mailboxes, newest first: status unprocessed or done, direction in or out, one mailbox, or a search in sender, subject and text

GET `/v1/mailboxes/messages`

List the mail of connected mailboxes, newest first: status unprocessed or done, direction in or out, one mailbox, or a search in sender, subject and text

Nástroj MCP: `list-mailbox-messages`

### Parametry dotazu

`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` "unprocessed" | "done"

`direction` "in" | "out"

`mailboxId` string

ID of the mailbox. Find it with list-mailboxes.

### Odpověď · 200

`data` object\[\] povinné

`object` "mailbox\_message" povinné

`id` string povinné

`mailboxId` null | string povinné

`mailboxEmail` string povinné

`folder` null | string povinné

`direction` string povinné

`status` string povinné

`fromAddress` null | string povinné

`fromName` null | string povinné

`to` string\[\] povinné

`cc` string\[\] povinné

`subject` null | string povinné

`sentAt` null | string povinné date-time

`preview` string povinné

`suspicious` boolean povinné

`attachments` object\[\] povinné

`filename` null | string povinné

`documentId` null | string povinné

`replyToId` null | string povinné

`doneAt` null | string povinné date-time

`createdAt` string povinné date-time

`text` string

`replyTo` string | null

`messageId` null | string

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Write a new message from a connected mailbox, through its own SMTP server. It really goes out. Off until the operator switches sending on

POST `/v1/mailboxes/messages`

Write a new message from a connected mailbox, through its own SMTP server. It really goes out. Off until the operator switches sending on. Attachments in fileBase64, up to 25 MB together. The copy is kept here under direction=out. It is not added to the Sent folder on the mail server.

Nástroj MCP: `send-mailbox-message`

### Tělo požadavku

`mailboxId` string povinné

ID of the mailbox. Find it with list-mailboxes.

`to` string\[\] povinné

`cc` string\[\]

`subject` string povinné max 300 chars

`text` string povinné max 200000 chars

`attachments` object\[\]

`filename` string povinné max 255 chars

`contentType` string povinné max 120 chars

`fileBase64` string povinné

File content encoded as base64.

### Odpověď · 201

`id` string povinné

`mailboxId` null | string povinné

`mailboxEmail` string povinné

`folder` null | string povinné

`direction` string povinné

`status` string povinné

`fromAddress` null | string povinné

`fromName` null | string povinné

`to` string\[\] povinné

`cc` string\[\] povinné

`subject` null | string povinné

`sentAt` null | string povinné date-time

`preview` string povinné

`suspicious` boolean povinné

`attachments` object\[\] povinné

`filename` null | string povinné

`documentId` null | string povinné

`replyToId` null | string povinné

`doneAt` null | string povinné date-time

`createdAt` string povinné date-time

`text` string

`replyTo` string | null

`messageId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/mailboxes/messages \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "mailboxId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "to": [
    "2026-10-30"
  ],
  "subject": "string",
  "text": "string"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/mailboxes/messages', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "mailboxId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "to": [
      "2026-10-30"
    ],
    "subject": "string",
    "text": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/mailboxes/messages",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "mailboxId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "to": [
            "2026-10-30"
        ],
        "subject": "string",
        "text": "string"
    },
)
data = response.json()
```

## Read one message with its text. The text is plain, never HTML, and an attachment that reached K vyřízení names its document

GET `/v1/mailboxes/messages/{id}`

Read one message with its text. The text is plain, never HTML, and an attachment that reached K vyřízení names its document

Nástroj MCP: `get-mailbox-message`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`mailboxId` null | string povinné

`mailboxEmail` string povinné

`folder` null | string povinné

`direction` string povinné

`status` string povinné

`fromAddress` null | string povinné

`fromName` null | string povinné

`to` string\[\] povinné

`cc` string\[\] povinné

`subject` null | string povinné

`sentAt` null | string povinné date-time

`preview` string povinné

`suspicious` boolean povinné

`attachments` object\[\] povinné

`filename` null | string povinné

`documentId` null | string povinné

`replyToId` null | string povinné

`doneAt` null | string povinné date-time

`createdAt` string povinné date-time

`text` string

`replyTo` string | null

`messageId` null | string

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

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

## Move a message between Unprocessed and Done. This happens here only: nothing changes on the mail server

PATCH `/v1/mailboxes/messages/{id}`

Move a message between Unprocessed and Done. This happens here only: nothing changes on the mail server

Nástroj MCP: `update-mailbox-message`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`status` "unprocessed" | "done" povinné

### Odpověď · 200

`id` string povinné

`mailboxId` null | string povinné

`mailboxEmail` string povinné

`folder` null | string povinné

`direction` string povinné

`status` string povinné

`fromAddress` null | string povinné

`fromName` null | string povinné

`to` string\[\] povinné

`cc` string\[\] povinné

`subject` null | string povinné

`sentAt` null | string povinné date-time

`preview` string povinné

`suspicious` boolean povinné

`attachments` object\[\] povinné

`filename` null | string povinné

`documentId` null | string povinné

`replyToId` null | string povinné

`doneAt` null | string povinné date-time

`createdAt` string povinné date-time

`text` string

`replyTo` string | null

`messageId` null | string

```bash
curl -X PATCH https://api.damedoklad.cz/v1/mailboxes/messages/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "unprocessed"
}'
```

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

```python
import os
import requests

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

## Delete a message from here. It stays on the mail server, and documents already in K vyřízení stay too. It does not come back, because reading has moved past it

DELETE `/v1/mailboxes/messages/{id}`

Delete a message from here. It stays on the mail server, and documents already in K vyřízení stay too. It does not come back, because reading has moved past it

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `delete-mailbox-message`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## Forward a message with the attachments held in K vyřízení. An attachment that did not reach it was not kept, so it does not go along. It really goes out

POST `/v1/mailboxes/messages/{id}/forward`

Forward a message with the attachments held in K vyřízení. An attachment that did not reach it was not kept, so it does not go along. It really goes out

Nástroj MCP: `forward-mailbox-message`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`to` string\[\] povinné

`cc` string\[\]

`text` string max 200000 chars

`attachments` object\[\]

`filename` string povinné max 255 chars

`contentType` string povinné max 120 chars

`fileBase64` string povinné

File content encoded as base64.

### Odpověď · 201

`id` string povinné

`mailboxId` null | string povinné

`mailboxEmail` string povinné

`folder` null | string povinné

`direction` string povinné

`status` string povinné

`fromAddress` null | string povinné

`fromName` null | string povinné

`to` string\[\] povinné

`cc` string\[\] povinné

`subject` null | string povinné

`sentAt` null | string povinné date-time

`preview` string povinné

`suspicious` boolean povinné

`attachments` object\[\] povinné

`filename` null | string povinné

`documentId` null | string povinné

`replyToId` null | string povinné

`doneAt` null | string povinné date-time

`createdAt` string povinné date-time

`text` string

`replyTo` string | null

`messageId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/mailboxes/messages/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/forward \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "to": [
    "2026-10-30"
  ]
}'
```

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

```python
import os
import requests

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

## Reply to a message from the mailbox it came to, quoting it and keeping the thread, and move it to Done. replyAll adds the others. It really goes out

POST `/v1/mailboxes/messages/{id}/reply`

Reply to a message from the mailbox it came to, quoting it and keeping the thread, and move it to Done. replyAll adds the others. It really goes out

Nástroj MCP: `reply-to-mailbox-message`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`replyAll` boolean

`text` string povinné max 200000 chars

`attachments` object\[\]

`filename` string povinné max 255 chars

`contentType` string povinné max 120 chars

`fileBase64` string povinné

File content encoded as base64.

### Odpověď · 201

`id` string povinné

`mailboxId` null | string povinné

`mailboxEmail` string povinné

`folder` null | string povinné

`direction` string povinné

`status` string povinné

`fromAddress` null | string povinné

`fromName` null | string povinné

`to` string\[\] povinné

`cc` string\[\] povinné

`subject` null | string povinné

`sentAt` null | string povinné date-time

`preview` string povinné

`suspicious` boolean povinné

`attachments` object\[\] povinné

`filename` null | string povinné

`documentId` null | string povinné

`replyToId` null | string povinné

`doneAt` null | string povinné date-time

`createdAt` string povinné date-time

`text` string

`replyTo` string | null

`messageId` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/mailboxes/messages/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reply \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "string"
}'
```

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

```python
import os
import requests

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

## Which kinds of mailbox can be connected here. IMAP always; Gmail and Microsoft 365 when the operator has registered an app

GET `/v1/mailboxes/providers`

Which kinds of mailbox can be connected here. IMAP always; Gmail and Microsoft 365 when the operator has registered an app

Nástroj MCP: `get-mailbox-providers`

### Odpověď · 200

`imap` boolean povinné

`gmail` boolean povinné

`microsoft365` boolean povinné

`sending` boolean

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

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

## Seznam: členové

GET `/v1/members`

List the people with access to this company and their roles

Nástroj MCP: `list-members`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "membership" povinné

`id` string povinné

`role` string povinné

`userId` null | string povinné

`workspaceId` string povinné

`email` null | string

`name` null | string

`totpEnabled` boolean

`lastUsedAt` null | string date-time

`joinedAt` string date-time

`isCurrentUser` boolean povinné

`accessRoleId` null | string

`accessRoleName` string

`access` null | object

`agendas` object povinné

`payroll` string

`contacts` string

`sales` string

`purchases` string

`bank` string

`cash` string

`ledger` string

`tax` string

`inventory` string

`assets` string

`travel` string

`agendas` string

`reports` string

`inbox` string

`administration` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Invite someone by e-mail. Sends a real e-mail; confirm the address and role with the user first.

POST `/v1/members`

Invite someone by e-mail. Sends a real e-mail; confirm the address and role with the user first.

Nástroj MCP: `invite-member`

### Tělo požadavku

`email` string povinné email

`role` "owner" | "accountant" | "invoicing" | "warehouse" | "readonly" | "custom" povinné

`accessRoleId` string

ID of the access role. Find it with list-access-roles.

### Odpověď · 201

`id` string povinné

`email` null | string povinné

`role` string povinné

`accessRoleId` null | string

`expiresAt` string povinné date-time

`expired` boolean povinné

`createdAt` string povinné date-time

`token` string

```bash
curl -X POST https://api.damedoklad.cz/v1/members \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "info@example.cz",
  "role": "owner"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/members', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "email": "info@example.cz",
    "role": "owner"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/members",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "email": "info@example.cz",
        "role": "owner"
    },
)
data = response.json()
```

## Change what someone may do in this company. The last owner cannot be demoted.

PATCH `/v1/members/{id}`

Change what someone may do in this company. The last owner cannot be demoted.

Nástroj MCP: `update-member-role`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`role` "owner" | "accountant" | "invoicing" | "warehouse" | "readonly" | "custom" povinné

`accessRoleId` string

ID of the access role. Find it with list-access-roles.

### Odpověď · 200

`id` string povinné

`role` string povinné

`userId` null | string povinné

`workspaceId` string povinné

`email` null | string

`name` null | string

`totpEnabled` boolean

`lastUsedAt` null | string date-time

`joinedAt` string date-time

`isCurrentUser` boolean povinné

`accessRoleId` null | string

`accessRoleName` string

`access` null | object

`agendas` object povinné

`payroll` string

`contacts` string

`sales` string

`purchases` string

`bank` string

`cash` string

`ledger` string

`tax` string

`inventory` string

`assets` string

`travel` string

`agendas` string

`reports` string

`inbox` string

`administration` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

```bash
curl -X PATCH https://api.damedoklad.cz/v1/members/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "role": "owner"
}'
```

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

```python
import os
import requests

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

## Remove someone from this company, or leave it yourself. Their API keys here are revoked. The last owner cannot be removed.

DELETE `/v1/members/{id}`

Remove someone from this company, or leave it yourself. Their API keys here are revoked. The last owner cannot be removed.

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `remove-member`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## What one person may do in this company: a fixed role written out as rights, or a custom role with its parent applied

GET `/v1/members/{id}/access`

What one person may do in this company: a fixed role written out as rights, or a custom role with its parent applied

Nástroj MCP: `get-member-access`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`role` null | object povinné

`id` string povinné

`name` null | string povinné

`fixedRole` null | string povinné

`parent` null | object povinné

`id` string povinné

`name` null | string povinné

`agendas` object\[\] povinné

`key` string povinné

`level` string povinné

`inherited` boolean povinné

`scopes` object povinné

`warehouses` array | null povinné

`id` string povinné

`name` null | string povinné

`registers` any povinné

Null in every recorded response.

`accounts` any povinné

Null in every recorded response.

`series` any povinné

Null in every recorded response.

`centers` any povinné

Null in every recorded response.

`denied` object povinné

`formats` string\[\] povinné

`reports` object\[\] povinné

`key` string povinné

`cs` string povinné

`en` string povinné

`fixedOnly` string\[\] povinné

`members` string\[\] povinné

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

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

## Get the membership and role of whoever is calling, and for a custom role the agendas and limits it has

GET `/v1/members/me`

Get the membership and role of whoever is calling, and for a custom role the agendas and limits it has

Nástroj MCP: `get-current-member`

### Odpověď · 200

`id` string povinné

`role` string povinné

`userId` null | string povinné

`workspaceId` string povinné

`email` null | string

`name` null | string

`totpEnabled` boolean

`lastUsedAt` null | string date-time

`joinedAt` string date-time

`isCurrentUser` boolean povinné

`accessRoleId` null | string

`accessRoleName` string

`access` null | object

`agendas` object povinné

`payroll` string

`contacts` string

`sales` string

`purchases` string

`bank` string

`cash` string

`ledger` string

`tax` string

`inventory` string

`assets` string

`travel` string

`agendas` string

`reports` string

`inbox` string

`administration` string

`scopes` object povinné

`warehouses` array | null povinné

`registers` array | null povinné

`accounts` array | null povinné

`series` array | null povinné

`centers` array | null

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

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

## Seznam: oznámení

GET `/v1/notifications`

List notifications for this company, newest first: tax and payroll deadlines coming up, overdue invoices, failed e-mails and webhooks, finished imports

Nástroj MCP: `list-notifications`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`unread` "true" | "false"

### Odpověď · 200

`data` object\[\] povinné

`object` "notification" povinné

`id` string povinné

`kind` string povinné

`severity` string povinné

`params` object povinné

`count` integer

`oldestDays` integer

`amountHaler` integer | null

`overDeadline` integer

`daysLeft` integer

`notAfter` string date

`period` string

`link` boolean

`what` string

`label` null | string

`status` string

`credential` string

`filename` null | string

`autoMatched` integer

`subject` null | string

`recipient` string

`result` null | object

`contacts` integer povinné

`contactsUpdated` integer povinné

`due` string

`unknown` integer

`key` string

`date` string date

`labelCs` string

`labelEn` string

`contactName` null | string

`dueOn` null | string date

`sent` integer

`failed` integer

`skipped` integer

`path` null | string povinné

`titleCs` string povinné

`titleEn` string povinné

`bodyCs` null | string povinné

`bodyEn` null | string povinné

`read` boolean povinné

`readAt` null | string povinné date-time

`createdAt` string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Find contacts and documents (invoices, received invoices, proformas, advances to suppliers, credit notes, delivery notes) by name, number, IČO, DIČ or variable symbol, and by any custom field marked as searchable

GET `/v1/search`

Find contacts and documents (invoices, received invoices, proformas, advances to suppliers, credit notes, delivery notes) by name, number, IČO, DIČ or variable symbol, and by any custom field marked as searchable

Nástroj MCP: `search`

### Parametry dotazu

`q` string povinné max 100 chars

`limit` integer min 1 max 50

### Odpověď · 200

`data` object\[\] povinné

`id` string povinné

`object` "contact" | "credit\_note" | "delivery\_note" | "invoice" | "item" | "proforma" | "received\_invoice" | "sales\_document" | "supplier\_advance" povinné

`title` null | string povinné

`subtitle` string povinné

`path` null | string povinné

`total` integer povinné

`hasMore` boolean povinné

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

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

## Send a failed delivery again

POST `/v1/webhook-deliveries/{id}/retry`

Send a failed delivery again

Nástroj MCP: `retry-webhook-delivery`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`endpointId` string povinné

`eventId` string povinné

`eventType` string povinné

`status` string povinné

`attempts` integer povinné

`nextAttemptAt` null | string povinné date-time

`responseStatus` integer | null povinné

`responseBody` null | string povinné

`durationMs` integer | null povinné

`error` null | string povinné

`isTest` boolean povinné

`payload` any povinné

`createdAt` string povinné date-time

`deliveredAt` null | string povinné date-time

```bash
curl -X POST https://api.damedoklad.cz/v1/webhook-deliveries/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/retry \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## List the event types a webhook can subscribe to. Payloads are in the \`webhooks\` section of /openapi.json

GET `/v1/webhook-events`

List the event types a webhook can subscribe to. Payloads are in the \`webhooks\` section of /openapi.json

Nástroj MCP: `list-webhook-events`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "webhook\_event" povinné

`id` string povinné

`module` string povinné

`summary` null | string povinné

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## List webhook endpoints

GET `/v1/webhooks`

List webhook endpoints

Nástroj MCP: `list-webhook-endpoints`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Odpověď · 200

`data` object\[\] povinné

`object` "webhook\_endpoint" povinné

`id` string povinné

`url` string povinné

`description` null | string povinné

`events` string\[\] povinné

`enabled` boolean povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`secret` string

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Create a webhook endpoint. The signing secret is returned once.

POST `/v1/webhooks`

Create a webhook endpoint. The signing secret is returned once.

Nástroj MCP: `create-webhook-endpoint`

### Tělo požadavku

`url` string povinné max 2000 chars uri

`description` string | null

`events` string\[\] výchozí `["*"]`

### Odpověď · 201

`id` string povinné

`url` string povinné

`description` null | string povinné

`events` string\[\] povinné

`enabled` boolean povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`secret` string

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

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

```python
import os
import requests

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

## Get a webhook endpoint

GET `/v1/webhooks/{id}`

Get a webhook endpoint

Nástroj MCP: `get-webhook-endpoint`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`url` string povinné

`description` null | string povinné

`events` string\[\] povinné

`enabled` boolean povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`secret` string

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

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

## Update a webhook endpoint: URL, events, or pause it

PATCH `/v1/webhooks/{id}`

Update a webhook endpoint: URL, events, or pause it

Nástroj MCP: `update-webhook-endpoint`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`url` string max 2000 chars uri

`description` string | null

`events` string\[\]

`enabled` boolean

### Odpověď · 200

`id` string povinné

`url` string povinné

`description` null | string povinné

`events` string\[\] povinné

`enabled` boolean povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`secret` string

```bash
curl -X PATCH https://api.damedoklad.cz/v1/webhooks/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "string",
  "description": "Pečivo, říjen",
  "events": [
    "string"
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/webhooks/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "url": "string",
    "description": "Pečivo, říjen",
    "events": [
      "string"
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/webhooks/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "url": "string",
        "description": "Pečivo, říjen",
        "events": [
            "string"
        ]
    },
)
data = response.json()
```

## Delete a webhook endpoint and its delivery log

DELETE `/v1/webhooks/{id}`

Delete a webhook endpoint and its delivery log

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `delete-webhook-endpoint`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## List delivery attempts of a webhook endpoint, newest first

GET `/v1/webhooks/{id}/deliveries`

List delivery attempts of a webhook endpoint, newest first

Nástroj MCP: `list-webhook-deliveries`

### Parametry v cestě

`id` string povinné

### Parametry dotazu

`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` "pending" | "success" | "failed"

### Odpověď · 200

`data` object\[\] povinné

`object` "webhook\_delivery" povinné

`id` string povinné

`endpointId` string povinné

`eventId` string povinné

`eventType` string povinné

`status` string povinné

`attempts` integer povinné

`nextAttemptAt` null | string povinné date-time

`responseStatus` integer | null povinné

`responseBody` null | string povinné

`durationMs` integer | null povinné

`error` null | string povinné

`isTest` boolean povinné

`payload` any povinné

`createdAt` string povinné date-time

`deliveredAt` null | string povinné date-time

`total` integer

Rows that match, on all pages.

`hasMore` boolean povinné

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

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

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

## Replace the signing secret. The new secret is returned once; the old one stops working immediately.

POST `/v1/webhooks/{id}/rotate-secret`

Replace the signing secret. The new secret is returned once; the old one stops working immediately.

Nevratná operaceTato operace se nedá vrátit. MCP klienti se před ní ptají na potvrzení.

Nástroj MCP: `rotate-webhook-secret`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`url` string povinné

`description` null | string povinné

`events` string\[\] povinné

`enabled` boolean povinné

`createdAt` string povinné date-time

`updatedAt` string povinné date-time

`secret` string

```bash
curl -X POST https://api.damedoklad.cz/v1/webhooks/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/rotate-secret \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Send a signed test event to this endpoint now and return the result. Test events are not retried.

POST `/v1/webhooks/{id}/test`

Send a signed test event to this endpoint now and return the result. Test events are not retried.

Nástroj MCP: `test-webhook-endpoint`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`endpointId` string povinné

`eventId` string povinné

`eventType` string povinné

`status` string povinné

`attempts` integer povinné

`nextAttemptAt` null | string povinné date-time

`responseStatus` integer | null povinné

`responseBody` null | string povinné

`durationMs` integer | null povinné

`error` null | string povinné

`isTest` boolean povinné

`payload` any povinné

`createdAt` string povinné date-time

`deliveredAt` null | string povinné date-time

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

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