Skip to content
StackVerx

Invoice processing for European SMEs

Your team stops typing invoices.

They only check the ones the system isn't sure about. Everything else lands in your accounting system, validated.

German, French, Dutch and English invoices. PDF, scan or email.

New: voice agents that answer your phone line

01The problem

A normal month in accounts payable

300
supplier invoices
×4
minutes each
=20h
of typing, every month

Someone opens each PDF, finds the invoice number, the date, the net amount, the VAT, and types them into the accounting system. Then the next one.

At 3 to 5 minutes per invoice, that is about 20 hours a month. It is also where the errors come from: a transposed digit, a wrong VAT rate, the same invoice paid twice because it arrived by post and by email.

02The work

What it looks like on a Tuesday morning

This is the review screen your team works in. Invoices arrive by upload or a forwarding address. Each one is read, checked and sorted before anyone opens it.

stackverx-demo.mp40:00 / 1:00
Demo video coming soon

60-second walkthrough

25 mixed invoices from upload to export into the accounting system. No cuts, no edits.

app.stackverx.com / invoices
September 2026
Supplier invoices
312
Received
281
Ready
24
Needs review
7
Duplicate
Sample review queue with six invoices
SupplierStatus
Müller Verpackung GmbH
RE-2026-04817 · 1.475,60 €
Ready
Transports Lefèvre SARL
F-88213 · 3.912,00 €
Needs review
20 % TVA on cross-border service
Van den Berg Logistiek B.V.
2026-1142 · 846,70 €
Ready
Kessler Bürobedarf
KB-55120 · 312,40 €
Duplicate
Same as KB-55120, received 02.09.
Nordic Paper Supply Ltd
INV-30417 · 1.120,00 €
Ready
Brandt & Söhne KG
2026/0932 · 5.604,25 €
Needs review
Lines ≠ net (26,05 €)
Fig. 1 · Review queue

Every invoice gets one of three states. Ready means every check passed. Needs review means a person should look. Duplicate means we have already seen this supplier, number and amount.

  1. Month-to-date counts. The number that matters is Needs review.
  2. The reason is shown in the list, so nobody opens an invoice to find out why it stopped.
  3. Same supplier, number and amount as an invoice from 02.09. Blocked before it can be paid twice.
F-88213.pdf · Transports Lefèvre SARL
Transports Lefèvre SARL
18 rue des Entrepôts · 69007 Lyon
Facture
N°
F-88213
Date
13/09/2026
N° TVA
FR 47 812 334 905
Transport Lyon → Köln, 12 palettes2 940,00
Hayon élévateur320,00
Total HT
3 260,00 €
TVA 20 %
652,00 €
Total TTC
3 912,00 €
  • Supplier0.99
    Transports Lefèvre SARL
  • VAT ID0.98
    FR47812334905
  • Invoice no.0.99
    F-88213
  • Invoice date0.99
    2026-09-13
  • Net0.99
    3260.00 EUR
  • VAT0.97
    652.00 EUR · 20%
  • Gross0.99
    3912.00 EUR
Fig. 2 · Extraction

The original document on the left, the extracted fields on the right. Click a field to see where on the page it came from.

  1. French TVA of 20 % on a cross-border transport service. For B2B services between EU countries, reverse charge is normally expected, so the invoice is held for review.
checks · 2026/0932
Brandt & Söhne KG
2026/0932
Needs review
  • PassedSupplier matchedSupplier #10442 in your master data
  • PassedVAT ID validDE 193 552 870 · format and checksum
  • PassedNot a duplicateNo match on supplier, number, amount
  • FailedLines = netLines sum to 4.683,40 €, invoice says 4.709,45 €. Difference 26,05 €.
  • PassedNet × 19 % = VAT4.709,45 × 0,19 = 894,80 €
  • WarningPayment termsInvoice says 14 days. Supplier master says 30.
Fix net amountAsk supplier
Fig. 3 · Validation flags

Checks run in plain code, not in the model. If the line items do not add up to the net amount, the invoice stops here.

Sample data. Supplier names and numbers are fictional.

03How it works

Four steps. Only the last one needs a person.

  1. 01

    Upload or forward

    Drag PDFs into the dashboard, or forward supplier emails to a dedicated address. Scans and phone photos work too.

  2. 02

    AI extracts every field

    Supplier, VAT ID, invoice number, dates, line items, net, VAT and gross. Each field gets a confidence score and a link to its position on the page.

  3. 03

    Rules validate

    Lines must sum to net. Net times rate must equal VAT. The VAT ID must be valid. Supplier, number and amount must not match an earlier invoice.

  4. 04

    Your team reviews the flags

    Invoices that pass go straight to your system. The rest wait in a queue with the reason shown. One click to approve, fix or reject.

Output

What lands in your system

Clean, typed data. Dates in ISO format, amounts as numbers, VAT rates as decimals. We map it to whatever your accounting system imports: an API call, a CSV, or a DATEV-format export.

POST /accounting/invoicesapplication/json
{
  "supplier": {
    "name": "Müller Verpackung GmbH",
    "vat_id": "DE284519736"
  },
  "invoice_number": "RE-2026-04817",
  "invoice_date": "2026-09-14",
  "due_date": "2026-10-14",
  "currency": "EUR",
  "net": 1240.00,
  "vat_rate": 0.19,
  "vat": 235.60,
  "gross": 1475.60,
  "checks": {
    "lines_equal_net": true,
    "vat_matches_rate": true,
    "duplicate": false
  },
  "status": "ready"
}

04Voice agents

A phone line that answers “where is my delivery?” at 22:00.

Most calls to a wholesaler or logistics firm are the same few questions. The voice agent answers them from your own systems, in the caller's language, and hands everything else to a person with a written summary.

Call ended
+49 221 ••• 4410
DE
Idle
  1. Agent

    Guten Abend, hier ist der digitale Assistent von Kessler Handel. Wie kann ich helfen?

    Good evening, this is Kessler Handel's AI assistant. How can I help?

  2. Caller

    Ich warte auf die Lieferung zu Bestellung 11873.

    I'm waiting for the delivery on order 11873.

  3. → lookup_order("SO-11873")
    ✓ shipped · DHL · ETA 2026-10-02
  4. Agent

    Die Ware ist gestern rausgegangen und kommt am Freitag, dem 2. Oktober. Soll ich Ihnen die Sendungsnummer per SMS schicken?

    It shipped yesterday and arrives Friday, 2 October. Shall I text you the tracking number?

  5. Caller

    Ja, bitte. Und auf der Rechnung fehlt unser Rabatt.

    Yes, please. And our discount is missing from the invoice.

  6. → send_sms(tracking) · create_ticket("billing")
    ✓ sent · ticket #2291 → accounts
  7. Agent

    Die SMS ist unterwegs. Die Rabattfrage gebe ich an die Buchhaltung weiter, Sie bekommen morgen bis 12 Uhr einen Rückruf.

    The text is on its way. I'm passing the discount question to accounts; you'll get a call back by 12:00 tomorrow.

  8. Resolved
    Delivery status, tracking sent
    Handed off
    Billing → accounts, summary attached
    Duration
    1:12
Sample call, 22:04. Transcript in German, English below each line.

What it handles

01Order and delivery status
Looks up the order in your ERP, reads the carrier and ETA, texts the tracking number.
02Invoice and payment questions
“Has my payment arrived?” “Can you resend invoice 4817?” Answered from your accounting data.
03Callbacks and bookings
Books a callback or a delivery slot into your calendar with the reason attached.
04Handoff to a person
Anything outside its rules becomes a ticket or a live transfer, with a summary so nobody asks twice.

What it never does

  • Change prices, grant discounts or promise refunds
  • Answer questions it has no data for
  • Pretend to be human. It says it is an AI in the first sentence
Languages
DE · FR · NL · EN
Hours
24/7 or after hours only
Phone setup
New number or call forwarding
Records
Transcript per call, recording optional

05Built for Europe

Your invoices contain your suppliers, prices and bank details. We treat them that way.

GDPR-aware design
We sign a data processing agreement before we touch a document. We extract only the fields your workflow needs, and you set how long originals are kept.
EU data hosting
Documents and extracted data can stay in an EU cloud region, such as Frankfurt, or on your own servers. We do not use your documents to train models.
Human in the loop
Nothing is posted to your books unless it passes every rule. Low-confidence fields go to a person. You decide the thresholds.
Audit log
Every field records its source page, the extracted value, who changed it and when. Useful for your auditor, and for you when a supplier disputes a payment.
Multilingual documents
German, French, Dutch and English. The system reads USt, TVA, BTW and VAT, comma decimals and dd.mm.yyyy dates without extra setup.

06Services

Start small. Pay for a build only when the numbers make sense.

01

AI Opportunity Audit

We map one workflow and show where automation pays off.

Duration
1–2 weeks
What you get
  • Walkthrough of your current process
  • Test run on 50–100 of your real documents
  • Measured accuracy and review rate
  • Written estimate of hours saved and running cost
Result
A clear yes or no, with numbers.
Pricing on request
02

Pilot Build

One working agent, invoice or voice, integrated with your tools.

Duration
3–6 weeks
What you get
  • Invoice extraction and validation, or a voice line for your top call types
  • Review dashboard for your team
  • Integration with your accounting or ERP system
  • Two-week parallel run against your manual process
Result
Invoices processed in production.
Pricing on request
03

Ongoing Care

Monitoring, improvements and support.

Duration
Monthly
What you get
  • Accuracy and review-rate monitoring
  • New suppliers and layouts handled
  • Rule changes when your process changes
  • Support by email within one working day
Result
The system keeps up with your business.
Pricing on request

07Process

From first call to production

A typical engagement takes about eight weeks from first call to production. You can stop after any step.

  1. 01Week 0

    20-minute call

    You describe the process. We tell you honestly whether it is a good fit for automation.

  2. 02Week 0

    Ten sample invoices

    You send ten real invoices, redacted if you prefer. We run them and show you the extracted data and the flags.

  3. 03Weeks 1–2

    Audit

    We test on a larger sample, map the target system, and give you a fixed price for the pilot.

  4. 04Weeks 3–6

    Pilot build

    We build the agent, the rules and the integration. You see progress every week.

  5. 05Weeks 7–8

    Parallel run

    Your team keeps its current process while the system runs alongside. We compare every result.

  6. 06Ongoing

    Production

    The system takes over. Your team works the review queue. We monitor accuracy each month.

08About

Zain Ul Abaden
Founder, StackVerx

An engineering studio, not an agency.

I have spent three years building enterprise ERP and invoicing systems with .NET, Angular and SQL Server: multi-tenant invoicing, credit notes, delivery notes, bank reconciliation. More recently, LLM integration with function calling inside those same systems.

That work taught me what business data looks like in practice. Supplier names spelled four ways. Credit notes that reference invoices from last year. Totals that are off by a cent because of rounding per line. A model alone does not handle that. A model plus strict rules plus a person for the edge cases does.

StackVerx is small on purpose. You talk to the person who writes the code.

Background
Enterprise ERP & invoicing
Stack
.NET · Angular · SQL Server · LLMs
Experience
3 years

09FAQ

Questions we hear on every first call

What if the AI makes a mistake?

It will, sometimes. That is why the model is not the last step. Every field has a confidence score, and every invoice passes arithmetic and consistency checks written in plain code: lines sum to net, VAT matches the rate, the VAT ID is valid, the invoice is not a duplicate. Anything that fails or scores low goes to your review queue. Corrections are logged and used to improve extraction for that supplier.

Where is our data stored?

Your choice. An EU cloud region, such as Frankfurt, or your own infrastructure. We sign a data processing agreement before the first document, you set the retention period, and we do not use your documents to train models.

Which accounting systems do you integrate with?

Anything with an API or an import format. For most clients that means a direct API connection, a CSV import, or a DATEV-format export. We confirm the exact route during the audit, before you commit to a build.

How long does a pilot take?

Three to six weeks. It depends mostly on how many document types you have and how the integration works. A single invoice type into a system with a good API is at the short end.

Do we need technical staff?

No. We need one person who knows the process and can give us about two hours a week during the pilot, plus access to the target system. Your team uses a web dashboard.

Will callers know they are talking to an AI?

Yes. The voice agent says so in its first sentence, as the EU AI Act requires, and callers can ask for a person at any time. If you record calls, callers hear a recording notice before the conversation starts.

Does the voice agent work with our phone system?

It either gets its own number or takes calls you forward to it, for example after 18:00 or when every line is busy. That works with most office phone systems, including SIP-based and cloud telephony. Transfers to a person go back to your existing numbers.

What does it cost?

Pricing is on request, because it depends on volume, document types and integration. The audit ends with a fixed price for the pilot and an estimate of monthly running costs per invoice, so you can compare it with the hours you save.

Send us 10 sample invoices. We'll show you the results.

Redact anything you like. We delete them after the demo unless you ask us to keep them.