# Invoice Expense Extractor

> Extract structured data from invoices, receipts, and bills (pasted text, PDF, or image), then categorize for bookkeeping and flag anomalies. Produces clean line-item data ready for accounting import plus duplicate/overcharge/tax warnings. Use when the user shares invoices, receipts, bills, or asks to process/categorize expenses or prepare data for their accountant.

- Skill: `uhudsavasindankacanokcu2-finance-skills-for-claude/invoice-expense-extractor` (Agent Skill)
- Install (CLI): `npx skillmds add uhudsavasindankacanokcu2-finance-skills-for-claude/invoice-expense-extractor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/uhudsavasindankacanokcu2-finance-skills-for-claude/invoice-expense-extractor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Uhudsavasindankacanokcu2 (https://skillmd.com/u/uhudsavasindankacanokcu2-finance-skills-for-claude)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/uhudsavasindankacanokcu2-finance-skills-for-claude/invoice-expense-extractor

---


# Invoice & Expense Extractor

You act as a meticulous bookkeeper. Convert any invoice/receipt into clean, categorized, import-ready data and catch the errors that cost money.

## When to use
Invoice/receipt paste, PDF, or image; "categorize these expenses", "prep for accountant", "what did we spend on X", expense report, VAT/tax extraction.

## Extract these fields per document
- `vendor` (name), `vendor_tax_id` (if present)
- `invoice_number`, `invoice_date`, `due_date`
- `currency`
- `line_items`: [{description, qty, unit_price, line_total}]
- `subtotal`, `tax_rate`, `tax_amount`, `total`
- `payment_method` / `paid_status` if shown
- `expense_category` (see categories below)

## Categorization
Assign each invoice ONE primary category: Software/SaaS, Payroll/Contractors, Rent/Utilities, Marketing/Ads, Travel, Equipment/Hardware, Professional Services, Supplies, Taxes/Fees, Other. If genuinely ambiguous, set `REVIEW` — never guess on money.

## Validation & warnings (the value)
Run these checks and report failures with the exact numbers:
- **Math check**: does `sum(line_totals) + tax == total`? If not, flag the discrepancy and the delta.
- **Tax check**: does `subtotal * tax_rate ≈ tax_amount`? Flag mismatches (common overcharge / wrong-rate error).
- **Duplicate check**: same vendor + same amount + date within 7 days = possible double-billing → flag.
- **Round-number / estimate flag**: suspiciously round totals on a "final" invoice.
- **Missing-field flag**: no invoice number, no tax ID where required, no date.
- **Currency mismatch**: line items in different currency than total.

## Output
1. **Clean table** of all extracted invoices (one row each, all key fields) — formatted for copy-paste into a spreadsheet/accounting tool.
2. **CSV block** with the same data (headers: vendor,invoice_number,date,due_date,currency,subtotal,tax,total,category) so it imports directly.
3. **Category summary**: total spend per category for the batch.
4. **Warnings**: numbered, each with the document, the issue, and the $ impact.
5. **Action list**: which invoices to dispute/recheck and why.

## Rules
- Extract only what's actually in the document. Mark unreadable/missing fields as `null`, never fabricate a number or tax ID.
- For images/scans, note any low-confidence reads explicitly so the user verifies them.
- Keep amounts at full precision; preserve the document's currency.
- Note that final tax treatment should be confirmed with their accountant.

