Introduction
Processing large volumes of documents manually is time-consuming and error-prone. Whether dealing with invoices, receipts, contracts, or business forms, extracting structured data efficiently is crucial for automation.
Azure Document Intelligence (formerly Azure Form Recognizer) is a cloud-based AI service that enables automated document processing using pre-trained and custom models. With just an API call, you can:
- ✅ Extract key-value pairs from structured forms.
- ✅ Process invoices, receipts, and business cards.
- ✅ Recognize handwritten text and printed text.
- ✅ Automate data extraction into databases or applications.
This article walks through setting up Azure Document Intelligence, sending a document for analysis, and visualizing extracted data.
![Azure service]()
1️⃣ Setting Up Azure Document Intelligence
Before sending documents for processing, you need to set up Azure Document Intelligence in the Azure Portal.
Steps to Create a Document Intelligence Resource
1️⃣ Log in to Azure Portal.
2️⃣ Click "Create a resource" → Search for "Document Intelligence".
3️⃣ Select "Cognitive Services → Document Intelligence".
4️⃣ Configure the details:
- Subscription: Select an active Azure subscription.
- Resource Group: Create or use an existing one.
- Region: Pick a region closest to your users.
- Pricing Tier: Choose "Standard" or "Free (F0)" for limited usage.
5️⃣ Click "Review + Create" → then "Create".
Once deployed, navigate to "Keys and Endpoint" in the Document Intelligence resource to get:
- ✔ API Key (used for authentication)
- ✔ Endpoint URL (base URL for sending API requests)
![Document Intelligence]()
2️⃣ Sending a Document to Azure Document Intelligence API
Now that the resource is set up, it's time to upload a document (PDF, image, or scanned document) for analysis.
Here’s a Python script to send a document to Azure Document Intelligence API:
import requests
# Replace with your Azure API details
API_KEY = "<your_api_key>"
ENDPOINT = "<your_endpoint>/formrecognizer/documentModels/prebuilt-invoice/analyze?api-version=2023-07-31-preview"
headers = {
"Ocp-Apim-Subscription-Key": API_KEY,
"Content-Type": "application/pdf"
}
# Open a sample PDF file
with open("sample_invoice.pdf", "rb") as file_data:
response = requests.post(ENDPOINT, headers=headers, data=file_data)
# Get operation location (needed to retrieve results)
operation_url = response.headers["Operation-Location"]
print(f"Processing started: {operation_url}")
📌 What’s Happening?
- The script uploads a document (PDF) to the API.
- The response returns an Operation-Location URL, which is needed to retrieve results later.
3️⃣ Retrieving & Parsing Extracted Data
After submitting a document, the API takes a few seconds to process it. The next step is retrieving the extracted data.
import time
import requests
# Wait for processing to complete
time.sleep(5)
# Retrieve results from Operation-Location
response = requests.get(operation_url, headers={"Ocp-Apim-Subscription-Key": API_KEY})
result = response.json()
print("Extracted Document Data:")
print(result)
📌 What’s Happening?
- The script waits for processing to complete.
- It retrieves the extracted text in JSON format.
🔗 Azure Docs: Document Intelligence API Reference
4️⃣ Extracting Key Fields from Documents
The API returns structured data, which can be filtered for important key-value pairs such as invoice numbers, dates, and totals.
![Extracting key fields from documents]()
📌 Example Output
![Example output]()
5️⃣ Visualizing Extracted Data
To better understand extracted document data, you can visualize it in a table or chart.
Using Pandas to Display Data in a Table
import pandas as pd
# Create a DataFrame
df = pd.DataFrame([
{"Invoice Number": invoice_number, "Total Amount": total_amount, "Invoice Date": invoice_date}
])
print(df)
6️⃣ Automating Document Processing Workflows
Once the extracted data is available, you can:
- ✅ Save it to a database for future reference.
- ✅ Integrate with Power Automate for real-time invoice processing.
- ✅ Use Azure Logic Apps to send automated email alerts.
For example, integrating Azure Logic Apps can send an email when an invoice total exceeds a threshold:
- 1️⃣ Go to Azure Logic Apps in Azure Portal.
- 2️⃣ Create a new Logic App → Choose a Trigger (e.g., "When a file is added to OneDrive").
- 3️⃣ Add an Action → Select "Send Email" (via Outlook, SendGrid, etc.).
- 4️⃣ Configure the email body with extracted invoice details.
- 5️⃣ Save and test the workflow.
🚀 Conclusion
Azure Document Intelligence simplifies automated document processing by extracting structured data from invoices, receipts, and contracts. With just an API call, you can:
- ✅ Convert scanned documents into structured data.
- ✅ Automate invoice processing and financial workflows.
- ✅ Integrate with databases, CRMs, and automation tools.
🔗 Further Learning