Doklady

Faktury vydané jsou na /api/v1/invoices, Faktury přijaté na /api/v1/received-invoices. Mají stejný tvar: dodavatel je vždy supplier, odběratel customer.

Druhy dokladů ve Fakturách vydaných

kindDoklad
invoiceFaktura – daňový doklad (výchozí).
proformaZálohová faktura. Není daňový doklad, nemá DUZP.
creditNoteOpravný daňový doklad (dobropis). Potřebuje correctedDocumentId a correctionReason; částky jsou záporné.
advanceTaxDocumentDaňový doklad k přijaté platbě. Vzniká jen přes POST /invoices/{id}/advance-tax-document u zaplacené zálohy.
quoteCenová nabídka. Neplatí se, dueDate je její platnost.

Druh dokladu se po vytvoření nemění.

Vystavení dokladu

POST /api/v1/invoices

Povinné jsou jen řádky a odběratel: buď celý customer, nebo contactId z adresáře. Ostatní doplní abFaktura:

PoleKdyž chybí
numberDalší číslo z číselné řady (výchozí, nebo numberSeriesId).
supplierVždy vaše firma z nastavení; u vydaného dokladu ho neposíláte.
issueDateDnešek v českém čase.
taxableSupplyDateDatum vystavení (jen u plátce DPH, ne u zálohy a nabídky).
dueDateDatum vystavení + dueInDays (výchozí 14 dní).
paymentMethodbankTransfer; doplní se váš výchozí účet a variabilní symbol z čísla dokladu.
vatPayerPodle toho, zda je vaše firma plátce DPH.
lines[].vatRate21 % u plátce DPH, jinak 0.
currencyCZK. U cizí měny se bez exchangeRate použije kurz ČNB ke dni DUZP.
languageJazyk kontaktu, jinak cs. Další možnosti: en, bilingual.

Součty počítá server

Součty neposíláte. Server je spočítá stejně jako aplikace: DPH se zaokrouhluje jednou za sazbu (§ 37 zákona o DPH), cenu s DPH (priceIncludesVat: true) počítá „shora“, slevu řádku (discount) i slevu celého dokladu uplatní před DPH a s roundToCrowns doplní haléřové vyrovnání.

"lines": [
  { "name": "Vývoj", "quantity": 2, "unitPrice": 1000, "vatRate": 21 },
  { "name": "Kniha", "quantity": 1, "unitPrice": 112, "vatRate": 12, "priceIncludesVat": true }
]
→ subtotal 2100, vatTotal 432 (420 + 12), total 2532

Členění DPH řádku (vatClassification) je výchozí tuzemské 01,02 u vydaných a 40,41 u přijatých; pro přenesenou daňovou povinnost, dodání do EU apod. pošlete kód z číselníku (např. 25, 20, 21).

Faktura ze zálohy a z nabídky

Konečná faktura k záloze má sourceProformaId: co bylo na záloze zaplaceno, je zaplaceno i na faktuře. Doklad z nabídky má sourceQuoteId. Po zaplacení zálohy plátce DPH vystaví daňový doklad k přijaté platbě:

POST /api/v1/invoices/{id-zalohy}/advance-tax-document

Úprava a smazání

PUT /api/v1/invoices/{id} nahradí celý doklad: pošlete všechna pole, řádky se nahradí. Číslo, pokud ho nepošlete, zůstává. Druh dokladu a vazby (oprava, záloha, nabídka) se nemění.

DELETE /api/v1/invoices/{id} přesune doklad mezi smazané (v aplikaci jde obnovit); jeho číslo se znovu nepoužije.

Úhrady

POST /api/v1/invoices/{id}/payments
{ "amount": 3025, "date": "2026-10-28", "method": "bankTransfer", "note": "Výpis 10/2026" }

Odpověď je doklad s novými částkami (amountPaid, amountDue, paid). Záporná částka je vrácení přeplatku. Seznam úhrad je na GET /invoices/{id}/payments, úhradu zrušíte DELETE /invoices/{id}/payments/{paymentId}. U dokladu v cizí měně se bez exchangeRate použije kurz ČNB ke dni platby a kurzový rozdíl se zaúčtuje sám.

PDF a ISDOC

GET /api/v1/invoices/{id}/pdf vrátí PDF tak, jak ho dostane odběratel (s vaším logem a vzhledem). Když PDF ještě není připravené, přijde 503 s hlavičkou Retry-After.

GET /api/v1/invoices/{id}/isdoc vrátí doklad ve formátu ISDOC, který načtou české účetní programy.

Odeslání e-mailem

POST /api/v1/invoices/{id}/send
{ "to": "fakturace@odberatel.cz", "subject": "Faktura 2026-0042", "message": "Dobrý den, posíláme fakturu…" }

Bez předmětu a textu se použije vaše šablona e-mailu. Doklad se označí jako odeslaný a v historii dokladu uvidíte, kdy ho odběratel otevřel.

Faktury přijaté

POST /api/v1/received-invoices
{
  "supplier": { "name": "Dodavatel s.r.o.", "companyNumber": "11223344", "taxNumber": "CZ11223344" },
  "originalNumber": "FV-2026-0042",
  "issueDate": "2026-10-20",
  "dueDate": "2026-11-03",
  "bankAccount": { "accountNumber": "123456789", "bankCode": "0800", "variableSymbol": "20260042" },
  "lines": [ { "name": "Nájem 11/2026", "unitPrice": 10000, "vatRate": 21 } ]
}

Odběratelem je vaše firma, dodavatelovo číslo dokladu patří do originalNumber, vlastní číslo dostane faktura z řady přijatých faktur.

Limit dokladů tarifu

Vystavené doklady (faktury, zálohy, dobropisy, daňové doklady k platbě) se počítají do limitu tarifu stejně jako v aplikaci. Když je limit vyčerpaný, vystavení skončí 422 DocumentLimitReached. Nabídky a Faktury přijaté se nepočítají.