Skip to content
All modules

Module 07 · business · intermediate

Invoice and Receipt Extractor

After this module you can turn PDF receipts and invoices into clean spreadsheet rows with AI: no manual data entry.

What it does

Upload a PDF to POST /webhook/receipt. n8n extracts the text, OpenAI pulls out vendor, invoice number, date, currency, subtotal, tax, total, category and line items, the values are cleaned and flagged for review if anything's missing, and the result is appended to an Expenses Google Sheet. Add ?dry_run=true to get the extraction without saving.

Flow

Receipt API → Has PDF? ─true─→ Extract PDF Text → Extract Receipt Data (OpenAI) → Clean Receipt → Dry Run?
                       └false→ 400                                                  ├true─→ Respond
                                                                                     └false→ Save to Expenses → Respond

Verification status

  • Upload validation (400s) and PDF text extraction: tested on n8n 2.43.6 with assets/sample-receipt.pdf (the text reaches the AI node, which then stops on the missing OpenAI credential).
  • AI extraction: needs an OpenAI credential. WITH_CREDS=1 ./test/test.sh checks 9 fields against the sample receipt.
  • Saving: needs Google Sheets. WITH_CREDS=1 SAVE=1 ./test/test.sh.

Files

File Tier Purpose
lesson.md Free Step-by-step build
workflow/starter.json Free Upload + PDF extraction only
workflow/learner.json Learner Finished workflow
workflow/business.json Business Business workflow (see setup guide)
setup-guide.md Business Credentials + configuration
assets/sample-receipt.pdf Learner Test receipt with known values
assets/expenses-template.csv Free Sheet header row
exercises.md Learner Practice tasks
solutions.md Learner Exercise solutions
notes.md Private Learning log
sell/ Private Offer, video script, blog post