# Cesty a vozidla · API DameDokladu

> Operace ve skupině Cesty a vozidla.

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

# Cesty a vozidla

Operace ve skupině Cesty a vozidla.

## List fuel purchases

GET `/v1/fuel-purchases`

List fuel purchases

Nástroj MCP: `list-fuel-purchases`

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

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

### Odpověď · 200

`data` object\[\] povinné

`object` "vehicle\_fuel\_purchase" povinné

`id` string povinné

`vehicleId` string povinné

`purchasedOn` string povinné date

`quantityMilli` integer povinné

`amountHaler` integer povinné

`odometer` integer | null

`vendor` null | string povinné

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

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

```python
import os
import requests

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

## Record a fuel purchase for the fuel reconciliation; it does not post to the books, the receipt does

POST `/v1/fuel-purchases`

Record a fuel purchase for the fuel reconciliation; it does not post to the books, the receipt does

Nástroj MCP: `create-fuel-purchase`

### Tělo požadavku

`vehicleId` string povinné

ID of the vehicle. Find it with list-vehicles.

`purchasedOn` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`quantityMilli` integer povinné min 1 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`amountHaler` integer povinné min 0 max 9007199254740991

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

`odometer` integer min 0 max 9007199254740991

`vendor` string max 500 chars

`note` string max 2000 chars

### Odpověď · 201

`id` string povinné

`vehicleId` string povinné

`purchasedOn` string povinné date

`quantityMilli` integer povinné

`amountHaler` integer povinné

`odometer` integer | null

`vendor` null | string povinné

`note` null | string

```bash
curl -X POST https://api.damedoklad.cz/v1/fuel-purchases \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "purchasedOn": "2026-10-30",
  "quantityMilli": 1000,
  "amountHaler": 1210000
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/fuel-purchases', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "purchasedOn": "2026-10-30",
    "quantityMilli": 1000,
    "amountHaler": 1210000
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/fuel-purchases",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "purchasedOn": "2026-10-30",
        "quantityMilli": 1000,
        "amountHaler": 1210000
    },
)
data = response.json()
```

## Delete a fuel purchase

DELETE `/v1/fuel-purchases/{id}`

Delete a fuel purchase

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

Nástroj MCP: `delete-fuel-purchase`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

## Import a fuel card statement as CSV: date, litres, and amount with VAT required; plate, product, station, card, and odometer optional. dryRun only validates

POST `/v1/fuel-purchases/import`

Import a fuel card statement as CSV: date, litres, and amount with VAT required; plate, product, station, card, and odometer optional. dryRun only validates. Lines for anything but fuel, such as a car wash, are skipped and listed. Other headers go through columnMap. A purchase already recorded (same vehicle, date, litres, and amount) is skipped. It does not post to the books; the invoice from the card issuer does.

Nástroj MCP: `import-fuel-card`

### Tělo požadavku

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

`csv` string max 4000000 chars

`fileBase64` string max 8000000 chars

File content encoded as base64.

`columnMap` object

`dryRun` boolean

### Odpověď · 200

`dryRun` boolean povinné

`imported` integer povinné

`valid` integer povinné

`duplicates` integer povinné

`skipped` object\[\] povinné

`line` integer povinné

`product` string povinné

`errors` object\[\] povinné

`line` integer povinné

`message` null | string povinné

`totalQuantityMilli` integer povinné

`totalAmountHaler` integer povinné

`headers` any povinné

Null in every recorded response.

`missing` any povinné

Null in every recorded response.

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

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

```python
import os
import requests

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

## Logbook of a year for the tax authority as a PDF: all trips, monthly km, business share, fuel against the technical certificate, and odometer problems

GET `/v1/logbook-export.pdf`

Logbook of a year for the tax authority as a PDF: all trips, monthly km, business share, fuel against the technical certificate, and odometer problems. The Income Tax Act prescribes no form for a logbook. The taxpayer proves the expense (§ 92 odst. 3 daňového řádu), so the export states everything that proof rests on. Pass vehicleId for one vehicle.

Nástroj MCP: `export-logbook-for-authority-pdf`

### Parametry dotazu

`year` integer povinné min 1990 max 2100

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

### Odpověď · 200

Vrací soubor application/pdf.

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

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

```python
import os
import requests

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

## Logbook of a year as an XLSX workbook: a summary sheet and one sheet of trips per vehicle

GET `/v1/logbook-export.xlsx`

Logbook of a year as an XLSX workbook: a summary sheet and one sheet of trips per vehicle

Nástroj MCP: `export-logbook-for-authority-xlsx`

### Parametry dotazu

`year` integer povinné min 1990 max 2100

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

### Odpověď · 200

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

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

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

## Paušální výdaj na dopravu for a year (§ 24 odst. 2 písm. zt) ZDP): 5 000 Kč per vehicle and month, 4 000 Kč when reduced. The tax module reads this

GET `/v1/transport-flat-rate`

Paušální výdaj na dopravu for a year (§ 24 odst. 2 písm. zt) ZDP): 5 000 Kč per vehicle and month, 4 000 Kč when reduced. The tax module reads this

Nástroj MCP: `get-transport-flat-rate`

### Parametry dotazu

`year` integer povinné min 1990 max 2100

### Odpověď · 200

`year` integer povinné

`vehicles` object\[\] povinné

`vehicleId` string povinné

`mode` string povinné

`monthlyHaler` integer povinné

`months` object\[\] povinné

`month` integer | null povinné

`days` integer povinné

`amountHaler` integer | null povinné

`amountHaler` integer | null povinné

`totalHaler` integer | null povinné

`reducedCount` integer povinné

`monthlyHaler` integer

`reducedPct` integer

`maxVehicles` integer

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

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

```python
import os
import requests

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

## Choose the transport flat rate of a vehicle for a year: full, reduced (also private use), or none

PUT `/v1/transport-flat-rate`

Choose the transport flat rate of a vehicle for a year: full, reduced (also private use), or none

Nástroj MCP: `set-transport-flat-rate`

### Tělo požadavku

`vehicleId` string povinné

ID of the vehicle. Find it with list-vehicles.

`year` integer povinné min 1990 max 2100

`mode` "full" | "reduced" | "none" povinné

`validFrom` string YYYY-MM-DD

Date as YYYY-MM-DD.

`validTo` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Odpověď · 200

`year` integer povinné

`vehicles` object\[\] povinné

`vehicleId` string povinné

`mode` string povinné

`monthlyHaler` integer povinné

`months` object\[\] povinné

`month` integer | null povinné

`days` integer povinné

`amountHaler` integer | null povinné

`amountHaler` integer | null povinné

`totalHaler` integer | null povinné

`reducedCount` integer povinné

`monthlyHaler` integer

`reducedPct` integer

`maxVehicles` integer

```bash
curl -X PUT https://api.damedoklad.cz/v1/transport-flat-rate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "year": 2026,
  "mode": "full"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/transport-flat-rate', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "year": 2026,
    "mode": "full"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.put(
    "https://api.damedoklad.cz/v1/transport-flat-rate",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "year": 2026,
        "mode": "full"
    },
)
data = response.json()
```

## Seznam: zaměstnanec, cesty a vozidla

GET `/v1/travel-employees`

Employees that a business trip can be linked to: id and name only

Nástroj MCP: `list-travel-employees`

### 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` "travel\_employee" povinné

`id` string povinné

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

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

## List business trip orders (cestovní příkazy)

GET `/v1/travel-orders`

List business trip orders (cestovní příkazy)

Nástroj MCP: `list-travel-orders`

### Parametry dotazu

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`status` "draft" | "settled" | "paid"

### Odpověď · 200

`data` object\[\] povinné

`object` "travel\_order" povinné

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

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

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

## Create a domestic or foreign business trip order; add abroad segments and expenses to it

POST `/v1/travel-orders`

Create a domestic or foreign business trip order; add abroad segments and expenses to it

Nástroj MCP: `create-travel-order`

### Tělo požadavku

`travelerName` string max 200 chars

`employeeId` string | null

ID of the employee.

`interruptions` object\[\]

`fromAt` string povinné

`toAt` string povinné

`familyVisits` object\[\]

`fromAt` string povinné

`toAt` string povinné

`fareHaler` integer min 0 max 9007199254740991

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

`limitHaler` integer min 0 max 9007199254740991

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

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`fareCents` integer min 0 max 9007199254740991

`limitCents` integer min 0 max 9007199254740991

`familyVisitAgreed` boolean

`agreedMeals` object

`tier5to12` integer min 0 max 9007199254740991

`tier12to18` integer min 0 max 9007199254740991

`over18` integer min 0 max 9007199254740991

`mealCuts` object

`tier5to12` number min 0 max 70

`tier12to18` number min 0 max 35

`over18` number min 0 max 25

`foreignRatePct` integer | null

`fareEquivalentHaler` integer min 0 max 9007199254740991

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

`travelerKind` "employee" | "owner"

`purpose` string povinné max 200 chars

`destination` string povinné max 200 chars

`startAt` string povinné

`endAt` string povinné

`transport` "public" | "company\_car" | "private\_car" | "equivalent" | "other"

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

`kmMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`trailer` boolean

`documentedFuelPriceHaler` integer min 0 max 9007199254740991

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

`basicRateHaler` integer min 0 max 9007199254740991

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

`pocketMoneyPct` integer min 0 max 40

`freeMeals` object

`exchangeRates` object

`advanceHaler` integer min 0 max 9007199254740991

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

`abroad` object\[\]

`countryCode` string povinné min 2 chars max 20 chars

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` "accommodation" | "transport" | "parking" | "other"

`description` string max 500 chars

`amountCents` integer povinné min 0 max 9007199254740991

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`vatHaler` integer min 0 max 9007199254740991

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

`note` string max 2000 chars

### Odpověď · 201

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/travel-orders \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "purpose": "string",
  "destination": "string",
  "startAt": "2026-10-30T08:00",
  "endAt": "2026-10-30T08:00"
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/travel-orders', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "purpose": "string",
    "destination": "string",
    "startAt": "2026-10-30T08:00",
    "endAt": "2026-10-30T08:00"
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/travel-orders",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "purpose": "string",
        "destination": "string",
        "startAt": "2026-10-30T08:00",
        "endAt": "2026-10-30T08:00"
    },
)
data = response.json()
```

## Get a business trip order with its time abroad and expenses

GET `/v1/travel-orders/{id}`

Get a business trip order with its time abroad and expenses

Nástroj MCP: `get-travel-order`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

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

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

## Edit a business trip order before it is settled

PATCH `/v1/travel-orders/{id}`

Edit a business trip order before it is settled

Nástroj MCP: `update-travel-order`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`travelerName` string max 200 chars

`employeeId` string | null

ID of the employee.

`interruptions` object\[\]

`fromAt` string povinné

`toAt` string povinné

`familyVisits` object\[\]

`fromAt` string povinné

`toAt` string povinné

`fareHaler` integer min 0 max 9007199254740991

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

`limitHaler` integer min 0 max 9007199254740991

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

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`fareCents` integer min 0 max 9007199254740991

`limitCents` integer min 0 max 9007199254740991

`familyVisitAgreed` boolean

`agreedMeals` object

`tier5to12` integer min 0 max 9007199254740991

`tier12to18` integer min 0 max 9007199254740991

`over18` integer min 0 max 9007199254740991

`mealCuts` object

`tier5to12` number min 0 max 70

`tier12to18` number min 0 max 35

`over18` number min 0 max 25

`foreignRatePct` integer | null

`fareEquivalentHaler` integer min 0 max 9007199254740991

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

`travelerKind` "employee" | "owner"

`purpose` string max 200 chars

`destination` string max 200 chars

`startAt` string

`endAt` string

`transport` "public" | "company\_car" | "private\_car" | "equivalent" | "other"

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

`kmMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`trailer` boolean

`documentedFuelPriceHaler` integer min 0 max 9007199254740991

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

`basicRateHaler` integer min 0 max 9007199254740991

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

`pocketMoneyPct` integer min 0 max 40

`freeMeals` object

`exchangeRates` object

`advanceHaler` integer min 0 max 9007199254740991

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

`abroad` object\[\]

`countryCode` string povinné min 2 chars max 20 chars

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` "accommodation" | "transport" | "parking" | "other"

`description` string max 500 chars

`amountCents` integer povinné min 0 max 9007199254740991

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`vatHaler` integer min 0 max 9007199254740991

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

`note` string max 2000 chars

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

```bash
curl -X PATCH https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "travelerName": "Pekárna U Lípy s.r.o.",
  "employeeId": "yee_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "interruptions": [
    {
      "fromAt": "2026-10-30T08:00",
      "toAt": "2026-10-30T08:00"
    }
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "travelerName": "Pekárna U Lípy s.r.o.",
    "employeeId": "yee_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "interruptions": [
      {
        "fromAt": "2026-10-30T08:00",
        "toAt": "2026-10-30T08:00"
      }
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "travelerName": "Pekárna U Lípy s.r.o.",
        "employeeId": "yee_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "interruptions": [
            {
                "fromAt": "2026-10-30T08:00",
                "toAt": "2026-10-30T08:00"
            }
        ]
    },
)
data = response.json()
```

## Delete a business trip order that has not been settled and has no paid advance

DELETE `/v1/travel-orders/{id}`

Delete a business trip order that has not been settled and has no paid advance

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

Nástroj MCP: `delete-travel-order`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

## Pay out the trip advance: MD 335 / D 211xxx or 221xxx, or a non-tax cash book row. Cash comes from a register; a transfer from a bank account, and a later statement line takes it over. A movement can also pay it directly (POST /bank-movements/{id}/match with kind travel\_advance)

POST `/v1/travel-orders/{id}/advance`

Pay out the trip advance: MD 335 / D 211xxx or 221xxx, or a non-tax cash book row. Cash comes from a register; a transfer from a bank account, and a later statement line takes it over. A movement can also pay it directly (POST /bank-movements/{id}/match with kind travel\_advance)

Nástroj MCP: `pay-travel-advance`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`date` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

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

`registerId` string

ID of the register.

`bankAccountId` string

ID of the bank account. Find it with list-bank-accounts.

`amountHaler` integer min 0 max 9007199254740991

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

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

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

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

```python
import os
import requests

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

## Download a business trip order as a PDF: the trip, the settlement by day, expenses, the balance, and signature lines

GET `/v1/travel-orders/{id}/order.pdf`

Download a business trip order as a PDF: the trip, the settlement by day, expenses, the balance, and signature lines

Nástroj MCP: `export-travel-order-pdf`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

Vrací soubor application/pdf.

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/order.pdf', {
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
  },
});
const file = await response.arrayBuffer();
```

```python
import os
import requests

response = requests.get(
    "https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/order.pdf",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
)
content = response.content
```

## Pay the reimbursement (MD 333 / D 221xxx or 211xxx) or take back an overpaid advance (MD 211xxx or 221xxx / D 335), rounded up to whole koruny. Cash comes from a register; a transfer from a bank account, and a later statement line takes it over

POST `/v1/travel-orders/{id}/pay`

Pay the reimbursement (MD 333 / D 221xxx or 211xxx) or take back an overpaid advance (MD 211xxx or 221xxx / D 335), rounded up to whole koruny. Cash comes from a register; a transfer from a bank account, and a later statement line takes it over

Nástroj MCP: `pay-travel-order`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`date` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

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

`registerId` string

ID of the register.

`bankAccountId` string

ID of the bank account. Find it with list-bank-accounts.

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

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

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

```python
import os
import requests

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

## Pay a settled trip through the payroll of a month: the amount joins the wage payment, untaxed, and the order is paid when the run locks

POST `/v1/travel-orders/{id}/payroll`

Pay a settled trip through the payroll of a month: the amount joins the wage payment, untaxed, and the order is paid when the run locks. Needs an employee on the order with a contract in that month. Payroll posts MD 333 / D 331 when the run locks. A draft or reviewed run is recalculated, and a reviewed one returns to draft.

Nástroj MCP: `queue-travel-reimbursement`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`year` integer povinné min 1990 max 2100

`month` integer povinné min 1 max 12

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/payroll \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "year": 2026,
  "month": 1
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/travel-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/payroll",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "year": 2026,
        "month": 1
    },
)
data = response.json()
```

## Take a trip back out of a payroll run that is not locked yet

POST `/v1/travel-orders/{id}/payroll/cancel`

Take a trip back out of a payroll run that is not locked yet

Nástroj MCP: `cancel-travel-reimbursement`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

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

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

## Which ČNB rates a trip needs and for which date (§ 183 odst. 2, § 184 of the Labour Code). Get them from /ledger/exchange-rates/lookup and PATCH them into exchangeRates

GET `/v1/travel-orders/{id}/required-rates`

Which ČNB rates a trip needs and for which date (§ 183 odst. 2, § 184 of the Labour Code). Get them from /ledger/exchange-rates/lookup and PATCH them into exchangeRates

Nástroj MCP: `get-travel-order-required-rates`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`orderId` null | string povinné

`date` string povinné date

`currencies` object\[\] povinné

`currency` null | string povinné

`rate` null | number povinné

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

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

```python
import os
import requests

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

## Settle a business trip: MD 512 + 343 / D 333 and the advance cleared MD 333 / D 335

POST `/v1/travel-orders/{id}/settle`

Settle a business trip: MD 512 + 343 / D 333 and the advance cleared MD 333 / D 335

Nástroj MCP: `settle-travel-order`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`date` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

### Odpověď · 200

`id` string povinné

`number` string povinné

`travelerName` string povinné

`travelerKind` string povinné

`purpose` string povinné

`destination` string povinné

`startAt` string povinné

`endAt` string povinné

`transport` string povinné

`vehicleId` null | string povinné

`kmMilli` integer povinné

`trailer` boolean povinné

`documentedFuelPriceHaler` integer | null povinné

`basicRateHaler` integer | null povinné

`pocketMoneyPct` integer povinné

`freeMeals` object povinné

`exchangeRates` object povinné

`advanceHaler` integer povinné

`advancePaidOn` null | string povinné date

`status` string povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`settledOn` null | string povinné date

`paidOn` null | string povinné date

`note` string | null povinné

`employeeId` null | string povinné

`interruptions` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`familyVisits` object\[\] povinné

`toAt` string povinné

`fromAt` string povinné

`fareHaler` integer

`limitHaler` integer

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitAgreed` boolean povinné

`agreedMeals` object povinné

`tier5to12` integer

`mealCuts` object povinné

`tier12to18` integer

`foreignRatePct` integer | null povinné

`fareEquivalentHaler` integer povinné

`payMethod` null | string povinné

`payrollYear` integer | null povinné

`payrollMonth` integer | null povinné

`settlement` null | object povinné

`days` object\[\] povinné

`date` string povinné date

`tier` null | string povinné

`foreign` null | object povinné

`currency` null | string povinné

`baseAmount` integer povinné

`grossCents` integer povinné

`amountCents` integer povinné

`countryCode` null | string povinné

`countryName` string povinné

`fractionThirds` integer povinné

`reductionCents` integer povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`amountHaler` integer | null povinné

`abroadMinutes` integer povinné

`reductionHaler` integer povinné

`domesticMinutes` integer povinné

`taxableExcessHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`fuelHaler` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`totalHaler` integer povinné

`consumedMilli` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`expenses` object\[\] povinné

`kind` string povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountCents` integer povinné

`amountHaler` integer | null povinné

`description` null | string povinné

`vatHaler` integer | null povinné

`warnings` any\[\] povinné

`totalHaler` integer povinné

`settleHaler` integer povinné

`advanceHaler` integer povinné

`familyVisits` object\[\] povinné

`to` string povinné

`from` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`mileageHaler` integer povinné

`expensesHaler` integer povinné

`roundingHaler` integer povinné

`familyVisitHaler` integer povinné

`foreignMealHaler` integer povinné

`pocketMoneyHaler` integer povinné

`domesticMealHaler` integer povinné

`foreignByCurrency` object povinné

`taxableExcessHaler` integer povinné

`fareEquivalentHaler` integer povinné

`abroad` object\[\]

`countryCode` null | string povinné

`fromAt` string povinné

`toAt` string povinné

`expenses` object\[\]

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

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

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

```python
import os
import requests

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

## Náhled: likvidace, cesty a vozidla

GET `/v1/travel-orders/{id}/settlement-preview`

Compute the settlement of a business trip without posting: stravné by day, mileage, expenses, advance, and the amount to pay

Nástroj MCP: `preview-travel-settlement`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`orderId` null | string povinné

`days` object\[\] povinné

`date` string povinné date

`domesticMinutes` integer povinné

`abroadMinutes` integer povinné

`tier` null | string povinné

`freeMeals` integer povinné

`grossHaler` integer povinné

`reductionHaler` integer povinné

`amountHaler` integer | null povinné

`taxableExcessHaler` integer povinné

`foreign` null | object povinné

`countryCode` null | string povinné

`countryName` string povinné

`currency` null | string povinné

`baseAmount` integer povinné

`fractionThirds` integer povinné

`grossCents` integer povinné

`reductionCents` integer povinné

`amountCents` integer povinné

`domesticMealHaler` integer povinné

`foreignMealHaler` integer povinné

`foreignByCurrency` object povinné

`pocketMoneyHaler` integer povinné

`mileageHaler` integer povinné

`fareEquivalentHaler` integer povinné

`familyVisits` object\[\] povinné

`from` string povinné

`to` string povinné

`fareHaler` integer povinné

`limitHaler` integer povinné

`amountHaler` integer | null povinné

`currency` null | string

`fareCents` integer

`limitCents` integer

`familyVisitHaler` integer povinné

`warnings` any\[\] povinné

`taxableExcessHaler` integer povinné

`expensesHaler` integer povinné

`expenses` object\[\] povinné

`kind` string povinné

`description` null | string povinné

`amountCents` integer povinné

`currency` null | string povinné

`vatHaler` integer | null povinné

`amountHaler` integer | null povinné

`vatHaler` integer | null povinné

`totalHaler` integer | null povinné

`advanceHaler` integer povinné

`settleHaler` integer povinné

`roundingHaler` integer povinné

`mileage` null | object povinné

`kmMilli` integer povinné

`rateHaler` integer povinné

`basicHaler` integer povinné

`fuelPriceHaler` integer povinné

`fuelPriceSource` string povinné

`consumedMilli` integer povinné

`fuelHaler` integer povinné

`totalHaler` integer | null povinné

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

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

```python
import os
import requests

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

## Statutory travel rates of a year: mileage, meal allowance, average fuel prices, and foreign per diems

GET `/v1/travel-rates`

Statutory travel rates of a year: mileage, meal allowance, average fuel prices, and foreign per diems

Nástroj MCP: `get-travel-rates`

### Parametry dotazu

`year` integer min 1990 max 2100

### Odpověď · 200

`year` integer povinné

`citation` string povinné

`mileageHaler` object povinné

`motorcycle` integer povinné

`car` integer povinné

`mealsHaler` object povinné

`tier5to12` integer povinné

`tier12to18` integer povinné

`over18` integer povinné

`mealsMaxHaler` object povinné

`tier5to12` integer povinné

`tier12to18` integer povinné

`over18` integer povinné

`fuelHaler` object\[\] povinné

`from` string povinné date

`ba95` integer povinné

`ba98` integer povinné

`diesel` integer povinné

`electricity` integer povinné

`foreign` object\[\] povinné

`countryCode` null | string povinné

`name` null | string povinné

`currency` null | string povinné

`baseAmount` integer povinné

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

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

```python
import os
import requests

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

## List logbook trips, filterable by vehicle, type, and date

GET `/v1/trips`

List logbook trips, filterable by vehicle, type, and date

Nástroj MCP: `list-trips`

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

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

`tripType` "business" | "private"

### Odpověď · 200

`data` object\[\] povinné

`object` "vehicle\_trip" povinné

`id` string povinné

`vehicleId` string povinné

`routeId` null | string povinné

`date` string povinné date

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

`driver` null | string povinné

`odometerStart` integer | null povinné

`odometerEnd` integer | null povinné

`note` string | null

`continuityIssues` object\[\]

`id` string povinné

`date` string povinné date

`kind` string povinné

`expected` integer povinné

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

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

## Add a logbook trip. Pass routeId to fill it from a recurring route; the odometer continues from the last trip

POST `/v1/trips`

Add a logbook trip. Pass routeId to fill it from a recurring route; the odometer continues from the last trip. The trip is saved even when the odometer does not chain, since unrecorded private driving happens. The response lists any problem in continuityIssues.

Nástroj MCP: `create-trip`

### Tělo požadavku

`vehicleId` string povinné

ID of the vehicle. Find it with list-vehicles.

`routeId` string

ID of the route.

`date` string povinné YYYY-MM-DD

Date as YYYY-MM-DD.

`fromPlace` string max 200 chars

`toPlace` string max 200 chars

`purpose` string max 500 chars

`kmMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`tripType` "business" | "private"

`driver` string max 500 chars

`odometerStart` integer min 0 max 9007199254740991

`odometerEnd` integer min 0 max 9007199254740991

`note` string max 2000 chars

### Odpověď · 201

`id` string povinné

`vehicleId` string povinné

`routeId` null | string povinné

`date` string povinné date

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

`driver` null | string povinné

`odometerStart` integer | null povinné

`odometerEnd` integer | null povinné

`note` string | null

`continuityIssues` object\[\]

`id` string povinné

`date` string povinné date

`kind` string povinné

`expected` integer povinné

`actual` integer povinné

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

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

```python
import os
import requests

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

## Correct a logbook trip

PATCH `/v1/trips/{id}`

Correct a logbook trip

Nástroj MCP: `update-trip`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

`routeId` string

ID of the route.

`date` string YYYY-MM-DD

Date as YYYY-MM-DD.

`fromPlace` string max 200 chars

`toPlace` string max 200 chars

`purpose` string max 500 chars

`kmMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`tripType` "business" | "private"

`driver` string max 500 chars

`odometerStart` integer min 0 max 9007199254740991

`odometerEnd` integer min 0 max 9007199254740991

`note` string max 2000 chars

### Odpověď · 200

`id` string povinné

`vehicleId` string povinné

`routeId` null | string povinné

`date` string povinné date

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

`driver` null | string povinné

`odometerStart` integer | null povinné

`odometerEnd` integer | null povinné

`note` string | null

`continuityIssues` object\[\]

`id` string povinné

`date` string povinné date

`kind` string povinné

`expected` integer povinné

`actual` integer povinné

```bash
curl -X PATCH https://api.damedoklad.cz/v1/trips/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "routeId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "date": "2026-10-30"
}'
```

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

```python
import os
import requests

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

## Delete a logbook trip

DELETE `/v1/trips/{id}`

Delete a logbook trip

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

Nástroj MCP: `delete-trip`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

## Import logbook trips from a CSV or fleet export (date, from, to, km required; purpose, type, driver, odometer, plate optional). dryRun only validates

POST `/v1/trips/import`

Import logbook trips from a CSV or fleet export (date, from, to, km required; purpose, type, driver, odometer, plate optional). dryRun only validates. Columns are found by name in Czech or English. For other headers pass columnMap, such as { "date": "Kdy" }; the answer lists headers and missing when it cannot find them. Without vehicleId the plate column picks the vehicle. A trip already in the logbook (same vehicle, date, route, and km) is skipped.

Nástroj MCP: `import-trips`

### Tělo požadavku

`vehicleId` string

ID of the vehicle. Find it with list-vehicles.

`csv` string max 4000000 chars

`fileBase64` string max 8000000 chars

File content encoded as base64.

`columnMap` object

`dryRun` boolean

### Odpověď · 200

`dryRun` boolean povinné

`imported` integer povinné

`valid` integer povinné

`duplicates` integer povinné

`errors` object\[\] povinné

`line` integer povinné

`message` null | string povinné

`continuityIssues` any\[\] povinné

`headers` array | null povinné

`missing` array | null povinné

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

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

```python
import os
import requests

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

## List VehicleRoutes

GET `/v1/vehicle-routes`

List VehicleRoutes

Nástroj MCP: `list-vehicle-routes`

### 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` "vehicle\_route" povinné

`id` string povinné

`name` string povinné

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

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

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

## Create a VehicleRoute

POST `/v1/vehicle-routes`

Create a VehicleRoute

Nástroj MCP: `create-vehicle-route`

### Tělo požadavku

`name` string povinné max 200 chars

`fromPlace` string povinné max 200 chars

`toPlace` string povinné max 200 chars

`purpose` string max 500 chars

`kmMilli` integer povinné min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`tripType` "business" | "private"

### Odpověď · 201

`id` string povinné

`name` string povinné

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/vehicle-routes', {
  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.",
    "fromPlace": "string",
    "toPlace": "string",
    "kmMilli": 1000
  }),
});
const data = await response.json();
```

```python
import os
import requests

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

## Get a VehicleRoute

GET `/v1/vehicle-routes/{id}`

Get a VehicleRoute

Nástroj MCP: `get-vehicle-route`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`name` string povinné

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

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

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

## Update a VehicleRoute

PATCH `/v1/vehicle-routes/{id}`

Update a VehicleRoute

Nástroj MCP: `update-vehicle-route`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`name` string max 200 chars

`fromPlace` string max 200 chars

`toPlace` string max 200 chars

`purpose` string max 500 chars

`kmMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`tripType` "business" | "private"

### Odpověď · 200

`id` string povinné

`name` string povinné

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

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

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/vehicle-routes/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.",
    "fromPlace": "string",
    "toPlace": "string"
  }),
});
const data = await response.json();
```

```python
import os
import requests

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

## Delete a VehicleRoute

DELETE `/v1/vehicle-routes/{id}`

Delete a VehicleRoute

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

Nástroj MCP: `delete-vehicle-route`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

## Fill the logbook from a recurring route without GPS: one trip for each listed date or weekday in a period, optionally there and back

POST `/v1/vehicle-routes/{id}/trips`

Fill the logbook from a recurring route without GPS: one trip for each listed date or weekday in a period, optionally there and back. Pass dates, or from and to with weekdays (1 Monday to 7 Sunday, default Monday to Friday). Odometer readings chain from the vehicle’s last trip. Dates where this route is already in the logbook are skipped. dryRun only returns the trips.

Nástroj MCP: `generate-trips-from-route`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`vehicleId` string povinné

ID of the vehicle. Find it with list-vehicles.

`dates` string\[\]

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`weekdays` integer\[\]

`skip` string\[\]

`roundTrip` boolean

`driver` string max 500 chars

`dryRun` boolean

### Odpověď · 200

`dryRun` boolean povinné

`created` integer povinné

`skippedDates` string\[\] povinné

`lastOdometer` integer povinné

`trips` object\[\] povinné

`object` "vehicle\_trip" povinné

`id` string povinné

`vehicleId` string povinné

`routeId` null | string povinné

`date` string povinné date

`fromPlace` string povinné

`toPlace` string povinné

`purpose` null | string povinné

`kmMilli` integer povinné

`tripType` string povinné

`driver` null | string povinné

`odometerStart` integer | null povinné

`odometerEnd` integer | null povinné

`note` string | null

`continuityIssues` object\[\]

`id` string povinné

`date` string povinné date

`kind` string povinné

`expected` integer povinné

`actual` integer povinné

```bash
curl -X POST https://api.damedoklad.cz/v1/vehicle-routes/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/trips \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "vehicleId": "tvh_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

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

```python
import os
import requests

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

## Seznam: vozidlo

GET `/v1/vehicles`

List Vehicles

Nástroj MCP: `list-vehicles`

### 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` "vehicle" povinné

`id` string povinné

`registrationPlate` string povinné

`name` string povinné

`kind` string povinné

`category` null | string povinné

`fuel` string povinné

`ownership` string povinné

`odometerStart` integer povinné

`consumptionMilli` integer povinné

`vin` null | string povinné

`firstRegisteredOn` string | null povinné

`grossWeightKg` integer | null povinné

`axles` integer | null povinné

`engineCc` integer | null povinné

`roadTaxRelevant` boolean povinné

`assetId` null | string povinné

`isActive` boolean povinné

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

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

```python
import os
import requests

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

## Vytvoření: vozidlo

POST `/v1/vehicles`

Create a Vehicle

Nástroj MCP: `create-vehicle`

### Tělo požadavku

`registrationPlate` string povinné max 20 chars

`name` string povinné max 200 chars

`kind` "car" | "motorcycle" | "truck" | "bus" | "tractor"

`category` string max 10 chars

`fuel` "ba95" | "ba98" | "diesel" | "electric" | "lpg" | "cng" | "hybrid" | "other" povinné

`ownership` "company" | "private" | "leased"

`odometerStart` integer min 0 max 9007199254740991

`consumptionMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`vin` string max 40 chars

`firstRegisteredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`grossWeightKg` integer min 0 max 9007199254740991

`axles` integer min 0 max 20

`engineCc` integer min 0 max 9007199254740991

`roadTaxRelevant` boolean

`assetId` string

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

`isActive` boolean

`note` string max 2000 chars

### Odpověď · 201

`id` string povinné

`registrationPlate` string povinné

`name` string povinné

`kind` string povinné

`category` null | string povinné

`fuel` string povinné

`ownership` string povinné

`odometerStart` integer povinné

`consumptionMilli` integer povinné

`vin` null | string povinné

`firstRegisteredOn` string | null povinné

`grossWeightKg` integer | null povinné

`axles` integer | null povinné

`engineCc` integer | null povinné

`roadTaxRelevant` boolean povinné

`assetId` null | string povinné

`isActive` boolean povinné

`note` string | null povinné

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

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

```python
import os
import requests

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

## Detail: vozidlo

GET `/v1/vehicles/{id}`

Get a Vehicle

Nástroj MCP: `get-vehicle`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`registrationPlate` string povinné

`name` string povinné

`kind` string povinné

`category` null | string povinné

`fuel` string povinné

`ownership` string povinné

`odometerStart` integer povinné

`consumptionMilli` integer povinné

`vin` null | string povinné

`firstRegisteredOn` string | null povinné

`grossWeightKg` integer | null povinné

`axles` integer | null povinné

`engineCc` integer | null povinné

`roadTaxRelevant` boolean povinné

`assetId` null | string povinné

`isActive` boolean povinné

`note` string | null povinné

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

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

## Úprava: vozidlo

PATCH `/v1/vehicles/{id}`

Update a Vehicle

Nástroj MCP: `update-vehicle`

### Parametry v cestě

`id` string povinné

### Tělo požadavku

`registrationPlate` string max 20 chars

`name` string max 200 chars

`kind` "car" | "motorcycle" | "truck" | "bus" | "tractor"

`category` string max 10 chars

`fuel` "ba95" | "ba98" | "diesel" | "electric" | "lpg" | "cng" | "hybrid" | "other"

`ownership` "company" | "private" | "leased"

`odometerStart` integer min 0 max 9007199254740991

`consumptionMilli` integer min 0 max 9007199254740991

Integer thousandths: 1500 means 1.5.

`vin` string max 40 chars

`firstRegisteredOn` string YYYY-MM-DD

Date as YYYY-MM-DD.

`grossWeightKg` integer min 0 max 9007199254740991

`axles` integer min 0 max 20

`engineCc` integer min 0 max 9007199254740991

`roadTaxRelevant` boolean

`assetId` string

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

`isActive` boolean

`note` string max 2000 chars

### Odpověď · 200

`id` string povinné

`registrationPlate` string povinné

`name` string povinné

`kind` string povinné

`category` null | string povinné

`fuel` string povinné

`ownership` string povinné

`odometerStart` integer povinné

`consumptionMilli` integer povinné

`vin` null | string povinné

`firstRegisteredOn` string | null povinné

`grossWeightKg` integer | null povinné

`axles` integer | null povinné

`engineCc` integer | null povinné

`roadTaxRelevant` boolean povinné

`assetId` null | string povinné

`isActive` boolean povinné

`note` string | null povinné

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

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

```python
import os
import requests

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

## Smazání: vozidlo

DELETE `/v1/vehicles/{id}`

Delete a Vehicle

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

Nástroj MCP: `delete-vehicle`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`id` string povinné

`deleted` boolean povinné

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

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

```python
import os
import requests

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

## Download the logbook of a vehicle as a PDF

GET `/v1/vehicles/{id}/logbook.pdf`

Download the logbook of a vehicle as a PDF

Nástroj MCP: `export-vehicle-logbook-pdf`

### Parametry v cestě

`id` string povinné

### Parametry dotazu

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

### Odpověď · 200

Vrací soubor application/pdf.

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

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

```python
import os
import requests

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

## Check the odometer continuity of a vehicle: gaps, overlaps, and readings that disagree with the km driven

GET `/v1/vehicles/{id}/odometer-check`

Check the odometer continuity of a vehicle: gaps, overlaps, and readings that disagree with the km driven

Nástroj MCP: `check-vehicle-odometer`

### Parametry v cestě

`id` string povinné

### Odpověď · 200

`vehicleId` null | string povinné

`ok` boolean povinné

`lastOdometer` integer povinné

`issues` object\[\] povinné

`id` string povinné

`date` string povinné date

`kind` string povinné

`expected` integer povinné

`actual` integer povinné

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

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

## Monthly logbook summary and fuel reconciliation of a vehicle for a year: km by type, purchased vs expected fuel from the technical certificate

GET `/v1/vehicles/{id}/summary`

Monthly logbook summary and fuel reconciliation of a vehicle for a year: km by type, purchased vs expected fuel from the technical certificate

Nástroj MCP: `get-vehicle-year-summary`

### Parametry v cestě

`id` string povinné

### Parametry dotazu

`year` integer povinné min 1990 max 2100

### Odpověď · 200

`vehicleId` null | string povinné

`consumptionMilli` integer povinné

`year` integer povinné

`months` object\[\] povinné

`month` null | string povinné

`businessKmMilli` integer povinné

`privateKmMilli` integer povinné

`trips` integer povinné

`fuelQuantityMilli` integer povinné

`fuelAmountHaler` integer povinné

`expectedFuelMilli` integer povinné

`differenceMilli` integer povinné

`totals` object povinné

`businessKmMilli` integer povinné

`privateKmMilli` integer povinné

`trips` integer povinné

`fuelQuantityMilli` integer povinné

`fuelAmountHaler` integer povinné

`expectedFuelMilli` integer povinné

`differenceMilli` integer povinné

`actualConsumptionMilli` integer povinné

`businessSharePct` integer povinné

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

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