# Issued invoices · DameDoklad API

> Operations in the Issued invoices group.

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

# Issued invoices

Operations in the Issued invoices group.

## List issued invoices (faktury vydané). \`from\` and \`to\` filter on the issue date; \`unpaid=true\` keeps those with an open balance

GET `/v1/invoices`

List issued invoices (faktury vydané). \`from\` and \`to\` filter on the issue date; \`unpaid=true\` keeps those with an open balance

MCP tool: `list-invoices`

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

`from` string YYYY-MM-DD

Date as YYYY-MM-DD.

`to` string YYYY-MM-DD

Date as YYYY-MM-DD.

`status` string

Document status, for example draft, issued, partially\_paid, paid, storno.

`contactId` string

Only documents of this contact.

`dueFrom` string

Due on or after this date, YYYY-MM-DD.

`dueTo` string

Due on or before this date, YYYY-MM-DD.

`q` string max 200 chars

Older name for \`search\`.

`unpaid` "true" | "false"

\`true\`: only documents with an open balance.

`customFieldKey` string

Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.

`customFieldValue` string max 2000 chars

### Response · 200

`data` object\[\] required

`object` "invoice" required

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

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

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

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

## Create an invoice, as a draft unless \`issue\` is true

POST `/v1/invoices`

Create an invoice, as a draft unless \`issue\` is true. Pass contactId from list-contacts, or contactName for a one-off customer. Prices are per unit before VAT, in haléře. Legal effect: with \`issue: true\` this assigns the final document number, creates a tax document, and posts to the books. Confirm with the user first.

MCP tool: `create-invoice`

### Request body

`carrierId` string | null

ID of the carrier. Find it with list-carriers.

`vatMode` "domestic" | "reverse\_charge" | "eu\_goods" | "eu\_services" | "third\_country\_goods" | "third\_country\_services" | "oss" | "eu\_triangular" | "eu\_new\_vehicle" | "goods\_installation\_networks" | "eu\_registration" | "eu\_sme" | "group\_internal" | "margin\_used\_goods" | "margin\_art" | "margin\_collectibles" | "margin\_travel" | "exempt" | "none"

`exchangeRate` number

`templateId` string | null

ID of the template.

`centerId` string | null

ID of the center.

`activityId` string | null

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

`projectId` string | null

ID of the project.

`contactId` string

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

`contactName` string max 160 chars

`contactIco` string max 16 chars

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

`contactDic` string max 16 chars

VAT number (DIČ), for example CZ12345678.

`seriesId` string

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

`issueDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`taxPointDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`dueDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`paymentMethod` "transfer" | "cash" | "proforma" | "card" | "cod"

`language` "cs" | "en" | "sk" | "de" | "fr" | "pl"

`notePublic` string | null

`noteInternal` string | null

`constantSymbol` string | null

`ourAccountNumber` string | null

`ourBankCode` string | null

`ourIban` string | null

IBAN without spaces.

`issue` boolean

`overrideDeliveryNotes` boolean

`deliveryNoteIds` string\[\]

`overrideCreditLimit` boolean

`proformaIds` string\[\]

`clientDocumentId` string min 8 chars max 64 chars

ID of the client document.

`offline` object

`soldAt` string required date-time

`number` string required max 40 chars

`listPrices` object\[\]

`itemId` string required

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

`priceHaler` integer required min -9007199254740991 max 9007199254740991

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

`quantity` number required

`lines` object\[\] required

`purchaseHaler` integer min 0 max 9007199254740991

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

`exemptPercent` number min 0 max 100

`purchaseLineId` string | null

ID of the purchase line.

`description` string max 240 chars

`quantity` number required

`unit` string max 16 chars

`unitPriceHaler` integer min -9007199254740991 max 9007199254740991

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

`vatRate` number min 0 max 30

`itemId` string

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

`warehouseId` string

ID of the warehouse. Find it with list-warehouses.

`lots` object\[\]

`itemId` string

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

`lotId` string

ID of the lot.

`code` string max 64 chars

`quantity` number

`expiryDate` string | null

Date as YYYY-MM-DD.

`serialNumbers` string\[\]

`orderLineId` string

ID of the order line.

`recyclingFeeId` string | null

A fee from the list. null means no fee on this line, whatever the item says

`recyclingPerUnitHaler` integer min 0 max 9007199254740991

The amount per fee unit: with recyclingFeeId it replaces the rate of the fee on this line, without it the line carries a typed fee

`recyclingText` string max 120 chars

`recyclingUnit` "ks" | "kg"

The unit of a typed fee

`recyclingCoefficient` number min 0 max 1000000

How many times the fee applies to one unit of the line

`accountNumber` string | null

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

`roundingMode` "auto" | "crown" | "none"

### Response · 201

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

```bash
curl -X POST https://api.damedoklad.cz/v1/invoices \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "issueDate": "2026-10-30",
  "taxPointDate": "2026-10-30",
  "lines": [
    {
      "quantity": 1
    }
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/invoices', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "issueDate": "2026-10-30",
    "taxPointDate": "2026-10-30",
    "lines": [
      {
        "quantity": 1
      }
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/invoices",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "issueDate": "2026-10-30",
        "taxPointDate": "2026-10-30",
        "lines": [
            {
                "quantity": 1
            }
        ]
    },
)
data = response.json()
```

## Get an invoice with lines, VAT recap, payments, and the amount still owed

GET `/v1/invoices/{id}`

Get an invoice with lines, VAT recap, payments, and the amount still owed

MCP tool: `get-invoice`

### Path parameters

`id` string required

### Response · 200

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

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

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

## Change a draft invoice. An issued invoice cannot be changed: storno it or create a credit note

PATCH `/v1/invoices/{id}`

Change a draft invoice. An issued invoice cannot be changed: storno it or create a credit note

MCP tool: `update-invoice`

### Path parameters

`id` string required

### Request body

`carrierId` string | null

ID of the carrier. Find it with list-carriers.

`vatMode` "domestic" | "reverse\_charge" | "eu\_goods" | "eu\_services" | "third\_country\_goods" | "third\_country\_services" | "oss" | "eu\_triangular" | "eu\_new\_vehicle" | "goods\_installation\_networks" | "eu\_registration" | "eu\_sme" | "group\_internal" | "margin\_used\_goods" | "margin\_art" | "margin\_collectibles" | "margin\_travel" | "exempt" | "none"

`exchangeRate` number

`templateId` string | null

ID of the template.

`centerId` string | null

ID of the center.

`activityId` string | null

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

`projectId` string | null

ID of the project.

`contactId` string

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

`seriesId` string

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

`issueDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`taxPointDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`dueDate` string | null

Date as YYYY-MM-DD.

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`paymentMethod` "transfer" | "cash" | "proforma" | "card" | "cod"

`language` "cs" | "en" | "sk" | "de" | "fr" | "pl"

`notePublic` string | null

`noteInternal` string | null

`constantSymbol` string | null

`ourAccountNumber` string | null

`ourBankCode` string | null

`ourIban` string | null

IBAN without spaces.

`lines` object\[\]

`purchaseHaler` integer min 0 max 9007199254740991

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

`exemptPercent` number min 0 max 100

`purchaseLineId` string | null

ID of the purchase line.

`description` string max 240 chars

`quantity` number required

`unit` string max 16 chars

`unitPriceHaler` integer min -9007199254740991 max 9007199254740991

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

`vatRate` number min 0 max 30

`itemId` string

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

`warehouseId` string

ID of the warehouse. Find it with list-warehouses.

`lots` object\[\]

`itemId` string

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

`lotId` string

ID of the lot.

`code` string max 64 chars

`quantity` number

`expiryDate` string | null

Date as YYYY-MM-DD.

`serialNumbers` string\[\]

`orderLineId` string

ID of the order line.

`recyclingFeeId` string | null

A fee from the list. null means no fee on this line, whatever the item says

`recyclingPerUnitHaler` integer min 0 max 9007199254740991

The amount per fee unit: with recyclingFeeId it replaces the rate of the fee on this line, without it the line carries a typed fee

`recyclingText` string max 120 chars

`recyclingUnit` "ks" | "kg"

The unit of a typed fee

`recyclingCoefficient` number min 0 max 1000000

How many times the fee applies to one unit of the line

`accountNumber` string | null

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

`roundingMode` "auto" | "crown" | "none"

### Response · 200

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

```bash
curl -X PATCH https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "vatMode": "domestic",
  "exchangeRate": 1
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL', {
  method: 'PATCH',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "vatMode": "domestic",
    "exchangeRate": 1
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "vatMode": "domestic",
        "exchangeRate": 1
    },
)
data = response.json()
```

## Create a new draft invoice from an existing one

POST `/v1/invoices/{id}/copy`

Create a new draft invoice from an existing one

MCP tool: `copy-invoice`

### Path parameters

`id` string required

### Response · 201

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

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

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

## Create a draft credit note (dobropis) for an issued invoice. Line prices are negative

POST `/v1/invoices/{id}/credit-notes`

Create a draft credit note (dobropis) for an issued invoice. Line prices are negative

MCP tool: `create-credit-note-from-invoice`

### Path parameters

`id` string required

### Request body

`vatMode` "domestic" | "reverse\_charge" | "eu\_goods" | "eu\_services" | "third\_country\_goods" | "third\_country\_services" | "oss" | "eu\_triangular" | "eu\_new\_vehicle" | "goods\_installation\_networks" | "eu\_registration" | "eu\_sme" | "group\_internal" | "margin\_used\_goods" | "margin\_art" | "margin\_collectibles" | "margin\_travel" | "exempt" | "none"

`exchangeRate` number

`templateId` string | null

ID of the template.

`centerId` string | null

ID of the center.

`activityId` string | null

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

`projectId` string | null

ID of the project.

`contactId` string

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

`contactName` string max 160 chars

`contactIco` string max 16 chars

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

`contactDic` string max 16 chars

VAT number (DIČ), for example CZ12345678.

`seriesId` string

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

`invoiceId` string

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

`originalInvoiceNumber` string | null

`reason` string max 500 chars

`issueDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`taxPointDate` string required YYYY-MM-DD

Date as YYYY-MM-DD.

`khDphDate` string | null

Date as YYYY-MM-DD.

`dueDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`currency` string 3 chars

ISO 4217 currency code, for example CZK or EUR.

`paymentMethod` "transfer" | "cash" | "proforma" | "card" | "cod"

`language` "cs" | "en" | "sk" | "de" | "fr" | "pl"

`notePublic` string | null

`noteInternal` string | null

`issue` boolean

`lines` object\[\]

`purchaseHaler` integer min 0 max 9007199254740991

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

`exemptPercent` number min 0 max 100

`purchaseLineId` string | null

ID of the purchase line.

`description` string required max 240 chars

`quantity` number required

`unit` string max 16 chars

`unitPriceHaler` integer required min -9007199254740991 max 9007199254740991

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

`vatRate` number required min 0 max 30

`itemId` string

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

`warehouseId` string

ID of the warehouse. Find it with list-warehouses.

`lots` object\[\]

`itemId` string

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

`lotId` string

ID of the lot.

`code` string max 64 chars

`quantity` number

`expiryDate` string | null

Date as YYYY-MM-DD.

`serialNumbers` string\[\]

`orderLineId` string

ID of the order line.

`recyclingFeeId` string | null

A fee from the list. null means no fee on this line, whatever the item says

`recyclingPerUnitHaler` integer min 0 max 9007199254740991

The amount per fee unit: with recyclingFeeId it replaces the rate of the fee on this line, without it the line carries a typed fee

`recyclingText` string max 120 chars

`recyclingUnit` "ks" | "kg"

The unit of a typed fee

`recyclingCoefficient` number min 0 max 1000000

How many times the fee applies to one unit of the line

`accountNumber` string | null

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

`roundingMode` "auto" | "crown" | "none"

### Response · 201

`customFields` object

`vatMode` string

`exchangeRate` integer

`templateId` string | null

`centerId` string | null

`activityId` string | null

`projectId` string | null

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`originalInvoiceNumber` null | string required

`seriesId` null | string

`reason` null | string

`taxPointDate` string date

`khDphDate` null | string date

`currency` string

`paymentMethod` string

`language` string

`notePublic` string | null

`noteInternal` null | string

`netHaler` integer

`vatHaler` integer

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` string | null

`shipToCity` string | null

`shipToPostalCode` string | null

`shipToCountry` string | null

`contactEmail` null | string

`lines` object\[\]

`object` "credit\_note\_line" required

`id` string required

`description` string required

`quantity` integer required

`unit` string required

`unitPriceHaler` integer required

`vatRate` integer required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` string | null required

`lineKind` string required

`sourceId` string | null required

`itemId` null | string required

`warehouseId` null | string required

`lots` any\[\] required

`orderLineId` string | null required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`payments` object\[\]

`object` "credit\_note\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` any\[\]

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`bankMovement` object

`id` string required

`bankAccountId` string required

```bash
curl -X POST https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/credit-notes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "issueDate": "2026-10-30",
  "taxPointDate": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/credit-notes",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "issueDate": "2026-10-30",
        "taxPointDate": "2026-10-30"
    },
)
data = response.json()
```

## Issue a draft invoice

POST `/v1/invoices/{id}/issue`

Issue a draft invoice. Legal effect: this assigns the final document number, creates a tax document, and posts to the books. Confirm with the user first. Refused with uninvoiced\_delivery\_note when a line would move stock while the customer has issued, not yet invoiced delivery notes for the item: name them in deliveryNoteIds to bill them, or set overrideDeliveryNotes if this is a further sale.

MCP tool: `issue-invoice`

### Path parameters

`id` string required

### Request body

`overrideReservations` boolean

`overrideDeliveryNotes` boolean

`deliveryNoteIds` string\[\]

`overrideCreditLimit` boolean

Issue although the customer goes over Kredit max. Owner or accountant only, after the user has seen the warning.

### Response · 200

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

```bash
curl -X POST https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/issue \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "overrideReservations": false,
  "overrideDeliveryNotes": false,
  "deliveryNoteIds": [
    "dln_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'
```

```javascript
const response = await fetch('https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/issue', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DAMEDOKLAD_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "overrideReservations": false,
    "overrideDeliveryNotes": false,
    "deliveryNoteIds": [
      "dln_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    ]
  }),
});
const data = await response.json();
```

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/issue",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "overrideReservations": False,
        "overrideDeliveryNotes": False,
        "deliveryNoteIds": [
            "dln_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
        ]
    },
)
data = response.json()
```

## List the payments of an invoice

GET `/v1/invoices/{id}/payments`

List the payments of an invoice

MCP tool: `list-invoice-payments`

### Path parameters

`id` string required

### Query parameters

`limit` integer min 1 max 500

`offset` integer min 0 max 9007199254740991

`search` string max 200 chars

### Response · 200

`data` object\[\] required

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`total` integer

Rows that match, on all pages.

`hasMore` boolean required

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

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

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

## Record a payment of an invoice. Cash goes through a cash document of a register, a transfer through a bank account, and a later statement line takes it over

POST `/v1/invoices/{id}/payments`

Record a payment of an invoice. Cash goes through a cash document of a register, a transfer through a bank account, and a later statement line takes it over. Legal effect: posts to the books. With several registers or accounts name registerId or bankAccountId. In another currency than the document, moneyAmountHaler says what moved on the account.

MCP tool: `add-invoice-payment`

### Path parameters

`id` string required

### Request body

`amountHaler` integer required max 9007199254740991

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

`paidOn` string required YYYY-MM-DD

Date as YYYY-MM-DD.

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

`inPerson` boolean

`note` string | null

`registerId` string

ID of the register.

`bankAccountId` string

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

`moneyAmountHaler` integer max 9007199254740991

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

`allowNegative` boolean

`eetPrepaidLoadHaler` integer min 0 max 9007199254740991

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

`eetPrepaidUseHaler` integer min 0 max 9007199254740991

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

`eetVoucherId` string

ID of the eet voucher. Find it with list-eet-vouchers.

`eetMandateId` string

ID of the eet mandate. Find it with list-eet-mandates.

`eetOwnSale` boolean

`paidAt` string date-time

### Response · 201

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

```bash
curl -X POST https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/payments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "amountHaler": 1210000,
  "paidOn": "2026-10-30"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/invoices/inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/payments",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "amountHaler": 1210000,
        "paidOn": "2026-10-30"
    },
)
data = response.json()
```

## Remove a payment from an invoice and reverse its posting

DELETE `/v1/invoices/{id}/payments/{paymentId}`

Remove a payment from an invoice and reverse its posting

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

MCP tool: `delete-invoice-payment`

### Path parameters

`id` string required

`paymentId` string required

ID of the payment.

### Response · 200

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

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

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

## Download the invoice as a PDF

GET `/v1/invoices/{id}/pdf`

Download the invoice as a PDF

MCP tool: `get-invoice-pdf`

### Path parameters

`id` string required

### Response · 200

Returns a application/pdf file.

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

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

```python
import os
import requests

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

## Cancel an issued invoice with a reversing document

POST `/v1/invoices/{id}/storno`

Cancel an issued invoice with a reversing document. Legal effect: reverses the tax document and the bookings. Fails when the invoice has payments or its period is closed. Confirm with the user first.

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

MCP tool: `storno-invoice`

### Path parameters

`id` string required

### Response · 200

`id` string required

`number` null | string required

`variableSymbol` null | string required

`contactId` null | string required

`contactName` null | string required

`issueDate` string required date

`dueDate` null | string required date

`currency` string required

`totalHaler` integer required

`paidHaler` integer required

`status` string required

`overdue` boolean required

`fileId` null | string required

`customFields` object

`zakazka_zakaznika` string

`pocet` integer

`kampan` string

`vatMode` string

`exchangeRate` number

`templateId` null | string

`centerId` null | string

`activityId` null | string

`projectId` null | string

`seriesId` null | string

`constantSymbol` null | string

`taxPointDate` string date

`paymentMethod` string

`language` string

`notePublic` null | string

`noteInternal` null | string

`ourAccountNumber` null | string

`ourBankCode` null | string

`ourIban` null | string

`sellerName` null | string

`sellerIco` null | string

`sellerDic` null | string

`reminderOnDue` boolean

`reminderWeekAfter` boolean

`reminder14DaysAfter` boolean

`reminderMonthAfter` boolean

`netHaler` integer

`vatHaler` integer

`roundingHaler` integer

`recurringId` null | string

`stornoOfId` null | string

`contactIco` null | string

`contactDic` null | string

`contactVatPayerType` null | string

`billToStreet` null | string

`billToCity` null | string

`billToPostalCode` null | string

`billToCountry` null | string

`shipToName` string | null

`shipToStreet` null | string

`shipToCity` null | string

`shipToPostalCode` null | string

`shipToCountry` null | string

`contactEmail` null | string

`lines` object\[\]

`object` "invoice\_line" required

`id` string required

`description` string required

`quantity` number required

`unit` string required

`unitPriceHaler` integer required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`totalHaler` integer required

`accountNumber` null | string required

`lineKind` string required

`sourceId` null | string required

`itemId` null | string required

`warehouseId` null | string required

`lots` object\[\] required

`itemId` null | string

`lotId` string | null required

`code` null | string required

`quantity` integer required

`expiryDate` string | null required

`orderLineId` null | string required

`recycling` null | object

`text` string required

`unit` string required

`feeId` null | string required

`rateHaler` integer required

`totalHaler` integer required

`weightMilli` integer

`perUnitHaler` integer required

`coefficientMilli` integer required

`typed` boolean

`vatLines` object\[\]

`object` "invoice\_vat\_line" required

`id` string required

`vatRate` number required

`netHaler` integer required

`vatHaler` integer required

`payments` object\[\]

`object` "invoice\_payment" required

`id` string required

`amountHaler` integer required

`paidOn` string required date

`method` string required

`note` null | string required

`links` object\[\]

`object` "document\_link" required

`id` string required

`fromKind` string required

`fromId` string required

`toKind` string required

`toId` string required

`kind` string required

`amountHaler` integer | null

`posting` object

`regime` string required

`event` string required

`journalLines` object\[\]

`account` null | string required

`side` string required

`amountHaler` integer | null required

`documentId` null | string required

`balanced` boolean

`cashJournal` object\[\]

`account` null | string required

`amountHaler` integer | null required

`documentId` null | string required

`receivablesBook` object\[\]

`documentId` null | string required

`amountHaler` integer | null required

`status` string required

`payablesBook` any\[\]

`asset` any\[\]

`retentions` object\[\]

`id` string required

`amountHaler` integer | null required

`dueDate` null | string required date

`note` string | null required

`longTerm` boolean required

`carrierId` null | string

`creditWarning` object

`level` string required

`exposureHaler` integer required

`afterHaler` integer required

`warnHaler` integer | null required

`blockHaler` integer required

`availableHaler` integer required

`original` any

`bankMovement` object

`id` string required

`bankAccountId` string required

`cashDocument` object

`id` string required

`number` null | string required

`warnings` any\[\] required

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

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