Skip to content

Operations in the Agendas group.

Base URLhttps://api.damedoklad.cz/v1AuthenticationErrors and limitsConventions

List batches of evidence náhradního plnění

GET/v1/agendas/enp/batches

List batches of evidence náhradního plnění

MCP tool: list-enp-batches

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"enp_batch"required
idstringrequired
namenull | stringrequired
exportedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
lineCountintegerrequired
totalHalerinteger | nullrequired
linesobject[]required
documentTypenull | stringrequired
documentIdnull | stringrequired
documentNumbernull | stringrequired
amountHalerinteger | nullrequired
deliveredOnnull | stringrequireddate
paidOnnull | stringrequireddate
customerIconull | stringrequired
customerBirthNumberstring | nullrequired
customerEmailnull | stringrequired
deadlinestringrequireddate
problemsstring[]required
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/agendas/enp/batches
curl https://api.damedoklad.cz/v1/agendas/enp/batches \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Save paid documents as a batch. Each keeps the data as it is now: a later change to the document does not reach the batch. A delivery outside the recorded basis (§ 78) stops it

POST/v1/agendas/enp/batches

Save paid documents as a batch. Each keeps the data as it is now: a later change to the document does not reach the batch. A delivery outside the recorded basis (§ 78) stops it

MCP tool: create-enp-batch

Request body

namestringrequiredmax 120 chars
documentsobject[]required
documentType"invoice" | "pos_receipt" | "other_receivable" | "cash_receipt" | "proforma"required
documentIdstringrequired
ID of the document.
amountHalerintegermax 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
deliveredOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
overrideRecognitionboolean

Response · 201

idstringrequired
namenull | stringrequired
exportedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
lineCountintegerrequired
totalHalerinteger | nullrequired
linesobject[]required
documentTypenull | stringrequired
documentIdnull | stringrequired
documentNumbernull | stringrequired
amountHalerinteger | nullrequired
deliveredOnnull | stringrequireddate
paidOnnull | stringrequireddate
customerIconull | stringrequired
customerBirthNumberstring | nullrequired
customerEmailnull | stringrequired
deadlinestringrequireddate
problemsstring[]required
POST/v1/agendas/enp/batches
curl -X POST https://api.damedoklad.cz/v1/agendas/enp/batches \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "documents": [
    {
      "documentType": "invoice",
      "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    }
  ]
}'

Delete a batch not yet exported, so its invoices are offered again

DELETE/v1/agendas/enp/batches/{id}

Delete a batch not yet exported, so its invoices are offered again

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

MCP tool: delete-enp-batch

Path parameters

idstringrequired

Response · 200

idstringrequired
namenull | stringrequired
exportedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
lineCountintegerrequired
totalHalerinteger | nullrequired
linesobject[]required
documentTypenull | stringrequired
documentIdnull | stringrequired
documentNumbernull | stringrequired
amountHalerinteger | nullrequired
deliveredOnnull | stringrequireddate
paidOnnull | stringrequireddate
customerIconull | stringrequired
customerBirthNumberstring | nullrequired
customerEmailnull | stringrequired
deadlinestringrequireddate
problemsstring[]required
DELETE/v1/agendas/enp/batches/{id}
curl -X DELETE https://api.damedoklad.cz/v1/agendas/enp/batches/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download the CSV for the Ministry’s bulk import: CP 1250, semicolons, its own header. Refused while a line would be rejected

GET/v1/agendas/enp/batches/{id}/csv

Download the CSV for the Ministry’s bulk import: CP 1250, semicolons, its own header. Refused while a line would be rejected

MCP tool: export-enp-batch

Path parameters

idstringrequired

Response · 200

Returns a text/csv; charset=windows-1250 file.

GET/v1/agendas/enp/batches/{id}/csv
curl https://api.damedoklad.cz/v1/agendas/enp/batches/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/csv \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Paid invoices, till receipts, cash receipts and advances not yet in a náhradní plnění batch, with the amount without VAT and the 30-day deadline

GET/v1/agendas/enp/documents

Paid invoices, till receipts, cash receipts and advances not yet in a náhradní plnění batch, with the amount without VAT and the 30-day deadline

MCP tool: list-enp-documents

Query parameters

fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
documentTypenull | stringrequired
documentIdnull | stringrequired
documentNumbernull | stringrequired
amountHalerinteger | nullrequired
deliveredOnnull | stringrequireddate
paidOnnull | stringrequireddate
customerIconull | stringrequired
customerBirthNumberstring | nullrequired
customerEmailnull | stringrequired
deadlinestringrequireddate
problemsstring[]required
contactNamenull | stringrequired
overduebooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/agendas/enp/documents
curl https://api.damedoklad.cz/v1/agendas/enp/documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

On what basis the company supplies náhradní plnění (§ 81 odst. 2 písm. b), § 78 zákona o zaměstnanosti), and until when

GET/v1/agendas/enp/recognition

On what basis the company supplies náhradní plnění (§ 81 odst. 2 písm. b), § 78 zákona o zaměstnanosti), and until when

MCP tool: get-enp-recognition

Response · 200

recordedbooleanrequired
validTodaybooleanrequired
basisnull | stringrequired
referencenull | stringrequired
officeanyrequired
Null in every recorded response.
validFromnull | stringrequireddate
validTonull | stringrequireddate
GET/v1/agendas/enp/recognition
curl https://api.damedoklad.cz/v1/agendas/enp/recognition \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Record the agreement with the Labour Office, or that the company is a self-employed person with a disability or an integrating social enterprise. A batch then checks each delivery against it

PUT/v1/agendas/enp/recognition

Record the agreement with the Labour Office, or that the company is a self-employed person with a disability or an integrating social enterprise. A batch then checks each delivery against it. The Ministry offers no interface to ask whether a company is recognised, so this is what the company states: nothing here reaches or confirms anything at the Labour Office.

MCP tool: set-enp-recognition

Request body

basis"agreement_78" | "self_employed_disabled" | "integration_enterprise"required
referencestring | null
officestring | null
validFromstringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.

Response · 200

recordedbooleanrequired
validTodaybooleanrequired
basisnull | stringrequired
referencenull | stringrequired
officeanyrequired
Null in every recorded response.
validFromnull | stringrequireddate
validTonull | stringrequireddate
PUT/v1/agendas/enp/recognition
curl -X PUT https://api.damedoklad.cz/v1/agendas/enp/recognition \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "basis": "agreement_78",
  "validFrom": "2026-10-30"
}'

Give many contacts the same reason for processing at once

POST/v1/bulk/contact-processing-reason

Give many contacts the same reason for processing at once

MCP tool: bulk-add-contact-processing-reason

Request body

idsstring[]required
legalBasis"consent" | "contract" | "legal_obligation" | "vital_interest" | "public_task" | "legitimate_interest"
purposestringmax 200 chars
validFromstringYYYY-MM-DD
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
notestring | null
reasonIdstring
A reason from the company list (GET /gdpr/reasons). It fills legal basis, purpose, and the end date from its length. Without it, name legalBasis and purpose.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/contact-processing-reason
curl -X POST https://api.damedoklad.cz/v1/bulk/contact-processing-reason \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Change a field on many contacts at once, or add them to a group or take them out. Documents already issued keep the details they were issued with

POST/v1/bulk/edit-contacts

Change a field on many contacts at once, or add them to a group or take them out. Documents already issued keep the details they were issued with

MCP tool: bulk-edit-contacts

Request body

idsstring[]required
changesobjectrequired
roles"customer" | "supplier" | "both"
usualDueDaysinteger | null
preferredPaymentMethod"transfer" | "cash" | "card" | "cod" | "proforma" | null
invoiceLanguage"cs" | "en" | "sk" | "de" | "fr" | "pl" | null
defaultCurrencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
creditWarnHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
creditBlockHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
addGroupIdstring
ID of the add group.
removeGroupIdstring
ID of the remove group.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/edit-contacts
curl -X POST https://api.damedoklad.cz/v1/bulk/edit-contacts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "changes": {
    "roles": "customer",
    "usualDueDays": 0,
    "preferredPaymentMethod": "transfer"
  }
}'

Change a field on many documents at once (POHODA Upravit vše). A draft takes all of them; past draft only the due date and notes, and anything else fails for that document

POST/v1/bulk/edit-documents

Change a field on many documents at once (POHODA Upravit vše). A draft takes all of them; past draft only the due date and notes, and anything else fails for that document. Each document goes through its own update, with its own rules. Amounts, dates, and the partner are not offered: a document already issued keeps what it said.

MCP tool: bulk-edit-documents

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required
changesobjectrequired
dueDatestring | null
Date as YYYY-MM-DD.
notePublicstring | null
noteInternalstring | null
language"cs" | "en" | "sk" | "de" | "fr" | "pl"
paymentMethod"transfer" | "cash" | "card" | "cod" | "proforma"
centerIdstring | null
ID of the center.
activityIdstring | null
ID of the activity. Find it with list-activity.
projectIdstring | null
ID of the project.
templateIdstring | null
ID of the template.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/edit-documents
curl -X POST https://api.damedoklad.cz/v1/bulk/edit-documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "changes": {
    "dueDate": "2026-10-30",
    "notePublic": "string",
    "noteInternal": "string"
  }
}'

E-mail many issued documents to their customers, each with its PDF. Uses each contact e-mail and the document type template

POST/v1/bulk/email

E-mail many issued documents to their customers, each with its PDF. Uses each contact e-mail and the document type template

MCP tool: bulk-email-documents

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required
subjectstringmax 300 chars
bodystringmax 10000 chars

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/email
curl -X POST https://api.damedoklad.cz/v1/bulk/email \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Export the selected documents as a table: format=xlsx or csv

POST/v1/bulk/export

Export the selected documents as a table: format=xlsx or csv

MCP tool: bulk-export-documents

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required
format"csv" | "xlsx"

Response · 200

Returns a application/octet-stream file.

POST/v1/bulk/export
curl -X POST https://api.damedoklad.cz/v1/bulk/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}' \
  -o soubor

Hromadná fakturace: create one invoice, proforma, quote, or order per contact from the same lines or a sample document. Drafts unless issue=true; each answers on its own

POST/v1/bulk/invoice-contacts

Hromadná fakturace: create one invoice, proforma, quote, or order per contact from the same lines or a sample document. Drafts unless issue=true; each answers on its own. At most 200 at once here: createBulkJob runs more through the queue. Each document takes its address, due days, and language from its contact, and goes through the same rules as one made by hand, including the credit limit when issued.

MCP tool: bulk-invoice-contacts

Request body

contactIdsstring[]
groupIdstring
ID of the group.
kind"invoice" | "proforma" | "quote" | "order_received" | "order_issued"
Issued invoice (default), proforma, quote, received order or issued order.
sampleIdstring
A draft or issued document to copy lines and terms from, as in POHODA. Its own contact is ignored.
linesobject[]
descriptionstringrequiredmax 200 chars
quantitynumberrequired
unitstringmax 16 chars
unitPriceHalerintegerrequiredmin -9007199254740991max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
vatRatenumbermin 0max 30
issueDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
taxPointDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
dueDaysintegermin 0max 2000
Left out: each contact's own usual due days.
seriesIdstring
ID of the series. Find it with list-series.
notePublicstring | null
issueboolean
Issue each one at once. Default: leave them as drafts to check first.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/invoice-contacts
curl -X POST https://api.damedoklad.cz/v1/bulk/invoice-contacts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactIds": [
    "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "groupId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "kind": "invoice"
}'

Issue many draft documents at once. Each one is numbered and posted on its own; the answer lists successes and failures

POST/v1/bulk/issue

Issue many draft documents at once. Each one is numbered and posted on its own; the answer lists successes and failures. A document over Kredit max fails with credit_limit_exceeded while the rest go on. An owner or accountant may then send those ids again with overrideCreditLimit.

MCP tool: bulk-issue-documents

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required
overrideCreditLimitboolean
Issue although the customer goes over Kredit max. Owner or accountant only, after the user has seen which documents failed for it.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/issue
curl -X POST https://api.damedoklad.cz/v1/bulk/issue \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

List bulk jobs running in the background and how they ended, newest first

GET/v1/bulk/jobs

List bulk jobs running in the background and how they ended, newest first

MCP tool: list-bulk-jobs

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
status"queued" | "running" | "done" | "failed"

Response · 200

dataobject[]required
object"bulk_job"required
idstringrequired
operationstringrequired
statusstringrequired
totalintegerrequired
processedintegerrequired
succeededintegerrequired
failedintegerrequired
resultsobject[]required
idstringrequired
okbooleanrequired
numbernull | string
statusstring
codenull | string
errornull | string
fileIdnull | stringrequired
filenamenull | stringrequired
errorstring | nullrequired
startedAtnull | stringrequireddate-time
finishedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/bulk/jobs
curl https://api.damedoklad.cz/v1/bulk/jobs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Run a bulk operation on any number of documents in the background, up to 20 000. Answers at once with a job to watch; each document still stands on its own

POST/v1/bulk/jobs

Run a bulk operation on any number of documents in the background, up to 20 000. Answers at once with a job to watch; each document still stands on its own. Takes the same body as the operation it names. getBulkJob tells how far it got and what happened to each. PDFs in a ZIP and exports end as a file: downloadBulkJobFile.

MCP tool: create-bulk-job

Request body

operation"issue" | "email" | "match-payments" | "edit-documents" | "invoice-contacts" | "pdf-zip" | "export"required
bodyobjectrequired
What the operation of that name takes: /bulk/issue, /bulk/email, /bulk/match-payments, /bulk/edit-documents, /bulk/invoice-contacts, /bulk/pdf-zip or /bulk/export. Up to 20 000 documents.

Response · 202

idstringrequired
operationstringrequired
statusstringrequired
totalintegerrequired
processedintegerrequired
succeededintegerrequired
failedintegerrequired
resultsobject[]required
idstringrequired
okbooleanrequired
numbernull | string
statusstring
codenull | string
errornull | string
fileIdnull | stringrequired
filenamenull | stringrequired
errorstring | nullrequired
startedAtnull | stringrequireddate-time
finishedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
POST/v1/bulk/jobs
curl -X POST https://api.damedoklad.cz/v1/bulk/jobs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "operation": "issue",
  "body": {}
}'

How far a bulk job got, and what happened to each document so far

GET/v1/bulk/jobs/{id}

How far a bulk job got, and what happened to each document so far

MCP tool: get-bulk-job

Path parameters

idstringrequired

Response · 200

idstringrequired
operationstringrequired
statusstringrequired
totalintegerrequired
processedintegerrequired
succeededintegerrequired
failedintegerrequired
resultsobject[]required
idstringrequired
okbooleanrequired
numbernull | string
statusstring
codenull | string
errornull | string
fileIdnull | stringrequired
filenamenull | stringrequired
errorstring | nullrequired
startedAtnull | stringrequireddate-time
finishedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
GET/v1/bulk/jobs/{id}
curl https://api.damedoklad.cz/v1/bulk/jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download the ZIP or the table a finished bulk job made

GET/v1/bulk/jobs/{id}/file

Download the ZIP or the table a finished bulk job made

MCP tool: download-bulk-job-file

Path parameters

idstringrequired

Response · 200

Returns a application/octet-stream file.

GET/v1/bulk/jobs/{id}/file
curl https://api.damedoklad.cz/v1/bulk/jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/file \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Settle many documents at once: pair each with its one exact bank movement, or with mode=manual record it as paid on a date

POST/v1/bulk/match-payments

Settle many documents at once: pair each with its one exact bank movement, or with mode=manual record it as paid on a date. Bank mode pairs only when exactly one open movement has the same direction, currency, amount, and variable symbol. Anything else is reported, never guessed.

MCP tool: bulk-match-payments

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required
mode"bank" | "manual"
paidOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
method"transfer" | "cash" | "card"
registerIdstring
ID of the register.
bankAccountIdstring
ID of the bank account. Find it with list-bank-accounts.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/match-payments
curl -X POST https://api.damedoklad.cz/v1/bulk/match-payments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Pair the documents and bank movements a person accepted in the review. Each pair posts on its own and answers on its own

POST/v1/bulk/match-payments/confirm

Pair the documents and bank movements a person accepted in the review. Each pair posts on its own and answers on its own

MCP tool: confirm-bulk-match

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
pairsobject[]required
idstringrequired
movementIdstringrequired
ID of the movement. Find it with list-movements.
amountHalerintegermax 9007199254740991
How much of the movement goes to this document. Left out: as much as both still have open.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/bulk/match-payments/confirm
curl -X POST https://api.damedoklad.cz/v1/bulk/match-payments/confirm \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "pairs": [
    {
      "id": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
      "movementId": "mov_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
    }
  ]
}'

Propose bank movements for many documents, for a person to review: best match first, with why it fits. Pairs nothing

POST/v1/bulk/match-payments/preview

Propose bank movements for many documents, for a person to review: best match first, with why it fits. Pairs nothing. Goes beyond one exact match: part payments, a number in the message, a known account, and more than one candidate. confirmBulkMatch pairs what the person accepts.

MCP tool: preview-bulk-match

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required

Response · 200

kindstringrequired
dataobject[]required
idstringrequired
openbooleanrequired
numbernull | stringrequired
contactNamenull | stringrequired
currencynull | stringrequired
remainingHalerinteger | nullrequired
proposedMovementIdanyrequired
Null in every recorded response.
candidatesobject[]required
movementIdnull | stringrequired
bankAccountIdstringrequired
bookedOnstringrequireddate
amountHalerinteger | nullrequired
openHalerintegerrequired
variableSymbolnull | stringrequired
counterpartyNamestring | nullrequired
messagestring | nullrequired
confidencenull | numberrequired
reasonnull | stringrequired
suggestedAmountHalerintegerrequired
POST/v1/bulk/match-payments/preview
curl -X POST https://api.damedoklad.cz/v1/bulk/match-payments/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Download the PDFs of many documents as one ZIP. A document without a PDF is listed in chyby.txt inside

POST/v1/bulk/pdf-zip

Download the PDFs of many documents as one ZIP. A document without a PDF is listed in chyby.txt inside

MCP tool: bulk-download-pdf

Request body

kind"invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable" | "pos_receipt" | "advance_tax_document"required
idsstring[]required

Response · 200

Returns a application/zip file.

POST/v1/bulk/pdf-zip
curl -X POST https://api.damedoklad.cz/v1/bulk/pdf-zip \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}' \
  -o soubor

List carriers (dopravci): each is a preset way of sending, with the file format its shipments export in

GET/v1/carriers

List carriers (dopravci): each is a preset way of sending, with the file format its shipments export in

MCP tool: list-carriers

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"carrier"required
idstringrequired
namestringrequired
exportFormatstringrequired
exportFormatPublishedbooleanrequired
serviceCodenull | stringrequired
senderCodenull | stringrequired
defaultWeightGramsinteger | nullrequired
isActivebooleanrequired
notestring | nullrequired
adapternull | string
hasApiPasswordboolean
apiUsernamenull | string
senderAddressRefnull | string
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/carriers
curl https://api.damedoklad.cz/v1/carriers \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a carrier. Česká pošta exports in its published posting sheet (ePA), Packeta in its packet import; any other carrier in generic CSV, or through its own API (Packeta, PPL, DPD, GLS) where the operator allows

POST/v1/carriers

Add a carrier. Česká pošta exports in its published posting sheet (ePA), Packeta in its packet import; any other carrier in generic CSV, or through its own API (Packeta, PPL, DPD, GLS) where the operator allows

MCP tool: create-carrier

Request body

namestringrequiredmax 200 chars
exportFormat"generic" | "ceska_posta_epa" | "packeta_csv"
ceska_posta_epa is the posting sheet Česká pošta publishes, packeta_csv the packet import Packeta publishes. Any other carrier takes generic: our own columns, for the carrier's import to map.
adapter"packeta" | "ppl" | "dpd" | "gls" | null
The carrier's own API, used only where the operator allows live calls.
apiUsernamestring | null
PPL: the client ID. GLS: the MyGLS user name, an e-mail address. Packeta and DPD need none.
apiPasswordstring | null
Packeta: the API password. PPL: the client secret. DPD: the API key. GLS: the MyGLS password. Stored encrypted and never returned.
senderAddressRefstring | null
DPD: the numeric ID of the pick-up address registered at DPD.
serviceCodestring | null
For Česká pošta the services of field 3.13, such as S or S+34. For PPL the product type, such as BUSS.
senderCodestring | null
Packeta: the sender indication. DPD: the customer number (DSW). GLS: the client number.
defaultWeightGramsinteger | null
isActiveboolean
notestring | null

Response · 201

idstringrequired
namestringrequired
exportFormatstringrequired
exportFormatPublishedbooleanrequired
serviceCodenull | stringrequired
senderCodenull | stringrequired
defaultWeightGramsinteger | nullrequired
isActivebooleanrequired
notestring | nullrequired
adapternull | string
hasApiPasswordboolean
apiUsernamenull | string
senderAddressRefnull | string
POST/v1/carriers
curl -X POST https://api.damedoklad.cz/v1/carriers \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'

Change a carrier, or set it inactive

PATCH/v1/carriers/{id}

Change a carrier, or set it inactive

MCP tool: update-carrier

Path parameters

idstringrequired

Request body

namestringmax 200 chars
exportFormat"generic" | "ceska_posta_epa" | "packeta_csv"
ceska_posta_epa is the posting sheet Česká pošta publishes, packeta_csv the packet import Packeta publishes. Any other carrier takes generic: our own columns, for the carrier's import to map.
adapter"packeta" | "ppl" | "dpd" | "gls" | null
The carrier's own API, used only where the operator allows live calls.
apiUsernamestring | null
PPL: the client ID. GLS: the MyGLS user name, an e-mail address. Packeta and DPD need none.
apiPasswordstring | null
Packeta: the API password. PPL: the client secret. DPD: the API key. GLS: the MyGLS password. Stored encrypted and never returned.
senderAddressRefstring | null
DPD: the numeric ID of the pick-up address registered at DPD.
serviceCodestring | null
For Česká pošta the services of field 3.13, such as S or S+34. For PPL the product type, such as BUSS.
senderCodestring | null
Packeta: the sender indication. DPD: the customer number (DSW). GLS: the client number.
defaultWeightGramsinteger | null
isActiveboolean
notestring | null

Response · 200

idstringrequired
namestringrequired
exportFormatstringrequired
exportFormatPublishedbooleanrequired
serviceCodenull | stringrequired
senderCodenull | stringrequired
defaultWeightGramsinteger | nullrequired
isActivebooleanrequired
notestring | nullrequired
adapternull | string
hasApiPasswordboolean
apiUsernamenull | string
senderAddressRefnull | string
PATCH/v1/carriers/{id}
curl -X PATCH https://api.damedoklad.cz/v1/carriers/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "exportFormat": "generic",
  "adapter": "packeta"
}'

Delete a carrier no shipment uses. One that has shipments is set inactive instead

DELETE/v1/carriers/{id}

Delete a carrier no shipment uses. One that has shipments is set inactive instead

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

MCP tool: delete-carrier

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/carriers/{id}
curl -X DELETE https://api.damedoklad.cz/v1/carriers/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List complaints (reklamace) with their deadline state

GET/v1/complaints

List complaints (reklamace) with their deadline state

MCP tool: list-complaints

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
status"open" | "in_progress" | "resolved" | "rejected" | "cancelled"
contactIdstring
ID of the contact. Find it with list-contacts.
open"true" | "false"
customFieldKeystring
Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.
customFieldValuestringmax 2000 chars

Response · 200

dataobject[]required
object"complaint"required
idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/complaints
curl https://api.damedoklad.cz/v1/complaints \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Record a complaint against a sale. For a consumer the 30-day deadline of § 19 zákona 634/1992 Sb. is set automatically

POST/v1/complaints

Record a complaint against a sale. For a consumer the 30-day deadline of § 19 zákona 634/1992 Sb. is set automatically

MCP tool: create-complaint

Request body

contactIdstring
ID of the contact. Find it with list-contacts.
consumerboolean
invoiceIdstring | null
ID of the invoice. Find it with list-invoices.
invoiceLineIdstring | null
ID of the invoice line.
itemIdstring | null
ID of the item. Find it with list-items.
subjectstringrequiredmax 200 chars
descriptionstringrequiredmax 4000 chars
requestedResolutionstring | null
quantitynumber | null
deliveredOnstring | null
Date as YYYY-MM-DD.
claimedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
agreedDeadlinestring | null
discoveredOnstring | null
Between businesses: when the buyer could first have found the defect (§ 2112 OZ).
warrantyUntilstring | null
End of a warranty given on the goods (§ 2114, § 2115, § 2117 OZ).

Response · 201

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
POST/v1/complaints
curl -X POST https://api.damedoklad.cz/v1/complaints \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "subject": "string",
  "description": "Pečivo, říjen"
}'

Get a complaint

GET/v1/complaints/{id}

Get a complaint

MCP tool: get-complaint

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
GET/v1/complaints/{id}
curl https://api.damedoklad.cz/v1/complaints/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Edit an open complaint. Changing the claim date or the agreed deadline recomputes the deadline

PATCH/v1/complaints/{id}

Edit an open complaint. Changing the claim date or the agreed deadline recomputes the deadline

MCP tool: update-complaint

Path parameters

idstringrequired

Request body

contactIdstring
ID of the contact. Find it with list-contacts.
consumerboolean
invoiceIdstring | null
ID of the invoice. Find it with list-invoices.
invoiceLineIdstring | null
ID of the invoice line.
itemIdstring | null
ID of the item. Find it with list-items.
subjectstringmax 200 chars
descriptionstringmax 4000 chars
requestedResolutionstring | null
quantitynumber | null
deliveredOnstring | null
Date as YYYY-MM-DD.
claimedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
agreedDeadlinestring | null
discoveredOnstring | null
Between businesses: when the buyer could first have found the defect (§ 2112 OZ).
warrantyUntilstring | null
End of a warranty given on the goods (§ 2114, § 2115, § 2117 OZ).

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
PATCH/v1/complaints/{id}
curl -X PATCH https://api.damedoklad.cz/v1/complaints/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "consumer": false,
  "invoiceId": "inv_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Cancel a complaint recorded by mistake

POST/v1/complaints/{id}/cancel

Cancel a complaint recorded by mistake

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

MCP tool: cancel-complaint

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
POST/v1/complaints/{id}/cancel
curl -X POST https://api.damedoklad.cz/v1/complaints/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/cancel \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Complaint protocol PDF: the intake confirmation of § 19 odst. 2, or the resolution confirmation of § 19 odst. 5

GET/v1/complaints/{id}/pdf

Complaint protocol PDF: the intake confirmation of § 19 odst. 2, or the resolution confirmation of § 19 odst. 5

MCP tool: download-complaint-protocol

Path parameters

idstringrequired

Query parameters

document"intake" | "resolution"
language"cs" | "en" | "de" | "fr"
Language of the protocol. Without it, the language set on the contact, then the company default.

Response · 200

Returns a application/pdf file.

GET/v1/complaints/{id}/pdf
curl https://api.damedoklad.cz/v1/complaints/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Close a complaint: repair, replacement, refund, discount, or rejection. Refund and discount create a credit note on the sale

POST/v1/complaints/{id}/resolve

Close a complaint: repair, replacement, refund, discount, or rejection. Refund and discount create a credit note on the sale. The credit note stays a draft to check unless issueCreditNote is set. Replacement with a warehouse issues the goods from stock.

MCP tool: resolve-complaint

Path parameters

idstringrequired

Request body

outcome"repair" | "replacement" | "refund" | "discount" | "rejected"required
resolvedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
notestringmax 4000 chars
quantitynumbermax 1000000000
discountNetHalerintegermax 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
issueCreditNoteboolean
replacementWarehouseIdstring
ID of the replacement warehouse.
replacementItemIdstring
ID of the replacement item.

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
POST/v1/complaints/{id}/resolve
curl -X POST https://api.damedoklad.cz/v1/complaints/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/resolve \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "outcome": "repair"
}'

Mark a complaint as being worked on

POST/v1/complaints/{id}/start

Mark a complaint as being worked on

MCP tool: start-complaint

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
consumerbooleanrequired
invoiceIdnull | stringrequired
invoiceLineIdnull | stringrequired
itemIdnull | stringrequired
subjectstringrequired
descriptionstringrequired
requestedResolutionstring | nullrequired
quantityinteger | nullrequired
deliveredOnnull | stringrequireddate
claimedOnstringrequireddate
agreedDeadlinenull | stringrequireddate
deadlineOnnull | stringrequireddate
deadlineobjectrequired
statestringrequired
daysLeftinteger | nullrequired
withinTwoYearsboolean | nullrequired
statusstringrequired
outcomenull | stringrequired
resolvedOnnull | stringrequireddate
resolutionNotenull | stringrequired
creditNoteIdnull | stringrequired
serviceJobIdstring | nullrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
discoveredOnnull | stringdate
warrantyUntilnull | stringdate
businessPeriodsnull | object
hiddenDefectLimitnull | stringrequireddate
withinHiddenDefectLimitboolean | nullrequired
daysFromDiscoveryinteger | nullrequired
warrantyUntilnull | stringrequireddate
withinWarrantyboolean | nullrequired
customFieldsobject
invoiceNumberany
Null in every recorded response.
creditNoteNumberany
Null in every recorded response.
creditNoteStatusany
Null in every recorded response.
POST/v1/complaints/{id}/start
curl -X POST https://api.damedoklad.cz/v1/complaints/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/start \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

How many days the company works to on a complaint between businesses. The law sets no number for them

GET/v1/complaints/settings

How many days the company works to on a complaint between businesses. The law sets no number for them

MCP tool: get-complaint-settings

Response · 200

businessDeadlineDaysinteger | nullrequired
GET/v1/complaints/settings
curl https://api.damedoklad.cz/v1/complaints/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set how many days the company works to on a complaint between businesses. An agreed date always wins, and consumers keep their 30 days

PUT/v1/complaints/settings

Set how many days the company works to on a complaint between businesses. An agreed date always wins, and consumers keep their 30 days

MCP tool: update-complaint-settings

Request body

businessDeadlineDaysinteger | nullrequired
Between businesses the law sets no number of days, so the company may choose how many it works to. Null: only an agreed date counts.

Response · 200

businessDeadlineDaysinteger | nullrequired
PUT/v1/complaints/settings
curl -X PUT https://api.damedoklad.cz/v1/complaints/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "businessDeadlineDays": 1
}'

Edit an activity, or mark a task done

PATCH/v1/contact-activities/{id}

Edit an activity, or mark a task done

MCP tool: update-contact-activity

Path parameters

idstringrequired

Request body

kind"note" | "call" | "meeting" | "task"
subjectstringmax 200 chars
bodystring | null
occurredOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
dueOnstring | null
Date as YYYY-MM-DD.
assignedToIdstring | null
The colleague a task is for. They get an e-mail when it is given to them.
parentIdstring | null
The task this one is a subtask of, on the same contact. A task cannot be finished while a subtask is open.
checkerIdstring | null
The colleague who checks the work. A finished task waits for them, and only their approval completes it.
recurrence"daily" | "weekly" | "monthly" | "quarterly" | "yearly" | null
Repeat: when a task with a due date is completed, the next one appears with its subtasks. Our choice of steps; the Stormware pages we could read do not list POHODA's.
recurrenceUntilstring | null
No further repeat falls due after this day.
remindDaysBeforeinteger | null
Days before the due date to remind the assignee, or the author of an unassigned task, in the bell and by e-mail.
doneboolean

Response · 200

idstringrequired
contactIdstringrequired
kindstringrequired
subjectstringrequired
bodynull | stringrequired
occurredOnstringrequireddate
dueOnnull | stringrequireddate
donebooleanrequired
doneAtnull | stringrequireddate-time
assignedToIdnull | stringrequired
createdAtstringrequireddate-time
parentIdnull | string
checkerIdnull | string
checkedboolean
checkedAtnull | stringdate-time
waitingForCheckboolean
recurrencenull | string
recurrenceUntilnull | stringdate
nextTaskIdnull | string
remindDaysBeforeinteger | null
contactNamenull | string
assignedToNamestring
PATCH/v1/contact-activities/{id}
curl -X PATCH https://api.damedoklad.cz/v1/contact-activities/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "note",
  "subject": "string",
  "body": "string"
}'

Delete an activity

DELETE/v1/contact-activities/{id}

Delete an activity

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

MCP tool: delete-contact-activity

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/contact-activities/{id}
curl -X DELETE https://api.damedoklad.cz/v1/contact-activities/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

As the checking person, approve a finished task, which completes it and starts its next repeat, or send it back to the assignee

POST/v1/contact-activities/{id}/check

As the checking person, approve a finished task, which completes it and starts its next repeat, or send it back to the assignee. Only the person named as checker, an owner, or an accountant may do this. Sending it back reopens the task and adds the note to its text.

MCP tool: check-contact-task

Path parameters

idstringrequired

Request body

approvedbooleanrequired
true completes the task. false reopens it and tells the assignee.
notestring | null

Response · 200

idstringrequired
contactIdstringrequired
kindstringrequired
subjectstringrequired
bodynull | stringrequired
occurredOnstringrequireddate
dueOnnull | stringrequireddate
donebooleanrequired
doneAtnull | stringrequireddate-time
assignedToIdnull | stringrequired
createdAtstringrequireddate-time
parentIdnull | string
checkerIdnull | string
checkedboolean
checkedAtnull | stringdate-time
waitingForCheckboolean
recurrencenull | string
recurrenceUntilnull | stringdate
nextTaskIdnull | string
remindDaysBeforeinteger | null
contactNamenull | string
assignedToNamestring
POST/v1/contact-activities/{id}/check
curl -X POST https://api.damedoklad.cz/v1/contact-activities/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "approved": false
}'

Change a reason for processing, for example end it when consent is withdrawn

PATCH/v1/contact-processing-reasons/{id}

Change a reason for processing, for example end it when consent is withdrawn

MCP tool: update-contact-processing-reason

Path parameters

idstringrequired

Request body

legalBasis"consent" | "contract" | "legal_obligation" | "vital_interest" | "public_task" | "legitimate_interest"
purposestringmax 200 chars
validFromstringYYYY-MM-DD
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
notestring | null

Response · 200

idstringrequired
contactIdstringrequired
legalBasisstringrequired
purposestringrequired
validFromstringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
statestringrequired
reasonIdnull | string
PATCH/v1/contact-processing-reasons/{id}
curl -X PATCH https://api.damedoklad.cz/v1/contact-processing-reasons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "legalBasis": "consent",
  "purpose": "string",
  "validFrom": "2026-10-30"
}'

Remove a reason for processing entered by mistake. To end one, set its end date instead, so the history stays

DELETE/v1/contact-processing-reasons/{id}

Remove a reason for processing entered by mistake. To end one, set its end date instead, so the history stays

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

MCP tool: delete-contact-processing-reason

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/contact-processing-reasons/{id}
curl -X DELETE https://api.damedoklad.cz/v1/contact-processing-reasons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List the notes, calls, meetings, and tasks of a contact, newest first

GET/v1/contacts/{id}/activities

List the notes, calls, meetings, and tasks of a contact, newest first

MCP tool: list-contact-activities

Path parameters

idstringrequired

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
kind"note" | "call" | "meeting" | "task"
openTasks"true" | "false"

Response · 200

dataobject[]required
object"contact_activity"required
idstringrequired
contactIdstringrequired
kindstringrequired
subjectstringrequired
bodynull | stringrequired
occurredOnstringrequireddate
dueOnnull | stringrequireddate
donebooleanrequired
doneAtnull | stringrequireddate-time
assignedToIdnull | stringrequired
createdAtstringrequireddate-time
parentIdnull | string
checkerIdnull | string
checkedboolean
checkedAtnull | stringdate-time
waitingForCheckboolean
recurrencenull | string
recurrenceUntilnull | stringdate
nextTaskIdnull | string
remindDaysBeforeinteger | null
contactNamenull | string
assignedToNamestring
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/contacts/{id}/activities
curl https://api.damedoklad.cz/v1/contacts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/activities \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a note, call, meeting, or task to a contact. A task with a due date shows in K vyřízení, and can have subtasks, a checker, a repeat, and a reminder

POST/v1/contacts/{id}/activities

Add a note, call, meeting, or task to a contact. A task with a due date shows in K vyřízení, and can have subtasks, a checker, a repeat, and a reminder

MCP tool: create-contact-activity

Path parameters

idstringrequired

Request body

kind"note" | "call" | "meeting" | "task"
subjectstringrequiredmax 200 chars
bodystring | null
occurredOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
dueOnstring | null
Date as YYYY-MM-DD.
assignedToIdstring | null
The colleague a task is for. They get an e-mail when it is given to them.
parentIdstring | null
The task this one is a subtask of, on the same contact. A task cannot be finished while a subtask is open.
checkerIdstring | null
The colleague who checks the work. A finished task waits for them, and only their approval completes it.
recurrence"daily" | "weekly" | "monthly" | "quarterly" | "yearly" | null
Repeat: when a task with a due date is completed, the next one appears with its subtasks. Our choice of steps; the Stormware pages we could read do not list POHODA's.
recurrenceUntilstring | null
No further repeat falls due after this day.
remindDaysBeforeinteger | null
Days before the due date to remind the assignee, or the author of an unassigned task, in the bell and by e-mail.

Response · 201

idstringrequired
contactIdstringrequired
kindstringrequired
subjectstringrequired
bodynull | stringrequired
occurredOnstringrequireddate
dueOnnull | stringrequireddate
donebooleanrequired
doneAtnull | stringrequireddate-time
assignedToIdnull | stringrequired
createdAtstringrequireddate-time
parentIdnull | string
checkerIdnull | string
checkedboolean
checkedAtnull | stringdate-time
waitingForCheckboolean
recurrencenull | string
recurrenceUntilnull | stringdate
nextTaskIdnull | string
remindDaysBeforeinteger | null
contactNamenull | string
assignedToNamestring
POST/v1/contacts/{id}/activities
curl -X POST https://api.damedoklad.cz/v1/contacts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/activities \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "string"
}'

Get the GDPR overview of a contact: reasons for processing and their validity, last use on documents, restriction, unsubscribe

GET/v1/contacts/{id}/gdpr

Get the GDPR overview of a contact: reasons for processing and their validity, last use on documents, restriction, unsubscribe

MCP tool: get-contact-gdpr

Path parameters

idstringrequired

Response · 200

contactIdnull | stringrequired
statestringrequired
restrictedbooleanrequired
restrictedAtnull | stringrequireddate-time
marketingOptOutbooleanrequired
marketingOptOutAtnull | stringrequireddate-time
reasonsobject[]required
object"contact_processing_reason"required
idstringrequired
contactIdstringrequired
legalBasisstringrequired
purposestringrequired
validFromstringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
statestringrequired
reasonIdnull | string
usageobjectrequired
lastPreSaleOnnull | stringrequireddate
lastSaleOnnull | stringrequireddate
lastPostSaleOnnull | stringrequireddate
GET/v1/contacts/{id}/gdpr
curl https://api.damedoklad.cz/v1/contacts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/gdpr \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a legal reason for processing the personal data of a contact, picked from the company list or written out, with how long it lasts

POST/v1/contacts/{id}/gdpr/reasons

Add a legal reason for processing the personal data of a contact, picked from the company list or written out, with how long it lasts

MCP tool: add-contact-processing-reason

Path parameters

idstringrequired

Request body

legalBasis"consent" | "contract" | "legal_obligation" | "vital_interest" | "public_task" | "legitimate_interest"
purposestringmax 200 chars
validFromstringYYYY-MM-DD
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
notestring | null
reasonIdstring
A reason from the company list (GET /gdpr/reasons). It fills legal basis, purpose, and the end date from its length. Without it, name legalBasis and purpose.

Response · 201

idstringrequired
contactIdstringrequired
legalBasisstringrequired
purposestringrequired
validFromstringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
statestringrequired
reasonIdnull | string
POST/v1/contacts/{id}/gdpr/reasons
curl -X POST https://api.damedoklad.cz/v1/contacts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/gdpr/reasons \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "legalBasis": "consent",
  "purpose": "string",
  "validFrom": "2026-10-30"
}'

Restrict processing of a contact (GDPR Art. 18): it leaves the ordinary contact list and cannot go on a new document. Or lift the restriction

POST/v1/contacts/{id}/gdpr/restriction

Restrict processing of a contact (GDPR Art. 18): it leaves the ordinary contact list and cannot go on a new document. Or lift the restriction

MCP tool: restrict-contact-processing

Path parameters

idstringrequired

Request body

restrictedbooleanrequired

Response · 200

contactIdnull | stringrequired
statestringrequired
restrictedbooleanrequired
restrictedAtnull | stringrequireddate-time
marketingOptOutbooleanrequired
marketingOptOutAtnull | stringrequireddate-time
reasonsobject[]required
object"contact_processing_reason"required
idstringrequired
contactIdstringrequired
legalBasisstringrequired
purposestringrequired
validFromstringrequireddate
validTonull | stringrequireddate
notestring | nullrequired
statestringrequired
reasonIdnull | string
usageobjectrequired
lastPreSaleOnnull | stringrequireddate
lastSaleOnnull | stringrequireddate
lastPostSaleOnnull | stringrequireddate
POST/v1/contacts/{id}/gdpr/restriction
curl -X POST https://api.damedoklad.cz/v1/contacts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/gdpr/restriction \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "restricted": false
}'

Mail merge (hromadná korespondence): a letter per contact as PDF files in a ZIP, format=docx to fill a Word template per contact in a ZIP, or format=csv for the merge data

POST/v1/contacts/mail-merge

Mail merge (hromadná korespondence): a letter per contact as PDF files in a ZIP, format=docx to fill a Word template per contact in a ZIP, or format=csv for the merge data. A Word template marks its places with {{name}} or a Word MERGEFIELD of the same name: name, person, ico, dic, email, phone, street, city, postalCode, companyName. An unknown one is refused, so a typo does not leave a gap in a letter.

MCP tool: contact-mail-merge

Request body

contactIdsstring[]
groupIdstring
ID of the group.
format"pdf" | "csv" | "docx"
titlestringmax 200 chars
bodystringmax 20000 chars
templateBase64stringmax 14000000 chars
format=docx: a Word template, base64, with {{name}} or Word MERGEFIELD fields of the same names. At most 10 MB.

Response · 200

Returns a application/octet-stream file.

POST/v1/contacts/mail-merge
curl -X POST https://api.damedoklad.cz/v1/contacts/mail-merge \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactIds": [
    "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "groupId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "format": "pdf"
}' \
  -o soubor

List bulk e-mails sent, newest first, with how many went out

GET/v1/contacts/mailings

List bulk e-mails sent, newest first, with how many went out

MCP tool: list-contact-mailings

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"contact_mailing"required
idstringrequired
purposestringrequired
subjectstringrequired
recipientCountintegerrequired
sentCountintegerrequired
failedCountintegerrequired
skippedCountintegerrequired
resultsobject[]
contactIdnull | stringrequired
namenull | stringrequired
emailnull | stringrequired
statusstringrequired
reasonnull | stringrequired
statusstring
finishedAtnull | stringdate-time
createdAtstringdate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/contacts/mailings
curl https://api.damedoklad.cz/v1/contacts/mailings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Queue a bulk e-mail to contacts of this company, and answer at once. A marketing message is labelled, names the sender, and carries an unsubscribe link and List-Unsubscribe headers

POST/v1/contacts/mailings

Queue a bulk e-mail to contacts of this company, and answer at once. A marketing message is labelled, names the sender, and carries an unsubscribe link and List-Unsubscribe headers. Fields {{name}}, {{person}}, {{ico}}, {{dic}}, {{email}}, {{phone}}, {{street}}, {{city}}, {{postalCode}}, {{companyName}} fill per contact. Marketing goes only to contacts with consent or to customers, and never to one who unsubscribed (§ 7 zákona č. 480/2004 Sb.). At most 200 recipients per message and 1000 per day. It goes out in the background: follow it on GET /contacts/mailings/{id}.

MCP tool: send-contact-mailing

Request body

contactIdsstring[]
groupIdstring
ID of the group.
purpose"service" | "marketing"required
service: a business message, such as a changed bank account. marketing: an obchodní sdělení under § 7 zákona č. 480/2004 Sb., labelled and with an unsubscribe link.
subjectstringrequiredmax 200 chars
bodystringrequiredmax 20000 chars

Response · 201

idstringrequired
purposestringrequired
subjectstringrequired
recipientCountintegerrequired
sentCountintegerrequired
failedCountintegerrequired
skippedCountintegerrequired
resultsobject[]
contactIdnull | stringrequired
namenull | stringrequired
emailnull | stringrequired
statusstringrequired
reasonnull | stringrequired
statusstring
finishedAtnull | stringdate-time
createdAtstringdate-time
POST/v1/contacts/mailings
curl -X POST https://api.damedoklad.cz/v1/contacts/mailings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "purpose": "service",
  "subject": "string",
  "body": "string"
}'

See how a bulk e-mail is going: its status, and what happened to each recipient

GET/v1/contacts/mailings/{id}

See how a bulk e-mail is going: its status, and what happened to each recipient

MCP tool: get-contact-mailing

Path parameters

idstringrequired

Response · 200

idstringrequired
purposestringrequired
subjectstringrequired
recipientCountintegerrequired
sentCountintegerrequired
failedCountintegerrequired
skippedCountintegerrequired
resultsobject[]
contactIdnull | stringrequired
namenull | stringrequired
emailnull | stringrequired
statusstringrequired
reasonnull | stringrequired
statusstring
finishedAtnull | stringdate-time
createdAtstringdate-time
GET/v1/contacts/mailings/{id}
curl https://api.damedoklad.cz/v1/contacts/mailings/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

See who a bulk e-mail would reach and why anyone is left out, with the first message filled in. Sends nothing

POST/v1/contacts/mailings/preview

See who a bulk e-mail would reach and why anyone is left out, with the first message filled in. Sends nothing

MCP tool: preview-contact-mailing

Request body

contactIdsstring[]
groupIdstring
ID of the group.
purpose"service" | "marketing"required
service: a business message, such as a changed bank account. marketing: an obchodní sdělení under § 7 zákona č. 480/2004 Sb., labelled and with an unsubscribe link.
subjectstringrequiredmax 200 chars
bodystringrequiredmax 20000 chars

Response · 200

willSendintegerrequired
skippedintegerrequired
limitPerMailingintegerrequired
limitPerDayintegerrequired
sentTodayintegerrequired
recipientsobject[]required
contactIdnull | stringrequired
namenull | stringrequired
emailnull | stringrequired
willSendbooleanrequired
skipReasonnull | stringrequired
sampleobjectrequired
subjectnull | stringrequired
textstringrequired
POST/v1/contacts/mailings/preview
curl -X POST https://api.damedoklad.cz/v1/contacts/mailings/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "purpose": "service",
  "subject": "string",
  "body": "string"
}'

List SMS messages, newest first, with what happened to each. contactId narrows it to one contact

GET/v1/contacts/sms

List SMS messages, newest first, with what happened to each. contactId narrows it to one contact

MCP tool: list-contact-sms

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
contactIdstring
ID of the contact. Find it with list-contacts.
status"pending" | "sent" | "failed" | "skipped"

Response · 200

dataobject[]required
object"contact_sms"required
idstringrequired
batchIdstringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
phonenull | stringrequired
purposenull | stringrequired
textstringrequired
statusstringrequired
reasonnull | stringrequired
providernull | stringrequired
providerIdnull | stringrequired
sentAtnull | stringrequireddate-time
createdAtstringrequireddate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/contacts/sms
curl https://api.damedoklad.cz/v1/contacts/sms \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Queue a business SMS to contacts, and answer at once. Answers sms_not_configured until an SMS gateway is set up by the operator

POST/v1/contacts/sms

Queue a business SMS to contacts, and answer at once. Answers sms_not_configured until an SMS gateway is set up by the operator. Goes out in the background: follow it on GET /contacts/sms. A marketing text is labelled, names the sender, and carries a way out, and goes only to contacts with consent or to customers (§ 7 zákona č. 480/2004 Sb.). At most 200 per sending and 1000 per day. The status says the gateway accepted a text; delivery reports are not read.

MCP tool: send-contact-sms

Request body

contactIdsstring[]
groupIdstring
ID of the group.
purpose"service" | "marketing"
service, the default: a business message. marketing: an obchodní sdělení under § 7 zákona č. 480/2004 Sb., labelled and with a way out, only to contacts with consent or to customers.
textstringrequiredmax 612 chars
Fields such as {{name}} fill per contact. At most 612 characters, or 268 with diacritics, once filled in.

Response · 201

resultsobject[]required
idstringrequired
okboolean
providerIdnull | string
contactIdnull | string
statusstring
reasonnull | string
totalintegerrequired
succeededinteger
failedinteger
idstring
queuedinteger
skippedinteger
POST/v1/contacts/sms
curl -X POST https://api.damedoklad.cz/v1/contacts/sms \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "string"
}'

See who a text would reach and why anyone is left out, with the first message filled in. Sends nothing

POST/v1/contacts/sms/preview

See who a text would reach and why anyone is left out, with the first message filled in. Sends nothing

MCP tool: preview-contact-sms

Request body

contactIdsstring[]
groupIdstring
ID of the group.
purpose"service" | "marketing"
service, the default: a business message. marketing: an obchodní sdělení under § 7 zákona č. 480/2004 Sb., labelled and with a way out, only to contacts with consent or to customers.
textstringrequiredmax 612 chars
Fields such as {{name}} fill per contact. At most 612 characters, or 268 with diacritics, once filled in.

Response · 200

configuredbooleanrequired
willSendintegerrequired
skippedintegerrequired
limitPerSendingintegerrequired
limitPerDayintegerrequired
sentTodayintegerrequired
recipientsobject[]required
contactIdnull | stringrequired
namenull | stringrequired
phonenull | stringrequired
willSendbooleanrequired
skipReasonnull | stringrequired
tooLongbooleanrequired
sampleobjectrequired
textstringrequired
lengthintegerrequired
limitintegerrequired
POST/v1/contacts/sms/preview
curl -X POST https://api.damedoklad.cz/v1/contacts/sms/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "text": "string"
}'

Say whether an SMS gateway is connected, and how many texts may still go out today

GET/v1/contacts/sms/status

Say whether an SMS gateway is connected, and how many texts may still go out today

MCP tool: get-contact-sms-status

Response · 200

configuredbooleanrequired
providernull | stringrequired
sentTodayintegerrequired
limitPerDayintegerrequired
limitPerSendingintegerrequired
GET/v1/contacts/sms/status
curl https://api.damedoklad.cz/v1/contacts/sms/status \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change an amendment

PATCH/v1/contract-amendments/{id}

Change an amendment

MCP tool: update-contract-amendment

Path parameters

idstringrequired

Request body

titlestringmax 200 chars
signedOnstring | null
Date as YYYY-MM-DD.
effectiveFromstring | null
Date as YYYY-MM-DD.
newValidTostring | null
The contract now runs to this day.
valueChangeHalerinteger | null
How much this amendment adds to the value of the contract; negative lowers it.
notestring | null

Response · 200

idstringrequired
contractIdstringrequired
positionintegerrequired
titlestringrequired
signedOnstring | nullrequired
effectiveFromstring | nullrequired
newValidTonull | stringrequireddate
valueChangeHalerinteger | nullrequired
notestring | nullrequired
createdAtstringrequireddate-time
PATCH/v1/contract-amendments/{id}
curl -X PATCH https://api.damedoklad.cz/v1/contract-amendments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string",
  "signedOn": "2026-10-30",
  "effectiveFrom": "2026-10-30"
}'

Delete an amendment recorded by mistake

DELETE/v1/contract-amendments/{id}

Delete an amendment recorded by mistake

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

MCP tool: delete-contract-amendment

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/contract-amendments/{id}
curl -X DELETE https://api.damedoklad.cz/v1/contract-amendments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List contracts (smlouvy) with their partner, status, and end date as amended

GET/v1/contracts

List contracts (smlouvy) with their partner, status, and end date as amended

MCP tool: list-contracts

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
contactIdstring
ID of the contact. Find it with list-contacts.
status"draft" | "active" | "ended" | "terminated"

Response · 200

dataobject[]required
object"business_contract"required
idstringrequired
numbernull | stringrequired
titlenull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
contractTypestringrequired
categorystring | nullrequired
statusstringrequired
signedOnnull | stringrequireddate
validFromnull | stringrequireddate
validTonull | stringrequireddate
effectiveValidTonull | stringrequireddate
noticeDaysinteger | nullrequired
remindDaysinteger | nullrequired
valueHalerinteger | nullrequired
effectiveValueHalerinteger | nullrequired
currencynull | stringrequired
externalNumberstring | nullrequired
notestring | nullrequired
amendmentCountintegerrequired
amendmentsobject[]required
object"contract_amendment"required
idstringrequired
contractIdstringrequired
positionintegerrequired
titlestringrequired
signedOnstring | nullrequired
effectiveFromstring | nullrequired
newValidTonull | stringrequireddate
valueChangeHalerinteger | nullrequired
notestring | nullrequired
createdAtstringrequireddate-time
createdAtstringrequireddate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/contracts
curl https://api.damedoklad.cz/v1/contracts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Record a contract with a partner. It gets its own number; attach the signed file to it through the document archive

POST/v1/contracts

Record a contract with a partner. It gets its own number; attach the signed file to it through the document archive

MCP tool: create-contract

Request body

titlestringrequiredmax 200 chars
contactIdstring | null
ID of the contact. Find it with list-contacts.
contractType"sale" | "purchase" | "work" | "service" | "lease" | "loan" | "framework" | "nda" | "other"
categorystring | null
status"draft" | "active" | "ended" | "terminated"
signedOnstring | null
Date as YYYY-MM-DD.
validFromstring | null
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
noticeDaysinteger | null
remindDaysinteger | null
Show in K vyřízení this many days before the contract ends. Default 30.
valueHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
currencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
externalNumberstring | null
notestring | null

Response · 201

idstringrequired
numbernull | stringrequired
titlenull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
contractTypestringrequired
categorystring | nullrequired
statusstringrequired
signedOnnull | stringrequireddate
validFromnull | stringrequireddate
validTonull | stringrequireddate
effectiveValidTonull | stringrequireddate
noticeDaysinteger | nullrequired
remindDaysinteger | nullrequired
valueHalerinteger | nullrequired
effectiveValueHalerinteger | nullrequired
currencynull | stringrequired
externalNumberstring | nullrequired
notestring | nullrequired
amendmentCountintegerrequired
amendmentsobject[]required
object"contract_amendment"required
idstringrequired
contractIdstringrequired
positionintegerrequired
titlestringrequired
signedOnstring | nullrequired
effectiveFromstring | nullrequired
newValidTonull | stringrequireddate
valueChangeHalerinteger | nullrequired
notestring | nullrequired
createdAtstringrequireddate-time
createdAtstringrequireddate-time
POST/v1/contracts
curl -X POST https://api.damedoklad.cz/v1/contracts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "title": "string"
}'

Get a contract with its amendments

GET/v1/contracts/{id}

Get a contract with its amendments

MCP tool: get-contract

Path parameters

idstringrequired

Response · 200

idstringrequired
numbernull | stringrequired
titlenull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
contractTypestringrequired
categorystring | nullrequired
statusstringrequired
signedOnnull | stringrequireddate
validFromnull | stringrequireddate
validTonull | stringrequireddate
effectiveValidTonull | stringrequireddate
noticeDaysinteger | nullrequired
remindDaysinteger | nullrequired
valueHalerinteger | nullrequired
effectiveValueHalerinteger | nullrequired
currencynull | stringrequired
externalNumberstring | nullrequired
notestring | nullrequired
amendmentCountintegerrequired
amendmentsobject[]required
object"contract_amendment"required
idstringrequired
contractIdstringrequired
positionintegerrequired
titlestringrequired
signedOnstring | nullrequired
effectiveFromstring | nullrequired
newValidTonull | stringrequireddate
valueChangeHalerinteger | nullrequired
notestring | nullrequired
createdAtstringrequireddate-time
createdAtstringrequireddate-time
GET/v1/contracts/{id}
curl https://api.damedoklad.cz/v1/contracts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change a contract, including ending or terminating it

PATCH/v1/contracts/{id}

Change a contract, including ending or terminating it

MCP tool: update-contract

Path parameters

idstringrequired

Request body

titlestringmax 200 chars
contactIdstring | null
ID of the contact. Find it with list-contacts.
contractType"sale" | "purchase" | "work" | "service" | "lease" | "loan" | "framework" | "nda" | "other"
categorystring | null
status"draft" | "active" | "ended" | "terminated"
signedOnstring | null
Date as YYYY-MM-DD.
validFromstring | null
Date as YYYY-MM-DD.
validTostring | null
Date as YYYY-MM-DD.
noticeDaysinteger | null
remindDaysinteger | null
Show in K vyřízení this many days before the contract ends. Default 30.
valueHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
currencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
externalNumberstring | null
notestring | null

Response · 200

idstringrequired
numbernull | stringrequired
titlenull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
contractTypestringrequired
categorystring | nullrequired
statusstringrequired
signedOnnull | stringrequireddate
validFromnull | stringrequireddate
validTonull | stringrequireddate
effectiveValidTonull | stringrequireddate
noticeDaysinteger | nullrequired
remindDaysinteger | nullrequired
valueHalerinteger | nullrequired
effectiveValueHalerinteger | nullrequired
currencynull | stringrequired
externalNumberstring | nullrequired
notestring | nullrequired
amendmentCountintegerrequired
amendmentsobject[]required
object"contract_amendment"required
idstringrequired
contractIdstringrequired
positionintegerrequired
titlestringrequired
signedOnstring | nullrequired
effectiveFromstring | nullrequired
newValidTonull | stringrequireddate
valueChangeHalerinteger | nullrequired
notestring | nullrequired
createdAtstringrequireddate-time
createdAtstringrequireddate-time
PATCH/v1/contracts/{id}
curl -X PATCH https://api.damedoklad.cz/v1/contracts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string",
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "contractType": "sale"
}'

Delete a contract recorded by mistake, with its amendments. An ended contract is kept by setting its status

DELETE/v1/contracts/{id}

Delete a contract recorded by mistake, with its amendments. An ended contract is kept by setting its status

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

MCP tool: delete-contract

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/contracts/{id}
curl -X DELETE https://api.damedoklad.cz/v1/contracts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add an amendment (dodatek) to a contract. It can move the end date and change the value

POST/v1/contracts/{id}/amendments

Add an amendment (dodatek) to a contract. It can move the end date and change the value

MCP tool: create-contract-amendment

Path parameters

idstringrequired

Request body

titlestringrequiredmax 200 chars
signedOnstring | null
Date as YYYY-MM-DD.
effectiveFromstring | null
Date as YYYY-MM-DD.
newValidTostring | null
The contract now runs to this day.
valueChangeHalerinteger | null
How much this amendment adds to the value of the contract; negative lowers it.
notestring | null

Response · 201

idstringrequired
contractIdstringrequired
positionintegerrequired
titlestringrequired
signedOnstring | nullrequired
effectiveFromstring | nullrequired
newValidTonull | stringrequireddate
valueChangeHalerinteger | nullrequired
notestring | nullrequired
createdAtstringrequireddate-time
POST/v1/contracts/{id}/amendments
curl -X POST https://api.damedoklad.cz/v1/contracts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/amendments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string"
}'

List the custom fields a company defined, optionally for one kind of record. Most companies have none

GET/v1/custom-fields

List the custom fields a company defined, optionally for one kind of record. Most companies have none

MCP tool: list-custom-fields

Query parameters

entity"contact" | "item" | "invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "supplier_advance" | "stock_document" | "complaint" | "service_job"
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"custom_field"required
idstringrequired
entitystringrequired
keystringrequired
labelnull | stringrequired
kindstringrequired
optionsstring[]required
positioninteger | nullrequired
isActivebooleanrequired
searchablebooleanrequired
printedbooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/custom-fields
curl https://api.damedoklad.cz/v1/custom-fields \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Define a custom field: text, number, date, or a choice from options, on contacts, items, or one kind of document

POST/v1/custom-fields

Define a custom field: text, number, date, or a choice from options, on contacts, items, or one kind of document

MCP tool: create-custom-field

Request body

entity"contact" | "item" | "invoice" | "received_invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "supplier_advance" | "stock_document" | "complaint" | "service_job"required
keystring
labelstringrequiredmax 80 chars
kind"text" | "number" | "date" | "choice"required
optionsstring[]
positionintegermin 0max 1000
searchableboolean
The search finds a record by this field.
printedboolean
The value prints on documents. Only for fields on a document.

Response · 201

idstringrequired
entitystringrequired
keystringrequired
labelnull | stringrequired
kindstringrequired
optionsstring[]required
positioninteger | nullrequired
isActivebooleanrequired
searchablebooleanrequired
printedbooleanrequired
POST/v1/custom-fields
curl -X POST https://api.damedoklad.cz/v1/custom-fields \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "entity": "contact",
  "label": "string",
  "kind": "text"
}'

Rename a custom field, change its options, or switch it off. Stored values stay

PATCH/v1/custom-fields/{id}

Rename a custom field, change its options, or switch it off. Stored values stay

MCP tool: update-custom-field

Path parameters

idstringrequired

Request body

searchableboolean
printedboolean
labelstringmax 80 chars
optionsstring[]
positionintegermin 0max 1000
isActiveboolean

Response · 200

idstringrequired
entitystringrequired
keystringrequired
labelnull | stringrequired
kindstringrequired
optionsstring[]required
positioninteger | nullrequired
isActivebooleanrequired
searchablebooleanrequired
printedbooleanrequired
PATCH/v1/custom-fields/{id}
curl -X PATCH https://api.damedoklad.cz/v1/custom-fields/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "searchable": false,
  "printed": false,
  "label": "string"
}'

Delete a custom field definition. Values already stored stay on the records and in exports, and are no longer shown

DELETE/v1/custom-fields/{id}

Delete a custom field definition. Values already stored stay on the records and in exports, and are no longer shown

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

MCP tool: delete-custom-field

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/custom-fields/{id}
curl -X DELETE https://api.damedoklad.cz/v1/custom-fields/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set custom field values on one record. Pass only the fields to change, null clears one. Works on issued documents too: it changes nothing they say

PUT/v1/custom-fields/values/{entity}/{id}

Set custom field values on one record. Pass only the fields to change, null clears one. Works on issued documents too: it changes nothing they say

MCP tool: set-custom-field-values

Path parameters

entitystringrequired
idstringrequired

Request body

valuesobjectrequired

Response · 200

entitystringrequired
idstringrequired
valuesobjectrequired
regionnull | string
slevainteger
smlouva_odstringdate
poznamka_obchodustring
vyrobcestring
zakazka_zakaznikastring
cislo_zakaznikastring
tajnestring
akcestring
regalstring
stavbastring
cislo_stavbystring
internistring
terminstringdate
oblaststring
stavba_zalohystring
tistene_polestring
PUT/v1/custom-fields/values/{entity}/{id}
curl -X PUT https://api.damedoklad.cz/v1/custom-fields/values/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "values": {}
}'

Search the document archive by title, file name, note, or the words inside PDF, Office, text and XML files; filter by what it is attached to, date, or retention

GET/v1/documents

Search the document archive by title, file name, note, or the words inside PDF, Office, text and XML files; filter by what it is attached to, date, or retention

MCP tool: list-document-attachments

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
entityKind"archive" | "employee" | "payroll_run" | "asset" | "cash_document" | "contact" | "contract" | "invoice" | "received_invoice" | "proforma" | "supplier_advance" | "credit_note" | "delivery_note" | "sales_document" | "stock_document" | "job_order" | "complaint" | "service_job"
entityIdstring
ID of the entity.
retention"expired" | "kept" | "held"

Response · 200

dataobject[]required
object"document_attachment"required
idstringrequired
entityKindstringrequired
entityIdnull | stringrequired
titlestringrequired
filenamestringrequired
notestring | nullrequired
documentDatestringrequireddate
contentTypestringrequired
byteSizeinteger | nullrequired
retentionRulestringrequired
retentionCitationnull | stringrequired
retentionYearsinteger | nullrequired
retentionUntilnull | stringrequireddate
retentionExpiredbooleanrequired
createdAtstringrequireddate-time
scanStatusnull | string
contentStatenull | string
retentionHoldnull | object
idstringrequired
reasonnull | stringrequired
citationstringrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/documents
curl https://api.damedoklad.cz/v1/documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Upload a file to the archive, optionally attached to a document or contact. Its retention date follows from the type and date

POST/v1/documents

Upload a file to the archive, optionally attached to a document or contact. Its retention date follows from the type and date. fileBase64 up to 25 MB. Without retentionRule the type follows from what it is attached to. The custom rule takes retentionUntil.

MCP tool: upload-document-attachment

Request body

entityKind"archive" | "employee" | "payroll_run" | "asset" | "cash_document" | "contact" | "contract" | "invoice" | "received_invoice" | "proforma" | "supplier_advance" | "credit_note" | "delivery_note" | "sales_document" | "stock_document" | "job_order" | "complaint" | "service_job"
entityIdstring | null
ID of the entity.
filenamestringrequiredmax 255 chars
contentTypestringrequiredmax 120 chars
fileBase64stringrequired
File content encoded as base64.
titlestring | null
notestring | null
retentionRule"accounting_statement" | "accounting_document" | "accounting_method" | "vat_document" | "insurance_record" | "payroll_record" | "custom"
documentDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
retentionUntilstring | null

Response · 201

idstringrequired
entityKindstringrequired
entityIdnull | stringrequired
titlestringrequired
filenamestringrequired
notestring | nullrequired
documentDatestringrequireddate
contentTypestringrequired
byteSizeinteger | nullrequired
retentionRulestringrequired
retentionCitationnull | stringrequired
retentionYearsinteger | nullrequired
retentionUntilnull | stringrequireddate
retentionExpiredbooleanrequired
createdAtstringrequireddate-time
scanStatusnull | string
contentStatenull | string
retentionHoldnull | object
idstringrequired
reasonnull | stringrequired
citationstringrequired
POST/v1/documents
curl -X POST https://api.damedoklad.cz/v1/documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "filename": "Pekárna U Lípy s.r.o.",
  "contentType": "string",
  "fileBase64": "string"
}'

Get a document

GET/v1/documents/{id}

Get a document

MCP tool: get-document-attachment

Path parameters

idstringrequired

Response · 200

idstringrequired
entityKindstringrequired
entityIdnull | stringrequired
titlestringrequired
filenamestringrequired
notestring | nullrequired
documentDatestringrequireddate
contentTypestringrequired
byteSizeinteger | nullrequired
retentionRulestringrequired
retentionCitationnull | stringrequired
retentionYearsinteger | nullrequired
retentionUntilnull | stringrequireddate
retentionExpiredbooleanrequired
createdAtstringrequireddate-time
scanStatusnull | string
contentStatenull | string
retentionHoldnull | object
idstringrequired
reasonnull | stringrequired
citationstringrequired
GET/v1/documents/{id}
curl https://api.damedoklad.cz/v1/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change the title, note, date, or retention type of a document

PATCH/v1/documents/{id}

Change the title, note, date, or retention type of a document

MCP tool: update-document-attachment

Path parameters

idstringrequired

Request body

titlestring | null
notestring | null
retentionRule"accounting_statement" | "accounting_document" | "accounting_method" | "vat_document" | "insurance_record" | "payroll_record" | "custom"
documentDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
retentionUntilstring | null

Response · 200

idstringrequired
entityKindstringrequired
entityIdnull | stringrequired
titlestringrequired
filenamestringrequired
notestring | nullrequired
documentDatestringrequireddate
contentTypestringrequired
byteSizeinteger | nullrequired
retentionRulestringrequired
retentionCitationnull | stringrequired
retentionYearsinteger | nullrequired
retentionUntilnull | stringrequireddate
retentionExpiredbooleanrequired
createdAtstringrequireddate-time
scanStatusnull | string
contentStatenull | string
retentionHoldnull | object
idstringrequired
reasonnull | stringrequired
citationstringrequired
PATCH/v1/documents/{id}
curl -X PATCH https://api.damedoklad.cz/v1/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string",
  "note": "string",
  "retentionRule": "accounting_statement"
}'

Shred a document, removing the file. Refused while the statutory retention period runs, or while an inspection or dispute holds it

DELETE/v1/documents/{id}

Shred a document, removing the file. Refused while the statutory retention period runs, or while an inspection or dispute holds it

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

MCP tool: delete-document-attachment

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/documents/{id}
curl -X DELETE https://api.damedoklad.cz/v1/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download a document

GET/v1/documents/{id}/download

Download a document

MCP tool: download-document-attachment

Path parameters

idstringrequired

Response · 200

Returns a application/octet-stream file.

GET/v1/documents/{id}/download
curl https://api.damedoklad.cz/v1/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/download \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

List what keeps documents past their period: an inspection, a dispute, a complaint, an unpaid debt

GET/v1/documents/retention-holds

List what keeps documents past their period: an inspection, a dispute, a complaint, an unpaid debt

MCP tool: list-retention-holds

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"retention_hold"required
idstringrequired
reasonstringrequired
coversFromnull | stringrequireddate
coversTonull | stringrequireddate
untilnull | stringrequireddate
notenull | stringrequired
citationnull | stringrequired
activebooleanrequired
releasedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/documents/retention-holds
curl https://api.damedoklad.cz/v1/documents/retention-holds \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Keep documents of a period past their retention, for an inspection or a dispute. Until it ends, none of them can be shredded, whatever its type

POST/v1/documents/retention-holds

Keep documents of a period past their retention, for an inspection or a dispute. Until it ends, none of them can be shredded, whatever its type. No dates means every document. It covers documents by their date, so what is uploaded later falls under it too. The law names no end date for these, so it holds until `until` or until it is released. Citation: § 32 of zákon 563/1991 Sb., § 148 of zákon 280/2009 Sb.

MCP tool: create-retention-hold

Request body

reason"inspection" | "dispute" | "complaint" | "unpaid" | "other"required
coversFromstring | null
Date as YYYY-MM-DD.
coversTostring | null
Date as YYYY-MM-DD.
untilstring | null
notestring | null

Response · 201

idstringrequired
reasonstringrequired
coversFromnull | stringrequireddate
coversTonull | stringrequireddate
untilnull | stringrequireddate
notenull | stringrequired
citationnull | stringrequired
activebooleanrequired
releasedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
POST/v1/documents/retention-holds
curl -X POST https://api.damedoklad.cz/v1/documents/retention-holds \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "inspection"
}'

End an extended retention once the inspection or dispute is over. Ordinary periods apply again

POST/v1/documents/retention-holds/{id}/release

End an extended retention once the inspection or dispute is over. Ordinary periods apply again

MCP tool: release-retention-hold

Path parameters

idstringrequired

Response · 200

idstringrequired
reasonstringrequired
coversFromnull | stringrequireddate
coversTonull | stringrequireddate
untilnull | stringrequireddate
notenull | stringrequired
citationnull | stringrequired
activebooleanrequired
releasedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
POST/v1/documents/retention-holds/{id}/release
curl -X POST https://api.damedoklad.cz/v1/documents/retention-holds/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/release \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Statutory retention periods (skartační lhůty) with their legal citation

GET/v1/documents/retention-rules

Statutory retention periods (skartační lhůty) with their legal citation

MCP tool: list-retention-rules

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"retention_rule"required
keystringrequired
yearsinteger | nullrequired
citationnull | stringrequired
csstringrequired
enstringrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/documents/retention-rules
curl https://api.damedoklad.cz/v1/documents/retention-rules \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List contacts by the state of their GDPR reasons (none, valid, expiring, expired, future, or restricted), on a given day, or by POHODA's searches over chosen reasons

GET/v1/gdpr/contacts

List contacts by the state of their GDPR reasons (none, valid, expiring, expired, future, or restricted), on a given day, or by POHODA's searches over chosen reasons

MCP tool: list-contacts-gdpr

Query parameters

state"none" | "valid" | "expiring" | "expired" | "future" | "restricted"
asOfstringYYYY-MM-DD
The state on this day. Defaults to today.
reasonIdstring
Only contacts holding this reason from the list.
match"all_valid" | "any_valid" | "any_of" | "all_of" | "expired" | "no_reason"
POHODA's searches. all_valid: has a reason and all of them hold. any_valid: at least one holds. any_of and all_of: of the reasons in reasonIds, one or all are on the contact and hold. expired: a reason has run out. no_reason: none on the contact.
reasonIdsstringmax 2000 chars
Reasons from the list, separated by commas, for match=any_of or all_of.
includeNoReason"true" | "false"
With match=expired, a contact with no reason counts as expired too.
includeDocuments"true" | "false"
Count an issued document as a reason holding from its date, for any_valid, all_valid, and no_reason. Our reading: POHODA offers this but does not say how it derives such a reason.
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"contact_gdpr_row"required
idstringrequired
namenull | stringrequired
statestringrequired
reasonCountintegerrequired
marketingOptOutbooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/gdpr/contacts
curl https://api.damedoklad.cz/v1/gdpr/contacts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List the company list of reasons for processing that a reason on a contact is picked from. A company without any gets four to start from

GET/v1/gdpr/reasons

List the company list of reasons for processing that a reason on a contact is picked from. A company without any gets four to start from

MCP tool: list-gdpr-reason-codes

Query parameters

active"true" | "false"
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"gdpr_reason_code"required
idstringrequired
namestringrequired
legalBasisstringrequired
descriptionnull | stringrequired
validityMonthsinteger | nullrequired
isActivebooleanrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/gdpr/reasons
curl https://api.damedoklad.cz/v1/gdpr/reasons \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a reason for processing to the company list: its name, legal basis, description, and how long it lasts

POST/v1/gdpr/reasons

Add a reason for processing to the company list: its name, legal basis, description, and how long it lasts

MCP tool: create-gdpr-reason-code

Request body

namestringrequiredmax 200 chars
legalBasis"consent" | "contract" | "legal_obligation" | "vital_interest" | "public_task" | "legitimate_interest"required
descriptionstring | null
validityMonthsinteger | null
How long a reason lasts from its start. Empty: until someone ends it.
isActiveboolean

Response · 201

idstringrequired
namestringrequired
legalBasisstringrequired
descriptionnull | stringrequired
validityMonthsinteger | nullrequired
isActivebooleanrequired
POST/v1/gdpr/reasons
curl -X POST https://api.damedoklad.cz/v1/gdpr/reasons \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "legalBasis": "consent"
}'

Change a reason on the company list or stop offering it. Reasons already on contacts keep what they said

PATCH/v1/gdpr/reasons/{id}

Change a reason on the company list or stop offering it. Reasons already on contacts keep what they said

MCP tool: update-gdpr-reason-code

Path parameters

idstringrequired

Request body

namestringmax 200 chars
legalBasis"consent" | "contract" | "legal_obligation" | "vital_interest" | "public_task" | "legitimate_interest"
descriptionstring | null
validityMonthsinteger | null
How long a reason lasts from its start. Empty: until someone ends it.
isActiveboolean

Response · 200

idstringrequired
namestringrequired
legalBasisstringrequired
descriptionnull | stringrequired
validityMonthsinteger | nullrequired
isActivebooleanrequired
PATCH/v1/gdpr/reasons/{id}
curl -X PATCH https://api.damedoklad.cz/v1/gdpr/reasons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "legalBasis": "consent",
  "description": "Pečivo, říjen"
}'

Remove a reason from the company list. One already used on a contact stays and can only be stopped being offered

DELETE/v1/gdpr/reasons/{id}

Remove a reason from the company list. One already used on a contact stays and can only be stopped being offered

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

MCP tool: delete-gdpr-reason-code

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/gdpr/reasons/{id}
curl -X DELETE https://api.damedoklad.cz/v1/gdpr/reasons/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Send a document still in the inbox for approval, before any invoice is made from it. Until it is approved it cannot become a document; once approved, the document made from it is approved too

POST/v1/inbox/documents/{id}/approval

Send a document still in the inbox for approval, before any invoice is made from it. Until it is approved it cannot become a document; once approved, the document made from it is approved too

MCP tool: request-inbox-document-approval

Path parameters

idstringrequired

Request body

approverIdstring | null
ID of the approver.
scenarioIdstring | null
ID of the scenario.
commentstring | null

Response · 201

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
POST/v1/inbox/documents/{id}/approval
curl -X POST https://api.damedoklad.cz/v1/inbox/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/approval \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "approverId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "scenarioId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "comment": "string"
}'

The credit notes of a month: which brought goods back (reported with code 21), and which only changed a price, with whether the original declaration must be corrected (over 5 %, or the whole price)

GET/v1/intrastat/credits

The credit notes of a month: which brought goods back (reported with code 21), and which only changed a price, with whether the original declaration must be corrected (over 5 %, or the whole price)

MCP tool: list-intrastat-credits

Query parameters

yearintegerrequiredmin 2020max 2100
monthintegerrequiredmin 1max 12
limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
kindstringrequired
documentIdnull | stringrequired
numbernull | stringrequired
contactNamenull | stringrequired
taxPointDatenull | stringrequireddate
creditKindnull | stringrequired
directionstringrequired
valueHalerinteger | nullrequired
correctsDirectionstring
correctsYearinteger
correctsMonthinteger
originalNumbernull | string
percentinteger | null
fullboolean
mustCorrectboolean
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/intrastat/credits
curl https://api.damedoklad.cz/v1/intrastat/credits \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List Intrastat declarations

GET/v1/intrastat/declarations

List Intrastat declarations

MCP tool: list-intrastat-declarations

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
yearintegermin -9007199254740991max 9007199254740991
direction"dispatch" | "arrival"

Response · 200

dataobject[]required
object"intrastat_declaration"required
idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/intrastat/declarations
curl https://api.damedoklad.cz/v1/intrastat/declarations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Prepare the declaration for a month and direction from EU goods invoices. Kind negative or simplified carries no goods lines

POST/v1/intrastat/declarations

Prepare the declaration for a month and direction from EU goods invoices. Kind negative or simplified carries no goods lines

MCP tool: create-intrastat-declaration

Request body

yearintegerrequiredmin 2020max 2100
monthintegerrequiredmin 1max 12
direction"dispatch" | "arrival"required
kind"standard" | "negative" | "simplified"

Response · 201

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
POST/v1/intrastat/declarations
curl -X POST https://api.damedoklad.cz/v1/intrastat/declarations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "year": 2026,
  "month": 1,
  "direction": "dispatch"
}'

Get a declaration with its lines and what stops each line from being filed

GET/v1/intrastat/declarations/{id}

Get a declaration with its lines and what stops each line from being filed

MCP tool: get-intrastat-declaration

Path parameters

idstringrequired

Response · 200

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
GET/v1/intrastat/declarations/{id}
curl https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Delete a declaration that has not been filed

DELETE/v1/intrastat/declarations/{id}

Delete a declaration that has not been filed

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

MCP tool: delete-intrastat-declaration

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/intrastat/declarations/{id}
curl -X DELETE https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download the declaration as the CSV file that InstatEvo imports (structure valid from 1 January 2026)

GET/v1/intrastat/declarations/{id}/csv

Download the declaration as the CSV file that InstatEvo imports (structure valid from 1 January 2026)

MCP tool: download-intrastat-csv

Path parameters

idstringrequired

Response · 200

Returns a text/csv file.

GET/v1/intrastat/declarations/{id}/csv
curl https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/csv \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Mark a declaration as filed in InstatEvo and lock it. Filing itself happens in the customs application; this API cannot submit

POST/v1/intrastat/declarations/{id}/file

Mark a declaration as filed in InstatEvo and lock it. Filing itself happens in the customs application; this API cannot submit

MCP tool: mark-intrastat-filed

Path parameters

idstringrequired

Response · 200

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
POST/v1/intrastat/declarations/{id}/file
curl -X POST https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/file \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Add a line by hand: a return (21), a free replacement (22, 23), or goods without an invoice

POST/v1/intrastat/declarations/{id}/lines

Add a line by hand: a return (21), a free replacement (22, 23), or goods without an invoice

MCP tool: add-intrastat-line

Path parameters

idstringrequired

Request body

commodityCodestring | null
statisticalSignstring | null
countryCodestring | null
originCountrystring | null
transaction"11" | "12" | "21" | "22" | "23" | "31" | "32" | "33" | "34" | "41" | "42" | "51" | "52" | "71" | "72" | "80" | "91" | "99" | null
transport"2" | "3" | "4" | "5" | "7" | "8" | "9" | null
deliveryTerms"K" | "L" | "M" | "N" | null
recordType"ST" | "MZ" | "ZI" | "ZR" | "ZL" | "ZP" | "ZZ" | "ZT" | "ZM" | "ZK" | "ZO"
partnerVatstring | null
descriptionstring | null
massGramsintegermin 0max 9007199254740991
supplementaryMilliintegermin 0max 9007199254740991
Integer thousandths: 1500 means 1.5.
valueHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.

Response · 201

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
POST/v1/intrastat/declarations/{id}/lines
curl -X POST https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "commodityCode": "string",
  "statisticalSign": "string",
  "countryCode": "string"
}'

Correct a line of a draft declaration. Reading the documents again replaces corrections to generated lines: fix the item or document data to keep them

PATCH/v1/intrastat/declarations/{id}/lines/{lineId}

Correct a line of a draft declaration. Reading the documents again replaces corrections to generated lines: fix the item or document data to keep them

MCP tool: update-intrastat-line

Path parameters

idstringrequired
lineIdstringrequired
ID of the line.

Request body

commodityCodestring | null
statisticalSignstring | null
countryCodestring | null
originCountrystring | null
transaction"11" | "12" | "21" | "22" | "23" | "31" | "32" | "33" | "34" | "41" | "42" | "51" | "52" | "71" | "72" | "80" | "91" | "99" | null
transport"2" | "3" | "4" | "5" | "7" | "8" | "9" | null
deliveryTerms"K" | "L" | "M" | "N" | null
recordType"ST" | "MZ" | "ZI" | "ZR" | "ZL" | "ZP" | "ZZ" | "ZT" | "ZM" | "ZK" | "ZO"
partnerVatstring | null
descriptionstring | null
massGramsintegermin 0max 9007199254740991
supplementaryMilliintegermin 0max 9007199254740991
Integer thousandths: 1500 means 1.5.
valueHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.

Response · 200

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
PATCH/v1/intrastat/declarations/{id}/lines/{lineId}
curl -X PATCH https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "commodityCode": "string",
  "statisticalSign": "string",
  "countryCode": "string"
}'

Remove a line of a draft declaration

DELETE/v1/intrastat/declarations/{id}/lines/{lineId}

Remove a line of a draft declaration

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

MCP tool: remove-intrastat-line

Path parameters

idstringrequired
lineIdstringrequired
ID of the line.

Response · 200

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
DELETE/v1/intrastat/declarations/{id}/lines/{lineId}
curl -X DELETE https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/lines/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Read the documents again after changing item or document data. Manual lines stay

POST/v1/intrastat/declarations/{id}/regenerate

Read the documents again after changing item or document data. Manual lines stay

MCP tool: regenerate-intrastat-declaration

Path parameters

idstringrequired

Response · 200

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
POST/v1/intrastat/declarations/{id}/regenerate
curl -X POST https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/regenerate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Unlock a filed declaration to correct it. A correction must also be sent in InstatEvo

POST/v1/intrastat/declarations/{id}/reopen

Unlock a filed declaration to correct it. A correction must also be sent in InstatEvo

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

MCP tool: reopen-intrastat-declaration

Path parameters

idstringrequired

Response · 200

idstringrequired
yearintegerrequired
monthintegerrequired
directionstringrequired
kindstringrequired
statusstringrequired
deadlinestringrequireddate
filedAtnull | stringrequireddate-time
linesobject[]required
object"intrastat_line"required
idstringrequired
sourcestringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
countryCodenull | stringrequired
originCountrynull | stringrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
recordTypestringrequired
partnerVatnull | stringrequired
descriptionnull | stringrequired
massGramsintegerrequired
supplementaryMilliintegerrequired
valueHalerintegerrequired
documentNumbersstring[]required
problemsstring[]required
totalValueHalerintegerrequired
problemCountintegerrequired
POST/v1/intrastat/declarations/{id}/reopen
curl -X POST https://api.damedoklad.cz/v1/intrastat/declarations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reopen \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set the default transaction nature, transport, and delivery terms used for documents without their own

PUT/v1/intrastat/defaults

Set the default transaction nature, transport, and delivery terms used for documents without their own

MCP tool: update-intrastat-defaults

Request body

transaction"11" | "12" | "21" | "22" | "23" | "31" | "32" | "33" | "34" | "41" | "42" | "51" | "52" | "71" | "72" | "80" | "91" | "99"required
transport"2" | "3" | "4" | "5" | "7" | "8" | "9"required
deliveryTerms"K" | "L" | "M" | "N"required

Response · 200

transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
PUT/v1/intrastat/defaults
curl -X PUT https://api.damedoklad.cz/v1/intrastat/defaults \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": "11",
  "transport": "2",
  "deliveryTerms": "K"
}'

Get the Intrastat data of a document: transaction nature, transport, delivery terms, or that it is excluded

GET/v1/intrastat/documents/{kind}/{id}

Get the Intrastat data of a document: transaction nature, transport, delivery terms, or that it is excluded

MCP tool: get-intrastat-document

Path parameters

kindstringrequired
idstringrequired

Response · 200

kindstringrequired
documentIdnull | stringrequired
transactionstring
transportnull | string
deliveryTermsnull | string
countryCodenull | string
excludedbooleanrequired
creditKindnull | string
GET/v1/intrastat/documents/{kind}/{id}
curl https://api.damedoklad.cz/v1/intrastat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set the Intrastat data of a document, overriding the defaults, or exclude it from declarations

PUT/v1/intrastat/documents/{kind}/{id}

Set the Intrastat data of a document, overriding the defaults, or exclude it from declarations

MCP tool: update-intrastat-document

Path parameters

kindstringrequired
idstringrequired

Request body

transaction"11" | "12" | "21" | "22" | "23" | "31" | "32" | "33" | "34" | "41" | "42" | "51" | "52" | "71" | "72" | "80" | "91" | "99" | null
transport"2" | "3" | "4" | "5" | "7" | "8" | "9" | null
deliveryTerms"K" | "L" | "M" | "N" | null
countryCodestring | null
excludedboolean
creditKind"return" | "price" | null

Response · 200

kindstringrequired
documentIdnull | stringrequired
transactionstring
transportnull | string
deliveryTermsnull | string
countryCodenull | string
excludedbooleanrequired
creditKindnull | string
PUT/v1/intrastat/documents/{kind}/{id}
curl -X PUT https://api.damedoklad.cz/v1/intrastat/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction": "11",
  "transport": "2",
  "deliveryTerms": "K"
}'

Get the Intrastat data of a stock item: commodity code, mass per unit, country of origin

GET/v1/intrastat/items/{itemId}

Get the Intrastat data of a stock item: commodity code, mass per unit, country of origin

MCP tool: get-intrastat-item

Path parameters

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

Response · 200

itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
originCountrynull | stringrequired
massGramsinteger | nullrequired
supplementaryMilliinteger | nullrequired
GET/v1/intrastat/items/{itemId}
curl https://api.damedoklad.cz/v1/intrastat/items/itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set the Intrastat data of a stock item

PUT/v1/intrastat/items/{itemId}

Set the Intrastat data of a stock item

MCP tool: update-intrastat-item

Path parameters

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

Request body

commodityCodestring | null
statisticalSignstring | null
originCountrystring | null
massGramsinteger | null
supplementaryMilliinteger | null
Integer thousandths: 1500 means 1.5.

Response · 200

itemIdnull | stringrequired
skustringrequired
namenull | stringrequired
commodityCodenull | stringrequired
statisticalSignstring | nullrequired
originCountrynull | stringrequired
massGramsinteger | nullrequired
supplementaryMilliinteger | nullrequired
PUT/v1/intrastat/items/{itemId}
curl -X PUT https://api.damedoklad.cz/v1/intrastat/items/itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "commodityCode": "string",
  "statisticalSign": "string",
  "originCountry": "string"
}'

Whether Intrastat is due this month in each direction: running total against the 15 million CZK threshold, duty carried from last year, deadline

GET/v1/intrastat/status

Whether Intrastat is due this month in each direction: running total against the 15 million CZK threshold, duty carried from last year, deadline

MCP tool: get-intrastat-status

Query parameters

yearintegermin 2020max 2100
monthintegermin 1max 12

Response · 200

yearintegerrequired
monthinteger | nullrequired
thresholdHalerintegerrequired
simplifiedLimitHalerintegerrequired
deadlinestringrequireddate
vatRegisteredbooleanrequired
defaultsobjectrequired
transactionstringrequired
transportnull | stringrequired
deliveryTermsnull | stringrequired
dispatchobjectrequired
directionstringrequired
monthsobjectrequired
previousYearHalerintegerrequired
yearintegerrequired
monthinteger | nullrequired
requiredbooleanrequired
carriedOverbooleanrequired
reachedInMonthinteger | nullrequired
firstMonthinteger | nullrequired
runningHalerintegerrequired
yearTotalHalerintegerrequired
thresholdHalerintegerrequired
remainingHalerinteger | nullrequired
simplifiedPossiblebooleanrequired
requiredUntilYearinteger | nullrequired
deadlinestringrequireddate
simplifiedBlockersstring[]
coveredBySimplifiedboolean
arrivalobjectrequired
directionstringrequired
monthsobjectrequired
previousYearHalerintegerrequired
yearintegerrequired
monthinteger | nullrequired
requiredbooleanrequired
carriedOverbooleanrequired
reachedInMonthanyrequired
Null in every recorded response.
firstMonthanyrequired
Null in every recorded response.
runningHalerintegerrequired
yearTotalHalerintegerrequired
thresholdHalerintegerrequired
remainingHalerinteger | nullrequired
simplifiedPossiblebooleanrequired
requiredUntilYearanyrequired
Null in every recorded response.
deadlinestringrequireddate
simplifiedBlockersany[]
coveredBySimplifiedboolean
GET/v1/intrastat/status
curl https://api.damedoklad.cz/v1/intrastat/status \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List received invoices and advances to suppliers in approval, with their status and approver

GET/v1/invoice-approvals

List received invoices and advances to suppliers in approval, with their status and approver

MCP tool: list-invoice-approvals

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
status"pending" | "approved" | "rejected" | "cancelled"

Response · 200

dataobject[]required
object"invoice_approval"required
idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/invoice-approvals
curl https://api.damedoklad.cz/v1/invoice-approvals \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Get one approval with its history

GET/v1/invoice-approvals/{id}

Get one approval with its history

MCP tool: get-invoice-approval

Path parameters

idstringrequired

Response · 200

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
GET/v1/invoice-approvals/{id}
curl https://api.damedoklad.cz/v1/invoice-approvals/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Approve a received invoice or an advance to a supplier for payment, or one step of its scenario. Only the named approver, an owner, or an accountant can, and one person decides one step

POST/v1/invoice-approvals/{id}/approve

Approve a received invoice or an advance to a supplier for payment, or one step of its scenario. Only the named approver, an owner, or an accountant can, and one person decides one step

MCP tool: approve-invoice

Path parameters

idstringrequired

Request body

commentstring | null

Response · 200

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
POST/v1/invoice-approvals/{id}/approve
curl -X POST https://api.damedoklad.cz/v1/invoice-approvals/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/approve \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "comment": "string"
}'

Reject a received invoice or an advance to a supplier with a comment. It stays out of payment orders until sent for approval again

POST/v1/invoice-approvals/{id}/reject

Reject a received invoice or an advance to a supplier with a comment. It stays out of payment orders until sent for approval again

MCP tool: reject-invoice

Path parameters

idstringrequired

Request body

commentstringrequiredmax 2000 chars

Response · 200

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
POST/v1/invoice-approvals/{id}/reject
curl -X POST https://api.damedoklad.cz/v1/invoice-approvals/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/reject \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "comment": "string"
}'

Members of the company who can be named as approvers

GET/v1/invoice-approvals/approvers

Members of the company who can be named as approvers

MCP tool: list-invoice-approvers

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"invoice_approver"required
idstringrequired
namenull | stringrequired
emailnull | stringrequired
rolestringrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/invoice-approvals/approvers
curl https://api.damedoklad.cz/v1/invoice-approvals/approvers \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List who stands in for whom in approvals, and when

GET/v1/invoice-approvals/delegations

List who stands in for whom in approvals, and when

MCP tool: list-approval-delegations

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataany[]required
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/invoice-approvals/delegations
curl https://api.damedoklad.cz/v1/invoice-approvals/delegations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Name who stands in during an absence: between the dates they may decide what waits on the person away. One person still decides one step

POST/v1/invoice-approvals/delegations

Name who stands in during an absence: between the dates they may decide what waits on the person away. One person still decides one step

MCP tool: create-approval-delegation

Request body

delegatorIdstring
Who is away. Left out: the person asking. Only an owner or accountant can name someone else.
delegateIdstringrequired
ID of the delegate.
startsOnstringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
endsOnstringrequiredYYYY-MM-DD
Date as YYYY-MM-DD.
notestring | null

Response · 201

idstringrequired
delegatorIdstringrequired
delegatorNamestringrequired
delegateIdstringrequired
delegateNamestringrequired
startsOnstringrequireddate
endsOnstringrequireddate
notenull | stringrequired
createdAtstringrequireddate-time
POST/v1/invoice-approvals/delegations
curl -X POST https://api.damedoklad.cz/v1/invoice-approvals/delegations \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "delegateId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "startsOn": "2026-10-30",
  "endsOn": "2026-10-30"
}'

End a stand-in

DELETE/v1/invoice-approvals/delegations/{id}

End a stand-in

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

MCP tool: delete-approval-delegation

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/invoice-approvals/delegations/{id}
curl -X DELETE https://api.damedoklad.cz/v1/invoice-approvals/delegations/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List approval scenarios: several approvers in order, optionally applied on their own from an amount

GET/v1/invoice-approvals/scenarios

List approval scenarios: several approvers in order, optionally applied on their own from an amount

MCP tool: list-approval-scenarios

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"approval_scenario"required
idstringrequired
namestringrequired
minTotalHalerinteger | nullrequired
activebooleanrequired
approversobject[]required
idstringrequired
namestringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
stagesarray | null
modestringrequired
approversobject[]required
idstringrequired
namestringrequired
processornull | object
idstringrequired
namestringrequired
documentKindsstring[]
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/invoice-approvals/scenarios
curl https://api.damedoklad.cz/v1/invoice-approvals/scenarios \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create an approval scenario: at least two members in the order they approve, and optionally the amount in haléře from which it applies on its own

POST/v1/invoice-approvals/scenarios

Create an approval scenario: at least two members in the order they approve, and optionally the amount in haléře from which it applies on its own. A document already in approval stays on its route. With no scenario a document goes to one approver, as before.

MCP tool: create-approval-scenario

Request body

namestringrequiredmax 120 chars
approverIdsstring[]
Approvers one after another. For parallel steps use stages instead.
stagesobject[]
Steps in order; the people of one step decide at the same time.
approverIdsstring[]required
mode"all" | "any"
all: each of them must approve. any: one is enough.
processorIdstring | null
Who prepares the document before the first step.
documentKinds"received_invoice" | "supplier_advance" | "inbox_document" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable"[]
What the scenario applies to. Default: received invoices and advances to suppliers.
minTotalHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
activeboolean

Response · 201

idstringrequired
namestringrequired
minTotalHalerinteger | nullrequired
activebooleanrequired
approversobject[]required
idstringrequired
namestringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
stagesarray | null
modestringrequired
approversobject[]required
idstringrequired
namestringrequired
processornull | object
idstringrequired
namestringrequired
documentKindsstring[]
POST/v1/invoice-approvals/scenarios
curl -X POST https://api.damedoklad.cz/v1/invoice-approvals/scenarios \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o."
}'

Change an approval scenario. A document already in approval stays on the steps it started with

PATCH/v1/invoice-approvals/scenarios/{id}

Change an approval scenario. A document already in approval stays on the steps it started with

MCP tool: update-approval-scenario

Path parameters

idstringrequired

Request body

namestringmax 120 chars
approverIdsstring[]
Approvers one after another. For parallel steps use stages instead.
stagesobject[]
Steps in order; the people of one step decide at the same time.
approverIdsstring[]required
mode"all" | "any"
all: each of them must approve. any: one is enough.
processorIdstring | null
Who prepares the document before the first step.
documentKinds"received_invoice" | "supplier_advance" | "inbox_document" | "quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable"[]
What the scenario applies to. Default: received invoices and advances to suppliers.
minTotalHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
activeboolean

Response · 200

idstringrequired
namestringrequired
minTotalHalerinteger | nullrequired
activebooleanrequired
approversobject[]required
idstringrequired
namestringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
stagesarray | null
modestringrequired
approversobject[]required
idstringrequired
namestringrequired
processornull | object
idstringrequired
namestringrequired
documentKindsstring[]
PATCH/v1/invoice-approvals/scenarios/{id}
curl -X PATCH https://api.damedoklad.cz/v1/invoice-approvals/scenarios/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "approverIds": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "stages": [
    {
      "approverIds": [
        "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
      ]
    }
  ]
}'

Delete an approval scenario. Documents under way keep their steps

DELETE/v1/invoice-approvals/scenarios/{id}

Delete an approval scenario. Documents under way keep their steps

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

MCP tool: delete-approval-scenario

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/invoice-approvals/scenarios/{id}
curl -X DELETE https://api.damedoklad.cz/v1/invoice-approvals/scenarios/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Whether received invoices must be approved before a payment order, and who approves by default

GET/v1/invoice-approvals/settings

Whether received invoices must be approved before a payment order, and who approves by default

MCP tool: get-invoice-approval-settings

Response · 200

requiredbooleanrequired
defaultApproverIdnull | stringrequired
defaultProcessorIdnull | string
salesKindsstring[]
GET/v1/invoice-approvals/settings
curl https://api.damedoklad.cz/v1/invoice-approvals/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Turn approval on or off. Turning it on sends every unpaid recorded invoice and advance to a supplier for approval

PUT/v1/invoice-approvals/settings

Turn approval on or off. Turning it on sends every unpaid recorded invoice and advance to a supplier for approval

MCP tool: update-invoice-approval-settings

Request body

requiredbooleanrequired
defaultApproverIdstring | null
ID of the default approver.
defaultProcessorIdstring | null
Who prepares a document first and hands it on to the approvers.
salesKinds"quote" | "rfq" | "order_received" | "order_issued" | "debit_note" | "other_receivable" | "other_payable"[]
Kinds of sales document that cannot be issued until approved, such as issued orders.

Response · 200

requiredbooleanrequired
defaultApproverIdnull | stringrequired
defaultProcessorIdnull | string
salesKindsstring[]
PUT/v1/invoice-approvals/settings
curl -X PUT https://api.damedoklad.cz/v1/invoice-approvals/settings \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "required": false
}'

List job orders (zakázky) with revenue, cost, and margin from the books

GET/v1/job-orders

List job orders (zakázky) with revenue, cost, and margin from the books

MCP tool: list-job-orders

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
status"planned" | "active" | "finished" | "cancelled"
contactIdstring
ID of the contact. Find it with list-contacts.

Response · 200

dataobject[]required
object"job_order"required
idstringrequired
numberstringrequired
namestringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
dimensionIdstringrequired
statusstringrequired
startsOnnull | stringrequireddate
endsOnstring | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
notestring | nullrequired
profitabilityobjectrequired
revenueHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentinteger | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
budgetMarginHalerintegerrequired
revenueBudgetUsedPercentinteger | nullrequired
costBudgetUsedPercentinteger | nullrequired
costBudgetLeftHalerinteger | nullrequired
overBudgetbooleanrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
monthsobject[]
monthnull | stringrequired
revenueHalerintegerrequired
costHalerintegerrequired
documentsobject[]
kindstringrequired
tabnull | stringrequired
idstringrequired
numberstringrequired
statusstringrequired
contactNamenull | stringrequired
datestringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/job-orders
curl https://api.damedoklad.cz/v1/job-orders \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a job order. It gets its own project dimension to choose on documents, so their postings count toward it

POST/v1/job-orders

Create a job order. It gets its own project dimension to choose on documents, so their postings count toward it

MCP tool: create-job-order

Request body

namestringrequiredmax 200 chars
contactIdstring | null
ID of the contact. Find it with list-contacts.
status"planned" | "active" | "finished" | "cancelled"
startsOnstring | null
Date as YYYY-MM-DD.
endsOnstring | null
Date as YYYY-MM-DD.
budgetRevenueHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
budgetCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
notestring | null

Response · 201

idstringrequired
numberstringrequired
namestringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
dimensionIdstringrequired
statusstringrequired
startsOnnull | stringrequireddate
endsOnstring | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
notestring | nullrequired
profitabilityobjectrequired
revenueHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentinteger | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
budgetMarginHalerintegerrequired
revenueBudgetUsedPercentinteger | nullrequired
costBudgetUsedPercentinteger | nullrequired
costBudgetLeftHalerinteger | nullrequired
overBudgetbooleanrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
monthsobject[]
monthnull | stringrequired
revenueHalerintegerrequired
costHalerintegerrequired
documentsobject[]
kindstringrequired
tabnull | stringrequired
idstringrequired
numberstringrequired
statusstringrequired
contactNamenull | stringrequired
datestringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
POST/v1/job-orders
curl -X POST https://api.damedoklad.cz/v1/job-orders \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "name": "Pekárna U Lípy s.r.o."
}'

Get a job order with its documents, monthly revenue and cost, and profitability

GET/v1/job-orders/{id}

Get a job order with its documents, monthly revenue and cost, and profitability

MCP tool: get-job-order

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
namestringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
dimensionIdstringrequired
statusstringrequired
startsOnnull | stringrequireddate
endsOnstring | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
notestring | nullrequired
profitabilityobjectrequired
revenueHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentinteger | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
budgetMarginHalerintegerrequired
revenueBudgetUsedPercentinteger | nullrequired
costBudgetUsedPercentinteger | nullrequired
costBudgetLeftHalerinteger | nullrequired
overBudgetbooleanrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
monthsobject[]
monthnull | stringrequired
revenueHalerintegerrequired
costHalerintegerrequired
documentsobject[]
kindstringrequired
tabnull | stringrequired
idstringrequired
numberstringrequired
statusstringrequired
contactNamenull | stringrequired
datestringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
GET/v1/job-orders/{id}
curl https://api.damedoklad.cz/v1/job-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Update a job order. Cancelling it hides its dimension from new documents

PATCH/v1/job-orders/{id}

Update a job order. Cancelling it hides its dimension from new documents

MCP tool: update-job-order

Path parameters

idstringrequired

Request body

namestringmax 200 chars
contactIdstring | null
ID of the contact. Find it with list-contacts.
status"planned" | "active" | "finished" | "cancelled"
startsOnstring | null
Date as YYYY-MM-DD.
endsOnstring | null
Date as YYYY-MM-DD.
budgetRevenueHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
budgetCostHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
notestring | null

Response · 200

idstringrequired
numberstringrequired
namestringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
dimensionIdstringrequired
statusstringrequired
startsOnnull | stringrequireddate
endsOnstring | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
notestring | nullrequired
profitabilityobjectrequired
revenueHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentinteger | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
budgetMarginHalerintegerrequired
revenueBudgetUsedPercentinteger | nullrequired
costBudgetUsedPercentinteger | nullrequired
costBudgetLeftHalerinteger | nullrequired
overBudgetbooleanrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
monthsobject[]
monthnull | stringrequired
revenueHalerintegerrequired
costHalerintegerrequired
documentsobject[]
kindstringrequired
tabnull | stringrequired
idstringrequired
numberstringrequired
statusstringrequired
contactNamenull | stringrequired
datestringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
PATCH/v1/job-orders/{id}
curl -X PATCH https://api.damedoklad.cz/v1/job-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "status": "planned"
}'

Delete a job order nothing was posted or linked to. Otherwise cancel it

DELETE/v1/job-orders/{id}

Delete a job order nothing was posted or linked to. Otherwise cancel it

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

MCP tool: delete-job-order

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/job-orders/{id}
curl -X DELETE https://api.damedoklad.cz/v1/job-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Assign a draft document to a job order. A posted document cannot move: its journal entry already carries the dimension

POST/v1/job-orders/{id}/documents

Assign a draft document to a job order. A posted document cannot move: its journal entry already carries the dimension

MCP tool: link-job-order-document

Path parameters

idstringrequired

Request body

kind"invoice" | "received_invoice" | "credit_note" | "proforma"required
documentIdstringrequired
ID of the document.

Response · 200

jobOrderIdnull | stringrequired
kindstringrequired
documentIdnull | stringrequired
POST/v1/job-orders/{id}/documents
curl -X POST https://api.damedoklad.cz/v1/job-orders/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/documents \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "invoice",
  "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Profitability report across job orders: revenue, cost, margin, and budget use, with totals

GET/v1/job-orders/report

Profitability report across job orders: revenue, cost, margin, and budget use, with totals

MCP tool: get-job-order-report

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
status"planned" | "active" | "finished" | "cancelled"
contactIdstring
ID of the contact. Find it with list-contacts.

Response · 200

dataobject[]required
object"job_order"required
idstringrequired
numberstringrequired
namestringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
dimensionIdstringrequired
statusstringrequired
startsOnnull | stringrequireddate
endsOnstring | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
notestring | nullrequired
profitabilityobjectrequired
revenueHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentinteger | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
budgetMarginHalerintegerrequired
revenueBudgetUsedPercentinteger | nullrequired
costBudgetUsedPercentinteger | nullrequired
costBudgetLeftHalerinteger | nullrequired
overBudgetbooleanrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
monthsobject[]
monthnull | stringrequired
revenueHalerintegerrequired
costHalerintegerrequired
documentsobject[]
kindstringrequired
tabnull | stringrequired
idstringrequired
numberstringrequired
statusstringrequired
contactNamenull | stringrequired
datestringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
totalsobjectrequired
revenueHalerintegerrequired
costHalerintegerrequired
marginHalerintegerrequired
marginPercentinteger | nullrequired
budgetRevenueHalerintegerrequired
budgetCostHalerintegerrequired
budgetMarginHalerintegerrequired
revenueBudgetUsedPercentinteger | nullrequired
costBudgetUsedPercentinteger | nullrequired
costBudgetLeftHalerinteger | nullrequired
overBudgetbooleanrequired
GET/v1/job-orders/report
curl https://api.damedoklad.cz/v1/job-orders/report \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Get the document print options: logo position, accent colour, footer, and what shows

GET/v1/print-template

Get the document print options: logo position, accent colour, footer, and what shows

MCP tool: get-print-template

Response · 200

logoPositionstringrequired
accentColornull | stringrequired
footerTextnull | stringrequired
showLogobooleanrequired
showQrCodebooleanrequired
showBankDetailsbooleanrequired
showNotesbooleanrequired
showSellerContactbooleanrequired
showSignaturebooleanrequired
hasLogobooleanrequired
hasStampboolean
GET/v1/print-template
curl https://api.damedoklad.cz/v1/print-template \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set the document print options. New PDFs use them; an issued document keeps the PDF it was issued with

PUT/v1/print-template

Set the document print options. New PDFs use them; an issued document keeps the PDF it was issued with. What the law requires on a tax document, such as seller and buyer, VAT breakdown, and tax wording, cannot be switched off.

MCP tool: update-print-template

Request body

logoPosition"left" | "center" | "right"
accentColorstring | null
footerTextstring | null
showLogoboolean
showQrCodeboolean
showBankDetailsboolean
showNotesboolean
showSellerContactboolean
showSignatureboolean

Response · 200

logoPositionstringrequired
accentColornull | stringrequired
footerTextnull | stringrequired
showLogobooleanrequired
showQrCodebooleanrequired
showBankDetailsbooleanrequired
showNotesbooleanrequired
showSellerContactbooleanrequired
showSignaturebooleanrequired
hasLogobooleanrequired
hasStampboolean
PUT/v1/print-template
curl -X PUT https://api.damedoklad.cz/v1/print-template \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "logoPosition": "left",
  "accentColor": "string",
  "footerText": "string"
}'

List the document types with a print layout: their blocks and columns, which of them the law keeps on the document, and the languages each prints in

GET/v1/print-template/catalog

List the document types with a print layout: their blocks and columns, which of them the law keeps on the document, and the languages each prints in

MCP tool: get-print-catalog

Response · 200

typesobject[]required
typestringrequired
languagesstring[]required
blocksobject[]required
keystringrequired
requiredbooleanrequired
columnsobject[]required
keystringrequired
widthintegerrequired
requiredbooleanrequired
flexiblebooleanrequired
freeOnlyboolean
designobject
typestringrequired
freeOnlybooleanrequired
pagesstring[]required
customPagebooleanrequired
sheetbooleanrequired
blocksobject[]required
keystringrequired
requiredbooleanrequired
reasonnull | stringrequired
minWidthintegerrequired
fieldsobject[]required
keystringrequired
kindstringrequired
listbooleanrequired
linkKindsstring[]required
requiredFieldsstring[]required
optionsobject
elementsstring[]required
formatsstring[]required
alignsstring[]required
symbologiesstring[]required
contentKindsstring[]required
imageSourcesstring[]required
chartsstring[]required
shapesstring[]required
functionsstring[]required
pagesobjectrequired
a4objectrequired
widthintegerrequired
heightintegerrequired
a4_landscapeobjectrequired
widthintegerrequired
heightintegerrequired
a5objectrequired
widthintegerrequired
heightintegerrequired
receipt80objectrequired
widthintegerrequired
heightanyrequired
Null in every recorded response.
GET/v1/print-template/catalog
curl https://api.damedoklad.cz/v1/print-template/catalog \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Check a layout without saving it, and say by name what stops it being used: anything the law requires that is missing or covered, a formula that cannot be read, a field the document does not have

POST/v1/print-template/check

Check a layout without saving it, and say by name what stops it being used: anything the law requires that is missing or covered, a formula that cannot be read, a field the document does not have

MCP tool: check-print-layout

Request body

documentType"invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "reminder" | "stock_document" | "protocol" | "receipt" | "item_label" | "contact_label" | "postal_order"required
layoutobjectrequired
mode"free"required
pageobjectrequired
elementsobject[]required
columnsobject[]
keystringrequiredmax 40 chars
visibleboolean
widthnumbermin 0max 200

Response · 200

okbooleanrequired
problemsobject[]required
codenull | stringrequired
messagenull | stringrequired
blockstring
POST/v1/print-template/check
curl -X POST https://api.damedoklad.cz/v1/print-template/check \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "invoice",
  "layout": {
    "mode": "free",
    "page": {},
    "elements": [
      {}
    ]
  }
}'

Get the pictures a layout can use: PNG and JPEG images from the document archive, and pictures of stock items

GET/v1/print-template/images

Get the pictures a layout can use: PNG and JPEG images from the document archive, and pictures of stock items

MCP tool: get-print-images

Response · 200

archiveobject[]required
fileIdnull | stringrequired
titlenull | stringrequired
itemsobject[]required
fileIdnull | stringrequired
itemIdnull | stringrequired
titlenull | stringrequired
GET/v1/print-template/images
curl https://api.damedoklad.cz/v1/print-template/images \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download a picture from the archive or a stock item, to show it in the layout editor

GET/v1/print-template/images/{id}

Download a picture from the archive or a stock item, to show it in the layout editor

MCP tool: get-print-image

Path parameters

idstringrequired

Response · 200

Returns a image/png file.

GET/v1/print-template/images/{id}
curl https://api.damedoklad.cz/v1/print-template/images/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Print labels on a sheet: stock items or the addresses of contacts, in the default variant or the one asked for. A part-used sheet can go through again with `skip`

POST/v1/print-template/labels

Print labels on a sheet: stock items or the addresses of contacts, in the default variant or the one asked for. A part-used sheet can go through again with `skip`

MCP tool: print-labels

Request body

documentType"item_label" | "contact_label"required
idsstring[]required
copiesintegermin 1max 100
skipintegermin 0max 479
variantIdstring
ID of the variant.

Response · 200

Returns a application/pdf file.

POST/v1/print-template/labels
curl -X POST https://api.damedoklad.cz/v1/print-template/labels \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "item_label",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}' \
  -o soubor

Get the print layout of a document type: which blocks appear in what order, the line table columns and their widths, added text. Language optional; without it, the layout all languages share

GET/v1/print-template/layouts/{documentType}

Get the print layout of a document type: which blocks appear in what order, the line table columns and their widths, added text. Language optional; without it, the layout all languages share

MCP tool: get-print-layout

Path parameters

documentTypestringrequired

Query parameters

language"cs" | "en" | "de" | "fr"

Response · 200

documentTypenull | stringrequired
languagenull | stringrequired
customizedbooleanrequired
blocksobject[]required
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]required
keystringrequired
visiblebooleanrequired
widthintegerrequired
GET/v1/print-template/layouts/{documentType}
curl https://api.damedoklad.cz/v1/print-template/layouts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Set the print layout of a document type, for one language or for all. New PDFs use it; an issued document keeps the PDF it was issued with

PUT/v1/print-template/layouts/{documentType}

Set the print layout of a document type, for one language or for all. New PDFs use it; an issued document keeps the PDF it was issued with. Blocks and columns the law requires are refused when hidden, so a tax document stays a tax document. To place things freely on the page, save a free layout as a print variant.

MCP tool: update-print-layout

Path parameters

documentTypestringrequired

Request body

language"cs" | "en" | "de" | "fr" | null
blocksobject[]required
keystringrequiredmax 60 chars
visibleboolean
textstringmax 1000 chars
columnsobject[]
keystringrequiredmax 40 chars
visibleboolean
widthnumbermin 0max 200

Response · 200

documentTypenull | stringrequired
languagenull | stringrequired
customizedbooleanrequired
blocksobject[]required
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]required
keystringrequired
visiblebooleanrequired
widthintegerrequired
PUT/v1/print-template/layouts/{documentType}
curl -X PUT https://api.damedoklad.cz/v1/print-template/layouts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "blocks": [
    {
      "key": "string"
    }
  ]
}'

Forget the print layout of a document type and go back to the built-in one

DELETE/v1/print-template/layouts/{documentType}

Forget the print layout of a document type and go back to the built-in one

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

MCP tool: reset-print-layout

Path parameters

documentTypestringrequired

Query parameters

language"cs" | "en" | "de" | "fr"

Response · 200

documentTypenull | stringrequired
languagenull | stringrequired
customizedbooleanrequired
blocksobject[]required
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]required
keystringrequired
visiblebooleanrequired
widthintegerrequired
DELETE/v1/print-template/layouts/{documentType}
curl -X DELETE https://api.damedoklad.cz/v1/print-template/layouts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Fill in Poštovní poukázka A for what a document asks to be paid, to print over a form from Česká pošta

POST/v1/print-template/postal-order

Fill in Poštovní poukázka A for what a document asks to be paid, to print over a form from Česká pošta. Values follow the Česká pošta notice for account holders: whole crowns, equals signs in empty places, the account checked by modulo 11, codes 110 and 116. Field positions of the starting layout come from the dimensioned drawing in its Technická specifikace Pk A of 1. 6. 2019, read from a web archive's copy, with OCR-B type in the boxes and reading zone. A saved layout keeps its own positions. The notice requires machine-printed forms to be approved by Česká pošta from 20 samples, and the file number it assigns to be on each. Nothing has been printed on paper, and approval is the post's decision.

MCP tool: print-postal-order

Request body

documentType"invoice" | "proforma" | "reminder"required
documentIdstringrequired
ID of the document.
kind"standard" | "cash_on_delivery"
variantIdstring
ID of the variant.

Response · 200

Returns a application/pdf file.

POST/v1/print-template/postal-order
curl -X POST https://api.damedoklad.cz/v1/print-template/postal-order \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "invoice",
  "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}' \
  -o soubor

Render a sample PDF of a document type with these options and this layout, without saving them. Refreshing it after each change is a live preview

POST/v1/print-template/preview

Render a sample PDF of a document type with these options and this layout, without saving them. Refreshing it after each change is a live preview

MCP tool: preview-print-template

Query parameters

language"cs" | "en" | "de" | "fr"

Request body

logoPosition"left" | "center" | "right"
accentColorstring | null
footerTextstring | null
showLogoboolean
showQrCodeboolean
showBankDetailsboolean
showNotesboolean
showSellerContactboolean
showSignatureboolean
documentType"invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "reminder" | "stock_document" | "protocol" | "receipt" | "item_label" | "contact_label" | "postal_order"
language"cs" | "en" | "de" | "fr"
layoutobject
mode"free"required
pageobjectrequired
elementsobject[]required
columnsobject[]
keystringrequiredmax 40 chars
visibleboolean
widthnumbermin 0max 200
variantIdstring
ID of the variant.

Response · 200

Returns a application/pdf file.

POST/v1/print-template/preview
curl -X POST https://api.damedoklad.cz/v1/print-template/preview \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "logoPosition": "left",
  "accentColor": "string",
  "footerText": "string"
}' \
  -o soubor

Print a document in a variant, together with what is linked to that variant, as one PDF. The PDF stored when it was issued stays its original

POST/v1/print-template/print

Print a document in a variant, together with what is linked to that variant, as one PDF. The PDF stored when it was issued stays its original. Without a variant it uses the default for the document. `alone` leaves linked reports out.

MCP tool: print-document-variant

Request body

documentType"invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "reminder" | "stock_document" | "protocol" | "receipt" | "item_label" | "contact_label" | "postal_order"required
documentIdstringrequired
ID of the document.
variantIdstring
ID of the variant.
language"cs" | "en" | "de" | "fr"
aloneboolean

Response · 200

Returns a application/pdf file.

POST/v1/print-template/print
curl -X POST https://api.damedoklad.cz/v1/print-template/print \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "invoice",
  "documentId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}' \
  -o soubor

List the saved variants of the reports, for one document type or all, with which is the default

GET/v1/print-template/variants

List the saved variants of the reports, for one document type or all, with which is the default

MCP tool: list-print-variants

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
documentType"invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "reminder" | "stock_document" | "protocol" | "receipt" | "item_label" | "contact_label" | "postal_order"

Response · 200

dataobject[]required
object"print_variant"required
idstringrequired
documentTypestringrequired
languagenull | stringrequired
namestringrequired
isDefaultbooleanrequired
modestringrequired
layoutobjectrequired
modestringrequired
pageobject
presetstringrequired
sheetobject
elementsobject[]
hintegerrequired
wintegerrequired
xintegerrequired
yintegerrequired
idstringrequired
keystring
typestringrequired
textstring
boldboolean
colorstring
fieldnull | string
expressionstring
contentobject
symbologystring
chartstring
labelsstring
valuesstring
fileIdnull | string
sourcestring
itemImagesboolean
lineinteger
itemIdnull | string
blocksobject[]
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]
keystringrequired
widthintegerrequired
visiblebooleanrequired
linkedobject[]required
kindstringrequired
variantIdstring
problemsobject[]required
codenull | stringrequired
blockstringrequired
messagenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/print-template/variants
curl https://api.damedoklad.cz/v1/print-template/variants \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Save a named variant of a report. Without a layout it starts from a free layout that holds everything the document requires

POST/v1/print-template/variants

Save a named variant of a report. Without a layout it starts from a free layout that holds everything the document requires. A free layout places elements anywhere on the page in millimetres. A layout that leaves out or covers something the law requires is refused with the reason by name in `problems`. Marking it as the default makes new PDFs use it; an issued document keeps the PDF it was issued with.

MCP tool: create-print-variant

Request body

documentType"invoice" | "proforma" | "credit_note" | "delivery_note" | "sales_document" | "reminder" | "stock_document" | "protocol" | "receipt" | "item_label" | "contact_label" | "postal_order"required
namestringrequiredmax 80 chars
language"cs" | "en" | "de" | "fr" | null
isDefaultboolean
layoutobject
mode"free"required
pageobjectrequired
elementsobject[]required
columnsobject[]
keystringrequiredmax 40 chars
visibleboolean
widthnumbermin 0max 200
linkedobject[]
kindstringrequiredmax 40 chars
variantIdstring
ID of the variant.

Response · 201

idstringrequired
documentTypestringrequired
languagenull | stringrequired
namestringrequired
isDefaultbooleanrequired
modestringrequired
layoutobjectrequired
modestringrequired
pageobject
presetstringrequired
sheetobject
gapXintegerrequired
gapYintegerrequired
rowsintegerrequired
columnsintegerrequired
offsetXintegerrequired
offsetYintegerrequired
labelWidthintegerrequired
labelHeightintegerrequired
elementsobject[]
hintegerrequired
wintegerrequired
xintegerrequired
yintegerrequired
idstringrequired
keystring
typestringrequired
textstring
boldboolean
colorstring
fieldnull | string
expressionstring
contentobject
kindstringrequired
valuestring
symbologystring
chartstring
labelsstring
valuesstring
fileIdnull | string
sourcestring
itemImagesboolean
lineinteger
itemIdnull | string
blocksobject[]
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]
keystringrequired
widthintegerrequired
visiblebooleanrequired
linkedobject[]required
kindstringrequired
variantIdstring
problemsobject[]required
codenull | stringrequired
blockstringrequired
messagenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
POST/v1/print-template/variants
curl -X POST https://api.damedoklad.cz/v1/print-template/variants \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "documentType": "invoice",
  "name": "Pekárna U Lípy s.r.o."
}'

Get one saved variant of a report with its layout, what prints with it, and anything that stops it printing

GET/v1/print-template/variants/{id}

Get one saved variant of a report with its layout, what prints with it, and anything that stops it printing

MCP tool: get-print-variant

Path parameters

idstringrequired

Response · 200

idstringrequired
documentTypestringrequired
languagenull | stringrequired
namestringrequired
isDefaultbooleanrequired
modestringrequired
layoutobjectrequired
modestringrequired
pageobject
presetstringrequired
sheetobject
gapXintegerrequired
gapYintegerrequired
rowsintegerrequired
columnsintegerrequired
offsetXintegerrequired
offsetYintegerrequired
labelWidthintegerrequired
labelHeightintegerrequired
elementsobject[]
hintegerrequired
wintegerrequired
xintegerrequired
yintegerrequired
idstringrequired
keystring
typestringrequired
textstring
boldboolean
colorstring
fieldnull | string
expressionstring
contentobject
kindstringrequired
valuestring
symbologystring
chartstring
labelsstring
valuesstring
fileIdnull | string
sourcestring
itemImagesboolean
lineinteger
itemIdnull | string
blocksobject[]
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]
keystringrequired
widthintegerrequired
visiblebooleanrequired
linkedobject[]required
kindstringrequired
variantIdstring
problemsobject[]required
codenull | stringrequired
blockstringrequired
messagenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
GET/v1/print-template/variants/{id}
curl https://api.damedoklad.cz/v1/print-template/variants/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change a saved variant: its name, layout, what prints with it, or whether it is the default

PUT/v1/print-template/variants/{id}

Change a saved variant: its name, layout, what prints with it, or whether it is the default. A layout that leaves out or covers something the law requires is refused with the reason by name in `problems`.

MCP tool: update-print-variant

Path parameters

idstringrequired

Request body

namestringmax 80 chars
language"cs" | "en" | "de" | "fr" | null
isDefaultboolean
layoutobject
mode"free"required
pageobjectrequired
elementsobject[]required
columnsobject[]
keystringrequiredmax 40 chars
visibleboolean
widthnumbermin 0max 200
linkedobject[]
kindstringrequiredmax 40 chars
variantIdstring
ID of the variant.

Response · 200

idstringrequired
documentTypestringrequired
languagenull | stringrequired
namestringrequired
isDefaultbooleanrequired
modestringrequired
layoutobjectrequired
modestringrequired
pageobject
presetstringrequired
sheetobject
gapXintegerrequired
gapYintegerrequired
rowsintegerrequired
columnsintegerrequired
offsetXintegerrequired
offsetYintegerrequired
labelWidthintegerrequired
labelHeightintegerrequired
elementsobject[]
hintegerrequired
wintegerrequired
xintegerrequired
yintegerrequired
idstringrequired
keystring
typestringrequired
textstring
boldboolean
colorstring
fieldnull | string
expressionstring
contentobject
kindstringrequired
valuestring
symbologystring
chartstring
labelsstring
valuesstring
fileIdnull | string
sourcestring
itemImagesboolean
lineinteger
itemIdnull | string
blocksobject[]
keystringrequired
visiblebooleanrequired
textstring
columnsobject[]
keystringrequired
widthintegerrequired
visiblebooleanrequired
linkedobject[]required
kindstringrequired
variantIdstring
problemsobject[]required
codenull | stringrequired
blockstringrequired
messagenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
PUT/v1/print-template/variants/{id}
curl -X PUT https://api.damedoklad.cz/v1/print-template/variants/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "language": "cs",
  "isDefault": false
}'

Delete a saved variant. If it was the default, the section layout prints again. Other variants linked to it stop printing it

DELETE/v1/print-template/variants/{id}

Delete a saved variant. If it was the default, the section layout prints again. Other variants linked to it stop printing it

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

MCP tool: delete-print-variant

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/print-template/variants/{id}
curl -X DELETE https://api.damedoklad.cz/v1/print-template/variants/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Send a received invoice for approval, or again after a rejection: to one approver (one click, the default) or through a scenario of several in order

POST/v1/received-invoices/{id}/approval

Send a received invoice for approval, or again after a rejection: to one approver (one click, the default) or through a scenario of several in order

MCP tool: request-invoice-approval

Path parameters

idstringrequired

Request body

approverIdstring | null
ID of the approver.
scenarioIdstring | null
ID of the scenario.
commentstring | null

Response · 201

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
POST/v1/received-invoices/{id}/approval
curl -X POST https://api.damedoklad.cz/v1/received-invoices/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/approval \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "approverId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "scenarioId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "comment": "string"
}'

Send a draft sales document, such as an issued order, for approval before it is issued: to one approver or through a scenario

POST/v1/sales/documents/{id}/approval

Send a draft sales document, such as an issued order, for approval before it is issued: to one approver or through a scenario. Which kinds must be approved before issue is a company setting (salesKinds). Changing the lines, partner or currency of an approved draft cancels the approval.

MCP tool: request-sales-document-approval

Path parameters

idstringrequired

Request body

approverIdstring | null
ID of the approver.
scenarioIdstring | null
ID of the scenario.
commentstring | null

Response · 201

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
POST/v1/sales/documents/{id}/approval
curl -X POST https://api.damedoklad.cz/v1/sales/documents/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/approval \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "approverId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "scenarioId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "comment": "string"
}'

List saved custom reports

GET/v1/saved-reports

List saved custom reports

MCP tool: list-saved-reports

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars

Response · 200

dataobject[]required
object"saved_report"required
idstringrequired
namestringrequired
agendastringrequired
sortByanyrequired
Null in every recorded response.
totalsstring[]required
columnsstring[]required
filtersobject[]required
valuestringrequired
columnstringrequired
operatorstringrequired
groupByanyrequired
Null in every recorded response.
sortDirectionstringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/saved-reports
curl https://api.damedoklad.cz/v1/saved-reports \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Save a custom report

POST/v1/saved-reports

Save a custom report

MCP tool: create-saved-report

Request body

namestringrequiredmax 200 chars
agendastringrequiredmax 60 chars
columnsstring[]required
filtersobject[]
columnstringrequiredmax 60 chars
operator"eq" | "ne" | "contains" | "gte" | "lte" | "empty" | "not_empty"required
valuestring | number | null
totalsstring[]
sortBystring | null
sortDirection"asc" | "desc"
groupBystring | null

Response · 201

idstringrequired
namestringrequired
agendastringrequired
sortByanyrequired
Null in every recorded response.
totalsstring[]required
columnsstring[]required
filtersobject[]required
valuestringrequired
columnstringrequired
operatorstringrequired
groupByanyrequired
Null in every recorded response.
sortDirectionstringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
POST/v1/saved-reports
curl -X POST https://api.damedoklad.cz/v1/saved-reports \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "agenda": "string",
  "columns": [
    "string"
  ]
}'

Get a saved report

GET/v1/saved-reports/{id}

Get a saved report

MCP tool: get-saved-report

Path parameters

idstringrequired

Response · 200

idstringrequired
namestringrequired
agendastringrequired
sortByanyrequired
Null in every recorded response.
totalsstring[]required
columnsstring[]required
filtersobject[]required
valuestringrequired
columnstringrequired
operatorstringrequired
groupByanyrequired
Null in every recorded response.
sortDirectionstringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
GET/v1/saved-reports/{id}
curl https://api.damedoklad.cz/v1/saved-reports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change a saved report

PATCH/v1/saved-reports/{id}

Change a saved report

MCP tool: update-saved-report

Path parameters

idstringrequired

Request body

namestringmax 200 chars
agendastringmax 60 chars
columnsstring[]
filtersobject[]
columnstringrequiredmax 60 chars
operator"eq" | "ne" | "contains" | "gte" | "lte" | "empty" | "not_empty"required
valuestring | number | null
totalsstring[]
sortBystring | null
sortDirection"asc" | "desc"
groupBystring | null

Response · 200

idstringrequired
namestringrequired
agendastringrequired
sortByanyrequired
Null in every recorded response.
totalsstring[]required
columnsstring[]required
filtersobject[]required
valuestringrequired
columnstringrequired
operatorstringrequired
groupByanyrequired
Null in every recorded response.
sortDirectionstringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
PATCH/v1/saved-reports/{id}
curl -X PATCH https://api.damedoklad.cz/v1/saved-reports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Pekárna U Lípy s.r.o.",
  "agenda": "string",
  "columns": [
    "string"
  ]
}'

Delete a saved report

DELETE/v1/saved-reports/{id}

Delete a saved report

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

MCP tool: delete-saved-report

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/saved-reports/{id}
curl -X DELETE https://api.damedoklad.cz/v1/saved-reports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Export a saved report as format=xlsx, csv, or pdf

GET/v1/saved-reports/{id}/export

Export a saved report as format=xlsx, csv, or pdf

MCP tool: export-saved-report

Path parameters

idstringrequired

Query parameters

format"csv" | "xlsx" | "pdf"
language"cs" | "en"

Response · 200

Returns a application/octet-stream file.

GET/v1/saved-reports/{id}/export
curl https://api.damedoklad.cz/v1/saved-reports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Run a saved report

GET/v1/saved-reports/{id}/run

Run a saved report

MCP tool: run-saved-report

Path parameters

idstringrequired

Query parameters

format"csv" | "xlsx" | "pdf"
language"cs" | "en"

Response · 200

agendastringrequired
columnsobject[]required
keystringrequired
typestringrequired
labelnull | stringrequired
rowsobject[]required
accountNumbernull | string
debitHalerinteger
pairingSymbolnull | string
documentTypenull | string
numbernull | string
totalHalerinteger | null
contactNamenull | string
statusstring
netHalerinteger
namenull | string
icostring | null
dicstring | null
emailnull | string
phonestring | null
rolesstring
totalsobjectrequired
overallobjectrequired
debitHalerinteger
netHalerinteger
totalHalerinteger | null
groupsobject[]required
valuestringrequired
countintegerrequired
totalsobjectrequired
netHalerintegerrequired
totalHalerinteger | nullrequired
truncatedbooleanrequired
mixedCurrenciesbooleanrequired
namenull | string
GET/v1/saved-reports/{id}/run
curl https://api.damedoklad.cz/v1/saved-reports/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/run \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

What a custom report can show: agendas, their columns, and the conditions each column allows

GET/v1/saved-reports/catalog

What a custom report can show: agendas, their columns, and the conditions each column allows

MCP tool: get-report-catalog

Response · 200

agendasobject[]required
keystringrequired
csstringrequired
enstringrequired
defaultColumnsstring[]required
columnsobject[]required
keystringrequired
typestringrequired
csstringrequired
enstringrequired
operatorsstring[]required
GET/v1/saved-reports/catalog
curl https://api.damedoklad.cz/v1/saved-reports/catalog \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Export a custom report as format=xlsx, csv, or pdf without saving it

POST/v1/saved-reports/export

Export a custom report as format=xlsx, csv, or pdf without saving it

MCP tool: export-custom-report

Query parameters

format"csv" | "xlsx" | "pdf"
language"cs" | "en"

Request body

agendastringrequiredmax 60 chars
columnsstring[]required
filtersobject[]
columnstringrequiredmax 60 chars
operator"eq" | "ne" | "contains" | "gte" | "lte" | "empty" | "not_empty"required
valuestring | number | null
totalsstring[]
sortBystring | null
sortDirection"asc" | "desc"
groupBystring | null

Response · 200

Returns a application/octet-stream file.

POST/v1/saved-reports/export
curl -X POST https://api.damedoklad.cz/v1/saved-reports/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "agenda": "string",
  "columns": [
    "string"
  ]
}' \
  -o soubor

Run a custom report without saving it. Returns rows and totals, up to 5000 rows

POST/v1/saved-reports/run

Run a custom report without saving it. Returns rows and totals, up to 5000 rows

MCP tool: run-report

Query parameters

format"csv" | "xlsx" | "pdf"
language"cs" | "en"

Request body

agendastringrequiredmax 60 chars
columnsstring[]required
filtersobject[]
columnstringrequiredmax 60 chars
operator"eq" | "ne" | "contains" | "gte" | "lte" | "empty" | "not_empty"required
valuestring | number | null
totalsstring[]
sortBystring | null
sortDirection"asc" | "desc"
groupBystring | null

Response · 200

agendastringrequired
columnsobject[]required
keystringrequired
typestringrequired
labelnull | stringrequired
rowsobject[]required
accountNumbernull | string
debitHalerinteger
pairingSymbolnull | string
documentTypenull | string
numbernull | string
totalHalerinteger | null
contactNamenull | string
statusstring
netHalerinteger
namenull | string
icostring | null
dicstring | null
emailnull | string
phonestring | null
rolesstring
totalsobjectrequired
overallobjectrequired
debitHalerinteger
netHalerinteger
totalHalerinteger | null
groupsobject[]required
valuestringrequired
countintegerrequired
totalsobjectrequired
netHalerintegerrequired
totalHalerinteger | nullrequired
truncatedbooleanrequired
mixedCurrenciesbooleanrequired
namenull | string
POST/v1/saved-reports/run
curl -X POST https://api.damedoklad.cz/v1/saved-reports/run \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "agenda": "string",
  "columns": [
    "string"
  ]
}'

List service jobs

GET/v1/service-jobs

List service jobs

MCP tool: list-service-jobs

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
status"received" | "in_progress" | "ready" | "invoiced" | "closed" | "cancelled"
contactIdstring
ID of the contact. Find it with list-contacts.
customFieldKeystring
Only records with this custom field. Alone: it has any value. With customFieldValue: exactly that value, ignoring case.
customFieldValuestringmax 2000 chars

Response · 200

dataobject[]required
object"service_job"required
idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
orderLineIdnull | stringrequired
recyclingnull | object
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
balancedboolean
cashJournalobject[]
receivablesBookobject[]
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/service-jobs
curl https://api.damedoklad.cz/v1/service-jobs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Take in a device for service

POST/v1/service-jobs

Take in a device for service

MCP tool: create-service-job

Request body

contactIdstringrequired
ID of the contact. Find it with list-contacts.
deviceNamestringrequiredmax 200 chars
serialNumberstring | null
problemstringrequiredmax 4000 chars
accessoriesstring | null
diagnosisstring | null
receivedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
promisedOnstring | null
Date as YYYY-MM-DD.
warrantyboolean
jobOrderIdstring | null
ID of the job order. Find it with list-job-orders.
notestring | null
seriesIdstring
Number series of service jobs. Without it, the default one.

Response · 201

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
POST/v1/service-jobs
curl -X POST https://api.damedoklad.cz/v1/service-jobs \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "deviceName": "Pekárna U Lípy s.r.o.",
  "problem": "string"
}'

Get a service job with its work log, parts, and totals

GET/v1/service-jobs/{id}

Get a service job with its work log, parts, and totals

MCP tool: get-service-job

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
GET/v1/service-jobs/{id}
curl https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Edit an open service job

PATCH/v1/service-jobs/{id}

Edit an open service job

MCP tool: update-service-job

Path parameters

idstringrequired

Request body

contactIdstring
ID of the contact. Find it with list-contacts.
deviceNamestringmax 200 chars
serialNumberstring | null
problemstringmax 4000 chars
accessoriesstring | null
diagnosisstring | null
receivedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
promisedOnstring | null
Date as YYYY-MM-DD.
warrantyboolean
jobOrderIdstring | null
ID of the job order. Find it with list-job-orders.
notestring | null

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
PATCH/v1/service-jobs/{id}
curl -X PATCH https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "deviceName": "Pekárna U Lípy s.r.o.",
  "serialNumber": "string"
}'

Delete a service job that has no parts yet. Otherwise cancel it

DELETE/v1/service-jobs/{id}

Delete a service job that has no parts yet. Otherwise cancel it

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

MCP tool: delete-service-job

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/service-jobs/{id}
curl -X DELETE https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Close a service job without an invoice, such as a warranty repair

POST/v1/service-jobs/{id}/close

Close a service job without an invoice, such as a warranty repair

MCP tool: close-service-job

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
POST/v1/service-jobs/{id}/close
curl -X POST https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/close \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Turn a service job into an invoice from its work log and parts, as a draft unless issue is set

POST/v1/service-jobs/{id}/invoice

Turn a service job into an invoice from its work log and parts, as a draft unless issue is set

MCP tool: invoice-service-job

Path parameters

idstringrequired

Request body

issueDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
taxPointDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
dueDatestringYYYY-MM-DD
Date as YYYY-MM-DD.
issueboolean

Response · 201

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
POST/v1/service-jobs/{id}/invoice
curl -X POST https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/invoice \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "issueDate": "2026-10-30",
  "taxPointDate": "2026-10-30",
  "dueDate": "2026-10-30"
}'

Use a part from stock on a service job. The stock issue posts at once; there must be enough in the warehouse. On a warranty repair it posts as a cost (548), not as a sale

POST/v1/service-jobs/{id}/parts

Use a part from stock on a service job. The stock issue posts at once; there must be enough in the warehouse. On a warranty repair it posts as a cost (548), not as a sale

MCP tool: add-service-job-part

Path parameters

idstringrequired

Request body

itemIdstringrequired
ID of the item. Find it with list-items.
warehouseIdstringrequired
ID of the warehouse. Find it with list-warehouses.
quantitynumberrequiredmax 1000000000
unitPriceHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
vatRate0 | 10 | 12 | 15 | 21
usedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.

Response · 201

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
POST/v1/service-jobs/{id}/parts
curl -X POST https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/parts \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "itemId": "itm_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "warehouseId": "whs_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "quantity": 1
}'

Remove a part from a service job and return it to stock by reversing the issue

DELETE/v1/service-jobs/{id}/parts/{childId}

Remove a part from a service job and return it to stock by reversing the issue

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

MCP tool: remove-service-job-part

Path parameters

idstringrequired
childIdstringrequired
ID of the child.

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
DELETE/v1/service-jobs/{id}/parts/{childId}
curl -X DELETE https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/parts/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Service protocol PDF with device, problem, work, and parts, in Czech, English, German or French

GET/v1/service-jobs/{id}/pdf

Service protocol PDF with device, problem, work, and parts, in Czech, English, German or French

MCP tool: download-service-job-protocol

Path parameters

idstringrequired

Query parameters

language"cs" | "en" | "de" | "fr"

Response · 200

Returns a application/pdf file.

GET/v1/service-jobs/{id}/pdf
curl https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/pdf \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -o soubor

Move a service job between received, in progress, ready, and cancelled. Cancelling needs its parts removed first

POST/v1/service-jobs/{id}/status

Move a service job between received, in progress, ready, and cancelled. Cancelling needs its parts removed first

MCP tool: set-service-job-status

Path parameters

idstringrequired

Request body

status"received" | "in_progress" | "ready" | "cancelled"required

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
POST/v1/service-jobs/{id}/status
curl -X POST https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/status \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "received"
}'

Log work on a service job

POST/v1/service-jobs/{id}/work

Log work on a service job

MCP tool: add-service-job-work

Path parameters

idstringrequired

Request body

workedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
descriptionstringrequiredmax 400 chars
workerNamestring | null
minutesintegerrequiredmax 100000
hourlyRateHalerintegermin 0max 9007199254740991
Integer amount in haléře: 100 = 1 Kč.
vatRate0 | 10 | 12 | 15 | 21

Response · 201

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
POST/v1/service-jobs/{id}/work
curl -X POST https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/work \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "description": "Pečivo, říjen",
  "minutes": 1
}'

Remove a work log entry

DELETE/v1/service-jobs/{id}/work/{childId}

Remove a work log entry

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

MCP tool: remove-service-job-work

Path parameters

idstringrequired
childIdstringrequired
ID of the child.

Response · 200

idstringrequired
numberstringrequired
contactIdstringrequired
contactNamenull | stringrequired
deviceNamestringrequired
serialNumbernull | stringrequired
problemstringrequired
accessoriesstring | nullrequired
diagnosisstring | nullrequired
receivedOnstringrequireddate
promisedOnstring | nullrequired
finishedOnnull | stringrequireddate
warrantybooleanrequired
statusstringrequired
invoiceIdnull | stringrequired
jobOrderIdnull | stringrequired
notenull | stringrequired
createdAtstringrequireddate-time
updatedAtstringrequireddate-time
seriesIdnull | string
customFieldsobject
tistene_polestring
invoiceNumbernull | string
workobject[]
object"service_job_work"required
idstringrequired
workedOnstringrequireddate
descriptionstringrequired
workerNamestring | nullrequired
minutesintegerrequired
hourlyRateHalerintegerrequired
vatRateintegerrequired
netHalerintegerrequired
partsobject[]
object"service_job_part"required
idstringrequired
itemIdstringrequired
warehouseIdstringrequired
descriptionstringrequired
unitstringrequired
quantityintegerrequired
unitPriceHalerintegerrequired
vatRateintegerrequired
usedOnstringrequireddate
netHalerintegerrequired
workNetHalerinteger
partsNetHalerinteger
totalNetHalerinteger
invoiceobject
object"invoice"required
idstringrequired
numbernull | stringrequired
variableSymbolnull | stringrequired
contactIdnull | stringrequired
contactNamenull | stringrequired
issueDatestringrequireddate
dueDatenull | stringrequireddate
currencystringrequired
totalHalerintegerrequired
paidHalerintegerrequired
statusstringrequired
overduebooleanrequired
fileIdnull | stringrequired
customFieldsobject
zakazka_zakaznikastring
pocetinteger
kampanstring
vatModestring
exchangeRatenumber
templateIdnull | string
centerIdnull | string
activityIdnull | string
projectIdnull | string
seriesIdnull | string
constantSymbolnull | string
taxPointDatestringdate
paymentMethodstring
languagestring
notePublicnull | string
noteInternalnull | string
ourAccountNumbernull | string
ourBankCodenull | string
ourIbannull | string
sellerNamenull | string
sellerIconull | string
sellerDicnull | string
reminderOnDueboolean
reminderWeekAfterboolean
reminder14DaysAfterboolean
reminderMonthAfterboolean
netHalerinteger
vatHalerinteger
roundingHalerinteger
recurringIdnull | string
stornoOfIdnull | string
contactIconull | string
contactDicnull | string
contactVatPayerTypenull | string
billToStreetnull | string
billToCitynull | string
billToPostalCodenull | string
billToCountrynull | string
shipToNamestring | null
shipToStreetnull | string
shipToCitynull | string
shipToPostalCodenull | string
shipToCountrynull | string
contactEmailnull | string
linesobject[]
object"invoice_line"required
idstringrequired
descriptionstringrequired
quantitynumberrequired
unitstringrequired
unitPriceHalerintegerrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
totalHalerintegerrequired
accountNumbernull | stringrequired
lineKindstringrequired
sourceIdnull | stringrequired
itemIdnull | stringrequired
warehouseIdnull | stringrequired
lotsobject[]required
itemIdnull | string
lotIdstring | nullrequired
codenull | stringrequired
quantityintegerrequired
expiryDatestring | nullrequired
orderLineIdnull | stringrequired
recyclingnull | object
textstringrequired
unitstringrequired
feeIdnull | stringrequired
rateHalerintegerrequired
totalHalerintegerrequired
weightMilliinteger
perUnitHalerintegerrequired
coefficientMilliintegerrequired
typedboolean
vatLinesobject[]
object"invoice_vat_line"required
idstringrequired
vatRatenumberrequired
netHalerintegerrequired
vatHalerintegerrequired
paymentsobject[]
object"invoice_payment"required
idstringrequired
amountHalerintegerrequired
paidOnstringrequireddate
methodstringrequired
notenull | stringrequired
linksobject[]
object"document_link"required
idstringrequired
fromKindstringrequired
fromIdstringrequired
toKindstringrequired
toIdstringrequired
kindstringrequired
amountHalerinteger | null
postingobject
regimestringrequired
eventstringrequired
journalLinesobject[]
accountnull | stringrequired
sidestringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
balancedboolean
cashJournalobject[]
accountnull | stringrequired
amountHalerinteger | nullrequired
documentIdnull | stringrequired
receivablesBookobject[]
documentIdnull | stringrequired
amountHalerinteger | nullrequired
statusstringrequired
payablesBookany[]
assetany[]
retentionsobject[]
idstringrequired
amountHalerinteger | nullrequired
dueDatenull | stringrequireddate
notestring | nullrequired
longTermbooleanrequired
carrierIdnull | string
creditWarningobject
levelstringrequired
exposureHalerintegerrequired
afterHalerintegerrequired
warnHalerinteger | nullrequired
blockHalerintegerrequired
availableHalerintegerrequired
originalany
bankMovementobject
idstringrequired
bankAccountIdstringrequired
cashDocumentobject
idstringrequired
numbernull | stringrequired
warningsany[]required
DELETE/v1/service-jobs/{id}/work/{childId}
curl -X DELETE https://api.damedoklad.cz/v1/service-jobs/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/work/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

List shipments (zásilky), by carrier, status, document, or contact

GET/v1/shipments

List shipments (zásilky), by carrier, status, document, or contact

MCP tool: list-shipments

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
carrierIdstring
ID of the carrier. Find it with list-carriers.
status"to_process" | "exported" | "in_transit" | "delivered" | "returned" | "cancelled"
sourceIdstring
ID of the source.
contactIdstring
ID of the contact. Find it with list-contacts.

Response · 200

dataobject[]required
object"shipment"required
idstringrequired
numberstringrequired
carrierIdstringrequired
carrierNamestringrequired
sourceKindnull | stringrequired
sourceIdnull | stringrequired
sourceNumbernull | stringrequired
contactIdnull | stringrequired
recipientNamestringrequired
recipientStreetnull | stringrequired
recipientCitynull | stringrequired
recipientPostalCodenull | stringrequired
recipientCountrystringrequired
recipientPhonenull | stringrequired
recipientEmailnull | stringrequired
weightGramsinteger | nullrequired
parcelCountintegerrequired
codHalerinteger | nullrequired
valueHalerinteger | nullrequired
currencystringrequired
variableSymbolnull | stringrequired
trackingNumbernull | stringrequired
pickupPointIdnull | stringrequired
statusstringrequired
statusDetailnull | stringrequired
statusAtnull | stringrequireddate-time
exportedAtnull | stringrequireddate-time
shippedOnstringrequireddate
notenull | stringrequired
createdAtstringrequireddate-time
externalIdnull | string
preferredDeliveryOnnull | stringdate
preferredDeliveryFromnull | string
preferredDeliveryTonull | string
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/shipments
curl https://api.damedoklad.cz/v1/shipments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Create a shipment for a carrier. Named from a document, it takes the delivery address and cash on delivery from it; from a contact, its address

POST/v1/shipments

Create a shipment for a carrier. Named from a document, it takes the delivery address and cash on delivery from it; from a contact, its address

MCP tool: create-shipment

Request body

carrierIdstringrequired
ID of the carrier. Find it with list-carriers.
sourceKind"invoice" | "delivery_note" | "proforma" | "order_received"
sourceIdstring
ID of the source.
contactIdstring
ID of the contact. Find it with list-contacts.
recipientNamestringmax 160 chars
recipientStreetstring | null
recipientCitystring | null
recipientPostalCodestring | null
recipientCountrystring2 chars
recipientPhonestring | null
recipientEmailstring | null
weightGramsinteger | null
parcelCountintegermax 99
codHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
valueHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
currencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
variableSymbolstring | null
trackingNumberstring | null
pickupPointIdstring | null
ID of the pickup point.
preferredDeliveryOnstring | null
The day the recipient asks for. PPL only.
preferredDeliveryFromstring | null
From this time on that day, HH:MM. PPL only.
preferredDeliveryTostring | null
Until this time on that day, HH:MM. PPL only.
shippedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
notestring | null

Response · 201

idstringrequired
numberstringrequired
carrierIdstringrequired
carrierNamestringrequired
sourceKindnull | stringrequired
sourceIdnull | stringrequired
sourceNumbernull | stringrequired
contactIdnull | stringrequired
recipientNamestringrequired
recipientStreetnull | stringrequired
recipientCitynull | stringrequired
recipientPostalCodenull | stringrequired
recipientCountrystringrequired
recipientPhonenull | stringrequired
recipientEmailnull | stringrequired
weightGramsinteger | nullrequired
parcelCountintegerrequired
codHalerinteger | nullrequired
valueHalerinteger | nullrequired
currencystringrequired
variableSymbolnull | stringrequired
trackingNumbernull | stringrequired
pickupPointIdnull | stringrequired
statusstringrequired
statusDetailnull | stringrequired
statusAtnull | stringrequireddate-time
exportedAtnull | stringrequireddate-time
shippedOnstringrequireddate
notenull | stringrequired
createdAtstringrequireddate-time
externalIdnull | string
preferredDeliveryOnnull | stringdate
preferredDeliveryFromnull | string
preferredDeliveryTonull | string
POST/v1/shipments
curl -X POST https://api.damedoklad.cz/v1/shipments \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contactId": "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Get a shipment

GET/v1/shipments/{id}

Get a shipment

MCP tool: get-shipment

Path parameters

idstringrequired

Response · 200

idstringrequired
numberstringrequired
carrierIdstringrequired
carrierNamestringrequired
sourceKindnull | stringrequired
sourceIdnull | stringrequired
sourceNumbernull | stringrequired
contactIdnull | stringrequired
recipientNamestringrequired
recipientStreetnull | stringrequired
recipientCitynull | stringrequired
recipientPostalCodenull | stringrequired
recipientCountrystringrequired
recipientPhonenull | stringrequired
recipientEmailnull | stringrequired
weightGramsinteger | nullrequired
parcelCountintegerrequired
codHalerinteger | nullrequired
valueHalerinteger | nullrequired
currencystringrequired
variableSymbolnull | stringrequired
trackingNumbernull | stringrequired
pickupPointIdnull | stringrequired
statusstringrequired
statusDetailnull | stringrequired
statusAtnull | stringrequireddate-time
exportedAtnull | stringrequireddate-time
shippedOnstringrequireddate
notenull | stringrequired
createdAtstringrequireddate-time
externalIdnull | string
preferredDeliveryOnnull | stringdate
preferredDeliveryFromnull | string
preferredDeliveryTonull | string
GET/v1/shipments/{id}
curl https://api.damedoklad.cz/v1/shipments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Change a shipment or its status. Once exported, only its tracking number, status, and note can change, as the carrier already holds the rest

PATCH/v1/shipments/{id}

Change a shipment or its status. Once exported, only its tracking number, status, and note can change, as the carrier already holds the rest

MCP tool: update-shipment

Path parameters

idstringrequired

Request body

carrierIdstring
ID of the carrier. Find it with list-carriers.
sourceKind"invoice" | "delivery_note" | "proforma" | "order_received"
sourceIdstring
ID of the source.
contactIdstring
ID of the contact. Find it with list-contacts.
recipientNamestringmax 160 chars
recipientStreetstring | null
recipientCitystring | null
recipientPostalCodestring | null
recipientCountrystring2 chars
recipientPhonestring | null
recipientEmailstring | null
weightGramsinteger | null
parcelCountintegermax 99
codHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
valueHalerinteger | null
Integer amount in haléře: 100 = 1 Kč.
currencystring3 chars
ISO 4217 currency code, for example CZK or EUR.
variableSymbolstring | null
trackingNumberstring | null
pickupPointIdstring | null
ID of the pickup point.
preferredDeliveryOnstring | null
The day the recipient asks for. PPL only.
preferredDeliveryFromstring | null
From this time on that day, HH:MM. PPL only.
preferredDeliveryTostring | null
Until this time on that day, HH:MM. PPL only.
shippedOnstringYYYY-MM-DD
Date as YYYY-MM-DD.
notestring | null
status"to_process" | "exported" | "in_transit" | "delivered" | "returned" | "cancelled"
statusDetailstring | null

Response · 200

idstringrequired
numberstringrequired
carrierIdstringrequired
carrierNamestringrequired
sourceKindnull | stringrequired
sourceIdnull | stringrequired
sourceNumbernull | stringrequired
contactIdnull | stringrequired
recipientNamestringrequired
recipientStreetnull | stringrequired
recipientCitynull | stringrequired
recipientPostalCodenull | stringrequired
recipientCountrystringrequired
recipientPhonenull | stringrequired
recipientEmailnull | stringrequired
weightGramsinteger | nullrequired
parcelCountintegerrequired
codHalerinteger | nullrequired
valueHalerinteger | nullrequired
currencystringrequired
variableSymbolnull | stringrequired
trackingNumbernull | stringrequired
pickupPointIdnull | stringrequired
statusstringrequired
statusDetailnull | stringrequired
statusAtnull | stringrequireddate-time
exportedAtnull | stringrequireddate-time
shippedOnstringrequireddate
notenull | stringrequired
createdAtstringrequireddate-time
externalIdnull | string
preferredDeliveryOnnull | stringdate
preferredDeliveryFromnull | string
preferredDeliveryTonull | string
PATCH/v1/shipments/{id}
curl -X PATCH https://api.damedoklad.cz/v1/shipments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "sourceKind": "invoice",
  "sourceId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}'

Delete a shipment not yet handed to the carrier

DELETE/v1/shipments/{id}

Delete a shipment not yet handed to the carrier

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

MCP tool: delete-shipment

Path parameters

idstringrequired

Response · 200

idstringrequired
deletedbooleanrequired
DELETE/v1/shipments/{id}
curl -X DELETE https://api.damedoklad.cz/v1/shipments/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"

Download the carrier's own labels through its API (Packeta, PPL, DPD, GLS). Only for shipments it already holds, and only where the operator allows live calls

POST/v1/shipments/carrier/labels

Download the carrier's own labels through its API (Packeta, PPL, DPD, GLS). Only for shipments it already holds, and only where the operator allows live calls

MCP tool: download-carrier-labels

Request body

idsstring[]required
format"A6 on A6" | "A7 on A7" | "A6 on A4" | "A7 on A4" | "105x35mm on A4" | "A8 on A8"

Response · 200

Returns a application/pdf file.

POST/v1/shipments/carrier/labels
curl -X POST https://api.damedoklad.cz/v1/shipments/carrier/labels \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}' \
  -o soubor

Ask the carrier for the status of shipments it holds (Packeta, PPL, DPD, GLS). Only where the operator allows live calls. A sweep also does this by itself

POST/v1/shipments/carrier/status

Ask the carrier for the status of shipments it holds (Packeta, PPL, DPD, GLS). Only where the operator allows live calls. A sweep also does this by itself

MCP tool: sync-carrier-status

Request body

idsstring[]required

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/shipments/carrier/status
curl -X POST https://api.damedoklad.cz/v1/shipments/carrier/status \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Hand shipments to the carrier through its own API (Packeta, PPL, DPD, GLS). Only where the operator allows live calls. Each answers on its own

POST/v1/shipments/carrier/submit

Hand shipments to the carrier through its own API (Packeta, PPL, DPD, GLS). Only where the operator allows live calls. Each answers on its own. The carrier assigns the tracking number: Packeta and DPD straight away, PPL when it has processed the batch, GLS with the first label.

MCP tool: submit-shipments-to-carrier

Request body

idsstring[]required

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/shipments/carrier/submit
curl -X POST https://api.damedoklad.cz/v1/shipments/carrier/submit \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Print addressed envelopes, DL by default or C6 or C5, for shipments or for contacts, one per page at envelope size

POST/v1/shipments/envelopes

Print addressed envelopes, DL by default or C6 or C5, for shipments or for contacts, one per page at envelope size

MCP tool: print-envelopes

Request body

idsstring[]
contactIdsstring[]
size"DL" | "C6" | "C5"

Response · 200

Returns a application/pdf file.

POST/v1/shipments/envelopes
curl -X POST https://api.damedoklad.cz/v1/shipments/envelopes \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "contactIds": [
    "con_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ],
  "size": "DL"
}' \
  -o soubor

Download the carrier file: the Česká pošta posting sheet (ePA), or generic CSV for any other carrier. Exported shipments leave later exports

POST/v1/shipments/export

Download the carrier file: the Česká pošta posting sheet (ePA), or generic CSV for any other carrier. Exported shipments leave later exports

MCP tool: export-shipments

Request body

carrierIdstringrequired
ID of the carrier. Find it with list-carriers.
idsstring[]
Left out: everything of this carrier still to process.

Response · 200

Returns a text/csv file.

POST/v1/shipments/export
curl -X POST https://api.damedoklad.cz/v1/shipments/export \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
}' \
  -o soubor

Make shipments for documents, as POHODA's Vygenerovat zásilky: one per document that has none yet, each answering on its own

POST/v1/shipments/generate

Make shipments for documents, as POHODA's Vygenerovat zásilky: one per document that has none yet, each answering on its own

MCP tool: generate-shipments

Request body

carrierIdstringrequired
ID of the carrier. Find it with list-carriers.
sourceKind"invoice" | "order_received" | "delivery_note" | "proforma"required
idsstring[]required

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/shipments/generate
curl -X POST https://api.damedoklad.cz/v1/shipments/generate \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "carrierId": "gcr_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "sourceKind": "invoice",
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}'

Print shipment labels as a PDF, one per parcel, A6 or four on an A4 sheet: our own layout with a Code 128 of the tracking number, not a carrier's label

POST/v1/shipments/labels

Print shipment labels as a PDF, one per parcel, A6 or four on an A4 sheet: our own layout with a Code 128 of the tracking number, not a carrier's label. A carrier that scans its own label needs that one: downloadCarrierLabels, where its API is connected.

MCP tool: print-shipment-labels

Request body

idsstring[]required
size"A6" | "A4"
A6: one label a page, for a label printer. A4: four labels on a sheet.

Response · 200

Returns a application/pdf file.

POST/v1/shipments/labels
curl -X POST https://api.damedoklad.cz/v1/shipments/labels \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}' \
  -o soubor

Print a posting report (podací arch) of shipments: our own layout listing what goes out, not a form of a carrier

POST/v1/shipments/postal-report

Print a posting report (podací arch) of shipments: our own layout listing what goes out, not a form of a carrier

MCP tool: print-postal-report

Request body

idsstring[]required

Response · 200

Returns a application/pdf file.

POST/v1/shipments/postal-report
curl -X POST https://api.damedoklad.cz/v1/shipments/postal-report \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL"
  ]
}' \
  -o soubor

Read a CSV of shipment statuses from a carrier. Generic: a header row with a shipment or tracking number column and a status column

POST/v1/shipments/status-import

Read a CSV of shipment statuses from a carrier. Generic: a header row with a shipment or tracking number column and a status column. Each row answers on its own. A status worded in a way we do not know is kept as text and changes nothing. No carrier publishes one status file format we could read, so columns go by name, not by carrier.

MCP tool: import-shipment-status

Request body

csvstringrequiredmax 5000000 chars
CSV with a header row: a shipment number or tracking number column, and a status column.

Response · 200

resultsobject[]required
idstring
okbooleanrequired
errornull | string
codenull | string
numbernull | string
stockDocumentIdnull | string
documentIdnull | string
statusstring
contactNamenull | string
namenull | string
tostring
amountHalerinteger | null
movementIdnull | string
rowinteger
recognisedboolean
shipmentIdstring
trackingNumbernull | string
totalintegerrequired
succeededintegerrequired
failedintegerrequired
POST/v1/shipments/status-import
curl -X POST https://api.damedoklad.cz/v1/shipments/status-import \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "csv": "string"
}'

Send an advance to a supplier for approval, or again after a rejection: to one approver (one click, the default) or through a scenario of several in order

POST/v1/supplier-advances/{id}/approval

Send an advance to a supplier for approval, or again after a rejection: to one approver (one click, the default) or through a scenario of several in order

MCP tool: request-supplier-advance-approval

Path parameters

idstringrequired

Request body

approverIdstring | null
ID of the approver.
scenarioIdstring | null
ID of the scenario.
commentstring | null

Response · 201

idstringrequired
documentKindnull | stringrequired
receivedInvoiceIdnull | stringrequired
supplierAdvanceIdnull | stringrequired
statusstringrequired
approverIdnull | stringrequired
approverNamenull | stringrequired
commentnull | stringrequired
decidedByIdnull | stringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
createdAtstringrequireddate-time
invoicenull | objectrequired
idstringrequired
numbernull | stringrequired
supplierDocumentNumbernull | stringrequired
contactNamenull | stringrequired
issueDatenull | stringrequireddate
dueDatenull | stringrequireddate
totalHalerinteger | nullrequired
currencynull | stringrequired
statusstringrequired
scenarioIdnull | string
currentStepinteger | null
stepCountinteger | null
salesDocumentIdnull | string
inboxDocumentIdnull | string
waitingOnobject[]
idstringrequired
namenull | stringrequired
kindstringrequired
historyobject[]
actionstringrequired
actorNamenull | stringrequired
commentnull | stringrequired
atstringrequireddate-time
stepsobject[]
positioninteger | nullrequired
approverIdnull | stringrequired
approverNamestringrequired
statusstringrequired
decidedByNamenull | stringrequired
decidedAtnull | stringrequireddate-time
commentnull | stringrequired
stageinteger
modestring
kindstring
decidedForNamenull | string
POST/v1/supplier-advances/{id}/approval
curl -X POST https://api.damedoklad.cz/v1/supplier-advances/obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL/approval \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "approverId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "scenarioId": "obj_2n9F4kT7wQ1xYz0aBcDeFgHiJkL",
  "comment": "string"
}'

List tasks across all contacts, soonest first: assignedTo=me for my own or a colleague, checker=me and toCheck=true for what waits for my check

GET/v1/tasks

List tasks across all contacts, soonest first: assignedTo=me for my own or a colleague, checker=me and toCheck=true for what waits for my check

MCP tool: list-tasks

Query parameters

limitintegermin 1max 500
offsetintegermin 0max 9007199254740991
searchstringmax 200 chars
fromstringYYYY-MM-DD
Date as YYYY-MM-DD.
tostringYYYY-MM-DD
Date as YYYY-MM-DD.
assignedTostringmax 40 chars
`me`, a user ID, or left out for everyone.
open"true" | "false"
checkerstringmax 40 chars
`me` or a user ID: tasks this person checks.
toCheck"true" | "false"
true: only finished tasks still waiting for their checker.

Response · 200

dataobject[]required
object"contact_activity"required
idstringrequired
contactIdstringrequired
kindstringrequired
subjectstringrequired
bodynull | stringrequired
occurredOnstringrequireddate
dueOnnull | stringrequireddate
donebooleanrequired
doneAtnull | stringrequireddate-time
assignedToIdnull | stringrequired
createdAtstringrequireddate-time
parentIdnull | string
checkerIdnull | string
checkedboolean
checkedAtnull | stringdate-time
waitingForCheckboolean
recurrencenull | string
recurrenceUntilnull | stringdate
nextTaskIdnull | string
remindDaysBeforeinteger | null
contactNamenull | string
assignedToNamestring
totalinteger
Rows that match, on all pages.
hasMorebooleanrequired
More rows follow. Ask again with offset + the number of rows received.
GET/v1/tasks
curl https://api.damedoklad.cz/v1/tasks \
  -H "Authorization: Bearer $DAMEDOKLAD_API_KEY"