Post

#PowerPlatformTip 140: Free Invoice OCR (Process 500 PDFs/Month for €0)

#PowerPlatformTip 140: Free Invoice OCR (Process 500 PDFs/Month for €0)

TL;DR: Create an Azure AI Document Intelligence resource on the free F0 tier (500 pages per month) and call it from Power Automate with the standard connector Azure AI Document Intelligence (form recognizer) and the prebuilt-invoice model. Set Pages to 1 so each invoice costs one page: that’s 500 invoices a month without Azure costs and without a premium license. You get the fields vendor, invoice number, invoice date, due date and total, each with a confidence value.

💡 Challenge

Accounts-payable still receives hundreds of PDF invoices, reminders, and receipts every month. Manual keying of amounts, due dates, and suppliers is slow, costly, and error-prone.

✅ Solution

Let a prebuilt model read the invoice instead of a person. Azure AI Document Intelligence has a ready-made invoice model that returns structured fields, not just text. Its free tier covers 500 pages a month, and the Power Automate connector for it is a standard connector.

flowchart LR
    A["File created<br/>Incoming Invoices"] --> B["Get file content"]
    B --> C["Document Intelligence<br/>prebuilt-invoice, Pages = 1"]
    C --> D{"Confidence<br/>high enough?"}
    D -->|Yes| E["Save fields<br/>move PDF to Archive"]
    D -->|No| F["Send to a person<br/>for review"]

🔧 How It’s Done

1. Create the Azure resource

🔸 In the Azure portal, create a Document Intelligence resource with pricing tier Free F0. Copy the endpoint and one of the keys.

2. Trigger

🔸 SharePoint When a file is created in a folder on the folder Incoming Invoices, followed by Get file content.

🔸 In the trigger’s Settings, turn on Concurrency control with a degree of 1. F0 accepts one analyze request per second, so parallel runs would fail with 429 Too many requests.

3. Analyze the invoice

🔸 Action Azure AI Document Intelligence (form recognizer) → Analyze Document for Prebuilt or Custom models (v4.x API), connection with the endpoint and key from step 1.

🔸 Document Intelligence API version: 2024-11-30 (the v4.0 GA version)

🔸 Model Identifier: prebuilt-invoice

🔸 Document/Image File Content: the file content from step 2

🔸 Pages: 1, so only page 1 is analyzed and billed. If the total is on the last page of your suppliers’ invoices, use 1-2 (F0 analyzes at most the first two pages per request).

4. Use the fields

🔸 The invoice model returns, among others, VendorName, InvoiceId, InvoiceDate, DueDate, InvoiceTotal, SubTotal, TotalTax and AmountDue. Every field has a confidence value between 0 and 1.

5. Check and post-process

🔸 Condition: required fields present and confidence above your threshold, for example 0.8.

🔸 Yes: write the fields to a SharePoint list, send a Teams message to accounts payable and move the PDF to an Archive folder.

🔸 No: send the PDF with the extracted values to a person for review.

🎉 Result

Every new invoice is read automatically. Accounts payable receives vendor, invoice number, dates and total as structured data within seconds, and only invoices the model is unsure about land on someone’s desk.

🌟 Key Advantages

🔸 No Azure costs up to 500 pages per month on F0

🔸 No premium license: the Document Intelligence connector and SharePoint are standard connectors

🔸 Structured fields, not just raw text, with a confidence value per field

🔸 Multilingual: the invoice model supports invoices in many languages

🔸 Upgrade path: switch the resource to S0 when your volume grows, the flow stays the same

⚠️ Good to Know

🔸 F0 limits: 500 pages per month, at most the first two pages per request, a maximum file size of 4 MB and one analyze request per second. Larger files need S0.

🔸 Alternatives with premium connectors: Adobe PDF Services and Cloudmersive PDF also extract text from PDFs, but both are premium connectors and need a Power Automate Premium license. They return text, so you’d still have to find the fields yourself.

🔸 Summaries: if you also want a short text summary, the standard connector Azure Cognitive Service for Language offers Async Abstractive Summarization (a preview API version). For accounts payable, the structured fields are usually what you need.

🛠️ FAQ

1. Do I need a premium licence?

No. Azure AI Document Intelligence (form recognizer) and SharePoint are standard connectors. You need an Azure subscription for the F0 resource.

2. What about multi-page PDFs?

F0 analyzes only the first two pages per request. With Pages set to 1 or 1-2 you control exactly what is read and billed. On S0, all pages are analyzed unless you set a page range, and every page counts.

3. Why do some runs fail with 429?

F0 allows one analyze request per second. Set the trigger’s concurrency control to 1, or add a retry policy on the analyze action.

This tip is by Marcel Lehmann, Microsoft MVP (Business Applications) and founder of the Power Platform Academy – live Power Platform workshops, free or CHF 49. Join the workshop waitlist to get notified about new dates. For companies that want this implemented for them, see KMUpower – Power Platform consulting & automation for SMEs (DACH).

This post is licensed under CC BY 4.0 by the author.

Microsoft and the Power Platform product names (for example Power Apps, Power Automate, Copilot Studio) are trademarks of the Microsoft group of companies. This is an independent website. It is not operated, sponsored or endorsed by Microsoft.