Invoice ExtractionOct 19, 2026By Toolverly Editorial

Invoice Data Extraction API Platforms in 2026: Amazon Textract vs Azure AI Document Intelligence vs Google Document AI vs Mindee vs Veryfi

Compare five invoice extraction APIs by output evidence and review controls. High confidence alone missed three business errors in our executed fixture.

Calculator and laptop on a desk for financial work.

By Toolverly Editorial. Research and local analysis checked on October 19, 2026.

For invoice extraction, choose the API whose output contract your accounts-payable controls can preserve. Textract, Azure, Google, Mindee and Veryfi all address invoice data extraction, but normalized values, schema customization and confidence details are not interchangeable. Our executed five-record control fixture found three risky invoices that a high-confidence-only gate would accept: an arithmetic mismatch, an unknown currency and a duplicate.

This is an integration comparison for teams building their own review queue. It is different from purchasing an end-to-end accounts-payable workflow or extracting embedded PDF text with local PDF libraries. The five fixture records below are hypothetical canonical inputs, not fabricated outputs attributed to the vendors.

Compare evidence preservation before straight-through processing

Service Decision boundary What to verify
Amazon Textract Expense fields retain type/value evidence Do not equate a classified field with an approved invoice
Azure AI Document Intelligence Invoice model and line items Distinguish total from balance due and pin the API version
Google Document AI Entities and optional normalized values Keep raw mention and missing normalization visible
Mindee Editable invoice extraction schema Treat field/schema changes as adapter changes
Veryfi Optional confidence details and enrichment Enabling detail can change the JSON value shape

Amazon Textract

AnalyzeExpense documentation separates invoice/receipt summary fields and line-item groups. ExpenseField carries type information, detected values, labels where present and page context. Preserve that distinction: confidence that a token belongs to a field and confidence in the token’s text answer different questions.

Textract is a natural shortlist candidate when the surrounding ingestion and review stack already uses AWS. Its output still needs a supplier identity, currency handling and arithmetic rules before financial posting. Textract pricing varies by API operation, region and processed pages. A generic OCR price is not the AnalyzeExpense price, and this analysis did not run a billable page.

Azure AI Document Intelligence

The prebuilt invoice model extracts invoice-specific information and line items into structured output. Pin the model/API version in the integration contract. Do not read older sample response layouts as a promise about the current API: the documentation includes version-specific material and migration guidance.

For the fixture, the adapter must establish which source field means the invoice’s total, rather than substitute an outstanding balance or another amount. Credits and partial payments can make those different. Azure belongs on a shortlist where its invoice schema and existing Azure operations fit the team’s review pipeline; this is not an accuracy recommendation. Pricing distinguishes service tiers and extraction operations. Confirm pages and selected model rather than estimating from request count alone.

Google Document AI

Google’s processor catalog includes an Invoice Parser. Select a processor version and supported region before designing the adapter. The Document entity schema separates the original mention, optional normalized value, confidence and page anchoring. Normalization can be absent; do not turn that absence into an empty currency, zero amount or synthetic high confidence.

This separation is useful when reviewers need to compare the machine interpretation with the invoice evidence. It also makes a validation queue easier to explain: “normalization missing” is different from “extraction certain but arithmetic inconsistent.” Document AI pricing is processor-specific; invoice-parsing charges must not be replaced with basic document OCR rates. We do not compare extraction accuracy or processing speed.

Mindee

Mindee’s current invoice catalog model exposes total_amount, total_net, total_tax and detailed taxes, and lets users modify the data schema. That flexibility helps when an AP workflow needs additional information, but it makes schema governance part of the purchase. Freeze field accessors, types and model configuration alongside the adapter version.

In our simple fixture, net plus tax equals total. A richer schema can include discounts, multiple taxes or different invoice conventions; preserve those components instead of forcing every invoice through the simple equation. Mindee pricing uses subscription credit volumes and billing-period choices. Obtain the credit consumption for the chosen extraction and optional features; a credit should not automatically be treated as one page or one invoice.

Veryfi

Veryfi’s document-processing endpoint returns structured receipt/invoice data. A significant adapter detail appears in its confidence guide: confidence_details is off by default, and enabling it can change JSON structure. OCR confidence, mapping confidence and enriched values have different meanings. Request the needed detail deliberately and adapt the parser to its actual response shape.

Missing confidence is therefore not safely interchangeable with a score of 1.0, and enriched currency information may need different review evidence from directly read text. Veryfi pricing bills document transactions and lists a Starter monthly minimum. That differs from the page-based models above, particularly for multi-page invoices. Check document type, minimum commitment and paid add-ons before comparing any unit rate.

Original control result: confidence did not catch business errors

We executed five synthetic records for supplierA. All amounts below are decimal strings, with no discount, freight or withholding in this fixture:

  1. INV-101, EUR: 100.00 net + 20.00 tax = 120.00 total, confidence 0.99. Eligible for further controls.
  2. INV-102, EUR: 100.00 + 20.00 but total 128.00, confidence 0.99. Arithmetic review.
  3. INV-103: 100.00 + 20.00 = 120.00, currency absent, confidence 0.99. Currency review.
  4. A second INV-101/EUR with the same amounts and confidence 0.99. Duplicate-identity review.
  5. CR-104, EUR: -50.00 -10.00 =-60.00, confidence absent. Missing-confidence review; the credit’s sign remains intact.

A confidence-only threshold of 0.98 accepted the first four records, including all three business failures. Our layered rule left only the first eligible for further controls. It did not authorize payment or assess the fifth record as an extraction error.

from decimal import Decimal
seen = set()
def review(supplier, number, currency, net, tax, total, score):
    reasons = []
    key = (supplier, number, currency)
    if score is None: reasons.append("missing confidence")
    if not currency: reasons.append("missing currency")
    if Decimal(net)+Decimal(tax) != Decimal(total):
        reasons.append("arithmetic mismatch")
    if key in seen: reasons.append("duplicate identity")
    seen.add(key)
    return reasons
cases = [
 ("INV-101","EUR","100.00","20.00","120.00",.99),
 ("INV-102","EUR","100.00","20.00","128.00",.99),
 ("INV-103",None,"100.00","20.00","120.00",.99),
 ("INV-101","EUR","100.00","20.00","120.00",.99),
 ("CR-104","EUR","-50.00","-10.00","-60.00",None)]
for case in cases:
    print(review("supplier-A", *case))

The procurement consequence is concrete: request samples that preserve raw evidence, normalized values, missingness and stable invoice identity, then evaluate your review rules on those samples. A single vendor confidence threshold cannot be transferred across models without calibration. If most incoming invoices use complex discounts or partial payments, replace the fixture’s equation with a domain-specific reconciliation rule before evaluating automation rates.

Methodology and limitations

We reviewed the five official output contracts and executed the independent Decimal/identity fixture in Python 3.14.6 on macOS 26.6.2. Retained inputs, outputs and source ledgers distinguish documentation findings from our own routing rules. Decimal equality assumes the specified exact, already-rounded two-decimal amounts. Real invoices need supplier-specific identity rules, rounding tolerances, taxes, discounts, credit-note handling and purchase-order controls.

We did not submit invoices to these APIs, create accounts, measure extraction accuracy, calibrate confidence scores or test paid plans. The fixture is not a benchmark of any provider and its review rate is not a predicted customer automation rate. A representative, permissioned invoice corpus and a blind field-level evaluation remain necessary before an accuracy-based selection. AI assistance was used for research, local analysis code and writing; source claims and executed outputs were reviewed before publication.

Photo by Jakub Żerdzicki on Unsplash. Read about our publication or send a correction.