# How to add document OCR to Odoo

> Source: https://netray.co/integrations/odoo-document-ocr
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## Short answer

Odoo Enterprise includes Document Digitization for vendor bills through Odoo's IAP service, which works for common invoice layouts. For packing slips, certificates, drawings and local formats, run your own OCR or layout model, post extracted fields to Odoo drafts through the API, and send low-confidence items to a review queue.

## System

Odoo

## Capability

document-ocr

## Intro

Paper still moves manufacturing: supplier invoices, packing slips, certificates of conformance, mill test reports and inspection sheets. In Odoo, each of those ends up as an attachment someone has to read and key in.

Odoo's built-in digitization handles the best-known case, vendor bills, using a hosted service billed by credits. It is a good first step if the formats are common and sending invoices to a hosted service is acceptable. It does not cover receiving documents or technical paperwork.

The useful design question is not how accurate the OCR is, but what happens when it is wrong: how fields are checked against the PO and receipt, and how quickly a reviewer can correct them.

## Use Cases

### Vendor bill capture

**Description:** Extract vendor, bill number, date, totals and lines into a draft account.move, then match against the purchase.order and receipts.

### Packing slip to receipt

**Description:** Read supplier packing slips, match to open PO lines and pre-fill done quantities on the incoming stock.picking.

### Certificates of conformance and mill certs

**Description:** Extract heat or lot numbers and attach the certificate to the lot (stock.lot) so traceability reports include the document.

### Customer POs and drawings

**Description:** Read customer purchase orders and pull drawing numbers and revisions to check against the product's current revision.

### Inspection sheet digitisation

**Description:** Read handwritten or printed inspection forms and post results to quality checks, flagging unclear readings for a person.

## System Surface

- Document Digitization (Enterprise, account_invoice_extract and related) using Odoo IAP credits for vendor bills; availability and behaviour depend on version.
- ir.attachment holds files; attachments linked to account.move, purchase.order, stock.picking and stock.lot via res_model and res_id.
- External API (XML-RPC, JSON-RPC, newer JSON-2 on recent versions) to create draft records and attach files from an outside OCR service.
- Documents app (Enterprise) with workflow rules that turn a file in a folder into a bill, which can be used as the inbox for scans.
- Lot and traceability: stock.lot and stock.move.line lot names, used for linking certificates to material.

## How It Works

### Classify documents

**Detail:** Detect type first (invoice, packing slip, CoC, drawing). Each type has a different extraction schema and review rule.

### Choose the engine

**Detail:** Use Odoo digitization for plain vendor bills, or your own OCR plus layout or vision-language model for tables, stamps and non-Latin text.

### Extract with confidence

**Detail:** Return field values with a confidence score and the page location, so a reviewer can see where each came from.

### Validate against Odoo

**Detail:** Check vendor against res.partner, lines against the PO, totals against the sum, and duplicates by vendor plus bill number.

### Create a draft

**Detail:** Post a draft record through the API with the file attached. Do not post bills or validate receipts automatically.

### Review queue

**Detail:** Route only low-confidence or mismatched documents to a person, with a side-by-side view of the scan and the draft.

### Feed back corrections

**Detail:** Store reviewer corrections to tune templates and mapping tables for repeat vendors.

## Example Flows

### Packing slip receiving

**Trigger:** A scanned packing slip is dropped in the receiving folder.

**Steps:**

- The OCR service reads PO number, part numbers and quantities.
- It matches lines to the open incoming stock.picking.
- It pre-fills quantities and flags differences.
- The receiver confirms and validates the receipt.

**Result:** Receiving takes a quick check instead of keying, with exceptions visible.

### Mill cert attached to lot

**Trigger:** A certificate PDF is emailed or scanned for a steel shipment.

**Steps:**

- The service extracts heat number, grade and standard.
- It finds the lot in stock.lot by name.
- It attaches the PDF to the lot and notes the extracted values.

**Result:** Quality can open the lot and see its certificate without searching folders.

## On Prem

Odoo's built-in digitization is a hosted IAP service, so documents leave your network; check that against your policy for supplier invoices, and note that it is not available on every deployment type. For on-prem, run OCR yourself: open-source engines such as Tesseract or PaddleOCR for text, plus a document layout or vision-language model served from your own GPUs with vLLM or Ollama for tables and messy scans. The service reads files from a local share or Odoo attachments, writes drafts back through the internal API, and keeps both documents and extracted data inside your network. For defense and aerospace paperwork, a private pipeline is usually the only acceptable design. Plan GPU capacity for peak scanning batches rather than average load.

## Security

- Scan uploads for malware and restrict allowed file types and sizes.
- Store extraction results and originals under the same access rules as the Odoo record.
- Never let extracted text trigger actions; treat it strictly as data.
- Keep a full audit trail of original file, extracted values, reviewer changes and final record.
- For controlled documents, restrict the pipeline to a network enclave with no outbound access.

## Options

### Odoo Document Digitization

**Fit:** Enterprise customers with standard vendor bills and no restriction on hosted processing.

**Effort:** Configuration only, plus per-document credit cost.

### In-house OCR pipeline with the Odoo API

**Fit:** Teams with a developer who can maintain extraction rules and a review screen.

**Effort:** Four to eight weeks for several document types.

### Partner build with Netray

**Fit:** Private on-prem extraction of receiving, quality and engineering documents.

**Effort:** Several weeks per document family, including review UI.

## Pitfalls

- Trusting totals without checking the sum of lines and tax.
- Duplicate bills created by re-scanning the same document.
- Part numbers misread (zero versus letter O), creating wrong matches; use fuzzy matching with a human step.
- Handwriting and stamps that reduce accuracy; measure on your own documents, not a vendor demo.
- No plan for rotated, skewed or multi-page scans.

## Faq

### Does Odoo have built-in invoice OCR?

**Answer:** Odoo Enterprise offers Document Digitization for vendor bills through its IAP service, which needs credits. The specifics vary by version and plan. Community does not include it, so Community users add an external OCR service through the API.

### Can OCR handle packing slips and certificates?

**Answer:** Not through the standard digitization, which targets invoices. A custom pipeline can read packing slips and certificates, but layouts vary by supplier, so you test on real samples, map part numbers carefully and route low-confidence results to a reviewer.

### How accurate will it be?

**Answer:** It depends on scan quality and layout consistency. Clean digital PDFs from repeat vendors can be extracted well, while skewed scans and handwriting are harder. Measure accuracy per field on your documents and set thresholds so risky fields are always reviewed.

### Can we keep documents on our own servers?

**Answer:** Yes. Run OCR and a layout or vision model on your own hardware, and write drafts into Odoo over the internal API. You give up the convenience of Odoo's hosted digitization but keep documents and extracted data within your network.

### Should extracted bills post automatically?

**Answer:** Generally no. Create drafts, match against the PO and receipt, and let a person validate. Auto-posting is only reasonable for narrow cases with strong matching and a good history, and even then audit samples regularly.

## Search terms

odoo document ocr, odoo invoice ocr, odoo document digitization, odoo packing slip ocr, odoo ocr on-premise, odoo scan vendor bills, odoo ocr community edition, odoo certificate of conformance, odoo ai document extraction

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
