Overview: the documents behind the money
Behind every payment and every delivery sits a document. A supplier issues a credit note to reverse an overcharge, a warehouse signs a delivery note to confirm what arrived, a customer weighs a quote before ordering, an employee files an expense report for reimbursement, a contractor submits a timesheetfor the hours worked. Each is a table locked inside a PDF, and the work — matching, paying, comparing, billing — can't start until that table is data.
This guide covers a reliable way to do that: what makes these business documents different from an ordinary file, the one structural pattern they nearly all share, a general method that works across all of them, and then the specific handling each type needs. The goal throughout is the same — clean rows with real numbers, correct signs and every field in its own column, ready to use the moment they land.
The approach is document-agnostic on purpose. Rather than learn a separate trick for each form, you learn one workflow and apply it to the whole stack, so a credit note and a timesheet come out in shapes you can trust and combine. That consistency is what turns a drawer of assorted paperwork into a dataset your spreadsheets and systems can actually read.
What counts as a business document
For this guide, a business document is a structured transactional form that a business sends, receives or files as part of operating — distinct from a bank statement or a formal financial statement. The five in focus here are the ones most teams handle by hand and most want out of PDF: credit notes, delivery notes (and packing slips), quotes (and estimates), expense reports, and timesheets.
They sit alongside the documents FlowParse already converts — invoices, purchase orders, receipts — and belong to the same families. A credit note mirrors an invoice; a delivery note completes a purchase order; a quote precedes an order; an expense report rolls up receipts; a timesheet justifies a payroll run or a client bill. Understanding those relationships is half the value, because it tells you which documents to extract together so the match is a lookup rather than a chore.
Why business documents are hard to extract
The trouble is that these documents come from parties you don't control. Every supplier lays out a credit note differently, every employee's expense app exports a different template, every timesheet grid is arranged to suit whoever designed it. A tool that expects fields at fixed coordinates works on one layout and breaks on the next, which is why template-based extraction never kept up with the variety a real business receives.
Copy-paste fails for a different reason: a PDF has no real structure to copy. Paste a delivery note table into a spreadsheet and the columns collapse, quantities merge with descriptions, and a multi-line entry wraps into a neighbouring row. Re-typing avoids that but introduces its own errors — a transposed quantity, a mis-keyed amount, a credit entered as a positive — that hide until something won't reconcile.
The answer is extraction that reads by meaning. Instead of looking for a value at a position, an AI extractor identifies what a value is — this is the credit total, this is the quantity delivered, this is the billable hours — so it adapts to a layout it has never seen. That is what lets one workflow handle documents from dozens of sources without a template for each, and it is the foundation of everything that follows.
The header-plus-lines pattern
Almost every business document shares one structure: a header of document-level fields and a body of repeating lines. On a credit note the header is the number, date and the invoice it corrects; the lines are the credited items. On a delivery note the header is the delivery and order references; the lines are the items and quantities. On an expense report the header is the employee and period; the lines are the claims. On a timesheet the header is the person and week; the lines are the entries.
Getting this separation right is the single most important thing an extractor does. The header context has to travel onto every line so a row is never orphaned — every credited item knows which credit note it belongs to, every hour knows whose timesheet it came from. When that context is attached to each row, the data filters, sorts and totals cleanly; when it isn't, you get a floating list of numbers with no way to tell them apart.
Recognising the pattern also tells you what a good extraction looks like before you even open the preview: one row per line, the header fields repeated or keyed across those rows, real typed numbers in the amount and quantity columns, and a total you can check against the sum of the lines. Everything in the method below is in service of producing exactly that shape.
The general method, step by step
The workflow is the same whichever of the five documents you are converting, which is precisely what makes it worth learning once.
1. Upload the document
Drop in the credit note, delivery note, quote, expense report or timesheet — one file or a batch. Digital PDFs convert fastest; scans and photos are handled too, going through OCR first.
2. Let the AI read it
Extraction separates the header from the lines and maps each field by meaning, so the credit total, the delivered quantity or the billable hours land in the right column regardless of the layout.
3. Review the preview
The editable preview shows the structured result. The arithmetic is cross-checked where the document carries a total, and any low-confidence cell is flagged for a ten-second correction.
4. Export
Download Excel or CSV with the structure intact, push to Google Sheets, post an accounting-ready file, or receive structured JSON over the API.
Four steps, seconds of processing, and the only judgement you supply is the quick review — which is where your attention actually adds value. The rest, the transcription that used to be the whole job, is done for you.
By document type: what to capture
Each document shares the header-plus-lines pattern but carries its own key fields and its own trap. This table maps the five, and the sections that follow go deeper on each.
| Document | Key fields | The thing to get right |
|---|---|---|
| Credit note | Number, original invoice ref, credited lines, VAT, total | Sign the amounts negative; match to the invoice |
| Delivery note | Delivery & order refs, item codes, qty ordered/delivered | Keep the quantities distinct for the three-way match |
| Quote / estimate | Quote number, validity, line items, unit prices, total | Capture the validity date; keep unit prices comparable |
| Expense report | Employee, period, category, amount, tax, reimbursable | Split the VAT; total only what's reimbursable |
| Timesheet | Employee, date, project, hours, rate, overtime | Read any layout; keep hours as real numbers |
Credit notes: signs and matching
A credit note reverses value on an invoice, and two things have to be right for it to be usable. First, the amounts must be signed negative, so they subtract the moment they enter a total; a credit keyed as a positive silently overstates a supplier balance or a VAT reclaim, and the error only surfaces when a statement won't reconcile. A good extraction exports credits as negatives by default.
Second, the credit only makes sense against the invoice it corrects, so the original invoice referencehas to be captured as its own field. With it, pairing each credit to its invoice is a lookup, and the net position — invoice total minus credit total — falls out of a single formula. Capture the VAT per line too, because a credit reverses tax as well as value, and a mixed-rate credit that's averaged into one figure will throw your return out.
Delivery notes: quantities and the three-way match
A delivery note is about quantities, not money, and the key is to keep quantity ordered, delivered and back-orderedas distinct typed columns. That's what lets you spot a short delivery — any row where delivered is less than ordered — with a single filter, and short deliveries are the source of most goods-received disputes.
Capture the order referenceso the note lines up with its purchase order and invoice: that is the three-way match, the core control that stops you paying for goods you didn't receive. Keep the item or SKU codes exactly as printed, because one wrong character breaks the link to your inventory. And don't let a converter fabricate prices where a packing slip deliberately shows none — the quantities stand on their own.
Quotes and estimates: comparison and validity
A quote exists to be compared or accepted, so the useful output is structured line items with real unit prices. Convert several supplier quotes to the same columns and a comparison that used to mean flipping between PDFs becomes one sortable sheet — including which supplier is cheaper on which line and which quote quietly omits delivery.
Quotes carry a field invoices don't: the validity date. Capture it as its own column so you can see at a glance which proposals are still live and which need re-quoting, and so nobody builds an order on a price that has lapsed. When a quote is accepted, its structured lines copy straight into a purchase order, so the price you agreed is the price you order — no drift, no re-keying.
Expense reports: policy, VAT and reimbursement
An expense report rolls up spending into a claim, and finance has to check every line against policy, code it, and pay the right amount. Extracted as structured rows, policy checks become rules: filter for any line over a limit, flag categories that need sign-off, total by category to spot an outlier — consistently, across every claim, instead of a line-by-line eyeball.
Two fields decide the money. Capture the tax per line so recoverable VAT on staff spending is a column total rather than a figure picked out receipt by receipt. And capture the reimbursable flagwhere the report distinguishes it, so the amount actually owed to the employee is a filtered total — billable and company-card lines excluded. That's the difference between paying staff correctly and quietly over- or under-paying them. FlowParse works from the finished report or from the underlying receipts, so the numbers stay consistent from spending to reimbursement.
Timesheets: hours into pay and bills
A timesheet is where hours meet money, and the challenge is that no two look alike — a weekly grid, a daily list, a per-project breakdown. Reading structure by meaning is what lets a crosstab grid and a flat list both resolve to the same tidy rows: one entry per line, with day, project and hours in their own columns.
Keep the hours as real numbers so a period totals in a single sum and multiplying by rate is a formula, not a manual calculation. Keep the project or task alongside each entry so time totals by job for costing, and capture any overtime split and rateso pay and bills apply the right rate to the right hours. From there, payroll runs from real hours, billable time reaches a client bill, and a contractor's submitted hours can be checked against their invoice.
The checks that prove it converted whole
Structured data is only worth having if it's right, and the fastest proof is the document's own arithmetic. Where a document carries a total, the extracted lines should sum to it — the credited lines plus VAT to the credit total, the expense lines to the claim total, the timesheet entries to the hours total. A good extractor runs that check for you and flags any break before you export.
On top of the arithmetic, per-field confidence scoring highlights anything the model read with doubt — a smudged amount, an ambiguous quantity, a hand-written hour. The two together mean a misread value is caught in the editable preview, where fixing it is a ten-second correction, rather than after it has flowed into a pay run, a supplier balance or a set of accounts.
The discipline is simple: treat any arithmetic break as a stop-and-look, and glance at every flagged cell before you export. That short review is the entire safety margin, and it's the reason extracted data can be trusted in places re-typed data never could.
Scanned, signed and photographed documents
Business documents are among the most likely to arrive on paper — a delivery note signed at the door, a timesheet filled in by hand at the end of a shift, an expense report printed and scanned with receipts stapled behind. None of that has to block extraction. OCR runs first on scanned and photographed documents, turning the image into text, and the AI then structures that text into the same clean columns as a born-digital file.
Low-confidence output from a poor scan is flagged rather than guessed, so a faint quantity or a smudged total is surfaced for a check instead of being silently mis-read. The practical upshot is that the messy reality of a receiving dock or a paper-based crew doesn't keep the data out of your spreadsheet — whatever form a document arrives in, it becomes usable.
It helps to know why the digital original is still preferable when you have the choice: a born-digital PDF carries its text exactly, so extraction is faster and cleaner, while a scan adds an OCR step that, however good, can misread a smudge. The rule of thumb is simple — feed the original file when it exists, fall back to the scan when it doesn't, and let the confidence flags tell you which cells to double-check on the scanned ones.
At scale: batches and the API
One document is a convenience; a stack is where the method pays off. Upload a batch — a month of credit notes, a team's timesheets, a round of supplier quotes — and each is read into the same export. For a consolidated view, Smart Merge combines many documents into one dataset with a source-file column, so a supplier reconciliation, a pay run or a bid comparison totals in one place instead of across a dozen files.
For continuous, hands-off volume, the document extraction API returns the same structured data as JSON, so documents arriving in an inbox or a workflow can be converted automatically and pushed into payroll, an ERP or an accounting system with no one opening a preview. Teams typically prototype in the app, confirm the fields are right, then move the same documents onto the API once they trust the output — the extraction behind both is identical.
Exporting: one extraction, every destination
Because the data is structured once, it exports wherever it needs to go without re-processing. Take an Excel workbook for analysis, a CSV for a bulk import, a live Google Sheet for a shared review, an accounting-ready file for QuickBooks or Xero, or structured JSON over the API.
That flexibility matters because each document has several readers. A bookkeeper wants a sheet, an accountant wants an .xlsx, payroll wants a CSV, a developer wants JSON. Extracting once and letting each person take the shape they need is what stops a document being re-keyed three times for three tools — and it future-proofs the work, because if your stack changes the structured data is already there to re-export.
Who extracts business documents, and why
The people who feel the benefit most handle volume. Accounts payable teams extract credit notes and delivery notes to reconcile suppliers and run three-way matches without re-keying. Finance and accounts teams extract expense reports to check, code and pay claims fast, with the VAT split out and the reimbursable total correct. Payroll and agencies extract timesheets to turn hours into pay and client bills from data they can trust.
Procurement and sales teams extract quotes to compare bids and track a pipeline, and warehouse and logistics teams extract delivery notes to log goods in and settle disputes with evidence. In every case the pattern is the same: a document that used to be read and re-typed becomes structured data the moment it arrives, and the real work — the match, the check, the comparison, the pay run — starts immediately. The transcription was never the job; it was the tax on the job.
Common mistakes to avoid
Copy-pasting the table
It collapses columns, merges the header into the lines and drops the quantities or signs. Extract the document, don't lift its characters.
Trusting a template tool across sources
A fixed-coordinate extractor breaks on the next layout. Business documents come from parties you don't control — read by meaning instead.
Getting a credit note's sign wrong
A credit keyed as a positive inflates a balance. Sign credits negative so they subtract, and capture the invoice they correct.
Merging delivery quantities
Ordered, delivered and back-ordered must stay separate columns, or a short delivery hides and the three-way match can't work.
Skipping the arithmetic check
The document's own total is the fastest proof it converted whole. Ignoring a break lets a dropped line reach your pay run or your books.
Not reviewing before export
Confidence flags and total breaks only help if you look. A ten-second glance at the flagged cells prevents a silent error.
Best practices
- Prefer the original digital PDF over a scan when you have both — it converts fastest and cleanest.
- Let the document's own total do the completeness check, and treat any break as a stop-and-look.
- Sign credit notes negative and capture the invoice they correct so the offset is a formula.
- Keep delivery quantities — ordered, delivered, back-ordered — in their own columns.
- Capture the validity date on quotes and the reimbursable flag on expense reports; both decide real outcomes.
- Extract the two documents you plan to match into the same shape so comparison is a lookup.
- Batch a backlog with Smart Merge and reserve the API for continuous, hands-off volume.
- Review the flagged cells every time — the whole point of the score is that you act on it.
Tip: extract the two documents you plan to match in the same session. When a credit note and its invoice, or a delivery note and its order, come out in the same structured shape, the match is a formula rather than an afternoon.
Turn a business document into data free
Upload a credit note, delivery note, quote, expense report or timesheet and get a clean, structured spreadsheet in seconds — no signup, structure and totals intact.
