SaldoDokumentace Otevřít Saldo

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.

5 operací · vygenerováno z OpenAPI · ukázky zaznamenané na smyšlené firmě

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ázevKdeTypPovinnýPopis
entity_idcestacelé čísloanoID účetní jednotky (firmy) Příklad 7.

Odpověď

200 application/json Nastavení schvalování.

PoleVýznam
enabledSchvalování je zapnuté
kindsDruhy dokladů, na které se schvalování vztahuje: invoice_in, cash_out, credit_in
rules[].min_amountMinimální částka s DPH v Kč jako text (např. 10000.0), nebo null
rules[].cost_centersStřediska (pole textů); prázdné = libovolné
rules[].accountsZačátky čísel účtů nebo kategorií (pole textů); prázdné = libovolné
rules[].approver_idID uživatele určeného schvalovatele, nebo null (schvaluje vlastník nebo účetní)
rules[].descriptionPravidlo česky, např. „od 10 000 Kč → vlastník nebo účetní“
rules[].approver_missingtrue, když určený schvalovatel už nemá právo zápisu (schvaluje pak jen vlastník)
approvers[].idID uživatele (použije se jako approver_id)
approvers[].nameZobrazované jméno nebo uživatelské jméno
approvers[].roleowner, 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_rules

JavaScript

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();
Odpověď 200 OK
{
  "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ázevKdeTypPovinnýPopis
entity_idcestacelé čísloanoID účetní jednotky (firmy) Příklad 7.

Tělo požadavku

Formát application/json.

PoleTypPovinnéPopis
enabledano/neneZapnout schvalování (chybí-li, uloží se vypnuto); zapnuté vyžaduje aspoň jedno pravidlo
rulespole (objekt)nePravidla 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[].min_amountčísloneMinimální částka s DPH v Kč (číslo nebo text, mezery a desetinná čárka povoleny); nesmí být záporná; prázdné = bez limitu
rules[].cost_centerspole (text)neStřediska; lze i text oddělený čárkou nebo středníkem
rules[].accountspole (text)neZačá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[].approver_idcelé čísloneID 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

StavKódKdy
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_rules

JavaScript

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();
Odpověď 200 OK
{
  "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ázevKdeTypPovinnýPopis
entity_idcestacelé čísloanoID účetní jednotky (firmy) Příklad 7.
idcestacelé čísloanoID přijatého dokladu Příklad 1544.

Odpověď

200 application/json Detail dokladu jako v getDocument; approval.state je pending.

PoleVýznam
approval.stateneeded, pending, approved, returned, changed nebo not_required
approval.labelStav česky, např. Čeká na schválení
approval.requiredNa doklad se vztahuje pravidlo
approval.rulePodmínky pravidla česky, např. od 10 000 Kč
approval.approversKdo schvaluje, např. vlastník nebo účetní
approval.fingerprintOtisk schvalovaných údajů (SHA-256) pro approveDocument
approval.can_submitVolající může doklad odeslat ke schválení
approval.can_approveVolající může doklad schválit
approval.can_returnVolající může doklad vrátit
approval.history[]{ action (submitted, approved, returned, invalidated), label, user, at, note }

Chyby této operace

StavKódKdy
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/submit

JavaScript

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();
Odpověď 200 OK
{
  "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ázevKdeTypPovinnýPopis
entity_idcestacelé čísloanoID účetní jednotky (firmy) Příklad 7.
idcestacelé čísloanoID přijatého dokladu Příklad 1544.

Tělo požadavku

Formát application/json.

PoleTypPovinnéPopis
fingerprinttextneOtisk 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

StavKódKdy
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/approve

JavaScript

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();
Odpověď 200 OK
{
  "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ázevKdeTypPovinnýPopis
entity_idcestacelé čísloanoID účetní jednotky (firmy) Příklad 7.
idcestacelé čísloanoID přijatého dokladu Příklad 1544.

Tělo požadavku

Formát application/json.

PoleTypPovinnéPopis
reasontextanoDů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

StavKódKdy
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/return

JavaScript

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();
Odpověď 200 OK
{
  "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"
      }
    ]
  }
}