SiteVerdict — PDF & Invoice Data Extractor (tables, line items) avatar

SiteVerdict — PDF & Invoice Data Extractor (tables, line items)

Pricing

Pay per event

Go to Apify Store
SiteVerdict — PDF & Invoice Data Extractor (tables, line items)

SiteVerdict — PDF & Invoice Data Extractor (tables, line items)

Extract text, tables and invoice data from PDFs without AI: supplier, VAT number (checked), invoice no., dates, net/VAT/gross totals and line items, each with a confidence score and arithmetic checks. UK/EU formats, optional OCR.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Aman Thakran

Aman Thakran

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Invoice & Receipt PDF Extractor → Xero, QuickBooks, Excel (SiteVerdict)

Drop in supplier invoices and receipts. Get back checked bills ready to import into Xero or QuickBooks: supplier, VAT/GST number (check digits verified), invoice number, dates, net / VAT / gross and every line item — with the maths checked, duplicates caught and anything doubtful flagged for review.

  • Accurate where it matters: 100% field precision and recall on 90 benchmark invoices across UK, EU, US and India; 100% precision / 89% recall on a blind stress set of awkward layouts. When it is unsure it leaves a field empty and says why — it does not guess. Benchmark details
  • Catches what costs money: 90 out of 90 planted errors caught (wrong totals, bad VAT/GSTIN check digits, wrong VAT amount, lines that do not multiply out), 0 false alarms on clean documents. Duplicate invoices are flagged within a batch and, optionally, across months.
  • Accountant exports included: Xero bill import CSV, QuickBooks Online bill CSV, an Excel workbook, UBL 2.1 / Peppol and Factur-X / ZUGFeRD XML drafts and an HTML batch report — no extra charge.
  • Cheap and private by default: about $12 per 1,000 one-page invoices. No AI reads your documents unless you switch it on with your own key.

Three ways people use it

  1. Accounts-payable inbox → Xero/QuickBooks. Your e-mail parser, Zapier or Make sends the PDF attachments as an Inbox batch. You get XERO_BILLS.csv / QUICKBOOKS_BILLS.csv plus a Needs review list. Each bill keeps the e-mail's sender, subject and message ID, so you can trace it back.
  2. Monthly supplier-portal sweep. Point Folder pages at the public page or bucket listing where a supplier posts its invoices, and turn on Monitor mode with a schedule. Each run processes only new or changed PDFs (unchanged files are skipped and not charged) and posts a Slack message when something needs attention.
  3. Bookkeeping practices and India GST. Validate a client's purchase invoices before filing: GSTIN check characters, CGST = SGST, intra-state vs inter-state (IGST) consistency, lakh/crore amounts (Rs. 1,18,000/-), and VAT number check digits for 29 European countries.

Before → after

A two-column Indian tax invoice PDF (TAX INVOICE … GSTIN: 33HGNFA3673J3ZP … CGST @ 9% Rs. 4,006.08 … SGST @ 9% Rs. 4,006.07 … Grand Total Rs. 52,524.08) becomes:

{
"documentType": "invoice",
"supplierName": "Deccan Cloud Solutions Pvt. Ltd.",
"supplierTaxIdType": "GSTIN",
"supplierVatNumber": "33HGNFA3673J3ZP",
"supplierVatChecksumValid": true,
"invoiceNumber": "GST/2026-27/0118",
"purchaseOrder": "PO-26643",
"issueDate": "2026-03-27",
"dueDate": "2026-04-26",
"currency": "INR",
"netTotal": 44511.93,
"vatTotal": 8012.15,
"grossTotal": 52524.08,
"vatRates": [18],
"lineItems": [{ "description": "Cotton fabric (metres)", "quantity": 11, "unitPrice": 219.2, "amount": 2411.2, "arithmeticOk": true }],
"checks": { "lineSumEqualsNet": true, "netPlusVatEqualsGross": true, "lineArithmeticFailed": 0, "vatMathOk": true },
"totalsConsistent": true,
"fieldConfidence": { "invoiceNumber": 0.92, "issueDate": 0.89, "currency": 0.93, "grossTotal": 0.98 },
"needsReview": false,
"duplicate": null
}

…and a row per line in XERO_BILLS.csv:

*ContactName,…,*InvoiceNumber,*InvoiceDate,*DueDate,Total,…,Description,*Quantity,*UnitAmount,*AccountCode,*TaxType,TaxAmount,…,Currency
Harbourside Print Co. Ltd,…,INV-2026-6872,15/01/2026,14/02/2026,8079.68,…,"A4 copier paper, 80gsm (box of 5 reams)",4,21.63,429,20% (VAT on Expenses),17.3,…,GBP

When something is wrong you see it in plain words, e.g. "needsReview": true, "reviewReasons": ["TOTALS_MISMATCH"] with the issue "Net 417.48 + VAT 83.5 = 500.98, but gross total is 510.98 (difference 10).", or "duplicate": { "of": "https://…/inv-0042.pdf", "reason": "same-invoice", "earlierRun": true }.

Benchmark (honest numbers)

Full method, per-field tables and caveats: BENCHMARK.md. All test documents are synthetic (no real personal data); competitor Actors were compared on their documentation, not run.

TestDocsPrecisionRecallNotes
Previous version (v1.0)60≈97.5%≈87.3%India GST only 62–72% right
This version, UK/EU/US/India corpora (incl. a held-out seed)90100%100%9 layout families, 9 regions, multi-rate VAT, GST
This version, blind stress set (8 unusual layouts written after the code was frozen)8100%89%misses are left empty and flagged, never guessed
Error detection (planted defects)9090 caught0 false alarmswrong totals, bad tax-ID check digits, wrong VAT, bad line maths
This ActorTypical alternatives on the Store
Invoice fields + line itemsyes, with confidence per fieldyes (OCR/LLM based) or text only
VAT (29 countries) + GSTIN check digitsyesnot documented
Per-rate VAT, CGST = SGST, line mathsyes"verify calculations" at best
Duplicate invoices (batch + across runs)yesnot documented
Xero / QuickBooks / Excel / UBL / Factur-Xyes, includednot documented
Folder monitoring + Slack alertsyesnot documented
Price per 1,000 one-page invoices≈ $12≈ $10 (receipt OCR, your own cloud keys for better engines) to $30–120

Pricing (pay per event)

EventPriceWhen
page-processed$0.002per page read from the PDF's text layer
invoice-extracted$0.010per document whose invoice/receipt fields are returned
ocr-page$0.010per scanned page read with OCR (only with OCR on; replaces page-processed)
ai-refined-document$0.005only when the optional AI step (your own key) filled or corrected a verified field

Examples: 100 one-page invoices ≈ $1.20. 1,000 ≈ $12. 1,000 scanned one-page receipts with OCR ≈ $20. Exports, duplicate checks, monitoring and alerts are included. You are not charged for failed, password-protected, corrupt, too-large or non-PDF files, exact duplicate files, or unchanged documents in Monitor mode. The run's maximum total charge is respected.

How to use it

  1. Add documents in any mix: PDF URLs (public or pre-signed S3/GCS/SharePoint/Drive links), files in Apify key-value stores (upload them in Console), an Inbox batch (e-mails with attachment links), a JSON batch record, folder pages (HTML index, public bucket listing or JSON list of PDF links) or a dataset of URLs from another Actor.
  2. Pick exports (Excel, Xero, QuickBooks by default; add CSV, UBL, Factur-X). For Xero set the account code (default 429 General Expenses) and the date format of your organisation.
  3. Optional: Monitor mode + a schedule, Remember invoices across runs, an HTTPS Slack/webhook alert, OCR for scans, AI refinement with your own Anthropic or OpenAI key.
  4. Run. Read the Invoices, Needs review and duplicates, Line items and Validation issues views, and download the files listed in OUTPUT.files.

Inbox batch example:

{
"inboxMessages": [
{ "messageId": "<a1@supplier.example>", "from": "accounts@supplier.example", "subject": "Invoice 4471",
"attachments": [{ "url": "https://files.example.com/inv-4471.pdf", "filename": "inv-4471.pdf" }] }
],
"exportFormats": ["xlsx", "xero", "quickbooks", "html"],
"rememberAcrossRuns": true
}

What it reads

  • Fields: supplier name, VAT number or GSTIN (format + check digit), company number, IBAN (mod-97), document type (invoice / receipt / credit note), invoice number, PO, issue and due date (or issue date + payment terms), currency, net, VAT/GST, gross, amount due, VAT rates, line items (description, quantity, unit price, VAT rate, amount).
  • Languages and formats: labels in English, German, French, Dutch, Spanish and Italian; amounts 1,234.56, 1.234,56, 1 234,56, Indian 1,23,456.78 and Rs. 1,18,000/-, negatives in parentheses; dates numeric, ISO, 3rd October 2026, 14. September 2026, 12-Sep-2026. Day/month order is decided per document (unambiguous dates settle it; $ + US address or sales tax means month first; £/€/₹ documents are day first).
  • Layouts: item tables with or without headers, multi-page tables, VAT summary tables on receipts, horizontal totals tables, labels above values, DIN 5008 sender lines, HSN/SAC and serial-number columns, discount columns.

Validation checks

TOTALS_MISMATCH, LINE_SUM_MISMATCH, LINE_ARITHMETIC, VAT_RATE_MISMATCH (per rate when lines carry rates), GST_CGST_SGST_MISMATCH, GST_TYPE_MISMATCH (IGST vs CGST+SGST against the two GSTIN state codes), VAT_NUMBER_CHECKSUM_INVALID / GSTIN_CHECKSUM_INVALID, VAT_RATE_UNUSUAL (not a standard/reduced rate of the supplier's country), DUE_BEFORE_ISSUE, MISSING_SUPPLIER_VAT_NUMBER / MISSING_SUPPLIER_GSTIN, DUPLICATE_INVOICE, and more. needsReview is set when a key field is missing or below your confidence threshold (default 80%), an error-level check fails, a money-affecting warning is raised, or the document is a duplicate.

Optional AI refinement (your key, off by default)

Only documents that need review are sent, and only their weak fields are asked for. Every answer is verified against the PDF text before it is accepted — names and numbers must be printed in the document, dates must be printed dates, tax IDs must pass their check digits, and totals must still add up — so the model cannot add invented data. Accepted values are marked ai-refined in fields and listed in aiRefinedFields. Default models: claude-sonnet-5-5 (Anthropic, with automatic server-side fallback if a request is declined) or gpt-4.1-mini (OpenAI); for large volumes a cheaper model such as claude-haiku-5-5 is usually enough because every answer is checked. Your provider bills the LLM usage; we charge ai-refined-document only when a verified field was filled or corrected.

FAQ

Is this OCR? Digital PDFs are read from their text layer (fast, exact). Scans need OCR on (tesseract.js; slower and less accurate, charged per OCR page). Do you check VAT numbers with VIES/HMRC? No — this Actor checks format and check digits locally (a failing check digit cannot be a real number). For live registry checks use the SiteVerdict VAT Validator Actor. Will Xero accept the CSV as is? Columns follow Xero's Import bills template (amounts tax-exclusive). Choose your account code and date format in the input; if your Xero organisation uses different tax-rate names, set Xero tax rate name. QuickBooks Online lets you map the columns once on its import screen. Are the UBL / Factur-X files valid e-invoices? They are drafts built from the PDF and are not schematron-validated; E_INVOICE_GAPS.json lists what each one is missing (often the buyer, which is off by default for privacy). Factur-X here is the CII XML, not a PDF/A-3 hybrid. What does a duplicate mean? Same file (hash), same supplier + invoice number, or same supplier + amount + date. Identical files are not processed or charged twice. With Remember invoices across runs or Monitor mode the keys are kept in a named key-value store in your account. Does monitoring re-download everything? It sends If-None-Match / If-Modified-Since, so unchanged files usually are not downloaded at all; anything unchanged is skipped and not charged. Can I keep my invoices private? Use pre-signed URLs or upload to a key-value store. PDFs are processed in memory and not kept unless you turn on Keep copies of the PDFs.

Limits

  • Accuracy figures come from synthetic test documents; unusual layouts can still miss fields (they are then empty and flagged, not guessed). Poor scans, handwriting and photos of crumpled receipts are hard for any OCR.
  • Images (JPG/PNG) are not accepted — PDF only. Max 100 MB / 2,000 pages per file (defaults 25 MB / 50 pages), 10,000 documents per run.
  • Folder discovery reads one public page per folder URL (no login, no JavaScript rendering, no bucket pagination) and respects robots.txt.
  • Buyer name and VAT number are off by default; turn them on only with a lawful basis.

Compliance, privacy and sources

  • No AI by default; with AI on, document text goes only to the provider whose key you supply, under your agreement with them.
  • Personal data: invoices can contain names of sole traders and buyers. Buyer details are off by default; PDFs are held in memory only; secrets (Authorization header, webhook URL, AI key) are never logged or stored in the output. You are the controller of the documents you process (UK GDPR / EU GDPR); this Actor acts on your instructions.
  • Network etiquette: honest User-Agent SiteVerdict/pdf-invoice-extractor (+aman.thakran@bharatfare.com), private/internal addresses blocked, robots.txt respected for folder pages, conditional requests in Monitor mode.
  • Rules used: VAT check-digit algorithms as published by national tax authorities (re-implemented from the public python-stdnum rules), GSTIN check character (GST Network Luhn mod-36), IBAN ISO 13616 mod-97, standard VAT/GST rates in force in October 2026.
  • Extraction results are not accounting, tax or legal advice. Check flagged documents against the originals before posting or paying.

Built by SiteVerdict (BharatFare Travel and Technologies Ltd, UK). Questions or a layout we miss: aman.thakran@bharatfare.com.