Send a photo of a Romanian receipt (bon fiscal), chitanță, or supplier invoice and receive a structured prefill payload describing the document — supplier match, dates, totals, per-rate VAT breakdown, optionally per-line items, and a payment-method hint.Use the response to prefill an expense form. Persist via POST /expenses once the user confirms — typically with vat = "mix" + amount_vat_manual for receipts flagged as multi-rate.
Opaque token referencing the uploaded image staged on the server. Pass this to the attachment endpoint when posting the expense so the same image gets attached without a re-upload. Expires after 15 minutes.
Due date in YYYY-MM-DD, or null for receipts paid at the point of sale (bon fiscal). When null, the form should auto-mark the expense as paid with paid_date = date and payment_type derived from paymentMethod (or 1 = Cash as fallback).
Per-rate breakdown when the receipt mixes more than one rate, otherwise null. Each entry: { rate, net, gross, vatAmount } — any of net / gross may be null.On vatMode = "mix", send this array back via vat_breakdown when posting so reports keep accurate per-rate totals.
Payment method inferred from the document footer. One of "cash", "card", "transfer", "other", or null (typical for factură furnizor printed before payment). Map to payment_type when posting:
Optional. When present, each entry has name, quantity, unit_price (NET), vat_rate. May be absent depending on document quality and structure — clients that ignore this field still get correct totals via the aggregate fields.
"flat" = single rate; send vat = <number> on POST.
"mix" = two or more non-zero rate tranches; send vat = "mix"
+ amount_vat_manual = vatAmount on POST.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Contazen API Documentation","colors":{"primary":"#0f9d59","light":"#07C983","dark":"#0f9d59"},"logo":{"light":"https://docs.contazen.ro/logo/light.svg","dark":"https://docs.contazen.ro/logo/dark.svg"},"favicon":"https://mintcdn.com/contazen/oM2UxkCsSXTMlxce/favicon.svg?fit=max\u0026auto=format\u0026n=oM2UxkCsSXTMlxce\u0026q=85\u0026s=ef4ff6f724b30c3d5c82317ce0463ac2","api":{"openapi":"contazen-api.openapi.yaml","playground":{"display":"interactive"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.contazen.ro/v1"}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"mailto:contact@contazen.ro","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.contazen.ro"}},"footer":{"socials":{"x":"https://x.com/contazen","linkedin":"https://www.linkedin.com/company/contazen"}},"search":{"prompt":"Search documentation..."},"seo":{"metatags":{"og:title":"Contazen API Documentation","og:description":"Build powerful integrations with the Contazen invoicing platform","og:image":"https://contazen.ro/og-image.png"},"indexing":"navigable"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"contazen","hasAudioNarration":false,"actualSubdomain":"contazen","customDomains":["docs.contazen.ro"],"gitSource":{"type":"github","owner":"andreigusan","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21f653ef4a07ceb9f83ecb","collectionId":"16bfd4f7-26ee-4b4a-956a-77c24ed037ce","schemaVersion":"v2"},"feedback":{"thumbs":true,"issues":true},"entitlements":{},"buildId":"6a21f653ef4a07ceb9f83ecb:success","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API Reference","count":192},{"language":"default","tag":"Documentation","count":17},{"language":"default","tag":"Invoices","count":16},{"language":"default","tag":"Expenses","count":12},{"language":"default","tag":"Invoice Series","count":9},{"language":"default","tag":"Getting Started","count":9},{"language":"default","tag":"Core Concepts","count":8},{"language":"default","tag":"Supplier Bills","count":7},{"language":"default","tag":"Conta","count":6},{"language":"default","tag":"Clients","count":5}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoints/expenses/ocr-extract","slug":"/api-reference/endpoints/expenses/ocr-extract","pageMetadata":{"title":"Scan receipt (OCR)","openapi":"POST /expenses/ocr-extract","description":"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.","href":"/api-reference/endpoints/expenses/ocr-extract"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,ParamField,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Send a photo of a Romanian receipt (bon fiscal), chitanță, or supplier invoice and receive a structured prefill payload describing the document — supplier match, dates, totals, per-rate VAT breakdown, optionally per-line items, and a payment-method hint.`}),`\n`,_jsxs(_components.p,{children:[`Use the response to prefill an expense form. Persist via `,_jsx(_components.a,{href:`/api-reference/endpoints/expenses/create`,children:_jsx(_components.code,{children:`POST /expenses`})}),` once the user confirms — typically with `,_jsx(_components.code,{children:`vat = \"mix\"`}),` + `,_jsx(_components.code,{children:`amount_vat_manual`}),` for receipts flagged as multi-rate.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsx(_components.p,{children:_jsx(_components.code,{children:`Content-Type: multipart/form-data`})}),`\n`,_jsx(ParamField,{body:`image`,type:`file`,required:true,id:`param-image`,children:_jsx(_components.p,{children:`Receipt image — JPEG, PNG, or WebP, up to 10 MB. Mobile clients should compress to JPEG before upload (HEIC is rejected).`})}),`\n`,_jsx(Heading,{level:`2`,id:`response-200`,children:`Response (200)`}),`\n`,_jsxs(_components.p,{children:[`The response is a normalized prefill payload, not a stored expense. Persist it via `,_jsx(_components.a,{href:`/api-reference/endpoints/expenses/create`,children:_jsx(_components.code,{children:`POST /expenses`})}),` once the user confirms.`]}),`\n`,_jsx(ResponseField,{name:`tempFileToken`,type:`string`,id:`param-temp-file-token`,children:_jsx(_components.p,{children:`Opaque token referencing the uploaded image staged on the server. Pass this to the attachment endpoint when posting the expense so the same image gets attached without a re-upload. Expires after 15 minutes.`})}),`\n`,_jsxs(ResponseField,{name:`supplier`,type:`object`,id:`param-supplier`,children:[_jsx(_components.p,{children:`Resolved supplier match.`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`id`}),` — CzUid of an existing supplier matched by CUI/name, or `,_jsx(_components.code,{children:`null`}),` for a new auto-created one`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`cui`}),` — best-effort values from the receipt`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`matchedExisting`}),` — `,_jsx(_components.code,{children:`true`}),` when an existing supplier was found`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`category`,type:`object`,id:`param-category`,children:_jsxs(_components.p,{children:[`Fuzzy-matched category from the firm’s list (system + custom merged): `,_jsx(_components.code,{children:`{ id, name }`}),`. Both may be `,_jsx(_components.code,{children:`null`}),` when no match is found.`]})}),`\n`,_jsx(ResponseField,{name:`date`,type:`string`,format:`date`,id:`param-date`,children:_jsxs(_components.p,{children:[`Issue date in `,_jsx(_components.code,{children:`YYYY-MM-DD`}),`. Falls back to today if unreadable.`]})}),`\n`,_jsx(ResponseField,{name:`dueDate`,type:`string`,id:`param-due-date`,children:_jsxs(_components.p,{children:[`Due date in `,_jsx(_components.code,{children:`YYYY-MM-DD`}),`, or `,_jsx(_components.code,{children:`null`}),` for receipts paid at the point of sale (bon fiscal). When `,_jsx(_components.code,{children:`null`}),`, the form should auto-mark the expense as paid with `,_jsx(_components.code,{children:`paid_date = date`}),` and `,_jsx(_components.code,{children:`payment_type`}),` derived from `,_jsx(_components.code,{children:`paymentMethod`}),` (or `,_jsx(_components.code,{children:`1 = Cash`}),` as fallback).`]})}),`\n`,_jsx(ResponseField,{name:`currency`,type:`string`,id:`param-currency`,children:`3-letter ISO code (RON, EUR, USD).`}),`\n`,_jsx(ResponseField,{name:`amount`,type:`number`,id:`param-amount`,children:_jsxs(_components.p,{children:[`Net subtotal (excluding VAT). On the `,_jsx(_components.strong,{children:`flat`}),` path this is what the user enters in the “Valoarea” field with `,_jsx(_components.code,{children:`with_vat = false`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`vatRate`,type:`number`,id:`param-vat-rate`,children:_jsxs(_components.p,{children:[`Dominant VAT percent. Rounded to one of the Romanian rates. On `,_jsx(_components.code,{children:`vatMode = \"mix\"`}),`, this is informational only — use `,_jsx(_components.code,{children:`amount_vat_manual`}),` instead.`]})}),`\n`,_jsx(ResponseField,{name:`vatAmount`,type:`number`,id:`param-vat-amount`,children:_jsxs(_components.p,{children:[`Total VAT amount across all rate tranches. `,_jsxs(_components.strong,{children:[`On `,_jsx(_components.code,{children:`vatMode = \"mix\"`}),`, send this back as `,_jsx(_components.code,{children:`amount_vat_manual`}),` when posting the expense.`]})]})}),`\n`,_jsx(ResponseField,{name:`vatMode`,type:`string`,id:`param-vat-mode`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`\"flat\"`}),` (single rate, send `,_jsx(_components.code,{children:`vat = \u003cnumber>`}),`) or `,_jsx(_components.code,{children:`\"mix\"`}),` (two or more non-zero rate tranches, send `,_jsx(_components.code,{children:`vat = \"mix\"`}),` + `,_jsx(_components.code,{children:`amount_vat_manual = vatAmount`}),`).`]})}),`\n`,_jsx(ResponseField,{name:`total`,type:`number`,id:`param-total`,children:_jsxs(_components.p,{children:[`Gross total printed on the receipt. Always equal to `,_jsx(_components.code,{children:`amount + vatAmount`}),` on the mix path.`]})}),`\n`,_jsx(ResponseField,{name:`vatIncluded`,type:`boolean`,id:`param-vat-included`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` when only the gross total was printed (typical bon fiscal). On mix mode this is `,_jsx(_components.code,{children:`false`}),` because `,_jsx(_components.code,{children:`amount`}),` is the explicit subtotal.`]})}),`\n`,_jsxs(ResponseField,{name:`vatBreakdown`,type:`array`,id:`param-vat-breakdown`,children:[_jsxs(_components.p,{children:[`Per-rate breakdown when the receipt mixes more than one rate, otherwise `,_jsx(_components.code,{children:`null`}),`. Each entry: `,_jsx(_components.code,{children:`{ rate, net, gross, vatAmount }`}),` — any of `,_jsx(_components.code,{children:`net`}),` / `,_jsx(_components.code,{children:`gross`}),` may be `,_jsx(_components.code,{children:`null`}),`.`]}),_jsxs(_components.p,{children:[`On `,_jsx(_components.code,{children:`vatMode = \"mix\"`}),`, send this array back via `,_jsx(_components.code,{children:`vat_breakdown`}),` when posting so reports keep accurate per-rate totals.`]})]}),`\n`,_jsxs(ResponseField,{name:`paymentMethod`,type:`string`,id:`param-payment-method`,children:[_jsxs(_components.p,{children:[`Payment method inferred from the document footer. One of `,_jsx(_components.code,{children:`\"cash\"`}),`, `,_jsx(_components.code,{children:`\"card\"`}),`, `,_jsx(_components.code,{children:`\"transfer\"`}),`, `,_jsx(_components.code,{children:`\"other\"`}),`, or `,_jsx(_components.code,{children:`null`}),` (typical for factură furnizor printed before payment). Map to `,_jsx(_components.code,{children:`payment_type`}),` when posting:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`cash`}),` → `,_jsx(_components.code,{children:`1`}),` (Cash, “Numerar prin bon fiscal”)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`card`}),` → `,_jsx(_components.code,{children:`4`}),` (Card)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`transfer`}),` → `,_jsx(_components.code,{children:`3`}),` (Bank transfer / Ordin de plată)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`other`}),` / `,_jsx(_components.code,{children:`null`}),` → caller decides`]}),`\n`]})]}),`\n`,_jsx(ResponseField,{name:`docNumber`,type:`string`,id:`param-doc-number`,children:_jsxs(_components.p,{children:[`Document / receipt / invoice number (`,_jsx(_components.code,{children:`reference`}),` in the create payload).`]})}),`\n`,_jsxs(ResponseField,{name:`description`,type:`string`,id:`param-description`,children:[`Free-text description, often `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(ResponseField,{name:`items`,type:`array`,id:`param-items`,children:_jsxs(_components.p,{children:[`Optional. When present, each entry has `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`quantity`}),`, `,_jsx(_components.code,{children:`unit_price`}),` (NET), `,_jsx(_components.code,{children:`vat_rate`}),`. May be absent depending on document quality and structure — clients that ignore this field still get correct totals via the aggregate fields.`]})}),`\n`,_jsxs(ResponseField,{name:`warnings`,type:`array`,id:`param-warnings`,children:[_jsx(_components.p,{children:`Pre-localized Romanian strings safe to surface in the form alert. Examples:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`\"Furnizor nou\"`}),` — supplier auto-created`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`\"Mai multe cote TVA\"`}),` — multi-rate detected, switch UI to mix mode`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`\"Liniile au fost ignorate ...\"`}),` — items omitted; rely on the aggregate fields`]}),`\n`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`mapping-the-response-to-create-expense`,children:`Mapping the response to Create Expense`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`jsonc`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`jsonc`,children:_jsxs(_components.code,{language:`jsonc`,numberOfLines:`20`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// OCR response`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supplier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Q9hjAB\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"KAUFLAND ROMANIA SCS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"cui\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"15991149\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"11\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Alte consumabile\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-25\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"dueDate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RON\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`147.53`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vatAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`24.15`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vatMode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mix\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`171.68`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vatBreakdown\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`21`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`80.29`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"gross\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`97.15`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"vatAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`16.86`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`11`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`66.27`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"gross\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`73.56`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"vatAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`7.29`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.97`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"gross\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.97`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"vatAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.00`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"paymentMethod\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"card\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"docNumber\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"65776\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"warnings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Mai multe cote TVA\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`jsonc`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`jsonc`,children:_jsxs(_components.code,{language:`jsonc`,numberOfLines:`20`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// → POST /expenses body`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supplier_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Q9hjAB\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`11`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"65776\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-25\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"due_date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-25\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// dueDate was null → bon fiscal: due = issue`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`147.53`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vat\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mix\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"amount_vat_manual\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`24.15`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RON\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vat_breakdown\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`21`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`80.29`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"gross\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`97.15`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"vat_amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`16.86`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`11`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`66.27`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"gross\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`73.56`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"vat_amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`7.29`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"rate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"net\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.97`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"gross\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.97`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"vat_amount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.00`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"is_paid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"paid_date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-04-25\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"payment_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`4`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // paymentMethod=\"card\" → 4`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The server stores `,_jsx(_components.code,{children:`amount_wvat = 147.53`}),`, `,_jsx(_components.code,{children:`amount_vat = 24.15`}),`, `,_jsx(_components.code,{children:`amount_total = 171.68`}),` exactly.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`400 `,_jsx(_components.code,{children:`file_missing`})]}),` — no `,_jsx(_components.code,{children:`image`}),` part in the multipart body`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`400 `,_jsx(_components.code,{children:`invalid_file_type`})]}),` — unsupported extension (must be jpg/jpeg/png/webp)`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`400 `,_jsx(_components.code,{children:`invalid_mime_type`})]}),` — content sniff didn’t match an accepted image MIME`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`400 `,_jsx(_components.code,{children:`file_too_large`})]}),` — file exceeds 10 MB`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`502 `,_jsx(_components.code,{children:`ocr_unavailable`})]}),` — extraction failed; safe to retry`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`503 `,_jsx(_components.code,{children:`ocr_not_configured`})]}),` — OCR is not enabled on this deployment`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Scan receipt (OCR)","openapi":"POST /expenses/ocr-extract","description":"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.","href":"/api-reference/endpoints/expenses/ocr-extract"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response (200)","slug":"response-200","depth":2,"children":[]},{"title":"Mapping the response to Create Expense","slug":"mapping-the-response-to-create-expense","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"ocrExtractReceipt","tags":["Expenses"],"summary":"Scan receipt (OCR)","description":"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.","requestBody":"6d4b84c8-e7a1-45fb-8be8-c8001602d008","responses":{"200":"6192b46c-158c-4f55-9ee0-078c7f158a3b","400":"fe8a79cf-a558-4694-93a7-8aa6f473c263","502":"3e314b07-d0dd-4e60-a672-5902b1da3b0e","503":"7eec8bed-d2bc-4457-9eec-ba102bf2b38e"},"method":"post","type":"path","servers":["6ba42389-4596-4b9c-a6a5-63d6b53ec4cd"],"security":["9f07d007-3807-488f-876b-90e1d0feba5a"],"path":"/expenses/ocr-extract","baseUrlOptions":["https://api.contazen.ro/v1"],"title":"Scan receipt (OCR)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary","description":"Receipt image (JPEG / PNG / WebP, ≤ 10 MB).","isRequired":true,"uniqueKey":"image","typeLabel":"file"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"image":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"6192b46c-158c-4f55-9ee0-078c7f158a3b":{"description":"Extracted prefill payload","content":{"application/json":{"schema":{"type":"object","description":"Normalized prefill returned by POST /expenses/ocr-extract. Map to\na Create Expense body — see the OCR endpoint guide for the full\ntranslation table.\n","properties":{"tempFileToken":{"type":"string","description":"Opaque 15-min token for the staged image; pass through to attachments.","uniqueKey":"tempFileToken","typeLabel":"string"},"supplier":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","uniqueKey":"supplier.id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"supplier.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"supplier.id","typeLabel":"string | null"},"name":{"type":"string","uniqueKey":"supplier.name","typeLabel":"string"},"cui":{"oneOf":[{"type":"string","uniqueKey":"supplier.cui.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"supplier.cui.oneOf.1","typeLabel":"null"}],"uniqueKey":"supplier.cui","typeLabel":"string | null"},"matchedExisting":{"type":"boolean","uniqueKey":"supplier.matchedExisting","typeLabel":"boolean"}},"uniqueKey":"supplier","typeLabel":"object"},"category":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","uniqueKey":"category.id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"category.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"category.id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","uniqueKey":"category.name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"category.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"category.name","typeLabel":"string | null"}},"uniqueKey":"category","typeLabel":"object"},"date":{"type":"string","format":"date","uniqueKey":"date","typeLabel":"string\u003cdate>"},"dueDate":{"oneOf":[{"type":"string","uniqueKey":"dueDate.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"dueDate.oneOf.1","typeLabel":"null"}],"uniqueKey":"dueDate","typeLabel":"string | null"},"currency":{"type":"string","uniqueKey":"currency","typeLabel":"string"},"amount":{"type":"number","description":"Net subtotal (excluding VAT).","uniqueKey":"amount","typeLabel":"number"},"vatRate":{"type":"number","description":"Dominant VAT rate.","uniqueKey":"vatRate","typeLabel":"number"},"vatAmount":{"type":"number","description":"Total VAT across all rate tranches.","uniqueKey":"vatAmount","typeLabel":"number"},"vatMode":{"type":"string","enum":["flat","mix"],"description":"\"flat\" = single rate; send `vat = \u003cnumber>` on POST.\n\"mix\" = two or more non-zero rate tranches; send `vat = \"mix\"`\n + `amount_vat_manual = vatAmount` on POST.\n","uniqueKey":"vatMode","typeLabel":"enum\u003cstring>"},"total":{"type":"number","description":"Gross total printed on the receipt.","uniqueKey":"total","typeLabel":"number"},"vatIncluded":{"type":"boolean","uniqueKey":"vatIncluded","typeLabel":"boolean"},"vatBreakdown":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"rate":{"type":"number","uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].rate","typeLabel":"number"},"net":{"oneOf":[{"type":"number","uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].net.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].net.oneOf.1","typeLabel":"null"}],"uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].net","typeLabel":"number | null"},"gross":{"oneOf":[{"type":"number","uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].gross.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].gross.oneOf.1","typeLabel":"null"}],"uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].gross","typeLabel":"number | null"},"vatAmount":{"type":"number","uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX].vatAmount","typeLabel":"number"}},"uniqueKey":"vatBreakdown.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"vatBreakdown.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"rate":{"type":"number"},"net":{"oneOf":[{"type":"number"},{"type":"null"}]},"gross":{"oneOf":[{"type":"number"},{"type":"null"}]},"vatAmount":{"type":"number"}}},"uniqueKey":"vatBreakdown.oneOf.1","typeLabel":"null"}],"uniqueKey":"vatBreakdown","typeLabel":"object[] | null"},"paymentMethod":{"oneOf":[{"type":"string","enum":["cash","card","transfer","other",null],"description":"Inferred payment method. Map to `payment_type` on POST:\ncash→1, card→4, transfer→3, other/null→caller decides.\n","uniqueKey":"paymentMethod.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["cash","card","transfer","other",null],"description":"Inferred payment method. Map to `payment_type` on POST:\ncash→1, card→4, transfer→3, other/null→caller decides.\n","uniqueKey":"paymentMethod.oneOf.1","typeLabel":"null"}],"uniqueKey":"paymentMethod","typeLabel":"enum\u003cstring> | null"},"docNumber":{"oneOf":[{"type":"string","uniqueKey":"docNumber.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"docNumber.oneOf.1","typeLabel":"null"}],"uniqueKey":"docNumber","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"items":{"type":"array","description":"Optional. May be absent depending on document quality and\nstructure. Clients that ignore this field still get correct\ntotals via the aggregate fields.\n","items":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"\\items.items.[INDEX].name","typeLabel":"string"},"quantity":{"type":"number","uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"number"},"unit_price":{"type":"number","description":"NET (ex-VAT). Negative on discount rows (e.g. bon fiscal `DISCOUNT 4","40-A`).":null,"uniqueKey":"\\items.items.[INDEX].unit_price","typeLabel":"number"},"vat_rate":{"type":"number","uniqueKey":"\\items.items.[INDEX].vat_rate","typeLabel":"number"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items","typeLabel":"object[]"},"warnings":{"type":"array","description":"Pre-localized Romanian strings safe to surface in the form alert.","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"uniqueKey":"warnings","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"tempFileToken":"\u003cstring>","supplier":{"id":"\u003cstring>","name":"\u003cstring>","cui":"\u003cstring>","matchedExisting":true},"category":{"id":"\u003cstring>","name":"\u003cstring>"},"date":"2023-12-25","dueDate":"\u003cstring>","currency":"\u003cstring>","amount":123,"vatRate":123,"vatAmount":123,"vatMode":"flat","total":123,"vatIncluded":true,"vatBreakdown":[{"rate":123,"net":123,"gross":123,"vatAmount":123}],"paymentMethod":"cash","docNumber":"\u003cstring>","description":"\u003cstring>","items":[{"name":"\u003cstring>","quantity":123,"unit_price":123,"vat_rate":123}],"warnings":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"fe8a79cf-a558-4694-93a7-8aa6f473c263":{"description":"Invalid file (missing, wrong type, too large)","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"3e314b07-d0dd-4e60-a672-5902b1da3b0e":{"description":"Extraction failed (transient — safe to retry)","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"7eec8bed-d2bc-4457-9eec-ba102bf2b38e":{"description":"OCR not enabled on this deployment","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"9f07d007-3807-488f-876b-90e1d0feba5a":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Use your API key (sk_live_xxx or sk_test_xxx)","scopes":[]}}},"servers":{"6ba42389-4596-4b9c-a6a5-63d6b53ec4cd":{"url":"https://api.contazen.ro/v1","description":"Production API server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Use your API key (sk_live_xxx or sk_test_xxx)","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use your API key (sk_live_xxx or sk_test_xxx)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"contazen-api.openapi.yaml"},"subdomain":"contazen","siteName":"Contazen API Documentation","title":"Contazen API Documentation","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api-reference/endpoints/expenses/ocr-extract","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-04-26T16:36:34.864Z","originalFileLocation":"api-reference/endpoints/expenses/ocr-extract.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Contazen API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Contazen API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Build powerful integrations with the Contazen invoicing platform\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Contazen API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://contazen.ro/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Contazen API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Build powerful integrations with the Contazen invoicing platform\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://contazen.ro/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/contazen/D430dvg1ZCSsYClS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Contazen API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0f9d59\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoints/expenses/ocr-extract.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.contazen.ro/#organization\",\"name\":\"Contazen API Documentation\",\"url\":\"https://docs.contazen.ro\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.contazen.ro/logo/light.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.contazen.ro#website\",\"name\":\"Contazen API Documentation\",\"url\":\"https://docs.contazen.ro\",\"publisher\":{\"@id\":\"https://docs.contazen.ro/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract#webpage\",\"url\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract\",\"name\":\"Scan receipt (OCR)\",\"description\":\"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.\",\"dateModified\":\"2026-04-26T16:36:34.864Z\",\"isPartOf\":{\"@id\":\"https://docs.contazen.ro#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.contazen.ro/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Expenses\",\"item\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/list\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Scan receipt (OCR)\",\"item\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract#apireference\",\"headline\":\"Scan receipt (OCR)\",\"name\":\"Scan receipt (OCR)\",\"description\":\"Upload a receipt or invoice image and get a structured prefill payload ready to feed into Create Expense.\",\"url\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contazen.ro/api-reference/endpoints/expenses/ocr-extract#webpage\"},\"image\":\"https://contazen.ro/og-image.png\",\"dateModified\":\"2026-04-26T16:36:34.864Z\",\"publisher\":{\"@id\":\"https://docs.contazen.ro/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.contazen.ro#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Contazen API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Contazen API Documentation","nav":{"global":null,"versions":[{"version":"v1","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"},{"title":"Testing Your Integration","href":"/api-reference/testing"},{"group":"Clients","pages":[{"title":"List Clients","openapi":"GET /clients","href":"/api-reference/endpoints/clients/list"},{"title":"Create Client","openapi":"POST /clients","href":"/api-reference/endpoints/clients/create"},{"title":"Retrieve Client","openapi":"GET /clients/{id}","href":"/api-reference/endpoints/clients/retrieve"},{"title":"Update Client","openapi":"PUT /clients/{id}","href":"/api-reference/endpoints/clients/update"},{"title":"Delete Client","openapi":"DELETE /clients/{id}","href":"/api-reference/endpoints/clients/delete"}]},{"group":"Invoices","pages":[{"title":"List Invoices","openapi":"GET /invoices","href":"/api-reference/endpoints/invoices/list"},{"title":"Create Invoice","openapi":"POST /invoices","href":"/api-reference/endpoints/invoices/create"},{"title":"Retrieve Invoice","openapi":"GET /invoices/{id}","href":"/api-reference/endpoints/invoices/retrieve"},{"title":"Update Invoice","openapi":"PUT /invoices/{id}","href":"/api-reference/endpoints/invoices/update"},{"title":"Send Invoice","openapi":"POST /invoices/{id}/send","href":"/api-reference/endpoints/invoices/send"},{"title":"Send to SPV","openapi":"POST /invoices/{id}/send-to-spv","href":"/api-reference/endpoints/invoices/send-to-spv"},{"title":"Mark Invoice Paid","openapi":"POST /invoices/{id}/pay","href":"/api-reference/endpoints/invoices/pay"},{"title":"Download Invoice PDF","openapi":"GET /invoices/{id}/pdf","href":"/api-reference/endpoints/invoices/download-pdf"},{"title":"Void Invoice","openapi":"POST /invoices/{id}/void","href":"/api-reference/endpoints/invoices/void"},{"title":"Unvoid Invoice","openapi":"POST /invoices/{id}/unvoid","href":"/api-reference/endpoints/invoices/unvoid"},{"title":"Storno Invoice","openapi":"POST /invoices/{id}/storno","href":"/api-reference/endpoints/invoices/storno"},{"title":"Delete Invoice","openapi":"DELETE /invoices/{id}","href":"/api-reference/endpoints/invoices/delete"},{"title":"Get Invoice Totals","api":"GET /invoices/totals","href":"/api-reference/endpoints/invoices/totals"},{"title":"Get Invoice Statistics","api":"GET /invoices/stats","href":"/api-reference/endpoints/invoices/stats"},{"title":"Get Invoice History","openapi":"GET /invoices/{id}/history","href":"/api-reference/endpoints/invoices/history"},{"title":"Estimate Payment Date","openapi":"GET /invoices/{id}/payment-estimate","href":"/api-reference/endpoints/invoices/payment-estimate"}]},{"group":"Invoice Series","pages":[{"title":"List Invoice Series","openapi":"GET /invoice-series","href":"/api-reference/endpoints/invoice-series/list"},{"title":"Create an Invoice Series","openapi":"POST /invoice-series","href":"/api-reference/endpoints/invoice-series/create"},{"title":"Update an Invoice Series","openapi":"PUT /invoice-series/{id}","href":"/api-reference/endpoints/invoice-series/update"},{"title":"Set Series as Primary","openapi":"POST /invoice-series/{id}/set-primary","href":"/api-reference/endpoints/invoice-series/set-primary"},{"title":"Lock Series to Mobile Device","openapi":"POST /invoice-series/{id}/lock","href":"/api-reference/endpoints/invoice-series/lock"},{"title":"Unlock Series","openapi":"POST /invoice-series/{id}/unlock","href":"/api-reference/endpoints/invoice-series/unlock"},{"title":"Reserve Numbers","openapi":"POST /invoice-series/{id}/reserve-numbers","href":"/api-reference/endpoints/invoice-series/reserve-numbers"},{"title":"List Reservations","openapi":"GET /invoice-series/{id}/reservations","href":"/api-reference/endpoints/invoice-series/list-reservations"},{"title":"Release Reservation","openapi":"POST /invoice-series/reservations/{token}/release","href":"/api-reference/endpoints/invoice-series/release-reservation"}]},{"group":"Payments","pages":[{"title":"List Payments","openapi":"GET /payments","href":"/api-reference/endpoints/payments/list"},{"title":"Retrieve a Payment","openapi":"GET /payments/{id}","href":"/api-reference/endpoints/payments/retrieve"}]},{"group":"Receipts","pages":[{"title":"List Receipts","openapi":"GET /receipts","href":"/api-reference/endpoints/receipts/list"},{"title":"Create a Receipt","openapi":"POST /receipts","href":"/api-reference/endpoints/receipts/create"},{"title":"Retrieve a Receipt","openapi":"GET /receipts/{id}","href":"/api-reference/endpoints/receipts/retrieve"},{"title":"Update a Receipt","openapi":"PUT /receipts/{id}","href":"/api-reference/endpoints/receipts/update"},{"title":"Delete a Receipt","openapi":"DELETE /receipts/{id}","href":"/api-reference/endpoints/receipts/delete"}]},{"group":"Bank Accounts","pages":[{"title":"List Bank Accounts","openapi":"GET /bank-accounts","href":"/api-reference/endpoints/bank-accounts/list"},{"title":"Create a Bank Account","openapi":"POST /bank-accounts","href":"/api-reference/endpoints/bank-accounts/create"},{"title":"Update a Bank Account","openapi":"PUT /bank-accounts/{id}","href":"/api-reference/endpoints/bank-accounts/update"},{"title":"Delete a Bank Account","openapi":"DELETE /bank-accounts/{id}","href":"/api-reference/endpoints/bank-accounts/delete"}]},{"group":"Products","pages":[{"title":"List Products","openapi":"GET /products","href":"/api-reference/endpoints/products/list"},{"title":"Create Product","openapi":"POST /products","href":"/api-reference/endpoints/products/create"},{"title":"Retrieve Product","openapi":"GET /products/{id}","href":"/api-reference/endpoints/products/retrieve"},{"title":"Update Product","openapi":"PUT /products/{id}","href":"/api-reference/endpoints/products/update"},{"title":"Delete Product","openapi":"DELETE /products/{id}","href":"/api-reference/endpoints/products/delete"}]},{"group":"Expenses","pages":[{"title":"List Expenses","openapi":"GET /expenses","href":"/api-reference/endpoints/expenses/list"},{"title":"Create Expense","openapi":"POST /expenses","href":"/api-reference/endpoints/expenses/create"},{"title":"Retrieve Expense","openapi":"GET /expenses/{id}","href":"/api-reference/endpoints/expenses/retrieve"},{"title":"Update Expense","openapi":"PUT /expenses/{id}","href":"/api-reference/endpoints/expenses/update"},{"title":"Delete Expense","openapi":"DELETE /expenses/{id}","href":"/api-reference/endpoints/expenses/delete"},{"title":"Mark Expense as Paid","openapi":"POST /expenses/{id}/pay","href":"/api-reference/endpoints/expenses/pay"},{"title":"Export Expenses","openapi":"GET /expenses/export","href":"/api-reference/endpoints/expenses/export"},{"title":"Upload Attachment","openapi":"POST /expenses/{id}/attachments","href":"/api-reference/endpoints/expenses/attachment"},{"title":"Download e-Factura PDF","openapi":"GET /expenses/{id}/efactura-pdf","description":"Stream the ANAF e-Factura PDF for an expense imported from the SPV inbox","href":"/api-reference/endpoints/expenses/efactura-pdf"},{"title":"Scan receipt (OCR)","openapi":"POST /expenses/ocr-extract","href":"/api-reference/endpoints/expenses/ocr-extract"},{"title":"Check for duplicate expense","openapi":"POST /expenses/check-duplicate","description":"Probe the firm's books for an existing expense that would collide with a prospective payload. Useful before posting a scanned receipt.","href":"/api-reference/endpoints/expenses/check-duplicate"},{"title":"AI-categorize expenses","openapi":"POST /expenses/ai-categorize-batch","href":"/api-reference/endpoints/expenses/ai-categorize-batch"}]},{"group":"Expense Categories","pages":[{"title":"List Expense Categories","openapi":"GET /expense-categories","href":"/api-reference/endpoints/expense-categories/list"},{"title":"Create Expense Category","openapi":"POST /expense-categories","href":"/api-reference/endpoints/expense-categories/create"},{"title":"Retrieve Expense Category","openapi":"GET /expense-categories/{id}","href":"/api-reference/endpoints/expense-categories/retrieve"},{"title":"Update Expense Category","openapi":"PUT /expense-categories/{id}","href":"/api-reference/endpoints/expense-categories/update"},{"title":"Delete Expense Category","openapi":"DELETE /expense-categories/{id}","href":"/api-reference/endpoints/expense-categories/delete"}]},{"group":"Suppliers","pages":[{"title":"List Suppliers","openapi":"GET /suppliers","href":"/api-reference/endpoints/suppliers/list"},{"title":"Create Supplier","openapi":"POST /suppliers","href":"/api-reference/endpoints/suppliers/create"},{"title":"Retrieve Supplier","openapi":"GET /suppliers/{id}","href":"/api-reference/endpoints/suppliers/retrieve"},{"title":"Update Supplier","openapi":"PUT /suppliers/{id}","href":"/api-reference/endpoints/suppliers/update"},{"title":"Delete Supplier","openapi":"DELETE /suppliers/{id}","href":"/api-reference/endpoints/suppliers/delete"}]},{"group":"Supplier Bills","pages":[{"title":"List Supplier Bills","openapi":"GET /supplier-bills","href":"/api-reference/endpoints/supplier-bills/list"},{"title":"Sync from SPV","openapi":"POST /supplier-bills/sync","href":"/api-reference/endpoints/supplier-bills/sync"},{"title":"Retrieve Supplier Bill","openapi":"GET /supplier-bills/{id}","href":"/api-reference/endpoints/supplier-bills/retrieve"},{"title":"Mark Bill as Paid","openapi":"POST /supplier-bills/{id}/mark-paid","href":"/api-reference/endpoints/supplier-bills/mark-paid"},{"title":"Mark Bill as Unpaid","openapi":"POST /supplier-bills/{id}/mark-unpaid","href":"/api-reference/endpoints/supplier-bills/mark-unpaid"},{"title":"Download e-Factura PDF","openapi":"GET /supplier-bills/{id}/efactura-pdf","href":"/api-reference/endpoints/supplier-bills/efactura-pdf"},{"title":"Delete Supplier Bill","openapi":"DELETE /supplier-bills/{id}","href":"/api-reference/endpoints/supplier-bills/delete"}]},{"group":"Company Lookup","pages":[{"title":"Company Lookup","openapi":"GET /company-lookup","href":"/api-reference/endpoints/company-lookup/lookup"}]},{"group":"E-Factura","pages":[{"title":"Get E-Factura Status","openapi":"GET /efactura/status","href":"/api-reference/endpoints/efactura/status"}]},{"group":"VAT Rates","pages":[{"title":"List VAT Rates","openapi":"GET /vat-rates","href":"/api-reference/endpoints/vat-rates/list"},{"title":"Create VAT Rate","openapi":"POST /vat-rates","href":"/api-reference/endpoints/vat-rates/create"},{"title":"Update VAT Rate","openapi":"PUT /vat-rates/{id}","href":"/api-reference/endpoints/vat-rates/update"},{"title":"Delete VAT Rate","openapi":"DELETE /vat-rates/{id}","href":"/api-reference/endpoints/vat-rates/delete"}]},{"group":"Currencies","pages":[{"title":"List Currencies","openapi":"GET /currencies","href":"/api-reference/endpoints/currencies/list"},{"title":"Enable Currency","openapi":"POST /currencies","href":"/api-reference/endpoints/currencies/create"},{"title":"Disable Currency","openapi":"DELETE /currencies/{id}","href":"/api-reference/endpoints/currencies/delete"}]},{"group":"Languages","pages":[{"title":"List Languages","openapi":"GET /languages","href":"/api-reference/endpoints/languages/list"},{"title":"Enable Language","openapi":"POST /languages","href":"/api-reference/endpoints/languages/create"},{"title":"Disable Language","openapi":"DELETE /languages/{id}","href":"/api-reference/endpoints/languages/delete"}]},{"group":"Settings","pages":[{"title":"Get Settings","openapi":"GET /settings","href":"/api-reference/endpoints/settings/get"}]},{"group":"Conta","pages":[{"title":"Conta overview","href":"/api-reference/endpoints/conta/overview"},{"title":"Retrieve fiscal profile","openapi":"GET /accounting/profile","href":"/api-reference/endpoints/conta/get-profile"},{"title":"Sync fiscal profile","openapi":"POST /accounting/profile/sync","href":"/api-reference/endpoints/conta/sync-profile"},{"title":"List balance sheets","openapi":"GET /accounting/balance-sheets","href":"/api-reference/endpoints/conta/list-balance-sheets"},{"title":"Retrieve balance sheet","openapi":"GET /accounting/balance-sheets/{year}","href":"/api-reference/endpoints/conta/get-balance-sheet"},{"title":"Sync balance sheets","openapi":"POST /accounting/balance-sheets/sync","href":"/api-reference/endpoints/conta/sync-balance-sheets"}]}]}]}]}]},"title":"Contazen API Documentation","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}