Incoming e-invoices
Peppol/UBL, ISDOC, and more

Verifical parses e-invoices directly from XML – instantly, 100% accuracy, no AI cost. Peppol/UBL, ISDOC, ZUGFeRD/Factur-X, and XRechnung supported today; FatturaPA coming soon.

Start free trialSee how it works ↓
E-invoices

Most invoice extraction tools were designed for one job: read a PDF or photograph and pull out the data. They use OCR or AI to do it. They charge by the page.

That model breaks the moment the supplier sends a structured electronic invoice. Peppol UBL files, ISDOC files, and the country-specific formats coming with EU e-invoicing mandates already contain the data. They were designed precisely so the receiving side wouldn’t need OCR or AI. But because most extraction tools treat them like any other document, they run them through the same expensive pipeline anyway, charging for AI on data that didn’t need it and introducing room for error where there was none.

Verifical handles structured invoices the way they were meant to be handled: parsed directly from the XML, instantly, with 100% accuracy, at zero AI cost.

What e-invoicing actually means

A quick refresher, because the terminology is a tangle.

Peppol/UBL is the EU-wide e-invoicing standard. It’s built on UBL 2.1 (a generic XML invoice format developed by OASIS) and aligned with the European norm for structured invoices (EN 16931). Peppol BIS Billing 3.0 is the specific profile most invoices on the Peppol network follow. The XML contains the full invoice – supplier, customer, dates, amounts, VAT, line items, payment details – labeled, typed, and ready to import. Around Peppol/UBL, several countries have built their own profiles or alternatives:

  • XRechnung – a Peppol BIS profile with German-specific extensions, mandatory for B2G invoicing.
  • Factur-X / ZUGFeRD – a hybrid format that bundles a PDF with embedded XML, designed so the same file is both human-readable and machine-readable. Used in France and Germany.
  • FatturaPA – Italy’s national B2B/B2G format, mandatory since 2019, routed through the country’s SDI exchange system.
  • ISDOC – the Czech national e-invoicing standard, used in Czechia and Slovakia since 2009.

All of these solve the same problem: when an invoice is born digital and structured, the receiving system shouldn’t have to re-read it with OCR or AI. The data is already there.

Why structured invoices need different processing

A scanned PDF and a Peppol UBL file look superficially similar. They’re both files with invoice content. But how a tool reads them couldn’t be more different.

A scanned PDF is essentially a picture. To get the invoice number out, the tool has to identify which pixels form characters, group those characters into words, work out which word is the invoice number, and pull it out. Modern AI does this well, but it’s still interpretation. There’s room for error, especially on bad scans, unusual layouts, or handwritten amendments. And every page of every invoice costs money to process.

A UBL invoice is structured data. The invoice number is sitting in an <ID> element inside an <Invoice> root, with a clearly defined schema. To get it out, the tool reads the XML. There is no interpretation. There are no pixels. There is nothing to misread. The data is exactly what the supplier’s accounting system put there when the invoice was issued.

This isn’t a small difference. On a typical batch of 100 invoices, an AI extraction tool charges for 100 documents and produces results that need spot-checking. A native UBL parser charges nothing extra on the structured ones and produces results that are guaranteed correct because they came from the source system.

Most extraction tools – Dext, Hubdoc, Klippa, Rossum, Affinda, and others built for the international AP automation market — don’t natively parse UBL. They run UBL files through OCR like anything else. This works, technically, but it’s wasteful and introduces unnecessary uncertainty.

Peppol/UBL support today

When a UBL XML invoice arrives in Verifical – uploaded by a client, sent in by email, or pushed in by a supplier through the supplier portal – the parser detects it on arrival and reads it directly into Verifical’s field structure: invoice number, issue date, tax point date, due date, total amount, net amount, VAT amount, VAT rate, currency, supplier name, supplier ID and VAT ID, supplier address, customer details, payment symbols, IBAN, and PO number.

Three things that matter:

  1. No AI is called. The parser reads the XML directly. There’s no per-document AI cost on UBL files.
  2. Accuracy is 100%. The data is exactly what the supplier’s system produced. There’s no extraction step to second-guess.
  3. It’s instant. A scanned invoice through AI takes a few seconds to process. UBL parsing is effectively instantaneous, because there’s no model to call.

This matters more every year. The EU is steadily moving toward mandatory B2B e-invoicing across member states. Belgium made Peppol B2B invoicing mandatory in January 2026. France’s mandate begins in September 2026. Germany’s B2B mandate phases in through 2028. The EU ViDA package extends similar rules across the bloc by 2030. Accountants whose clients trade across borders are increasingly receiving Peppol UBL invoices from German, French, Belgian, and Dutch suppliers – and the volume is going only one way.

ISDOC for Czech and Slovak markets

For accountants and businesses operating in Czechia and Slovakia, Verifical also natively parses **ISDOC** – the Czech national e-invoicing standard, in use since 2009 and supported by all the major Czech accounting and ERP systems (Pohoda, Money S3, Helios, ABRA, FlexiBee, iDoklad, Fakturoid, and others).

Detection works for both `.isdoc` (standalone XML) and `.isdocx` (a ZIP archive containing the XML, sometimes alongside a PDF visualisation).

Verifical reads either format directly into the same field structure as Peppol/UBL, with the same characteristics: no AI cost, 100% accuracy, instant processing. For a Czech accountant whose clients receive a mix of ISDOC from local suppliers and Peppol/UBL from cross-border partners, Verifical handles both in a single workflow without the accountant having to think about which format is which.

ZUGFeRD / Factur-X

ZUGFeRD (Germany) and Factur-X (France) are the same hybrid PDF+XML standard under different national branding. The file looks like a normal PDF invoice when opened in any PDF viewer, but it carries a structured XML payload embedded inside, so machines can extract the data without OCR. This dual nature makes the format especially practical for businesses transitioning away from PDF-only workflows — humans see what they’re used to, machines see structured data.

This format has been mandatory for German B2B invoicing since January 2025, and adoption is accelerating across France ahead of its own B2B mandate in September 2026. Verifical handles all five profiles — Minimum, Basic WL, Basic, EN 16931, and Extended — plus the XRechnung profile variant. The parser is deliberately lenient: missing optional fields produce empty values rather than errors, so files from any sender on any tool work out of the box. When a ZUGFeRD or Factur-X PDF arrives, Verifical reads the embedded XML directly and extracts the data with no AI cost. Visually, the user still sees the familiar PDF.

XRechnung

XRechnung is the e-invoice format mandatory for B2G invoicing in Germany – required for any invoice sent to a German federal authority. It comes in two syntax variants: UBL (the same XML structure as Peppol BIS) and CII (Cross Industry Invoice, the same structure used inside ZUGFeRD/Factur-X).

Verifical handles both variants natively. UBL XRechnung is parsed by the same engine as Peppol invoices; CII XRechnung uses the same engine as ZUGFeRD’s embedded XML. The CustomizationID identifies the specific XRechnung profile, but the parser is profile-agnostic – what matters is the data underneath, which is read directly into Verifical’s standard fields with no AI cost.

FatturaPA

(coming soon to Verifical)

FatturaPA is Italy’s national e-invoicing format, mandatory for both B2B and B2G invoicing since 2019. Unlike Peppol/UBL, it uses its own XML schema and is routed through Italy’s central SDI exchange system rather than the Peppol network.

Native FatturaPA support is on the roadmap for accountants and businesses with Italian suppliers or operations. Because the schema is different, this requires its own parser rather than an extension of the existing UBL one. Until then, FatturaPA invoices arriving as PDF can be processed through AI extraction.

We catch misdirected invoices before booking

Sometimes invoices arrive at the wrong company. A supplier sends to the wrong client by mistake. An accountant uploads a document to the wrong workspace. A bookkeeper drops a file into the wrong inbox. Without a system, these errors only get caught later — sometimes much later, after the invoice has already been booked and paid against the wrong company’s accounts.

Verifical compares the buyer information extracted from each structured invoice (VAT number, company number, name) against the company workspace it was uploaded to. If they don’t match, the document gets an amber warning banner before anyone books it:

⚠️ This invoice is addressed to {buyer name} ({buyer VAT number}), but your company is {your company} ({your VAT number}). Verify before booking.

The warning appears for every structured format Verifical parses — Peppol/UBL, ISDOC, ZUGFeRD/Factur-X, XRechnung. The check is silent when both sides match, or when there isn’t enough buyer information on the invoice to validate.

Credit notes link to their original invoice automatically

Credit notes (negative-amount documents that offset a previous invoice) are tricky to track. The credit note arrives, gets booked, and the link to the original invoice it cancels lives only in someone’s memory or in a free-text reference field nobody indexes.

When a structured invoice arrives carrying a reference to the invoice it offsets, Verifical searches the same company’s documents for the matching invoice number and creates a bidirectional link automatically. From either document, the related one is one click away.

The auto-linker stays out of the way if a manual link already exists, and never overwrites existing relationships. The whole thing is logged in the document’s activity trail for audit.

The hybrid picture

Structured invoice parsing is one half of how Verifical reads invoices. The other half is AI extraction, which handles scanned PDFs, photographed receipts, and regular non-structured PDFs.

Both paths produce the same output. Both feed into the same export to accounting software. The accountant doesn’t have to think about which path was used for which document – they just see a single queue of invoices ready to review, with the source format noted on each one. Documents from suppliers on modern invoicing platforms come through as Peppol/UBL or ISDOC with no AI cost. Phone photos of restaurant receipts go through AI. Both end up in the same place, ready for the same export to accounting software.

For accountants serving SMEs across Europe, the practical effect is that more of your AI quota goes to documents that actually need it, while structured invoices come in free. As more of your clients’ suppliers move to Peppol/UBL or their national equivalent over time, the cost-per-invoice drops automatically.

More on how this fits the broader bookkeeping workflow on the page for accountants.


Frequently asked questions

What’s the difference between Peppol, UBL, and EN 16931?
UBL (Universal Business Language) is a generic XML format for business documents, maintained by OASIS. EN 16931 is the European semantic standard for what an electronic invoice must contain. Peppol BIS Billing 3.0 is a specific profile that combines UBL 2.1 syntax with EN 16931 rules and is the format used across the Peppol network for cross-border e-invoicing. In practice, “Peppol invoice” and “UBL invoice” are often used interchangeably.

Does Verifical send Peppol invoices, not just receive them?
Currently Verifical receives, parses, and processes incoming structured invoices. Sending Peppol invoices (acting as a Peppol Access Point) is a separate piece of infrastructure and isn’t part of the current product. Most Verifical users handle invoice issuance in their existing accounting or invoicing software, and the receiving side is where Verifical fits.

Does parsing structured invoices cost extra per document?
No. Peppol/UBL and ISDOC parsing don’t consume any AI cost because no AI is involved. The data is read directly from the XML. Plans that include a monthly document volume cover both AI extractions and structured parsing, and structured invoices effectively go further on the same plan.

Is the accuracy really 100%?
For the data that exists in the XML, yes. The parser reads exactly what the supplier’s system wrote. The only error case is if the supplier’s invoicing software produced an invalid UBL or ISDOC file in the first place, which is rare and gets flagged before extraction.

What happens with cross-border Peppol invoices?
They’re handled exactly like any other structured invoice. Verifical parses the UBL XML directly into the same fields, regardless of the country of origin. This matters most for businesses whose German, French, Belgian, or Dutch suppliers send invoices through Peppol — the data lands in your queue ready for export, with no manual re-entry.

When will ZUGFeRD, Factur-X, XRechnung, and FatturaPA be supported?
ZUGFeRD, Factur-X, and XRechnung are all supported natively today, alongside Peppol/UBL and ISDOC – see the sections above. FatturaPA (Italy’s national format) requires a separate parser due to its different schema and routing through Italy’s SDI system. It’s on the roadmap for businesses with Italian suppliers or operations. Until then, FatturaPA invoices arriving as PDF can be processed through AI extraction.

What if some of my clients’ suppliers send structured invoices and others send PDFs?
That’s the normal case. Verifical handles both in the same workflow. Structured invoices (Peppol/UBL or ISDOC) are parsed instantly with no AI cost. Scanned and regular PDFs go through AI extraction. Both end up in the same review queue with the same export, and the accountant doesn’t have to do anything different for either.

Verifical is a secure document exchange platform
built for accountants and their clients.

Native e-invoice support is included on every plan, with no per-document AI cost on structured invoices.

Start your free trial today. 45 days free, no credit card required.

For accountants

Streamline your document workflow and stop chasing files. AI reads your documents, and exports to your accounting software.

For clients

Stop printing, driving, and emailing. Upload documents, track payments, and access your archive anytime – all from your desk.