openapi: 3.1.0
info:
  title: iÚčto API
  version: '1.3'
  summary: Veřejné REST API účetního systému online.iucto.cz
  description: |
    Veřejné REST API účetního systému [online.iucto.cz](https://online.iucto.cz).

    API je postavené na REST architektuře a komunikuje **výhradně přes HTTPS**.
    Odpovědi jsou ve formátu [HAL+JSON](https://en.wikipedia.org/wiki/Hypertext_Application_Language),
    tělo požadavků `POST` a `PUT` musí být JSON. Každý požadavek musí nést hlavičku
    `X-Auth-Key` s API klíčem.

    Odkazy v popisech níže jsou relativní k **https://developers.iucto.cz** —
    když si tenhle soubor stáhnete zvlášť, doplňte si tu adresu před ně.

    Koncepty společné všem zdrojům jsou v průvodci:

    - [Úvod](/uvod) — základní URL, HTTP metody, odpovědi serveru
    - [Začínáme](/zaciname) — tři kroky k prvnímu úspěšnému volání
    - [Autentizace](/autentizace) — jak získat a používat API klíč
    - [Stránkování, řazení a filtry](/strankovani-razeni) — `page`, `pageSize`,
      `sort` a filtry seznamů
    - [Datové typy](/datove-typy) — formáty hodnot a kódy typů dokladů
    - [Chyby a jak je číst](/chyby) — stavové kódy a tvary chybového těla
    - [Limity a kvóty](/limity) — kolik dotazů má který tarif a jak je šetřit
    - [Co platí pro všechny doklady](/doklady-spolecne) — neplátci DPH, zaúčtování
      položek, upomínky, EET a režim One Stop Shop
    - [Číselníky](/ciselniky) — které pole čerpá hodnoty z kterého endpointu
    - [Webhooky](/webhooky) — oznámení o vzniku, změně a úhradě dokladu
    - [Slovníček pojmů](/slovnicek) — co je DUZP, ODD nebo zaúčtování
    - [Přehled změn](/changelog) — co přibylo v jednotlivých verzích API
  contact:
    name: iÚčto
    url: https://online.iucto.cz
    email: info@iucto.cz
servers:
  - url: https://online.iucto.cz/api/1.3
    description: Ostrý provoz
security:
  - ApiKeyAuth: []
tags:
  - name: currency
    x-displayName: Měny
    description: Číselník měn použitelných v dokladech.
  - name: metody-plateb
    x-displayName: Metody plateb
    description: Číselník způsobů úhrady dokladů.
  - name: zaokrouhleni
    x-displayName: Způsoby zaokrouhlení
    description: Číselník metod zaokrouhlování částek v dokladech.
  - name: company-profile
    x-displayName: Detail firmy
    description: Základní údaje firmy, pod kterou je API klíč vydaný.
  - name: bankovni-ucty
    x-displayName: Bankovní účty
    description: Bankovní účty firmy používané na dokladech a platbách.
  - name: pokladny
    x-displayName: Pokladny
    description: Pokladny firmy používané u hotovostních plateb.
  - name: strediska
    x-displayName: Střediska
    description: Střediska pro členění nákladů a výnosů na položkách dokladů.
  - name: zakazky
    x-displayName: Zakázky
    description: Zakázky pro členění nákladů a výnosů na položkách dokladů.
  - name: business-premises
    x-displayName: Provozovny
    description: Provozovny evidované kvůli EET.
  - name: document-state
    x-displayName: Stavy dokladů
    description: Vlastní stavy, kterými lze označovat doklady.
  - name: zakaznici
    x-displayName: Zákazníci
    description: |
      Odběratelé používaní na vydaných dokladech.
      Ke kontaktu lze přidávat [**přílohy**](/api/attachment).
  - name: customer-group
    x-displayName: Skupiny zákazníků
    description: Číselník skupin, do kterých lze zákazníky třídit.
  - name: dodavatele
    x-displayName: Dodavatelé
    description: |
      Dodavatelé používaní na přijatých dokladech.
      Ke kontaktu lze přidávat [**přílohy**](/api/attachment).
  - name: supplier-group
    x-displayName: Skupiny dodavatelů
    description: Číselník skupin, do kterých lze dodavatele třídit.
  - name: country
    x-displayName: Země
    description: Číselník zemí pro adresy kontaktů.
  - name: preferred-payment-method
    x-displayName: Preferované metody platby
    description: Číselník preferovaných způsobů platby u kontaktu.
  - name: objednavky-prijate
    x-displayName: Objednávky
    description: Objednávky přijaté od zákazníků.
  - name: zalohove-faktury-vydane
    x-displayName: Zálohové faktury vydané
    description: |
      Zálohové faktury vystavené zákazníkům.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: faktury-vydane
    x-displayName: Faktury vydané
    description: |
      Faktury vystavené zákazníkům.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: opravne-danove-doklady-vydane
    x-displayName: Opravné daňové doklady vydané
    description: |
      Opravné daňové doklady k vydaným fakturám.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: document-scan
    x-displayName: Došlé doklady
    description: Naskenované doklady čekající na zpracování.
  - name: objednavky-vydane
    x-displayName: Objednávky vydané
    description: Objednávky vystavené dodavatelům.
  - name: zalohove-faktury-prijate
    x-displayName: Zálohové faktury přijaté
    description: |
      Zálohové faktury přijaté od dodavatelů.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: faktury-prijate
    x-displayName: Faktury přijaté
    description: |
      Faktury přijaté od dodavatelů.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: opravne-danove-doklady-prijate
    x-displayName: Opravné daňové doklady přijaté
    description: |
      Opravné daňové doklady k přijatým fakturám.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: interni-predpisy-nakladu
    x-displayName: Interní předpisy nákladů
    description: |
      Interní doklady předepisující náklad bez vazby na dodavatele.
      K dokladu lze přidávat [**přílohy**](/api/attachment).
  - name: platby-vydane
    x-displayName: Platby vydané
    description: Úhrady odchozí z pokladny nebo bankovního účtu.
  - name: platby-prijate
    x-displayName: Platby přijaté
    description: Úhrady příchozí do pokladny nebo na bankovní účet.
  - name: bank-transaction
    x-displayName: Bankovní pohyby
    description: |
      Pohyby na bankovních účtech firmy.
      Slouží k automatickému párování dokladů s úhradami — po vložení nového
      pohybu se ho systém pokusí spárovat s existující fakturou.
  - name: journal
    x-displayName: Účetní deník
    description: Zaúčtované položky všech dokladů.
  - name: direct-accounting
    x-displayName: Přímé zaúčtování
    description: Účetní doklad zapsaný přímo do deníku bez vazby na doklad.
  - name: sazba-dph
    x-displayName: Sazby DPH
    description: Platné sazby DPH podle země a data.
  - name: polozky-typy-uc-polozek
    x-displayName: Typy účetních položek
    description: Číselník typů účetních položek podle typu dokladu.
  - name: typy-dph
    x-displayName: Typy DPH
    description: Číselník typů DPH podle typu dokladu.
  - name: ucty-uc-osnovy
    x-displayName: Účty účetní osnovy
    description: Číselník účtů účetní osnovy firmy.
  - name: ucty-dph
    x-displayName: Účty DPH
    description: Číselník účtů DPH firmy.
  - name: eet-zpravy
    x-displayName: Seznam EET záznamů
    description: |
      Přehled zpráv odeslaných do elektronické evidence tržeb.

      Evidenci tržeb zrušil zákon č. 458/2022 Sb. s účinností od 1. ledna 2023
      a evidenční povinnost se fakticky neplnila už od 27. března 2020. Zdroj
      je tu kvůli dokladům z té doby — nová integrace ho nepotřebuje, viz
      [EET v průvodci doklady](/doklady-spolecne#eet).
  - name: eet-status
    x-displayName: Správa EET záznamů
    description: |
      Zápis a čtení jednotlivé EET zprávy.

      Stejně jako u seznamu jde o historická data: evidence tržeb skončila
      1. ledna 2023, viz [EET v průvodci doklady](/doklady-spolecne#eet).
  - name: price-list
    x-displayName: Ceník
    description: Ceník produktů a služeb používaných na položkách dokladů.
  - name: warehouse
    x-displayName: Sklady
    description: |
      Sklady firmy. Zdroj vyžaduje tarif se skladovým modulem.
  - name: inventory
    x-displayName: Skladové karty
    description: |
      Skladová karta přiřazuje položku ceníku na konkrétní sklad.
      Vytvořením skladového pohybu vzniká karta automaticky.

      Zdroj vyžaduje tarif se skladovým modulem.
  - name: stock-movement
    x-displayName: Skladové pohyby
    description: |
      Příjmy a výdeje na skladových kartách.
      Zdroj vyžaduje tarif se skladovým modulem.
  - name: attachment
    x-displayName: Přílohy dokladu nebo kontaktu
    description: |
      Přílohy lze přidávat ke všem typům dokladů a ke kontaktům.
      Parametr `{resource}` v cestě určuje, čeho se příloha týká, a nabývá
      jedné z hodnot `invoice_received`, `invoice_issued`, `proforma_invoice_received`,
      `proforma_invoice_issued`, `creditnote_received`, `creditnote_issued`,
      `direct_accounting`, `direct_expense`, `customer`, `supplier`.
  - name: attachment-detail
    x-displayName: Detail přílohy
    description: Čtení a mazání konkrétní přílohy.
  - name: attachment-download
    x-displayName: Stažení přílohy
    description: Stažení binárního obsahu přílohy.
  - name: webhook-update
    x-displayName: Změna dokladu
    description: |
      Volání, kterým iÚčto oznámí změnu dokladu.
      Není to endpoint API — požadavek posílá iÚčto na URL, kterou si
      nastavíte v aplikaci v *Nastavení → Nastavení API → Webhooky*.
  - name: webhook-payment
    x-displayName: Úhrada dokladu
    description: |
      Volání, kterým iÚčto oznámí úhradu dokladu.
      Nastavuje se zvlášť od oznámení o změně, v aplikaci
      v *Nastavení → Nastavení API → Webhooky*.
paths:
  /currency:
    get:
      operationId: listCurrencies
      x-mcp: true
      x-position: 101
      tags:
        - currency
      summary: Seznam měn
      description: |
        Seznam dostupných měn pro použití v dokladech.

        Dostupnost se může měnit v závislosti na aktivaci rozšíření
        *Účtování v cizích měnách*.
      responses:
        '200':
          description: Pole kódů měn podle ISO 4217.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CurrencyList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /payment_type:
    get:
      operationId: listPaymentTypes
      x-mcp: true
      x-position: 201
      tags:
        - metody-plateb
      summary: Seznam metod plateb
      description: |
        Seznam dostupných metod pro provedení platby používaných v dokladech.
      responses:
        '200':
          description: Mapa kódu způsobu platby na jeho český název.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentTypeList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /rounding_type:
    get:
      operationId: listRoundingTypes
      x-mcp: true
      x-position: 301
      tags:
        - zaokrouhleni
      summary: Seznam typů zaokrouhlení
      description: |
        Seznam metod pro zaokrouhlování částek v dokladech.
      responses:
        '200':
          description: Mapa kódu zaokrouhlení na jeho český název.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/RoundingTypeList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /company_profile:
    get:
      operationId: getCompanyProfile
      x-mcp: true
      x-position: 401
      tags:
        - company-profile
      summary: Detail firmy
      description: |
        Vrátí údaje firmy, pod kterou je vydaný použitý API klíč.
      responses:
        '200':
          description: Detail firmy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CompanyProfile'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /bank_account:
    get:
      operationId: listBankAccounts
      x-mcp: true
      x-position: 501
      tags:
        - bankovni-ucty
      summary: Seznam bankovních účtů
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam bankovních účtů firmy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankAccountCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createBankAccount
      x-mcp: true
      x-position: 503
      tags:
        - bankovni-ucty
      summary: Vytvoření bankovního účtu
      description: |
        Výchozí [**účet účetní osnovy**](/api/ucty-uc-osnovy) je 221.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountParams'
      responses:
        '201':
          description: Účet byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankAccountDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /bank_account/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID bankovního účtu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getBankAccount
      x-mcp: true
      x-position: 502
      tags:
        - bankovni-ucty
      summary: Detail bankovního účtu
      responses:
        '200':
          description: Detail bankovního účtu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankAccountDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateBankAccount
      x-position: 504
      tags:
        - bankovni-ucty
      summary: Editace bankovního účtu
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountParams'
      responses:
        '200':
          description: Účet byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankAccountDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteBankAccount
      x-position: 505
      tags:
        - bankovni-ucty
      summary: Smazání bankovního účtu
      description: |
        Smazat lze jen účet, který není použitý na žádném dokladu ani platbě.
      responses:
        '204':
          description: Účet byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /cash_register:
    get:
      operationId: listCashRegisters
      x-mcp: true
      x-position: 601
      tags:
        - pokladny
      summary: Seznam pokladen
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam pokladen firmy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CashRegisterCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /cash_register/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID pokladny.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getCashRegister
      x-mcp: true
      x-position: 602
      tags:
        - pokladny
      summary: Detail pokladny
      responses:
        '200':
          description: Detail pokladny.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CashRegisterDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /department:
    get:
      operationId: listDepartments
      x-mcp: true
      x-position: 701
      tags:
        - strediska
      summary: Seznam středisek
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam středisek firmy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DepartmentCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createDepartment
      x-mcp: true
      x-position: 703
      tags:
        - strediska
      summary: Vytvoření střediska
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DepartmentParams'
      responses:
        '201':
          description: Středisko bylo vytvořeno, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DepartmentDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /department/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID střediska.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getDepartment
      x-mcp: true
      x-position: 702
      tags:
        - strediska
      summary: Detail střediska
      responses:
        '200':
          description: Detail střediska.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DepartmentDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateDepartment
      x-position: 704
      tags:
        - strediska
      summary: Editace střediska
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DepartmentParams'
      responses:
        '200':
          description: Středisko bylo upraveno, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DepartmentDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDepartment
      x-position: 705
      tags:
        - strediska
      summary: Smazání střediska
      description: |
        Smaže středisko.
        Když je vázané na jiný záznam (fakturu, platbu apod.), vrátí chybu a
        středisko se nesmaže.
      responses:
        '204':
          description: Středisko bylo smazáno.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /contract:
    get:
      operationId: listContracts
      x-mcp: true
      x-position: 801
      tags:
        - zakazky
      summary: Seznam zakázek
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam zakázek firmy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ContractCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createContract
      x-mcp: true
      x-position: 803
      tags:
        - zakazky
      summary: Vytvoření zakázky
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractParams'
      responses:
        '201':
          description: Zakázka byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ContractDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /contract/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zakázky.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getContract
      x-mcp: true
      x-position: 802
      tags:
        - zakazky
      summary: Detail zakázky
      responses:
        '200':
          description: Detail zakázky.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ContractDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateContract
      x-position: 804
      tags:
        - zakazky
      summary: Editace zakázky
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractParams'
      responses:
        '200':
          description: Zakázka byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ContractDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteContract
      x-position: 805
      tags:
        - zakazky
      summary: Smazání zakázky
      description: |
        Smaže zakázku.
        Když je vázaná na jiný záznam (fakturu, platbu apod.), vrátí chybu a zakázka
        se nesmaže.
      responses:
        '204':
          description: Zakázka byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /business_premises:
    get:
      operationId: listBusinessPremises
      x-mcp: true
      x-position: 901
      tags:
        - business-premises
      summary: Seznam provozoven
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam provozoven firmy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BusinessPremisesCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /business_premises/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID provozovny.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getBusinessPremises
      x-mcp: true
      x-position: 902
      tags:
        - business-premises
      summary: Detail provozovny
      responses:
        '200':
          description: Detail provozovny.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BusinessPremisesDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /document_state:
    get:
      operationId: listDocumentStates
      x-mcp: true
      x-position: 1001
      tags:
        - document-state
      summary: Seznam stavů dokladů
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: name
          in: query
          description: Přesný název stavu.
          schema:
            type: string
            examples:
              - Odesláno
        - name: name_search
          in: query
          description: Část názvu stavu.
          schema:
            type: string
            examples:
              - Odes
        - name: description
          in: query
          description: Přesný popis stavu.
          schema:
            type: string
            examples:
              - Doklad byl odeslán zákazníkovi
        - name: description_search
          in: query
          description: Část popisu stavu.
          schema:
            type: string
            examples:
              - Doklad
        - name: visibility
          in: query
          description: Filtr na stavy nabízené u dokladů.
          schema:
            type: boolean
            examples:
              - true
      responses:
        '200':
          description: Stránkovaný seznam stavů dokladů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DocumentStateCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createDocumentState
      x-mcp: true
      x-position: 1003
      tags:
        - document-state
      summary: Vytvoření stavu dokladu
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentStateParams'
      responses:
        '201':
          description: Stav byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DocumentStateDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /document_state/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID stavu dokladu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getDocumentState
      x-mcp: true
      x-position: 1002
      tags:
        - document-state
      summary: Detail stavu dokladu
      responses:
        '200':
          description: Detail stavu dokladu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DocumentStateDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateDocumentState
      x-position: 1004
      tags:
        - document-state
      summary: Editace stavu dokladu
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentStateParams'
      responses:
        '200':
          description: Stav byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DocumentStateDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDocumentState
      x-position: 1005
      tags:
        - document-state
      summary: Smazání stavu dokladu
      responses:
        '204':
          description: Stav byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /customer:
    get:
      operationId: listCustomers
      x-mcp: true
      x-position: 1101
      tags:
        - zakaznici
      summary: Seznam zákazníků
      description: |
        Zjednodušený výpis zákazníků v adresáři.
        Bez filtrů vrací všechny zákazníky firmy.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: name
          in: query
          description: Jméno nebo název zákazníka.
          schema:
            type: string
            examples:
              - ACME CORP.
        - name: comid
          in: query
          description: IČO.
          schema:
            type: string
            examples:
              - '12345'
        - name: email
          in: query
          description: E-mail.
          schema:
            type: string
            examples:
              - some@email.org
        - name: vatid
          in: query
          description: DIČ.
          schema:
            type: string
            examples:
              - CZ123456
        - name: vat_payer
          in: query
          description: Filtr na plátce DPH.
          schema:
            type: boolean
            examples:
              - true
        - name: phone
          in: query
          description: Telefon.
          schema:
            type: string
            examples:
              - '601234567'
        - name: account_number
          in: query
          description: |
            Číslo bankovního účtu. Hledá se napříč poli `account_number1`
            až `account_number4`.
          schema:
            type: string
            examples:
              - 1234567890/5000
        - name: customer_group_id
          in: query
          description: ID [**skupiny zákazníků**](/api/customer-group).
          schema:
            type: integer
            examples:
              - 123
        - name: external_code
          in: query
          description: Vlastní identifikátor zákazníka v cizím systému.
          schema:
            type: string
            examples:
              - CC123
      responses:
        '200':
          description: Stránkovaný seznam zákazníků.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomerCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createCustomer
      x-mcp: true
      x-position: 1103
      tags:
        - zakaznici
      summary: Vytvoření zákazníka
      description: |
        Přidá zákazníka do adresáře. Plátce DPH musí mít vyplněné `vatid`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerParams'
            examples:
              neplatce:
                summary: Neplátce DPH
                description: Jen povinná pole.
                value:
                  name: Jan Novák
                  vat_payer: false
                  usual_maturity: 30
                  preferred_payment_method: transfer
                  invoice_language: cs
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
              platce:
                summary: Plátce DPH s kontakty
                description: |
                  Plátce DPH musí mít vyplněné `vatid`. Navíc má zařazení
                  do skupiny, kontaktní údaje a bankovní účet.
                value:
                  name: ACME CORP. s.r.o.
                  comid: '12345679'
                  vatid: CZ12345679
                  vat_payer: true
                  email: fakturace@example.org
                  phone: '+420123123123'
                  customer_group_id: 78
                  external_code: CC123
                  usual_maturity: 14
                  preferred_payment_method: transfer
                  invoice_language: cs
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
                  account_number1: 1234567890/0100
      responses:
        '201':
          description: Zákazník byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomerDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /customer/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zákazníka.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getCustomer
      x-mcp: true
      x-position: 1102
      tags:
        - zakaznici
      summary: Detail zákazníka
      description: Podrobný výpis zákazníka včetně adresy a fakturačních předvoleb.
      responses:
        '200':
          description: Detail zákazníka.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomerDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCustomer
      x-position: 1104
      tags:
        - zakaznici
      summary: Editace zákazníka
      description: Přepíše zákazníka tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerParams'
            examples:
              neplatce:
                summary: Neplátce DPH
                description: Jen povinná pole.
                value:
                  name: Jan Novák
                  vat_payer: false
                  usual_maturity: 30
                  preferred_payment_method: transfer
                  invoice_language: cs
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
              platce:
                summary: Plátce DPH s kontakty
                description: |
                  Plátce DPH musí mít vyplněné `vatid`. Navíc má zařazení
                  do skupiny, kontaktní údaje a bankovní účet.
                value:
                  name: ACME CORP. s.r.o.
                  comid: '12345679'
                  vatid: CZ12345679
                  vat_payer: true
                  email: fakturace@example.org
                  phone: '+420123123123'
                  customer_group_id: 78
                  external_code: CC123
                  usual_maturity: 14
                  preferred_payment_method: transfer
                  invoice_language: cs
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
                  account_number1: 1234567890/0100
      responses:
        '200':
          description: Zákazník byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomerDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteCustomer
      x-position: 1105
      tags:
        - zakaznici
      summary: Smazání zákazníka
      description: |
        Smaže zákazníka z adresáře.
        Když je vázaný na jiný záznam (faktura, platba a podobně), vrátí chybu a
        zákazník se nesmaže.
      responses:
        '204':
          description: Zákazník byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /customer_group:
    get:
      operationId: listCustomerGroups
      x-mcp: true
      x-position: 1201
      tags:
        - customer-group
      summary: Seznam skupin zákazníků
      description: |
        Stránkovaný seznam účetních skupin, do kterých lze zařadit [**zákazníka**](/api/zakaznici).
        Skupiny se spravují [v aplikaci](https://online.iucto.cz/customergroup) ,
        přes API je nelze měnit.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam skupin zákazníků.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CustomerGroupCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /supplier:
    get:
      operationId: listSuppliers
      x-mcp: true
      x-position: 1301
      tags:
        - dodavatele
      summary: Seznam dodavatelů
      description: |
        Zjednodušený výpis dodavatelů v adresáři.
        Bez filtrů vrací všechny dodavatele firmy.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: name
          in: query
          description: Jméno nebo název dodavatele.
          schema:
            type: string
            examples:
              - ACME CORP.
        - name: comid
          in: query
          description: IČO.
          schema:
            type: string
            examples:
              - '12345'
        - name: email
          in: query
          description: E-mail.
          schema:
            type: string
            examples:
              - some@email.org
        - name: vatid
          in: query
          description: DIČ.
          schema:
            type: string
            examples:
              - CZ123456
        - name: vat_payer
          in: query
          description: Filtr na plátce DPH.
          schema:
            type: boolean
            examples:
              - true
        - name: phone
          in: query
          description: Telefon.
          schema:
            type: string
            examples:
              - '601234567'
        - name: account_number
          in: query
          description: |
            Číslo bankovního účtu. Hledá se napříč poli `account_number1`
            až `account_number4`.
          schema:
            type: string
            examples:
              - 1234567890/5000
        - name: supplier_group_id
          in: query
          description: ID [**skupiny dodavatelů**](/api/supplier-group).
          schema:
            type: integer
            examples:
              - 123
        - name: external_code
          in: query
          description: Vlastní identifikátor dodavatele v cizím systému.
          schema:
            type: string
            examples:
              - CC123
      responses:
        '200':
          description: Stránkovaný seznam dodavatelů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SupplierCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createSupplier
      x-mcp: true
      x-position: 1303
      tags:
        - dodavatele
      summary: Vytvoření dodavatele
      description: |
        Přidá dodavatele do adresáře. Plátce DPH musí mít vyplněné `vatid`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierParams'
            examples:
              neplatce:
                summary: Neplátce DPH
                description: Jen povinná pole.
                value:
                  name: Jan Novák
                  vat_payer: false
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
              platce:
                summary: Plátce DPH s kontakty
                description: |
                  Plátce DPH musí mít vyplněné `vatid`. Navíc má zařazení
                  do skupiny, kontaktní údaje a bankovní účet.
                value:
                  name: ACME CORP. s.r.o.
                  comid: '12345679'
                  vatid: CZ12345679
                  vat_payer: true
                  email: fakturace@example.org
                  phone: '+420123123123'
                  supplier_group_id: 78
                  external_code: CC123
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
                  account_number1: 1234567890/0100
      responses:
        '201':
          description: Dodavatel byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SupplierDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /supplier/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID dodavatele.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getSupplier
      x-mcp: true
      x-position: 1302
      tags:
        - dodavatele
      summary: Detail dodavatele
      description: Podrobný výpis dodavatele včetně adresy a bankovních účtů.
      responses:
        '200':
          description: Detail dodavatele.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SupplierDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateSupplier
      x-position: 1304
      tags:
        - dodavatele
      summary: Editace dodavatele
      description: Přepíše dodavatele tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierParams'
            examples:
              neplatce:
                summary: Neplátce DPH
                description: Jen povinná pole.
                value:
                  name: Jan Novák
                  vat_payer: false
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
              platce:
                summary: Plátce DPH s kontakty
                description: |
                  Plátce DPH musí mít vyplněné `vatid`. Navíc má zařazení
                  do skupiny, kontaktní údaje a bankovní účet.
                value:
                  name: ACME CORP. s.r.o.
                  comid: '12345679'
                  vatid: CZ12345679
                  vat_payer: true
                  email: fakturace@example.org
                  phone: '+420123123123'
                  supplier_group_id: 78
                  external_code: CC123
                  address:
                    street: Stodolní 123
                    city: Ostrava
                    postalcode: 702 00
                    country: CZ
                  account_number1: 1234567890/0100
      responses:
        '200':
          description: Dodavatel byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SupplierDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteSupplier
      x-position: 1305
      tags:
        - dodavatele
      summary: Smazání dodavatele
      description: |
        Smaže dodavatele z adresáře.
        Když je vázaný na jiný záznam (faktura, platba a podobně), vrátí chybu a
        dodavatel se nesmaže.
      responses:
        '204':
          description: Dodavatel byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /supplier_group:
    get:
      operationId: listSupplierGroups
      x-mcp: true
      x-position: 1401
      tags:
        - supplier-group
      summary: Seznam skupin dodavatelů
      description: |
        Stránkovaný seznam účetních skupin, do kterých lze zařadit [**dodavatele**](/api/dodavatele).
        Skupiny se spravují [v aplikaci](https://online.iucto.cz/suppliergroup) ,
        přes API je nelze měnit.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam skupin dodavatelů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/SupplierGroupCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /country:
    get:
      operationId: listCountries
      x-mcp: true
      x-position: 1501
      tags:
        - country
      summary: Seznam zemí
      description: |
        Vrátí mapu kódu země podle ISO 3166-1 alfa-2 na její český název.
        Kód se používá v poli `country` u adresy kontaktu.
      responses:
        '200':
          description: Mapa kódu země na její název.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CountryList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /preferred_payment_method:
    get:
      operationId: listPreferredPaymentMethods
      x-mcp: true
      x-position: 1601
      tags:
        - preferred-payment-method
      summary: Seznam preferovaných metod platby
      description: |
        Vrátí mapu kódu preferované metody platby na její český název.
        Kód se používá v poli `preferred_payment_method` u
        [**zákazníka**](/api/zakaznici) .
      responses:
        '200':
          description: Mapa kódu metody platby na její název.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PreferredPaymentMethodList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /order_received:
    get:
      operationId: listOrdersReceived
      x-mcp: true
      x-position: 1701
      tags:
        - objednavky-prijate
      summary: Seznam objednávek
      description: |
        Stránkovaný seznam objednávek.
        Bez filtrů vrací všechny objednávky firmy od nejnovější.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 1234
        - name: customer_ico
          in: query
          description: IČO zákazníka.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Deleted'
        - name: external_code
          in: query
          description: Externí číslo dokladu z navazujícího systému.
          schema:
            type: string
            examples:
              - OBJ123
      responses:
        '200':
          description: Stránkovaný seznam objednávek.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderReceivedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createOrderReceived
      x-mcp: true
      x-position: 1703
      tags:
        - objednavky-prijate
      summary: Vytvoření nové objednávky
      description: |
        Vytvoří objednávku přijatou od zákazníka.
        Doklad musí mít alespoň jednu položku.

        Objednávka není daňový doklad: neurčuje se u ní způsob úhrady ani
        datum splatnosti a její položky se nezaúčtovávají. Fakturu z objednávky
        vystavíte tak, že při vytváření
        [**faktury vydané**](/api/faktury-vydane) pošlete její ID v `order_id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderReceivedParams'
            examples:
              minimalni:
                summary: Minimální objednávka
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada
                  a zaokrouhlení se bere z nastavení firmy.
                value:
                  customer_id: 785
                  date: '2019-01-01'
                  currency: CZK
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      vat: 21
              uplna:
                summary: Objednávka s vlastním číslem a střediskem
                description: |
                  Doklad s vlastním číslem dokladu, poznámkou, stavem dokladu
                  a položkou zařazenou do střediska.
                value:
                  sequence_code: OBJ20190005
                  customer_id: 785
                  date: '2019-01-01'
                  currency: CZK
                  document_state_id: 67
                  description: Objednávka podle poptávky č. 12/2019.
                  rounding_type: round
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      unit: hod
                      vat: 21
                      department_id: 1
      responses:
        '201':
          description: Objednávka byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /order_received/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID objednávky.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getOrderReceived
      x-mcp: true
      x-position: 1702
      tags:
        - objednavky-prijate
      summary: Detail objednávky
      responses:
        '200':
          description: Detail objednávky.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderReceivedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOrderReceived
      x-position: 1704
      tags:
        - objednavky-prijate
      summary: Editace objednávky
      description: Přepíše objednávku tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderReceivedParams'
            examples:
              minimalni:
                summary: Minimální objednávka
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada
                  a zaokrouhlení se bere z nastavení firmy.
                value:
                  customer_id: 785
                  date: '2019-01-01'
                  currency: CZK
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      vat: 21
              uplna:
                summary: Objednávka s vlastním číslem a střediskem
                description: |
                  Doklad s vlastním číslem dokladu, poznámkou, stavem dokladu
                  a položkou zařazenou do střediska.
                value:
                  sequence_code: OBJ20190005
                  customer_id: 785
                  date: '2019-01-01'
                  currency: CZK
                  document_state_id: 67
                  description: Objednávka podle poptávky č. 12/2019.
                  rounding_type: round
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      unit: hod
                      vat: 21
                      department_id: 1
      responses:
        '200':
          description: Objednávka byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteOrderReceived
      x-position: 1705
      tags:
        - objednavky-prijate
      summary: Smazání objednávky
      description: |
        Smaže objednávku.
        Když je doklad vázaný na jiný záznam — typicky na
        [**fakturu vydanou**](/api/faktury-vydane) , která z něj vznikla —, vrátí
        chybu a nesmaže se.
      responses:
        '204':
          description: Objednávka byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /proforma_invoice_issued:
    get:
      operationId: listProformaInvoicesIssued
      x-mcp: true
      x-position: 1801
      tags:
        - zalohove-faktury-vydane
      summary: Seznam zálohových faktur vydaných
      description: |
        Stránkovaný seznam zálohových faktur.
        Bez filtrů vrací všechny zálohové faktury firmy od nejnovější.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 1234
        - name: customer_ico
          in: query
          description: IČO zákazníka.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 303
      responses:
        '200':
          description: Stránkovaný seznam zálohových faktur vydaných.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createProformaInvoiceIssued
      x-mcp: true
      x-position: 1803
      tags:
        - zalohove-faktury-vydane
      summary: Vytvoření zálohové faktury vydané
      description: |
        Vytvoří zálohovou fakturu vydanou. Doklad musí mít alespoň jednu položku.

        U zálohových faktur se nepoužívají parametry `date_vat` ani
        `date_vat_prev`.

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph),
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek) a
        [režim One Stop Shop](/doklady-spolecne#one-stop-shop).

        Uhrazenou zálohu odečtete z koncového dokladu tak, že při vytváření
        [**faktury vydané**](/api/faktury-vydane) pošlete její ID v poli
        `proforma_invoice` *(od verze API 1.2)*.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProformaInvoiceIssuedParams'
            examples:
              minimalni:
                summary: Minimální zálohová faktura
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada, zaokrouhlení
                  a splatnost se berou z nastavení firmy.
                value:
                  customer_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Záloha na konzultace
                      amount: 1
                      price: 3000
                      vat: 21
              uplna:
                summary: Zálohová faktura se zaúčtováním položek
                description: |
                  Doklad s vlastním číslem, zaúčtováním položek, střediskem
                  a stavem dokladu.
                value:
                  sequence_code: ZF20190005
                  variable_symbol: '20190005'
                  customer_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  document_state_id: 67
                  description: Záloha podle smlouvy č. 12/2019.
                  rounding_type: round
                  items:
                    - text: Záloha na konzultace
                      amount: 1
                      price: 3000
                      unit: ks
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Zálohová faktura byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /proforma_invoice_issued/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zálohové faktury.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getProformaInvoiceIssued
      x-mcp: true
      x-position: 1802
      tags:
        - zalohove-faktury-vydane
      summary: Detail zálohové faktury vydané
      responses:
        '200':
          description: Detail zálohové faktury vydané.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateProformaInvoiceIssued
      x-position: 1804
      tags:
        - zalohove-faktury-vydane
      summary: Editace zálohové faktury vydané
      description: Přepíše zálohovou fakturu tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProformaInvoiceIssuedParams'
            examples:
              minimalni:
                summary: Minimální zálohová faktura
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada, zaokrouhlení
                  a splatnost se berou z nastavení firmy.
                value:
                  customer_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Záloha na konzultace
                      amount: 1
                      price: 3000
                      vat: 21
              uplna:
                summary: Zálohová faktura se zaúčtováním položek
                description: |
                  Doklad s vlastním číslem, zaúčtováním položek, střediskem
                  a stavem dokladu.
                value:
                  sequence_code: ZF20190005
                  variable_symbol: '20190005'
                  customer_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  document_state_id: 67
                  description: Záloha podle smlouvy č. 12/2019.
                  rounding_type: round
                  items:
                    - text: Záloha na konzultace
                      amount: 1
                      price: 3000
                      unit: ks
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Zálohová faktura byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteProformaInvoiceIssued
      x-position: 1809
      tags:
        - zalohove-faktury-vydane
      summary: Smazání zálohové faktury vydané
      description: |
        Smaže zálohovou fakturu.
        Když je doklad vázaný na jiný záznam — typicky na úhradu nebo na fakturu, ze
        které je odečtený —, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Zálohová faktura byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /proforma_invoice_issued/{id}/pdf:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zálohové faktury.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getProformaInvoiceIssuedPdf
      x-mcp: true
      x-position: 1805
      tags:
        - zalohove-faktury-vydane
      summary: Stažení PDF zálohové faktury vydané
      description: Vrátí binární obsah PDF pro tisk nebo uložení do souboru.
      responses:
        '200':
          description: PDF dokladu.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /proforma_invoice_issued/{id}/pay:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zálohové faktury.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: payProformaInvoiceIssued
      x-position: 1806
      tags:
        - zalohove-faktury-vydane
      summary: Vytvoření úhrady zálohové faktury vydané
      description: |
        Vytvoří plnou úhradu zálohové faktury.
        Vrací detail nově vzniklé [**platby přijaté**](/api/platby-prijate).
        Částečnou úhradu takhle zadat nelze — na tu se zakládá platba přímo.

        Už uhrazený doklad (`to_be_paid` je nula) požadavek odmítne.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProformaInvoiceIssuedPay'
      responses:
        '200':
          description: Úhrada byla vytvořena, vrací se detail platby.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedPayResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /proforma_invoice_issued/{id}/share:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zálohové faktury.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: shareProformaInvoiceIssued
      x-position: 1807
      tags:
        - zalohove-faktury-vydane
      summary: Generování odkazu pro sdílení zálohové faktury vydané
      description: |
        Vygeneruje veřejný odkaz na doklad a vrátí detail zálohové faktury s vyplněným `share_link`.
      responses:
        '200':
          description: Odkaz byl vygenerován, vrací se detail zálohové faktury.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /proforma_invoice_issued/{id}/email:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zálohové faktury.
        schema:
          type: integer
          examples:
            - 123
    post:
      operationId: emailProformaInvoiceIssued
      x-position: 1808
      tags:
        - zalohove-faktury-vydane
      summary: Odeslání zálohové faktury vydané e-mailem
      description: |
        Odešle na zadané adresy e-mail s odkazem na doklad, volitelně i s PDF zálohové faktury.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProformaInvoiceIssuedEmail'
      responses:
        '200':
          description: E-mail byl předán k odeslání.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceIssuedEmailResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_issued:
    get:
      operationId: listInvoicesIssued
      x-mcp: true
      x-position: 1901
      tags:
        - faktury-vydane
      summary: Seznam faktur vydaných
      description: |
        Stránkovaný seznam faktur.
        Bez filtrů vrací všechny faktury firmy od nejnovější.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 1234
        - name: customer_ico
          in: query
          description: IČO zákazníka.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/DateVatFrom'
        - $ref: '#/components/parameters/DateVatTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - $ref: '#/components/parameters/Accounted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 303
      responses:
        '200':
          description: Stránkovaný seznam faktur vydaných.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createInvoiceIssued
      x-mcp: true
      x-position: 1903
      tags:
        - faktury-vydane
      summary: Vytvoření faktury vydané
      description: |
        Vytvoří fakturu vydanou. Doklad musí mít alespoň jednu položku.

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph),
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek),
        [upomínky](/doklady-spolecne#upominky),
        [EET](/doklady-spolecne#eet) a
        [režim One Stop Shop](/doklady-spolecne#one-stop-shop).

        Objednávku připojíte přes `order_id`, zálohové faktury přes pole ID
        v `proforma_invoice` *(od verze API 1.2)*.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceIssuedParams'
            examples:
              minimalni:
                summary: Minimální faktura
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada, zaokrouhlení
                  a splatnost se berou z nastavení firmy.
                value:
                  customer_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      vat: 21
              uplna:
                summary: Faktura se zaúčtováním a upomínkami
                description: |
                  Doklad s vlastním číslem, zaúčtováním položek, střediskem
                  a naplánovanými upomínkami.
                value:
                  sequence_code: FV20190005
                  variable_symbol: '20190005'
                  customer_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  document_state_id: 67
                  description: Fakturujeme podle smlouvy č. 12/2019.
                  rounding_type: round
                  reminders:
                    - '2019-08-02'
                    - '2019-08-16'
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      unit: hod
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Faktura byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /invoice_issued/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getInvoiceIssued
      x-mcp: true
      x-position: 1902
      tags:
        - faktury-vydane
      summary: Detail faktury vydané
      responses:
        '200':
          description: Detail faktury vydané.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateInvoiceIssued
      x-position: 1904
      tags:
        - faktury-vydane
      summary: Editace faktury vydané
      description: |
        Přepíše fakturu tělem požadavku.
        Doklad odeslaný do EET editovat nelze — vystav
        [**opravný daňový doklad**](/api/opravne-danove-doklady-vydane) .
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceIssuedParams'
            examples:
              minimalni:
                summary: Minimální faktura
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada, zaokrouhlení
                  a splatnost se berou z nastavení firmy.
                value:
                  customer_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      vat: 21
              uplna:
                summary: Faktura se zaúčtováním a upomínkami
                description: |
                  Doklad s vlastním číslem, zaúčtováním položek, střediskem
                  a naplánovanými upomínkami.
                value:
                  sequence_code: FV20190005
                  variable_symbol: '20190005'
                  customer_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  document_state_id: 67
                  description: Fakturujeme podle smlouvy č. 12/2019.
                  rounding_type: round
                  reminders:
                    - '2019-08-02'
                    - '2019-08-16'
                  items:
                    - text: Konzultace
                      amount: 2
                      price: 1500
                      unit: hod
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Faktura byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteInvoiceIssued
      x-position: 1909
      tags:
        - faktury-vydane
      summary: Smazání faktury vydané
      description: |
        Smaže fakturu.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se. Doklad
        odeslaný do EET smazat nelze — vystav
        [**opravný daňový doklad**](/api/opravne-danove-doklady-vydane) .
      responses:
        '204':
          description: Faktura byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_issued/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountInvoiceIssued
      x-position: 1905
      tags:
        - faktury-vydane
      summary: Zaúčtování faktury vydané
      description: |
        Zaúčtuje fakturu do účetního deníku.
        Všechny položky dokladu musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) .
      responses:
        '200':
          description: Faktura byla zaúčtovaná, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_issued/{id}/share:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: shareInvoiceIssued
      x-position: 1906
      tags:
        - faktury-vydane
      summary: Generování odkazu pro sdílení faktury vydané
      description: |
        Vygeneruje veřejný odkaz na doklad a vrátí detail faktury s vyplněným `share_link`.
      responses:
        '200':
          description: Odkaz byl vygenerován, vrací se detail faktury.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_issued/{id}/pdf:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getInvoiceIssuedPdf
      x-mcp: true
      x-position: 1907
      tags:
        - faktury-vydane
      summary: Stažení PDF faktury vydané
      description: Vrátí binární obsah PDF pro tisk nebo uložení do souboru.
      responses:
        '200':
          description: PDF dokladu.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_issued/{id}/email:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    post:
      operationId: emailInvoiceIssued
      x-position: 1908
      tags:
        - faktury-vydane
      summary: Odeslání faktury vydané e-mailem
      description: |
        Odešle na zadané adresy e-mail s odkazem na doklad, volitelně i s PDF faktury a dodacího listu.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceIssuedEmail'
      responses:
        '200':
          description: E-mail byl předán k odeslání.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceIssuedEmailResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /creditnote_issued:
    get:
      operationId: listCreditnotesIssued
      x-mcp: true
      x-position: 2001
      tags:
        - opravne-danove-doklady-vydane
      summary: Seznam opravných dokladů
      description: |
        Stránkovaný seznam opravných daňových dokladů.
        Bez filtrů vrací všechny opravné doklady firmy od nejnovějšího.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 1234
        - name: customer_ico
          in: query
          description: IČO zákazníka.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - $ref: '#/components/parameters/Accounted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 303
      responses:
        '200':
          description: Stránkovaný seznam opravných daňových dokladů vydaných.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createCreditnoteIssued
      x-mcp: true
      x-position: 2003
      tags:
        - opravne-danove-doklady-vydane
      summary: Vytvoření opravného dokladu
      description: |
        Vytvoří opravný daňový doklad k [**faktuře vydané**](/api/faktury-vydane).
        Doklad musí mít alespoň jednu položku a povinnou poznámku `description` s
        důvodem opravy. Opravovanou fakturu určuje `invoice_issued_id` ; opravit
        nelze víc, než na ní zbývá.

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph),
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek),
        [EET](/doklady-spolecne#eet) a
        [režim One Stop Shop](/doklady-spolecne#one-stop-shop).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditnoteIssuedParams'
            examples:
              minimalni:
                summary: Minimální opravný doklad
                description: |
                  Jen povinná pole. Poznámka `description` je u opravného dokladu
                  povinná — uvádí se do ní důvod opravy.
                value:
                  invoice_issued_id: 12343
                  customer_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  description: Oprava fakturovaného množství.
                  items:
                    - text: Konzultace
                      amount: -1
                      price: 1500
                      vat: 21
              eet:
                summary: Opravný doklad odeslaný do EET
                description: |
                  Doklad se zaúčtováním položek, který se zároveň odesílá do EET —
                  proto je vyplněná i provozovna.
                value:
                  invoice_issued_id: 12343
                  sequence_code: ODD20190005
                  variable_symbol: '20190005'
                  customer_id: 785
                  customer_bank_account: 123456789/0800
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: cash
                  bank_account: null
                  description: Oprava fakturovaného množství.
                  rounding_type: round
                  eet: true
                  business_premises_id: 897
                  items:
                    - text: Konzultace
                      amount: -1
                      price: 1500
                      unit: hod
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Opravný doklad byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /creditnote_issued/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID opravného dokladu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getCreditnoteIssued
      x-mcp: true
      x-position: 2002
      tags:
        - opravne-danove-doklady-vydane
      summary: Detail opravného dokladu
      responses:
        '200':
          description: Detail opravného daňového dokladu vydaného.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCreditnoteIssued
      x-position: 2004
      tags:
        - opravne-danove-doklady-vydane
      summary: Editace opravného dokladu
      description: |
        Přepíše opravný doklad tělem požadavku.
        Doklad odeslaný do EET editovat nelze — vystavte další opravný daňový doklad.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditnoteIssuedParams'
            examples:
              minimalni:
                summary: Minimální opravný doklad
                description: |
                  Jen povinná pole. Poznámka `description` je u opravného dokladu
                  povinná — uvádí se do ní důvod opravy.
                value:
                  invoice_issued_id: 12343
                  customer_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  description: Oprava fakturovaného množství.
                  items:
                    - text: Konzultace
                      amount: -1
                      price: 1500
                      vat: 21
              eet:
                summary: Opravný doklad odeslaný do EET
                description: |
                  Doklad se zaúčtováním položek, který se zároveň odesílá do EET —
                  proto je vyplněná i provozovna.
                value:
                  invoice_issued_id: 12343
                  sequence_code: ODD20190005
                  variable_symbol: '20190005'
                  customer_id: 785
                  customer_bank_account: 123456789/0800
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-07-26'
                  currency: CZK
                  payment_type: cash
                  bank_account: null
                  description: Oprava fakturovaného množství.
                  rounding_type: round
                  eet: true
                  business_premises_id: 897
                  items:
                    - text: Konzultace
                      amount: -1
                      price: 1500
                      unit: hod
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Opravný doklad byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteCreditnoteIssued
      x-position: 2008
      tags:
        - opravne-danove-doklady-vydane
      summary: Smazání opravného dokladu
      description: |
        Smaže opravný doklad.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se. Doklad
        odeslaný do EET smazat nelze — vystavte další opravný daňový doklad.
      responses:
        '204':
          description: Opravný doklad byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /creditnote_issued/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID opravného dokladu.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountCreditnoteIssued
      x-position: 2005
      tags:
        - opravne-danove-doklady-vydane
      summary: Zaúčtování opravného dokladu
      description: |
        Zaúčtuje opravný doklad do účetního deníku.
        Všechny položky dokladu musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) .
      responses:
        '200':
          description: Opravný doklad byl zaúčtovaný, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /creditnote_issued/{id}/share:
    parameters:
      - name: id
        in: path
        required: true
        description: ID opravného dokladu.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: shareCreditnoteIssued
      x-position: 2006
      tags:
        - opravne-danove-doklady-vydane
      summary: Generování odkazu pro sdílení opravného dokladu
      description: |
        Vygeneruje veřejný odkaz na doklad a vrátí detail opravného dokladu s vyplněným `share_link`.
      responses:
        '200':
          description: Odkaz byl vygenerován, vrací se detail opravného dokladu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /creditnote_issued/{id}/email:
    parameters:
      - name: id
        in: path
        required: true
        description: ID opravného dokladu.
        schema:
          type: integer
          examples:
            - 123
    post:
      operationId: emailCreditnoteIssued
      x-position: 2007
      tags:
        - opravne-danove-doklady-vydane
      summary: Odeslání opravného dokladu e-mailem
      description: |
        Odešle na zadané adresy e-mail s odkazem na doklad, volitelně i s PDF opravného dokladu.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditnoteIssuedEmail'
      responses:
        '200':
          description: E-mail byl předán k odeslání.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteIssuedEmailResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /document_scan:
    get:
      operationId: listDocumentScans
      x-mcp: true
      x-position: 2101
      tags:
        - document-scan
      summary: Seznam došlých dokladů
      description: |
        Stránkovaný seznam nahraných dokladů čekajících na zpracování.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: status
          in: query
          description: Stav zpracování došlého dokladu.
          schema:
            $ref: '#/components/schemas/DocumentScanStatus'
        - name: timestamp_from
          in: query
          description: Datum a čas nahrání souboru od (včetně).
          schema:
            type: string
            format: date-time
            examples:
              - '2025-01-01T14:04:45+01:00'
        - name: timestamp_to
          in: query
          description: Datum a čas nahrání souboru do (včetně).
          schema:
            type: string
            format: date-time
            examples:
              - '2025-08-04T14:04:45+02:00'
      responses:
        '200':
          description: Stránkovaný seznam došlých dokladů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DocumentScanCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createDocumentScan
      x-position: 2102
      tags:
        - document-scan
      summary: Nahrání došlého dokladu
      description: |
        Nahraje soubor ke zpracování a vrátí jeho záznam.
        Zpracování běží synchronně, takže záznam se vrací už s výsledným stavem —
        `uploaded` se v odpovědi neobjeví.

        Nahrávat lze soubory ve formátu `.png`, `.jpeg`, `.jpg`, `.pdf`, `.xml`,
        `.isdoc`, `.isdocx` a WebFakt. Maximální velikost souboru je 4 MB.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DocumentScanUpload'
      responses:
        '201':
          description: Soubor byl nahrán, vrací se záznam došlého dokladu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DocumentScanDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /order_issued:
    get:
      operationId: listOrdersIssued
      x-mcp: true
      x-position: 2201
      tags:
        - objednavky-vydane
      summary: Seznam objednávek vydaných
      description: Stránkovaný seznam objednávek vystavených dodavatelům.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Deleted'
      responses:
        '200':
          description: Stránkovaný seznam objednávek vydaných.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderIssuedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createOrderIssued
      x-mcp: true
      x-position: 2203
      tags:
        - objednavky-vydane
      summary: Vytvoření objednávky vydané
      description: |
        Vytvoří objednávku vydanou. Doklad musí mít alespoň jednu položku.

        Objednávka se nezaúčtovává, proto její položky nemají pole zaúčtování.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderIssuedParams'
            examples:
              minimalni:
                summary: Minimální objednávka
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada
                  a zaokrouhlení se bere z nastavení firmy.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  currency: CZK
                  items:
                    - text: Kancelářský papír
                      amount: 10
                      price: 120
                      unit: bal
                      vat: 21
      responses:
        '201':
          description: Objednávka byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /order_issued/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID objednávky.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getOrderIssued
      x-mcp: true
      x-position: 2202
      tags:
        - objednavky-vydane
      summary: Detail objednávky vydané
      responses:
        '200':
          description: Detail objednávky vydané.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOrderIssued
      x-position: 2204
      tags:
        - objednavky-vydane
      summary: Editace objednávky vydané
      description: Přepíše objednávku tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderIssuedParams'
            examples:
              minimalni:
                summary: Minimální objednávka
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada
                  a zaokrouhlení se bere z nastavení firmy.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  currency: CZK
                  items:
                    - text: Kancelářský papír
                      amount: 10
                      price: 120
                      unit: bal
                      vat: 21
      responses:
        '200':
          description: Objednávka byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/OrderIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteOrderIssued
      x-position: 2205
      tags:
        - objednavky-vydane
      summary: Smazání objednávky vydané
      description: |
        Smaže objednávku.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Objednávka byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /proforma_invoice_received:
    get:
      operationId: listProformaInvoicesReceived
      x-mcp: true
      x-position: 2301
      tags:
        - zalohove-faktury-prijate
      summary: Seznam zálohových faktur přijatých
      description: |
        Stránkovaný seznam zálohových faktur přijatých od dodavatelů.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: external_code
          in: query
          description: Číslo dokladu u dodavatele.
          schema:
            type: string
            examples:
              - FV303
      responses:
        '200':
          description: Stránkovaný seznam zálohových faktur přijatých.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceReceivedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createProformaInvoiceReceived
      x-mcp: true
      x-position: 2303
      tags:
        - zalohove-faktury-prijate
      summary: Vytvoření zálohové faktury přijaté
      description: |
        Vytvoří zálohovou fakturu přijatou.
        Doklad musí mít alespoň jednu položku.

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProformaInvoiceReceivedParams'
            examples:
              minimalni:
                summary: Minimální zálohová faktura
                description: |
                  Jen povinná pole. Zaokrouhlení se bere z nastavení firmy.
                value:
                  supplier_id: 785
                  external_code: '20190001'
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Záloha na dodávku materiálu
                      amount: 1
                      price: 10000
                      vat: 21
      responses:
        '201':
          description: Zálohová faktura byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /proforma_invoice_received/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID zálohové faktury.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getProformaInvoiceReceived
      x-mcp: true
      x-position: 2302
      tags:
        - zalohove-faktury-prijate
      summary: Detail zálohové faktury přijaté
      responses:
        '200':
          description: Detail zálohové faktury přijaté.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceReceivedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateProformaInvoiceReceived
      x-position: 2304
      tags:
        - zalohove-faktury-prijate
      summary: Editace zálohové faktury přijaté
      description: Přepíše zálohovou fakturu tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProformaInvoiceReceivedParams'
            examples:
              minimalni:
                summary: Minimální zálohová faktura
                description: |
                  Jen povinná pole. Zaokrouhlení se bere z nastavení firmy.
                value:
                  supplier_id: 785
                  external_code: '20190001'
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Záloha na dodávku materiálu
                      amount: 1
                      price: 10000
                      vat: 21
      responses:
        '200':
          description: Zálohová faktura byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProformaInvoiceReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteProformaInvoiceReceived
      x-position: 2305
      tags:
        - zalohove-faktury-prijate
      summary: Smazání zálohové faktury přijaté
      description: |
        Smaže zálohovou fakturu.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Zálohová faktura byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_received:
    get:
      operationId: listInvoicesReceived
      x-mcp: true
      x-position: 2401
      tags:
        - faktury-prijate
      summary: Seznam faktur přijatých
      description: |
        Stránkovaný seznam faktur přijatých od dodavatelů.
        Bez filtrů vrací všechny faktury firmy.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/DateVatFrom'
        - $ref: '#/components/parameters/DateVatTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - $ref: '#/components/parameters/Accounted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: external_code
          in: query
          description: Číslo dokladu u dodavatele.
          schema:
            type: string
            examples:
              - FV303
      responses:
        '200':
          description: Stránkovaný seznam faktur přijatých.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceReceivedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createInvoiceReceived
      x-mcp: true
      x-position: 2403
      tags:
        - faktury-prijate
      summary: Vytvoření faktury přijaté
      description: |
        Vytvoří fakturu přijatou. Doklad musí mít alespoň jednu položku.

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).

        [**Objednávku vydanou**](/api/objednavky-vydane) připojíte přes `order_id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceReceivedParams'
            examples:
              minimalni:
                summary: Minimální faktura
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada
                  a zaokrouhlení se bere z nastavení firmy.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Servis tiskárny
                      amount: 1
                      price: 2400
                      vat: 21
              uplna:
                summary: Faktura se zaúčtováním
                description: |
                  Doklad s vlastním číslem, číslem dokladu u dodavatele, vazbou
                  na objednávku a zaúčtováním položek.
                value:
                  sequence_code: FP20190001
                  external_code: '20190001'
                  variable_symbol: '20190001'
                  supplier_id: 785
                  order_id: 12343
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  description: Fakturováno podle smlouvy č. 12/2019.
                  rounding_type: round
                  items:
                    - text: Servis tiskárny
                      amount: 1
                      price: 2400
                      unit: ks
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Faktura byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /invoice_received/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getInvoiceReceived
      x-mcp: true
      x-position: 2402
      tags:
        - faktury-prijate
      summary: Detail faktury přijaté
      responses:
        '200':
          description: Detail faktury přijaté.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceReceivedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateInvoiceReceived
      x-position: 2404
      tags:
        - faktury-prijate
      summary: Editace faktury přijaté
      description: Přepíše fakturu tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceReceivedParams'
            examples:
              minimalni:
                summary: Minimální faktura
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada
                  a zaokrouhlení se bere z nastavení firmy.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Servis tiskárny
                      amount: 1
                      price: 2400
                      vat: 21
              uplna:
                summary: Faktura se zaúčtováním
                description: |
                  Doklad s vlastním číslem, číslem dokladu u dodavatele, vazbou
                  na objednávku a zaúčtováním položek.
                value:
                  sequence_code: FP20190001
                  external_code: '20190001'
                  variable_symbol: '20190001'
                  supplier_id: 785
                  order_id: 12343
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  description: Fakturováno podle smlouvy č. 12/2019.
                  rounding_type: round
                  items:
                    - text: Servis tiskárny
                      amount: 1
                      price: 2400
                      unit: ks
                      vat: 21
                      department_id: 1
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Faktura byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteInvoiceReceived
      x-position: 2406
      tags:
        - faktury-prijate
      summary: Smazání faktury přijaté
      description: |
        Smaže fakturu.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Faktura byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /invoice_received/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID faktury.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountInvoiceReceived
      x-position: 2405
      tags:
        - faktury-prijate
      summary: Zaúčtování faktury
      description: |
        Zaúčtuje fakturu do účetního deníku.
        Všechny položky dokladu musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) .
      responses:
        '200':
          description: Faktura byla zaúčtovaná, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InvoiceReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /creditnote_received:
    get:
      operationId: listCreditnotesReceived
      x-mcp: true
      x-position: 2501
      tags:
        - opravne-danove-doklady-prijate
      summary: Výpis všech dostupných dokladů
      description: |
        Stránkovaný seznam opravných daňových dokladů přijatých od dodavatelů.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - $ref: '#/components/parameters/Accounted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 303
      responses:
        '200':
          description: Stránkovaný seznam opravných daňových dokladů přijatých.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteReceivedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createCreditnoteReceived
      x-mcp: true
      x-position: 2503
      tags:
        - opravne-danove-doklady-prijate
      summary: Vytvoření nového dokladu
      description: |
        Vytvoří opravný daňový doklad přijatý.
        Doklad musí mít alespoň jednu položku.

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).

        Opravovanou [**fakturu přijatou**](/api/faktury-prijate) připojíte přes
        `invoice_received_id`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditnoteReceivedParams'
            examples:
              minimalni:
                summary: Minimální opravný daňový doklad
                description: |
                  Jen povinná pole, doklad navázaný na fakturu přijatou.
                value:
                  supplier_id: 785
                  invoice_received_id: 12343
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Vratka za neodebrané zboží
                      amount: 1
                      price: -1200
                      vat: 21
      responses:
        '201':
          description: Doklad byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /creditnote_received/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID dokladu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getCreditnoteReceived
      x-mcp: true
      x-position: 2502
      tags:
        - opravne-danove-doklady-prijate
      summary: Detail dokladu
      responses:
        '200':
          description: Detail opravného daňového dokladu přijatého.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteReceivedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCreditnoteReceived
      x-position: 2504
      tags:
        - opravne-danove-doklady-prijate
      summary: Editace dokladu
      description: Přepíše doklad tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditnoteReceivedParams'
            examples:
              minimalni:
                summary: Minimální opravný daňový doklad
                description: |
                  Jen povinná pole, doklad navázaný na fakturu přijatou.
                value:
                  supplier_id: 785
                  invoice_received_id: 12343
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  items:
                    - text: Vratka za neodebrané zboží
                      amount: 1
                      price: -1200
                      vat: 21
      responses:
        '200':
          description: Doklad byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteCreditnoteReceived
      x-position: 2506
      tags:
        - opravne-danove-doklady-prijate
      summary: Smazání dokladu
      description: |
        Smaže doklad.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Doklad byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /creditnote_received/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID dokladu.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountCreditnoteReceived
      x-position: 2505
      tags:
        - opravne-danove-doklady-prijate
      summary: Zaúčtování dokladu
      description: |
        Zaúčtuje dobropis do účetního deníku.
        Všechny položky dokladu musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) .
      responses:
        '200':
          description: Doklad byl zaúčtovaný, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/CreditnoteReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /direct_expense:
    get:
      operationId: listDirectExpenses
      x-mcp: true
      x-position: 2601
      tags:
        - interni-predpisy-nakladu
      summary: Seznam interních předpisů nákladů
      description: |
        Stránkovaný seznam interních předpisů nákladů.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/MaturityDateFrom'
        - $ref: '#/components/parameters/MaturityDateTo'
        - $ref: '#/components/parameters/DateVatFrom'
        - $ref: '#/components/parameters/DateVatTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Paid'
        - $ref: '#/components/parameters/Deleted'
        - $ref: '#/components/parameters/Accounted'
        - name: payment_type
          in: query
          description: Způsob úhrady, viz [**Metody plateb**](/api/metody-plateb).
          schema:
            $ref: '#/components/schemas/PaymentType'
        - name: external_code
          in: query
          description: Číslo dokladu u dodavatele.
          schema:
            type: string
            examples:
              - FV303
      responses:
        '200':
          description: Stránkovaný seznam interních předpisů nákladů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectExpenseCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createDirectExpense
      x-mcp: true
      x-position: 2603
      tags:
        - interni-predpisy-nakladu
      summary: Vytvoření interního předpisu nákladu
      description: |
        Vytvoří interní předpis nákladu.
        Doklad musí mít alespoň jednu položku a vyplněný protiúčet
        `chartaccount_dal_id` .

        Chování, které je společné všem dokladům, popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectExpenseParams'
            examples:
              minimalni:
                summary: Minimální předpis nákladu
                description: |
                  Jen povinná pole včetně protiúčtu `chartaccount_dal_id`.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  chartaccount_dal_id: 306
                  items:
                    - text: Nájemné za červenec
                      amount: 1
                      price: 15000
                      vat: 21
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Předpis byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectExpenseDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /direct_expense/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID předpisu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getDirectExpense
      x-mcp: true
      x-position: 2602
      tags:
        - interni-predpisy-nakladu
      summary: Detail interního předpisu nákladu
      responses:
        '200':
          description: Detail interního předpisu nákladu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectExpenseDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateDirectExpense
      x-position: 2604
      tags:
        - interni-predpisy-nakladu
      summary: Editace interního předpisu nákladu
      description: Přepíše předpis tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectExpenseParams'
            examples:
              minimalni:
                summary: Minimální předpis nákladu
                description: |
                  Jen povinná pole včetně protiúčtu `chartaccount_dal_id`.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  maturity_date: '2019-08-12'
                  currency: CZK
                  payment_type: transfer
                  bank_account: 456
                  chartaccount_dal_id: 306
                  items:
                    - text: Nájemné za červenec
                      amount: 1
                      price: 15000
                      vat: 21
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Předpis byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectExpenseDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDirectExpense
      x-position: 2606
      tags:
        - interni-predpisy-nakladu
      summary: Smazání interního předpisu nákladu
      description: |
        Smaže předpis.
        Když je doklad vázaný na jiný záznam, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Předpis byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /direct_expense/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID předpisu.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountDirectExpense
      x-position: 2605
      tags:
        - interni-predpisy-nakladu
      summary: Zaúčtování předpisu
      description: |
        Zaúčtuje předpis do účetního deníku.
        Všechny položky dokladu musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) .
      responses:
        '200':
          description: Předpis byl zaúčtovaný, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectExpenseDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /payment_issued:
    get:
      operationId: listPaymentsIssued
      x-mcp: true
      x-position: 2701
      tags:
        - platby-vydane
      summary: Seznam plateb vydaných
      description: |
        Stránkovaný seznam plateb vydaných.
        Bez filtrů vrací všechny platby firmy od nejnovější.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 134
        - name: customer_ico
          in: query
          description: IČO zákazníka.
          schema:
            type: string
            examples:
              - '453452233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/DateVatFrom'
        - $ref: '#/components/parameters/DateVatTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Deleted'
        - name: external_code
          in: query
          description: Vlastní číslo dokladu z cizího systému.
          schema:
            type: string
            examples:
              - FV303
        - name: invoice_id
          in: query
          description: |
            ID [**faktur přijatých**](/api/faktury-prijate) oddělená čárkou.
          schema:
            type: string
            examples:
              - 12,55
        - name: creditnote_id
          in: query
          description: |
            ID [**opravných daňových dokladů vydaných**](/api/opravne-danove-doklady-vydane)
            oddělená čárkou.
          schema:
            type: string
            examples:
              - 13,546
        - name: proforma_id
          in: query
          description: |
            ID [**zálohových faktur přijatých**](/api/zalohove-faktury-prijate)
            oddělená čárkou.
          schema:
            type: string
            examples:
              - 888,11
        - name: cash_register
          in: query
          description: ID pokladny.
          schema:
            type: integer
            examples:
              - 11
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 2332
      responses:
        '200':
          description: Stránkovaný seznam plateb vydaných.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentIssuedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createPaymentIssued
      x-mcp: true
      x-position: 2703
      tags:
        - platby-vydane
      summary: Vytvoření platby vydané
      description: |
        Vytvoří platbu vydanou. Platba musí mít alespoň jednu položku.

        Protistranou je buď zákazník, nebo dodavatel — nastavit obojí najednou
        nejde. Stejně tak nelze zároveň nastavit bankovní účet a pokladnu:
        pro `payment_type` `transfer` se posílá `bank_account`, pro `cash`
        `cash_register_id`.

        [Zaúčtování položek](/doklady-spolecne#zauctovani-polozek) je společné
        všem dokladům.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentIssuedParams'
            examples:
              prevodem:
                summary: Úhrada faktury přijaté převodem
                description: |
                  Platba z bankovního účtu navázaná na fakturu přijatou.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  payment_type: transfer
                  bank_account: 456
                  invoice_id: 13290
                  items:
                    - text: Úhrada faktury FP20190005
                      amount: 1
                      price: 1500
                      vat: 21
              hotove:
                summary: Výdaj z pokladny
                description: |
                  Platba v hotovosti bez vazby na doklad, se zaúčtováním položky
                  a vlastním číslem dokladu.
                value:
                  sequence_code: PV20190001
                  supplier_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  payment_type: cash
                  cash_register_id: 785
                  description: Nákup kancelářských potřeb.
                  rounding_type: round
                  items:
                    - text: Kancelářské potřeby
                      amount: 1
                      price: 320
                      vat: 21
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Platba byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /payment_issued/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID platby.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getPaymentIssued
      x-mcp: true
      x-position: 2702
      tags:
        - platby-vydane
      summary: Detail platby vydané
      responses:
        '200':
          description: Detail platby vydané.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentIssuedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updatePaymentIssued
      x-position: 2704
      tags:
        - platby-vydane
      summary: Editace platby vydané
      description: |
        Přepíše platbu tělem požadavku.
        Editovat lze jen platbu v otevřeném účetním období a období DPH.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentIssuedParams'
            examples:
              prevodem:
                summary: Úhrada faktury přijaté převodem
                description: |
                  Platba z bankovního účtu navázaná na fakturu přijatou.
                value:
                  supplier_id: 785
                  date: '2019-07-12'
                  payment_type: transfer
                  bank_account: 456
                  invoice_id: 13290
                  items:
                    - text: Úhrada faktury FP20190005
                      amount: 1
                      price: 1500
                      vat: 21
              hotove:
                summary: Výdaj z pokladny
                description: |
                  Platba v hotovosti bez vazby na doklad, se zaúčtováním položky
                  a vlastním číslem dokladu.
                value:
                  sequence_code: PV20190001
                  supplier_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  payment_type: cash
                  cash_register_id: 785
                  description: Nákup kancelářských potřeb.
                  rounding_type: round
                  items:
                    - text: Kancelářské potřeby
                      amount: 1
                      price: 320
                      vat: 21
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Platba byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deletePaymentIssued
      x-position: 2706
      tags:
        - platby-vydane
      summary: Smazání platby vydané
      description: |
        Smaže platbu.
        Když je platba vázaná na jiný záznam, vrátí chybu a nesmaže se.
      responses:
        '204':
          description: Platba byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /payment_issued/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID platby.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountPaymentIssued
      x-position: 2705
      tags:
        - platby-vydane
      summary: Zaúčtování platby vydané
      description: |
        Zaúčtuje platbu do účetního deníku.
        Všechny položky platby musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) *(od verze API 1.3)*.
      responses:
        '200':
          description: Platba byla zaúčtovaná, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentIssuedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /payment_received:
    get:
      operationId: listPaymentsReceived
      x-mcp: true
      x-position: 2801
      tags:
        - platby-prijate
      summary: Seznam plateb přijatých
      description: |
        Stránkovaný seznam plateb přijatých.
        Bez filtrů vrací všechny platby firmy od nejnovější.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Sort'
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 1234
        - name: supplier_ico
          in: query
          description: IČO dodavatele.
          schema:
            type: string
            examples:
              - '11122233'
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 134
        - name: customer_ico
          in: query
          description: IČO zákazníka.
          schema:
            type: string
            examples:
              - '453452233'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/DateVatFrom'
        - $ref: '#/components/parameters/DateVatTo'
        - $ref: '#/components/parameters/SequenceCode'
        - $ref: '#/components/parameters/VariableSymbol'
        - $ref: '#/components/parameters/Currency'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - $ref: '#/components/parameters/FilterPriceByDocCurrency'
        - $ref: '#/components/parameters/Deleted'
        - name: external_code
          in: query
          description: Vlastní číslo dokladu z cizího systému.
          schema:
            type: string
            examples:
              - FV303
        - name: invoice_id
          in: query
          description: |
            ID [**faktur vydaných**](/api/faktury-vydane) oddělená čárkou.
          schema:
            type: string
            examples:
              - 12,55
        - name: creditnote_id
          in: query
          description: |
            ID [**opravných daňových dokladů přijatých**](/api/opravne-danove-doklady-prijate)
            oddělená čárkou.
          schema:
            type: string
            examples:
              - 13,546
        - name: proforma_id
          in: query
          description: |
            ID [**zálohových faktur vydaných**](/api/zalohove-faktury-vydane)
            oddělená čárkou.
          schema:
            type: string
            examples:
              - 888,11
        - name: cash_register
          in: query
          description: ID pokladny.
          schema:
            type: integer
            examples:
              - 11
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 2332
      responses:
        '200':
          description: Stránkovaný seznam plateb přijatých.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentReceivedCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createPaymentReceived
      x-mcp: true
      x-position: 2803
      tags:
        - platby-prijate
      summary: Vytvoření platby přijaté
      description: |
        Vytvoří platbu přijatou. Platba musí mít alespoň jednu položku.

        Protistranou je buď zákazník, nebo dodavatel — nastavit obojí najednou
        nejde. Podle hodnoty `payment_type` je nutné nastavit buď pokladnu, nebo
        bankovní účet: pro `transfer` se posílá `bank_account`, pro `cash`
        `cash_register_id`.

        **EET.** Když má firma řádně nastavené EET, `payment_type` je `cash`
        a pokladna má EET povolené, odešle `eet` nastavené na `true` platbu do
        evidence tržeb. Doklad s už odeslanou
        [**EET zprávou**](/api/eet-zpravy) se připojuje opačně — nejdřív se
        založí samostatný EET záznam a jeho ID se pošle v `eet_status`, záznamy
        se propojí automaticky. Podrobnosti v
        [průvodci doklady](/doklady-spolecne#eet).

        **Platba zálohy v režimu One Stop Shop.** Režim OSS jde zapnout jen
        u platby s vazbou na zálohovou fakturu, ostatní pravidla jsou shodná
        s [režimem OSS u faktur](/doklady-spolecne#one-stop-shop).

        [Zaúčtování položek](/doklady-spolecne#zauctovani-polozek) je společné
        všem dokladům.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentReceivedParams'
            examples:
              prevodem:
                summary: Úhrada faktury vydané převodem
                description: |
                  Platba na bankovní účet navázaná na fakturu vydanou.
                value:
                  customer_id: 785
                  date: '2019-07-12'
                  payment_type: transfer
                  bank_account: 456
                  invoice_id: 13290
                  items:
                    - text: Úhrada faktury FV20190005
                      amount: 1
                      price: 1500
                      vat: 21
              hotoveEet:
                summary: Hotovostní platba odeslaná do EET
                description: |
                  Platba do pokladny povolené pro EET; `eet` odešle doklad do
                  elektronické evidence tržeb.
                value:
                  sequence_code: PP20190001
                  customer_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  payment_type: cash
                  cash_register_id: 115
                  eet: true
                  rounding_type: round
                  items:
                    - text: Prodej zboží
                      amount: 1
                      price: 320
                      vat: 21
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '201':
          description: Platba byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /payment_received/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID platby.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getPaymentReceived
      x-mcp: true
      x-position: 2802
      tags:
        - platby-prijate
      summary: Detail platby přijaté
      responses:
        '200':
          description: Detail platby přijaté.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentReceivedDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updatePaymentReceived
      x-position: 2804
      tags:
        - platby-prijate
      summary: Editace platby přijaté
      description: |
        Přepíše platbu tělem požadavku.
        Platbu odeslanou do EET editovat nelze — použij vrácení přijaté EET platby.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentReceivedParams'
            examples:
              prevodem:
                summary: Úhrada faktury vydané převodem
                description: |
                  Platba na bankovní účet navázaná na fakturu vydanou.
                value:
                  customer_id: 785
                  date: '2019-07-12'
                  payment_type: transfer
                  bank_account: 456
                  invoice_id: 13290
                  items:
                    - text: Úhrada faktury FV20190005
                      amount: 1
                      price: 1500
                      vat: 21
              hotoveEet:
                summary: Hotovostní platba odeslaná do EET
                description: |
                  Platba do pokladny povolené pro EET; `eet` odešle doklad do
                  elektronické evidence tržeb.
                value:
                  sequence_code: PP20190001
                  customer_id: 785
                  date: '2019-07-12'
                  date_vat: '2019-07-12'
                  payment_type: cash
                  cash_register_id: 115
                  eet: true
                  rounding_type: round
                  items:
                    - text: Prodej zboží
                      amount: 1
                      price: 320
                      vat: 21
                      accountentrytype_id: 532
                      vattype_id: 1
      responses:
        '200':
          description: Platba byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deletePaymentReceived
      x-position: 2806
      tags:
        - platby-prijate
      summary: Smazání platby přijaté
      description: |
        Smaže platbu.
        Když je platba vázaná na jiný záznam, vrátí chybu a nesmaže se. Platbu
        odeslanou do EET smazat nelze — použij vrácení přijaté EET platby.
      responses:
        '204':
          description: Platba byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /payment_received/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID platby.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountPaymentReceived
      x-position: 2805
      tags:
        - platby-prijate
      summary: Zaúčtování platby přijaté
      description: |
        Zaúčtuje platbu do účetního deníku.
        Všechny položky platby musí mít vyplněné
        [zaúčtování](/doklady-spolecne#zauctovani-polozek) *(od verze API 1.3)*.
      responses:
        '200':
          description: Platba byla zaúčtovaná, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PaymentReceivedDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /bank_transaction:
    get:
      operationId: listBankTransactions
      x-mcp: true
      x-position: 2901
      tags:
        - bank-transaction
      summary: Seznam bankovních pohybů
      description: |
        Stránkovaný seznam bankovních pohybů, které jsou už importované v systému.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: payment_type
          in: query
          description: Směr platby.
          schema:
            $ref: '#/components/schemas/BankTransactionDirection'
        - name: status
          in: query
          description: Stav spárování pohybu.
          schema:
            $ref: '#/components/schemas/BankTransactionStatus'
        - name: price_from
          in: query
          description: Částka pohybu od (včetně).
          schema:
            type: number
            format: double
            examples:
              - 213
        - name: price_to
          in: query
          description: Částka pohybu do (včetně).
          schema:
            type: number
            format: double
            examples:
              - 3244332
        - name: currency
          in: query
          description: Měna pohybu, kód podle ISO 4217.
          schema:
            type: string
            examples:
              - CZK
        - $ref: '#/components/parameters/VariableSymbol'
        - name: constant_symbol
          in: query
          description: Konstantní symbol.
          schema:
            type: string
            examples:
              - C223
        - name: specific_symbol
          in: query
          description: Specifický symbol.
          schema:
            type: string
            examples:
              - M4324
        - name: bank_account
          in: query
          description: ID [**bankovního účtu**](/api/bankovni-ucty).
          schema:
            type: integer
            examples:
              - 12
        - name: bank_account_contraparty
          in: query
          description: |
            Číslo bankovního účtu protistrany, hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - 123456789/5500
        - name: date_payment_from
          in: query
          description: Datum platby od (včetně).
          schema:
            type: string
            format: date
            examples:
              - '2019-01-01'
        - name: date_payment_to
          in: query
          description: Datum platby do (včetně).
          schema:
            type: string
            format: date
            examples:
              - '2019-02-01'
        - name: note
          in: query
          description: |
            Text hledaný v polích `description_tome` a `description_toyou`,
            hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - test
      responses:
        '200':
          description: Stránkovaný seznam bankovních pohybů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankTransactionCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: importBankTransaction
      x-mcp: true
      x-position: 2903
      tags:
        - bank-transaction
      summary: Import bankovního pohybu
      description: |
        Přenese nový pohyb do systému.
        Součástí importu je automatický pokus o spárování s existujícími doklady.

        **Pravidla pro spárování**

        Zkouší se v tomto pořadí, dokud se nenajde jednoznačný kandidát:

        1. Sedí variabilní symbol i částka (přesně, nebo v rámci tolerance
           kolem 10 %) — **plná shoda**.
        2. Sedí jen variabilní symbol, částka je mimo toleranci — **částečná
           shoda**.
        3. Bez variabilního symbolu na pohybu se zkouší jen přesná shoda
           částky — vždy **částečná shoda**, nikdy plná.

        Tolerance kolem 10 % neplatí, když shoda přišla přes variabilní
        symbol (body 1 a 2) — spáruje se i doklad, jehož zbývající částka
        k úhradě je mimo tohle pásmo. Přísně se dodržuje, jen když se páruje
        podle částky bez variabilního symbolu (bod 3).

        Pohyb musí mít vyplněný `bank_account`, jinak se o spárování ani
        nepokusí — s bankovním účtem na dokladu se ale neporovnává.

        **Hodnoty závislé na směru pohybu**

        U příchozího pohybu (`payment_type` `in`) je protistranou
        [**zákazník**](/api/zakaznici) a s poli `counterparty`,
        `account_entry_type` a `vat_type` se zachází stejně jako
        u [**platby přijaté**](/api/platby-prijate); u odchozího pohybu je
        protistranou [**dodavatel**](/api/dodavatele) a pravidla odpovídají
        [**platbě vydané**](/api/platby-vydane).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankTransactionParams'
            examples:
              prichozi:
                summary: Příchozí platba
                description: |
                  Pohyb s variabilním symbolem — spáruje se s dokladem na plnou
                  shodu, sedí-li i částka. `bank_account` musí být vyplněný vždy;
                  i bez variabilního symbolu jde spárovat podle přesné shody
                  částky, viz pravidla pro spárování níž.
                value:
                  payment_type: in
                  price: 7845
                  currency: CZK
                  date_payment: '2017-01-24'
                  variable_symbol: '432324'
                  bank_account: 544
              odchoziZauctovany:
                summary: Odchozí platba se zaúčtováním
                description: |
                  Pohyb s protistranou, poznámkami z výpisu a zaúčtováním přes typ
                  účetní položky.
                value:
                  payment_type: out
                  price: 1076
                  currency: CZK
                  date_payment: '2017-01-24'
                  variable_symbol: '432325'
                  constant_symbol: C223
                  specific_symbol: M4324
                  bank_account: 544
                  bank_account_contraparty: 19-123457/0710
                  description_tome: Platba za fakturu FP20170005
                  counterparty: 42
                  account_entry_type: 687
                  vat_type: 467
      responses:
        '200':
          description: Pohyb byl importován, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankTransactionDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /bank_transaction/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID bankovního pohybu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getBankTransaction
      x-mcp: true
      x-position: 2902
      tags:
        - bank-transaction
      summary: Detail bankovního pohybu
      description: |
        Podrobné informace k pohybu včetně spárovaných dokladů v `linked_docs`.
      responses:
        '200':
          description: Detail bankovního pohybu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankTransactionDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateBankTransaction
      x-position: 2904
      tags:
        - bank-transaction
      summary: Editace bankovního pohybu
      description: |
        Přepíše pohyb tělem požadavku.
        Při změně směru pohybu ( `payment_type` ) je nutné změnit i `counterparty` ,
        `account_entry_type` a `vat_type` tak, aby odpovídaly typu dokladu.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankTransactionParams'
            examples:
              prichozi:
                summary: Příchozí platba
                description: |
                  Pohyb s variabilním symbolem — spáruje se s dokladem na plnou
                  shodu, sedí-li i částka. `bank_account` musí být vyplněný vždy;
                  i bez variabilního symbolu jde spárovat podle přesné shody
                  částky, viz pravidla pro spárování níž.
                value:
                  payment_type: in
                  price: 7845
                  currency: CZK
                  date_payment: '2017-01-24'
                  variable_symbol: '432324'
                  bank_account: 544
              odchoziZauctovany:
                summary: Odchozí platba se zaúčtováním
                description: |
                  Pohyb s protistranou, poznámkami z výpisu a zaúčtováním přes typ
                  účetní položky.
                value:
                  payment_type: out
                  price: 1076
                  currency: CZK
                  date_payment: '2017-01-24'
                  variable_symbol: '432325'
                  constant_symbol: C223
                  specific_symbol: M4324
                  bank_account: 544
                  bank_account_contraparty: 19-123457/0710
                  description_tome: Platba za fakturu FP20170005
                  counterparty: 42
                  account_entry_type: 687
                  vat_type: 467
      responses:
        '200':
          description: Pohyb byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankTransactionDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteBankTransaction
      x-position: 2906
      tags:
        - bank-transaction
      summary: Smazání bankovního pohybu
      responses:
        '204':
          description: Pohyb byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /bank_transaction/{id}/account:
    parameters:
      - name: id
        in: path
        required: true
        description: ID bankovního pohybu.
        schema:
          type: integer
          examples:
            - 123
    put:
      operationId: accountBankTransaction
      x-position: 2905
      tags:
        - bank-transaction
      summary: Zaúčtování bankovního pohybu
      description: |
        Vytvoří z pohybu platbu.
        Funguje jen tehdy, když je pohyb úspěšně spárovaný s dokladem. Vrací
        zkrácený náhled plateb, které vznikly.
      responses:
        '200':
          description: Z pohybu vznikly platby, vrací se jejich přehled.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/BankTransactionAccountResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /journal:
    get:
      operationId: listJournalEntries
      x-mcp: true
      x-position: 3001
      tags:
        - journal
      summary: Seznam položek účetního deníku
      description: |
        Stránkovaný seznam zaúčtovaných položek.
        Bez filtrů vrací všechny položky deníku od nejnovější.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/DateVatFrom'
        - $ref: '#/components/parameters/DateVatTo'
        - name: date_expense_from
          in: query
          description: Datum nákladu od (včetně).
          schema:
            type: string
            format: date
            examples:
              - '2019-01-01'
        - name: date_expense_to
          in: query
          description: Datum nákladu do (včetně).
          schema:
            type: string
            format: date
            examples:
              - '2019-02-01'
        - $ref: '#/components/parameters/PriceFrom'
        - $ref: '#/components/parameters/PriceTo'
        - name: chartaccount_md
          in: query
          description: |
            ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně MD.
          schema:
            type: integer
            examples:
              - 12
        - name: chartaccount_dal
          in: query
          description: |
            ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně DAL.
          schema:
            type: integer
            examples:
              - 33
        - name: document_type
          in: query
          description: Kód [typu dokladu](/datove-typy#typy-dokladu).
          schema:
            type: string
            examples:
              - PP
        - name: document_id
          in: query
          description: ID dokladu.
          schema:
            type: integer
            examples:
              - 3423
        - name: document_sequence_code
          in: query
          description: Číslo dokladu, hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - BP20190005
        - name: parent_document_type
          in: query
          description: Kód [typu rodičovského dokladu](/datove-typy#typy-dokladu).
          schema:
            type: string
            examples:
              - FV
        - name: parent_document_id
          in: query
          description: ID rodičovského dokladu.
          schema:
            type: integer
            examples:
              - 3423
        - name: parent_document_sequence_code
          in: query
          description: Číslo rodičovského dokladu, hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - FV20190005
        - name: supplier_id
          in: query
          description: ID [**dodavatele**](/api/dodavatele).
          schema:
            type: integer
            examples:
              - 123
        - name: customer_id
          in: query
          description: ID [**zákazníka**](/api/zakaznici).
          schema:
            type: integer
            examples:
              - 456
        - name: department_id
          in: query
          description: ID [**střediska**](/api/strediska).
          schema:
            type: integer
            examples:
              - 32
        - name: contract_id
          in: query
          description: ID [**zakázky**](/api/zakazky).
          schema:
            type: integer
            examples:
              - 343
        - name: vat_type_id
          in: query
          description: ID [**typu DPH**](/api/typy-dph).
          schema:
            type: integer
            examples:
              - 16
        - name: vat
          in: query
          description: |
            Sazba DPH v procentech, viz [**Sazby DPH**](/api/sazba-dph).
          schema:
            type: integer
            examples:
              - 21
        - name: document_variable_symbol
          in: query
          description: Variabilní symbol dokladu, hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - '20203399'
        - name: document_maturity_date_from
          in: query
          description: Datum splatnosti dokladu od (včetně).
          schema:
            type: string
            format: date
            examples:
              - '2019-01-01'
        - name: document_maturity_date_to
          in: query
          description: Datum splatnosti dokladu do (včetně).
          schema:
            type: string
            format: date
            examples:
              - '2019-02-01'
        - name: item_variable_symbol
          in: query
          description: Variabilní symbol položky, hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - VS323234
        - name: text
          in: query
          description: Text položky, hledá se i část hodnoty.
          schema:
            type: string
            examples:
              - nákup
      responses:
        '200':
          description: Stránkovaný seznam položek účetního deníku.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/JournalEntryCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /journal/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID položky účetního deníku.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getJournalEntry
      x-mcp: true
      x-position: 3002
      tags:
        - journal
      summary: Detail položky účetního deníku
      description: |
        Detail položky. Proti seznamu přibývá `figure` — typ zaúčtované částky.
      responses:
        '200':
          description: Detail položky účetního deníku.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/JournalEntryDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /direct_accounting:
    get:
      operationId: listDirectAccountings
      x-mcp: true
      x-position: 3101
      tags:
        - direct-accounting
      summary: Seznam dokladů přímého zaúčtování
      description: |
        Stránkovaný seznam dokladů.
        Bez filtrů vrací všechny doklady firmy od nejnovějšího.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/DateFrom'
        - $ref: '#/components/parameters/DateTo'
        - $ref: '#/components/parameters/SequenceCode'
        - name: amount_from
          in: query
          description: Částka celkem od (včetně).
          schema:
            type: number
            format: double
            examples:
              - 50
        - name: amount_to
          in: query
          description: Částka celkem do (včetně).
          schema:
            type: number
            format: double
            examples:
              - 100
        - $ref: '#/components/parameters/Deleted'
      responses:
        '200':
          description: Stránkovaný seznam dokladů přímého zaúčtování.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectAccountingCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createDirectAccounting
      x-mcp: true
      x-position: 3103
      tags:
        - direct-accounting
      summary: Vytvoření dokladu přímého zaúčtování
      description: |
        Vytvoří doklad zapsaný rovnou do účetního deníku.
        Doklad musí mít alespoň jednu položku a každá položka musí mít vyplněné oba
        účty účetní osnovy.

        Datum vystavení musí spadat do otevřeného účetního období.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectAccountingParams'
            examples:
              minimalni:
                summary: Minimální doklad
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada.
                value:
                  date: '2019-07-12'
                  currency: CZK
                  items:
                    - text: Položka A
                      price: 50
                      chartaccount_md: 3
                      chartaccount_dal: 3
              uplna:
                summary: Doklad s protistranou a členěním
                description: |
                  Doklad s vlastním číslem, poznámkami a položkou rozúčtovanou
                  na středisko, zakázku a zákazníka.
                value:
                  sequence_code: PZ20190001
                  date: '2019-07-12'
                  currency: CZK
                  description: Přeúčtování nákladů za červenec.
                  description_internal: Podklady od účetní.
                  items:
                    - text: Přeúčtování nájmu
                      price: 12000
                      chartaccount_md: 3
                      chartaccount_dal: 3
                      department_id: 1
                      contract_id: 1
                      customer_id: 785
                      da_code: FV4332434
      responses:
        '201':
          description: Doklad byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectAccountingDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
  /direct_accounting/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID dokladu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getDirectAccounting
      x-mcp: true
      x-position: 3102
      tags:
        - direct-accounting
      summary: Detail dokladu přímého zaúčtování
      responses:
        '200':
          description: Detail dokladu přímého zaúčtování.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectAccountingDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateDirectAccounting
      x-position: 3104
      tags:
        - direct-accounting
      summary: Editace dokladu přímého zaúčtování
      description: |
        Přepíše doklad tělem požadavku.
        Editovat lze jen doklad v otevřeném účetním období.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectAccountingParams'
            examples:
              minimalni:
                summary: Minimální doklad
                description: |
                  Jen povinná pole. Číslo dokladu doplní číselná řada.
                value:
                  date: '2019-07-12'
                  currency: CZK
                  items:
                    - text: Položka A
                      price: 50
                      chartaccount_md: 3
                      chartaccount_dal: 3
              uplna:
                summary: Doklad s protistranou a členěním
                description: |
                  Doklad s vlastním číslem, poznámkami a položkou rozúčtovanou
                  na středisko, zakázku a zákazníka.
                value:
                  sequence_code: PZ20190001
                  date: '2019-07-12'
                  currency: CZK
                  description: Přeúčtování nákladů za červenec.
                  description_internal: Podklady od účetní.
                  items:
                    - text: Přeúčtování nájmu
                      price: 12000
                      chartaccount_md: 3
                      chartaccount_dal: 3
                      department_id: 1
                      contract_id: 1
                      customer_id: 785
                      da_code: FV4332434
      responses:
        '200':
          description: Doklad byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/DirectAccountingDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDirectAccounting
      x-position: 3105
      tags:
        - direct-accounting
      summary: Smazání dokladu přímého zaúčtování
      responses:
        '204':
          description: Doklad byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /vat_rates:
    get:
      operationId: listVatRates
      x-mcp: true
      x-position: 3201
      tags:
        - sazba-dph
      summary: Seznam sazeb DPH
      description: |
        Sazby DPH platné k zadanému datu.
        Bez parametru `country` vrací sazby platné v České republice, s ním sazby
        zadané země EU.
      parameters:
        - name: date
          in: query
          required: true
          example: '2019-07-12'
          description: Datum, ke kterému se sazby zjišťují.
          schema:
            type: string
            format: date
            examples:
              - '2019-07-12'
        - name: country
          in: query
          required: false
          description: |
            Kód země EU podle ISO 3166-1 alfa-2. Seznam kódů vrací
            [**Země**](/api/country); pro zemi mimo EU vrátí API chybu.
          schema:
            type: string
            examples:
              - DE
      responses:
        '200':
          description: Pole platných sazeb DPH v procentech.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/VatRateList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /accountentry_type:
    get:
      operationId: listAccountEntryTypes
      x-mcp: true
      x-position: 3301
      tags:
        - polozky-typy-uc-polozek
      summary: Seznam typů účetních položek
      description: |
        Typy účetních položek dostupné pro zadaný typ dokladu.
        ID z odpovědi se posílá v položkách dokladů jako `accountentrytype_id` .
      parameters:
        - name: doctype
          in: query
          required: true
          example: FV
          description: |
            Kód [typu dokladu](/datove-typy#typy-dokladu), pro který se typy položek
            zjišťují.
          schema:
            type: string
            enum:
              - FV
              - FP
              - ZFV
              - ZFP
              - ODV
              - ODP
              - PV
              - PP
              - IPN
            examples:
              - FV
      responses:
        '200':
          description: Mapa ID typu účetní položky na jeho název.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AccountEntryTypeList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /vat_type:
    get:
      operationId: listVatTypes
      x-mcp: true
      x-position: 3401
      tags:
        - typy-dph
      summary: Seznam typů DPH
      description: |
        Typy DPH dostupné pro zadaný typ dokladu.
        ID z odpovědi se posílá v položkách dokladů jako `vattype_id` .

        Typy DPH pro [režim One Stop Shop](/doklady-spolecne#one-stop-shop)
        vrátí volání s `oss` nastaveným na `true` *(od verze API 1.2)*.
      parameters:
        - name: doctype
          in: query
          required: true
          example: FV
          description: |
            Kód [typu dokladu](/datove-typy#typy-dokladu), pro který se typy DPH zjišťují.
          schema:
            type: string
            enum:
              - FV
              - FP
              - ZFV
              - ZFP
              - ODV
              - ODP
              - PV
              - PP
              - IPN
            examples:
              - FV
        - name: oss
          in: query
          required: false
          description: |
            Vypsat typy DPH pro režim One Stop Shop *(od verze API 1.2)*.
          schema:
            type: boolean
            default: false
            examples:
              - true
      responses:
        '200':
          description: Mapa ID typu DPH na jeho název.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/VatTypeList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /chart_account:
    get:
      operationId: listChartAccounts
      x-mcp: true
      x-position: 3501
      tags:
        - ucty-uc-osnovy
      summary: Seznam účtů účetní osnovy
      description: |
        Účty účetní osnovy dostupné pro použití v dokladech.
        ID z odpovědi se posílá jako `chart_account_id` na položkách dokladů a jako
        `chartaccount_md` / `chartaccount_dal` v
        [**přímém zaúčtování**](/api/direct-accounting) .
      responses:
        '200':
          description: Mapa ID účtu na jeho označení.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ChartAccountList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /vat_chart:
    get:
      operationId: listVatCharts
      x-mcp: true
      x-position: 3601
      tags:
        - ucty-dph
      summary: Seznam účtů DPH
      description: |
        Účty DPH dostupné pro použití v dokladech.
        ID z odpovědi se posílá jako `vat_chart_id` na položkách dokladů.
      responses:
        '200':
          description: Mapa ID účtu DPH na jeho označení.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/VatChartList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /eet_status:
    get:
      operationId: listEetRecords
      x-mcp: true
      x-position: 3701
      tags:
        - eet-zpravy
      summary: Výpis dostupných EET záznamů
      description: |
        Stránkovaný seznam zpráv odeslaných do elektronické evidence tržeb.
        Jsou v něm i zprávy zapsané aplikací třetí strany.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam EET záznamů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EetCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createEetRecord
      x-position: 3801
      tags:
        - eet-status
      summary: Vytvoření EET záznamu
      description: |
        Zapíše EET zprávu, kterou už odeslala a nechala potvrdit aplikace třetí strany.
        Přijímaná pole jsou shodná s těmi, která se odesílají do EET, včetně
        návratových kódů `pkp` , `bkp` a `fik` .

        `uuid_zpravy` musí být v rámci firmy unikátní.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EetRecordParams'
            example:
              uuid_zpravy: 288e17e-e636-450f-1457-5571c5fd917r
              pkp: f657rfgVovx15Gu9lc/fShOO9JNGRl3flYVFFOplo3SFtU6JuF+URlTMiXYG2/u9DiVwDfuPLpDdowvhqxDo3iy5dxsnsKfi9DtPCd/YKX0T+L788yuM+WHbZixNnYgrbxzjZ3wnFecQ3gEdqDNLCPko+Ad88/07NYXgIzegXsNNGHE99kIbGSh9IWhRckVmwjQJ5N4zfehlPDIXhA1RpC/bflFsBFCYGRsIbknx3FzMkgCXvYFNJL4+LmSY5+BYJXzW29402Hm0+bKpDVbCblfjyHBeRdy7bokOL99wtjbwZB+ziInoQv+HSNbt4PVCbkRNTO9vdATcr4c8gmu4g==
              bkp: 5a5f9bb8-b8759335-a102d170-00472350-e95437f9
              fik: 03d20aea-e234-4aad-be24-f3964c6d6447-ff
              prvni_zaslani: true
              id_provoz: 11
              id_pokl: pok1
              porad_cis: '0002'
              dat_trzby: '1487935621'
              celk_trzba: 52446
              rezim: 0
              dat_odesl: '1487935621'
      responses:
        '201':
          description: Záznam byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EetRecordDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /eet_status/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID EET záznamu.
        schema:
          type: integer
          examples:
            - 22
    get:
      operationId: getEetRecord
      x-mcp: true
      x-position: 3802
      tags:
        - eet-status
      summary: Detail EET záznamu
      responses:
        '200':
          description: Detail EET záznamu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EetRecordDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /price_list:
    get:
      operationId: listPriceListItems
      x-mcp: true
      x-position: 3901
      tags:
        - price-list
      summary: Seznam položek
      description: |
        Stránkovaný seznam položek ceníku.
        Bez filtrů vrací všechny položky firmy včetně skrytých.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: is_stock
          in: query
          description: Vrátit jen položky, které se evidují na skladě.
          schema:
            type: boolean
            examples:
              - false
        - name: bar_code
          in: query
          description: Čárový kód položky.
          schema:
            type: string
            examples:
              - BARCODE123
        - name: external_code
          in: query
          description: Externí číslo položky.
          schema:
            type: string
            examples:
              - EXT1234
      responses:
        '200':
          description: Stránkovaný seznam položek ceníku.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PriceListCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createPriceListItem
      x-mcp: true
      x-position: 3903
      tags:
        - price-list
      summary: Vytvořit položku
      description: |
        Založí položku ceníku.
        Položku, která se má evidovat na skladě, označ `is_stock` — teprve pak jí
        lze založit [**skladovou kartu**](/api/inventory) .
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PriceListParams'
            example:
              name: Konzultace
              amount: 1
              unit: hod
              price: 1500
              is_vat_price: false
              vat_rate: 21
              currency: CZK
              external_code: '20140001'
              is_stock: false
      responses:
        '201':
          description: Položka byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PriceListDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /price_list/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID položky ceníku.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getPriceListItem
      x-mcp: true
      x-position: 3902
      tags:
        - price-list
      summary: Detail položky
      responses:
        '200':
          description: Detail položky ceníku.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PriceListDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updatePriceListItem
      x-position: 3904
      tags:
        - price-list
      summary: Editovat položku
      description: Přepíše položku ceníku tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PriceListParams'
            example:
              name: Konzultace
              amount: 1
              unit: hod
              price: 1500
              is_vat_price: false
              vat_rate: 21
              currency: CZK
              external_code: '20140001'
              is_stock: false
      responses:
        '200':
          description: Položka byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/PriceListDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deletePriceListItem
      x-position: 3905
      tags:
        - price-list
      summary: Smazat položku
      description: |
        Smaže položku ceníku.
        Položku, ke které existuje [**skladový pohyb**](/api/stock-movement) ,
        smazat nelze — místo mazání ji skryj přes `is_hidden` .
      responses:
        '204':
          description: Položka byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /warehouse:
    get:
      operationId: listWarehouses
      x-mcp: true
      x-position: 4001
      tags:
        - warehouse
      summary: Seznam skladů
      description: Stránkovaný seznam skladů firmy.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: Stránkovaný seznam skladů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WarehouseCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createWarehouse
      x-mcp: true
      x-position: 4003
      tags:
        - warehouse
      summary: Vytvoření skladu
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WarehouseParams'
            example:
              name: Hlavní sklad
              description: Sklad v sídle firmy.
              is_default: true
      responses:
        '201':
          description: Sklad byl vytvořen, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WarehouseDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /warehouse/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID skladu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getWarehouse
      x-mcp: true
      x-position: 4002
      tags:
        - warehouse
      summary: Detail skladu
      responses:
        '200':
          description: Detail skladu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WarehouseDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateWarehouse
      x-position: 4004
      tags:
        - warehouse
      summary: Editace skladu
      description: Přepíše sklad tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WarehouseParams'
            example:
              name: Hlavní sklad
              description: Sklad v sídle firmy.
              is_default: true
      responses:
        '200':
          description: Sklad byl upraven, vrací se jeho detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/WarehouseDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteWarehouse
      x-position: 4005
      tags:
        - warehouse
      summary: Smazání skladu
      responses:
        '204':
          description: Sklad byl smazán.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /inventory:
    get:
      operationId: listInventoryItems
      x-mcp: true
      x-position: 4101
      tags:
        - inventory
      summary: Seznam skladových karet
      description: |
        Stránkovaný seznam skladových karet.
        Filtry `product_id` a `warehouse_id` lze kombinovat.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: product_id
          in: query
          description: ID [**položky ceníku**](/api/price-list).
          schema:
            type: integer
            examples:
              - 123
        - name: warehouse_id
          in: query
          description: ID [**skladu**](/api/warehouse).
          schema:
            type: integer
            examples:
              - 23
      responses:
        '200':
          description: Stránkovaný seznam skladových karet.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InventoryCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createInventoryItem
      x-mcp: true
      x-position: 4103
      tags:
        - inventory
      summary: Vytvoření skladové karty
      description: |
        Založí skladovou kartu, tedy přiřadí položku ceníku na konkrétní sklad.
        Pro jednu položku smí na jednom skladu existovat nejvýš jedna karta.

        Kartu není nutné zakládat ručně — vznikne automaticky prvním
        [**skladovým pohybem**](/api/stock-movement).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryParams'
            example:
              product_id: 23
              warehouse_id: 23
              initial_balance: 0
              minimal_balance: 5
              location: SOME LOCATION
      responses:
        '201':
          description: Karta byla vytvořena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InventoryDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /inventory/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID skladové karty.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getInventoryItem
      x-mcp: true
      x-position: 4102
      tags:
        - inventory
      summary: Detail skladové karty
      responses:
        '200':
          description: Detail skladové karty.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InventoryDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateInventoryItem
      x-position: 4104
      tags:
        - inventory
      summary: Editace skladové karty
      description: Přepíše skladovou kartu tělem požadavku.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InventoryParams'
            example:
              product_id: 23
              warehouse_id: 23
              initial_balance: 0
              minimal_balance: 5
              location: SOME LOCATION
      responses:
        '200':
          description: Karta byla upravena, vrací se její detail.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/InventoryDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteInventoryItem
      x-position: 4105
      tags:
        - inventory
      summary: Smazání skladové karty
      description: |
        Operace vždy vrací `501 Not Implemented` — endpoint v API existuje, ale aplikace mazání skladových karet neimplementuje.
        Kartu, na které existuje [**skladový pohyb**](/api/stock-movement), nelze
        smazat ani v aplikaci.
      responses:
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '501':
          description: |
            Zdroj mazání nepodporuje. **Tělo je prázdné.**
  /stock_movement:
    get:
      operationId: listStockMovements
      x-mcp: true
      x-position: 4201
      tags:
        - stock-movement
      summary: Seznam pohybů
      description: |
        Stránkovaný seznam skladových pohybů.
        Filtry `product_id` a `warehouse_id` lze kombinovat, `last_id` slouží k
        inkrementálnímu dotahování nových pohybů.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - name: product_id
          in: query
          description: ID [**položky ceníku**](/api/price-list).
          schema:
            type: integer
            examples:
              - 123
        - name: warehouse_id
          in: query
          description: ID [**skladu**](/api/warehouse).
          schema:
            type: integer
            examples:
              - 23
        - name: last_id
          in: query
          description: Vrátit jen pohyby s vyšším ID, než je zadané.
          schema:
            type: integer
            examples:
              - 266
      responses:
        '200':
          description: Stránkovaný seznam skladových pohybů.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/StockMovementCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
    post:
      operationId: createStockMovement
      x-mcp: true
      x-position: 4203
      tags:
        - stock-movement
      summary: Vytvořit pohyb
      description: |
        Zapíše pohyb na skladě.
        Množství se zadává dvěma způsoby a nedají se míchat:

        1. `amount` — inkrementálně; zadané množství se na sklad přičte, záporné
           číslo ho odečte.
        2. `real_amount` — absolutně; server dopočítá takový pohyb, aby stav
           zásoby odpovídal zadané hodnotě.

        Pohybem vzniká [**skladová karta**](/api/inventory) automaticky, pokud
        pro dvojici položky a skladu ještě neexistuje.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StockMovementParams'
            examples:
              inkrementalni:
                summary: Inkrementální pohyb
                description: Přidá 15 kusů na sklad.
                value:
                  product_id: 23
                  warehouse_id: 23
                  identification: SOMEIDENTITY
                  date: '2017-01-24'
                  note: Some note
                  amount: 15
              absolutni:
                summary: Absolutní pohyb
                description: |
                  Nastaví stav na 100 kusů. Když bylo na skladě 5 kusů, vrátí se
                  pohyb s `amount` 95.
                value:
                  product_id: 23
                  warehouse_id: 23
                  identification: SOMEIDENTITY
                  real_amount: 100
      responses:
        '201':
          description: |
            Pohyb byl vytvořen, vrací se jeho detail. `amount` v odpovědi je
            skutečně provedená změna množství.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/StockMovementDetail'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
  /stock_movement/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID skladového pohybu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getStockMovement
      x-mcp: true
      x-position: 4202
      tags:
        - stock-movement
      summary: Detail pohybu
      responses:
        '200':
          description: Detail skladového pohybu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/StockMovementDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
  /{resource}/{id}/attachment:
    parameters:
      - name: resource
        in: path
        required: true
        description: |
          Typ dokladu nebo kontaktu, ke kterému příloha patří.
          Je to část cesty, ne dotazovací parametr — např.
          `/invoice_received/123/attachment` .
        schema:
          type: string
          enum:
            - invoice_received
            - invoice_issued
            - proforma_invoice_received
            - proforma_invoice_issued
            - creditnote_received
            - creditnote_issued
            - direct_accounting
            - direct_expense
            - customer
            - supplier
          examples:
            - invoice_received
      - name: id
        in: path
        required: true
        description: ID dokladu nebo kontaktu.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: listAttachments
      x-mcp: true
      x-position: 4301
      tags:
        - attachment
      summary: Seznam příloh
      description: |
        Vrátí přílohy přiřazené k dokladu nebo kontaktu, seřazené od nejnovější.
        Doklad bez příloh vrací prázdné pole `[]` .

        Odpověď není stránkovaná HAL kolekce, ale holé pole objektů.
      responses:
        '200':
          description: Pole příloh dokladu nebo kontaktu.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AttachmentList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          description: |
            Doklad nebo kontakt se zadaným ID neexistuje. **Tělo je prázdné** —
            na rozdíl od 404 nad samotnou přílohou.
    post:
      operationId: uploadAttachment
      x-mcp: true
      x-position: 4302
      tags:
        - attachment
      summary: Nahrání přílohy
      description: |
        Nahraje soubor k dokladu nebo kontaktu.
        Tělo požadavku je `multipart/form-data` s jedinou částí pojmenovanou `file`
        .

        * Povolené přípony: `isdoc`, `isdocx`, `doc`, `docx`, `xls`, `xlsx`,
          `pdf`, `gif`, `jpg`, `jpeg`, `png`, `xml`, `csv`, `txt`, `odt`, `ods`.
        * Maximální velikost souboru je 5 MB.
        * Přípona musí odpovídat skutečnému obsahu souboru.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              title: AttachmentUpload
              description: Formulář s jedním souborem.
              properties:
                file:
                  type: string
                  format: binary
                  description: Nahrávaný soubor.
              required:
                - file
      responses:
        '200':
          description: Příloha byla nahrána, vrací se její metadata.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AttachmentUploaded'
        '400':
          description: Chybí soubor, nebo je soubor prázdný.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                chybiSoubor:
                  summary: Část `file` nedorazila
                  description: |
                    Mapa pole → hláška **bez obálky `errors`** — tenhle tvar
                    vrací jen upload souboru.
                  value:
                    file: Soubor nebyl nahrán nebo je neplatný.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          description: |
            Doklad nebo kontakt se zadaným ID neexistuje. **Tělo je prázdné** —
            na rozdíl od 404 nad samotnou přílohou.
        '413':
          description: Soubor překračuje maximální povolenou velikost 5 MB.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                prilisVelky:
                  summary: Soubor nad limit
                  description: |
                    Hláška je z validátoru Symfony, takže její znění se může
                    s aktualizací frameworku změnit. Větvěte podle stavového
                    kódu, ne podle textu.
                  value: Soubor je příliš velký (6.21 MB). Maximální povolená velikost souboru je 5 MB.
        '415':
          description: |
            Nepodporovaný typ souboru, nebo přípona nesouhlasí s jeho obsahem.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                zakazanaPripona:
                  summary: Přípona není povolená
                  value: 'Přípona .zip není povolena. Povolené přípony jsou: isdoc, isdocx, doc, docx, xls, xlsx, pdf, gif, jpg, jpeg, png, xml, csv, txt, odt, ods.'
                obsahNesouhlasi:
                  summary: Obsah neodpovídá příponě
                  description: |
                    Kontrola magic bytes — přejmenovaný soubor neprojde.
                  value: Obsah souboru neodpovídá příponě .pdf.
  /attachment/{id}:
    parameters:
      - name: id
        in: path
        required: true
        description: ID přílohy.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: getAttachment
      x-mcp: true
      x-position: 4401
      tags:
        - attachment-detail
      summary: Detail přílohy
      description: |
        Metadata přílohy.
        Datum nahrání tady není — vrací ho jen
        [**seznam příloh dokladu**](/api/attachment) .
      responses:
        '200':
          description: Detail přílohy.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AttachmentDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          description: Příloha se zadaným ID neexistuje.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                nenalezena:
                  summary: Příloha neexistuje
                  value: Příloha 123 nenalezena.
    delete:
      operationId: deleteAttachment
      x-position: 4402
      tags:
        - attachment-detail
      summary: Smazání přílohy
      description: Příloha se maže trvale, včetně souboru na serveru.
      responses:
        '204':
          description: Příloha byla smazána.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          description: Příloha se zadaným ID neexistuje.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                nenalezena:
                  summary: Příloha neexistuje
                  value: Příloha 123 nenalezena.
  /attachment/{id}/download:
    parameters:
      - name: id
        in: path
        required: true
        description: ID přílohy.
        schema:
          type: integer
          examples:
            - 123
    get:
      operationId: downloadAttachment
      x-mcp: true
      x-position: 4501
      tags:
        - attachment-download
      summary: Stažení přílohy
      description: |
        Vrátí binární obsah souboru.
        `Content-Type` odpovídá typu souboru (odvozuje se z přípony) a
        `Content-Disposition` nese původní název, takže odpověď jde uložit rovnou do
        souboru.
      responses:
        '200':
          description: Binární obsah přílohy.
          headers:
            Content-Disposition:
              description: Původní název souboru pro uložení.
              schema:
                type: string
                examples:
                  - attachment; filename="faktura.pdf"
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          description: Příloha se zadaným ID neexistuje.
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                nenalezena:
                  summary: Příloha neexistuje
                  value: Příloha 123 nenalezena.
webhooks:
  /your.domain/update/url:
    post:
      operationId: notifyDocumentChange
      x-position: 4601
      tags:
        - webhook-update
      summary: Změna dokladu
      security: []
      description: |
        iÚčto zavolá vaši URL, když v účetnictví vznikne, změní se nebo se smaže doklad.

        Cílovou URL nastavíte v aplikaci v *Nastavení → Nastavení API →
        Webhooky*, a to zvlášť pro každou akci (`created`, `edited`, `deleted`).
        Cesta v ukázce je proto jen ilustrativní.

        Tělo nese vedle `action` a `timestamp` vždy právě jeden klíč pojmenovaný
        podle typu dokladu; v něm je ID záznamu, který si přes příslušný zdroj
        API načteš.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookUpdatePayload'
            examples:
              vytvoreni:
                summary: Vytvoření faktury vydané
                value:
                  action: created
                  invoice_issued:
                    id: 4567
                  timestamp: 2020-09-23T11:23:45+0200
              smazani:
                summary: Smazání objednávky přijaté
                value:
                  action: deleted
                  order_received:
                    id: 4567
                  timestamp: 2020-09-23T11:23:45+0200
      responses:
        '200':
          description: |
            Tvoje aplikace volání přijala. Odpověď iÚčto nezpracovává, stačí
            jakýkoli 2xx kód; při chybě se volání neopakuje.
  /your.domain/pay/url:
    post:
      operationId: notifyDocumentPayment
      x-position: 4701
      tags:
        - webhook-payment
      summary: Úhrada dokladu
      security: []
      description: |
        iÚčto zavolá vaši URL, když je doklad uhrazený platbou.

        Cílovou URL nastavíte v aplikaci v *Nastavení → Nastavení API →
        Webhooky* pro akci `paid`; cesta v ukázce je jen ilustrativní.

        Tělo nese dva klíče typu dokladu — jeden pro uhrazený doklad
        s částkami a zbytkem k úhradě, druhý pro platbu, která ho uhradila.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookPaymentPayload'
            example:
              action: paid
              invoice_issued:
                id: 123
                currency: EUR
                price_inc_vat: 100
                price_inc_vat_czk: 2650
                to_be_paid: 24.5
              payment_received:
                id: 123
                currency: CZK
                price_inc_vat: 2000
                price_inc_vat_czk: 2000
      responses:
        '200':
          description: |
            Tvoje aplikace volání přijala. Odpověď iÚčto nezpracovává, stačí
            jakýkoli 2xx kód; při chybě se volání neopakuje.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Auth-Key
      description: |
        API klíč firmy. Vygeneruje se v aplikaci v **Nastavení → Nastavení API**.

        Klíč je vázaný na uživatele, takže oprávnění v API odpovídají jeho
        oprávněním ve webovém rozhraní.
  schemas:
    CurrencyList:
      title: CurrencyList
      type: array
      description: Kódy měn dostupných pro doklady podle ISO 4217.
      items:
        type: string
      examples:
        - - CZK
          - EUR
          - USD
    Error:
      title: Error
      description: |
        Chybová odpověď. Tvar těla není jeden — závisí na tom, která vrstva
        aplikace požadavek odmítla:

        | Tvar | Kdy |
        |------|-----|
        | `{"errors": {"pole": ["hláška"]}}` | neprošla validace těla požadavku |
        | `{"pole": ["hláška"]}` | neprošla validace filtrů v seznamu (bez obálky `errors`) |
        | `{"pole": "hláška"}` | neprošel upload souboru |
        | `["hláška"]` | neprošla akce nad dokladem, například zaúčtování |
        | `{"error_code": "…", "message": "…"}` | zamítnutí se strojově čitelným kódem |
        | `"hláška"` | ostatní zamítnutí |
        | prázdné tělo | všechny 401, 404 mimo příloh, 405 a 501 |

        Proto **neparsujte naslepo** a větvěte podle stavového kódu, ne podle textu
        hlášky — hlášky jsou česky a mohou se změnit. Podrobnosti a ukázky jsou
        v [Chyby a jak je číst](/chyby).
      anyOf:
        - title: Chyby validace těla
          type: object
          properties:
            errors:
              type: object
              description: |
                Mapa názvu pole na hlášku, případně na seznam hlášek.

                Hodnota je **řetězec, když je hláška jediná**, a pole až od dvou
                výš — počítejte s oběma.
              additionalProperties:
                anyOf:
                  - type: string
                  - type: array
                    items:
                      type: string
          required:
            - errors
        - title: Chyby validace bez obálky
          type: object
          description: |
            Mapa názvu pole na seznam hlášek, případně na jedinou hlášku
            (upload souboru).
          additionalProperties:
            anyOf:
              - type: array
                items:
                  type: string
              - type: string
        - title: Seznam hlášek
          type: array
          description: Hlášky bez vazby na konkrétní pole.
          items:
            type: string
        - title: Chyba s kódem
          type: object
          properties:
            error_code:
              type: string
              description: Strojově čitelný kód chyby.
              examples:
                - TARIFF_MODULE_ACCESS_DENIED
            message:
              type: string
              description: Popis chyby pro člověka.
              examples:
                - Modul není dostupný, firma nemá aktivní tarif zahrnující tento modul.
          required:
            - error_code
            - message
        - title: Textová hláška
          type: string
          description: Popis chyby pro člověka.
          examples:
            - Neplatný JSON formát.
    PaymentTypeList:
      title: PaymentTypeList
      type: object
      description: Mapa kódu způsobu platby na jeho český název.
      additionalProperties:
        type: string
      examples:
        - transfer: Bankovním převodem
          cash: Hotově
          cashondelivery: Dobírka
          reciprocity: Reciproce
          creditcard: Platební kartou
    RoundingTypeList:
      title: RoundingTypeList
      type: object
      description: Mapa kódu zaokrouhlení na jeho český název.
      additionalProperties:
        type: string
      examples:
        - none: žádné
          round: zaokrouhlit
          up: zaokrouhlit nahoru
          down: zaokrouhlit dolů
    CountryCode:
      title: CountryCode
      type: string
      description: |
        Kód země podle ISO 3166-1 alfa-2. Seznam vrací [**Země**](/api/country).
      examples:
        - CZ
    Address:
      title: Address
      type: object
      description: Poštovní adresa kontaktu.
      properties:
        street:
          type: string
          description: Ulice a číslo popisné.
          examples:
            - Stodolní 123
        city:
          type: string
          description: Město.
          examples:
            - Ostrava
        postalcode:
          type: string
          description: Poštovní směrovací číslo.
          examples:
            - 385 02
        country:
          allOf:
            - $ref: '#/components/schemas/CountryCode'
          description: Země.
      required:
        - country
    CompanyProfile:
      title: CompanyProfile
      type: object
      description: |
        Základní údaje firmy, pod kterou je vydaný API klíč. Všechna pole jsou
        jen pro čtení, přes API se nemění.
      properties:
        name:
          type: string
          description: Obchodní název firmy.
          examples:
            - iÚčto
        name_display:
          type: string
          description: Název firmy tak, jak se zobrazuje na dokladech.
          examples:
            - iÚčto
        address:
          allOf:
            - $ref: '#/components/schemas/Address'
          description: Sídlo firmy.
        phone:
          type: string
          description: Telefonní číslo firmy.
          examples:
            - '+420123123123'
        www:
          type: string
          description: Adresa webu firmy.
          examples:
            - https://www.iucto.cz
        email:
          type: string
          description: Kontaktní e-mail firmy.
          examples:
            - novak.jan@example.org
        comid:
          type: string
          description: IČO firmy.
          examples:
            - '12345679'
        data_box_id:
          type: string
          description: Identifikátor datové schránky firmy.
          examples:
            - '123'
        owner:
          type: object
          description: |
            Jednatel společnosti. Když není vyplněný, vrací se prázdný objekt.
          properties:
            first_name:
              type: string
              description: Křestní jméno jednatele.
              examples:
                - Jan
            last_name:
              type: string
              description: Příjmení jednatele.
              examples:
                - Novák
        vatid:
          type: string
          description: DIČ firmy.
          examples:
            - CZ12345679
        icp:
          type: string
          description: Identifikační číslo provozovny.
          examples:
            - '123'
        vat_type:
          type: string
          description: |
            Typ plátce DPH — `nonpayer` neplátce, `identified_person`
            identifikovaná osoba, `monthly` měsíční plátce, `quarterly`
            čtvrtletní plátce.
          enum:
            - nonpayer
            - identified_person
            - monthly
            - quarterly
          examples:
            - identified_person
        subject_type:
          type: string
          description: |
            Typ subjektu — `legal_entity` právnická osoba, `individual`
            fyzická osoba.
          enum:
            - legal_entity
            - individual
          examples:
            - legal_entity
        accounting_type:
          type: string
          description: |
            Typ účtování — `accountancy` účetnictví, `tax_registration` daňová
            evidence, `invoicing` fakturace bez účtování.
          enum:
            - accountancy
            - tax_registration
            - invoicing
          examples:
            - accountancy
        oss_status:
          type: boolean
          description: |
            Firma má zapnutý režim One Stop Shop. Podmínky režimu popisuje
            [průvodce doklady](/doklady-spolecne#one-stop-shop).
          examples:
            - false
      required:
        - address
        - icp
        - vat_type
        - subject_type
        - accounting_type
        - oss_status
    SelfLink:
      title: SelfLink
      type: object
      description: HAL odkaz na samotný zdroj.
      properties:
        self:
          type: object
          properties:
            href:
              type: string
              description: |
                Cesta ke zdroji včetně prefixu verze API, například
                `/1.3/{zdroj}/{id}`.
          required:
            - href
      required:
        - self
    Paging:
      title: Paging
      type: object
      description: Stránkovací údaje, které vrací každý stránkovaný seznam.
      properties:
        pageCount:
          type: integer
          description: Celkový počet stránek.
          examples:
            - 22
        page:
          type: integer
          description: Číslo aktuální stránky.
          examples:
            - 1
        pageSize:
          type: integer
          description: Počet záznamů na stránce.
          examples:
            - 50
    Collection:
      title: Collection
      description: |
        Obálka stránkovaného seznamu — odkaz na sebe sama a stránkovací údaje.
        Samotné záznamy jsou v `_embedded` pod klíčem pojmenovaným podle zdroje;
        ten si doplňuje každý seznam sám.

        **Když filtr nic nenajde, klíč `_embedded` v odpovědi vůbec není** —
        HAL ho vytváří až pro neprázdnou kolekci. Kód, který ho čte, s tím musí
        počítat.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
          required:
            - _links
        - $ref: '#/components/schemas/Paging'
    BankAccountListItem:
      title: BankAccountListItem
      type: object
      description: Bankovní účet tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID účtu.
          examples:
            - 456
        number:
          type: string
          readOnly: true
          description: Celé číslo účtu ve tvaru `předčíslí-číslo/kód banky`.
          examples:
            - 19-123457/0100
        balance:
          type: number
          format: double
          readOnly: true
          description: Aktuální zůstatek účtu v měně účtu. *(API 1.3+)*
          examples:
            - 0
        balance_czk:
          type: number
          format: double
          readOnly: true
          description: Aktuální zůstatek účtu v CZK. *(API 1.3+)*
          examples:
            - 0
        realtime_payment_fetch:
          type: boolean
          readOnly: true
          description: Účet podporuje načítání plateb v reálném čase. *(API 1.3+)*
          examples:
            - true
        name:
          type: string
          maxLength: 45
          description: Název účtu.
          examples:
            - Komerční banka
        currency:
          type: string
          maxLength: 3
          description: |
            Měna účtu, kód podle ISO 4217. Dostupné hodnoty vrací
            [**Měny**](/api/currency).
          examples:
            - CZK
        isdefault:
          type: boolean
          description: Účet je nastavený jako výchozí.
          examples:
            - true
      required:
        - id
        - number
        - currency
    BankAccountCollection:
      title: BankAccountCollection
      description: Stránkovaný seznam bankovních účtů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                bank_account:
                  type: array
                  description: Pole bankovních účtů.
                  items:
                    $ref: '#/components/schemas/BankAccountListItem'
    BankAccountParams:
      title: BankAccountParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci bankovního účtu.
        Pole jen pro čtení (`id`, `number`, zůstatky) server ignoruje.
      properties:
        name:
          type: string
          maxLength: 45
          description: Název účtu.
          examples:
            - Komerční banka
        currency:
          type: string
          maxLength: 3
          description: |
            Měna účtu, kód podle ISO 4217. Dostupné hodnoty vrací
            [**Měny**](/api/currency).
          examples:
            - CZK
        isdefault:
          type: boolean
          description: Účet je nastavený jako výchozí.
          examples:
            - true
        account_prefix:
          type: string
          description: Předčíslí účtu. Řetězec, aby se zachovala vedoucí nula.
          examples:
            - '19'
        account_number:
          type: string
          description: Číslo účtu bez předčíslí.
          examples:
            - '123457'
        bank_code:
          type: string
          description: Kód banky.
          examples:
            - '0100'
        swift:
          type: string
          maxLength: 11
          description: SWIFT / BIC.
          examples:
            - KOMBCZPPXXX
        iban:
          type: string
          maxLength: 34
          description: IBAN.
          examples:
            - CZ5601000000190000123457
        initial_state:
          type: number
          format: double
          description: Počáteční stav účtu.
          examples:
            - 0
        chart_account_id:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy). Výchozí je 221.
          examples:
            - 424
        visible:
          type: boolean
          description: Účet se nabízí v seznamech.
          examples:
            - true
      required:
        - currency
        - account_number
        - bank_code
    BankAccountDetail:
      title: BankAccountDetail
      type: object
      description: Detail bankovního účtu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID účtu.
          examples:
            - 456
        number:
          type: string
          readOnly: true
          description: Celé číslo účtu ve tvaru `předčíslí-číslo/kód banky`.
          examples:
            - 19-123457/0100
        balance:
          type: number
          format: double
          readOnly: true
          description: Aktuální zůstatek účtu v měně účtu. *(API 1.3+)*
          examples:
            - 0
        balance_czk:
          type: number
          format: double
          readOnly: true
          description: Aktuální zůstatek účtu v CZK. *(API 1.3+)*
          examples:
            - 0
        realtime_payment_fetch:
          type: boolean
          readOnly: true
          description: Účet podporuje načítání plateb v reálném čase. *(API 1.3+)*
          examples:
            - true
        name:
          type: string
          maxLength: 45
          description: Název účtu.
          examples:
            - Komerční banka
        currency:
          type: string
          maxLength: 3
          description: |
            Měna účtu, kód podle ISO 4217. Dostupné hodnoty vrací
            [**Měny**](/api/currency).
          examples:
            - CZK
        isdefault:
          type: boolean
          description: Účet je nastavený jako výchozí.
          examples:
            - true
        account_prefix:
          type: string
          description: Předčíslí účtu. Řetězec, aby se zachovala vedoucí nula.
          examples:
            - '19'
        account_number:
          type: string
          description: Číslo účtu bez předčíslí.
          examples:
            - '123457'
        bank_code:
          type: string
          description: Kód banky.
          examples:
            - '0100'
        swift:
          type: string
          maxLength: 11
          description: SWIFT / BIC.
          examples:
            - KOMBCZPPXXX
        iban:
          type: string
          maxLength: 34
          description: IBAN.
          examples:
            - CZ5601000000190000123457
        initial_state:
          type: number
          format: double
          description: Počáteční stav účtu.
          examples:
            - 0
        chart_account_id:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy). Výchozí je 221.
          examples:
            - 424
        visible:
          type: boolean
          description: Účet se nabízí v seznamech.
          examples:
            - true
      required:
        - id
        - number
        - currency
        - account_number
        - bank_code
    BusinessPremisesDetail:
      title: BusinessPremisesDetail
      type: object
      description: |
        Provozovna firmy.
        Seznam i detail vracejí stejný tvar.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID provozovny.
          examples:
            - 897
        name:
          type: string
          description: Název provozovny.
          examples:
            - Restaurace u koníčka
        isdefault:
          type: boolean
          description: Provozovna je nastavená jako výchozí.
          examples:
            - true
      required:
        - id
        - name
    CashRegisterDetail:
      title: CashRegisterDetail
      type: object
      description: Pokladna firmy.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID pokladny.
          examples:
            - 475
        name:
          type: string
          maxLength: 45
          description: Název pokladny.
          examples:
            - EET pokladna
        currency:
          type: string
          maxLength: 3
          description: |
            Měna pokladny, kód podle ISO 4217. Dostupné hodnoty vrací
            [**Měny**](/api/currency).
          examples:
            - CZK
        isdefault:
          type: boolean
          description: Pokladna je nastavená jako výchozí.
          examples:
            - true
        initial_state:
          type: number
          format: double
          description: Počáteční stav pokladny.
          examples:
            - 0
        iseet:
          type: boolean
          description: Pokladna je nastavená pro elektronickou evidenci tržeb.
          examples:
            - true
        business_premises:
          allOf:
            - $ref: '#/components/schemas/BusinessPremisesDetail'
          description: |
            [**Provozovna**](/api/business-premises), pod kterou pokladna spadá.
            Vyplňuje se u pokladen zapojených do EET.
        balance:
          type: number
          format: double
          readOnly: true
          description: Aktuální zůstatek pokladny v měně pokladny. *(API 1.3+)*
          examples:
            - 0
        balance_czk:
          type: number
          format: double
          readOnly: true
          description: Aktuální zůstatek pokladny v CZK. *(API 1.3+)*
          examples:
            - 0
      required:
        - id
        - name
        - currency
        - isdefault
        - iseet
    CashRegisterCollection:
      title: CashRegisterCollection
      description: Stránkovaný seznam pokladen.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                cash_register:
                  type: array
                  description: Pole pokladen.
                  items:
                    $ref: '#/components/schemas/CashRegisterDetail'
    DepartmentDetail:
      title: DepartmentDetail
      type: object
      description: Středisko pro členění nákladů a výnosů na položkách dokladů.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID střediska.
          examples:
            - 475
        code:
          type: string
          maxLength: 20
          description: Kód střediska.
          examples:
            - PR
        name:
          type: string
          maxLength: 45
          description: Název střediska.
          examples:
            - Praha
        description:
          type: string
          description: Popis střediska.
          examples:
            - Sklad
      required:
        - id
        - code
        - name
    DepartmentCollection:
      title: DepartmentCollection
      description: Stránkovaný seznam středisek.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                department:
                  type: array
                  description: Pole středisek.
                  items:
                    $ref: '#/components/schemas/DepartmentDetail'
    DepartmentParams:
      title: DepartmentParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci střediska.
        Pole `id` server ignoruje.
      properties:
        code:
          type: string
          maxLength: 20
          description: Kód střediska.
          examples:
            - PR
        name:
          type: string
          maxLength: 45
          description: Název střediska.
          examples:
            - Praha
        description:
          type: string
          description: Popis střediska.
          examples:
            - Sklad
      required:
        - code
        - name
    ContractDetail:
      title: ContractDetail
      type: object
      description: Zakázka pro členění nákladů a výnosů na položkách dokladů.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID zakázky.
          examples:
            - 475
        code:
          type: string
          maxLength: 20
          description: Kód zakázky.
          examples:
            - ABC
        name:
          type: string
          maxLength: 45
          description: Název zakázky.
          examples:
            - Zakázka ABC
        description:
          type: string
          description: Popis zakázky.
          examples:
            - popis
      required:
        - id
        - code
        - name
    ContractCollection:
      title: ContractCollection
      description: Stránkovaný seznam zakázek.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                contract:
                  type: array
                  description: Pole zakázek.
                  items:
                    $ref: '#/components/schemas/ContractDetail'
    ContractParams:
      title: ContractParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci zakázky.
        Pole `id` server ignoruje.
      properties:
        code:
          type: string
          maxLength: 20
          description: Kód zakázky.
          examples:
            - ABC
        name:
          type: string
          maxLength: 45
          description: Název zakázky.
          examples:
            - Zakázka ABC
        description:
          type: string
          description: Popis zakázky.
          examples:
            - popis
      required:
        - code
        - name
    BusinessPremisesCollection:
      title: BusinessPremisesCollection
      description: Stránkovaný seznam provozoven.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                business_premises:
                  type: array
                  description: Pole provozoven.
                  items:
                    $ref: '#/components/schemas/BusinessPremisesDetail'
    DocumentStateDetail:
      title: DocumentStateDetail
      type: object
      description: Stav dokladu.
      properties:
        id:
          type: integer
          readOnly: true
          description: ID stavu.
          examples:
            - 123
        name:
          type: string
          description: Název stavu.
          examples:
            - Odesláno
        description:
          type: string
          description: Popis stavu.
          examples:
            - Doklad byl odeslán zákazníkovi
        visibility:
          type: boolean
          description: Stav se nabízí u dokladů.
          examples:
            - true
      required:
        - id
        - name
        - description
        - visibility
    DocumentStateCollection:
      title: DocumentStateCollection
      description: Stránkovaný seznam stavů dokladů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                document_state:
                  type: array
                  description: Pole stavů dokladů.
                  items:
                    $ref: '#/components/schemas/DocumentStateDetail'
    DocumentStateParams:
      title: DocumentStateParams
      type: object
      description: Tělo požadavku pro vytvoření nebo editaci stavu dokladu.
      properties:
        name:
          type: string
          description: Název stavu.
          examples:
            - Odesláno
        description:
          type: string
          description: Popis stavu.
          examples:
            - Doklad byl odeslán zákazníkovi
        visibility:
          type: boolean
          description: Stav se nabízí u dokladů.
          examples:
            - true
      required:
        - name
        - description
        - visibility
    CustomerListItem:
      title: CustomerListItem
      type: object
      description: Zákazník tak, jak vypadá v seznamu a ve vnořených objektech.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID zákazníka.
          examples:
            - 123
        name:
          type: string
          maxLength: 100
          description: Jméno nebo název zákazníka.
          examples:
            - Jan Novák
        comid:
          type: string
          maxLength: 20
          description: IČO.
          examples:
            - '12345679'
        email:
          type: string
          maxLength: 100
          description: E-mail.
          examples:
            - novak.jan@example.org
        phone:
          type: string
          maxLength: 20
          description: Telefon.
          examples:
            - '+420123123123'
        cellphone:
          type: string
          maxLength: 20
          description: Mobil.
          examples:
            - '+420123123123'
        customer_group_id:
          type: integer
          description: ID [**skupiny zákazníků**](/api/customer-group).
          examples:
            - 78
        external_code:
          type: string
          maxLength: 50
          description: Vlastní identifikátor zákazníka v cizím systému.
          examples:
            - CC123
        vat_payer:
          type: boolean
          description: Zákazník je plátce DPH.
          examples:
            - false
        vatid:
          type: string
          maxLength: 20
          description: DIČ. Vyplňuje se u plátce DPH.
          examples:
            - CZ12345679
      required:
        - id
        - name
        - vat_payer
    CustomerCollection:
      title: CustomerCollection
      description: Stránkovaný seznam zákazníků.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                customer:
                  type: array
                  description: Pole zákazníků.
                  items:
                    $ref: '#/components/schemas/CustomerListItem'
    PreferredPaymentMethod:
      title: PreferredPaymentMethod
      type: string
      description: |
        Preferovaný způsob platby kontaktu. Popisy hodnot vrací
        [**Preferované metody platby**](/api/preferred-payment-method).
      enum:
        - transfer
        - cash
        - proforma
        - check
        - creditcard
        - cashondelivery
      examples:
        - transfer
    InvoiceLang:
      title: InvoiceLang
      type: string
      description: Jazyk, ve kterém se tiskne faktura.
      enum:
        - cs
        - en
        - sk
        - de
        - pl
      examples:
        - cs
    CustomerParams:
      title: CustomerParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci zákazníka.

        Plátce DPH musí mít vyplněné `vatid`, neplátce ho nechává prázdné.
      type: object
      properties:
        name:
          type: string
          maxLength: 100
          description: Jméno nebo název zákazníka.
          examples:
            - Jan Novák
        comid:
          type: string
          maxLength: 20
          description: IČO.
          examples:
            - '12345679'
        email:
          type: string
          maxLength: 100
          description: E-mail.
          examples:
            - novak.jan@example.org
        phone:
          type: string
          maxLength: 20
          description: Telefon.
          examples:
            - '+420123123123'
        cellphone:
          type: string
          maxLength: 20
          description: Mobil.
          examples:
            - '+420123123123'
        customer_group_id:
          type: integer
          description: ID [**skupiny zákazníků**](/api/customer-group).
          examples:
            - 78
        external_code:
          type: string
          maxLength: 50
          description: Vlastní identifikátor zákazníka v cizím systému.
          examples:
            - CC123
        vat_payer:
          type: boolean
          description: Zákazník je plátce DPH.
          examples:
            - false
        vatid:
          type: string
          maxLength: 20
          description: DIČ. Vyplňuje se u plátce DPH.
          examples:
            - CZ12345679
        name_display:
          type: string
          maxLength: 100
          description: Jméno zobrazované na dokladech, když se liší od názvu.
          examples:
            - Jan Novák ml.
        www:
          type: string
          maxLength: 40
          description: Webová adresa.
          examples:
            - https://www.iucto.cz
        usual_maturity:
          type: integer
          description: Obvyklá splatnost ve dnech, předvyplní se na dokladu.
          examples:
            - 30
        preferred_payment_method:
          $ref: '#/components/schemas/PreferredPaymentMethod'
        invoice_language:
          $ref: '#/components/schemas/InvoiceLang'
        address:
          $ref: '#/components/schemas/Address'
        note:
          type: string
          maxLength: 1000
          description: Interní poznámka.
          examples:
            - Věrný zákazník
        account_number1:
          type:
            - string
            - 'null'
          description: Číslo bankovního účtu zákazníka.
          examples:
            - 1234567890/0100
        account_number2:
          type:
            - string
            - 'null'
          description: Druhé číslo bankovního účtu zákazníka.
          examples:
            - 1234-1234567890/4400
        account_number3:
          type:
            - string
            - 'null'
          description: Třetí číslo bankovního účtu zákazníka.
          examples:
            - null
        account_number4:
          type:
            - string
            - 'null'
          description: Čtvrté číslo bankovního účtu zákazníka.
          examples:
            - null
        default_department_id:
          type: integer
          description: ID [**střediska**](/api/strediska) předvyplněného na dokladu.
          examples:
            - 123
        default_contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky) předvyplněné na dokladu.
          examples:
            - 321
      required:
        - name
        - vat_payer
        - usual_maturity
        - preferred_payment_method
        - invoice_language
        - address
      if:
        properties:
          vat_payer:
            const: true
      then:
        required:
          - vatid
      else:
        not:
          required:
            - vatid
    CustomerDetail:
      title: CustomerDetail
      type: object
      description: Detail zákazníka.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID zákazníka.
          examples:
            - 123
        name:
          type: string
          maxLength: 100
          description: Jméno nebo název zákazníka.
          examples:
            - Jan Novák
        comid:
          type: string
          maxLength: 20
          description: IČO.
          examples:
            - '12345679'
        email:
          type: string
          maxLength: 100
          description: E-mail.
          examples:
            - novak.jan@example.org
        phone:
          type: string
          maxLength: 20
          description: Telefon.
          examples:
            - '+420123123123'
        cellphone:
          type: string
          maxLength: 20
          description: Mobil.
          examples:
            - '+420123123123'
        customer_group_id:
          type: integer
          description: ID [**skupiny zákazníků**](/api/customer-group).
          examples:
            - 78
        external_code:
          type: string
          maxLength: 50
          description: Vlastní identifikátor zákazníka v cizím systému.
          examples:
            - CC123
        vat_payer:
          type: boolean
          description: Zákazník je plátce DPH.
          examples:
            - false
        vatid:
          type: string
          maxLength: 20
          description: DIČ. Vyplňuje se u plátce DPH.
          examples:
            - CZ12345679
        name_display:
          type: string
          maxLength: 100
          description: Jméno zobrazované na dokladech, když se liší od názvu.
          examples:
            - Jan Novák ml.
        www:
          type: string
          maxLength: 40
          description: Webová adresa.
          examples:
            - https://www.iucto.cz
        usual_maturity:
          type: integer
          description: Obvyklá splatnost ve dnech, předvyplní se na dokladu.
          examples:
            - 30
        preferred_payment_method:
          $ref: '#/components/schemas/PreferredPaymentMethod'
        invoice_language:
          $ref: '#/components/schemas/InvoiceLang'
        address:
          $ref: '#/components/schemas/Address'
        note:
          type: string
          maxLength: 1000
          description: Interní poznámka.
          examples:
            - Věrný zákazník
        account_number1:
          type:
            - string
            - 'null'
          description: Číslo bankovního účtu zákazníka.
          examples:
            - 1234567890/0100
        account_number2:
          type:
            - string
            - 'null'
          description: Druhé číslo bankovního účtu zákazníka.
          examples:
            - 1234-1234567890/4400
        account_number3:
          type:
            - string
            - 'null'
          description: Třetí číslo bankovního účtu zákazníka.
          examples:
            - null
        account_number4:
          type:
            - string
            - 'null'
          description: Čtvrté číslo bankovního účtu zákazníka.
          examples:
            - null
        default_department_id:
          type: integer
          description: ID [**střediska**](/api/strediska) předvyplněného na dokladu.
          examples:
            - 123
        default_contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky) předvyplněné na dokladu.
          examples:
            - 321
      required:
        - id
        - name
        - vat_payer
        - usual_maturity
        - preferred_payment_method
        - invoice_language
        - address
    CustomerGroupListItem:
      title: CustomerGroupListItem
      type: object
      description: Skupina zákazníků tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID skupiny.
          examples:
            - 10
        name:
          type: string
          maxLength: 255
          description: Název skupiny.
          examples:
            - Velkoodběratelé
    CustomerGroupCollection:
      title: CustomerGroupCollection
      description: Stránkovaný seznam skupin zákazníků.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                customer_group:
                  type: array
                  description: Pole skupin zákazníků.
                  items:
                    $ref: '#/components/schemas/CustomerGroupListItem'
    SupplierListItem:
      title: SupplierListItem
      type: object
      description: Dodavatel tak, jak vypadá v seznamu a ve vnořených objektech.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID dodavatele.
          examples:
            - 123
        name:
          type: string
          maxLength: 100
          description: Jméno nebo název dodavatele.
          examples:
            - Jan Novák
        comid:
          type: string
          maxLength: 20
          description: IČO.
          examples:
            - '12345679'
        email:
          type: string
          maxLength: 100
          description: E-mail.
          examples:
            - novak.jan@example.org
        phone:
          type: string
          maxLength: 20
          description: Telefon.
          examples:
            - '+420123123123'
        cellphone:
          type: string
          maxLength: 20
          description: Mobil.
          examples:
            - '+420123123123'
        supplier_group_id:
          type: integer
          description: ID [**skupiny dodavatelů**](/api/supplier-group).
          examples:
            - 78
        external_code:
          type: string
          maxLength: 50
          description: Vlastní identifikátor dodavatele v cizím systému.
          examples:
            - CC123
        vat_payer:
          type: boolean
          description: Dodavatel je plátce DPH.
          examples:
            - false
        vatid:
          type: string
          maxLength: 20
          description: DIČ. Vyplňuje se u plátce DPH.
          examples:
            - CZ12345679
      required:
        - id
        - name
        - vat_payer
    SupplierCollection:
      title: SupplierCollection
      description: Stránkovaný seznam dodavatelů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                supplier:
                  type: array
                  description: Pole dodavatelů.
                  items:
                    $ref: '#/components/schemas/SupplierListItem'
    SupplierParams:
      title: SupplierParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci dodavatele.

        Plátce DPH musí mít vyplněné `vatid`, neplátce ho nechává prázdné.
      type: object
      properties:
        name:
          type: string
          maxLength: 100
          description: Jméno nebo název dodavatele.
          examples:
            - Jan Novák
        comid:
          type: string
          maxLength: 20
          description: IČO.
          examples:
            - '12345679'
        email:
          type: string
          maxLength: 100
          description: E-mail.
          examples:
            - novak.jan@example.org
        phone:
          type: string
          maxLength: 20
          description: Telefon.
          examples:
            - '+420123123123'
        cellphone:
          type: string
          maxLength: 20
          description: Mobil.
          examples:
            - '+420123123123'
        supplier_group_id:
          type: integer
          description: ID [**skupiny dodavatelů**](/api/supplier-group).
          examples:
            - 78
        external_code:
          type: string
          maxLength: 50
          description: Vlastní identifikátor dodavatele v cizím systému.
          examples:
            - CC123
        vat_payer:
          type: boolean
          description: Dodavatel je plátce DPH.
          examples:
            - false
        vatid:
          type: string
          maxLength: 20
          description: DIČ. Vyplňuje se u plátce DPH.
          examples:
            - CZ12345679
        name_display:
          type: string
          maxLength: 100
          description: Jméno zobrazované na dokladech, když se liší od názvu.
          examples:
            - Jan Novák ml.
        www:
          type: string
          maxLength: 40
          description: Webová adresa.
          examples:
            - https://www.iucto.cz
        address:
          $ref: '#/components/schemas/Address'
        note:
          type: string
          maxLength: 1000
          description: Interní poznámka.
          examples:
            - Věrný dodavatel
        account_number1:
          type:
            - string
            - 'null'
          description: Číslo bankovního účtu dodavatele.
          examples:
            - 1234567890/0100
        account_number2:
          type:
            - string
            - 'null'
          description: Druhé číslo bankovního účtu dodavatele.
          examples:
            - 1234-1234567890/4400
        account_number3:
          type:
            - string
            - 'null'
          description: Třetí číslo bankovního účtu dodavatele.
          examples:
            - null
        account_number4:
          type:
            - string
            - 'null'
          description: Čtvrté číslo bankovního účtu dodavatele.
          examples:
            - null
        default_department_id:
          type: integer
          description: ID [**střediska**](/api/strediska) předvyplněného na dokladu.
          examples:
            - 123
        default_contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky) předvyplněné na dokladu.
          examples:
            - 321
      required:
        - name
        - vat_payer
        - address
      if:
        properties:
          vat_payer:
            const: true
      then:
        required:
          - vatid
      else:
        not:
          required:
            - vatid
    SupplierDetail:
      title: SupplierDetail
      type: object
      description: Detail dodavatele.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID dodavatele.
          examples:
            - 123
        name:
          type: string
          maxLength: 100
          description: Jméno nebo název dodavatele.
          examples:
            - Jan Novák
        comid:
          type: string
          maxLength: 20
          description: IČO.
          examples:
            - '12345679'
        email:
          type: string
          maxLength: 100
          description: E-mail.
          examples:
            - novak.jan@example.org
        phone:
          type: string
          maxLength: 20
          description: Telefon.
          examples:
            - '+420123123123'
        cellphone:
          type: string
          maxLength: 20
          description: Mobil.
          examples:
            - '+420123123123'
        supplier_group_id:
          type: integer
          description: ID [**skupiny dodavatelů**](/api/supplier-group).
          examples:
            - 78
        external_code:
          type: string
          maxLength: 50
          description: Vlastní identifikátor dodavatele v cizím systému.
          examples:
            - CC123
        vat_payer:
          type: boolean
          description: Dodavatel je plátce DPH.
          examples:
            - false
        vatid:
          type: string
          maxLength: 20
          description: DIČ. Vyplňuje se u plátce DPH.
          examples:
            - CZ12345679
        name_display:
          type: string
          maxLength: 100
          description: Jméno zobrazované na dokladech, když se liší od názvu.
          examples:
            - Jan Novák ml.
        www:
          type: string
          maxLength: 40
          description: Webová adresa.
          examples:
            - https://www.iucto.cz
        address:
          $ref: '#/components/schemas/Address'
        note:
          type: string
          maxLength: 1000
          description: Interní poznámka.
          examples:
            - Věrný dodavatel
        account_number1:
          type:
            - string
            - 'null'
          description: Číslo bankovního účtu dodavatele.
          examples:
            - 1234567890/0100
        account_number2:
          type:
            - string
            - 'null'
          description: Druhé číslo bankovního účtu dodavatele.
          examples:
            - 1234-1234567890/4400
        account_number3:
          type:
            - string
            - 'null'
          description: Třetí číslo bankovního účtu dodavatele.
          examples:
            - null
        account_number4:
          type:
            - string
            - 'null'
          description: Čtvrté číslo bankovního účtu dodavatele.
          examples:
            - null
        default_department_id:
          type: integer
          description: ID [**střediska**](/api/strediska) předvyplněného na dokladu.
          examples:
            - 123
        default_contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky) předvyplněné na dokladu.
          examples:
            - 321
      required:
        - id
        - name
        - vat_payer
        - address
    SupplierGroupListItem:
      title: SupplierGroupListItem
      type: object
      description: Skupina dodavatelů tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID skupiny.
          examples:
            - 475
        name:
          type: string
          maxLength: 255
          description: Název skupiny.
          examples:
            - Dodavatelé materiálu
    SupplierGroupCollection:
      title: SupplierGroupCollection
      description: Stránkovaný seznam skupin dodavatelů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                supplier_group:
                  type: array
                  description: Pole skupin dodavatelů.
                  items:
                    $ref: '#/components/schemas/SupplierGroupListItem'
    CountryList:
      title: CountryList
      type: object
      description: |
        Mapa kódu země podle ISO 3166-1 alfa-2 na její český název.
        Výpis je kompletní, ukázka níže je zkrácená.
      additionalProperties:
        type: string
      examples:
        - AD: Andorra
          AE: Spojené arabské emiráty
          AF: Afghánistán
          CZ: Česká republika
    PreferredPaymentMethodList:
      title: PreferredPaymentMethodList
      type: object
      description: Mapa kódu preferované metody platby na její český název.
      additionalProperties:
        type: string
      examples:
        - transfer: Bankovním převodem
          cash: V hotovosti
          proforma: Proforma
          check: Šekem
          creditcard: Platební kartou
          cashondelivery: Dobírka
    CurrencyCode:
      title: CurrencyCode
      type: string
      description: |
        Kód měny podle ISO 4217. Které měny jsou dostupné, závisí na aktivovaném
        rozšíření *Účtování v cizích měnách*; seznam vrací [**Měny**](/api/currency).
      examples:
        - CZK
    DocumentIssuedListReadonly:
      title: DocumentIssuedListReadonly
      type: object
      description: Dopočítaná pole vydaného dokladu dostupná už v seznamu.
      properties:
        id:
          type: integer
          readOnly: true
          description: ID dokladu.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
      required:
        - price_inc_vat
    OrderReceivedListItem:
      title: OrderReceivedListItem
      description: Objednávka tak, jak vypadá v seznamu.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerListItem'
            invoice_id:
              type: integer
              readOnly: true
              description: |
                ID [**faktury vydané**](/api/faktury-vydane), která z objednávky vznikla.
              examples:
                - 1234
            external_code:
              type: string
              maxLength: 45
              description: Externí číslo dokladu z navazujícího systému.
              examples:
                - EXT2019005
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            sequence_code:
              type: string
              maxLength: 45
              description: |
                Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
                ve firmě.
              examples:
                - DOC20190001
            date:
              type: string
              format: date
              description: Datum vystavení.
              examples:
                - '2019-01-01'
            currency:
              allOf:
                - $ref: '#/components/schemas/CurrencyCode'
              description: Měna dokladu.
          required:
            - customer
            - date
            - currency
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
    OrderReceivedCollection:
      title: OrderReceivedCollection
      description: Stránkovaný seznam objednávek.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                order_received:
                  type: array
                  description: Pole objednávek.
                  items:
                    $ref: '#/components/schemas/OrderReceivedListItem'
    RoundingType:
      title: RoundingType
      type: string
      description: |
        Způsob zaokrouhlení částek na dokladu. Popisy hodnot vrací
        [**Způsoby zaokrouhlení**](/api/zaokrouhleni).
      enum:
        - none
        - round
        - up
        - down
      examples:
        - round
    DocumentItemCreate:
      title: DocumentItemCreate
      type: object
      description: Položka dokladu při zápisu, bez zaúčtování.
      properties:
        text:
          type: string
          maxLength: 255
          description: Popis položky.
          examples:
            - Položka A
        amount:
          type: number
          description: Počet jednotek.
          examples:
            - 1
        price:
          type: number
          format: double
          description: Cena za jednotku.
          examples:
            - 50
        unit_price_inc_vat:
          type: boolean
          description: Cena za jednotku je uvedená včetně DPH.
          examples:
            - false
        unit:
          type: string
          maxLength: 10
          description: Jednotka.
          examples:
            - ks
        vat:
          type: number
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        vat_total:
          type: number
          format: double
          description: DPH celkem za položku.
          examples:
            - 0
        department_id:
          type: integer
          description: ID [**střediska**](/api/strediska).
          examples:
            - 1
        contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky).
          examples:
            - 1
      required:
        - text
        - amount
        - price
        - vat
    OrderReceivedParams:
      title: OrderReceivedParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci objednávky.

        **Není to tvar detailu.** Odpověď z `GET /order_received/{id}` nejde poslat
        zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají jako ID
        a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | zákazník | `customer` — objekt | `customer_id` — ID |
        | stav dokladu | `document_state` — objekt | `document_state_id` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `invoice_id`, `external_code`
        a dopočtené částky) server ignoruje.

        Objednávka nemá `variable_symbol`, `date_vat` ani `maturity_date`
        a neurčuje se u ní způsob úhrady — `payment_type` a `bank_account` se
        neposílají.
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - DOC20190001
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-01-01'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        items:
          type: array
          description: |
            Položky dokladu. Doklad musí mít alespoň jednu. Položky objednávky
            se nezaúčtovávají, proto nemají pole zaúčtování.
          items:
            $ref: '#/components/schemas/DocumentItemCreate'
        customer_id:
          type: integer
          description: ID [**zákazníka**](/api/zakaznici).
          examples:
            - 785
        document_state_id:
          x-mcp: false
          type: integer
          description: ID [**stavu dokladu**](/api/document-state).
          examples:
            - 67
      required:
        - date
        - currency
        - items
        - customer_id
    DocumentItemDetail:
      title: DocumentItemDetail
      type: object
      description: Položka dokladu v odpovědi, bez zaúčtování.
      properties:
        id:
          type: integer
          readOnly: true
          description: ID položky.
          examples:
            - 123456
        text:
          type: string
          maxLength: 255
          description: Popis položky.
          examples:
            - Položka A
        amount:
          type: number
          description: Počet jednotek.
          examples:
            - 1
        price:
          type: number
          format: double
          description: Cena za jednotku.
          examples:
            - 50
        unit_price_inc_vat:
          type: boolean
          description: Cena za jednotku je uvedená včetně DPH.
          examples:
            - false
        unit:
          type: string
          maxLength: 10
          description: Jednotka.
          examples:
            - ks
        vat:
          type: number
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        vat_total:
          type: number
          format: double
          description: DPH celkem za položku.
          examples:
            - 0
        department_id:
          type: integer
          description: ID [**střediska**](/api/strediska).
          examples:
            - 1
        contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky).
          examples:
            - 1
      required:
        - id
        - text
        - amount
        - price
    OrderReceivedDetail:
      title: OrderReceivedDetail
      description: Detail objednávky.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerDetail'
            document_state:
              $ref: '#/components/schemas/DocumentStateDetail'
            items:
              type: array
              description: Položky dokladu. Objednávka se nezaúčtovává.
              items:
                $ref: '#/components/schemas/DocumentItemDetail'
            invoice_id:
              type: integer
              readOnly: true
              description: |
                ID [**faktury vydané**](/api/faktury-vydane), která z objednávky vznikla.
              examples:
                - 1234
            external_code:
              type: string
              maxLength: 45
              description: Externí číslo dokladu z navazujícího systému.
              examples:
                - EXT2019005
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            sequence_code:
              type: string
              maxLength: 45
              description: |
                Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
                ve firmě.
              examples:
                - DOC20190001
            date:
              type: string
              format: date
              description: Datum vystavení.
              examples:
                - '2019-01-01'
            currency:
              allOf:
                - $ref: '#/components/schemas/CurrencyCode'
              description: Měna dokladu.
            price:
              type: number
              format: double
              readOnly: true
              description: Cena bez DPH v měně dokladu.
              examples:
                - 50
            price_czk:
              type: number
              format: double
              readOnly: true
              description: Cena bez DPH v CZK.
              examples:
                - 50
            price_inc_vat_czk:
              type: number
              format: double
              readOnly: true
              description: Cena celkem včetně DPH v CZK.
              examples:
                - 50
            description:
              type: string
              description: Poznámka na dokladu.
              examples:
                - Popis
            rounding_type:
              allOf:
                - $ref: '#/components/schemas/RoundingType'
              description: |
                Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
          required:
            - customer
            - date
            - currency
            - items
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
    PaymentType:
      title: PaymentType
      type: string
      description: |
        Způsob úhrady dokladu. Popisy hodnot vrací
        [**Metody plateb**](/api/metody-plateb).

        Pro `transfer` a `creditcard` je na dokladu povinný `bank_account`,
        pro `cash`, `cashondelivery` a `reciprocity` může být `null`.
      enum:
        - transfer
        - cash
        - cashondelivery
        - reciprocity
        - creditcard
      examples:
        - transfer
    DocumentIssuedListWritable:
      title: DocumentIssuedListWritable
      type: object
      description: Zapisovatelná pole vydaného dokladu dostupná už v seznamu.
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - DOC20190001
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: |
            Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-01-10'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-01-25'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
      required:
        - date
        - maturity_date
        - currency
    ProformaInvoiceIssuedListItem:
      title: ProformaInvoiceIssuedListItem
      description: Zálohová faktura vydaná tak, jak vypadá v seznamu.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerListItem'
            to_be_paid:
              type: number
              format: double
              readOnly: true
              description: Kolik ze zálohové faktury zbývá uhradit, v měně dokladu.
              examples:
                - 50
            to_be_invoiced:
              type: number
              format: double
              readOnly: true
              description: |
                Kolik ze zálohové faktury zbývá odečíst na koncových
                [**fakturách vydaných**](/api/faktury-vydane), v měně dokladu.
              examples:
                - 50
            share_link:
              type:
                - string
                - 'null'
              readOnly: true
              description: |
                Veřejný odkaz na doklad. Vzniká až voláním
                `PUT /proforma_invoice_issued/{id}/share`.
              examples:
                - https://online.iucto.cz/link/p?s=ukazka-tajny-odkaz-nema-tenhle-tvar
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
          required:
            - to_be_paid
            - to_be_invoiced
            - customer
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
    ProformaInvoiceIssuedCollection:
      title: ProformaInvoiceIssuedCollection
      description: Stránkovaný seznam zálohových faktur vydaných.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                proforma_invoice_issued:
                  type: array
                  description: Pole zálohových faktur vydaných.
                  items:
                    $ref: '#/components/schemas/ProformaInvoiceIssuedListItem'
    DocumentIssuedDetailWritable:
      title: DocumentIssuedDetailWritable
      type: object
      description: Zapisovatelná pole vydaného dokladu dostupná jen v detailu.
      properties:
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-01-01'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
      required:
        - payment_type
    DocumentItemCreateAccounted:
      title: DocumentItemCreateAccounted
      type: object
      description: |
        Položka dokladu při zápisu včetně zaúčtování.

        Zaúčtování jde zadat dvěma způsoby a nedají se míchat: buď dvojicí
        `accountentrytype_id` + `vattype_id`, nebo dvojicí `chart_account_id` +
        `vat_chart_id`. Typ účetní položky a typ DPH mají přednost — přepisují
        hodnoty účtů.
      properties:
        text:
          type: string
          maxLength: 255
          description: Popis položky.
          examples:
            - Položka A
        amount:
          type: number
          description: Počet jednotek.
          examples:
            - 1
        price:
          type: number
          format: double
          description: Cena za jednotku.
          examples:
            - 50
        unit_price_inc_vat:
          type: boolean
          description: Cena za jednotku je uvedená včetně DPH.
          examples:
            - false
        unit:
          type: string
          maxLength: 10
          description: Jednotka.
          examples:
            - ks
        vat:
          type: number
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        vat_total:
          type: number
          format: double
          description: DPH celkem za položku.
          examples:
            - 0
        department_id:
          type: integer
          description: ID [**střediska**](/api/strediska).
          examples:
            - 1
        contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky).
          examples:
            - 1
        accountentrytype_id:
          type:
            - integer
            - 'null'
          description: |
            ID [**typu účetní položky**](/api/polozky-typy-uc-polozek).
            Přepisuje `chart_account_id`.
          examples:
            - 532
        vattype_id:
          type:
            - integer
            - 'null'
          description: |
            ID [**typu DPH**](/api/typy-dph). Přepisuje `vat_chart_id`.
          examples:
            - 1
        chart_account_id:
          type:
            - integer
            - 'null'
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy).
          examples:
            - 46
        vat_chart_id:
          type:
            - integer
            - 'null'
          description: ID [**účtu DPH**](/api/ucty-dph).
          examples:
            - 52
      required:
        - text
        - amount
        - price
        - vat
    DocumentIssuedCreate:
      title: DocumentIssuedCreate
      type: object
      description: |
        Pole společná zápisu všech vydaných dokladů se zaúčtováním položek.
      properties:
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            $ref: '#/components/schemas/DocumentItemCreateAccounted'
        customer_id:
          type: integer
          description: ID [**zákazníka**](/api/zakaznici).
          examples:
            - 785
        bank_account:
          type:
            - integer
            - 'null'
          description: |
            ID [**bankovního účtu**](/api/bankovni-ucty), na který se má platit.

            Povinný pro `payment_type` `transfer` a `creditcard`; pro `cash`,
            `cashondelivery` a `reciprocity` může být `null`.
          examples:
            - 456
        document_state_id:
          x-mcp: false
          type: integer
          description: ID [**stavu dokladu**](/api/document-state).
          examples:
            - 67
      required:
        - items
        - customer_id
    ProformaInvoiceIssuedParams:
      title: ProformaInvoiceIssuedParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci zálohové faktury vydané.

        **Není to tvar detailu.** Odpověď z `GET /proforma_invoice_issued/{id}`
        nejde poslat zpět na `PUT` beze změny — vnořené objekty se při zápisu
        posílají jako ID a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | zákazník | `customer` — objekt | `customer_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | stav dokladu | `document_state` — objekt | `document_state_id` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid`, `to_be_invoiced` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `share_link` a dopočtené částky)
        server ignoruje.

        U zálohových faktur se nepoužívají `date_vat` ani `date_vat_prev`.
      allOf:
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
        - $ref: '#/components/schemas/DocumentIssuedDetailWritable'
        - $ref: '#/components/schemas/DocumentIssuedCreate'
        - type: object
          properties:
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
    DocumentItemDetailAccounted:
      title: DocumentItemDetailAccounted
      type: object
      description: Položka dokladu v odpovědi včetně zaúčtování.
      properties:
        id:
          type: integer
          readOnly: true
          description: ID položky.
          examples:
            - 123456
        text:
          type: string
          maxLength: 255
          description: Popis položky.
          examples:
            - Položka A
        amount:
          type: number
          description: Počet jednotek.
          examples:
            - 1
        price:
          type: number
          format: double
          description: Cena za jednotku.
          examples:
            - 50
        unit_price_inc_vat:
          type: boolean
          description: Cena za jednotku je uvedená včetně DPH.
          examples:
            - false
        unit:
          type: string
          maxLength: 10
          description: Jednotka.
          examples:
            - ks
        vat:
          type: number
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        vat_total:
          type: number
          format: double
          description: DPH celkem za položku.
          examples:
            - 0
        department_id:
          type: integer
          description: ID [**střediska**](/api/strediska).
          examples:
            - 1
        contract_id:
          type: integer
          description: ID [**zakázky**](/api/zakazky).
          examples:
            - 1
        accountentrytype_id:
          type:
            - integer
            - 'null'
          description: |
            ID [**typu účetní položky**](/api/polozky-typy-uc-polozek).
            Přepisuje `chart_account_id`.
          examples:
            - 532
        vattype_id:
          type:
            - integer
            - 'null'
          description: |
            ID [**typu DPH**](/api/typy-dph). Přepisuje `vat_chart_id`.
          examples:
            - 1
        chart_account_id:
          type:
            - integer
            - 'null'
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy).
          examples:
            - 46
        vat_chart_id:
          type:
            - integer
            - 'null'
          description: ID [**účtu DPH**](/api/ucty-dph).
          examples:
            - 52
      required:
        - id
        - text
        - amount
        - price
    DocumentIssuedDetailReadonly:
      title: DocumentIssuedDetailReadonly
      type: object
      description: Dopočítaná pole vydaného dokladu dostupná jen v detailu.
      properties:
        price:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v měně dokladu.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v CZK.
          examples:
            - 50
        items:
          type: array
          description: Položky dokladu.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
      required:
        - price
        - price_czk
        - price_inc_vat_czk
        - items
    ProformaInvoiceIssuedDetail:
      title: ProformaInvoiceIssuedDetail
      description: Detail zálohové faktury vydané.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerDetail'
            bank_account:
              $ref: '#/components/schemas/BankAccountDetail'
            document_state:
              $ref: '#/components/schemas/DocumentStateDetail'
            to_be_paid:
              type: number
              format: double
              readOnly: true
              description: Kolik ze zálohové faktury zbývá uhradit, v měně dokladu.
              examples:
                - 50
            to_be_invoiced:
              type: number
              format: double
              readOnly: true
              description: |
                Kolik ze zálohové faktury zbývá odečíst na koncových
                [**fakturách vydaných**](/api/faktury-vydane), v měně dokladu.
              examples:
                - 50
            share_link:
              type:
                - string
                - 'null'
              readOnly: true
              description: |
                Veřejný odkaz na doklad. Vzniká až voláním
                `PUT /proforma_invoice_issued/{id}/share`.
              examples:
                - https://online.iucto.cz/link/p?s=ukazka-tajny-odkaz-nema-tenhle-tvar
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
          required:
            - to_be_paid
            - to_be_invoiced
            - customer
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
        - $ref: '#/components/schemas/DocumentIssuedDetailReadonly'
        - $ref: '#/components/schemas/DocumentIssuedDetailWritable'
    ProformaInvoiceIssuedPay:
      title: ProformaInvoiceIssuedPay
      type: object
      description: |
        Tělo požadavku pro vytvoření úhrady zálohové faktury.

        `bank_account` a `cash_register` se navzájem vylučují — poslat lze nejvýš
        jeden z nich. Když není zadaný ani jeden, použije se bankovní účet
        z dokladu; to jde jen u dokladů s `payment_type` `transfer` nebo
        `creditcard`, které bankovní účet mají. Měna platby se přebírá
        z vybraného účtu nebo pokladny.
      properties:
        date:
          type: string
          format: date
          description: Datum úhrady. Musí spadat do otevřeného účetního období.
          examples:
            - '2020-07-01'
        bank_account:
          type: integer
          description: ID [**bankovního účtu**](/api/bankovni-ucty), na který platba přišla.
          examples:
            - 465
        cash_register:
          type: integer
          description: ID [**pokladny**](/api/pokladny), do které platba přišla.
          examples:
            - 321
      required:
        - date
    EetStatusDetail:
      title: EetStatusDetail
      type: object
      description: Zkrácený stav EET zprávy, jak se objevuje v detailu dokladu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID EET záznamu.
          examples:
            - 1
        status:
          type: string
          description: Stav odeslání zprávy.
          examples:
            - ok
        fik:
          type: string
          description: Fiskální identifikační kód přidělený finanční správou.
          examples:
            - f26e5172-077e-4aba-9f5c-d0181362a16b-ff
        bkp:
          type: string
          description: Bezpečnostní kód poplatníka.
          examples:
            - a983e13d-c6c7ce4a-03198fec-8cc1292c-32134ae9
        pkp:
          type: string
          description: Podpisový kód poplatníka.
          examples:
            - awOqOqCmawUNvyDpjFIQGC2YSc/IvbEctZ12FBU6SQ53UshDQacacx62wUgeMyJ63bpyJ+a9Sl2fa+4deEQfIBmah3AB3FwIU+Uxa8A1prlRYmVY1UmcDHAf+62pyLbUmMBgmtj7GArv54aCgaaYJzwV9ZTjuTDel9YUXfB1OWwOsK6z8tblfoWcisTEMbS0QvPubHJFAbe9kHZQH+oU/8V2S8Nxpmen1YY9/ivYDf+97H05qaihLOdzmoqhlNWkfMYHHKI26aCqHuHW9qbffvdbuzwy39zoEXEZbeujVadkbPfptdfY5BnB8VcHSrw3aDsWEooTdPWVRZrXs8AFw==
    InvoiceIssuedDetail:
      title: InvoiceIssuedDetail
      description: Detail faktury vydané.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerDetail'
            bank_account:
              $ref: '#/components/schemas/BankAccountDetail'
            document_state:
              $ref: '#/components/schemas/DocumentStateDetail'
            business_premises:
              $ref: '#/components/schemas/BusinessPremisesDetail'
            eet_status:
              $ref: '#/components/schemas/EetStatusDetail'
            to_be_paid:
              type: number
              format: double
              readOnly: true
              description: Kolik z faktury zbývá uhradit, v měně dokladu.
              examples:
                - 50
            accounted:
              type: boolean
              readOnly: true
              description: Faktura je zaúčtovaná v účetním deníku.
              examples:
                - true
            eet:
              type: boolean
              readOnly: true
              description: Faktura byla odeslána do EET.
              examples:
                - false
            share_link:
              type:
                - string
                - 'null'
              readOnly: true
              description: |
                Veřejný odkaz na doklad. Vzniká až voláním
                `PUT /invoice_issued/{id}/share`.
              examples:
                - https://online.iucto.cz/link/i?s=ukazka-tajny-odkaz-nema-tenhle-tvar
            proforma_invoice:
              type: array
              readOnly: true
              description: |
                Zálohové faktury odečtené z této faktury. Při zápisu se posílá pole
                jejich ID, ne objektů.
              items:
                type: object
                properties:
                  id:
                    type: integer
                    description: ID [**zálohové faktury**](/api/zalohove-faktury-vydane).
                    examples:
                      - 123456
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
            order_id:
              x-mcp: false
              type:
                - string
                - 'null'
              description: |
                ID [**objednávky**](/api/objednavky-prijate), ze které faktura vznikla.
                V odpovědi je to řetězec, bez navázané objednávky `null`.
              examples:
                - '13290'
            reminders:
              x-mcp: false
              type: array
              description: |
                Data, kdy se má odeslat upomínka. Nejvýš čtyři a všechna musí být
                v den splatnosti nebo po něm.
              maxItems: 4
              items:
                type: string
                format: date
              examples:
                - - '2019-08-12'
                  - '2019-08-19'
          required:
            - to_be_paid
            - accounted
            - eet
            - customer
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
        - $ref: '#/components/schemas/DocumentIssuedDetailReadonly'
        - $ref: '#/components/schemas/DocumentIssuedDetailWritable'
    CreditnoteReceivedDetail:
      title: CreditnoteReceivedDetail
      type: object
      description: Detail opravného daňového dokladu přijatého.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        items:
          type: array
          description: Položky dokladu.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
        id:
          type: integer
          readOnly: true
          description: ID dokladu.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z dokladu zbývá uhradit, v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        accounted:
          type: boolean
          readOnly: true
          description: Doklad je zaúčtovaný v účetním deníku.
          examples:
            - true
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - DOC20190001
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-01-10'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-01-25'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        invoice_received_id:
          type: integer
          description: |
            ID [**faktury přijaté**](/api/faktury-prijate), ke které se doklad
            vztahuje.
          examples:
            - 12343
        price:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v měně dokladu.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v CZK.
          examples:
            - 50
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        supplier_bank_account:
          type: string
          description: Číslo bankovního účtu dodavatele, na který se vrací peníze.
          examples:
            - 123456789/0800
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-01-01'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
      required:
        - price_inc_vat
        - to_be_paid
        - accounted
        - price
        - price_czk
        - price_inc_vat_czk
        - date
        - maturity_date
        - currency
        - payment_type
        - items
        - supplier
    PaymentReceivedDetail:
      title: PaymentReceivedDetail
      type: object
      description: |
        Detail platby přijaté.

        Protistrana je vždy právě jedna — vyplněný je buď `customer`, nebo
        `supplier`. Stejně tak je vyplněný buď `bank_account`, nebo `cash_register`
        podle způsobu úhrady.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID platby.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Částka platby celkem včetně DPH v měně platby.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Platba je smazaná.
          examples:
            - false
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          readOnly: true
          description: |
            Měna platby. Přebírá se z bankovního účtu nebo pokladny, zapsat ji
            nelze.
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - PP20190001
        external_code:
          type: string
          maxLength: 45
          description: Vlastní číslo dokladu z cizího systému.
          examples:
            - FV3425435
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        proforma_invoice_id:
          type: integer
          description: |
            ID [**zálohové faktury vydané**](/api/zalohove-faktury-vydane),
            kterou platba hradí.
          examples:
            - 1234
        oss_mode:
          x-mcp: false
          type: boolean
          description: |
            Platba je v režimu One Stop Shop. Režim jde zapnout jen u platby
            navázané na zálohovou fakturu, ostatní pravidla jsou shodná s režimem
            [OSS u faktur](/doklady-spolecne#one-stop-shop). Zapisovatelné
            *(od verze API 1.2)*, dříve jen pro čtení.
          examples:
            - false
        eet:
          x-mcp: false
          type: boolean
          description: |
            Platba byla odeslána do EET. Zapsat `true` lze jen při vytváření
            platby s `payment_type` `cash` a s pokladnou povolenou pro EET,
            podrobnosti v [průvodci doklady](/doklady-spolecne#eet)
            *(od verze API 1.1)*.
          examples:
            - false
        price:
          type: number
          format: double
          readOnly: true
          description: Částka bez DPH v měně platby.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Částka bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Částka celkem včetně DPH v CZK.
          examples:
            - 50
        items:
          type: array
          description: Položky platby.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
        payment_type:
          type: string
          enum:
            - transfer
            - cash
          description: |
            Způsob úhrady. Na platbách je množina užší než na dokladech — aplikace
            pouští jen bankovní převod a hotovost. Popisy hodnot vrací
            [**Metody plateb**](/api/metody-plateb).

            Hodnota musí odpovídat protistraně platby: `transfer` se páruje
            s `bank_account`, `cash` s `cash_register_id`.
          examples:
            - transfer
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u plateb, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na platbě.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        reference_mark:
          type: string
          maxLength: 45
          description: Párovací znak platby.
          examples:
            - RF
        full_paid:
          type: boolean
          description: Platba hradí napárovaný doklad v plné výši.
          examples:
            - true
        liquidation_amount:
          type:
            - number
            - 'null'
          format: double
          description: |
            Částka, kterou platba likviduje z napárovaného dokladu, v měně dokladu.
            Povinná, když je doklad vystavený v jiné měně než CZK nebo když se měna
            účtu či pokladny liší od měny dokladu *(od verze API 1.2)*.
          examples:
            - 50
        customer:
          $ref: '#/components/schemas/CustomerDetail'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        invoice:
          $ref: '#/components/schemas/InvoiceIssuedDetail'
        creditnote:
          $ref: '#/components/schemas/CreditnoteReceivedDetail'
        cash_register:
          $ref: '#/components/schemas/CashRegisterDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        eet_status:
          $ref: '#/components/schemas/EetStatusDetail'
      required:
        - price_inc_vat
        - currency
        - date
        - eet
        - price
        - price_czk
        - price_inc_vat_czk
        - items
        - payment_type
    ProformaInvoiceIssuedPayResult:
      title: ProformaInvoiceIssuedPayResult
      description: |
        Nově vytvořená přijatá platba k zálohové faktuře.

        Je to **plochý detail platby**, ne obálka s `_embedded`.
      allOf:
        - $ref: '#/components/schemas/PaymentReceivedDetail'
    ProformaInvoiceIssuedEmail:
      title: ProformaInvoiceIssuedEmail
      type: object
      description: Tělo požadavku pro odeslání dokladu e-mailem.
      properties:
        message:
          type: string
          description: Text zprávy.
          examples:
            - Dobrý den, v příloze zasíláme zálohovou fakturu.
        recipient:
          type: array
          description: Adresy příjemců.
          items:
            type: string
          examples:
            - - recipient1@example.org
              - recipient2@example.org
        hidden_copy:
          type: array
          description: Adresy skrytých příjemců.
          items:
            type: string
          examples:
            - - no-reply@example.org
        attach_pdf:
          type: boolean
          description: Připojit PDF dokladu.
          examples:
            - true
      required:
        - message
        - recipient
    ProformaInvoiceIssuedEmailResult:
      title: ProformaInvoiceIssuedEmailResult
      type: object
      description: Výsledek odeslání e-mailu.
      properties:
        send:
          type: boolean
          description: E-mail byl předán k odeslání.
          examples:
            - true
      required:
        - send
    InvoiceIssuedListItem:
      title: InvoiceIssuedListItem
      description: Faktura vydaná tak, jak vypadá v seznamu.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerListItem'
            to_be_paid:
              type: number
              format: double
              readOnly: true
              description: Kolik z faktury zbývá uhradit, v měně dokladu.
              examples:
                - 50
            accounted:
              type: boolean
              readOnly: true
              description: Faktura je zaúčtovaná v účetním deníku.
              examples:
                - true
            eet:
              type: boolean
              readOnly: true
              description: Faktura byla odeslána do EET.
              examples:
                - false
            share_link:
              type:
                - string
                - 'null'
              readOnly: true
              description: |
                Veřejný odkaz na doklad. Vzniká až voláním
                `PUT /invoice_issued/{id}/share`.
              examples:
                - https://online.iucto.cz/link/i?s=ukazka-tajny-odkaz-nema-tenhle-tvar
            proforma_invoice:
              type: array
              readOnly: true
              description: |
                Zálohové faktury odečtené z této faktury. Při zápisu se posílá pole
                jejich ID, ne objektů.
              items:
                type: object
                properties:
                  id:
                    type: integer
                    description: ID [**zálohové faktury**](/api/zalohove-faktury-vydane).
                    examples:
                      - 123456
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
          required:
            - to_be_paid
            - accounted
            - eet
            - customer
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
    InvoiceIssuedCollection:
      title: InvoiceIssuedCollection
      description: Stránkovaný seznam faktur vydaných.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                invoice_issued:
                  type: array
                  description: Pole faktur vydaných.
                  items:
                    $ref: '#/components/schemas/InvoiceIssuedListItem'
    InvoiceIssuedParams:
      title: InvoiceIssuedParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci faktury vydané.

        **Není to tvar detailu.** Odpověď z `GET /invoice_issued/{id}` nejde poslat
        zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají jako ID
        a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | zákazník | `customer` — objekt | `customer_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | stav dokladu | `document_state` — objekt | `document_state_id` — ID |
        | provozovna | `business_premises` — objekt | `business_premises_id` — ID |
        | zálohové faktury | `proforma_invoice` — pole objektů | `proforma_invoice` — pole ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `accounted`, `eet`, `share_link`
        a dopočtené částky) server ignoruje.
      allOf:
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
        - $ref: '#/components/schemas/DocumentIssuedDetailWritable'
        - $ref: '#/components/schemas/DocumentIssuedCreate'
        - type: object
          properties:
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
            order_id:
              x-mcp: false
              type:
                - string
                - 'null'
              description: |
                ID [**objednávky**](/api/objednavky-prijate), ze které faktura vznikla.
                V odpovědi je to řetězec, bez navázané objednávky `null`.
              examples:
                - '13290'
            reminders:
              x-mcp: false
              type: array
              description: |
                Data, kdy se má odeslat upomínka. Nejvýš čtyři a všechna musí být
                v den splatnosti nebo po něm.
              maxItems: 4
              items:
                type: string
                format: date
              examples:
                - - '2019-08-12'
                  - '2019-08-19'
            proforma_invoice:
              x-mcp: false
              type: array
              description: |
                ID [**zálohových faktur**](/api/zalohove-faktury-vydane), které se
                mají z faktury odečíst *(od verze API 1.2)*.
              items:
                type: integer
              examples:
                - - 123456
            eet:
              x-mcp: false
              type: boolean
              description: |
                Odeslat doklad do EET. Funguje jen při vytváření dokladu a je
                potřeba zároveň poslat `business_premises_id`. Podrobnosti
                v [průvodci doklady](/doklady-spolecne#eet).
              examples:
                - false
            eet_status:
              x-mcp: false
              type: integer
              description: |
                ID už odeslané [**EET zprávy**](/api/eet-zpravy). Alternativa
                k `eet` pro doklady evidované mimo iÚčto.
              examples:
                - 12
            business_premises_id:
              x-mcp: false
              type: integer
              description: |
                ID [**provozovny**](/api/business-premises). Povinné, když je
                `eet` nastavené na `true`.
              examples:
                - 897
    InvoiceIssuedEmail:
      title: InvoiceIssuedEmail
      type: object
      description: Tělo požadavku pro odeslání dokladu e-mailem.
      properties:
        message:
          type: string
          description: Text zprávy.
          examples:
            - Dobrý den, v příloze zasíláme fakturu.
        recipient:
          type: array
          description: Adresy příjemců.
          items:
            type: string
          examples:
            - - recipient1@example.org
              - recipient2@example.org
        hidden_copy:
          type: array
          description: Adresy skrytých příjemců.
          items:
            type: string
          examples:
            - - no-reply@example.org
        attach_pdf:
          type: boolean
          description: Připojit PDF dokladu.
          examples:
            - true
        attach_delivery_note_pdf:
          type: boolean
          description: Připojit PDF dodacího listu (předávacího protokolu).
          examples:
            - true
      required:
        - message
        - recipient
    InvoiceIssuedEmailResult:
      title: InvoiceIssuedEmailResult
      type: object
      description: Výsledek odeslání e-mailu.
      properties:
        send:
          type: boolean
          description: E-mail byl předán k odeslání.
          examples:
            - true
      required:
        - send
    CreditnoteIssuedListItem:
      title: CreditnoteIssuedListItem
      description: Opravný daňový doklad vydaný tak, jak vypadá v seznamu.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerListItem'
            to_be_paid:
              type: number
              format: double
              readOnly: true
              description: Kolik z dokladu zbývá uhradit, v měně dokladu.
              examples:
                - 50
            accounted:
              type: boolean
              readOnly: true
              description: Doklad je zaúčtovaný v účetním deníku.
              examples:
                - true
            eet:
              type: boolean
              readOnly: true
              description: Doklad byl odeslán do EET.
              examples:
                - false
            share_link:
              type:
                - string
                - 'null'
              readOnly: true
              description: |
                Veřejný odkaz na doklad. Vzniká až voláním
                `PUT /creditnote_issued/{id}/share`.
              examples:
                - https://online.iucto.cz/link/c?s=ukazka-tajny-odkaz-nema-tenhle-tvar
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            invoice_issued_id:
              type: integer
              description: |
                ID [**faktury vydané**](/api/faktury-vydane), kterou doklad opravuje.
              examples:
                - 12343
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
          required:
            - to_be_paid
            - accounted
            - eet
            - customer
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
    CreditnoteIssuedCollection:
      title: CreditnoteIssuedCollection
      description: Stránkovaný seznam opravných daňových dokladů vydaných.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                creditnote_issued:
                  type: array
                  description: Pole opravných daňových dokladů vydaných.
                  items:
                    $ref: '#/components/schemas/CreditnoteIssuedListItem'
    CreditnoteIssuedParams:
      title: CreditnoteIssuedParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci opravného daňového dokladu.

        **Není to tvar detailu.** Odpověď z `GET /creditnote_issued/{id}` nejde
        poslat zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají
        jako ID a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | zákazník | `customer` — objekt | `customer_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | stav dokladu | `document_state` — objekt | `document_state_id` — ID |
        | provozovna | `business_premises` — objekt | `business_premises_id` — ID |
        | EET zpráva | `eet_status` — objekt | `eet_status` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `accounted`, `share_link` a dopočtené
        částky) server ignoruje.

        Na rozdíl od ostatních vydaných dokladů je poznámka `description` povinná —
        uvádí se do ní důvod opravy.
      allOf:
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
        - $ref: '#/components/schemas/DocumentIssuedDetailWritable'
        - $ref: '#/components/schemas/DocumentIssuedCreate'
        - type: object
          properties:
            invoice_issued_id:
              type: integer
              description: |
                ID [**faktury vydané**](/api/faktury-vydane), kterou doklad opravuje.
              examples:
                - 12343
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
            customer_bank_account:
              type: string
              description: |
                Číslo bankovního účtu zákazníka, na který se vrací peníze.
              examples:
                - 123456789/0800
            eet:
              x-mcp: false
              type: boolean
              description: |
                Odeslat doklad do EET. Funguje jen při vytváření dokladu a je
                potřeba zároveň poslat `business_premises_id`. Podrobnosti
                v [průvodci doklady](/doklady-spolecne#eet).
              examples:
                - false
            eet_status:
              x-mcp: false
              type: integer
              description: |
                ID už odeslané [**EET zprávy**](/api/eet-zpravy). Alternativa
                k `eet` pro doklady evidované mimo iÚčto.
              examples:
                - 12
            business_premises_id:
              x-mcp: false
              type: integer
              description: |
                ID [**provozovny**](/api/business-premises). Povinné, když je
                `eet` nastavené na `true`.
              examples:
                - 897
          required:
            - description
    CreditnoteIssuedDetail:
      title: CreditnoteIssuedDetail
      description: Detail opravného daňového dokladu vydaného.
      allOf:
        - type: object
          properties:
            _links:
              $ref: '#/components/schemas/SelfLink'
            customer:
              $ref: '#/components/schemas/CustomerDetail'
            bank_account:
              $ref: '#/components/schemas/BankAccountDetail'
            document_state:
              $ref: '#/components/schemas/DocumentStateDetail'
            business_premises:
              $ref: '#/components/schemas/BusinessPremisesDetail'
            eet_status:
              $ref: '#/components/schemas/EetStatusDetail'
            to_be_paid:
              type: number
              format: double
              readOnly: true
              description: Kolik z dokladu zbývá uhradit, v měně dokladu.
              examples:
                - 50
            accounted:
              type: boolean
              readOnly: true
              description: Doklad je zaúčtovaný v účetním deníku.
              examples:
                - true
            eet:
              type: boolean
              readOnly: true
              description: Doklad byl odeslán do EET.
              examples:
                - false
            share_link:
              type:
                - string
                - 'null'
              readOnly: true
              description: |
                Veřejný odkaz na doklad. Vzniká až voláním
                `PUT /creditnote_issued/{id}/share`.
              examples:
                - https://online.iucto.cz/link/c?s=ukazka-tajny-odkaz-nema-tenhle-tvar
            modified:
              type: string
              format: date-time
              readOnly: true
              description: |
                Datum a čas poslední změny záznamu.
                Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
                takže se používá jako vodoznak při inkrementálním stahování.
              examples:
                - '2026-08-07T19:03:56+02:00'
            invoice_issued_id:
              type: integer
              description: |
                ID [**faktury vydané**](/api/faktury-vydane), kterou doklad opravuje.
              examples:
                - 12343
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Doklad je v režimu One Stop Shop. Podmínky režimu popisuje
                [průvodce doklady](/doklady-spolecne#one-stop-shop).
              examples:
                - false
          required:
            - to_be_paid
            - accounted
            - eet
            - customer
            - eet_status
        - $ref: '#/components/schemas/DocumentIssuedListReadonly'
        - $ref: '#/components/schemas/DocumentIssuedListWritable'
        - $ref: '#/components/schemas/DocumentIssuedDetailReadonly'
        - $ref: '#/components/schemas/DocumentIssuedDetailWritable'
    CreditnoteIssuedEmail:
      title: CreditnoteIssuedEmail
      type: object
      description: Tělo požadavku pro odeslání dokladu e-mailem.
      properties:
        message:
          type: string
          description: Text zprávy.
          examples:
            - Dobrý den, v příloze zasíláme opravný daňový doklad.
        recipient:
          type: array
          description: Adresy příjemců.
          items:
            type: string
          examples:
            - - recipient1@example.org
              - recipient2@example.org
        hidden_copy:
          type: array
          description: Adresy skrytých příjemců.
          items:
            type: string
          examples:
            - - no-reply@example.org
        attach_pdf:
          type: boolean
          description: Připojit PDF dokladu.
          examples:
            - true
      required:
        - message
        - recipient
    CreditnoteIssuedEmailResult:
      title: CreditnoteIssuedEmailResult
      type: object
      description: Výsledek odeslání e-mailu.
      properties:
        send:
          type: boolean
          description: E-mail byl předán k odeslání.
          examples:
            - true
      required:
        - send
    DocumentScanStatus:
      title: DocumentScanStatus
      type: string
      description: |
        Stav zpracování došlého dokladu.

        | Hodnota | Význam |
        |---------|--------|
        | `uploaded` | Nový |
        | `choose_processing_type` | Zvolit typ zpracování |
        | `processing` | Zpracovávání |
        | `failed` | Selhalo |
        | `to_review` | Ke kontrole |
        | `imported` | Importováno |
      enum:
        - uploaded
        - choose_processing_type
        - processing
        - failed
        - to_review
        - imported
      examples:
        - uploaded
    DocumentScanDetail:
      title: DocumentScanDetail
      type: object
      description: |
        Došlý doklad. Stejný tvar má položka seznamu i odpověď na nahrání souboru.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID došlého dokladu.
          examples:
            - 546
        file_name:
          type: string
          readOnly: true
          description: Název nahraného souboru.
          examples:
            - FV2026001.pdf
        status:
          allOf:
            - $ref: '#/components/schemas/DocumentScanStatus'
          readOnly: true
          description: Stav zpracování dokladu.
        format:
          type: string
          readOnly: true
          description: Formát souboru.
          examples:
            - pdf
        created:
          type: string
          format: date-time
          readOnly: true
          description: Datum a čas nahrání souboru.
          examples:
            - '2026-03-12T11:48:21+01:00'
      required:
        - id
        - file_name
        - status
        - format
        - created
    DocumentScanCollection:
      title: DocumentScanCollection
      description: Stránkovaný seznam došlých dokladů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                document_scan:
                  type: array
                  description: Pole došlých dokladů.
                  items:
                    $ref: '#/components/schemas/DocumentScanDetail'
    DocumentScanUpload:
      title: DocumentScanUpload
      type: object
      description: Tělo požadavku pro nahrání došlého dokladu.
      properties:
        file:
          type: string
          format: binary
          description: |
            Obsah nahrávaného souboru. Povolené formáty jsou `.png`, `.jpeg`,
            `.jpg`, `.pdf`, `.xml`, `.isdoc`, `.isdocx` a WebFakt, maximální
            velikost souboru je 4 MB.
      required:
        - file
    OrderIssuedListItem:
      title: OrderIssuedListItem
      type: object
      description: Objednávka vydaná tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        id:
          type: integer
          readOnly: true
          description: ID objednávky.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        invoice_id:
          type: integer
          readOnly: true
          description: |
            ID [**faktury přijaté**](/api/faktury-prijate), která se na objednávku
            odkazuje.
          examples:
            - 13290
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - OBJ20190001
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
      required:
        - id
        - price_inc_vat
        - date
        - currency
        - supplier
    OrderIssuedCollection:
      title: OrderIssuedCollection
      description: Stránkovaný seznam objednávek vydaných.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                order_issued:
                  type: array
                  description: Pole objednávek vydaných.
                  items:
                    $ref: '#/components/schemas/OrderIssuedListItem'
    OrderIssuedParams:
      title: OrderIssuedParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci objednávky vydané.

        **Není to tvar detailu.** Odpověď z `GET /order_issued/{id}` nejde poslat
        zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají jako ID
        a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | stav dokladu | `document_state` — objekt | `document_state_id` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `invoice_id` a dopočtené částky)
        server ignoruje.

        Položky objednávky se nezaúčtovávají, proto nemají pole zaúčtování.
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - OBJ20190001
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            $ref: '#/components/schemas/DocumentItemCreate'
        supplier_id:
          type: integer
          description: ID [**dodavatele**](/api/dodavatele).
          examples:
            - 785
        document_state_id:
          x-mcp: false
          type: integer
          description: ID [**stavu dokladu**](/api/document-state).
          examples:
            - 67
      required:
        - date
        - currency
        - items
        - supplier_id
    OrderIssuedDetail:
      title: OrderIssuedDetail
      type: object
      description: Detail objednávky vydané.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        document_state:
          $ref: '#/components/schemas/DocumentStateDetail'
        items:
          type: array
          description: Položky dokladu.
          items:
            $ref: '#/components/schemas/DocumentItemDetail'
        id:
          type: integer
          readOnly: true
          description: ID objednávky.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        invoice_id:
          type: integer
          readOnly: true
          description: |
            ID [**faktury přijaté**](/api/faktury-prijate), která se na objednávku
            odkazuje.
          examples:
            - 13290
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - OBJ20190001
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        price:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v měně dokladu.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v CZK.
          examples:
            - 50
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
      required:
        - id
        - price_inc_vat
        - price
        - price_czk
        - price_inc_vat_czk
        - date
        - currency
        - items
        - supplier
    ProformaInvoiceReceivedListItem:
      title: ProformaInvoiceReceivedListItem
      type: object
      description: Zálohová faktura přijatá tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        id:
          type: integer
          readOnly: true
          description: ID zálohové faktury.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z dokladu zbývá uhradit, v měně dokladu.
          examples:
            - 50
        to_be_invoiced:
          type: number
          format: double
          readOnly: true
          description: |
            Kolik ze zálohy zbývá odečíst na [**faktuře
            přijaté**](/api/faktury-prijate), v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - ZFP20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
      required:
        - price_inc_vat
        - to_be_paid
        - to_be_invoiced
        - external_code
        - date
        - maturity_date
        - currency
        - supplier
    ProformaInvoiceReceivedCollection:
      title: ProformaInvoiceReceivedCollection
      description: Stránkovaný seznam zálohových faktur přijatých.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                proforma_invoice_received:
                  type: array
                  description: Pole zálohových faktur přijatých.
                  items:
                    $ref: '#/components/schemas/ProformaInvoiceReceivedListItem'
    ProformaInvoiceReceivedParams:
      title: ProformaInvoiceReceivedParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci zálohové faktury přijaté.

        **Není to tvar detailu.** Odpověď z `GET /proforma_invoice_received/{id}`
        nejde poslat zpět na `PUT` beze změny — vnořené objekty se při zápisu
        posílají jako ID a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid`, `to_be_invoiced` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted` a dopočtené částky) server ignoruje.

        Chování společné všem dokladům popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - ZFP20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            $ref: '#/components/schemas/DocumentItemCreateAccounted'
        supplier_id:
          type: integer
          description: ID [**dodavatele**](/api/dodavatele).
          examples:
            - 785
        bank_account:
          type:
            - integer
            - 'null'
          description: |
            ID [**bankovního účtu**](/api/bankovni-ucty), na který se má platit.

            Povinný pro `payment_type` `transfer` a `creditcard`; pro `cash`,
            `cashondelivery` a `reciprocity` může být `null`.
          examples:
            - 456
      required:
        - external_code
        - date
        - maturity_date
        - currency
        - payment_type
        - items
        - supplier_id
    ProformaInvoiceReceivedDetail:
      title: ProformaInvoiceReceivedDetail
      type: object
      description: Detail zálohové faktury přijaté.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        items:
          type: array
          description: Položky dokladu.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
        id:
          type: integer
          readOnly: true
          description: ID zálohové faktury.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z dokladu zbývá uhradit, v měně dokladu.
          examples:
            - 50
        to_be_invoiced:
          type: number
          format: double
          readOnly: true
          description: |
            Kolik ze zálohy zbývá odečíst na [**faktuře
            přijaté**](/api/faktury-prijate), v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - ZFP20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        price:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v měně dokladu.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v CZK.
          examples:
            - 50
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
      required:
        - price_inc_vat
        - to_be_paid
        - to_be_invoiced
        - price
        - price_czk
        - price_inc_vat_czk
        - external_code
        - date
        - maturity_date
        - currency
        - payment_type
        - items
        - supplier
    InvoiceReceivedListItem:
      title: InvoiceReceivedListItem
      type: object
      description: Faktura přijatá tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        id:
          type: integer
          readOnly: true
          description: ID faktury.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z faktury zbývá uhradit, v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        accounted:
          type: boolean
          readOnly: true
          description: Faktura je zaúčtovaná v účetním deníku.
          examples:
            - false
        proforma_invoice:
          type: array
          readOnly: true
          description: |
            [**Zálohové faktury přijaté**](/api/zalohove-faktury-prijate) odečtené
            z této faktury.
          items:
            type: object
            properties:
              id:
                type: integer
                description: ID zálohové faktury přijaté.
                examples:
                  - 123456
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - FP20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        order_id:
          x-mcp: false
          type: integer
          description: |
            ID [**objednávky vydané**](/api/objednavky-vydane), ze které faktura
            vznikla.
          examples:
            - 12343
      required:
        - price_inc_vat
        - to_be_paid
        - date
        - maturity_date
        - currency
        - supplier
    InvoiceReceivedCollection:
      title: InvoiceReceivedCollection
      description: Stránkovaný seznam faktur přijatých.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                invoice_received:
                  type: array
                  description: Pole faktur přijatých.
                  items:
                    $ref: '#/components/schemas/InvoiceReceivedListItem'
    InvoiceReceivedParams:
      title: InvoiceReceivedParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci faktury přijaté.

        **Není to tvar detailu.** Odpověď z `GET /invoice_received/{id}` nejde
        poslat zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají
        jako ID a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | zálohové faktury | `proforma_invoice` — pole objektů | `proforma_invoice` — pole ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `accounted` a dopočtené částky)
        server ignoruje.

        Chování společné všem dokladům popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - FP20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        order_id:
          x-mcp: false
          type: integer
          description: |
            ID [**objednávky vydané**](/api/objednavky-vydane), ze které faktura
            vznikla.
          examples:
            - 12343
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            $ref: '#/components/schemas/DocumentItemCreateAccounted'
        supplier_id:
          type: integer
          description: ID [**dodavatele**](/api/dodavatele).
          examples:
            - 785
        proforma_invoice:
          x-mcp: false
          type: array
          description: |
            ID [**zálohových faktur přijatých**](/api/zalohove-faktury-prijate),
            které se mají z faktury odečíst *(od verze API 1.2)*.
          items:
            type: integer
          examples:
            - - 123456
        bank_account:
          type:
            - integer
            - 'null'
          description: |
            ID [**bankovního účtu**](/api/bankovni-ucty), ze kterého se má platit.

            Povinný pro `payment_type` `transfer` a `creditcard`; pro `cash`,
            `cashondelivery` a `reciprocity` může být `null`.
          examples:
            - 456
      required:
        - date
        - maturity_date
        - currency
        - payment_type
        - items
        - supplier_id
    InvoiceReceivedDetail:
      title: InvoiceReceivedDetail
      type: object
      description: Detail faktury přijaté.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        items:
          type: array
          description: Položky dokladu.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
        id:
          type: integer
          readOnly: true
          description: ID faktury.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z faktury zbývá uhradit, v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        accounted:
          type: boolean
          readOnly: true
          description: Faktura je zaúčtovaná v účetním deníku.
          examples:
            - false
        proforma_invoice:
          type: array
          readOnly: true
          description: |
            [**Zálohové faktury přijaté**](/api/zalohove-faktury-prijate) odečtené
            z této faktury.
          items:
            type: object
            properties:
              id:
                type: integer
                description: ID zálohové faktury přijaté.
                examples:
                  - 123456
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - FP20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        order_id:
          x-mcp: false
          type: integer
          description: |
            ID [**objednávky vydané**](/api/objednavky-vydane), ze které faktura
            vznikla.
          examples:
            - 12343
        price:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v měně dokladu.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v CZK.
          examples:
            - 50
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
      required:
        - price_inc_vat
        - to_be_paid
        - price
        - price_czk
        - price_inc_vat_czk
        - date
        - maturity_date
        - currency
        - payment_type
        - items
        - supplier
    CreditnoteReceivedListItem:
      title: CreditnoteReceivedListItem
      type: object
      description: Opravný daňový doklad přijatý tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        id:
          type: integer
          readOnly: true
          description: ID dokladu.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z dokladu zbývá uhradit, v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        accounted:
          type: boolean
          readOnly: true
          description: Doklad je zaúčtovaný v účetním deníku.
          examples:
            - true
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - DOC20190001
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-01-10'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-01-25'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        invoice_received_id:
          type: integer
          description: |
            ID [**faktury přijaté**](/api/faktury-prijate), ke které se doklad
            vztahuje.
          examples:
            - 12343
      required:
        - price_inc_vat
        - to_be_paid
        - accounted
        - date
        - maturity_date
        - currency
        - supplier
    CreditnoteReceivedCollection:
      title: CreditnoteReceivedCollection
      description: Stránkovaný seznam opravných daňových dokladů přijatých.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                creditnote_received:
                  type: array
                  description: Pole opravných daňových dokladů přijatých.
                  items:
                    $ref: '#/components/schemas/CreditnoteReceivedListItem'
    CreditnoteReceivedParams:
      title: CreditnoteReceivedParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci opravného daňového dokladu
        přijatého.

        **Není to tvar detailu.** Odpověď z `GET /creditnote_received/{id}` nejde
        poslat zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají
        jako ID a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `accounted` a dopočtené částky)
        server ignoruje.

        Chování společné všem dokladům popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - DOC20190001
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-01-10'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-01-25'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        invoice_received_id:
          type: integer
          description: |
            ID [**faktury přijaté**](/api/faktury-prijate), ke které se doklad
            vztahuje.
          examples:
            - 12343
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        supplier_bank_account:
          type: string
          description: Číslo bankovního účtu dodavatele, na který se vrací peníze.
          examples:
            - 123456789/0800
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-01-01'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            $ref: '#/components/schemas/DocumentItemCreateAccounted'
        supplier_id:
          type: integer
          description: ID [**dodavatele**](/api/dodavatele).
          examples:
            - 785
        bank_account:
          type:
            - integer
            - 'null'
          description: |
            ID [**bankovního účtu**](/api/bankovni-ucty), přes který se doklad
            vyrovnává.

            Povinný pro `payment_type` `transfer` a `creditcard`; pro `cash`,
            `cashondelivery` a `reciprocity` může být `null`.
          examples:
            - 456
      required:
        - date
        - maturity_date
        - currency
        - payment_type
        - items
        - supplier_id
    DirectExpenseListItem:
      title: DirectExpenseListItem
      type: object
      description: Interní předpis nákladu tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        id:
          type: integer
          readOnly: true
          description: ID předpisu.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z předpisu zbývá uhradit, v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        accounted:
          type: boolean
          readOnly: true
          description: Předpis je zaúčtovaný v účetním deníku.
          examples:
            - false
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - IPN20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
      required:
        - price_inc_vat
        - to_be_paid
        - date
        - maturity_date
        - currency
        - supplier
    DirectExpenseCollection:
      title: DirectExpenseCollection
      description: Stránkovaný seznam interních předpisů nákladů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                direct_expense:
                  type: array
                  description: Pole interních předpisů nákladů.
                  items:
                    $ref: '#/components/schemas/DirectExpenseListItem'
    DirectExpenseParams:
      title: DirectExpenseParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci interního předpisu nákladu.

        **Není to tvar detailu.** Odpověď z `GET /direct_expense/{id}` nejde poslat
        zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají jako ID
        a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | stav dokladu | `document_state` — objekt | `document_state_id` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `to_be_paid` | dopočítané | neposílají se |

        Pole jen pro čtení (`id`, `deleted`, `accounted` a dopočtené částky)
        server ignoruje.

        Chování společné všem dokladům popisuje
        [průvodce doklady](/doklady-spolecne):
        [neplátci DPH](/doklady-spolecne#neplatci-dph) a
        [zaúčtování položek](/doklady-spolecne#zauctovani-polozek).
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - IPN20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        chartaccount_dal_id:
          type: integer
          description: |
            ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy), na který se předpis
            zaúčtuje na straně Dal.
          examples:
            - 306
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            $ref: '#/components/schemas/DocumentItemCreateAccounted'
        supplier_id:
          type: integer
          description: ID [**dodavatele**](/api/dodavatele).
          examples:
            - 785
        bank_account:
          type:
            - integer
            - 'null'
          description: |
            ID [**bankovního účtu**](/api/bankovni-ucty), ze kterého se má platit.

            Povinný pro `payment_type` `transfer` a `creditcard`; pro `cash`,
            `cashondelivery` a `reciprocity` může být `null`.
          examples:
            - 456
        document_state_id:
          x-mcp: false
          type: integer
          description: ID [**stavu dokladu**](/api/document-state).
          examples:
            - 67
      required:
        - date
        - maturity_date
        - currency
        - payment_type
        - chartaccount_dal_id
        - items
        - supplier_id
    DirectExpenseDetail:
      title: DirectExpenseDetail
      type: object
      description: Detail interního předpisu nákladu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        document_state:
          $ref: '#/components/schemas/DocumentStateDetail'
        items:
          type: array
          description: Položky dokladu.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
        id:
          type: integer
          readOnly: true
          description: ID předpisu.
          examples:
            - 13290
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v měně dokladu.
          examples:
            - 50
        to_be_paid:
          type: number
          format: double
          readOnly: true
          description: Kolik z předpisu zbývá uhradit, v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        accounted:
          type: boolean
          readOnly: true
          description: Předpis je zaúčtovaný v účetním deníku.
          examples:
            - false
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - IPN20190001
        external_code:
          type: string
          maxLength: 45
          description: Číslo dokladu u dodavatele.
          examples:
            - '20190001'
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        maturity_date:
          type: string
          format: date
          description: Datum splatnosti.
          examples:
            - '2019-08-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        price:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v měně dokladu.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Cena bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Cena celkem včetně DPH v CZK.
          examples:
            - 50
        payment_type:
          $ref: '#/components/schemas/PaymentType'
        chartaccount_dal_id:
          type: integer
          description: |
            ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy), na který se předpis
            zaúčtuje na straně Dal.
          examples:
            - 306
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u dokladů, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
      required:
        - price_inc_vat
        - to_be_paid
        - price
        - price_czk
        - price_inc_vat_czk
        - date
        - maturity_date
        - currency
        - payment_type
        - chartaccount_dal_id
        - items
        - supplier
    PaymentIssuedListItem:
      title: PaymentIssuedListItem
      type: object
      description: Platba vydaná tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID platby.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Částka platby celkem včetně DPH v měně platby.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Platba je smazaná.
          examples:
            - false
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          readOnly: true
          description: |
            Měna platby. Přebírá se z bankovního účtu nebo pokladny, zapsat ji
            nelze.
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - PV20190001
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        proforma_invoice_received_id:
          type: integer
          description: |
            ID [**zálohové faktury přijaté**](/api/zalohove-faktury-prijate),
            kterou platba hradí.
          examples:
            - 1234
        customer:
          $ref: '#/components/schemas/CustomerListItem'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        invoice:
          $ref: '#/components/schemas/InvoiceReceivedListItem'
        creditnote:
          $ref: '#/components/schemas/CreditnoteIssuedListItem'
        cash_register:
          $ref: '#/components/schemas/CashRegisterDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountListItem'
      required:
        - price_inc_vat
        - currency
        - date
    PaymentIssuedCollection:
      title: PaymentIssuedCollection
      description: Stránkovaný seznam plateb vydaných.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                payment_issued:
                  type: array
                  description: Pole plateb vydaných.
                  items:
                    $ref: '#/components/schemas/PaymentIssuedListItem'
    PaymentIssuedParams:
      title: PaymentIssuedParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci platby vydané.

        **Není to tvar detailu.** Odpověď z `GET /payment_issued/{id}` nejde poslat
        zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají jako ID
        a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | zákazník | `customer` — objekt | `customer_id` — ID |
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | faktura | `invoice` — objekt | `invoice_id` — ID |
        | opravný daňový doklad | `creditnote` — objekt | `creditnote_id` — ID |
        | pokladna | `cash_register` — objekt | `cash_register_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `currency` | dopočítané | neposílají se |

        Platba se páruje nejvýš na jeden doklad — `invoice_id`,
        `proforma_invoice_received_id` a `creditnote_id` se nedají kombinovat.
      allOf:
        - type: object
          properties:
            sequence_code:
              type: string
              maxLength: 45
              description: |
                Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
                ve firmě.
              examples:
                - PV20190001
            variable_symbol:
              type: string
              maxLength: 10
              description: Variabilní symbol.
              examples:
                - '20190001'
            date:
              type: string
              format: date
              description: Datum vystavení. Musí spadat do otevřeného účetního období.
              examples:
                - '2019-07-12'
            date_vat:
              type: string
              format: date
              description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
              examples:
                - '2019-07-12'
            proforma_invoice_received_id:
              type: integer
              description: |
                ID [**zálohové faktury přijaté**](/api/zalohove-faktury-prijate),
                kterou platba hradí.
              examples:
                - 1234
            payment_type:
              type: string
              enum:
                - transfer
                - cash
              description: |
                Způsob úhrady. Na platbách je množina užší než na dokladech — aplikace
                pouští jen bankovní převod a hotovost. Popisy hodnot vrací
                [**Metody plateb**](/api/metody-plateb).

                Hodnota musí odpovídat protistraně platby: `transfer` se páruje
                s `bank_account`, `cash` s `cash_register_id`.
              examples:
                - transfer
            date_vat_prev:
              x-mcp: false
              type: string
              format: date
              description: |
                Datum předchozí sazby DPH. Vyplňuje se u plateb, které spadají do
                období se změnou sazby.
              examples:
                - '2019-05-05'
            description:
              type: string
              description: Poznámka na platbě.
              examples:
                - Popis
            rounding_type:
              allOf:
                - $ref: '#/components/schemas/RoundingType'
              description: |
                Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
            reference_mark:
              type: string
              maxLength: 45
              description: Párovací znak platby.
              examples:
                - RF
            full_paid:
              type: boolean
              description: Platba hradí napárovaný doklad v plné výši.
              examples:
                - true
            liquidation_amount:
              type:
                - number
                - 'null'
              format: double
              description: |
                Částka, kterou platba likviduje z napárovaného dokladu, v měně dokladu.
                Povinná, když je doklad vystavený v jiné měně než CZK nebo když se měna
                účtu či pokladny liší od měny dokladu *(od verze API 1.2)*.
              examples:
                - 50
            items:
              type: array
              description: Položky platby. Platba musí mít alespoň jednu.
              items:
                $ref: '#/components/schemas/DocumentItemCreateAccounted'
            customer_id:
              type: integer
              description: ID [**zákazníka**](/api/zakaznici) jako protistrany.
              examples:
                - 785
            supplier_id:
              type: integer
              description: ID [**dodavatele**](/api/dodavatele) jako protistrany.
              examples:
                - 785
            invoice_id:
              type: integer
              description: |
                ID [**faktury přijaté**](/api/faktury-prijate), kterou platba hradí.
              examples:
                - 13290
            creditnote_id:
              type: integer
              description: |
                ID [**opravného daňového dokladu vydaného**](/api/opravne-danove-doklady-vydane),
                který platba hradí *(od verze API 1.2)*.
              examples:
                - 13290
            cash_register_id:
              type: integer
              description: |
                ID pokladny, ze které se platí. Používá se s `payment_type`
                nastaveným na `cash`.
              examples:
                - 785
            bank_account:
              type: integer
              description: |
                ID [**bankovního účtu**](/api/bankovni-ucty), ze kterého se platí.
                Používá se s `payment_type` nastaveným na `transfer`; u hotovostní
                platby se neposílá.
              examples:
                - 456
          required:
            - date
            - payment_type
            - items
        - oneOf:
            - title: Protistranou je zákazník
              required:
                - customer_id
            - title: Protistranou je dodavatel
              required:
                - supplier_id
        - oneOf:
            - title: Platba z bankovního účtu
              required:
                - bank_account
            - title: Platba z pokladny
              required:
                - cash_register_id
    PaymentIssuedDetail:
      title: PaymentIssuedDetail
      type: object
      description: |
        Detail platby vydané.

        Protistrana je vždy právě jedna — vyplněný je buď `customer`, nebo
        `supplier`. Stejně tak je vyplněný buď `bank_account`, nebo `cash_register`
        podle způsobu úhrady.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID platby.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Částka platby celkem včetně DPH v měně platby.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Platba je smazaná.
          examples:
            - false
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          readOnly: true
          description: |
            Měna platby. Přebírá se z bankovního účtu nebo pokladny, zapsat ji
            nelze.
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - PV20190001
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        proforma_invoice_received_id:
          type: integer
          description: |
            ID [**zálohové faktury přijaté**](/api/zalohove-faktury-prijate),
            kterou platba hradí.
          examples:
            - 1234
        price:
          type: number
          format: double
          readOnly: true
          description: Částka bez DPH v měně platby.
          examples:
            - 50
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Částka bez DPH v CZK.
          examples:
            - 50
        price_inc_vat_czk:
          type: number
          format: double
          readOnly: true
          description: Částka celkem včetně DPH v CZK.
          examples:
            - 50
        items:
          type: array
          description: Položky platby.
          items:
            $ref: '#/components/schemas/DocumentItemDetailAccounted'
        payment_type:
          type: string
          enum:
            - transfer
            - cash
          description: |
            Způsob úhrady. Na platbách je množina užší než na dokladech — aplikace
            pouští jen bankovní převod a hotovost. Popisy hodnot vrací
            [**Metody plateb**](/api/metody-plateb).

            Hodnota musí odpovídat protistraně platby: `transfer` se páruje
            s `bank_account`, `cash` s `cash_register_id`.
          examples:
            - transfer
        date_vat_prev:
          x-mcp: false
          type: string
          format: date
          description: |
            Datum předchozí sazby DPH. Vyplňuje se u plateb, které spadají do
            období se změnou sazby.
          examples:
            - '2019-05-05'
        description:
          type: string
          description: Poznámka na platbě.
          examples:
            - Popis
        rounding_type:
          allOf:
            - $ref: '#/components/schemas/RoundingType'
          description: |
            Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
        reference_mark:
          type: string
          maxLength: 45
          description: Párovací znak platby.
          examples:
            - RF
        full_paid:
          type: boolean
          description: Platba hradí napárovaný doklad v plné výši.
          examples:
            - true
        liquidation_amount:
          type:
            - number
            - 'null'
          format: double
          description: |
            Částka, kterou platba likviduje z napárovaného dokladu, v měně dokladu.
            Povinná, když je doklad vystavený v jiné měně než CZK nebo když se měna
            účtu či pokladny liší od měny dokladu *(od verze API 1.2)*.
          examples:
            - 50
        customer:
          $ref: '#/components/schemas/CustomerDetail'
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        invoice:
          $ref: '#/components/schemas/InvoiceReceivedDetail'
        creditnote:
          $ref: '#/components/schemas/CreditnoteIssuedDetail'
        cash_register:
          $ref: '#/components/schemas/CashRegisterDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
      required:
        - price_inc_vat
        - currency
        - date
        - price
        - price_czk
        - price_inc_vat_czk
        - items
        - payment_type
    PaymentReceivedListItem:
      title: PaymentReceivedListItem
      type: object
      description: Platba přijatá tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID platby.
          examples:
            - 123
        price_inc_vat:
          type: number
          format: double
          readOnly: true
          description: Částka platby celkem včetně DPH v měně platby.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Platba je smazaná.
          examples:
            - false
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          readOnly: true
          description: |
            Měna platby. Přebírá se z bankovního účtu nebo pokladny, zapsat ji
            nelze.
        modified:
          type: string
          format: date-time
          readOnly: true
          description: |
            Datum a čas poslední změny záznamu.
            Jediné pole, podle kterého jde tenhle seznam řadit (`sort=-modified`),
            takže se používá jako vodoznak při inkrementálním stahování.
          examples:
            - '2026-08-07T19:03:56+02:00'
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - PP20190001
        external_code:
          type: string
          maxLength: 45
          description: Vlastní číslo dokladu z cizího systému.
          examples:
            - FV3425435
        variable_symbol:
          type: string
          maxLength: 10
          description: Variabilní symbol.
          examples:
            - '20190001'
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
          examples:
            - '2019-07-12'
        proforma_invoice_id:
          type: integer
          description: |
            ID [**zálohové faktury vydané**](/api/zalohove-faktury-vydane),
            kterou platba hradí.
          examples:
            - 1234
        oss_mode:
          x-mcp: false
          type: boolean
          description: |
            Platba je v režimu One Stop Shop. Režim jde zapnout jen u platby
            navázané na zálohovou fakturu, ostatní pravidla jsou shodná s režimem
            [OSS u faktur](/doklady-spolecne#one-stop-shop). Zapisovatelné
            *(od verze API 1.2)*, dříve jen pro čtení.
          examples:
            - false
        eet:
          x-mcp: false
          type: boolean
          description: |
            Platba byla odeslána do EET. Zapsat `true` lze jen při vytváření
            platby s `payment_type` `cash` a s pokladnou povolenou pro EET,
            podrobnosti v [průvodci doklady](/doklady-spolecne#eet)
            *(od verze API 1.1)*.
          examples:
            - false
        customer:
          $ref: '#/components/schemas/CustomerListItem'
        supplier:
          $ref: '#/components/schemas/SupplierListItem'
        invoice:
          $ref: '#/components/schemas/InvoiceIssuedListItem'
        creditnote:
          $ref: '#/components/schemas/CreditnoteReceivedListItem'
        cash_register:
          $ref: '#/components/schemas/CashRegisterDetail'
        bank_account:
          $ref: '#/components/schemas/BankAccountListItem'
      required:
        - price_inc_vat
        - currency
        - date
        - eet
    PaymentReceivedCollection:
      title: PaymentReceivedCollection
      description: Stránkovaný seznam plateb přijatých.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                payment_received:
                  type: array
                  description: Pole plateb přijatých.
                  items:
                    $ref: '#/components/schemas/PaymentReceivedListItem'
    PaymentReceivedParams:
      title: PaymentReceivedParams
      description: |
        Tělo požadavku pro vytvoření nebo editaci platby přijaté.

        **Není to tvar detailu.** Odpověď z `GET /payment_received/{id}` nejde
        poslat zpět na `PUT` beze změny — vnořené objekty se při zápisu posílají
        jako ID a dopočtené částky se neposílají vůbec:

        | Pole | `GET` (odpověď) | `POST` / `PUT` (požadavek) |
        |------|-----------------|----------------------------|
        | zákazník | `customer` — objekt | `customer_id` — ID |
        | dodavatel | `supplier` — objekt | `supplier_id` — ID |
        | faktura | `invoice` — objekt | `invoice_id` — ID |
        | opravný daňový doklad | `creditnote` — objekt | `creditnote_received_id` — ID |
        | pokladna | `cash_register` — objekt | `cash_register_id` — ID |
        | bankovní účet | `bank_account` — objekt | `bank_account` — ID |
        | EET zpráva | `eet_status` — objekt | `eet_status` — ID |
        | `price`, `price_czk`, `price_inc_vat`, `price_inc_vat_czk`, `currency` | dopočítané | neposílají se |

        Platba se páruje nejvýš na jeden doklad — `invoice_id`,
        `proforma_invoice_id` a `creditnote_received_id` se nedají kombinovat.
      allOf:
        - type: object
          properties:
            sequence_code:
              type: string
              maxLength: 45
              description: |
                Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
                ve firmě.
              examples:
                - PP20190001
            external_code:
              type: string
              maxLength: 45
              description: Vlastní číslo dokladu z cizího systému.
              examples:
                - FV3425435
            variable_symbol:
              type: string
              maxLength: 10
              description: Variabilní symbol.
              examples:
                - '20190001'
            date:
              type: string
              format: date
              description: Datum vystavení. Musí spadat do otevřeného účetního období.
              examples:
                - '2019-07-12'
            date_vat:
              type: string
              format: date
              description: Datum zdanitelného plnění. U neplátce DPH se nevyplňuje.
              examples:
                - '2019-07-12'
            proforma_invoice_id:
              type: integer
              description: |
                ID [**zálohové faktury vydané**](/api/zalohove-faktury-vydane),
                kterou platba hradí.
              examples:
                - 1234
            oss_mode:
              x-mcp: false
              type: boolean
              description: |
                Platba je v režimu One Stop Shop. Režim jde zapnout jen u platby
                navázané na zálohovou fakturu, ostatní pravidla jsou shodná s režimem
                [OSS u faktur](/doklady-spolecne#one-stop-shop). Zapisovatelné
                *(od verze API 1.2)*, dříve jen pro čtení.
              examples:
                - false
            eet:
              x-mcp: false
              type: boolean
              description: |
                Platba byla odeslána do EET. Zapsat `true` lze jen při vytváření
                platby s `payment_type` `cash` a s pokladnou povolenou pro EET,
                podrobnosti v [průvodci doklady](/doklady-spolecne#eet)
                *(od verze API 1.1)*.
              examples:
                - false
            payment_type:
              type: string
              enum:
                - transfer
                - cash
              description: |
                Způsob úhrady. Na platbách je množina užší než na dokladech — aplikace
                pouští jen bankovní převod a hotovost. Popisy hodnot vrací
                [**Metody plateb**](/api/metody-plateb).

                Hodnota musí odpovídat protistraně platby: `transfer` se páruje
                s `bank_account`, `cash` s `cash_register_id`.
              examples:
                - transfer
            date_vat_prev:
              x-mcp: false
              type: string
              format: date
              description: |
                Datum předchozí sazby DPH. Vyplňuje se u plateb, které spadají do
                období se změnou sazby.
              examples:
                - '2019-05-05'
            description:
              type: string
              description: Poznámka na platbě.
              examples:
                - Popis
            rounding_type:
              allOf:
                - $ref: '#/components/schemas/RoundingType'
              description: |
                Způsob zaokrouhlení. Když se nevyplní, použije se nastavení firmy.
            reference_mark:
              type: string
              maxLength: 45
              description: Párovací znak platby.
              examples:
                - RF
            full_paid:
              type: boolean
              description: Platba hradí napárovaný doklad v plné výši.
              examples:
                - true
            liquidation_amount:
              type:
                - number
                - 'null'
              format: double
              description: |
                Částka, kterou platba likviduje z napárovaného dokladu, v měně dokladu.
                Povinná, když je doklad vystavený v jiné měně než CZK nebo když se měna
                účtu či pokladny liší od měny dokladu *(od verze API 1.2)*.
              examples:
                - 50
            items:
              type: array
              description: Položky platby. Platba musí mít alespoň jednu.
              items:
                $ref: '#/components/schemas/DocumentItemCreateAccounted'
            customer_id:
              type: integer
              description: ID [**zákazníka**](/api/zakaznici) jako protistrany.
              examples:
                - 785
            supplier_id:
              type: integer
              description: ID [**dodavatele**](/api/dodavatele) jako protistrany.
              examples:
                - 45
            invoice_id:
              type: integer
              description: |
                ID [**faktury vydané**](/api/faktury-vydane), kterou platba hradí.
              examples:
                - 13290
            creditnote_received_id:
              type: integer
              description: |
                ID [**opravného daňového dokladu přijatého**](/api/opravne-danove-doklady-prijate),
                který platba hradí *(od verze API 1.2)*.
              examples:
                - 13290
            cash_register_id:
              type: integer
              description: |
                ID pokladny, do které se platí. Používá se s `payment_type`
                nastaveným na `cash`. Pro odeslání do EET musí mít pokladna EET
                povolené.
              examples:
                - 115
            bank_account:
              type: integer
              description: |
                ID [**bankovního účtu**](/api/bankovni-ucty), na který se platí.
                Používá se s `payment_type` nastaveným na `transfer`; u hotovostní
                platby se neposílá.
              examples:
                - 456
            eet_status:
              x-mcp: false
              type: integer
              description: |
                ID už odeslané [**EET zprávy**](/api/eet-zpravy). Použije se pro
                platby evidované mimo iÚčto — záznam se s platbou automaticky
                propojí. Připojit ho lze jen k platbě s `eet` nastaveným na `true`
                *(od verze API 1.1)*.
              examples:
                - 12
          required:
            - date
            - payment_type
            - items
        - oneOf:
            - title: Protistranou je zákazník
              required:
                - customer_id
            - title: Protistranou je dodavatel
              required:
                - supplier_id
        - oneOf:
            - title: Platba na bankovní účet
              required:
                - bank_account
            - title: Platba do pokladny
              required:
                - cash_register_id
    BankTransactionDirection:
      title: BankTransactionDirection
      type: string
      description: |
        Směr pohybu na účtu — `in` příchozí platba, `out` odchozí platba.
      enum:
        - in
        - out
      examples:
        - in
    BankTransactionStatus:
      title: BankTransactionStatus
      type: string
      description: |
        Stav spárování pohybu s dokladem.

        | Hodnota | Význam |
        |---------|--------|
        | `notprocessed` | nezpracováno |
        | `unmatched` | nespárováno |
        | `matched` | spárováno |
        | `halfmatcheded` | částečně spárováno |
        | `accounted` | z pohybu vznikla platba |
      enum:
        - notprocessed
        - unmatched
        - matched
        - halfmatcheded
        - accounted
      examples:
        - matched
    BankTransactionListItem:
      title: BankTransactionListItem
      type: object
      description: Bankovní pohyb tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID pohybu.
          examples:
            - 7745
        status:
          allOf:
            - $ref: '#/components/schemas/BankTransactionStatus'
          readOnly: true
          description: Stav spárování pohybu s dokladem.
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Částka v CZK přepočtená kurzem k datu pohybu.
          examples:
            - 7845
        created:
          type: string
          format: date-time
          readOnly: true
          description: Datum a čas importu záznamu do systému.
          examples:
            - '2017-01-24T10:15:30+01:00'
        payment_type:
          allOf:
            - $ref: '#/components/schemas/BankTransactionDirection'
          description: |
            Směr platby. Na směru závisí, čím je protistrana a jak se zachází
            s účetními parametry — viz popis zdroje.
        price:
          type: number
          format: double
          description: Částka pohybu v měně pohybu.
          examples:
            - 7845
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna pohybu.
        date_payment:
          type: string
          format: date
          description: Datum platby.
          examples:
            - '2017-01-24'
        item_type:
          type: string
          description: Popisek typu položky, jak ho uvádí banka.
          examples:
            - Příchozí platba
        variable_symbol:
          type: string
          maxLength: 30
          description: |
            Variabilní symbol. Spolu s `bank_account` je podmínkou automatického
            spárování s dokladem.
          examples:
            - '432324'
        constant_symbol:
          type: string
          maxLength: 10
          description: Konstantní symbol.
          examples:
            - C223
        specific_symbol:
          type: string
          maxLength: 10
          description: Specifický symbol.
          examples:
            - M4324
        bank_account_contraparty:
          type: string
          maxLength: 34
          description: Číslo bankovního účtu protistrany.
          examples:
            - 19-123457/0710
        amount_original:
          type: number
          format: double
          description: Částka v původní měně pohybu *(od verze API 1.2)*.
          examples:
            - 1076
        currency_original:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Původní měna pohybu *(od verze API 1.2)*.
        description_tome:
          type: string
          description: Zpráva pro mě. *(v seznamu od API 1.3)*
          examples:
            - Platba za fakturu 20190005
        description_toyou:
          type: string
          description: Zpráva pro příjemce. *(v seznamu od API 1.3)*
          examples:
            - Úhrada zálohy
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        counterparty:
          description: |
            Protistrana pohybu — u příchozího pohybu
            [**zákazník**](/api/zakaznici), u odchozího
            [**dodavatel**](/api/dodavatele).
          anyOf:
            - $ref: '#/components/schemas/CustomerDetail'
            - $ref: '#/components/schemas/SupplierDetail'
      required:
        - id
        - status
        - price_czk
        - created
        - payment_type
        - price
        - currency
    BankTransactionCollection:
      title: BankTransactionCollection
      description: Stránkovaný seznam bankovních pohybů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                bank_transaction:
                  type: array
                  description: Pole bankovních pohybů.
                  items:
                    $ref: '#/components/schemas/BankTransactionListItem'
    BankTransactionParams:
      title: BankTransactionParams
      type: object
      description: |
        Tělo požadavku pro import nebo editaci bankovního pohybu.

        **Není to tvar detailu.** `bank_account` se posílá jako ID účtu,
        `counterparty` jako ID zákazníka nebo dodavatele podle směru pohybu;
        v odpovědi jsou to objekty. Dopočtené `price_czk`, `status` a `created`
        se neposílají.

        Zaúčtování jde zadat dvěma způsoby a nedají se míchat: buď přes
        `account_entry_type`, nebo dvojicí `chart_account` + `vat_chart`.
      properties:
        payment_type:
          allOf:
            - $ref: '#/components/schemas/BankTransactionDirection'
          description: |
            Směr platby. Na směru závisí, čím je protistrana a jak se zachází
            s účetními parametry — viz popis zdroje.
        price:
          type: number
          format: double
          description: Částka pohybu v měně pohybu.
          examples:
            - 7845
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna pohybu.
        date_payment:
          type: string
          format: date
          description: Datum platby.
          examples:
            - '2017-01-24'
        item_type:
          type: string
          description: Popisek typu položky, jak ho uvádí banka.
          examples:
            - Příchozí platba
        variable_symbol:
          type: string
          maxLength: 30
          description: |
            Variabilní symbol. Spolu s `bank_account` je podmínkou automatického
            spárování s dokladem.
          examples:
            - '432324'
        constant_symbol:
          type: string
          maxLength: 10
          description: Konstantní symbol.
          examples:
            - C223
        specific_symbol:
          type: string
          maxLength: 10
          description: Specifický symbol.
          examples:
            - M4324
        bank_account_contraparty:
          type: string
          maxLength: 34
          description: Číslo bankovního účtu protistrany.
          examples:
            - 19-123457/0710
        amount_original:
          type: number
          format: double
          description: Částka v původní měně pohybu *(od verze API 1.2)*.
          examples:
            - 1076
        currency_original:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Původní měna pohybu *(od verze API 1.2)*.
        description_tome:
          type: string
          description: Zpráva pro mě. *(v seznamu od API 1.3)*
          examples:
            - Platba za fakturu 20190005
        description_toyou:
          type: string
          description: Zpráva pro příjemce. *(v seznamu od API 1.3)*
          examples:
            - Úhrada zálohy
        variable_symbol2:
          type: string
          maxLength: 30
          description: Druhý variabilní symbol pohybu.
          examples:
            - '432325'
        reference_number:
          type: string
          maxLength: 100
          description: Vlastní identifikátor pohybu.
          examples:
            - REF-2017-0042
        vat_type:
          type: integer
          description: ID [**typu DPH**](/api/typy-dph).
          examples:
            - 467
        account_entry_type:
          type: integer
          description: ID [**typu účetní položky**](/api/polozky-typy-uc-polozek).
          examples:
            - 687
        chart_account:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy).
          examples:
            - 46
        vat_chart:
          type: integer
          description: ID [**účtu DPH**](/api/ucty-dph).
          examples:
            - 52
        bank_account:
          type: integer
          description: |
            ID [**bankovního účtu**](/api/bankovni-ucty), na kterém pohyb vznikl.
          examples:
            - 544
        counterparty:
          type: integer
          description: |
            ID protistrany — u příchozího pohybu [**zákazníka**](/api/zakaznici),
            u odchozího [**dodavatele**](/api/dodavatele).
          examples:
            - 42
      required:
        - payment_type
        - price
        - currency
        - date_payment
        - bank_account
    BankTransactionDetail:
      title: BankTransactionDetail
      type: object
      description: Detail bankovního pohybu včetně spárovaných dokladů.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID pohybu.
          examples:
            - 7745
        status:
          allOf:
            - $ref: '#/components/schemas/BankTransactionStatus'
          readOnly: true
          description: Stav spárování pohybu s dokladem.
        price_czk:
          type: number
          format: double
          readOnly: true
          description: Částka v CZK přepočtená kurzem k datu pohybu.
          examples:
            - 7845
        created:
          type: string
          format: date-time
          readOnly: true
          description: Datum a čas importu záznamu do systému.
          examples:
            - '2017-01-24T10:15:30+01:00'
        payment_type:
          allOf:
            - $ref: '#/components/schemas/BankTransactionDirection'
          description: |
            Směr platby. Na směru závisí, čím je protistrana a jak se zachází
            s účetními parametry — viz popis zdroje.
        price:
          type: number
          format: double
          description: Částka pohybu v měně pohybu.
          examples:
            - 7845
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna pohybu.
        date_payment:
          type: string
          format: date
          description: Datum platby.
          examples:
            - '2017-01-24'
        item_type:
          type: string
          description: Popisek typu položky, jak ho uvádí banka.
          examples:
            - Příchozí platba
        variable_symbol:
          type: string
          maxLength: 30
          description: |
            Variabilní symbol. Spolu s `bank_account` je podmínkou automatického
            spárování s dokladem.
          examples:
            - '432324'
        constant_symbol:
          type: string
          maxLength: 10
          description: Konstantní symbol.
          examples:
            - C223
        specific_symbol:
          type: string
          maxLength: 10
          description: Specifický symbol.
          examples:
            - M4324
        bank_account_contraparty:
          type: string
          maxLength: 34
          description: Číslo bankovního účtu protistrany.
          examples:
            - 19-123457/0710
        amount_original:
          type: number
          format: double
          description: Částka v původní měně pohybu *(od verze API 1.2)*.
          examples:
            - 1076
        currency_original:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Původní měna pohybu *(od verze API 1.2)*.
        description_tome:
          type: string
          description: Zpráva pro mě. *(v seznamu od API 1.3)*
          examples:
            - Platba za fakturu 20190005
        description_toyou:
          type: string
          description: Zpráva pro příjemce. *(v seznamu od API 1.3)*
          examples:
            - Úhrada zálohy
        variable_symbol2:
          type: string
          maxLength: 30
          description: Druhý variabilní symbol pohybu.
          examples:
            - '432325'
        reference_number:
          type: string
          maxLength: 100
          description: Vlastní identifikátor pohybu.
          examples:
            - REF-2017-0042
        vat_type:
          type: integer
          description: ID [**typu DPH**](/api/typy-dph).
          examples:
            - 467
        account_entry_type:
          type: integer
          description: ID [**typu účetní položky**](/api/polozky-typy-uc-polozek).
          examples:
            - 687
        chart_account:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy).
          examples:
            - 46
        vat_chart:
          type: integer
          description: ID [**účtu DPH**](/api/ucty-dph).
          examples:
            - 52
        bank_account:
          $ref: '#/components/schemas/BankAccountDetail'
        counterparty:
          description: |
            Protistrana pohybu — u příchozího pohybu
            [**zákazník**](/api/zakaznici), u odchozího
            [**dodavatel**](/api/dodavatele).
          anyOf:
            - $ref: '#/components/schemas/CustomerDetail'
            - $ref: '#/components/schemas/SupplierDetail'
        linked_docs:
          type: array
          readOnly: true
          description: |
            Doklady spárované s pohybem — detaily plateb, faktur a opravných
            daňových dokladů. Typy dokladů, které API nepokrývá, se vynechávají.
          items:
            type: object
      required:
        - id
        - status
        - price_czk
        - created
        - payment_type
        - price
        - currency
    BankTransactionAccountResult:
      title: BankTransactionAccountResult
      type: array
      description: |
        Platby, které z pohybu vznikly.
      items:
        type: object
        description: Zkrácený náhled vytvořené platby.
        properties:
          _links:
            $ref: '#/components/schemas/SelfLink'
          id:
            type: integer
            description: |
              ID vytvořené [**platby vydané**](/api/platby-vydane) nebo
              [**platby přijaté**](/api/platby-prijate).
            examples:
              - 123
          sequence_code:
            type: string
            maxLength: 45
            description: Číslo dokladu platby.
            examples:
              - PP20190001
          invoice_id:
            type:
              - integer
              - 'null'
            description: ID faktury, kterou platba hradí.
            examples:
              - 13290
          customer_id:
            type:
              - integer
              - 'null'
            description: ID [**zákazníka**](/api/zakaznici) jako protistrany.
            examples:
              - 785
          supplier_id:
            type:
              - integer
              - 'null'
            description: ID [**dodavatele**](/api/dodavatele) jako protistrany.
            examples:
              - null
          variable_symbol:
            type: string
            maxLength: 10
            description: Variabilní symbol platby.
            examples:
              - '20190001'
          date:
            type: string
            format: date
            description: Datum vystavení platby.
            examples:
              - '2019-07-12'
          currency:
            allOf:
              - $ref: '#/components/schemas/CurrencyCode'
            description: Měna platby.
          price:
            type: number
            format: double
            description: Částka bez DPH v měně platby.
            examples:
              - 50
          price_czk:
            type: number
            format: double
            description: Částka bez DPH v CZK.
            examples:
              - 50
          price_inc_vat:
            type: number
            format: double
            description: Částka celkem včetně DPH v měně platby.
            examples:
              - 50
          price_inc_vat_czk:
            type: number
            format: double
            description: Částka celkem včetně DPH v CZK.
            examples:
              - 50
          payment_type:
            type: string
            enum:
              - transfer
              - cash
            description: Způsob úhrady platby.
            examples:
              - transfer
          bank_account:
            type:
              - integer
              - 'null'
            description: ID [**bankovního účtu**](/api/bankovni-ucty) platby.
            examples:
              - 456
          rounding_type:
            allOf:
              - $ref: '#/components/schemas/RoundingType'
            description: Způsob zaokrouhlení částek na platbě.
          deleted:
            type: boolean
            description: Platba je smazaná.
            examples:
              - false
    JournalEntryListItem:
      title: JournalEntryListItem
      type: object
      description: Položka účetního deníku tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          description: ID položky účetního deníku.
          examples:
            - 123
        document_type:
          type: string
          description: |
            Kód [typu dokladu](/datove-typy#typy-dokladu), ze kterého položka vznikla.
          examples:
            - PP
        document_id:
          type: integer
          description: ID dokladu.
          examples:
            - 3423
        document_sequence_code:
          type: string
          description: Číslo dokladu.
          examples:
            - DOC20190001
        parent_document_type:
          type: string
          description: |
            Kód [typu dokladu](/datove-typy#typy-dokladu), ke kterému se doklad váže —
            například faktura hrazená platbou.
          examples:
            - FV
        parent_document_id:
          type:
            - string
            - 'null'
          description: |
            ID rodičovského dokladu.
            V odpovědi je to **řetězec**, ne číslo.
          examples:
            - '3423'
        parent_document_sequence_code:
          type: string
          description: Číslo rodičovského dokladu.
          examples:
            - FV20190001
        date:
          type: string
          format: date
          description: Datum vystavení dokladu.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění.
          examples:
            - '2019-01-10'
        date_expense:
          type: string
          format: date
          description: Datum nákladu.
          examples:
            - '2019-07-12'
        chartaccount_md:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně MD.
          examples:
            - 11
        chartaccount_dal:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně DAL.
          examples:
            - 81
        text:
          type: string
          description: Text položky.
          examples:
            - some text
        price:
          type: number
          format: double
          description: Zaúčtovaná částka.
          examples:
            - 50
        vat_type_id:
          type: integer
          description: ID [**typu DPH**](/api/typy-dph).
          examples:
            - 467
        vat:
          type: integer
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 0
        department_id:
          type:
            - string
            - 'null'
          description: |
            ID [**střediska**](/api/strediska).
            V odpovědi je to **řetězec**, ne číslo.
          examples:
            - '32'
        contract_id:
          type:
            - string
            - 'null'
          description: |
            ID [**zakázky**](/api/zakazky).
            V odpovědi je to **řetězec**, ne číslo.
          examples:
            - '343'
        document_variable_symbol:
          type: string
          description: Variabilní symbol dokladu.
          examples:
            - '20203399'
        document_maturity_date:
          type: string
          format: date
          description: Datum splatnosti dokladu.
          examples:
            - '2019-08-12'
        item_variable_symbol:
          type: string
          description: Variabilní symbol položky.
          examples:
            - VS323234
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        customer:
          $ref: '#/components/schemas/CustomerDetail'
      required:
        - id
        - document_type
        - document_id
        - document_sequence_code
        - date
        - date_vat
        - date_expense
        - chartaccount_md
        - chartaccount_dal
        - text
        - price
        - vat_type_id
        - vat
        - document_maturity_date
    JournalEntryCollection:
      title: JournalEntryCollection
      description: Stránkovaný seznam položek účetního deníku.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                journal:
                  type: array
                  description: Pole položek účetního deníku.
                  items:
                    $ref: '#/components/schemas/JournalEntryListItem'
    JournalEntryDetail:
      title: JournalEntryDetail
      type: object
      description: Detail položky účetního deníku.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          description: ID položky účetního deníku.
          examples:
            - 123
        document_type:
          type: string
          description: |
            Kód [typu dokladu](/datove-typy#typy-dokladu), ze kterého položka vznikla.
          examples:
            - PP
        document_id:
          type: integer
          description: ID dokladu.
          examples:
            - 3423
        document_sequence_code:
          type: string
          description: Číslo dokladu.
          examples:
            - DOC20190001
        parent_document_type:
          type: string
          description: |
            Kód [typu dokladu](/datove-typy#typy-dokladu), ke kterému se doklad váže —
            například faktura hrazená platbou.
          examples:
            - FV
        parent_document_id:
          type:
            - string
            - 'null'
          description: |
            ID rodičovského dokladu.
            V odpovědi je to **řetězec**, ne číslo.
          examples:
            - '3423'
        parent_document_sequence_code:
          type: string
          description: Číslo rodičovského dokladu.
          examples:
            - FV20190001
        date:
          type: string
          format: date
          description: Datum vystavení dokladu.
          examples:
            - '2019-07-12'
        date_vat:
          type: string
          format: date
          description: Datum zdanitelného plnění.
          examples:
            - '2019-01-10'
        date_expense:
          type: string
          format: date
          description: Datum nákladu.
          examples:
            - '2019-07-12'
        chartaccount_md:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně MD.
          examples:
            - 11
        chartaccount_dal:
          type: integer
          description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně DAL.
          examples:
            - 81
        text:
          type: string
          description: Text položky.
          examples:
            - some text
        price:
          type: number
          format: double
          description: Zaúčtovaná částka.
          examples:
            - 50
        vat_type_id:
          type: integer
          description: ID [**typu DPH**](/api/typy-dph).
          examples:
            - 467
        vat:
          type: integer
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 0
        department_id:
          type:
            - string
            - 'null'
          description: |
            ID [**střediska**](/api/strediska).
            V odpovědi je to **řetězec**, ne číslo.
          examples:
            - '32'
        contract_id:
          type:
            - string
            - 'null'
          description: |
            ID [**zakázky**](/api/zakazky).
            V odpovědi je to **řetězec**, ne číslo.
          examples:
            - '343'
        document_variable_symbol:
          type: string
          description: Variabilní symbol dokladu.
          examples:
            - '20203399'
        document_maturity_date:
          type: string
          format: date
          description: Datum splatnosti dokladu.
          examples:
            - '2019-08-12'
        item_variable_symbol:
          type: string
          description: Variabilní symbol položky.
          examples:
            - VS323234
        supplier:
          $ref: '#/components/schemas/SupplierDetail'
        customer:
          $ref: '#/components/schemas/CustomerDetail'
        figure:
          type: string
          enum:
            - vat
            - vat_base
            - full
          description: |
            Typ zaúčtované částky — `vat` samotná daň, `vat_base` základ daně,
            `full` celá částka.
          examples:
            - vat_base
      required:
        - id
        - document_type
        - document_id
        - document_sequence_code
        - date
        - date_vat
        - date_expense
        - chartaccount_md
        - chartaccount_dal
        - text
        - price
        - vat_type_id
        - vat
        - document_maturity_date
        - figure
    DirectAccountingListItem:
      title: DirectAccountingListItem
      type: object
      description: Doklad přímého zaúčtování tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID dokladu.
          examples:
            - 123
        amount:
          type: number
          format: double
          readOnly: true
          description: Částka celkem v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - FP20190001
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
      required:
        - amount
        - date
        - currency
    DirectAccountingCollection:
      title: DirectAccountingCollection
      description: Stránkovaný seznam dokladů přímého zaúčtování.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                direct_accounting:
                  type: array
                  description: Pole dokladů přímého zaúčtování.
                  items:
                    $ref: '#/components/schemas/DirectAccountingListItem'
    DirectAccountingParams:
      title: DirectAccountingParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci dokladu přímého zaúčtování.

        Pole jen pro čtení (`id`, `deleted`, `amount`, `amount_czk` a `price_czk`
        na položkách) server ignoruje. Protistrana se na položce posílá jako ID
        (`customer_id`, `supplier_id`), v odpovědi je to objekt.
      properties:
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - FP20190001
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        description_internal:
          type: string
          description: Interní poznámka, netiskne se.
          examples:
            - Interní popis
        items:
          type: array
          description: Položky dokladu. Doklad musí mít alespoň jednu.
          items:
            type: object
            description: |
              Položka dokladu při zápisu. Protistrana je nejvýš jedna — buď
              `customer_id`, nebo `supplier_id`.
            properties:
              text:
                type: string
                maxLength: 255
                description: Popis položky.
                examples:
                  - Položka A
              price:
                type: number
                format: double
                description: Částka položky v měně dokladu.
                examples:
                  - 50
              department_id:
                type:
                  - integer
                  - 'null'
                description: ID [**střediska**](/api/strediska).
                examples:
                  - 1
              contract_id:
                type:
                  - integer
                  - 'null'
                description: ID [**zakázky**](/api/zakazky).
                examples:
                  - 1
              chartaccount_md:
                type: integer
                description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně MD.
                examples:
                  - 3
              chartaccount_dal:
                type: integer
                description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně DAL.
                examples:
                  - 3
              da_code:
                type:
                  - string
                  - 'null'
                description: Párovací znak položky.
                examples:
                  - FV4332434
              customer_id:
                type:
                  - integer
                  - 'null'
                description: ID [**zákazníka**](/api/zakaznici) jako protistrany položky.
                examples:
                  - 785
              supplier_id:
                type:
                  - integer
                  - 'null'
                description: ID [**dodavatele**](/api/dodavatele) jako protistrany položky.
                examples:
                  - 45
            required:
              - text
              - price
              - chartaccount_md
              - chartaccount_dal
      required:
        - date
        - currency
        - items
    DirectAccountingDetail:
      title: DirectAccountingDetail
      type: object
      description: Detail dokladu přímého zaúčtování.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID dokladu.
          examples:
            - 123
        amount:
          type: number
          format: double
          readOnly: true
          description: Částka celkem v měně dokladu.
          examples:
            - 50
        deleted:
          type: boolean
          readOnly: true
          description: Doklad je smazaný.
          examples:
            - false
        sequence_code:
          type: string
          maxLength: 45
          description: |
            Číslo dokladu. Když se nevyplní, přidělí ho číselná řada nastavená
            ve firmě.
          examples:
            - FP20190001
        date:
          type: string
          format: date
          description: Datum vystavení. Musí spadat do otevřeného účetního období.
          examples:
            - '2019-07-12'
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna dokladu.
        amount_czk:
          type: number
          format: double
          readOnly: true
          description: Částka celkem v CZK.
          examples:
            - 150
        description:
          type: string
          description: Poznámka na dokladu.
          examples:
            - Popis
        description_internal:
          type: string
          description: Interní poznámka, netiskne se.
          examples:
            - Interní popis
        items:
          type: array
          description: Položky dokladu.
          items:
            type: object
            description: Položka dokladu v odpovědi.
            properties:
              id:
                type: integer
                readOnly: true
                description: ID položky.
                examples:
                  - 123456
              text:
                type: string
                maxLength: 255
                description: Popis položky.
                examples:
                  - Položka A
              price:
                type: number
                format: double
                description: Částka položky v měně dokladu.
                examples:
                  - 50
              department_id:
                type:
                  - string
                  - 'null'
                description: ID [**střediska**](/api/strediska).
                examples:
                  - '411'
              contract_id:
                type:
                  - string
                  - 'null'
                description: ID [**zakázky**](/api/zakazky).
                examples:
                  - '1'
              chartaccount_md:
                type: integer
                description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně MD.
                examples:
                  - 3
              chartaccount_dal:
                type: integer
                description: ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy) na straně DAL.
                examples:
                  - 3
              da_code:
                type:
                  - string
                  - 'null'
                description: Párovací znak položky.
                examples:
                  - FV4332434
              price_czk:
                type: number
                format: double
                readOnly: true
                description: Částka položky v CZK.
                examples:
                  - 150
              customer:
                $ref: '#/components/schemas/CustomerDetail'
              supplier:
                $ref: '#/components/schemas/SupplierDetail'
            required:
              - text
              - price
              - price_czk
              - chartaccount_md
              - chartaccount_dal
      required:
        - amount
        - amount_czk
        - date
        - currency
        - items
    VatRateList:
      title: VatRateList
      type: array
      description: |
        Sazby DPH v procentech platné k zadanému datu.

        Pozor na dva různé tvary: pro ČR (bez parametru `country`) jsou to
        **čísla** seřazená sestupně, pro země EU **řetězce se dvěma desetinnými
        místy** seřazené vzestupně. Před použitím hodnotu převeďte na číslo a na
        pořadí se nespoléhejte.
      items:
        type:
          - number
          - string
        description: Sazba DPH v procentech.
      examples:
        - - 21
          - 12
          - 0
        - - '0.00'
          - '7.00'
          - '19.00'
    AccountEntryTypeList:
      title: AccountEntryTypeList
      type: object
      description: |
        Mapa ID typu účetní položky na jeho český název. Které typy se vrátí,
        závisí na parametru `doctype` a na účetní osnově firmy.

        Výpis je kompletní, ukázka níže je zkrácená.
      additionalProperties:
        type: string
        description: Název typu účetní položky.
      examples:
        - '3': Prodej zboží
          '7': Prodej služby
          '12': Úhrada faktury vydané
          '31': Úrok
          '38': Zaokrouhlení
    VatTypeList:
      title: VatTypeList
      type: object
      description: |
        Mapa ID typu DPH na jeho český název. Které typy se vrátí, závisí na
        parametrech `doctype` a `oss`.

        Výpis je kompletní, ukázka níže je zkrácená.
      additionalProperties:
        type: string
        description: Název typu DPH.
      examples:
        - '1': Zdanitelné plnění v ČR
          '3': Dodání zboží do EU
          '4': Poskytnutí služby do EU
          '12': Vývoz zboží mimo EU
          '20': Bez DPH
          '21': Přenesená daňová povinnost (odběratel)
    ChartAccountList:
      title: ChartAccountList
      type: object
      description: |
        Mapa ID účtu účetní osnovy na jeho označení ve tvaru `číslo - název`.
        Vrací se osnova nastavená u firmy.

        Výpis je kompletní, ukázka níže je zkrácená.
      additionalProperties:
        type: string
        description: Označení účtu ve tvaru `číslo - název`.
      examples:
        - '1': 602000 - Tržby z prodeje služeb
          '52': 211000 - Pokladna
          '54': 221000 - Bankovní účty
          '57': 311000 - Pohledávky z obchodních vztahů
          '64': 343000 - Daň z přidané hodnoty
          '140': 321000 - Závazky z obchodních vztahů
    VatChartList:
      title: VatChartList
      type: object
      description: |
        Mapa ID účtu DPH na jeho označení ve tvaru `číslo - název`.
        Vrací se účty nastavené u firmy.
      additionalProperties:
        type: string
        description: Označení účtu ve tvaru `číslo - název`.
      examples:
        - '281': 98006000 - Příjem DPH (vratka)
          '302': 96009000 - Platba DPH
    EetListItem:
      title: EetListItem
      type: object
      description: EET záznam tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID záznamu.
          examples:
            - 8421
        uuid_zpravy:
          type: string
          description: UUID zprávy.
          examples:
            - 90c454d6-059c-4bf3-b408-beab42e8bb5e
        pkp:
          type: string
          description: Podpisový kód poplatníka.
          examples:
            - awOqOqCmawUNvyDpjFIQGC2YSc/IvbEctZ12FBU6SQ53UshDQacacx62wUgeMyJ63bpyJ+a9Sl2fa+4deEQfIBmah3AB3FwIU+Uxa8A1prlRYmVY1UmcDHAf+62pyLbUmMBgmtj7GArv54aCgaaYJzwV9ZTjuTDel9YUXfB1OWwOsK6z8tblfoWcisTEMbS0QvPubHJFAbe9kHZQH+oU/8V2S8Nxpmen1YY9/ivYDf+97H05qaihLOdzmoqhlNWkfMYHHKI26aCqHuHW9qbffvdbuzwy39zoEXEZbeujVadkbPfptdfY5BnB8VcHSrw3aDsWEooTdPWVRZrXs8AFw==
        bkp:
          type: string
          description: Bezpečnostní kód poplatníka.
          examples:
            - a983e13d-c6c7ce4a-03198fec-8cc1292c-32134ae9
        fik:
          type: string
          description: Fiskální identifikační kód.
          examples:
            - f26e5172-077e-4aba-9f5c-d0181362a16b-ff
        status:
          type: string
          description: Stav zpracování zprávy.
          examples:
            - ok
        external:
          type: boolean
          description: Záznam vznikl mimo iÚčto.
          examples:
            - false
      required:
        - external
    EetCollection:
      title: EetCollection
      description: Stránkovaný seznam EET záznamů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                eet_status:
                  type: array
                  description: Pole EET záznamů.
                  items:
                    $ref: '#/components/schemas/EetListItem'
    EetRecordParams:
      title: EetRecordParams
      type: object
      description: |
        Tělo požadavku pro zápis EET zprávy, kterou už odeslala aplikace třetí
        strany. Přijímaná pole jsou shodná s těmi, která se odesílají do EET,
        včetně návratových kódů.
      properties:
        uuid_zpravy:
          type: string
          maxLength: 36
          description: UUID zprávy. Musí být v rámci firmy unikátní.
          examples:
            - 90c454d6-059c-4bf3-b408-beab42e8bb5e
        dat_odesl:
          type: string
          maxLength: 25
          description: Datum a čas odeslání zprávy.
          examples:
            - '1487924615'
        prvni_zaslani:
          type: boolean
          description: Jde o první zaslání zprávy, ne o opakování.
          examples:
            - true
        overeni:
          type: boolean
          description: Zpráva byla odeslána v ověřovacím režimu.
          examples:
            - false
        dic_popl:
          type: string
          maxLength: 12
          description: DIČ poplatníka.
          examples:
            - CZ00000019
        dic_poverujiciho:
          type:
            - string
            - 'null'
          maxLength: 12
          description: DIČ pověřujícího poplatníka.
          examples:
            - null
        id_provoz:
          type: integer
          description: ID [**provozovny**](/api/business-premises) v evidenci EET.
          examples:
            - 1
        id_pokl:
          type: string
          maxLength: 25
          description: Označení pokladního zařízení.
          examples:
            - 1093_def
        porad_cis:
          type: string
          maxLength: 25
          description: Pořadové číslo účtenky.
          examples:
            - 1_def_86166
        dat_trzby:
          type: string
          maxLength: 25
          description: Datum a čas tržby.
          examples:
            - '2017-02-24T09:23:35+01:00'
        rezim:
          type: integer
          description: Režim tržby — `0` běžný, `1` zjednodušený.
          examples:
            - 0
        celk_trzba:
          type: number
          format: double
          description: Celková částka tržby.
          examples:
            - 19
        zakl_nepodl_dph:
          type: number
          format: double
          description: Základ, který nepodléhá DPH.
          examples:
            - 0
        zakl_dan1:
          type: number
          format: double
          description: Základ daně v základní sazbě.
          examples:
            - 0
        dan1:
          type: number
          format: double
          description: Daň v základní sazbě.
          examples:
            - 0
        zakl_dan2:
          type: number
          format: double
          description: Základ daně v první snížené sazbě.
          examples:
            - 0
        dan2:
          type: number
          format: double
          description: Daň v první snížené sazbě.
          examples:
            - 0
        zakl_dan3:
          type: number
          format: double
          description: Základ daně v druhé snížené sazbě.
          examples:
            - 0
        dan3:
          type: number
          format: double
          description: Daň v druhé snížené sazbě.
          examples:
            - 0
        cest_sluz:
          type: number
          format: double
          description: Částka v režimu pro cestovní službu.
          examples:
            - 0
        pouzit_zboz1:
          type: number
          format: double
          description: Částka v režimu pro použité zboží, základní sazba.
          examples:
            - 0
        pouzit_zboz2:
          type: number
          format: double
          description: Částka v režimu pro použité zboží, první snížená sazba.
          examples:
            - 0
        pouzit_zboz3:
          type: number
          format: double
          description: Částka v režimu pro použité zboží, druhá snížená sazba.
          examples:
            - 0
        urceno_cerp_zuct:
          type: number
          format: double
          description: Částka určená k následnému čerpání nebo zúčtování.
          examples:
            - 0
        cerp_zuct:
          type: number
          format: double
          description: Částka následného čerpání nebo zúčtování.
          examples:
            - 0
        pkp:
          type: string
          maxLength: 344
          description: Podpisový kód poplatníka.
          examples:
            - aLeoljmrsete8CI107u3bPlXY1aho/0dWTRfEjV6hPd6/MzNw3vYuMhPgBVHkzVmpyoNHJd9dr4FkYi36Fa+SGgkgVfvanWhHYjpO3/Dmn1c0nTe3lAJ9oURQJqjxxbWmMsEWGhFzR/GGgphTNbysNVEho35DR74tIEYeUZz+ZaUR5jBicCZi079K4dhc+PdYhQHWlQh7J6Nn39bKOCCe18eVZrlKKTG8rpyyK7ZMBzQjMSZGCGAgt1tS+5rOmjHFS0TB4LhPz6F25lnBRVbJTFLF3dBdKhqjV6gGhw6dLcloi5ydY/RuCaPqhjecekwk+rnkDGotA4DMfeyavKHug==
        bkp:
          type: string
          maxLength: 44
          description: Bezpečnostní kód poplatníka.
          examples:
            - f5da6cd5-3b49c4f4-7d9ded56-5827b3be-332c0c97
        fik:
          type: string
          maxLength: 39
          description: Fiskální identifikační kód přidělený finanční správou.
          examples:
            - 5d2e5e79-59b3-49f9-bb59-566072a7aaf1-f4
        dat_prij:
          type:
            - string
            - 'null'
          maxLength: 25
          description: Datum a čas přijetí zprávy finanční správou.
          examples:
            - null
        test:
          type:
            - string
            - 'null'
          maxLength: 5
          description: Zpráva byla odeslána do testovacího prostředí.
          examples:
            - null
        kod_varov:
          type:
            - string
            - 'null'
          description: Kód varování vráceného finanční správou.
          examples:
            - null
        Varovani:
          type:
            - string
            - 'null'
          maxLength: 255
          description: |
            Text varování vráceného finanční správou. Velké písmeno na začátku je
            záměrné — pole se tak jmenuje v odpovědi.
          examples:
            - null
        status:
          type: string
          description: Stav zpracování zprávy.
          examples:
            - ok
        external:
          type: boolean
          description: Záznam vznikl mimo iÚčto, aplikací třetí strany.
          examples:
            - true
      required:
        - uuid_zpravy
        - dat_odesl
        - prvni_zaslani
        - id_provoz
        - id_pokl
        - porad_cis
        - dat_trzby
        - celk_trzba
        - rezim
        - pkp
        - bkp
        - fik
    EetRecordDetail:
      title: EetRecordDetail
      type: object
      description: Kompletní EET záznam.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID EET záznamu.
          examples:
            - 22
        uuid_zpravy:
          type: string
          maxLength: 36
          description: UUID zprávy. Musí být v rámci firmy unikátní.
          examples:
            - 90c454d6-059c-4bf3-b408-beab42e8bb5e
        dat_odesl:
          type: string
          maxLength: 25
          description: Datum a čas odeslání zprávy.
          examples:
            - '1487924615'
        prvni_zaslani:
          type: boolean
          description: Jde o první zaslání zprávy, ne o opakování.
          examples:
            - true
        overeni:
          type: boolean
          description: Zpráva byla odeslána v ověřovacím režimu.
          examples:
            - false
        dic_popl:
          type: string
          maxLength: 12
          description: DIČ poplatníka.
          examples:
            - CZ00000019
        dic_poverujiciho:
          type:
            - string
            - 'null'
          maxLength: 12
          description: DIČ pověřujícího poplatníka.
          examples:
            - null
        id_provoz:
          type: integer
          description: ID [**provozovny**](/api/business-premises) v evidenci EET.
          examples:
            - 1
        id_pokl:
          type: string
          maxLength: 25
          description: Označení pokladního zařízení.
          examples:
            - 1093_def
        porad_cis:
          type: string
          maxLength: 25
          description: Pořadové číslo účtenky.
          examples:
            - 1_def_86166
        dat_trzby:
          type: string
          maxLength: 25
          description: Datum a čas tržby.
          examples:
            - '2017-02-24T09:23:35+01:00'
        rezim:
          type: integer
          description: Režim tržby — `0` běžný, `1` zjednodušený.
          examples:
            - 0
        celk_trzba:
          type: number
          format: double
          description: Celková částka tržby.
          examples:
            - 19
        zakl_nepodl_dph:
          type: number
          format: double
          description: Základ, který nepodléhá DPH.
          examples:
            - 0
        zakl_dan1:
          type: number
          format: double
          description: Základ daně v základní sazbě.
          examples:
            - 0
        dan1:
          type: number
          format: double
          description: Daň v základní sazbě.
          examples:
            - 0
        zakl_dan2:
          type: number
          format: double
          description: Základ daně v první snížené sazbě.
          examples:
            - 0
        dan2:
          type: number
          format: double
          description: Daň v první snížené sazbě.
          examples:
            - 0
        zakl_dan3:
          type: number
          format: double
          description: Základ daně v druhé snížené sazbě.
          examples:
            - 0
        dan3:
          type: number
          format: double
          description: Daň v druhé snížené sazbě.
          examples:
            - 0
        cest_sluz:
          type: number
          format: double
          description: Částka v režimu pro cestovní službu.
          examples:
            - 0
        pouzit_zboz1:
          type: number
          format: double
          description: Částka v režimu pro použité zboží, základní sazba.
          examples:
            - 0
        pouzit_zboz2:
          type: number
          format: double
          description: Částka v režimu pro použité zboží, první snížená sazba.
          examples:
            - 0
        pouzit_zboz3:
          type: number
          format: double
          description: Částka v režimu pro použité zboží, druhá snížená sazba.
          examples:
            - 0
        urceno_cerp_zuct:
          type: number
          format: double
          description: Částka určená k následnému čerpání nebo zúčtování.
          examples:
            - 0
        cerp_zuct:
          type: number
          format: double
          description: Částka následného čerpání nebo zúčtování.
          examples:
            - 0
        pkp:
          type: string
          maxLength: 344
          description: Podpisový kód poplatníka.
          examples:
            - aLeoljmrsete8CI107u3bPlXY1aho/0dWTRfEjV6hPd6/MzNw3vYuMhPgBVHkzVmpyoNHJd9dr4FkYi36Fa+SGgkgVfvanWhHYjpO3/Dmn1c0nTe3lAJ9oURQJqjxxbWmMsEWGhFzR/GGgphTNbysNVEho35DR74tIEYeUZz+ZaUR5jBicCZi079K4dhc+PdYhQHWlQh7J6Nn39bKOCCe18eVZrlKKTG8rpyyK7ZMBzQjMSZGCGAgt1tS+5rOmjHFS0TB4LhPz6F25lnBRVbJTFLF3dBdKhqjV6gGhw6dLcloi5ydY/RuCaPqhjecekwk+rnkDGotA4DMfeyavKHug==
        bkp:
          type: string
          maxLength: 44
          description: Bezpečnostní kód poplatníka.
          examples:
            - f5da6cd5-3b49c4f4-7d9ded56-5827b3be-332c0c97
        fik:
          type: string
          maxLength: 39
          description: Fiskální identifikační kód přidělený finanční správou.
          examples:
            - 5d2e5e79-59b3-49f9-bb59-566072a7aaf1-f4
        dat_prij:
          type:
            - string
            - 'null'
          maxLength: 25
          description: Datum a čas přijetí zprávy finanční správou.
          examples:
            - null
        test:
          type:
            - string
            - 'null'
          maxLength: 5
          description: Zpráva byla odeslána do testovacího prostředí.
          examples:
            - null
        kod_varov:
          type:
            - string
            - 'null'
          description: Kód varování vráceného finanční správou.
          examples:
            - null
        Varovani:
          type:
            - string
            - 'null'
          maxLength: 255
          description: |
            Text varování vráceného finanční správou. Velké písmeno na začátku je
            záměrné — pole se tak jmenuje v odpovědi.
          examples:
            - null
        status:
          type: string
          description: Stav zpracování zprávy.
          examples:
            - ok
        external:
          type: boolean
          description: Záznam vznikl mimo iÚčto, aplikací třetí strany.
          examples:
            - true
      required:
        - id
        - uuid_zpravy
        - pkp
        - bkp
        - external
    PriceListListItem:
      title: PriceListListItem
      type: object
      description: Položka ceníku tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID položky ceníku.
          examples:
            - 123
        name:
          type: string
          maxLength: 255
          description: Název položky.
          examples:
            - SOME NAME
        amount:
          type: number
          format: double
          description: Výchozí množství, které se předvyplní na položce dokladu.
          examples:
            - 1
        unit:
          type: string
          maxLength: 10
          description: Měrná jednotka.
          examples:
            - ks
        bar_code:
          type: string
          maxLength: 200
          description: Čárový kód položky. Musí být v rámci ceníku unikátní.
          examples:
            - BARCODE123
        price:
          type: number
          format: double
          description: Jednotková cena položky.
          examples:
            - 50
        is_vat_price:
          type: boolean
          description: Cena je uvedená včetně DPH.
          examples:
            - false
        vat_rate:
          type: number
          format: double
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna, ve které je uvedená cena.
        external_code:
          type: string
          maxLength: 200
          description: Externí číslo položky v navazujícím systému.
          examples:
            - '20140001'
        is_hidden:
          type: boolean
          description: Položka se nenabízí v seznamech.
          examples:
            - false
        is_stock:
          type: boolean
          description: |
            Položka se eviduje na skladě. Takové položce lze založit
            [**skladovou kartu**](/api/inventory).
          examples:
            - false
      required:
        - id
        - name
        - price
    PriceListCollection:
      title: PriceListCollection
      description: Stránkovaný seznam položek ceníku.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                price_list:
                  type: array
                  description: Pole položek ceníku.
                  items:
                    $ref: '#/components/schemas/PriceListListItem'
    PriceListParams:
      title: PriceListParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci položky ceníku.
        Pole `id` je jen pro čtení a server ho ignoruje.
      properties:
        name:
          type: string
          maxLength: 255
          description: Název položky.
          examples:
            - SOME NAME
        amount:
          type: number
          format: double
          description: Výchozí množství, které se předvyplní na položce dokladu.
          examples:
            - 1
        unit:
          type: string
          maxLength: 10
          description: Měrná jednotka.
          examples:
            - ks
        bar_code:
          type: string
          maxLength: 200
          description: Čárový kód položky. Musí být v rámci ceníku unikátní.
          examples:
            - BARCODE123
        price:
          type: number
          format: double
          description: Jednotková cena položky.
          examples:
            - 50
        is_vat_price:
          type: boolean
          description: Cena je uvedená včetně DPH.
          examples:
            - false
        vat_rate:
          type: number
          format: double
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna, ve které je uvedená cena.
        external_code:
          type: string
          maxLength: 200
          description: Externí číslo položky v navazujícím systému.
          examples:
            - '20140001'
        is_hidden:
          type: boolean
          description: Položka se nenabízí v seznamech.
          examples:
            - false
        is_stock:
          type: boolean
          description: |
            Položka se eviduje na skladě. Takové položce lze založit
            [**skladovou kartu**](/api/inventory).
          examples:
            - false
        description:
          type: string
          maxLength: 350
          description: Poznámka k položce.
          examples:
            - Popis
        accountentry_type_id:
          type:
            - integer
            - 'null'
          description: ID [**typu účetní položky**](/api/polozky-typy-uc-polozek).
          examples:
            - null
        vattype_id:
          type:
            - integer
            - 'null'
          description: ID [**typu DPH**](/api/typy-dph).
          examples:
            - null
        chart_account_id:
          type:
            - integer
            - 'null'
          description: |
            ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy). Účet účetní osnovy
            a účet DPH se zadávají **buď oba, nebo ani jeden** — jinak zápis
            skončí chybou.
          examples:
            - 46
        vat_chart_id:
          type:
            - integer
            - 'null'
          description: ID [**účtu DPH**](/api/ucty-dph).
          examples:
            - 52
        department_id:
          type:
            - integer
            - 'null'
          description: ID [**střediska**](/api/strediska).
          examples:
            - 0
        contract_id:
          type:
            - integer
            - 'null'
          description: ID [**zakázky**](/api/zakazky).
          examples:
            - 0
      required:
        - name
        - price
    PriceListDetail:
      title: PriceListDetail
      type: object
      description: Detail položky ceníku.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID položky ceníku.
          examples:
            - 123
        name:
          type: string
          maxLength: 255
          description: Název položky.
          examples:
            - SOME NAME
        amount:
          type: number
          format: double
          description: Výchozí množství, které se předvyplní na položce dokladu.
          examples:
            - 1
        unit:
          type: string
          maxLength: 10
          description: Měrná jednotka.
          examples:
            - ks
        bar_code:
          type: string
          maxLength: 200
          description: Čárový kód položky. Musí být v rámci ceníku unikátní.
          examples:
            - BARCODE123
        price:
          type: number
          format: double
          description: Jednotková cena položky.
          examples:
            - 50
        is_vat_price:
          type: boolean
          description: Cena je uvedená včetně DPH.
          examples:
            - false
        vat_rate:
          type: number
          format: double
          description: |
            Sazba DPH v procentech. Platné sazby vrací
            [**Sazby DPH**](/api/sazba-dph).
          examples:
            - 21
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCode'
          description: Měna, ve které je uvedená cena.
        external_code:
          type: string
          maxLength: 200
          description: Externí číslo položky v navazujícím systému.
          examples:
            - '20140001'
        is_hidden:
          type: boolean
          description: Položka se nenabízí v seznamech.
          examples:
            - false
        is_stock:
          type: boolean
          description: |
            Položka se eviduje na skladě. Takové položce lze založit
            [**skladovou kartu**](/api/inventory).
          examples:
            - false
        description:
          type: string
          maxLength: 350
          description: Poznámka k položce.
          examples:
            - Popis
        accountentry_type_id:
          type:
            - integer
            - 'null'
          description: ID [**typu účetní položky**](/api/polozky-typy-uc-polozek).
          examples:
            - null
        vattype_id:
          type:
            - integer
            - 'null'
          description: ID [**typu DPH**](/api/typy-dph).
          examples:
            - null
        chart_account_id:
          type:
            - integer
            - 'null'
          description: |
            ID [**účtu účetní osnovy**](/api/ucty-uc-osnovy). Účet účetní osnovy
            a účet DPH se zadávají **buď oba, nebo ani jeden** — jinak zápis
            skončí chybou.
          examples:
            - 46
        vat_chart_id:
          type:
            - integer
            - 'null'
          description: ID [**účtu DPH**](/api/ucty-dph).
          examples:
            - 52
        department_id:
          type:
            - integer
            - 'null'
          description: ID [**střediska**](/api/strediska).
          examples:
            - 0
        contract_id:
          type:
            - integer
            - 'null'
          description: ID [**zakázky**](/api/zakazky).
          examples:
            - 0
      required:
        - id
        - name
        - price
    WarehouseListItem:
      title: WarehouseListItem
      type: object
      description: Sklad tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID skladu.
          examples:
            - 123
        name:
          type: string
          maxLength: 100
          description: Název skladu.
          examples:
            - SOME NAME
        description:
          type: string
          maxLength: 350
          description: Poznámka ke skladu.
          examples:
            - Popis
        is_default:
          type: boolean
          description: Sklad je nastavený jako výchozí.
          examples:
            - false
      required:
        - id
        - name
    WarehouseCollection:
      title: WarehouseCollection
      description: Stránkovaný seznam skladů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                warehouse:
                  type: array
                  description: Pole skladů.
                  items:
                    $ref: '#/components/schemas/WarehouseListItem'
    WarehouseParams:
      title: WarehouseParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci skladu.
        Pole `id` je jen pro čtení a server ho ignoruje.
      properties:
        name:
          type: string
          maxLength: 100
          description: Název skladu.
          examples:
            - SOME NAME
        description:
          type: string
          maxLength: 350
          description: Poznámka ke skladu.
          examples:
            - Popis
        is_default:
          type: boolean
          description: Sklad je nastavený jako výchozí.
          examples:
            - false
      required:
        - name
    WarehouseDetail:
      title: WarehouseDetail
      type: object
      description: Detail skladu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID skladu.
          examples:
            - 123
        name:
          type: string
          maxLength: 100
          description: Název skladu.
          examples:
            - SOME NAME
        description:
          type: string
          maxLength: 350
          description: Poznámka ke skladu.
          examples:
            - Popis
        is_default:
          type: boolean
          description: Sklad je nastavený jako výchozí.
          examples:
            - false
      required:
        - id
        - name
    InventoryListItem:
      title: InventoryListItem
      type: object
      description: Skladová karta tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID skladové karty.
          examples:
            - 123
        balance:
          type: number
          format: double
          readOnly: true
          description: Aktuální množství na kartě.
          examples:
            - 0
        is_deleted:
          type: boolean
          readOnly: true
          description: Karta je smazaná.
          examples:
            - false
        date_last_movement:
          type: string
          format: date
          readOnly: true
          description: Datum posledního [**skladového pohybu**](/api/stock-movement) na kartě.
          examples:
            - '2017-01-24'
        product_id:
          type: integer
          description: ID [**položky ceníku**](/api/price-list), které se karta týká.
          examples:
            - 23
        warehouse_id:
          type: integer
          description: ID [**skladu**](/api/warehouse), na kterém je karta vedená.
          examples:
            - 23
        initial_balance:
          type: number
          format: double
          description: Počáteční množství na kartě.
          examples:
            - 0
        minimal_balance:
          type: number
          format: double
          description: Minimální množství, pod které nemá zásoba klesnout.
          examples:
            - 0
        location:
          type: string
          maxLength: 255
          description: Umístění zboží ve skladu.
          examples:
            - SOME LOCATION
      required:
        - id
        - product_id
        - warehouse_id
        - balance
    InventoryCollection:
      title: InventoryCollection
      description: Stránkovaný seznam skladových karet.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                inventory:
                  type: array
                  description: Pole skladových karet.
                  items:
                    $ref: '#/components/schemas/InventoryListItem'
    InventoryParams:
      title: InventoryParams
      type: object
      description: |
        Tělo požadavku pro vytvoření nebo editaci skladové karty.
        Dvojice `product_id` + `warehouse_id` musí být unikátní — pro jednu
        položku ceníku existuje na jednom skladu nejvýš jedna karta.
        Dopočítaná pole (`balance`, `is_deleted`, `date_last_movement`)
        server ignoruje.
      properties:
        product_id:
          type: integer
          description: ID [**položky ceníku**](/api/price-list), které se karta týká.
          examples:
            - 23
        warehouse_id:
          type: integer
          description: ID [**skladu**](/api/warehouse), na kterém je karta vedená.
          examples:
            - 23
        initial_balance:
          type: number
          format: double
          description: Počáteční množství na kartě.
          examples:
            - 0
        minimal_balance:
          type: number
          format: double
          description: Minimální množství, pod které nemá zásoba klesnout.
          examples:
            - 0
        location:
          type: string
          maxLength: 255
          description: Umístění zboží ve skladu.
          examples:
            - SOME LOCATION
      required:
        - product_id
        - warehouse_id
    InventoryDetail:
      title: InventoryDetail
      type: object
      description: Detail skladové karty.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID skladové karty.
          examples:
            - 123
        balance:
          type: number
          format: double
          readOnly: true
          description: Aktuální množství na kartě.
          examples:
            - 0
        is_deleted:
          type: boolean
          readOnly: true
          description: Karta je smazaná.
          examples:
            - false
        date_last_movement:
          type: string
          format: date
          readOnly: true
          description: Datum posledního [**skladového pohybu**](/api/stock-movement) na kartě.
          examples:
            - '2017-01-24'
        product_id:
          type: integer
          description: ID [**položky ceníku**](/api/price-list), které se karta týká.
          examples:
            - 23
        warehouse_id:
          type: integer
          description: ID [**skladu**](/api/warehouse), na kterém je karta vedená.
          examples:
            - 23
        initial_balance:
          type: number
          format: double
          description: Počáteční množství na kartě.
          examples:
            - 0
        minimal_balance:
          type: number
          format: double
          description: Minimální množství, pod které nemá zásoba klesnout.
          examples:
            - 0
        location:
          type: string
          maxLength: 255
          description: Umístění zboží ve skladu.
          examples:
            - SOME LOCATION
      required:
        - id
        - product_id
        - warehouse_id
        - balance
    StockMovementListItem:
      title: StockMovementListItem
      type: object
      description: Skladový pohyb tak, jak vypadá v seznamu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID pohybu.
          examples:
            - 123
        product_id:
          type: integer
          description: ID [**položky ceníku**](/api/price-list), které se pohyb týká.
          examples:
            - 23
        warehouse_id:
          type: integer
          description: ID [**skladu**](/api/warehouse), na kterém pohyb vzniká.
          examples:
            - 23
        note:
          type: string
          maxLength: 255
          description: Poznámka k pohybu.
          examples:
            - Some note
        date:
          type: string
          format: date
          description: Datum pohybu.
          examples:
            - '2017-01-24'
        identification:
          type: string
          maxLength: 100
          description: Identifikace systému, který pohyb vytvořil.
          examples:
            - SOMEIDENTITY
        amount:
          type: number
          format: double
          description: Změna množství na skladě. Záporné číslo množství odečítá.
          examples:
            - -6
      required:
        - id
        - product_id
        - warehouse_id
        - identification
        - amount
    StockMovementCollection:
      title: StockMovementCollection
      description: Stránkovaný seznam skladových pohybů.
      allOf:
        - $ref: '#/components/schemas/Collection'
        - type: object
          properties:
            _embedded:
              type: object
              properties:
                stock_movement:
                  type: array
                  description: Pole skladových pohybů.
                  items:
                    $ref: '#/components/schemas/StockMovementListItem'
    StockMovementParams:
      title: StockMovementParams
      description: |
        Tělo požadavku pro vytvoření skladového pohybu.

        Množství se zadává právě jedním ze dvou polí — buď `amount`
        (inkrementálně: přičte nebo odečte zadané množství), nebo `real_amount`
        (absolutně: dorovná stav na zadanou hodnotu). Když nepřijde ani jedno,
        nebo přijdou obě, požadavek skončí chybou.
      allOf:
        - type: object
          properties:
            product_id:
              type: integer
              description: ID [**položky ceníku**](/api/price-list), které se pohyb týká.
              examples:
                - 23
            warehouse_id:
              type: integer
              description: ID [**skladu**](/api/warehouse), na kterém pohyb vzniká.
              examples:
                - 23
            note:
              type: string
              maxLength: 255
              description: Poznámka k pohybu.
              examples:
                - Some note
            date:
              type: string
              format: date
              description: Datum pohybu.
              examples:
                - '2017-01-24'
            identification:
              type: string
              maxLength: 100
              description: Identifikace systému, který pohyb vytvořil.
              examples:
                - SOMEIDENTITY
            amount:
              type: number
              format: double
              description: |
                Změna množství na skladě. Záporné číslo množství odečítá.

                V odpovědi je to vždy skutečně provedená změna — u absolutního
                pohybu tedy rozdíl mezi novým a původním stavem.
              examples:
                - 15
            real_amount:
              type: number
              format: double
              writeOnly: true
              description: |
                Množství, na které se má stav skladové karty nastavit. Server sám
                dopočítá, o kolik se musí přiskladnit nebo odepsat.
              examples:
                - 100
          required:
            - product_id
            - warehouse_id
            - identification
        - oneOf:
            - title: Inkrementální pohyb
              required:
                - amount
            - title: Absolutní pohyb
              required:
                - real_amount
    StockMovementDetail:
      title: StockMovementDetail
      type: object
      description: Detail skladového pohybu.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID pohybu.
          examples:
            - 123
        product_id:
          type: integer
          description: ID [**položky ceníku**](/api/price-list), které se pohyb týká.
          examples:
            - 23
        warehouse_id:
          type: integer
          description: ID [**skladu**](/api/warehouse), na kterém pohyb vzniká.
          examples:
            - 23
        note:
          type: string
          maxLength: 255
          description: Poznámka k pohybu.
          examples:
            - Some note
        date:
          type: string
          format: date
          description: Datum pohybu.
          examples:
            - '2017-01-24'
        identification:
          type: string
          maxLength: 100
          description: Identifikace systému, který pohyb vytvořil.
          examples:
            - SOMEIDENTITY
        amount:
          type: number
          format: double
          description: Změna množství na skladě. Záporné číslo množství odečítá.
          examples:
            - 15
      required:
        - id
        - product_id
        - warehouse_id
        - identification
        - amount
    AttachmentListItem:
      title: AttachmentListItem
      type: object
      description: Příloha tak, jak vypadá v seznamu příloh dokladu nebo kontaktu.
      properties:
        id:
          type: integer
          readOnly: true
          description: ID přílohy.
          examples:
            - 123
        original_name:
          type: string
          maxLength: 256
          readOnly: true
          description: Původní název souboru včetně přípony.
          examples:
            - faktura.pdf
        size:
          type: integer
          readOnly: true
          description: Velikost souboru v bajtech.
          examples:
            - 284512
        created:
          type: string
          readOnly: true
          description: Datum a čas nahrání přílohy ve tvaru `YYYY-MM-DD HH:MM:SS`.
          examples:
            - '2026-04-18 10:23:54'
      required:
        - id
        - original_name
        - size
        - created
    AttachmentList:
      title: AttachmentList
      type: array
      description: |
        Přílohy dokladu nebo kontaktu seřazené od nejnovější. Doklad bez příloh
        vrací prázdné pole. Není to stránkovaná HAL kolekce — odpovědí je holé
        pole objektů.
      items:
        $ref: '#/components/schemas/AttachmentListItem'
    AttachmentUploaded:
      title: AttachmentUploaded
      description: Metadata právě nahrané přílohy.
      allOf:
        - $ref: '#/components/schemas/AttachmentListItem'
        - type: object
          properties:
            mime_type:
              type: string
              readOnly: true
              description: MIME typ, se kterým byl soubor nahrán.
              examples:
                - application/pdf
          required:
            - mime_type
    AttachmentDetail:
      title: AttachmentDetail
      type: object
      description: |
        Detail přílohy. Proti položce seznamu přibývá `_links` a chybí `created` —
        endpoint `/attachment/{id}` datum nahrání nevrací.
      properties:
        _links:
          $ref: '#/components/schemas/SelfLink'
        id:
          type: integer
          readOnly: true
          description: ID přílohy.
          examples:
            - 123
        original_name:
          type: string
          maxLength: 256
          readOnly: true
          description: Původní název souboru včetně přípony.
          examples:
            - faktura.pdf
        size:
          type: integer
          readOnly: true
          description: Velikost souboru v bajtech.
          examples:
            - 284512
      required:
        - id
        - original_name
        - size
    WebhookUpdatePayload:
      title: WebhookUpdatePayload
      description: |
        Tělo, které iÚčto pošle při vytvoření, editaci nebo smazání dokladu.
        Vedle `action` a `timestamp` nese vždy právě jeden klíč pojmenovaný podle
        typu dokladu; v něm je ID záznamu.
      allOf:
        - type: object
          properties:
            action:
              type: string
              description: |
                Co se s dokladem stalo — `created` vytvoření, `edited` editace,
                `deleted` smazání. Pro každou akci se v aplikaci nastavuje
                vlastní URL, takže jedno volání nese vždy jen jednu z hodnot.
              enum:
                - created
                - edited
                - deleted
              examples:
                - created
            timestamp:
              type: string
              description: Čas události ve formátu ISO 8601.
              examples:
                - 2020-09-23T11:23:45+0200
          required:
            - action
            - timestamp
        - oneOf:
            - title: Faktura přijatá
              type: object
              properties:
                invoice_received:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - invoice_received
            - title: Faktura vydaná
              type: object
              properties:
                invoice_issued:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - invoice_issued
            - title: Zálohová faktura přijatá
              type: object
              properties:
                proforma_received:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - proforma_received
            - title: Zálohová faktura vydaná
              type: object
              properties:
                proforma_issued:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - proforma_issued
            - title: Opravný daňový doklad přijatý
              type: object
              properties:
                creditnote_received:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - creditnote_received
            - title: Opravný daňový doklad vydaný
              type: object
              properties:
                creditnote_issued:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - creditnote_issued
            - title: Objednávka vydaná
              type: object
              properties:
                order_issued:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - order_issued
            - title: Objednávka přijatá
              type: object
              properties:
                order_received:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - order_received
            - title: Platba přijatá
              type: object
              properties:
                payment_received:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - payment_received
            - title: Platba vydaná
              type: object
              properties:
                payment_issued:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - payment_issued
            - title: Interní předpis nákladu
              type: object
              properties:
                direct_expense:
                  type: object
                  description: Doklad, kterého se změna týká.
                  properties:
                    id:
                      type: integer
                      description: ID záznamu.
                      examples:
                        - 4567
                  required:
                    - id
              required:
                - direct_expense
    WebhookPaymentPayload:
      title: WebhookPaymentPayload
      description: |
        Tělo, které iÚčto pošle při úhradě dokladu. Nese dva klíče typu dokladu:
        jeden pro uhrazený doklad a jeden pro platbu, která ho uhradila.
      allOf:
        - type: object
          properties:
            action:
              type: string
              description: Typ události; u tohoto webhooku vždy `paid`.
              enum:
                - paid
              examples:
                - paid
          required:
            - action
        - oneOf:
            - title: Faktura přijatá
              type: object
              properties:
                invoice_received:
                  type: object
                  description: Doklad, který byl uhrazen.
                  properties:
                    id:
                      type: integer
                      description: ID dokladu.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna dokladu.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v měně dokladu.
                      examples:
                        - 100
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v CZK.
                      examples:
                        - 2650
                    to_be_paid:
                      type: number
                      format: double
                      description: Kolik z dokladu po této úhradě zbývá uhradit.
                      examples:
                        - 24.5
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
                    - to_be_paid
              required:
                - invoice_received
            - title: Faktura vydaná
              type: object
              properties:
                invoice_issued:
                  type: object
                  description: Doklad, který byl uhrazen.
                  properties:
                    id:
                      type: integer
                      description: ID dokladu.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna dokladu.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v měně dokladu.
                      examples:
                        - 100
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v CZK.
                      examples:
                        - 2650
                    to_be_paid:
                      type: number
                      format: double
                      description: Kolik z dokladu po této úhradě zbývá uhradit.
                      examples:
                        - 24.5
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
                    - to_be_paid
              required:
                - invoice_issued
            - title: Zálohová faktura přijatá
              type: object
              properties:
                proforma_received:
                  type: object
                  description: Doklad, který byl uhrazen.
                  properties:
                    id:
                      type: integer
                      description: ID dokladu.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna dokladu.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v měně dokladu.
                      examples:
                        - 100
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v CZK.
                      examples:
                        - 2650
                    to_be_paid:
                      type: number
                      format: double
                      description: Kolik z dokladu po této úhradě zbývá uhradit.
                      examples:
                        - 24.5
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
                    - to_be_paid
              required:
                - proforma_received
            - title: Zálohová faktura vydaná
              type: object
              properties:
                proforma_issued:
                  type: object
                  description: Doklad, který byl uhrazen.
                  properties:
                    id:
                      type: integer
                      description: ID dokladu.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna dokladu.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v měně dokladu.
                      examples:
                        - 100
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v CZK.
                      examples:
                        - 2650
                    to_be_paid:
                      type: number
                      format: double
                      description: Kolik z dokladu po této úhradě zbývá uhradit.
                      examples:
                        - 24.5
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
                    - to_be_paid
              required:
                - proforma_issued
            - title: Opravný daňový doklad přijatý
              type: object
              properties:
                creditnote_received:
                  type: object
                  description: Doklad, který byl uhrazen.
                  properties:
                    id:
                      type: integer
                      description: ID dokladu.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna dokladu.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v měně dokladu.
                      examples:
                        - 100
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v CZK.
                      examples:
                        - 2650
                    to_be_paid:
                      type: number
                      format: double
                      description: Kolik z dokladu po této úhradě zbývá uhradit.
                      examples:
                        - 24.5
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
                    - to_be_paid
              required:
                - creditnote_received
            - title: Opravný daňový doklad vydaný
              type: object
              properties:
                creditnote_issued:
                  type: object
                  description: Doklad, který byl uhrazen.
                  properties:
                    id:
                      type: integer
                      description: ID dokladu.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna dokladu.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v měně dokladu.
                      examples:
                        - 100
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Cena celkem včetně DPH v CZK.
                      examples:
                        - 2650
                    to_be_paid:
                      type: number
                      format: double
                      description: Kolik z dokladu po této úhradě zbývá uhradit.
                      examples:
                        - 24.5
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
                    - to_be_paid
              required:
                - creditnote_issued
        - oneOf:
            - title: Uhrazeno platbou vydanou
              type: object
              properties:
                payment_issued:
                  type: object
                  description: Platba, která doklad uhradila.
                  properties:
                    id:
                      type: integer
                      description: ID platby.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna platby.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Částka platby včetně DPH v měně platby.
                      examples:
                        - 2000
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Částka platby včetně DPH v CZK.
                      examples:
                        - 2000
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
              required:
                - payment_issued
            - title: Uhrazeno platbou přijatou
              type: object
              properties:
                payment_received:
                  type: object
                  description: Platba, která doklad uhradila.
                  properties:
                    id:
                      type: integer
                      description: ID platby.
                      examples:
                        - 123
                    currency:
                      allOf:
                        - $ref: '#/components/schemas/CurrencyCode'
                      description: Měna platby.
                    price_inc_vat:
                      type: number
                      format: double
                      description: Částka platby včetně DPH v měně platby.
                      examples:
                        - 2000
                    price_inc_vat_czk:
                      type: number
                      format: double
                      description: Částka platby včetně DPH v CZK.
                      examples:
                        - 2000
                  required:
                    - id
                    - currency
                    - price_inc_vat
                    - price_inc_vat_czk
              required:
                - payment_received
  responses:
    Unauthorized:
      description: |
        Chybí hlavička `X-Auth-Key` nebo je API klíč neplatný.

        **Tělo je prázdné.**
    PaymentRequired:
      description: |
        Firma nemá k volání nárok kvůli tarifu — buď je vyčerpaná
        [kvóta dotazů](/limity#vycerpana-kvota), nebo zdroj patří k modulu, který
        firma nemá aktivovaný.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            kvota:
              summary: Vyčerpaná kvóta dotazů
              value: 'Překročen limit na počet dotazů v API, zkontrolujte aktivní tarif. Dnešní využití: 2001, za měsíc: 14320'
            tarif:
              summary: Zdroj není v tarifu
              value: Zdroj je dostupný pouze ve vyším tarifu.
            modul:
              summary: Nedostupný modul externí integrace
              value:
                error_code: TARIFF_MODULE_ACCESS_DENIED
                message: Modul není dostupný, firma nemá aktivní tarif zahrnující tento modul.
    BadRequest:
      description: |
        Požadavek je špatně sestavený nebo neprošel validací — chybí povinné pole,
        hodnota má špatný formát, tělo není platný JSON.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            validace:
              summary: Neprošla validace polí
              value:
                errors:
                  currency:
                    - Měna není platná.
                  items:
                    - Doklad musí mít alespoň jednu položku.
            pozadavek:
              summary: Vadný požadavek
              value: Neplatný JSON formát.
    NotFound:
      description: |
        Záznam se zadaným ID neexistuje.

        **Tělo je prázdné.** Výjimkou jsou [**přílohy**](/api/attachment), které
        404 popisují u sebe a hlášku v těle vracejí.
    Forbidden:
      description: |
        Uživatel nemá k operaci oprávnění, nebo ji nelze provést — účetní období
        či období DPH je uzavřené, doklad je vázaný na jiný záznam.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            uzavreneObdobi:
              summary: Uzavřené období
              value: Doklad je smazaný, nebo účetní období, či období DPH je uzavřeno.
            nelzeSmazat:
              summary: Záznam je vázaný na jiný
              value: Nelze smazat záznam.
  parameters:
    Page:
      name: page
      in: query
      required: false
      description: |
        Číslo stránky, od 1.

        Funguje jen v páru s `pageSize` — bez něj se `page` tiše ignoruje a vrátí
        se první stránka.
      schema:
        type: integer
        minimum: 1
        default: 1
        examples:
          - 1
    PageSize:
      name: pageSize
      in: query
      required: false
      description: |
        Počet záznamů na stránku. Maximum je 200.

        Funguje jen v páru s `page` — bez něj se `pageSize` tiše ignoruje a vrátí
        se výchozích 50 záznamů.
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 50
        examples:
          - 50
    Sort:
      name: sort
      in: query
      required: false
      description: |
        Řazení seznamu *(od verze API 1.3)*. Prefix `-` řadí sestupně.

        Jediné pole, podle kterého jde dnes řadit, je **`modified`** — datum
        poslední změny záznamu. Jiná hodnota skončí chybou *Neplatné pole
        pro řazení*.
      schema:
        type: string
        enum:
          - modified
          - -modified
        examples:
          - -modified
    DateFrom:
      name: date_from
      in: query
      required: false
      description: Datum vystavení od (včetně).
      schema:
        type: string
        format: date
        examples:
          - '2019-01-01'
    DateTo:
      name: date_to
      in: query
      required: false
      description: Datum vystavení do (včetně).
      schema:
        type: string
        format: date
        examples:
          - '2019-02-01'
    SequenceCode:
      name: sequence_code
      in: query
      required: false
      description: Číslo dokladu.
      schema:
        type: string
        examples:
          - FV20190005
    VariableSymbol:
      name: variable_symbol
      in: query
      required: false
      description: Variabilní symbol.
      schema:
        type: string
        examples:
          - '11112222'
    Currency:
      name: currency
      in: query
      required: false
      description: Měna dokladu, kód podle ISO 4217.
      schema:
        type: string
        examples:
          - CZK
    PriceFrom:
      name: price_from
      in: query
      required: false
      description: Cena celkem od (včetně).
      schema:
        type: number
        format: double
        examples:
          - 50
    PriceTo:
      name: price_to
      in: query
      required: false
      description: Cena celkem do (včetně).
      schema:
        type: number
        format: double
        examples:
          - 100
    FilterPriceByDocCurrency:
      name: filter_price_by_doc_currency
      in: query
      required: false
      description: |
        V jaké měně se rozumí `price_from` a `price_to`.
        `true` = hodnoty platí pro měnu dokladu, `false` nebo `null` = hodnoty
        jsou v CZK. Výchozí je `false`.
      schema:
        type: boolean
        default: false
        examples:
          - false
    Deleted:
      name: deleted
      in: query
      required: false
      description: Filtr na smazané doklady.
      schema:
        type: boolean
        examples:
          - false
    MaturityDateFrom:
      name: maturity_date_from
      in: query
      required: false
      description: Datum splatnosti od (včetně).
      schema:
        type: string
        format: date
        examples:
          - '2019-01-01'
    MaturityDateTo:
      name: maturity_date_to
      in: query
      required: false
      description: Datum splatnosti do (včetně).
      schema:
        type: string
        format: date
        examples:
          - '2019-02-01'
    Paid:
      name: paid
      in: query
      required: false
      description: Filtr na uhrazené doklady.
      schema:
        type: boolean
        examples:
          - true
    DateVatFrom:
      name: date_vat_from
      in: query
      required: false
      description: Datum zdanitelného plnění od (včetně).
      schema:
        type: string
        format: date
        examples:
          - '2019-01-01'
    DateVatTo:
      name: date_vat_to
      in: query
      required: false
      description: Datum zdanitelného plnění do (včetně).
      schema:
        type: string
        format: date
        examples:
          - '2019-02-01'
    Accounted:
      name: accounted
      in: query
      required: false
      description: Filtr na zaúčtované doklady.
      schema:
        type: boolean
        examples:
          - true
x-tagGroups:
  - name: Seznamy
    tags:
      - currency
      - metody-plateb
      - zaokrouhleni
  - name: Firma
    tags:
      - company-profile
      - bankovni-ucty
      - pokladny
      - strediska
      - zakazky
      - business-premises
      - document-state
  - name: Adresář
    tags:
      - zakaznici
      - customer-group
      - dodavatele
      - supplier-group
      - country
      - preferred-payment-method
  - name: Doklady vydané
    tags:
      - objednavky-prijate
      - zalohove-faktury-vydane
      - faktury-vydane
      - opravne-danove-doklady-vydane
  - name: Doklady přijaté
    tags:
      - document-scan
      - objednavky-vydane
      - zalohove-faktury-prijate
      - faktury-prijate
      - opravne-danove-doklady-prijate
      - interni-predpisy-nakladu
  - name: Platby
    tags:
      - platby-vydane
      - platby-prijate
      - bank-transaction
  - name: Účetnictví
    tags:
      - journal
      - direct-accounting
      - sazba-dph
      - polozky-typy-uc-polozek
      - typy-dph
      - ucty-uc-osnovy
      - ucty-dph
  - name: EET
    tags:
      - eet-zpravy
      - eet-status
  - name: Ceník a sklady
    tags:
      - price-list
      - warehouse
      - inventory
      - stock-movement
  - name: Přílohy
    tags:
      - attachment
      - attachment-detail
      - attachment-download
  - name: Webhooky
    tags:
      - webhook-update
      - webhook-payment
