Náklady
CRUD pre náklady. POST/PATCH prijíma line_items, totals dopočíta service.
Náklady (expenses) reprezentujú prijaté faktúry, bločky a iné výdavkové doklady. Sú immutable: PATCH vytvorí novú verziu, stabilný id ostane. POST/PATCH prijíma zoznam line_items a service vypočíta totals (subtotal / VAT / total).
Endpointy
Sken prijíma JPEG, PNG, WebP alebo PDF do 25 MiB. Celý multipart má najviac 26 MiB a povinnú hlavičku Content-Length; JSON metadáta majú najviac 16 KiB. Idempotency-Key je UUID malými písmenami a musí sa rovnať client_upload_id. Kľúč uchovávame 35 dní. Prvé volanie vráti 201, opakovanie 200 s rovnakým telom a Idempotent-Replayed: true. Súbežný pokus vráti 409 IDEMPOTENCY_IN_PROGRESS s Retry-After: 5; zmenený doklad alebo volajúci vráti 409 IDEMPOTENCY_KEY_REUSED. duplicate_of iba upozorňuje na zhodnú prílohu, nový náklad vznikne. Voliteľné pole platform (ios alebo android) určuje appku, ktorá sken poslala; chýbajúce znamená ios a do hashu požiadavky nepatrí. Pri API kľúči sa ignoruje. Podpísaná relácia vyžaduje x-org-slug a oprávnenie expenses.create. Oba spôsoby prihlásenia majú spoločný limit 60 skenov za minútu na používateľa a vyžadujú zapnutý native_client.enabled. Produkčné zapnutie čaká na centrálne kvóty, guard predplatného a obnovu extrakcií.
Opätovná extrakcia zopakuje len neúspešné spracovanie: vráti 202 a zaradí nový pokus. 409 CONFLICT nesie details.reason: in_progress, keď extrakcia beží, bola zaradená pred menej než 10 minútami alebo sa jej zlyhanie ešte dopisuje (skúste neskôr), a not_retryable po dokončenej extrakcii alebo pri konečnom verdikte pre tú istú prílohu (nerozpoznaný druh dokladu, zálohový ISDOC, neprečítaný QR kód bločku). Staršie zaradenie nahradí novým pokusom. 422 nesie details.reason no_attachment, attachment_unusable alebo av_rejected. Pri vyčerpanej kvóte vráti 402 QUOTA_REACHED, pri neuhradenom alebo pozastavenom predplatnom 403 SUBSCRIPTION_INACTIVE (platí aj pre sken). Podpísaná relácia vyžaduje oprávnenie expenses.update. Opätovná extrakcia zdieľa so skenom limit 60 za minútu na používateľa a vyžaduje zapnutý native_client.enabled.
Príloha k nákladu
POST /expenses a PATCH /expenses/{id} prijmú aj multipart/form-data. Časť expense nesie rovnaké JSON telo ako pri application/json (pri POST je povinná, pri PATCH voliteľná, vtedy sa mení len príloha). Časť file je práve jedna a pri multipart povinná; typ súboru sa určuje podľa obsahu (PDF, JPEG, PNG, WebP, GIF, HEIC, HEIF, AVIF, DOCX, XLSX), nie podľa hlavičky časti. Súbor má najviac 25 MiB, celé telo najviac 30 MiB (inak 413). JSON telo s kľúčom file_id spolu so súborom vráti 422. Neplatný JSON v časti expense vráti 400 VALIDATION_ERROR, nepodporovaný alebo chýbajúci súbor 422. Pri POST sa najprv overí mesačný limit nákladov (402 QUOTA_REACHED), až potom sa súbor uloží; ak zápis nákladu zlyhá, súbor sa zahodí. PATCH s nenájdeným nákladom vráti 404 ešte pred nahraním. Odstránenie prílohy ostáva JSON PATCH s file_id: null. Existujúci súbor môžeš pripojiť aj cez JSON file_id; musí to byť aktívna príloha tvojej organizácie, ktorá nevypršala a nie je v karanténe, inak 422.
Nahranie nečaká na antivírus: attachment.scan_status začína ako pending a postupuje cez scanning na clean, infected alebo error. GET /expenses/{id}/pdf súbor vráti hneď, aj kým kontrola beží; len súbor v karanténe vráti 410 FILE_QUARANTINED. Keď antivírus súbor dá do karantény, odošle sa webhook expense.attachment_quarantined (zachytia ho aj odbery expense.*) a udalosť sa zapíše do časovej osi nákladu.
Filtre pre GET /expenses
search- fulltext (description, number, internal_number).category_id- filter na konkrétnu kategóriu.contact_id- filter na dodávateľa.status- jeden znew,processing,manual,processed,paid,failed,partially_settled. Rovnaký vypočítaný stav je v polistatus. Samostatné polepayment_statusa má len hodnotypaid/unpaid.from/to- ISO 8601 dátumový rozsah nad poľomdate.page,limit- stránkovanie (defaultlimit=20, max100).sort_by,sort_order- radenie (asc/desc, defaultdesc).
/api/v1/expenses/scanexpenses:writeNahrať doklad so stabilným kľúčom opakovania. Rovnaký kľúč a obsah vrátia pôvodný náklad.
curl -X POST "https://monivio.sk/api/v1/expenses/scan" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Idempotency-Key: 3f6c5b17-cb47-4d16-bf26-0e65740b6b75" \
-F 'file=@receipt.png;type=image/png' \
-F 'metadata={"client_upload_id":"3f6c5b17-cb47-4d16-bf26-0e65740b6b75","captured_at":"2026-09-26T10:00:00Z","page_count":1,"platform":"android"}'{
"data": {
"expense_id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"file_id": "fil_5wpqzx9k3rt8nmlhvyc4bfsj",
"processing_status": "queued",
"status": "processing",
"duplicate_of": null,
"created_at": "2026-09-26T10:00:00.000Z"
}
}/api/v1/expensesexpenses:writeVytvorí náklad zo zoznamu line_items. Service vypočíta amount_without_tax, amount_tax a amount_total.
curl -X POST "https://monivio.sk/api/v1/expenses" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"description": "Kancelárske potreby",
"issue_date": "2026-06-01",
"delivery_date": "2026-05-31",
"due_date": "2026-06-15",
"contact_id": "con_2hf8pq3rxn4mlkzyt9abwvve",
"currency": "EUR",
"line_items": [
{
"description": "Papier A4 (250 ks)",
"quantity": 5,
"unit_price": 4.5,
"vat_rate": 23
}
]
}'{
"data": {
"id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"number": "FA-20260612",
"internal_number": "DF20260001",
"series_id": "ser_expenses",
"date": "2026-06-01T00:00:00.000Z",
"delivery_date": "2026-05-31T00:00:00.000Z",
"due_date": "2026-06-15T00:00:00.000Z",
"contact": {
"id": "con_7tnZ8wKmRvQpXjL5BcHfYsAd",
"name": "Office Depot"
},
"category": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"name": "Kancelárske potreby",
"icon": null,
"color": null
},
"status": "new",
"processing_status": null,
"failure_reason": null,
"source": "manual",
"has_attachment": true,
"file_id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"file_page_count": 1,
"currency": "EUR",
"base_currency": "EUR",
"amount_without_tax": 22.5,
"amount_tax": 5.18,
"amount_tax_deductible": 5.18,
"vat_deduction_percent": 100,
"vat_deduction_reason": "full",
"vat_regime": "domestic",
"self_assessment_vat_rate": null,
"vehicle_id": null,
"amount_total": 27.68,
"exchange_rate": 1,
"exchange_rate_date": null,
"exchange_rate_source": null,
"amount_total_base": 27.68,
"payment_status": "unpaid",
"amount_offset": 0,
"credit_note_state": null,
"document_kind": "invoice",
"description": "Papier A4 + tonery",
"tag_ids": [
"tag_xKZqL9bM7nT4vR8sCdHfWgYj"
],
"created_at": "2026-06-01T11:24:00.000Z",
"ai_extraction": null,
"attachment": {
"id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"filename": "papier-a4.png",
"mime_type": "image/png",
"size_bytes": 68,
"page_count": 1,
"scan_status": "clean"
},
"settlement": {
"currencyCode": "EUR",
"supplyAmounts": [
{
"amountBase": 100,
"vatRate": 23,
"vatAmount": 23,
"amountTotal": 123
}
],
"prepaidAmount": 50,
"amountDue": 73,
"advanceReferences": [
"2026001"
],
"taxAmounts": [
{
"amountBase": 59.35,
"vatRate": 23,
"vatAmount": 13.65,
"amountTotal": 73
}
]
},
"version": 1,
"received_at": "2026-06-01T11:24:00.000Z",
"payment_reference": null,
"internal_notes": null,
"line_items": [
{
"description": "Papier A4 (250 ks)",
"quantity": 5,
"unit_price": 4.5,
"vat_rate": 23,
"amount": 27.68
}
]
}
}/api/v1/expensesexpenses:writeVytvorí náklad aj s prílohou jedným volaním. Multipart/form-data: časť `expense` nesie rovnaké JSON telo ako vyššie, časť `file` doklad. Príloha začína v stave scan_status pending.
curl -X POST "https://monivio.sk/api/v1/expenses" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-F 'file=@receipt.png;type=image/png' \
-F 'expense={"description":"Kancelárske potreby","issue_date":"2026-06-01","delivery_date":"2026-05-31","due_date":"2026-06-15","contact_id":"con_2hf8pq3rxn4mlkzyt9abwvve","currency":"EUR","line_items":[{"description":"Papier A4 (250 ks)","quantity":5,"unit_price":4.5,"vat_rate":23}]};type=application/json'{
"data": {
"id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"number": "FA-20260612",
"internal_number": "DF20260001",
"series_id": "ser_expenses",
"date": "2026-06-01T00:00:00.000Z",
"delivery_date": "2026-05-31T00:00:00.000Z",
"due_date": "2026-06-15T00:00:00.000Z",
"contact": {
"id": "con_7tnZ8wKmRvQpXjL5BcHfYsAd",
"name": "Office Depot"
},
"category": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"name": "Kancelárske potreby",
"icon": null,
"color": null
},
"status": "new",
"processing_status": null,
"failure_reason": null,
"source": "manual",
"has_attachment": true,
"file_id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"file_page_count": 1,
"currency": "EUR",
"base_currency": "EUR",
"amount_without_tax": 22.5,
"amount_tax": 5.18,
"amount_tax_deductible": 5.18,
"vat_deduction_percent": 100,
"vat_deduction_reason": "full",
"vat_regime": "domestic",
"self_assessment_vat_rate": null,
"vehicle_id": null,
"amount_total": 27.68,
"exchange_rate": 1,
"exchange_rate_date": null,
"exchange_rate_source": null,
"amount_total_base": 27.68,
"payment_status": "unpaid",
"amount_offset": 0,
"credit_note_state": null,
"document_kind": "invoice",
"description": "Papier A4 + tonery",
"tag_ids": [
"tag_xKZqL9bM7nT4vR8sCdHfWgYj"
],
"created_at": "2026-06-01T11:24:00.000Z",
"ai_extraction": null,
"attachment": {
"id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"filename": "receipt.png",
"mime_type": "image/png",
"size_bytes": 68,
"page_count": 1,
"scan_status": "pending"
},
"settlement": {
"currencyCode": "EUR",
"supplyAmounts": [
{
"amountBase": 100,
"vatRate": 23,
"vatAmount": 23,
"amountTotal": 123
}
],
"prepaidAmount": 50,
"amountDue": 73,
"advanceReferences": [
"2026001"
],
"taxAmounts": [
{
"amountBase": 59.35,
"vatRate": 23,
"vatAmount": 13.65,
"amountTotal": 73
}
]
},
"version": 1,
"received_at": "2026-06-01T11:24:00.000Z",
"payment_reference": null,
"internal_notes": null,
"line_items": [
{
"description": "Papier A4 (250 ks)",
"quantity": 5,
"unit_price": 4.5,
"vat_rate": 23,
"amount": 27.68
}
]
}
}/api/v1/expensesexpenses:readZoznam nákladov so stránkovaním a filtrami.
curl "https://monivio.sk/api/v1/expenses?limit=10" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"{
"data": [
{
"id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"number": "FA-20260612",
"internal_number": "DF20260001",
"series_id": "ser_expenses",
"date": "2026-06-01T00:00:00.000Z",
"delivery_date": "2026-05-31T00:00:00.000Z",
"due_date": "2026-06-15T00:00:00.000Z",
"contact": {
"id": "con_7tnZ8wKmRvQpXjL5BcHfYsAd",
"name": "Office Depot"
},
"category": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"name": "Kancelárske potreby",
"icon": null,
"color": null
},
"status": "new",
"processing_status": null,
"failure_reason": null,
"source": "manual",
"has_attachment": true,
"file_id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"file_page_count": 1,
"currency": "EUR",
"base_currency": "EUR",
"amount_without_tax": 22.5,
"amount_tax": 5.18,
"amount_tax_deductible": 5.18,
"vat_deduction_percent": 100,
"vat_deduction_reason": "full",
"vat_regime": "domestic",
"self_assessment_vat_rate": null,
"vehicle_id": null,
"amount_total": 27.68,
"exchange_rate": 1,
"exchange_rate_date": null,
"exchange_rate_source": null,
"amount_total_base": 27.68,
"payment_status": "unpaid",
"amount_offset": 0,
"credit_note_state": null,
"document_kind": "invoice",
"description": "Papier A4 + tonery",
"tag_ids": [
"tag_xKZqL9bM7nT4vR8sCdHfWgYj"
],
"created_at": "2026-06-01T11:24:00.000Z"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 1,
"total_pages": 1
}
}/api/v1/expenses/{id}expenses:readDetail nákladu vrátane line_items.
curl "https://monivio.sk/api/v1/expenses/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"{
"data": {
"id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"number": "FA-20260612",
"internal_number": "DF20260001",
"series_id": "ser_expenses",
"date": "2026-06-01T00:00:00.000Z",
"delivery_date": "2026-05-31T00:00:00.000Z",
"due_date": "2026-06-15T00:00:00.000Z",
"contact": {
"id": "con_7tnZ8wKmRvQpXjL5BcHfYsAd",
"name": "Office Depot"
},
"category": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"name": "Kancelárske potreby",
"icon": null,
"color": null
},
"status": "new",
"processing_status": null,
"failure_reason": null,
"source": "manual",
"has_attachment": true,
"file_id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"file_page_count": 1,
"currency": "EUR",
"base_currency": "EUR",
"amount_without_tax": 22.5,
"amount_tax": 5.18,
"amount_tax_deductible": 5.18,
"vat_deduction_percent": 100,
"vat_deduction_reason": "full",
"vat_regime": "domestic",
"self_assessment_vat_rate": null,
"vehicle_id": null,
"amount_total": 27.68,
"exchange_rate": 1,
"exchange_rate_date": null,
"exchange_rate_source": null,
"amount_total_base": 27.68,
"payment_status": "unpaid",
"amount_offset": 0,
"credit_note_state": null,
"document_kind": "invoice",
"description": "Papier A4 + tonery",
"tag_ids": [
"tag_xKZqL9bM7nT4vR8sCdHfWgYj"
],
"created_at": "2026-06-01T11:24:00.000Z",
"ai_extraction": null,
"attachment": {
"id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"filename": "papier-a4.png",
"mime_type": "image/png",
"size_bytes": 68,
"page_count": 1,
"scan_status": "clean"
},
"settlement": {
"currencyCode": "EUR",
"supplyAmounts": [
{
"amountBase": 100,
"vatRate": 23,
"vatAmount": 23,
"amountTotal": 123
}
],
"prepaidAmount": 50,
"amountDue": 73,
"advanceReferences": [
"2026001"
],
"taxAmounts": [
{
"amountBase": 59.35,
"vatRate": 23,
"vatAmount": 13.65,
"amountTotal": 73
}
]
},
"version": 1,
"received_at": "2026-06-01T11:24:00.000Z",
"payment_reference": null,
"internal_notes": null,
"line_items": [
{
"description": "Papier A4 (250 ks)",
"quantity": 5,
"unit_price": 4.5,
"vat_rate": 23,
"amount": 27.68
}
]
}
}/api/v1/expenses/{id}expenses:writeVytvorí novú verziu (id zostáva, version+1). Stačí poslať polia, ktoré meníš.
curl -X PATCH "https://monivio.sk/api/v1/expenses/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"line_items": [
{
"description": "Papier A4 (500 ks)",
"quantity": 10,
"unit_price": 4.5,
"vat_rate": 23
}
]
}'{
"data": {
"id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"number": "FA-20260612",
"internal_number": "DF20260001",
"series_id": "ser_expenses",
"date": "2026-06-01T00:00:00.000Z",
"delivery_date": "2026-05-31T00:00:00.000Z",
"due_date": "2026-06-15T00:00:00.000Z",
"contact": {
"id": "con_7tnZ8wKmRvQpXjL5BcHfYsAd",
"name": "Office Depot"
},
"category": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"name": "Kancelárske potreby",
"icon": null,
"color": null
},
"status": "new",
"processing_status": null,
"failure_reason": null,
"source": "manual",
"has_attachment": true,
"file_id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"file_page_count": 1,
"currency": "EUR",
"base_currency": "EUR",
"amount_without_tax": 45,
"amount_tax": 10.35,
"amount_tax_deductible": 10.35,
"vat_deduction_percent": 100,
"vat_deduction_reason": "full",
"vat_regime": "domestic",
"self_assessment_vat_rate": null,
"vehicle_id": null,
"amount_total": 55.35,
"exchange_rate": 1,
"exchange_rate_date": null,
"exchange_rate_source": null,
"amount_total_base": 27.68,
"payment_status": "unpaid",
"amount_offset": 0,
"credit_note_state": null,
"document_kind": "invoice",
"description": "Papier A4 + tonery",
"tag_ids": [
"tag_xKZqL9bM7nT4vR8sCdHfWgYj"
],
"created_at": "2026-06-01T11:24:00.000Z",
"ai_extraction": null,
"attachment": {
"id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"filename": "papier-a4.png",
"mime_type": "image/png",
"size_bytes": 68,
"page_count": 1,
"scan_status": "clean"
},
"settlement": {
"currencyCode": "EUR",
"supplyAmounts": [
{
"amountBase": 100,
"vatRate": 23,
"vatAmount": 23,
"amountTotal": 123
}
],
"prepaidAmount": 50,
"amountDue": 73,
"advanceReferences": [
"2026001"
],
"taxAmounts": [
{
"amountBase": 59.35,
"vatRate": 23,
"vatAmount": 13.65,
"amountTotal": 73
}
]
},
"version": 2,
"received_at": "2026-06-01T11:24:00.000Z",
"payment_reference": null,
"internal_notes": null,
"line_items": [
{
"description": "Papier A4 (500 ks)",
"quantity": 10,
"unit_price": 4.5,
"vat_rate": 23,
"amount": 55.35
}
]
}
}/api/v1/expenses/{id}expenses:writeNahradí prílohu nákladu. Multipart/form-data len s časťou `file` (časť `expense` je pri PATCH voliteľná). Vznikne nová verzia, predchádzajúca verzia si ponechá pôvodný súbor.
curl -X PATCH "https://monivio.sk/api/v1/expenses/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-F 'file=@receipt.png;type=image/png'{
"data": {
"id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"number": "FA-20260612",
"internal_number": "DF20260001",
"series_id": "ser_expenses",
"date": "2026-06-01T00:00:00.000Z",
"delivery_date": "2026-05-31T00:00:00.000Z",
"due_date": "2026-06-15T00:00:00.000Z",
"contact": {
"id": "con_7tnZ8wKmRvQpXjL5BcHfYsAd",
"name": "Office Depot"
},
"category": {
"id": "cat_xfzwq2hjkbpr6ny9smtv8d4l",
"name": "Kancelárske potreby",
"icon": null,
"color": null
},
"status": "new",
"processing_status": null,
"failure_reason": null,
"source": "manual",
"has_attachment": true,
"file_id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"file_page_count": 1,
"currency": "EUR",
"base_currency": "EUR",
"amount_without_tax": 22.5,
"amount_tax": 5.18,
"amount_tax_deductible": 5.18,
"vat_deduction_percent": 100,
"vat_deduction_reason": "full",
"vat_regime": "domestic",
"self_assessment_vat_rate": null,
"vehicle_id": null,
"amount_total": 27.68,
"exchange_rate": 1,
"exchange_rate_date": null,
"exchange_rate_source": null,
"amount_total_base": 27.68,
"payment_status": "unpaid",
"amount_offset": 0,
"credit_note_state": null,
"document_kind": "invoice",
"description": "Papier A4 + tonery",
"tag_ids": [
"tag_xKZqL9bM7nT4vR8sCdHfWgYj"
],
"created_at": "2026-06-01T11:24:00.000Z",
"ai_extraction": null,
"attachment": {
"id": "fil_xKZqL9bM7nT4vR8sCdHfWgYjE2pUaQ",
"filename": "papier-a4.png",
"mime_type": "image/png",
"size_bytes": 68,
"page_count": 1,
"scan_status": "pending"
},
"settlement": {
"currencyCode": "EUR",
"supplyAmounts": [
{
"amountBase": 100,
"vatRate": 23,
"vatAmount": 23,
"amountTotal": 123
}
],
"prepaidAmount": 50,
"amountDue": 73,
"advanceReferences": [
"2026001"
],
"taxAmounts": [
{
"amountBase": 59.35,
"vatRate": 23,
"vatAmount": 13.65,
"amountTotal": 73
}
]
},
"version": 3,
"received_at": "2026-06-01T11:24:00.000Z",
"payment_reference": null,
"internal_notes": null,
"line_items": [
{
"description": "Papier A4 (250 ks)",
"quantity": 5,
"unit_price": 4.5,
"vat_rate": 23,
"amount": 27.68
}
]
}
}/api/v1/expenses/{id}/pdfexpenses:readStiahne pôvodný doklad priložený k nákladu, aj kým antivírusová kontrola beží. Súbor v karanténe vráti 410 FILE_QUARANTINED, bez priloženého súboru vracia 404.
curl "https://monivio.sk/api/v1/expenses/con_2hf8pq3rxn4mlkzyt9abwvve/pdf" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/api/v1/expenses/{id}/retry-extractionexpenses:writeZnova zaradí neúspešnú AI extrakciu dokladu priloženého k nákladu.
curl -X POST "https://monivio.sk/api/v1/expenses/con_2hf8pq3rxn4mlkzyt9abwvve/retry-extraction" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"{
"data": {
"expense_id": "exp_5wpqzx9k3rt8nmlhvyc4bfsj",
"processing_status": "queued"
}
}/api/v1/expenses/{id}expenses:writeVymaže náklad. Zachováva sa v histórii pre audit.
curl -X DELETE "https://monivio.sk/api/v1/expenses/con_2hf8pq3rxn4mlkzyt9abwvve" \
-H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Objekt Expense (detail)
idreadonlyexp_5wpqzx9k3rt8nmlhvyc4bfsjversionreadonlynumberPOST a PATCH voliteľné.FA-20260612descriptionrequiredPapier A4 + toneryissue_daterequireddate.2026-06-01datereadonlyissue_date.2026-06-01T00:00:00.000Zdelivery_date2026-05-31T00:00:00.000Zdue_date2026-06-15T00:00:00.000Zreceived_atcontact_idcontact.con_7tnZ8wKmRvQpXjL5BcHfYsAdcontactreadonlycategory_idcategory.categoryreadonly/categories?type=expense).currencyEURexchange_rateexchange_rate_datereadonlyexchange_rate_sourcereadonlybase_currencyreadonlyvat_rate_idis_vat_deductiblevat_deduction_reason: false alebo vynechané pole znamená bez odpočtu (predvolené), true nechá odpočet na automatiku (plný, ak ho kategória ani vozidlo neobmedzujú). Keď prídu obe polia, platí vat_deduction_reason.vat_deduction_reasonfull (100 %), vehicle_mixed (osobné auto používané aj súkromne, 50 % podľa §85n), vehicle_exclusive (auto len na podnikanie, 100 %), business_use (podľa rozsahu použitia, §49 ods. 5, vyžaduje vat_deduction_percent), hospitality (pohostenie, 0 %), not_claimed (0 %). Pri zápise bez režimu a s is_vat_deductible: true určí odpočet automatika podľa kategórie a vozidla.vat_deduction_percentamount_tax_deductiblereadonlyvat_regimedomestic (tuzemský nákup, predvolené), reverse_charge_services (samozdanenie služby zo zahraničia). Vo výstupe môžu prísť aj ďalšie hodnoty (reverse_charge_domestic, eu_goods_acquisition, import, out_of_scope) a v budúcnosti nové, klient ich má tolerovať. Odoslaná hodnota je voľba klienta a automatika ju už neprepíše, aj keď je rovnaká ako načítaná; vynechané pole nechá režim na dodávateľa alebo doklad.vat_regime_automaticself_assessment_vat_ratevehicle_idamount_without_taxreadonlyamount_taxreadonlyamount_totalreadonlyamount_total_basereadonlyinternal_numberreadonlyseries_idreadonlydocument_kindsource_expense_idcorrected_numbercorrection_reasonpayment_statusreadonlyamount_offsetreadonlycredit_note_statereadonlystatusreadonlyprocessing_statusreadonlyfailure_reasonreadonlysourcereadonlyhas_attachmentreadonlyfile_page_countreadonlyai_extractionreadonlyattachmentreadonlypayment_referenceinternal_notesfile_id/expenses/{id}/pdf.tag_idsline_itemsrequireddescription, quantity, unit_price, vat_rate (0-100). V odpovedi sa pridáva aj amount. Min 1, max 100 položiek.totaltotal pošlete, platí suma z dokladu a rozdiel sa premietne do DPH, nikdy do základu ani do položiek. Tolerancia je jeden cent na každú sadzbu DPH na doklade; väčší rozdiel skončí ako 422. Vynechané: suma sa dopočíta z položiek ako doteraz.created_atreadonly