DocReadi

Reference

Reference

Lookup tables for the document types DocReadi extracts, the statuses a document can be in, what each role can do, and the feature toggles on your Features page.

Built-in document types

DocReadi ships 13 built-in document types, each with its own extraction schema. You can also define your own document types — see Custom templates.

Document type What it is
AP invoice An invoice you owe — a bill from a vendor.
AP credit note A credit note from a vendor, reducing what you owe them.
AP credit request A request for credit sent to a vendor, before a credit note is issued.
Sales invoice An invoice you issued to a customer.
Sales credit note A credit note you issued to a customer.
Sales credit request A credit request received from a customer.
Purchase order An order you raised with a vendor.
Sales order An order you received from a customer.
Delivery note A goods-received or goods-delivered note.
Receipt A point-of-sale or expense receipt.
Vendor statement A supplier's statement of your account with them — a ledger of the invoices, payments and credits on that account over a period. Not a bill.
Customer statement The same document in the other direction: a statement you issue to a customer, showing their account with you.
Generic invoice An invoice that doesn't clearly fit AP or sales — used when direction can't be determined.

Statements of account

A statement is not an invoice, and the difference matters more than it looks. An invoice's lines are the charge. A statement's lines refer to documents that exist elsewhere — "Invoice INV-1024", "Payment received", "Credit note CN-88" — so the numbers on a statement are pointers to invoices you have already received, not new amounts owed.

DocReadi reads statements as statements. You can forward a supplier's monthly statement into your workspace alongside its invoices without the statement's rows being read as a second copy of those invoices. Treat a statement as something you check an account against — what's still outstanding, whether a payment landed, what the closing balance is — rather than something you book.

What DocReadi extracts from a statement

At the top of the statement: the statement number and date, the period it covers, the account number (the field that identifies which account this is), the account holder, any property or service reference, the opening and closing balances, the total due and its due date, which side the balance favours (the issuer or the account holder), whether the statement lists every movement in the period or only unsettled items, and the aged-balance buckets when the statement prints them.

Where the ledger carries its own opening or closing row, that row is what DocReadi records as the opening or closing balance — statements often print the figure only once, inside the table, and a value read from the top of the page that disagrees with it is corrected to the row. If two rows both claim to be the opening position, neither is treated as authoritative and the extracted figure is left as read. Whenever a balance is corrected this way, the viewer says so beneath the ledger.

Then the ledger — one row per movement, each carrying:

A statement deliberately has no total, no subtotal, no tax total and no line items. Its money lives in the ledger and in the opening and closing balances. Nothing on a statement is written to your typed invoice records.

The "Tax Invoice" exception

Some accounts bill in a statement-like style: a municipal account, a telco account or a utility bill that shows a previous balance, payments received and this month's charges — but is titled Tax Invoice. That document is an AP invoice and DocReadi treats it as one. It carries its own invoice number and charges for the current period, so it is a bill you book, even though it looks like a statement.

The practical test: if the rows name other invoices, it's a statement. If the document raises its own charges under its own number, it's an invoice.

What gets booked on one of these bills is this period's charges, never the running account balance. That holds when the account is in credit — a previous balance or a payment exceeds the current charges, so the closing "Total Due" prints as a negative figure — and the invoice total is still the period's charges as a positive amount. The account figures are recorded alongside it, each shown with the sign the bill prints: account number, previous balance, payments received, current charges including VAT, and the closing account balance. They describe the account, not the document, so they never change what is booked. See Rolling-account bills for where they appear in review, and Rolling-account bill checks for the warnings raised when they don't reconcile.

Approving a statement

A statement is identified by the account it covers, not by a document number — many statements carry no number at all. Approval needs at least one of the account number, the statement number, or the statement date. If none of the three came back, the approve action reports a missing identifier for the document type; send the statement back through with Reject & reprocess so those details are read again. Approving a statement records your decision but writes no typed invoice record, since there is nothing on it to book.

Reading and editing the ledger

Opening a statement shows its balances, any aged-balance buckets, and the ledger as a table — see Reviewing a statement. Statement fields are also available in the report builder under Extracted Fields — account number, opening and closing balance, total due, and the transactions ledger itself — and in the PDF + JSON sidecar bundle format if you deliver statements through the Outbox. Edit fields offers a row-by-row Transactions editor for the ledger, distinct from the line-item editor invoices use — see Reviewing a statement for what it lets you change and how the signed amount gets re-derived rather than typed. For a running-balance or does-not-balance flag, click Re-validate first — it re-derives each row's sign from the printed running balances, takes the opening and closing balance from the ledger's own rows where those disagree, and clears most of these flags without a re-extraction (see Troubleshooting). For anything else, corrections go through Reject & reprocess.

DocReadi does not match a statement's rows against the invoices you already hold; that comparison isn't built.

Document status glossary

Every document moves through a processing status, shown in the documents list and the viewer. A document also carries a separate reviewer decision (approved / rejected / voided) once someone has acted on it.

Status Meaning
Ingested Received and queued — classification hasn't started yet.
Split pending A multi-page upload is waiting in the split editor for you to confirm how it should be divided into separate documents.
Classified Document type has been determined; parsing is next.
Parsed Text has been extracted from the file (native read or OCR); extraction is next.
Extracted Structured fields have been extracted. If validation passed and the workspace's auto-approve threshold was met, the document may already be approved; otherwise it's waiting in the review queue.
Awaiting credits Processing paused because the workspace ran out of credits. Resumes automatically once topped up — see Troubleshooting.
Awaiting verification Trial workspace only: processing paused because the workspace's admin hasn't verified their email yet. Resumes automatically once verified — see Troubleshooting.
Approved A reviewer (or auto-approve) confirmed the extracted data. Included in reports. Export rules and the Xero push send approved documents by default (Approved documents only); a rule set to Any status or Only these statuses can also send documents in other statuses — see Delivering documents.
Rejected A reviewer rejected the extraction with a reason. Stays visible in the rejected tab and can be un-rejected.
Voided A previously-approved document was reversed by a reviewer.
Cancelled Processing was cancelled before it completed.
Failed Processing hit an error it couldn't recover from, or a document that stalled mid-pipeline used up its automatic retries — see A document stuck mid-processing and the pipeline errors page.

Roles and permissions

Capability Reviewer Admin Firm admin
View, approve, reject documents Yes Yes Yes
Run reports, use report builder (view) Yes Yes Yes
Test extract (sandbox) Yes Yes Yes
Manage own sessions and 2FA Yes Yes Yes
Edit workspace settings (document handling, feature flags) No Yes Yes
Manage entities, counterparties, GL accounts No Yes Yes
Manage custom templates (create/edit/delete) No Yes Yes
Manage connections, inbox, outbox No Yes Yes
View the inbound Email log Yes Yes Yes
Manage webhooks and API keys No Yes Yes
See full bank account numbers and IBANs Masked unless granted in Bank number access Yes Yes
Grant bank number access No Yes Yes
View the activity log No Yes Yes
View the pipeline errors page No Yes Yes
Manage subscription / billing No Yes Yes
Create an additional pooled workspace (where enabled) No Yes Yes
Close a workspace (self-serve, only if you have 2+ workspaces — otherwise via support) No Yes Yes

Two screens exist only for DocReadi's own platform operators and aren't available to any workspace role — the Models page (LLM provider/registry configuration) and Provider balances (per-provider spend). If a report or setting you need seems to be missing, it may be one of these platform-only screens; contact support.

Feature flags

Settings → Documents → Feature flags (Admin role) lists behaviour toggles for your workspace's pipeline. Each one can be switched on or off independently, and a change is saved the moment you click — there is no Save button. While a change is saving, the switches are greyed out for a moment. If a change can't be saved, a red message above the list says why, and the switches go back to showing what is actually saved. The table below covers every toggle that is switched on by default or that a workspace admin can act on today, grouped as they appear on the page, with whether it starts on or off for a new workspace.

A few of the arithmetic checks aren't on this page, on purpose: whether subtotal plus VAT equals the total, whether the amount payable adds up, whether a due date falls before its own invoice date, whether the currency is a real currency, and whether the party name, document number and total that were read can be found in the document's text (flagged when two or more of those can't be found). A workspace can't switch these off. There's no version of "off" for them that leaves you with usable data — a document that fails one is misread, not merely flagged differently — so they're ours to guarantee rather than yours to configure.

Classification

Flag Default What it does
Inject known entities/counterparties into classification On Includes known entity and counterparty names in the classification prompt to improve AP/sales direction accuracy.
Skip LLM classification for known counterparties On Infers document type (AP vs sales invoice) without a model call — but only when the counterparty is matched deterministically (VAT number, learned alias, or exact name) and the first page reads as an invoice with no competing wording (statement, purchase order, delivery note, quotation, remittance advice, order confirmation, or credit note). Anything less certain still goes through classification as normal.

Extraction

Flag Default What it does
Counterparty resolution during extraction On Matches the extracted vendor/customer name against your counterparty registry.
Pre-fill extraction prompt with known counterparty details On Feeds known VAT number, address and bank details into the prompt so the model confirms rather than discovers them.
Stamp approved PDFs with extraction metadata Off Writes extraction results back into the approved PDF file (searchable metadata + a re-ingestion-ready sidecar). Off because it modifies your files in place.
Recognise DocReadi-stamped PDFs and reuse their data Off When an uploaded PDF carries DocReadi's own stamp (written by the row above), reuses the stamped data instead of extracting again — no model call and no credit. The document still lands in your review queue.
Geocode document addresses for the map pin Off Looks up an address's coordinates so the viewer can show a map pin. Off by default — no address leaves the platform for geocoding unless enabled.
Use AcroForm / ZUGFeRD data directly when present Off Uses structured form-field or embedded invoice XML data directly when a PDF has it, skipping the model for those fields.
Use [UNCLEAR] for partially-readable text instead of nulling Off Marks partially-illegible characters as [UNCLEAR] instead of nulling the whole field, so a reviewer can see exactly where a scan struggled. A document with a marked value waits for review until you type the value in Edit Fields.

Counterparty learning

Flag Default What it does
Auto-suggest new counterparty candidates On When a processed document matches no confirmed counterparty, a candidate record is created or updated for your review.
Learn name aliases from matched documents On When a document strongly matches a counterparty, the name as written on that document is remembered as an alias, so the same wording matches instantly next time.

Post-extraction validation

Flag Default What it does
Anomaly detection against known counterparty details On Flags a document when its bank account, address, or VAT number doesn't match what's on file for that counterparty. The four rows below are the individual checks it covers.
Flag counterparty VAT number changes On Flags a document carrying a different VAT number from the one on record for that counterparty.
Flag new counterparty bank accounts On Flags a document showing a bank account not seen before for that counterparty — a common invoice-fraud signal, worth keeping on.
Flag unrecognised counterparty addresses On Flags a document showing an address not on record for that counterparty. Turn it off for counterparties with many branches.
Flag unusual VAT rate for a counterparty On Flags a document whose effective VAT rate differs from what is typical for that counterparty.
Flag payment-QR amount mismatches On Flags a document whose extracted total or amount payable differs from the amount encoded in its payment QR code, or is in a different currency. Has no effect unless the operator has enabled payment-QR reading for your workspace.
Flag payment-QR bank account mismatches On Flags a document whose printed bank account differs from the one encoded in its payment QR code — an altered printed account with the original QR left in place is the signature of an invoice-redirection fraud. A Swiss QR-bill whose QR carries a QR-IBAN (the account used only for QR-reference payments) beside the supplier's ordinary printed account is expected and not flagged. Neither is an invoice that prints several bank accounts when the account in the QR and the one read from the document are both printed on it. Has no effect unless the operator has enabled payment-QR reading for your workspace.
Flag payment-QR invoice number mismatches On Flags a document whose extracted invoice number disagrees with the one named in its payment QR billing trailer. Has no effect unless the operator has enabled payment-QR reading for your workspace.
Validate document direction against known entities On Runs the direction check on AP and sales documents. On its own it doesn't raise anything for review — it recovers a buyer name your entity registry can supply, and swaps the two parties back when an extraction put your own company on the supplier's side. Whether a mismatch is raised is the next row.
Flag documents whose our-side party is unrecognised Off Flags an AP document whose buyer isn't one of your known entities, or a sales document whose issuer isn't. Off until you turn it on — with no entities registered, every document looks unrecognised. Turn it on once your entities are set up under Settings → Entities.
Flag documents from unknown counterparties Off Flags a document whose supplier or customer isn't in your counterparty registry yet. Off until you turn it on — against an empty or half-built registry it flags everything. Your registry keeps filling up either way: new names are still learned as candidates for you to confirm, so turn this on once the suppliers and customers you care about are confirmed.
Check line item sum matches subtotal On The "line_items_sum != subtotal" check — see Troubleshooting.
Check every printed item row was extracted On Flags a document whose item table prints more rows than were extracted — a dropped row, or one merged into its neighbour. Silent when the table is unclear. See Troubleshooting.
Flag unusual VAT rates On The "unusual VAT rate" check, against your workspace's tax jurisdiction.
Flag payment terms exceeding 180 days On The "payment terms exceed 180 days" check.
Check IBANs add up On Flags a document whose IBAN fails its check digits or doesn't have the length and layout its country uses — usually one misread character.
Check VAT numbers add up On Flags a South African, EU, UK, Swiss or Norwegian VAT number whose check digit doesn't match. A number is only checked when it carries its country prefix, or when the party's country says which format it should have and the number already has that shape; a number with no prefix and no country is left alone. The South African rule is our own measured check rather than a published SARS one, so a genuine number can occasionally fail it: it isn't flagged when that number is already saved on a confirmed counterparty or one of your entities — otherwise compare it with the document.
Check other identifiers' format On Flags a malformed BIC (a placeholder such as "N/A" is left alone) or one from a different country than the IBAN beside it, a bank routing code that doesn't have the shape of its recorded type (a US ABA routing number's check digit too), a South African company registration number that isn't YYYY/NNNNNN/NN, and an Australian ABN, New Zealand IRD, Indian GSTIN, Canadian business number, Singapore UEN or US EIN that fails its check. A value it can't place is left alone.
Check rolling-account bills reconcile On On a municipal, utility or telco bill that prints a running account balance: flags when the account figures don't reconcile, or when the booked total looks like the account balance rather than the period's charges. Only runs on documents that print both a previous and a closing balance — see Troubleshooting.
GL account / expense-type determination Off Runs GL account determination and writes a posting set after extraction. Off until you've loaded a chart of accounts.
GL auto-determine (AI) Off Uses an LLM to pick a GL account when the free matching rules can't. Costs one credit per document where it runs.
Let GL auto-determine override a vendor's fuzzy default Off Allows the AI GL step to override a vendor's fuzzy default account when confident enough.
Auto-retry when validation errors occur On Runs one automatic corrective pass when validation fails, before the document lands in review.
Lenient line-items when header totals reconcile Off Suppresses the line-items check when the header math (subtotal + VAT = total, amount payable agrees) is already correct — treats it as incomplete line detail rather than a real mismatch.
Auto-correct subtotal when line items + VAT reconcile to total Off Overwrites a mismatched subtotal with the line-item sum when the line items and VAT already corroborate the total.
Critical-field gate Off Blocks auto-approve when a critical field (buyer/seller, document number, total, or date) is missing or flagged, regardless of the overall confidence score.

Document ingestion

Flag Default What it does
Prompt to split multi-page PDFs on upload On Pauses a multi-page upload in the split editor before processing.
Auto-detect document boundaries in batch PDFs On Adds an "Auto-detect documents" button to the split editor, using layout heuristics to propose page groups with no AI cost.
Auto-split multi-document PDFs arriving via inbox Off Runs boundary auto-detection unattended on documents arriving through an Inbox connection, not just manual uploads.
OCR fallback for scanned batch PDFs Off Runs OCR on a fully-scanned batch PDF so boundary detection can still work, at a small per-page cost.

Parsing

Flag Default What it does
Image preprocessing On Auto-straightens, deskews and enhances phone photos before OCR (JPG/PNG uploads only).

See also: How processing works for what each validation check protects against, and the developer API reference at /api/docs-guide for programmatic access to documents, reports, and templates.

Looking for the developer/API reference? See /api/docs-guide. Can't find an answer? Email [email protected].