Reference API
Schvalování výdajů
Volitelné schvalování přijatých výdajů: pravidla podle částky, střediska a účtu, odeslání ke schválení, schválení a vrácení s důvodem.
GET Pravidla schvalování přijatých výdajů
/entities/{entity_id}/approval_rules
- Oprávnění
- Každý člen firmy včetně role Jen čtení
- Klíč jen pro čtení
- Stačí
Vrátí nastavení volitelného schvalování přijatých výdajů před zaúčtováním: zda je zapnuté, na které druhy dokladů se vztahuje (faktura přijatá, výdajový pokladní doklad a přijatý dobropis, ten jen když zvyšuje náklady), pravidla s českým popisem a příznakem, že určený schvalovatel už nemá právo zápisu, a členy firmy, kteří mohou být schvalovateli. Pravidla platí, jen když je schvalování zapnuté a existuje aspoň jedno; na doklad se použije první pravidlo, které ho pokrývá.
Parametry
| Název | Kde | Typ | Povinný | Popis |
|---|---|---|---|---|
entity_id | cesta | celé číslo | ano | ID účetní jednotky (firmy) Příklad 7. |
Odpověď
200 application/json Nastavení schvalování.
| Pole | Význam |
|---|---|
enabled | Schvalování je zapnuté |
kinds | Druhy dokladů, na které se schvalování vztahuje: invoice_in, cash_out, credit_in |
rules[].min_amount | Minimální částka s DPH v Kč jako text (např. 10000.0), nebo null |
rules[].cost_centers | Střediska (pole textů); prázdné = libovolné |
rules[].accounts | Začátky čísel účtů nebo kategorií (pole textů); prázdné = libovolné |
rules[].approver_id | ID uživatele určeného schvalovatele, nebo null (schvaluje vlastník nebo účetní) |
rules[].description | Pravidlo česky, např. „od 10 000 Kč → vlastník nebo účetní“ |
rules[].approver_missing | true, když určený schvalovatel už nemá právo zápisu (schvaluje pak jen vlastník) |
approvers[].id | ID uživatele (použije se jako approver_id) |
approvers[].name | Zobrazované jméno nebo uživatelské jméno |
approvers[].role | owner, accountant nebo editor |
Chování
- Co změní
- Nic nezapisuje.
Příklad
cURL
curl \
-H "X-API-Key: $SALDO_API_KEY" \
https://techtools.cz/ucetnictvi-api/entities/1/approval_rulesJavaScript
const response = await fetch('https://techtools.cz/ucetnictvi-api/entities/1/approval_rules', {
headers: { 'X-API-Key': process.env.SALDO_API_KEY }
});
const data = await response.json();{
"enabled": false,
"kinds": [
"invoice_in",
"cash_out"
],
"rules": [],
"approvers": [
{
"id": 1,
"name": "ukazka",
"role": "owner"
},
{
"id": 2,
"name": "ucetni_ukazka",
"role": "accountant"
}
]
}
Dlouhé seznamy jsou v ukázce zkrácené na první položky.
PATCH Nastavení pravidel schvalování
/entities/{entity_id}/approval_rules
- Oprávnění
- Vlastník nebo účetní
- Klíč jen pro čtení
- Nestačí, vrátí 403
READ_ONLY_KEY
Uloží celé nastavení najednou, nejde o částečnou změnu: chybějící enabled znamená vypnuto a chybějící rules pravidla smaže. Pravidlo pokrývá přijatý výdaj, když platí všechny jeho vyplněné podmínky: částka s DPH v Kč je aspoň min_amount (u cizí měny se při nižším kurzu dokladu bere částka podle kurzu ČNB k datu dokladu), středisko dokladu je jedno z cost_centers (bez ohledu na velikost písmen) a některý řádek má účet začínající některým z accounts. Bez approver_id schvaluje vlastník nebo účetní, s ním určený člen; vlastník smí schválit vždy. Pravidla zůstanou uložená i při vypnutí; doklady ve schvalování, které už žádné pravidlo nepokrývá, se ze schvalování uvolní.
Parametry
| Název | Kde | Typ | Povinný | Popis |
|---|---|---|---|---|
entity_id | cesta | celé číslo | ano | ID účetní jednotky (firmy) Příklad 7. |
Tělo požadavku
Formát application/json.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
enabled | ano/ne | ne | Zapnout schvalování (chybí-li, uloží se vypnuto); zapnuté vyžaduje aspoň jedno pravidlo |
rules | pole (objekt) | ne | Pravidla v pořadí, v jakém se zkoušejí. Lze poslat i jako objekt s číselnými klíči (formulář rules[0][min_amount]=…), seřadí se podle klíčů. |
rules[] | číslo | ne | Minimální částka s DPH v Kč (číslo nebo text, mezery a desetinná čárka povoleny); nesmí být záporná; prázdné = bez limitu |
rules[] | pole (text) | ne | Střediska; lze i text oddělený čárkou nebo středníkem |
rules[] | pole (text) | ne | Začátky čísel účtů nebo kategorií (1–6 znaků 0–9, A–Z; malá písmena se převedou na velká); lze i text oddělený čárkou, středníkem nebo mezerou |
rules[] | celé číslo | ne | ID uživatele – člena firmy s právem zápisu (seznam approvers); prázdné = vlastník nebo účetní |
Odpověď
200 application/json Uložené nastavení ve tvaru getApprovalRules (pravidla normalizovaná, min_amount jako text).
Chyby této operace
| Stav | Kód | Kdy |
|---|---|---|
| 422 | – | Víc než 20 pravidel: „Pravidel může být nejvýš 20“ |
| 422 | – | enabled bez pravidel: „Zapnuté schvalování potřebuje aspoň jedno pravidlo“ |
| 422 | – | Pravidlo není objekt: „Pravidlo N musí být objekt s poli min_amount, cost_centers, accounts a approver_id“ |
| 422 | – | „Pravidlo N: částka musí být číslo“ nebo „Pravidlo N: částka nesmí být záporná“ |
| 422 | – | Středisko delší než 80 znaků: „Pravidlo N: středisko „…“ je delší než 80 znaků“ |
| 422 | – | Neplatný účet: „Pravidlo N: „…“ není číslo účtu ani kategorie“ |
| 422 | – | approver_id není člen s právem zápisu (ani dříve uložený schvalovatel): „Pravidlo N: schvalovat může jen člen firmy s právem zápisu“ |
Společné chyby všech operací (přihlášení, oprávnění, limity) popisuje Chyby a limity.
Chování
- Co změní
- Změní nastavení firmy (settings.approvals), dokladům ve schvalování (odeslaným, vráceným, změněným), které už žádné pravidlo nepokrývá, smaže stav schvalování a zapíše entity.approval_rules s uloženými pravidly. Jiné údaje dokladů ani zaúčtování nemění; u schválených dokladů zůstane uložené schválení.
- Limity
- Nejvýše 20 pravidel; v pravidle se použije nejvýše 20 středisek a 20 účtů (další se zahodí, duplicity se sloučí); středisko nejvýše 80 znaků.
- Opakování
- Opakování se stejným tělem nastavení nezmění, jen znovu zapíše událost.
Příklad
cURL
curl \
-X PATCH \
-H "X-API-Key: $SALDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled":true,"rules":[{"min_amount":"10000","cost_centers":[],"accounts":["518"],"approver_id":null}]}' \
https://techtools.cz/ucetnictvi-api/entities/1/approval_rulesJavaScript
const response = await fetch('https://techtools.cz/ucetnictvi-api/entities/1/approval_rules', {
headers: { 'X-API-Key': process.env.SALDO_API_KEY, 'Content-Type': 'application/json' },
method: 'PATCH',
body: JSON.stringify({
"enabled": true,
"rules": [
{
"min_amount": "10000",
"cost_centers": [],
"accounts": [
"518"
],
"approver_id": null
}
]
})
});
const data = await response.json();{
"enabled": true,
"kinds": [
"invoice_in",
"cash_out"
],
"rules": [
{
"min_amount": "10000.0",
"cost_centers": [],
"accounts": [
"518"
],
"approver_id": null,
"description": "od 10 000 Kč · účet 518 → vlastník nebo účetní",
"approver_missing": false
}
],
"approvers": [
{
"id": 1,
"name": "ukazka",
"role": "owner"
},
{
"id": 2,
"name": "ucetni_ukazka",
"role": "accountant"
}
]
}
Dlouhé seznamy jsou v ukázce zkrácené na první položky.
POST Odeslání přijatého výdaje ke schválení
/entities/{entity_id}/documents/{id}/approval/submit
- Oprávnění
- Vlastník, účetní nebo editor
- Klíč jen pro čtení
- Nestačí, vrátí 403
READ_ONLY_KEY
Odešle doklad, na který se vztahuje pravidlo schvalování, ke schválení (stav pending) – ze stavu „vyžaduje schválení“, „vráceno k opravě“ nebo „změněno po schválení“. Doklad se tím nevystaví ani nezaúčtuje. Tělo se nečte; poznámku k odeslání nelze přes API zadat. Vrátí detail dokladu se stavem schvalování.
Parametry
| Název | Kde | Typ | Povinný | Popis |
|---|---|---|---|---|
entity_id | cesta | celé číslo | ano | ID účetní jednotky (firmy) Příklad 7. |
id | cesta | celé číslo | ano | ID přijatého dokladu Příklad 1544. |
Odpověď
200 application/json Detail dokladu jako v getDocument; approval.state je pending.
| Pole | Význam |
|---|---|
approval.state | needed, pending, approved, returned, changed nebo not_required |
approval.label | Stav česky, např. Čeká na schválení |
approval.required | Na doklad se vztahuje pravidlo |
approval.rule | Podmínky pravidla česky, např. od 10 000 Kč |
approval.approvers | Kdo schvaluje, např. vlastník nebo účetní |
approval.fingerprint | Otisk schvalovaných údajů (SHA-256) pro approveDocument |
approval.can_submit | Volající může doklad odeslat ke schválení |
approval.can_approve | Volající může doklad schválit |
approval.can_return | Volající může doklad vrátit |
approval.history[] | { action (submitted, approved, returned, invalidated), label, user, at, note } |
Chyby této operace
| Stav | Kód | Kdy |
|---|---|---|
| 422 | – | Stornovaný doklad: „Stornovaný doklad nelze odeslat ke schválení“ |
| 422 | – | Žádné pravidlo doklad nepokrývá (nebo je schvalování vypnuté): „Tento doklad podle pravidel firmy schválení nepotřebuje“ |
| 422 | – | „Doklad už čeká na schválení“ nebo „Doklad je už schválený“ |
| 422 | – | Doklad byl vystaven dřív, než se na něj pravidlo vztahovalo: „Doklad byl zaúčtovaný dřív, než se začalo schvalovat“ |
Společné chyby všech operací (přihlášení, oprávnění, limity) popisuje Chyby a limity.
Chování
- Co změní
- Nastaví stav schvalování pending, přidá do historie schvalování záznam submitted s otiskem údajů a zapíše document.approval_submitted.
- Opakování
- Druhé volání vrátí 422 „Doklad už čeká na schválení“.
Příklad
Vyžaduje zapnuté schvalování s pravidlem, které doklad pokrývá (např. updateApprovalRules s min_amount 0); bez něj odpověď 422 „Tento doklad podle pravidel firmy schválení nepotřebuje“.
cURL
curl \
-X POST \
-H "X-API-Key: $SALDO_API_KEY" \
https://techtools.cz/ucetnictvi-api/entities/1/documents/146/approval/submitJavaScript
const response = await fetch('https://techtools.cz/ucetnictvi-api/entities/1/documents/146/approval/submit', {
headers: { 'X-API-Key': process.env.SALDO_API_KEY },
method: 'POST'
});
const data = await response.json();{
"id": 146,
"kind": "invoice_in",
"kind_label": "Faktura přijatá",
"status": "draft",
"number": null,
"variable_symbol": "2026090418",
"original_number": "2026090418",
"partner_id": 6,
"partner_name": "Coworking Karlín s.r.o.",
"partner_ico": "90000056",
"issue_date": "2026-09-25",
"taxable_date": "2026-09-25",
"due_date": "2026-10-09",
"currency": "CZK",
"total_net": 14500.0,
"total_vat": 3045.0,
"total_payable": 17545.0,
"total_gross_czk": 17545.0,
"paid_amount": 0.0,
"remaining": 17545.0,
"payment_state": "na",
"days_overdue": 0,
"description": "Nájem – říjen",
"vat_mode": "domestic",
"source": "manual",
"tags": null,
"related_document_id": null,
"reminders_sent": 0,
"outcome": null,
"attachments_count": 0,
"approval_state": "pending",
"uuid": null,
"constant_symbol": null,
"specific_symbol": null,
"received_date": "2026-09-26",
"vat_date": "2026-09-26",
"exchange_rate": 1.0,
"rate_date": null,
"rc_code": null,
"prices_include_vat": false,
"simplified": false,
"regime_44": false,
"payment_method": "bank",
"bank_account_id": null,
"rounding": 0.0,
"total_gross": 17545.0,
"total_net_czk": 14500.0,
"total_vat_czk": 3045.0,
"note": null,
"internal_note": null,
"language": "cs",
"kh_section": null,
"cost_center": null,
"project": null,
"paid_on": null,
"created_at": "2026-09-28T10:00:00.000Z",
"updated_at": "2026-09-28T10:00:00.000Z",
"partner": {
"name": "Coworking Karlín s.r.o.",
"ico": "90000056",
"dic": "CZ90000056",
"street": "Pernerova 697/35",
"city": "Praha 8",
"zip": "18600",
"country": "CZ",
"email": null,
"phone": null
},
"lines": [
{
"id": 147,
"position": 0,
"description": "Nájem kancelářského místa – říjen",
"quantity": 1.0,
"unit": "ks",
"unit_price": 14500.0,
"discount_percent": 0.0,
"vat_rate": 21.0,
"vat_kind": "standard",
"account_code": "518",
"asset": false,
"deduction": "full",
"advance_document_id": null,
"net": 14500.0,
"vat": 3045.0,
"gross": 17545.0,
"net_czk": 14500.0,
"vat_czk": 3045.0
}
],
"attachments": [],
"share": null,
"payments": [],
"vat_recap": [
{
"rate": 21.0,
"net": 14500.0,
"vat": 3045.0,
"gross": 17545.0,
"net_czk": 14500.0,
"vat_czk": 3045.0
}
],
"bank_account": null,
"related_document": null,
"recurrence": null,
"approval": {
"state": "pending",
"label": "Čeká na schválení",
"required": true,
"rule": "od 0 Kč",
"approvers": "vlastník nebo účetní",
"fingerprint": "f7bfb83b94de9ecb4dbd6120f7e517bceb0cc93ec7d6129f91188c476e649a1c",
"can_submit": false,
"can_approve": true,
"can_return": true,
"history": [
{
"action": "submitted",
"label": "Odesláno ke schválení",
"user": "ukazka",
"at": "2026-09-28T10:00:00.000Z",
"note": null
}
]
}
}
POST Schválení přijatého výdaje
/entities/{entity_id}/documents/{id}/approval/approve
- Oprávnění
- Zvláštní pravidlo
- Pravidlo
- Zapisující člen (vlastník, účetní, editor), který smí doklad schválit: vlastník vždy; určuje-li pravidlo schvalovatele, jen on (nebo vlastník; když schvalovatel ztratil právo zápisu, jen vlastník); jinak vlastník nebo účetní. Ostatní zapisující členové dostanou 422 „Doklad smí schválit …“, člen jen pro čtení 403.
- Klíč jen pro čtení
- Nestačí, vrátí 403
READ_ONLY_KEY
Schválí doklad (stav approved) a uloží otisk schvalovaných údajů: částka, měna, částka v Kč a kurz, dodavatel (jméno, IČO, účet pro platbu), středisko, účty řádků a přílohy. Schválit lze i doklad, který nebyl odeslán ke schválení nebo byl vrácen. Schválení doklad nevystaví – vystaví se pak issueDocument (schválený doklad smí vystavit kterýkoli zapisující člen). S fingerprint (z approval.fingerprint v detailu) se schválení odmítne, pokud se doklad mezitím změnil. Když schválené údaje později změní někdo, kdo doklad nesmí schválit, schválení se zruší (stav changed); změnu schvalovatelem Saldo rovnou znovu schválí.
Parametry
| Název | Kde | Typ | Povinný | Popis |
|---|---|---|---|---|
entity_id | cesta | celé číslo | ano | ID účetní jednotky (firmy) Příklad 7. |
id | cesta | celé číslo | ano | ID přijatého dokladu Příklad 1544. |
Tělo požadavku
Formát application/json.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
fingerprint | text | ne | Otisk z approval.fingerprint, jak ho schvalovatel viděl; nepovinný |
Odpověď
200 application/json Detail dokladu jako v getDocument; approval.state je approved a historie končí záznamem approved.
Chyby této operace
| Stav | Kód | Kdy |
|---|---|---|
| 422 | – | Žádné pravidlo doklad nepokrývá: „Tento doklad podle pravidel firmy schválení nepotřebuje“ |
| 422 | – | Už schválený: „Doklad je už schválený“ |
| 422 | – | Doklad byl vystaven dřív, než se na něj pravidlo vztahovalo: „Doklad byl zaúčtovaný dřív, než se začalo schvalovat“ |
| 422 | – | Volající ho nesmí schválit: „Doklad smí schválit …“ |
| 422 | – | fingerprint neodpovídá aktuálnímu stavu: „Doklad se mezitím změnil – obnovte stránku a zkontrolujte ho znovu“ |
Společné chyby všech operací (přihlášení, oprávnění, limity) popisuje Chyby a limity.
Chování
- Co změní
- Nastaví stav schvalování approved a otisk, přidá do historie schvalování záznam approved a zapíše document.approved. Nic nevystavuje ani nezaúčtuje.
- Opakování
- Druhé volání vrátí 422 „Doklad je už schválený“.
Příklad
Vyžaduje zapnuté schvalování s pravidlem, které doklad pokrývá; volá vlastník ukázkové firmy.
cURL
curl \
-X POST \
-H "X-API-Key: $SALDO_API_KEY" \
https://techtools.cz/ucetnictvi-api/entities/1/documents/146/approval/approveJavaScript
const response = await fetch('https://techtools.cz/ucetnictvi-api/entities/1/documents/146/approval/approve', {
headers: { 'X-API-Key': process.env.SALDO_API_KEY },
method: 'POST'
});
const data = await response.json();{
"id": 146,
"kind": "invoice_in",
"kind_label": "Faktura přijatá",
"status": "draft",
"number": null,
"variable_symbol": "2026090418",
"original_number": "2026090418",
"partner_id": 6,
"partner_name": "Coworking Karlín s.r.o.",
"partner_ico": "90000056",
"issue_date": "2026-09-25",
"taxable_date": "2026-09-25",
"due_date": "2026-10-09",
"currency": "CZK",
"total_net": 14500.0,
"total_vat": 3045.0,
"total_payable": 17545.0,
"total_gross_czk": 17545.0,
"paid_amount": 0.0,
"remaining": 17545.0,
"payment_state": "na",
"days_overdue": 0,
"description": "Nájem – říjen",
"vat_mode": "domestic",
"source": "manual",
"tags": null,
"related_document_id": null,
"reminders_sent": 0,
"outcome": null,
"attachments_count": 0,
"approval_state": "approved",
"uuid": null,
"constant_symbol": null,
"specific_symbol": null,
"received_date": "2026-09-26",
"vat_date": "2026-09-26",
"exchange_rate": 1.0,
"rate_date": null,
"rc_code": null,
"prices_include_vat": false,
"simplified": false,
"regime_44": false,
"payment_method": "bank",
"bank_account_id": null,
"rounding": 0.0,
"total_gross": 17545.0,
"total_net_czk": 14500.0,
"total_vat_czk": 3045.0,
"note": null,
"internal_note": null,
"language": "cs",
"kh_section": null,
"cost_center": null,
"project": null,
"paid_on": null,
"created_at": "2026-09-28T10:00:00.000Z",
"updated_at": "2026-09-28T10:00:00.000Z",
"partner": {
"name": "Coworking Karlín s.r.o.",
"ico": "90000056",
"dic": "CZ90000056",
"street": "Pernerova 697/35",
"city": "Praha 8",
"zip": "18600",
"country": "CZ",
"email": null,
"phone": null
},
"lines": [
{
"id": 147,
"position": 0,
"description": "Nájem kancelářského místa – říjen",
"quantity": 1.0,
"unit": "ks",
"unit_price": 14500.0,
"discount_percent": 0.0,
"vat_rate": 21.0,
"vat_kind": "standard",
"account_code": "518",
"asset": false,
"deduction": "full",
"advance_document_id": null,
"net": 14500.0,
"vat": 3045.0,
"gross": 17545.0,
"net_czk": 14500.0,
"vat_czk": 3045.0
}
],
"attachments": [],
"share": null,
"payments": [],
"vat_recap": [
{
"rate": 21.0,
"net": 14500.0,
"vat": 3045.0,
"gross": 17545.0,
"net_czk": 14500.0,
"vat_czk": 3045.0
}
],
"bank_account": null,
"related_document": null,
"recurrence": null,
"approval": {
"state": "approved",
"label": "Schváleno",
"required": true,
"rule": "od 0 Kč",
"approvers": "vlastník nebo účetní",
"fingerprint": "f7bfb83b94de9ecb4dbd6120f7e517bceb0cc93ec7d6129f91188c476e649a1c",
"can_submit": false,
"can_approve": false,
"can_return": false,
"history": [
{
"action": "submitted",
"label": "Odesláno ke schválení",
"user": "ukazka",
"at": "2026-09-28T10:00:00.000Z",
"note": null
},
{
"action": "approved",
"label": "Schváleno",
"user": "ukazka",
"at": "2026-09-28T10:00:00.000Z",
"note": null
}
]
}
}
POST Vrácení přijatého výdaje k opravě
/entities/{entity_id}/documents/{id}/approval/return
- Oprávnění
- Zvláštní pravidlo
- Pravidlo
- Stejně jako u approveDocument: zapisující člen, který smí doklad schválit; ostatní zapisující členové dostanou 422 „Doklad smí vrátit …“, člen jen pro čtení 403.
- Klíč jen pro čtení
- Nestačí, vrátí 403
READ_ONLY_KEY
Schvalovatel vrátí doklad k opravě s povinným důvodem (stav returned). Vrátit lze jen doklad, který schválení vyžaduje, čeká na něj nebo se po schválení změnil. Opravený doklad se znovu odešle přes submitDocumentApproval (nebo uložením s issue: true); bez nového schválení ho vystaví jen jeho schvalovatel, a tím ho zároveň schválí.
Parametry
| Název | Kde | Typ | Povinný | Popis |
|---|---|---|---|---|
entity_id | cesta | celé číslo | ano | ID účetní jednotky (firmy) Příklad 7. |
id | cesta | celé číslo | ano | ID přijatého dokladu Příklad 1544. |
Tělo požadavku
Formát application/json.
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
reason | text | ano | Důvod vrácení; mezery se sloučí, nejvýše 500 znaků |
Odpověď
200 application/json Detail dokladu jako v getDocument; approval.state je returned a důvod je v approval.history[].note.
Chyby této operace
| Stav | Kód | Kdy |
|---|---|---|
| 422 | – | Prázdný důvod: „Napište, proč doklad vracíte“ |
| 422 | – | Důvod delší než 500 znaků: „Důvod může mít nejvýš 500 znaků“ |
| 422 | – | Žádné pravidlo doklad nepokrývá: „Tento doklad podle pravidel firmy schválení nepotřebuje“ |
| 422 | – | Volající ho nesmí vrátit: „Doklad smí vrátit …“ |
| 422 | – | Doklad je schválený nebo už vrácený: „Vrátit lze jen doklad, který na schválení čeká“ |
Společné chyby všech operací (přihlášení, oprávnění, limity) popisuje Chyby a limity.
Chování
- Co změní
- Nastaví stav schvalování returned, přidá do historie schvalování záznam returned s důvodem a zapíše document.approval_returned.
- Opakování
- Druhé volání vrátí 422 „Vrátit lze jen doklad, který na schválení čeká“.
Příklad
Vyžaduje zapnuté schvalování s pravidlem, které doklad pokrývá.
cURL
curl \
-X POST \
-H "X-API-Key: $SALDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"reason":"Chybí objednávka"}' \
https://techtools.cz/ucetnictvi-api/entities/1/documents/146/approval/returnJavaScript
const response = await fetch('https://techtools.cz/ucetnictvi-api/entities/1/documents/146/approval/return', {
headers: { 'X-API-Key': process.env.SALDO_API_KEY, 'Content-Type': 'application/json' },
method: 'POST',
body: JSON.stringify({
"reason": "Chybí objednávka"
})
});
const data = await response.json();{
"id": 146,
"kind": "invoice_in",
"kind_label": "Faktura přijatá",
"status": "draft",
"number": null,
"variable_symbol": "2026090418",
"original_number": "2026090418",
"partner_id": 6,
"partner_name": "Coworking Karlín s.r.o.",
"partner_ico": "90000056",
"issue_date": "2026-09-25",
"taxable_date": "2026-09-25",
"due_date": "2026-10-09",
"currency": "CZK",
"total_net": 14500.0,
"total_vat": 3045.0,
"total_payable": 17545.0,
"total_gross_czk": 17545.0,
"paid_amount": 0.0,
"remaining": 17545.0,
"payment_state": "na",
"days_overdue": 0,
"description": "Nájem – říjen",
"vat_mode": "domestic",
"source": "manual",
"tags": null,
"related_document_id": null,
"reminders_sent": 0,
"outcome": null,
"attachments_count": 0,
"approval_state": "returned",
"uuid": null,
"constant_symbol": null,
"specific_symbol": null,
"received_date": "2026-09-26",
"vat_date": "2026-09-26",
"exchange_rate": 1.0,
"rate_date": null,
"rc_code": null,
"prices_include_vat": false,
"simplified": false,
"regime_44": false,
"payment_method": "bank",
"bank_account_id": null,
"rounding": 0.0,
"total_gross": 17545.0,
"total_net_czk": 14500.0,
"total_vat_czk": 3045.0,
"note": null,
"internal_note": null,
"language": "cs",
"kh_section": null,
"cost_center": null,
"project": null,
"paid_on": null,
"created_at": "2026-09-28T10:00:00.000Z",
"updated_at": "2026-09-28T10:00:00.000Z",
"partner": {
"name": "Coworking Karlín s.r.o.",
"ico": "90000056",
"dic": "CZ90000056",
"street": "Pernerova 697/35",
"city": "Praha 8",
"zip": "18600",
"country": "CZ",
"email": null,
"phone": null
},
"lines": [
{
"id": 147,
"position": 0,
"description": "Nájem kancelářského místa – říjen",
"quantity": 1.0,
"unit": "ks",
"unit_price": 14500.0,
"discount_percent": 0.0,
"vat_rate": 21.0,
"vat_kind": "standard",
"account_code": "518",
"asset": false,
"deduction": "full",
"advance_document_id": null,
"net": 14500.0,
"vat": 3045.0,
"gross": 17545.0,
"net_czk": 14500.0,
"vat_czk": 3045.0
}
],
"attachments": [],
"share": null,
"payments": [],
"vat_recap": [
{
"rate": 21.0,
"net": 14500.0,
"vat": 3045.0,
"gross": 17545.0,
"net_czk": 14500.0,
"vat_czk": 3045.0
}
],
"bank_account": null,
"related_document": null,
"recurrence": null,
"approval": {
"state": "returned",
"label": "Vráceno k opravě",
"required": true,
"rule": "od 0 Kč",
"approvers": "vlastník nebo účetní",
"fingerprint": "f7bfb83b94de9ecb4dbd6120f7e517bceb0cc93ec7d6129f91188c476e649a1c",
"can_submit": true,
"can_approve": true,
"can_return": false,
"history": [
{
"action": "submitted",
"label": "Odesláno ke schválení",
"user": "ukazka",
"at": "2026-09-28T10:00:00.000Z",
"note": null
},
{
"action": "returned",
"label": "Vráceno k opravě",
"user": "ukazka",
"at": "2026-09-28T10:00:00.000Z",
"note": "Chybí objednávka"
}
]
}
}