# Credit notes · DameDoklad API

> Operations in the Credit notes group.

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

# Credit notes

Operations in the Credit notes group.

## List credit notes (dobropisy). \`from\` and \`to\` filter on the issue date

GET `/v1/credit-notes`

List credit notes (dobropisy). \`from\` and \`to\` filter on the issue date

MCP tool: `list-credit-notes`

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

`customFields` object

`vatMode` string

`exchangeRate` integer

`templateId` string | null

`centerId` string | null

`activityId` string | null

`projectId` string | null

`object` "credit\_note" 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

`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

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

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

## Create a draft credit note. Line prices are negative. Prefer create-credit-note-from-invoice when there is an invoice

POST `/v1/credit-notes`

Create a draft credit note. Line prices are negative. Prefer create-credit-note-from-invoice when there is an invoice

MCP tool: `create-credit-note`

### 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/credit-notes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "invoiceId": "inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "issueDate": "2026-10-30",
  "taxPointDate": "2026-10-30",
  "reason": "Vrácené zboží"
}'
```

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

```python
import os
import requests

response = requests.post(
    "https://api.damedoklad.cz/v1/credit-notes",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "invoiceId": "inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
        "issueDate": "2026-10-30",
        "taxPointDate": "2026-10-30",
        "reason": "Vrácené zboží"
    },
)
data = response.json()
```

## Get a credit note with lines, VAT recap, and payments

GET `/v1/credit-notes/{id}`

Get a credit note with lines, VAT recap, and payments

MCP tool: `get-credit-note`

### Path parameters

`id` string required

### Response · 200

`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 https://api.damedoklad.cz/v1/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Change a draft credit note

PATCH `/v1/credit-notes/{id}`

Change a draft credit note

MCP tool: `update-credit-note`

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

`seriesId` string

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

`originalInvoiceNumber` string | null

`reason` string | null

`issueDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`taxPointDate` string YYYY-MM-DD

Date as YYYY-MM-DD.

`khDphDate` string | null

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

`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 · 200

`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 PATCH https://api.damedoklad.cz/v1/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "vatMode": "domestic",
  "exchangeRate": 1,
  "templateId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'
```

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

```python
import os
import requests

response = requests.patch(
    "https://api.damedoklad.cz/v1/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "vatMode": "domestic",
        "exchangeRate": 1,
        "templateId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    },
)
data = response.json()
```

## Create a new draft credit note from an existing one

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

Create a new draft credit note from an existing one

MCP tool: `copy-credit-note`

### Path parameters

`id` string required

### 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/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/copy \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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

## Issue a draft credit note

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

Issue a draft credit note. Legal effect: this assigns the final document number, creates a tax document, and posts to the books. Confirm with the user first.

MCP tool: `issue-credit-note`

### Path parameters

`id` string required

### Request body

`reason` string max 500 chars

Why the credit note is issued, printed on it.

### Response · 200

`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/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/issue \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "string"
}'
```

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

```python
import os
import requests

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

## Record a refund paid against a credit note

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

Record a refund paid against a credit note. Legal effect: posts to the books. Cash goes through a cash document of a register and a transfer through a bank account; with several name registerId or bankAccountId. In another currency than the document, moneyAmountHaler says what moved on the account.

MCP tool: `add-credit-note-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

`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/credit-notes/crn_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/credit-notes/crn_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/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/payments",
    headers={"Authorization": f"Bearer {os.environ['DAMEDOKLAD_API_KEY']}"},
    json={
        "amountHaler": 1210000,
        "paidOn": "2026-10-30"
    },
)
data = response.json()
```

## Download the credit note as a PDF

GET `/v1/credit-notes/{id}/pdf`

Download the credit note as a PDF

MCP tool: `get-credit-note-pdf`

### Path parameters

`id` string required

### Response · 200

Returns a application/pdf file.

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

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

## Cancel an issued credit note with a reversing document

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

Cancel an issued credit note with a reversing document. Legal effect: reverses the tax document and the bookings. Confirm with the user first.

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

MCP tool: `storno-credit-note`

### Path parameters

`id` string required

### Response · 200

`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/credit-notes/crn_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/storno \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"
```

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