Přejít na hlavní obsah
POST
/
quotations
Vytvoriť cenovú ponuku
curl --request POST \
  --url https://app.fintoro.sk/api/public/v1/quotations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "clientId": 101,
  "items": [
    {
      "quantity": 2,
      "priceListItemId": 501,
      "name": "Konzultácia",
      "description": "Mesačný balík konzultácií",
      "unitPrice": 100,
      "unitId": 1,
      "vatRate": 20,
      "discountType": "percentage",
      "discountValue": 10,
      "discountName": "Vernostná zľava"
    }
  ],
  "number": "20260001",
  "client": {
    "name": "Acme s.r.o.",
    "type": "company",
    "subjectId": "12345678",
    "taxId": "2020123456",
    "vatId": "SK2020123456",
    "isVatPayer": true,
    "email": "billing@acme.test",
    "street": "Hlavná 1",
    "city": "Bratislava",
    "zip": "81101",
    "countryId": 703,
    "hasDeliveryAddress": true,
    "deliveryStreet": "Skladová 5",
    "deliveryCity": "Trnava",
    "deliveryZip": "91701",
    "deliveryCountryId": 703
  },
  "businessCaseId": 701,
  "numericalSeriesId": 12,
  "issueDate": "2026-03-03",
  "validityDate": "2026-04-02",
  "discountType": "percentage",
  "discountValue": 10,
  "transferTaxLiability": false,
  "currencyId": 1,
  "languageId": 1,
  "note": "Cenová ponuka platí 30 dní.",
  "textAboveItems": "Dakujeme za Váš záujem."
}
'
{
  "id": 601,
  "uuid": "6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19",
  "type": "quotation",
  "number": "20260001",
  "webDokladUrl": "https://app.fintoro.sk/web-doklad/cp/4f3f8a95-5c4a-4c8b-9e6c-8a0c1a5df3a1",
  "pdfDownloadUrl": "https://app.fintoro.sk/api/public/v1/quotations/601/pdf",
  "company": {
    "name": "Fintoro s.r.o.",
    "subjectId": "12345678",
    "legalForm": "Spoločnosť s ručením obmedzeným",
    "taxId": "2020123456",
    "vatId": "SK2020123456",
    "vatPayerTypeId": 4,
    "country": "Slovensko",
    "city": "Bratislava",
    "street": "Hlavná 1",
    "zip": "81101",
    "logo": "https://cdn.fintoro.sk/company/logo.svg",
    "signature": "https://cdn.fintoro.sk/company/signature.png",
    "registrationCourt": "Mestský súd Bratislava III",
    "registrationNumber": "12345/B",
    "email": "support@fintoro.sk",
    "phone": "+421900000000",
    "web": "https://fintoro.sk"
  },
  "clientId": 101,
  "client": {
    "name": "Acme s.r.o.",
    "type": "company",
    "subjectId": "12345678",
    "taxId": "2020123456",
    "vatId": "SK2020123456",
    "isVatPayer": true,
    "email": "billing@acme.test",
    "street": "Hlavná 1",
    "city": "Bratislava",
    "zip": "81101",
    "countryId": 703,
    "country": {
      "id": 703,
      "name": "Slovensko",
      "code": "SK",
      "eu": true
    },
    "hasDeliveryAddress": true,
    "deliveryStreet": "Skladová 9",
    "deliveryCity": "Košice",
    "deliveryZip": "04001",
    "deliveryCountryId": 703,
    "deliveryCountry": {
      "id": 703,
      "name": "Slovensko",
      "code": "SK",
      "eu": true
    }
  },
  "issueDate": "2026-03-03",
  "validityDate": "2026-04-02",
  "businessCaseId": 701,
  "discountType": "percentage",
  "discountValue": 10,
  "transferTaxLiability": false,
  "numericalSeriesId": 12,
  "currencyId": 1,
  "languageId": 1,
  "note": "Cenová ponuka platí 30 dní.",
  "textAboveItems": "Dakujeme za Váš záujem.",
  "itemsTotal": 200,
  "itemsTotalWithVat": 240,
  "total": 200,
  "totalWithVat": 240,
  "status": "waiting",
  "hasVat": true,
  "items": [
    {
      "id": 1,
      "name": "Konzultácia",
      "description": "Mesačný balík konzultácií",
      "unitPrice": 100,
      "unitId": 1,
      "quantity": 2,
      "vatRate": 20,
      "discountName": "Vernostná zľava",
      "discountType": "percentage",
      "discountValue": 10,
      "total": 200,
      "totalWithVat": 240
    }
  ]
}

Autorizace

Authorization
string
header
povinné

Bearer token vytvorený pre konkrétnu firmu v Integrácie → API.

Hlavičky

Idempotency-Key
string

Voliteľný identifikátor requestu pre bezpečné retry. Použite unikátnu hodnotu pre každé create volanie, ktoré chcete vedieť bezpečne zopakovať.

Příklad:

"invoice-create-2026-03-03-001"

Tělo

application/json

Payload pre vytvorenie cenovej ponuky. V bežnom prípade stačí poslať clientId a items; ostatné polia môže backend dopočítať. Musíte poslať buď clientId, alebo objekt client.

clientId
integer | null
povinné

ID existujúceho klienta. Toto je odporúčaný spôsob tvorby cenovej ponuky. Ak zároveň pošlete objekt client, použije sa ako sparse override snapshotu klienta pre tento konkrétny doklad.

Příklad:

101

items
object[]
povinné

Položky cenovej ponuky. Toto pole je povinné vždy. Per-item uuid nie je súčasťou request kontraktu; ak ho pošlete, backend ho ignoruje. warehouseAllocations pri cenových ponukách nie sú podporované.

Required array length: 1 - 100 elements

Payload jednej položky cenovej ponuky. Podporované sú tri režimy: manuálna položka, priceListItemId + quantity, alebo priceListItemId s čiastočnými override poľami. Povinné je vždy quantity. Ak nepošlete priceListItemId, musíte poslať aj name, unitPrice a vatRate. unitId je voliteľné; ak ho pri manuálnej položke nepošlete, backend použije jednotku 1 (ks / Unit::Piece). Ak priceListItemId pošlete, backend si z cenníkovej položky vie dopočítať názov, jednotku, cenu a sadzbu DPH; payload potom slúži len ako sparse override. uuid nie je súčasťou request kontraktu cenových ponúk; ak ho pošlete, backend ho ignoruje. warehouseAllocations pri cenových ponukách nie sú podporované.

number
string | null

Manuálne číslo cenovej ponuky. Ak ho nepošlete, backend ho vygeneruje z číselného radu. Ak pošlete number, nepošlite zároveň numericalSeriesId.

Required string length: 1 - 20
Příklad:

"20260001"

client
object

Sparse klientský payload. Ak pošlete clientId, slúži ako override snapshotu pre tento doklad. Ak clientId nepošlete, backend podľa týchto údajov klienta dopáruje alebo vytvorí.

businessCaseId
integer | null

Voliteľné ID obchodného prípadu. Ak ho pošlete, musí patriť klientovi určenému cez finálny clientId.

Příklad:

701

numericalSeriesId
integer | null

ID číselného radu. Ak ho nepošlete a nepošlete ani number, použije sa primárny číselný rad pre cenové ponuky. Ak pošlete numericalSeriesId, nepošlite zároveň manuálne number.

Příklad:

12

issueDate
string<date>

Dátum vystavenia vo formáte Y-m-d. Musí byť po 2009-01-01 a pred dátumom o jeden rok v budúcnosti. Ak ho nepošlete, použije sa dnešný dátum.

Příklad:

"2026-03-03"

validityDate
string<date> | null

Dátum platnosti vo formáte Y-m-d. Musí byť rovný alebo neskorší než finálny issueDate. Ak ho nepošlete, použije sa issueDate + 30 dní.

Příklad:

"2026-04-02"

discountType
enum<string> | null

Typ zľavy na úrovni celého dokladu.

Dostupné možnosti:
percentage,
fixed
Příklad:

"percentage"

discountValue
number<float> | null

Hodnota zľavy na úrovni celého dokladu.

Požadovaný rozsah: x >= 0
Příklad:

10

transferTaxLiability
boolean

Príznak prenesenej daňovej povinnosti. Ak ho nepošlete, použije sa false.

Příklad:

false

currencyId
integer

ID meny z referenčnej tabuľky mien. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.

Příklad:

1

languageId
integer

ID jazyka z referenčnej tabuľky jazykov. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.

Příklad:

1

note
string | null

Poznámka na doklade. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.

Maximum string length: 3000
Příklad:

"Cenová ponuka platí 30 dní."

textAboveItems
string | null

Text nad položkami. Priorita je payload → klientská predvolená hodnota → nastavenia dokladov firmy.

Maximum string length: 3000
Příklad:

"Dakujeme za Váš záujem."

Odpověď

Cenová ponuka bola vytvorená.

Cenová ponuka.

id
integer
Příklad:

601

uuid
string
Příklad:

"6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19"

type
string
Příklad:

"quotation"

number
string
Příklad:

"20260001"

webDokladUrl
string<uri>

Absolútna URL na verejný web doklad tejto cenovej ponuky.

Příklad:

"https://app.fintoro.sk/web-doklad/cp/4f3f8a95-5c4a-4c8b-9e6c-8a0c1a5df3a1"

pdfDownloadUrl
string<uri>

Absolútna URL na Fintoro API endpoint, ktorý stiahne PDF tejto cenovej ponuky ako prílohu.

Příklad:

"https://app.fintoro.sk/api/public/v1/quotations/601/pdf"

company
object

Snapshot dodávateľa uložený priamo na tomto doklade.

clientId
integer

Live ID klienta naviazaného na cenovú ponuku.

Příklad:

101

client
object

Historický snapshot klienta uložený priamo na tomto doklade.

issueDate
string<date>
Příklad:

"2026-03-03"

validityDate
string<date> | null
Příklad:

"2026-04-02"

businessCaseId
integer | null

Voliteľné ID obchodného prípadu. Ak ho pošlete, musí patriť zvolenému klientovi na doklade.

Příklad:

701

discountType
enum<string> | null
Dostupné možnosti:
percentage,
fixed
Příklad:

"percentage"

discountValue
number<float> | null
Příklad:

10

transferTaxLiability
boolean
Příklad:

false

numericalSeriesId
integer | null
Příklad:

12

currencyId
integer
Příklad:

1

languageId
integer
Příklad:

1

note
string | null
Příklad:

"Cenová ponuka platí 30 dní."

textAboveItems
string | null
Příklad:

"Dakujeme za Váš záujem."

itemsTotal
number<float>
Příklad:

200

itemsTotalWithVat
number<float>
Příklad:

240

total
number<float>
Příklad:

200

totalWithVat
number<float>
Příklad:

240

status
enum<string>
Dostupné možnosti:
waiting,
accepted,
rejected
Příklad:

"waiting"

hasVat
boolean
Příklad:

true

items
object[]