> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.ottimate.com/v-1/invoices/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ottimate.com/_mcp/server. # Invoices An **invoice** is a document requesting payment for products or services that a vendor provided to a buyer during a specific transaction. Invoices typically contain line items detailing each good and service provided. ## Invoice lifecycle in Ottimate In a typical invoice management cycle, users or vendors can upload invoice files to Ottimate via email, desktop, or mobile. Structured invoice data is extracted within seconds through Ottimate's proprietary AI extraction engine, InstantCapture. The invoice is then matched against purchase orders and receipts (if applicable) and coded with appropriate dimensions. Once approved, the invoice is submitted for payment, and invoice data is recorded in the general ledger in the client's ERP system. ## What you can do with Invoice APIs * **Push structured invoice data** - Send invoice data to Ottimate for coding and approval routing * **Bulk export digitized invoices** - Retrieve processed invoice data from Ottimate * **Fetch line-item details** - Get detailed line-item data for a specific invoice * **Correct invoices after ingestion** - Update header fields, line items, dimensions, and attached images * **Manage approvals** - Add approvers, approve or revoke, and inspect the approval chain * **Import and export in bulk** - Create up to 100 invoices per request, and pull catalog-matched receiver data > **Info** > > **Invoice `status` is derived, not set.** Ottimate computes an invoice's lifecycle status from its underlying state. `PATCH /v1/invoices/{id}` will accept a `status` field and then ignore it, so it cannot be used to move an invoice through the lifecycle — use the approval endpoints, the mark-exported endpoints, or `POST /v1/invoices/{id}/flag` instead. See [Invoice lifecycle](/invoice-lifecycle) and [Updating invoices](/updating-invoices). ## API endpoints | Endpoint | Description | | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | | [`GET /v1/invoices`](/api-reference/api-reference/invoices/get-invoices-root) | List invoices with filters for company, location, vendor, status, and date range | | [`GET /v1/invoices/{id}`](/api-reference/api-reference/invoices/get-invoices-id) | Get one invoice with its full line items | | [`POST /v1/invoices`](/api-reference/api-reference/invoices/post-invoices-root) | Create an invoice from structured data | | [`POST /v1/invoices/upload`](/api-reference/api-reference/invoices/post-invoices-upload) | Upload a document for AI extraction | | [`PATCH /v1/invoices/{id}`](/api-reference/api-reference/invoices/patch-invoices-id) | Update header fields, line items, dimensions, and images | | [`PATCH /v1/invoices/{id}/images`](/api-reference/api-reference/invoices/patch-invoices-id-images) | Replace invoice images via `multipart/form-data` | | [`POST /v1/invoices/{id}/flag`](/api-reference/api-reference/invoices/post-invoices-id-flag) | Flag an invoice for manual review | | [`POST /v1/invoices/import`](/api-reference/api-reference/invoices/post-invoices-import) | Create up to 100 invoices asynchronously | | [`GET /v1/invoices/receiver-export`](/api-reference/api-reference/invoices/get-invoices-receiver-export) | Catalog-matched line data for exported invoices | | [`POST /v1/invoices/mark-exported`](/api-reference/api-reference/invoices/post-invoices-mark-exported) | Mark invoices as exported to your ERP | | [`POST /v1/invoices/mark-unexported`](/api-reference/api-reference/invoices/post-invoices-mark-unexported) | Remove the exported mark from invoices | Approval endpoints are listed separately in [Invoice approvals](/invoice-approvals). For `PATCH` behaviour see [Updating invoices](/updating-invoices), and for `import` and `receiver-export` see [Bulk invoice operations](/invoice-bulk-operations). > Learn about how Ottimate manages vendor invoices ## Docs - [Invoice lifecycle](https://docs.ottimate.com/v-1/invoice-lifecycle.md): Learn about the life cycle of an invoice object in Ottimate - [Updating invoices](https://docs.ottimate.com/v-1/updating-invoices.md): Correct invoice header fields, line items, and attached images after ingestion - [Line Items](https://docs.ottimate.com/v-1/line-items.md): Learn about how Ottimate manages invoice line items - [Invoice Approvals](https://docs.ottimate.com/v-1/invoice-approvals.md): Learn about how to programmatically manage approvals in Ottimate - [Bulk invoice operations](https://docs.ottimate.com/v-1/invoice-bulk-operations.md): Import invoices in bulk and export catalog-matched receiver data