> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fintoro.sk/llms.txt
> Use this file to discover all available pages before exploring further.

# Detail zálohovej faktúry

> Vráti detail zálohovej faktúry. Response obsahuje snapshot dodávateľa, historický snapshot klienta uložený priamo na doklade, naviazaný bankový účet použitý na doklade a aj zoznam `payments` patriacich k tejto zálohovej faktúre. Response zároveň vracia `webDokladUrl` pre verejný web doklad a `pdfDownloadUrl` pre priame stiahnutie PDF.



## OpenAPI

````yaml /openapi.yaml get /proformas/{proforma}
openapi: 3.1.0
info:
  title: Fintoro API v1
  version: 1.0.0
  description: >
    Fintoro API v1 je REST API pre integráciu Fintoro fakturácie, CRM a
    skladového systému do systémov tretích strán.


    Produkčné aj sandboxové firmy používajú rovnakú základnú URL
    `https://app.fintoro.sk/api/public/v1`. O tom, s ktorou firmou pracujete,
    rozhoduje bearer token.


    Voliteľný request header `Accept-Language` lokalizuje systémové názvy v
    lookupoch, v súvisiacich objektoch v odpovediach aj vo validačných chybách.
    Response header `Content-Language` vracia jazyk použitý v odpovedi.


    Pre onboarding a prevádzkové pravidlá si pozrite aj:

    - [Začíname](/getting-started)

    - [Autentifikácia](/authentication)

    - [Webhooky](/webhooks)

    - [Testovanie v sandboxe](/sandbox-testing)

    - [Konvencie API](/conventions)

    - [Chyby a idempotencia](/errors-and-idempotency)
servers:
  - url: https://app.fintoro.sk/api/public/v1
    description: Produkčné Fintoro API.
security:
  - bearerAuth: []
tags:
  - name: Identita tokenu
    description: >-
      Technický read-only endpoint na overenie, ku ktorej firme bearer token
      aktuálne patrí.
  - name: Lookupy
    description: >-
      Endpointy len na čítanie pre integračné dáta. Tieto endpointy vracajú
      číselníky so stabilnými ID, ktoré môžete bezpečne ukladať do cache na
      svojej strane. Pri doplnení nových lookup hodnôt sa existujúce ID nemenia
      ani neprepisujú.
  - name: Číselné rady
    description: >-
      Endpointy len na čítanie nad číselnými radmi. Vracia sa aktuálna
      konfigurácia použitá pri tvorbe dokladov vrátane ďalšieho vygenerovaného
      čísla a variabilného symbolu.
  - name: Subjekty
    description: Vyhľadanie a overenie údajov o subjekte ešte pred vytvorením klienta.
  - name: Klienti
    description: >-
      Správa klientov vrátane fakturačnej adresy, dodacej adresy a klientských
      predvolených hodnôt použiteľných pri tvorbe nových dokladov. Create,
      update a delete operácie môžu emitovať webhook eventy `clients.created`,
      `clients.updated` a `clients.deleted`.
  - name: Dodávatelia
    description: >-
      Správa dodávateľov vrátane fakturačnej adresy a identifikačných údajov
      použiteľných aj pri resolve-or-create flowe skladových príjemiek. Create,
      update a delete operácie môžu emitovať webhook eventy `suppliers.created`,
      `suppliers.updated` a `suppliers.deleted`.
  - name: Stavy obchodných prípadov
    description: >-
      Správa stavov obchodných prípadov. Stavy reprezentujú stĺpce pipeline.
      Endpoint na zmenu poradia v tejto verzii dostupný nie je; pri zmazaní
      stavu sa naviazané obchodné prípady odviažu na `null`. Create, update a
      delete operácie môžu emitovať webhook eventy
      `business-case-statuses.created`, `business-case-statuses.updated` a
      `business-case-statuses.deleted`.
  - name: Obchodné prípady
    description: >-
      Správa obchodných prípadov vrátane vnoreného klienta alebo dodávateľa a
      voliteľného stavu. Zmena poradia ani zmena naviazaného kontaktu cez update
      v tejto verzii dostupné nie sú. Create, update a delete operácie môžu
      emitovať webhook eventy `business-cases.created`, `business-cases.updated`
      a `business-cases.deleted`.
  - name: CRM udalosti
    description: >-
      Správa CRM udalostí pre typy `note`, `email`, `phone_call` a
      `document_linked`. Attachmenty používajú dvojkrokový upload cez samostatný
      endpoint. Create, update a delete operácie môžu emitovať webhook eventy
      `contact-activity-logs.created`, `contact-activity-logs.updated` a
      `contact-activity-logs.deleted`.
  - name: Bankové účty
    description: >-
      Správa bankových účtov vrátane údajov o banke, primárnom účte a stave open
      banking napojenia. Create, update a delete operácie môžu emitovať webhook
      eventy `bank-accounts.created`, `bank-accounts.updated` a
      `bank-accounts.deleted`.
  - name: Webhooky
    description: >-
      Správa odberov webhookov pre Fintoro API. Táto sekcia pokrýva CRUD
      operácie nad odbermi, manuálnu rotáciu secretu a payload kontrakt pre
      integrácie riadené udalosťami. Kontrakt doručenia, overenie podpisu, retry
      mechanizmus a podrobný katalóg eventov nájdete v [príručke
      Webhooky](/webhooks).
  - name: Sklady
    description: >-
      CRUD operácie nad skladmi vrátane inbound a outbound číselných radov.
      Create, update a delete operácie môžu emitovať webhook eventy
      `warehouses.created`, `warehouses.updated` a `warehouses.deleted`.
  - name: Skladové príjemky
    description: >-
      CRUD operácie nad skladovými príjemkami vrátane detailu skladu,
      dodávateľského snapshotu, položiek a `pdfDownloadUrl`. Create, update a
      delete operácie môžu emitovať webhook eventy
      `warehouse-inbound-receipts.created`, `warehouse-inbound-receipts.updated`
      a `warehouse-inbound-receipts.deleted`.
  - name: Skladové výdajky
    description: >-
      CRUD operácie nad skladovými výdajkami vrátane detailu skladu, klientského
      snapshotu, položiek a `pdfDownloadUrl`. Create a update flow používajú
      rovnakú stock availability validáciu ako web. Create, update a delete
      operácie môžu emitovať webhook eventy
      `warehouse-outbound-receipts.created`,
      `warehouse-outbound-receipts.updated` a
      `warehouse-outbound-receipts.deleted`.
  - name: Skladové a cenníkové položky
    description: >-
      CRUD operácie nad skladovými a cenníkovými položkami. Endpointy vracajú
      jednotku ako vnorený objekt, podporujú filtrovanie podľa názvu, EANu,
      skladového kódu, ceny a stavu skladu a používajú rovnaký business kontrakt
      ako administrácia Fintoro pre warehouse evidenciu, EAN a nákupné ceny.
      Create, update a delete operácie môžu emitovať webhook eventy
      `price-list-items.created`, `price-list-items.updated` a
      `price-list-items.deleted`. Zmeny skladového stavu vyvolané skladovými
      príjemkami a výdajkami môžu emitovať webhook event
      `price-list-items.stock-updated`.
  - name: Úhrady dokladov
    description: >-
      Evidencia úhrad pre podporované doklady. Táto sekcia pokrýva zoznam úhrad
      konkrétneho dokladu, vytvorenie novej úhrady, detail jednej úhrady a jej
      zmazanie. Podporované typy dokladov sú `invoice`, `proforma`,
      `credit-note`, `received-invoice` a `received-receipt`. Create a delete
      operácie môžu emitovať webhook eventy `document-payments.created` a
      `document-payments.deleted`. Ak nová úhrada spôsobí, že podporovaný doklad
      sa stane plne uhradeným, môže sa navyše vyemitovať aj zodpovedajúci
      `*.paid` event pre daný resource dokladu.
  - name: Dokladové e-maily
    description: >-
      Odosielanie podporovaných public dokumentov emailom. Endpoint používa
      jednotný kontrakt nad kombináciou `documentType` + `documentId`, validuje
      vlastníctvo dokladu a podporuje typy `invoice`, `proforma`, `order`,
      `credit-note` a `quotation`.
  - name: Faktúry
    description: >-
      CRUD operácie nad faktúrami. Create, update a delete operácie môžu
      emitovať webhook eventy `invoices.created`, `invoices.updated` a
      `invoices.deleted`. Keď sa faktúra po zaevidovaní úhrady stane plne
      uhradenou, môže sa vyemitovať aj `invoices.paid`.
  - name: Dobropisy
    description: >-
      CRUD operácie nad dobropismi. Kontrakt používa camelCase payloady, plný
      `PUT` update flow a explicitnú väzbu na pôvodnú faktúru cez `invoiceId`.
      Klient dobropisu sa vždy odvodzuje zo zvolenej zdrojovej faktúry;
      `clientId` nie je súčasťou request kontraktu a inline client resolution
      ani create flow sa tu nepoužívajú. Create, update a delete operácie môžu
      emitovať webhook eventy `credit-notes.created`, `credit-notes.updated` a
      `credit-notes.deleted`. Keď sa dobropis po zaevidovaní úhrady stane plne
      uhradeným, môže sa vyemitovať aj `credit-notes.paid`.
  - name: Zálohové faktúry
    description: >-
      CRUD operácie nad zálohovými faktúrami. Kontrakt je navrhnutý rovnakou
      filozofiou ako Fintoro API faktúry: camelCase payloady, deterministický
      resolve/create klienta, create-like defaulty a plný `PUT` update flow bez
      patch fallbacku na pôvodný stav dokladu. Create, update a delete operácie
      môžu emitovať webhook eventy `proformas.created`, `proformas.updated`,
      `proformas.deleted` a pri plnom uhradení po zaevidovaní úhrady aj
      `proformas.paid`.
  - name: Objednávky
    description: >-
      CRUD operácie nad objednávkami. Kontrakt používa camelCase payloady,
      deterministický resolve/create klienta, create-like defaulty a plný `PUT`
      update flow bez patch fallbacku na pôvodný stav dokladu. Create, update a
      delete operácie môžu emitovať webhook eventy `orders.created`,
      `orders.updated` a `orders.deleted`.
  - name: Cenové ponuky
    description: >-
      CRUD operácie nad cenovými ponukami. Kontrakt používa camelCase payloady,
      deterministický resolve/create klienta, create-like defaulty a plný `PUT`
      update flow bez patch fallbacku na pôvodný stav dokladu. Create, update a
      delete operácie môžu emitovať webhook eventy `quotations.created`,
      `quotations.updated` a `quotations.deleted`.
paths:
  /proformas/{proforma}:
    parameters:
      - $ref: '#/components/parameters/ProformaId'
    get:
      tags:
        - Zálohové faktúry
      summary: Detail zálohovej faktúry
      description: >-
        Vráti detail zálohovej faktúry. Response obsahuje snapshot dodávateľa,
        historický snapshot klienta uložený priamo na doklade, naviazaný bankový
        účet použitý na doklade a aj zoznam `payments` patriacich k tejto
        zálohovej faktúre. Response zároveň vracia `webDokladUrl` pre verejný
        web doklad a `pdfDownloadUrl` pre priame stiahnutie PDF.
      operationId: showProforma
      responses:
        '200':
          description: Detail zálohovej faktúry.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Proforma'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  parameters:
    ProformaId:
      name: proforma
      in: path
      required: true
      description: ID zálohovej faktúry.
      schema:
        type: integer
        example: 401
  headers:
    XRequestId:
      description: >-
        Unikátny identifikátor requestu pre traceovanie, audit a support
        diagnostiku.
      schema:
        type: string
        example: req_public_api_01
    ContentLanguage:
      description: Jazyk vybraný pre request podľa headera `Accept-Language`.
      schema:
        type: string
        example: en
  schemas:
    Proforma:
      description: Zálohová faktúra.
      type: object
      properties:
        id:
          type: integer
          example: 401
        uuid:
          type: string
          example: 6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19
        type:
          type: string
          example: proforma
        number:
          type: string
          example: '20260001'
        webDokladUrl:
          type: string
          format: uri
          description: Absolútna URL na verejný web doklad tejto zálohovej faktúry.
          example: >-
            https://app.fintoro.sk/web-doklad/proforma/4f3f8a95-5c4a-4c8b-9e6c-8a0c1a5df3a1
        pdfDownloadUrl:
          type: string
          format: uri
          description: >-
            Absolútna URL na Fintoro API endpoint, ktorý stiahne PDF tejto
            zálohovej faktúry ako prílohu.
          example: https://app.fintoro.sk/api/public/v1/proformas/401/pdf
        company:
          $ref: '#/components/schemas/CompanySnapshot'
          description: Snapshot dodávateľa uložený priamo na tomto doklade.
        clientId:
          description: Live ID klienta naviazaného na zálohovú faktúru.
          type: integer
          example: 101
        client:
          $ref: '#/components/schemas/ClientSnapshot'
          description: Historický snapshot klienta uložený priamo na tomto doklade.
        bankAccount:
          $ref: '#/components/schemas/InvoiceBankAccountReference'
          description: >-
            Bankový účet naviazaný na zálohovú faktúru ako živá väzba načítaná
            aj cez soft delete.
        payments:
          description: Úhrady naviazané na túto zálohovú faktúru v poradí od najnovšej.
          type: array
          items:
            $ref: '#/components/schemas/DocumentPayment'
        variableSymbol:
          type: integer
          example: 20260001
        constantSymbol:
          type:
            - integer
            - 'null'
          example: 308
        specificSymbol:
          type:
            - integer
            - 'null'
          example: 55
        issueDate:
          type: string
          format: date
          example: '2026-03-03'
        dueDate:
          type: string
          format: date
          example: '2026-03-17'
        businessCaseId:
          type:
            - integer
            - 'null'
          description: >-
            Voliteľné ID obchodného prípadu. Ak ho pošlete, musí patriť
            zvolenému klientovi na doklade.
          example: 701
        discountType:
          type:
            - string
            - 'null'
          example: percentage
        discountValue:
          type:
            - number
            - 'null'
          format: float
          example: 10
        transferTaxLiability:
          type: boolean
          example: false
        numericalSeriesId:
          type:
            - integer
            - 'null'
          example: 12
        deliveryMethodId:
          type: integer
          description: >-
            ID spôsobu dodania z [referenčnej tabuľky spôsobov
            dodania](/reference-tables#sposoby-dodania).
          example: 1
        paymentMethodId:
          type: integer
          description: >-
            ID spôsobu úhrady z [referenčnej tabuľky spôsobov
            úhrady](/reference-tables#sposoby-uhrady).
          example: 1
        currencyId:
          type: integer
          description: ID meny z [referenčnej tabuľky mien](/reference-tables#meny).
          example: 1
        languageId:
          type: integer
          description: ID jazyka z [referenčnej tabuľky jazykov](/reference-tables#jazyky).
          example: 1
        qrTypeId:
          type: integer
          description: >-
            ID QR typu z [referenčnej tabuľky QR
            typov](/reference-tables#qr-typy).
          example: 1
        note:
          type:
            - string
            - 'null'
          example: Ďakujeme za objednávku.
        textAboveItems:
          type:
            - string
            - 'null'
          example: Dakujeme za spoluprácu.
        itemsTotal:
          type: number
          format: float
          example: 200
        itemsTotalWithVat:
          type: number
          format: float
          example: 240
        alreadyPaid:
          type: number
          format: float
          example: 0
        total:
          type: number
          format: float
          example: 200
        totalWithVat:
          type: number
          format: float
          example: 240
        toBePaid:
          type: number
          format: float
          example: 240
        willBePaid:
          type: boolean
          example: true
        status:
          type: string
          enum:
            - paid
            - unpaid
            - partially_paid
            - overdue
            - will_not_be_paid
          example: unpaid
        hasVat:
          type: boolean
          example: true
        items:
          type: array
          items:
            $ref: '#/components/schemas/ProformaItem'
    CompanySnapshot:
      description: >-
        Snapshot dodávateľa uložený priamo na doklade. Tento objekt reprezentuje
        firemné údaje v čase vystavenia alebo posledného preuloženia dokladu,
        aby zostal na doklade zachovaný pôvodný názov, identifikačné údaje a
        adresa.
      type: object
      properties:
        name:
          description: Obchodné meno dodávateľa uložené na faktúre.
          type: string
          example: Fintoro s.r.o.
        subjectId:
          description: IČO dodávateľa uložené na faktúre.
          type: string
          example: '12345678'
        legalForm:
          description: Právna forma dodávateľa uložená na faktúre.
          type: string
          example: Spoločnosť s ručením obmedzeným
        taxId:
          description: DIČ dodávateľa uložené na faktúre, ak bolo k dispozícii.
          type:
            - string
            - 'null'
          example: '2020123456'
        vatId:
          description: IČ DPH dodávateľa uložené na faktúre, ak bolo k dispozícii.
          type:
            - string
            - 'null'
          example: SK2020123456
        vatPayerTypeId:
          description: Typ platcu DPH dodávateľa uložený na faktúre.
          type: integer
          example: 4
        country:
          description: Krajina dodávateľa uložená na faktúre ako textová hodnota.
          type: string
          example: Slovensko
        city:
          description: Mesto dodávateľa uložené na faktúre.
          type: string
          example: Bratislava
        street:
          description: Ulica a číslo dodávateľa uložené na faktúre.
          type: string
          example: Hlavná 1
        zip:
          description: PSČ dodávateľa uložené na faktúre.
          type:
            - string
            - 'null'
          example: '81101'
        registrationCourt:
          description: Registrový súd dodávateľa uložený na faktúre, ak bol k dispozícii.
          type:
            - string
            - 'null'
          example: Mestský súd Bratislava III
        registrationNumber:
          description: >-
            Registračné číslo dodávateľa uložené na faktúre, ak bolo k
            dispozícii.
          type:
            - string
            - 'null'
          example: 12345/B
        email:
          description: Kontaktný e-mail dodávateľa uložený na faktúre.
          type:
            - string
            - 'null'
          example: support@fintoro.sk
        phone:
          description: Kontaktný telefón dodávateľa uložený na faktúre.
          type:
            - string
            - 'null'
          example: '+421900000000'
        web:
          description: Web dodávateľa uložený na faktúre.
          type:
            - string
            - 'null'
          example: https://fintoro.sk
    ClientSnapshot:
      description: >-
        Historický snapshot klienta uložený priamo na doklade. Tento objekt
        reprezentuje stav klientskych údajov v čase vystavenia alebo posledného
        preuloženia dokladu. Ak si klient neskôr zmení názov alebo adresu,
        doklad si ponechá túto historickú hodnotu kvôli auditovateľnosti a
        perzistencii dát. Príklad: doklad vystavený na adresu `Hlavná 1,
        Bratislava` zostane historicky správny aj vtedy, keď má klient dnes v
        profile už inú adresu.
      type: object
      properties:
        name:
          description: >-
            Meno osoby alebo obchodné meno klienta uložené na faktúre v danom
            čase.
          type: string
          example: Acme s.r.o.
        type:
          description: Typ klienta uložený na faktúre.
          type: string
          example: company
        subjectId:
          type:
            - string
            - 'null'
          description: >-
            IČO klienta alebo firmy. Pre slovenské subjekty túto hodnotu viete
            typicky dohľadať aj cez [referenčný register
            subjektov](#operation/searchSubjects).
          example: '12345678'
        taxId:
          description: DIČ klienta uložené na faktúre, ak bolo k dispozícii.
          type:
            - string
            - 'null'
          example: '2020123456'
        vatId:
          description: IČ DPH klienta uložené na faktúre, ak bolo k dispozícii.
          type:
            - string
            - 'null'
          example: SK2020123456
        isVatPayer:
          description: >-
            Informácia, či bol klient v čase uloženia snapshotu vedený ako
            platca DPH.
          type: boolean
          example: true
        email:
          description: Kontaktný e-mail klienta uložený na faktúre.
          type:
            - string
            - 'null'
          example: billing@acme.test
        street:
          description: Ulica a číslo fakturačnej adresy uložené na faktúre.
          type:
            - string
            - 'null'
          example: Hlavná 1
        city:
          description: Mesto fakturačnej adresy uložené na faktúre.
          type:
            - string
            - 'null'
          example: Bratislava
        zip:
          description: PSČ fakturačnej adresy uložené na faktúre.
          type:
            - string
            - 'null'
          example: '81101'
        countryId:
          description: >-
            ID krajiny z [referenčnej tabuľky
            krajín](/reference-tables#krajiny).
          type:
            - integer
            - 'null'
          example: 703
        country:
          description: Fakturačná krajina uložená na faktúre ako vnorený objekt.
          anyOf:
            - $ref: '#/components/schemas/Country'
            - type: 'null'
        hasDeliveryAddress:
          description: Informácia, či snapshot obsahuje samostatnú dodaciu adresu.
          type: boolean
          example: true
        deliveryStreet:
          description: Ulica a číslo dodacej adresy uložené na faktúre.
          type:
            - string
            - 'null'
          example: Skladová 9
        deliveryCity:
          description: Mesto dodacej adresy uložené na faktúre.
          type:
            - string
            - 'null'
          example: Košice
        deliveryZip:
          description: PSČ dodacej adresy uložené na faktúre.
          type:
            - string
            - 'null'
          example: '04001'
        deliveryCountryId:
          description: >-
            ID krajiny z [referenčnej tabuľky
            krajín](/reference-tables#krajiny).
          type:
            - integer
            - 'null'
          example: 703
        deliveryCountry:
          description: Dodacia krajina uložená na faktúre ako vnorený objekt.
          anyOf:
            - $ref: '#/components/schemas/Country'
            - type: 'null'
    InvoiceBankAccountReference:
      description: >-
        Bankový účet naviazaný na faktúru ako živá väzba. Faktúra tento účet
        načítava aj cez soft delete, takže detail zostane dostupný aj po jeho
        zmazaní z aktívneho zoznamu účtov.
      type: object
      properties:
        id:
          description: Interné ID bankového účtu vo Fintoro.
          type: integer
          example: 201
        bankId:
          description: >-
            ID banky z [lookup endpointu bánk](#operation/listBanks), ak je účet
            naviazaný na známu banku.
          type:
            - integer
            - 'null'
          example: 1
        bank:
          description: Vnorený objekt banky priradenej k účtu, ak je známa.
          anyOf:
            - $ref: '#/components/schemas/Bank'
            - type: 'null'
        name:
          description: Názov bankového účtu v aktuálnom stave databázy.
          type: string
          example: Hlavný účet
        iban:
          description: IBAN naviazaného bankového účtu.
          type: string
          example: SK3111000000001234567890
        swift:
          description: SWIFT alebo BIC kód naviazaného bankového účtu.
          type: string
          example: TATRSKBX
        isPrimary:
          description: Informácia, či je účet aktuálne vedený ako primárny účet firmy.
          type: boolean
          example: true
        autoPaymentMatching:
          description: >-
            Informácia, či je účet aktuálne napojený na automatické párovanie
            platieb cez open banking.
          type: boolean
          example: true
    DocumentPayment:
      description: Jedna úhrada public dokladu.
      type: object
      properties:
        id:
          description: Interné ID úhrady.
          type: integer
          example: 801
        documentType:
          description: Typ dokladu, ku ktorému úhrada patrí.
          type: string
          enum:
            - invoice
            - proforma
            - credit-note
          example: invoice
        documentId:
          description: ID dokladu, ku ktorému úhrada patrí.
          type: integer
          example: 301
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
          description: Použitý spôsob úhrady ako vnorený lookup objekt.
        currency:
          $ref: '#/components/schemas/Currency'
          description: Mena úhrady ako vnorený lookup objekt.
        paymentDate:
          description: Dátum úhrady vo formáte `Y-m-d`.
          type: string
          format: date
          example: '2026-03-07'
        amount:
          description: Suma úhrady v mene úhrady.
          type: number
          format: float
          example: 15.5
        currencyRate:
          description: >-
            Kurz meny úhrady voči EUR. Ak je mena úhrady `EUR`, backend vždy
            vráti `1.0`.
          type: number
          format: float
          example: 1
        receiptInvoice:
          description: Preview daňového dokladu k prijatej platbe, ak existuje.
          anyOf:
            - $ref: '#/components/schemas/InvoicePreview'
            - type: 'null'
    ProformaItem:
      description: Jedna položka zálohovej faktúry.
      type: object
      properties:
        id:
          type: integer
          example: 1
        name:
          type: string
          example: Konzultácia
        description:
          type:
            - string
            - 'null'
          example: Mesačný balík konzultácií
        unitPrice:
          type: number
          format: float
          example: 100
        unitId:
          description: >-
            ID jednotky z [referenčnej tabuľky
            jednotiek](/reference-tables#jednotky).
          type: integer
          example: 1
        quantity:
          type: number
          format: float
          example: 2
        vatRate:
          type: number
          format: float
          example: 20
        discountName:
          type:
            - string
            - 'null'
          example: Vernostná zľava
        discountType:
          type:
            - string
            - 'null'
          example: percentage
        discountValue:
          type:
            - number
            - 'null'
          format: float
          example: 10
        total:
          type: number
          format: float
          example: 200
        totalWithVat:
          type: number
          format: float
          example: 240
    Country:
      description: >-
        Krajina dostupná v lookup endpointoch Fintoro API a vo vnorených
        objektoch, kde sa krajina vracia priamo v response.
      type: object
      properties:
        id:
          description: Stabilné ID krajiny používané v API.
          type: integer
          example: 703
        name:
          description: >-
            Lokalizovaný názov krajiny. Ak pošlete `Accept-Language`, backend
            podľa neho preloží systémový label.
          type: string
          example: Slovensko
        code:
          description: Dvojpísmenový ISO kód krajiny.
          type: string
          example: SK
        eu:
          description: Informácia, či krajina patrí do Európskej únie.
          type: boolean
          example: true
    Bank:
      description: >-
        Banka dostupná v lookup endpointoch Fintoro API. Ide o stabilný lookup
        dataset, v ktorom sa existujúce ID bánk nemenia ani neprepisujú.
      type: object
      properties:
        id:
          description: >-
            Stabilné ID banky používané vo Fintoro. Po doplnení nových bánk sa
            existujúce ID nemenia ani neprepisujú.
          type: integer
          example: 23
        name:
          description: Názov banky.
          type: string
          example: Tatra Banka
        swift:
          description: SWIFT kód banky, ak je dostupný.
          type: string
          example: TATRSKBX
    PaymentMethod:
      description: Spôsob úhrady dostupný v lookup endpointoch Fintoro API.
      type: object
      properties:
        id:
          description: Stabilné ID spôsobu úhrady používané v API.
          type: integer
          example: 1
        name:
          description: >-
            Lokalizovaný názov spôsobu úhrady. Ak pošlete `Accept-Language`,
            backend podľa neho preloží systémový label.
          type: string
          example: Platba prevodom
    Currency:
      description: Mena dostupná v lookup endpointoch Fintoro API.
      type: object
      properties:
        id:
          description: Stabilné ID meny používané v API.
          type: integer
          example: 1
        symbol:
          description: ISO alebo interný symbol meny.
          type: string
          example: EUR
        name:
          description: >-
            Lokalizovaný názov meny. Ak pošlete `Accept-Language`, backend podľa
            neho preloží systémový label.
          type: string
          example: Euro
        mark:
          description: Skrátená značka meny zobrazovaná vo Fintoro.
          type: string
          example: €
    InvoicePreview:
      description: >-
        Zjednodušený náhľadový objekt faktúry určený pre list endpoint.
        Neobsahuje položky ani snapshot bankového účtu, ale klient je dostupný
        ako plný historický snapshot v poli `client`; na detail použite detail
        endpoint faktúry.
      type: object
      properties:
        id:
          description: Interné ID faktúry vo Fintoro.
          type: integer
          example: 301
        uuid:
          description: Stabilný UUID identifikátor faktúry.
          type: string
          example: 6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19
        type:
          description: Typ dokladu.
          type: string
          example: invoice
        number:
          description: Číslo faktúry.
          type: string
          example: '20260001'
        clientId:
          description: Live ID klienta naviazaného na faktúru.
          type: integer
          example: 101
        client:
          $ref: '#/components/schemas/InvoicePreviewClient'
          description: >-
            Historický snapshot klienta uložený priamo na faktúre bez live ID.
            Live ID klienta je dostupné v poli `clientId`.
        issueDate:
          description: Dátum vystavenia faktúry.
          type: string
          format: date
          example: '2026-03-03'
        dueDate:
          description: Dátum splatnosti faktúry.
          type: string
          format: date
          example: '2026-03-17'
        deliveryDate:
          description: Dátum dodania.
          type: string
          format: date
          example: '2026-03-03'
        currency:
          $ref: '#/components/schemas/Currency'
          description: Mena faktúry ako vnorený objekt.
        total:
          description: Celková suma bez DPH.
          type: number
          format: float
          example: 200
        totalWithVat:
          description: Celková suma s DPH.
          type: number
          format: float
          example: 240
        toBePaid:
          description: Zostávajúca suma na úhradu.
          type: number
          format: float
          example: 240
        status:
          description: Aktuálny stav úhrady faktúry.
          type: string
          enum:
            - paid
            - unpaid
            - partially_paid
            - overdue
            - will_not_be_paid
          example: unpaid
        hasVat:
          description: Informácia, či faktúra obsahuje položky s DPH.
          type: boolean
          example: true
    InvoicePreviewClient:
      description: >-
        Historický snapshot klienta uložený priamo v preview response dokladu.
        Live ID klienta je dostupné samostatne v poli `clientId`.
      allOf:
        - $ref: '#/components/schemas/ClientSnapshot'
  responses:
    Forbidden:
      description: Prístup k zdroju nie je povolený alebo scope.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: This action is unauthorized.
    NotFound:
      description: Požadovaný zdroj sa nenašiel.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: No query results for model.
    TooManyRequests:
      description: >-
        Firma prekročila Fintoro API rate limit. Táto 429 odpoveď nesie tie isté
        `X-RateLimit-Limit` a `X-RateLimit-Remaining` hlavičky ako ostatné
        throttled odpovede a navyše pridáva `Retry-After` a `X-RateLimit-Reset`.
        Ak potrebujete vyšší limit, kontaktujte info@fintoro.sk pre individuálne
        enterprise nastavenie.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
        X-RateLimit-Limit:
          description: >-
            Maximálny počet requestov povolený pre firmu v aktuálnom
            60-sekundovom okne. Túto hlavičku vraciame na všetkých throttled
            odpovediach, nielen pri 429.
          schema:
            type: integer
            example: 120
        X-RateLimit-Remaining:
          description: >-
            Počet requestov, ktoré ešte firme ostávajú v aktuálnom 60-sekundovom
            okne. Túto hlavičku vraciame na všetkých throttled odpovediach,
            nielen pri 429.
          schema:
            type: integer
            example: 0
        Retry-After:
          description: >-
            Počet sekúnd, po ktorých môžete request bezpečne zopakovať. Túto
            hlavičku posielame len pri 429.
          schema:
            type: integer
            example: 60
        X-RateLimit-Reset:
          description: >-
            Unix timestamp, kedy sa aktuálne rate-limit okno resetuje. Túto
            hlavičku posielame len pri 429.
          schema:
            type: integer
            example: 1774810800
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Too Many Attempts.
    InternalServerError:
      description: >-
        Nastala neočakávaná interná chyba. Tento stav by sa nemal vyskytovať pri
        bežnej prevádzke a automaticky ho reportujeme.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Server Error
    ServiceUnavailable:
      description: >-
        API je dočasne nedostupné počas riadenej údržby. Plánovaný výpadok
        oznamujeme minimálne 24 hodín vopred.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Service Unavailable
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Token
      description: Bearer token vytvorený pre konkrétnu firmu v Integrácie → API.

````