Create quotation
Creates a new quotation.
Recommended flow
The recommended happy path is to send clientId and items.
If the client does not exist in Fintoro yet, or you do not want to create it in a separate step, send a client object without clientId. The backend will try to match an existing client and create a new one only if nothing matches.
If you send both clientId and a client object, the client object acts as a sparse snapshot override for this specific quotation.
How defaults work
Most document fields are optional. The backend resolves them in this order:
- explicit payload value,
- client defaults,
- company document settings.
In practice this means for example:
numberandnumericalSeriesIdare resolved from the primary numbering series if you omit them,issueDatedefaults to today,validityDatedefaults toissueDate + 30 days,transferTaxLiabilitydefaults tofalse,currencyId,languageId,note, andtextAboveItemscan be resolved from client defaults or company document settings.
How client resolution works
Client resolution is strictly deterministic:
- if you send
clientId, the backend loads that client within the token scope, - if you omit
clientId, theclientobject is used for matching or creation, - if you send both
clientIdandclient, theclientobject is used only as a document snapshot override.
Matching is deterministic and uses this order:
- for companies:
vatId, thencountryId + subjectId, thenname + email, thenname + street, - for people:
name + email, thenname + street.
How item hydration works
An item can be created in three ways:
- as a manual item with explicit name, unit, price, and VAT,
- via
priceListItemIdandquantity, - via
priceListItemIdplus sparse overrides for selected fields such as price or name.
priceListItemId is used only for input hydration. The quotation response returns the final canonical item shape and does not echo this price list reference back as a separate field.
Quotations do not use per-item uuid; if you send it, the backend ignores it. warehouseAllocations are not supported for quotations.
The initial quotation status is waiting.
If you send Idempotency-Key, the same key with the same payload returns the original response without creating a second quotation.
Authorizations
Bearer token created for a specific company in Integrations → API.
Headers
Optional request identifier for safe retries. Use a unique value for each create request you want to retry safely.
"invoice-create-2026-03-03-001"
Body
- Option 1
- Option 2
Payload used to create a quotation. In the common case, sending clientId and items is enough; the backend can resolve the remaining fields. You must send either clientId or the client object.
Existing client ID. This is the recommended way to create a quotation. If you also send the client object, it is used as a sparse client snapshot override for this specific document.
101
Quotation items. This field is always required. Per-item uuid is not part of the request contract; if you send it, the backend ignores it. warehouseAllocations are not supported for quotations.
1 - 100 elementsPayload of a single quotation item. Three modes are supported: a manual item, priceListItemId + quantity, or priceListItemId with sparse overrides for selected fields. quantity is always required. If you do not send priceListItemId, you must send name, unitPrice, and vatRate. unitId is optional; when you omit it for a manual item, the backend defaults to unit 1 (piece / Unit::Piece). If you do send priceListItemId, the backend can hydrate the name, unit, price, and VAT rate from the price list item and the payload acts only as a sparse override. uuid is not part of the quotation request contract; if you send it, the backend ignores it. warehouseAllocations are not supported for quotations.
- Option 1
- Option 2
Manual quotation number. If omitted, the backend generates it from the numbering series. If you send number, do not send numericalSeriesId in the same payload.
1 - 20"20260001"
Sparse client payload. If you send clientId, it acts as a snapshot override for this document. If you omit clientId, the backend uses these values to match or create a client.
Optional business case ID. When sent, it must be available in the token scope and to the client resolved as the final clientId.
701
Numbering series ID. If omitted together with number, the primary numbering series for quotations is used. If you send numericalSeriesId, do not send manual number in the same payload.
12
Issue date in Y-m-d format. It must be after 2009-01-01 and before the date one year in the future. If omitted, today is used.
"2026-03-03"
Validity date in Y-m-d format. It must be equal to or later than the final issueDate. If omitted, issueDate + 30 days is used.
"2026-04-02"
Document-level discount type.
percentage, fixed "percentage"
Document-level discount value.
x >= 010
Reverse-charge flag. If omitted, false is used.
false
Currency ID from the currency reference table. Resolution priority is payload -> client preference -> company document settings.
1
Language ID from the language reference table. Resolution priority is payload -> client preference -> company document settings.
1
Document note. Resolution priority is payload -> client preference -> company document settings.
3000"This quotation is valid for 30 days."
Text displayed above items. Resolution priority is payload -> client preference -> company document settings.
3000"Thank you for your interest."
Response
The quotation was created.
Quotation.
601
"6b1b8c9e-66e6-4fb5-b2db-6d7c7f0f8f19"
"quotation"
"20260001"
Absolute URL of the public web document for this quotation.
"https://app.fintoro.sk/web-doklad/cp/4f3f8a95-5c4a-4c8b-9e6c-8a0c1a5df3a1"
Absolute URL of the Fintoro API endpoint that downloads this quotation PDF as an attachment.
"https://app.fintoro.sk/api/public/v1/quotations/601/pdf"
Supplier snapshot stored directly on this document.
Live ID of the client linked to the quotation.
101
Historical client snapshot stored directly on this document.
"2026-03-03"
"2026-04-02"
Optional business case ID. When sent, it must belong to the client selected on the document.
701
percentage, fixed "percentage"
10
false
12
Currency ID from the currency reference table.
1
Language ID from the language reference table.
1
"This quotation is valid for 30 days."
"Thank you for your interest."
200
240
200
240
waiting, accepted, rejected "waiting"
true

