Drop e-invoices in. Get one spreadsheet out.
Factur-X, ZUGFeRD, XRechnung, Peppol UBL, Italian FatturaPA, Spanish
Facturae and Polish KSeF FA(2) โ signed .p7m and .xsig included.
Every field is read from the invoice's own XML โ
nothing is guessed, and nothing leaves your browser.
What it reads
Since 2025 most EU invoices carry structured data alongside the human-readable page. Ledgerdrop reads that data directly, which is why the numbers come out exact rather than approximately right.
- Factur-X / ZUGFeRD โ a PDF/A-3 with a
factur-x.xmlattachment (UN/CEFACT CII), including ZUGFeRD 1.0 from 2014, which German systems still emit and which most current tools quietly skip. - XRechnung โ both the CII and the UBL flavour, embedded or standalone.
- Peppol BIS Billing 3.0 โ UBL 2.1
InvoiceandCreditNote. - FatturaPA โ Italy's
FatturaElettronica, including files carrying several invoice bodies at once, and.xml.p7mcontainers that most tools refuse to open. - Facturae 3.2 โ Spain's national format, including signed
.xsigfiles, where the XAdES signature sits inside the XML itself. - KSeF FA(2) โ Poland's national e-invoice, whose fields are numbered
P_1,P_2,P_13_1and are unreadable by eye. - Romanian e-Factura โ UBL with the RO_CIUS rules, and the ZIP you download from
SPV: the
semnatura_*.xmlinside it is the tax authority's signature rather than an invoice, so it is skipped instead of reported as an unreadable file. - Structured payment references โ the Belgian gestructureerde mededeling, the Swiss QR reference, the Norwegian KID: in those countries the bank's remittance text carries that number rather than the invoice number, so matching on the invoice number alone cannot work. Ledgerdrop reads it (BT-83) and matches on it too.
- EN 16931 in general โ the semantic model the European formats conform to.
Drop a plain PDF with no embedded data and Ledgerdrop will tell you so instead of quietly inventing numbers.
What you get
- Invoice number, issue and due date, buyer reference, currency
- Supplier and customer names with their VAT identifiers
- Net, VAT and gross totals โ plus a check that they actually add up
- Line item descriptions, merged per invoice
- Duplicate detection by invoice number โ within the batch, and across batches: an invoice you exported in March is flagged when it turns up again in April's folder. Only the invoice numbers are remembered, per client, in your own browser; there is a button to forget them.
- An EN 16931 check on every invoice that carries structured data
- Enter your own VAT ID and each invoice is marked purchase or sale, which also gives you a VAT summary by rate โ output tax, input tax, and the difference
- An .xlsx with a ledger sheet and a summary sheet grouped by month and by supplier, a plain CSV, or a DATEV Buchungsstapel ready to import into German accounting software
Is this invoice actually compliant?
Receiving a non-compliant invoice is your problem, not only the sender's: if the document does not meet the requirements, the input VAT may not be deductible. But the requirements live in an XML file nobody can read by eye.
Ledgerdrop checks each invoice against EN 16931 and shows the rule numbers, so you can quote them back to the supplier:
- Mandatory fields โ BR-01 to BR-16: specification identifier, invoice number and date, type and currency code, both parties with postal address and country, totals, and at least one line.
- Arithmetic โ BR-CO-10 and BR-CO-13 to BR-CO-16: line amounts must sum to the stated line total, allowances and charges must reconcile, VAT must add up, and the amount due must follow from the total less prepayments.
- Per VAT rate โ BR-S-08 and BR-S-09: the taxable amount at each rate must match the lines at that rate, and the VAT must be that rate applied to that base.
Being precise about the limits: this is a subset of EN 16931, chosen because those rules are unambiguous. Rules that turn on code lists, VAT category semantics or national extensions are not implemented โ a half-right compliance verdict is worse than an honest gap. Where an invoice carries no structured data at all, the column simply reads "โ" rather than passing it.
Drop the bank statement in too
Ledgerdrop reads CAMT.053 (ISO 20022) and MT940 statements from the same box, then matches payments to invoices: the invoice number in the payment reference, the amount, the counterparty name and a sensible date window. Every invoice gets marked paid or open, and entries that match nothing stay visible instead of disappearing.
- Matching an invoice to its payment needs both sides at once โ which is exactly what you already have open here.
- Where the signals are not strong enough, no match is made. A wrong match is harder to notice than a missing one, so the tool leaves those to you.
- The statement is checked against its own opening and closing balance. If the file is truncated you find out immediately rather than three reconciliations later.
Verify the privacy claim yourself
Invoices carry VAT numbers, amounts and the names of everyone you trade with. That should not be uploaded to a stranger's server to be turned into a spreadsheet.
- Open the Network panel while you process a batch โ there are no upload requests.
- Disconnect from the internet once the page has loaded; everything still works.
- No accounts, no server, no database. The licence key is verified offline by signature.
- The site's Content-Security-Policy forbids outbound connections, so the browser enforces this rather than asking you to trust a promise.
Questions
- How do I convert a Factur-X or ZUGFeRD PDF to Excel?
- Drop the PDF in. Ledgerdrop opens the embedded XML attachment and reads the fields from it, so no OCR and no layout guessing is involved.
- Can it handle a plain XML file from Peppol?
- Yes โ UBL 2.1 Invoice and CreditNote documents parse directly, as do standalone CII files.
- What about Italian .p7m files?
- Drop them in. Ledgerdrop reads the invoice out of the CAdES container so you do not have to unwrap it first. To be precise about what that means: it reads the signed document, it does not verify the signature โ use your certified provider's portal if you need that. An Italian invoice can also carry several invoice bodies in one file; each becomes its own row.
- I have invoices in several currencies. Are they added together?
- No. Totals are shown per currency, and the exported ledger gets one total row per currency. Adding 12,000 EUR to 18,800 PLN produces a number that looks perfectly normal and means nothing โ which makes it more dangerous than a blank cell.
- Why does my Spanish invoice total not equal net plus VAT?
- Because Spanish invoices from freelancers and professionals carry an IRPF withholding that is subtracted from the total: 3,900 โฌ at 21 % VAT with 15 % withheld comes to 4,134 โฌ, not 4,719 โฌ. Ledgerdrop applies the Facturae formula before deciding a total is wrong, so it does not flag nearly every Spanish invoice. The withholding is not VAT, so it stays out of the VAT summary.
- Why does my Italian invoice total not equal net plus VAT?
- Because it legitimately may not โ stamp duty, pension-fund contributions and withholding tax all move the document total. Ledgerdrop reconciles those before deciding whether a total actually looks wrong, so it does not flag every Italian invoice you own.
- What happens with a scanned or plain PDF?
- It is reported as having no embedded invoice data. Ledgerdrop will not fabricate values it cannot read.
- Does it detect duplicates?
- Invoices sharing a number are highlighted in the table and flagged in the export. Booking the same invoice twice is the expensive mistake this is designed to catch.
- Are credit notes supported?
- Yes, including negative totals, and they are labelled as credit notes in the ledger.
- I handle several clients โ do I re-enter the accounts every time?
- No. Create a client at the top of the page; accounts and tax keys are stored per client. Switching clients clears the workspace, so documents from two clients cannot end up in the same batch โ a mistake that otherwise surfaces only at audit time.
- Can I import the result into DATEV?
- Yes โ the export produces a Buchungsstapel in DATEV's EXTF 700 format, correctly encoded and with all 125 columns present. Accounts and tax keys are not guessed: you enter them once and they stay on your device. An invoice carrying several VAT rates is refused by name rather than booked with a single averaged key, because that would be wrong.
- How many invoices at once?
- Ten per batch on the free tier, unlimited with Pro. Hundreds at a time is fine โ the processing runs on your own machine.
Pricing
Free
- 10 invoices per batch
- Every parser, no limits on formats
- Export carries one attribution line
Office
- 5 licence keys, one per colleague
- Per-client profiles: accounts and tax keys stay separate
- Everything in Pro
- One payment, no renewal