Recurring invoices and Peppol in Belgium
Run Belgian subscriptions and retainers on Peppol: fresh invoice numbers each cycle, re-check participant lookup drift, and use credit notes for plan changes.
Updated
- Belgium
One job: treat each cycle as a new Peppol invoice
Subscriptions, retainers, and monthly service fees feel automatic, but Peppol does not bill “the same invoice again”. Each period is a new structured invoice: new number, current amounts, current buyer identity, and a fresh send through your Access Point.
This article covers recurring ops under Peppol. For document roles, see invoice vs credit note vs quote. For numbering discipline, see invoice numbering in Belgium.
What must be new every cycle
| Field / step | Recurring rule | Why |
|---|---|---|
| Invoice number | Always a new number in sequence | Sent Peppol invoices are immutable; reuse breaks auditors and AP |
| Issue date / period | Reflect the billing period | Buyer matching and VAT timing |
| Amounts and VAT | Rebuild from current plan | Price changes and regime must match reality |
| Buyer Peppol ID | Resolve at send time | Access Point or entity can change |
| Payment reference | Keep or rotate per your cash process | OGM can stay stable if that is your rule (OGM guide) |
Do not edit a delivered monthly invoice and resend it. If August was wrong, leave August and correct with a Peppol credit note, then issue a new invoice if a replacement charge remains.
Lookup drift on long-running contracts
A customer who was reachable in January can fail in July after an Access Point migration, KBO change, or withdrawn SMP. Build lookup into the recurring job, not only into onboarding.
Practical cadence:
- First send - full participant lookup (scheme 0208, BIS Billing).
- Every cycle - let the Access Point resolve again; treat “not found” as a hard stop.
- On failure - re-verify the enterprise number with the customer; do not burn the next invoice number on blind retries.
- After legal-entity change - update master data before the next scheduled send (client not on Peppol if they are temporarily unreachable).
- Lookup drift
When a previously valid Peppol participant ID stops resolving (or loses BIS Billing capability) while your subscription schedule still assumes last month's routing.
Plan changes: upgrade, downgrade, cancel
| Change | Peppol move |
|---|---|
| Price increase from next period | Next cycle invoice uses the new amount; no credit needed for past periods already accepted |
| Mid-period downgrade with refund | Credit note for the delta (billing reference to the paid invoice), then continue next cycle at the new price |
| Full cancel after invoice sent | Full or partial credit note; stop the schedule; do not void by editing XML |
| Wrong VAT or wrong buyer ID on a run | Credit the bad invoice; fix master data; issue a correct new invoice |
Automation should generate CreditNote documents with the same seriousness as invoices. Informal “pay less next month” emails leave the Peppol open item wrong.
Recurring Peppol checklist
- Schedule creates a new invoice each period (never clones a sent document ID).
- Numbering stays continuous and unique (numbering rules).
- Lookup / routing is checked before each send.
- Plan changes use referenced credit notes, not silent amount tweaks.
- Archive each structured original with its delivery status.
- Revisit VAT category if the service mix changes (VAT regimes).