ComChamp / SalesChamp · Back Office & Finance

Overdue Invoice Collection Process

A repeatable way to collect customer invoices on time and chase aging receivables — built on Dutch B2B law, designed to grow into in-platform automation. Draft for team review.

BOF-6 Owner: Roman Scope: B2B · Netherlands first v1 · manual phase 29 Jun 2026

Where we stand today

DevDash bank sync · 2026-06-26 · €64,002 open across 48 invoices
€13,629
Bucket 1 · Aging — chase now
23 invoices. Klantcentraal (€8,669) & EMC (€4,176) unpaid since mid-2025 — a real collection gap.
€3,026
Bucket 2 · Zombie drafts
11 never-finalised drafts (2023–24). Decide discard vs finalise with Luuk.
€47,348
Bucket 3 · Normal — not yet due
14 recent in-term invoices (Essent / Velder / Nutsgroep). Just watch.
5 days
First reminders out by
Target ~2026-07-04. Start with bucket 1 (Klantcentraal + EMC).

The collection ladder

Manual now · each step annotated with what Dutch B2B law actually allows
0

Invoice

at billing
Issue the invoice with a dated payment term (a fatale termijn).
The key step: a dated term makes default (verzuim) automatic when it lapses.
1

Reminder

~2 days after due
Friendly betalingsherinnering by email (Dutch). Assume it was an oversight.
Interest + €40 are already accruing since day 0 — we just haven't invoked them.
2

Second reminder

~7 days later
Firmer aanmaning; state that 10.15% interest + the €40 fee are now due.
Good practice (evidence) — not legally required for B2B. The 14-day letter is consumer-only.
3

Phone call

after reminder 2
Personal call — keep it human and solution-seeking before anything formal.
No legal step. "We're not a complete dick — give them a call." A call can do miracles.
4

Escalate

last resort
Hand to incassobureau / deurwaarder, then court (dagvaarding) if needed.
Money claims ≤ €25,000 → kantonrechter (no lawyer needed). You don't want to be here.
Future idea (parked): an AI voice bot for the step-3 collection calls — Luuk wants to explore it as a potential solution, just not set up live yet.

⚖️ The legal engine underneath (Netherlands B2B)

Automatic
Default (verzuim) starts the day a dated term lapses — no reminder needed (art. 6:83a BW)
10.15%
Wettelijke handelsrente, H1 2026 (ECB + 8pp). Runs automatically (art. 6:119a)
€40 +
Fixed recovery fee owed without reminder, plus the Besluit BIK staffel (max €6,775)
1 year
Unpaid invoice → reclaim the VAT (art. 29 Wet OB) via the BTW return, rubriek 1a/1b

Clear vs. unclear — so the messy cases don't block the easy wins

CLEAR Recent, clearly owed, customer active

Most of bucket 1 — Klantcentraal, EMC, Thuisbespaard, Market Marksmen.

  • Run the collection ladder now.
  • First reminders within 5 working days.
  • Log every contact in the tracker sheet.

UNCLEAR Old / inactive / disputed (~4–5 cases)

The pre-WeFact stragglers + bucket-2 zombie drafts. Don't let them hold up progress.

  • Dedicated review session with Luuk (+ Yurun).
  • Decide write-off vs pursue, one by one.
  • Close them out so reporting stays clean.

Write-offs & tax correction — pick the right path

Zombie draft (never sent)
No VAT was ever booked. Just discard the draft (or finalise & send if truly owed).
No VAT correction
Finalised → we waive it
A real issued invoice we choose to drop by decision.
Issue a credit note
Finalised → genuine non-payment
Customer simply never paid a valid invoice.
art. 29 reclaim · no credit note needed

How it evolves

Each phase leaves the previous one runnable
▶ Now

Manual

Run the ladder by hand, email reminders, log in the tracker sheet, monthly aging overview.

End-state

In-platform · Stripe

Collection becomes a product feature: auto-reminders & auto-deactivation on non-payment.

Can one process work worldwide?

Researched across the Netherlands, EU, USA and Australia. The conduct ladder is universal; the legal parameters are not.

🇳🇱
Netherlands
Interest + €40 start automatically. 10.15% handelsrente, BIK staffel, art. 29 VAT relief.
🇪🇺
EU
Money claim harmonized (30-day, ECB+8pp, €40). Conduct & courts stay national.
🇺🇸
USA
Freedom of contract. No statutory interest; late fees capped by per-state usury law.
🇦🇺
Australia
Contractual + codified conduct (ACCC/ASIC). Per-state courts; unfair-terms limits.
Design verdict: build one generic collection engine (the states + the conduct ladder) and treat the legal specifics as a per-jurisdiction policy layer — seed it with the Dutch B2B ruleset. Adding a country later means adding a profile, not rewriting the logic.