Extract the fields your books need from an invoice

BillSight reads invoice PDFs and e-invoice XML and takes out the values a bookkeeper actually enters. Here is what it reads, where each value comes from, and what happens when a value is not clear.

BillSight » Extract invoice data

BillSight showing a table of invoices and the fields read from the selected one

The Fields

Field What it is Where it comes from
Vendor The company that sent the invoice, with its address and tax number where the document gives them. The words on the page - "Invoice from", "Vendor", "Supplier", "Rechnungssteller", "Fournisseur" - or the e-invoice XML.
Customer Who is being billed. The words on the page, or the XML. Left empty when the document does not name one.
Invoice number The number the supplier gave this invoice. The label next to it ("Invoice number", "Rechnungsnummer", "N° de facture"), or the XML.
Invoice type code 380 for an invoice, 381 for a credit note, 383 for a debit note - the code e-invoicing uses. Worked out from what the document says it is; read from the XML when it carries the code itself.
PO number The purchase order the invoice refers to, for matching against the order. The label ("PO number", "Order no.", "Bestellnummer"), when the document carries one.
Issue date The date the invoice was issued. The date next to "Invoice date" / "Rechnungsdatum" / "Date of issue", or the XML. Read separately from the payment date, which is a different field.
Due date The date it must be paid by. "Payment due", "Due date", "Zahlbar bis" - kept apart from the issue date, so a payment date is not mistaken for one.
Currency The ISO 4217 code, e.g. EUR, USD, GBP. The code on the page, a currency symbol with one obvious meaning, or the XML. Left empty when it genuinely cannot be told.
Subtotal, tax, total due The three amounts your books need, each on its own. The labelled amounts on the page, or the XML. Normalised to plain numbers with a dot: 1240.00, 1234.56.
Line items The lines of the invoice: description, quantity, unit price and amount. The e-invoice XML directly, or the table printed on the PDF.

Line Items, and the Rule That Keeps Them Honest

Read from the XML when there is one

An e-invoice carries its lines as data, so they are read exactly - descriptions, quantities, unit prices, line amounts.

Otherwise, from the printed table

When the lines exist only as a table on the page, BillSight reads the columns by their headings, and falls back to scanning the rows when the table has no headings.

And if they do not add up, they are dropped

The line amounts have to reconcile with the stated subtotal. When they do not, the lines are left out rather than repaired - a wrong line is worse than a missing one.

Where a Value Comes From

The words on the page The e-invoice XML Worked out English German French Spanish Italian Dutch 1.234,56 17.04.2026

From the words: the label next to a value is looked for in six languages, and the number is then read in the shape it is written in - 1.234,56 and 17 April 2026 come out as 1234.56 and 2026-04-17. From the XML: an e-invoice states its fields outright, so they are read, not recognised. Worked out: a few values are derived - the currency from a symbol that means only one thing, the type code from the kind of document - and those are the ones marked as a guess.

How You Check It

1

Every value shows its evidence

Each field carries the Read from - the word, the rule or the calculation it came from - and the Seen in the document line it was read on. Nothing has to be taken on faith.

2

The guesses are marked

A value BillSight is not sure of is tinted and says please check. That is where you look - not at every field of every invoice.

3

You fix it in the table

A wrong value is corrected in the cell, and the export uses what you left there. A guess you agree with is accepted in one click and stops asking.

The fields of one invoice, with the value it is unsure of tinted and marked please check

When a Supplier's Layout Is Odd

Some suppliers print what they like. Fix the value in the table once and save it as a rule for that supplier: the word or the position to read it from is kept, and the next invoice from them is read that way. It is stored in a file on your own computer, next to the other suppliers already known.

Saving a correction as a rule for that supplier

What It Will Not Do

It will not read a scan or a photograph. When a document has no text layer, BillSight reports it as "this looks like a scan" and reads nothing from it - it does not guess a value and leave you to catch it. And it will not fill a gap: a field the document does not carry stays empty, and an amount or date that cannot be parsed is left blank.

See what happens with a folder of invoices, and with the awkward ones »

Frequently Asked Questions

What if a field is not on the invoice?

It stays empty. BillSight does not fill a field from a similar-looking number elsewhere on the page - an empty field is a fact you can act on, a wrong one is not.

What if my invoices are not in English?

The labels are looked for in English, German, French, Spanish, Italian and Dutch, and the numbers and dates are read in the local shapes (1.234,56, 17.04.2026). When a supplier uses something none of them cover, teach it once - see above.

Are the amounts cleaned up?

Yes. An amount comes out as a plain number with a dot (1234.56), never with a thousands separator or a currency sign, and the currency comes out as an ISO code in its own column - so the file can go straight into a spreadsheet or an accounting import.

Does it read the line items?

From e-invoice XML, exactly. From a PDF, from the printed table - and only when the lines add up to the stated subtotal, so a half-read table cannot quietly change your totals.

Can it read a scanned invoice?

No, and it says so instead of guessing. A document with no text layer is reported as a scan. OCR is not part of this version.

Everything happens on this computer - your invoices are never uploaded.