Flowie
Conformité · 🇧🇪 Belgique

Belgique — 100 % Peppol depuis le 2026-01-01

La Belgique n'exploite aucun hub réglementaire central pour la facturation électronique B2B. La remise Peppol est l'événement de conformité. Flowie est un point d'accès Peppol enregistré (identifiant national be:flowie) — directement, ou via un partenaire local spécialisé lorsqu'une présence dans le pays est requise — et votre stack n'a pas besoin d'une intégration de reporting séparée.

⚠️ Ce qui a changé — HERMES mis hors service le 2025-12-31

Si vous aviez auparavant câblé le reporter de conformité HERMES de Flowie ou filtré les webhooks compliance.reported sur platform == "HERMES", ce chemin n'existe plus. Le Service Public Fédéral Finances (FPS Finance / SPF Finances) belge a fermé HERMES le 2025-12-31, après que la revue du Business Experts Group de juillet 2024 a conclu que le marché privé des points d'accès Peppol était suffisamment mature pour rendre superflu le pont gouvernemental temporaire. L'accès en consultation seule a expiré le 2026-03-31.

Désormais : envoyez les factures belges via Peppol avec le profil BE-CIUS, un point c'est tout. Aucun événement compliance.reported n'est émis pour la Belgique. Voir Migration ci-dessous pour les changements de code précis.

En bref

Ce qui a changé — le retrait d'HERMES

HERMES était un pont gratuit exploité par l'État, géré par le FPS Finance, qui permettait aux petites entreprises d'envoyer des factures structurées aux acheteurs du secteur public (et, dans sa version ultérieure, devait servir de hub de reporting B2B). Il a toujours été positionné comme un pont temporaire jusqu'à ce que le marché privé des points d'accès Peppol arrive à maturité.

DateÉvénementSource
2024-02-06La Belgique adopte la loi sur la facturation électronique B2B (Loi du 6 février 2024).Loi du 6 février 2024 (Moniteur belge)
2024-07Le Business Experts Group réévalue HERMES et recommande sa mise hors service — le marché privé des points d'accès Peppol est jugé mature.efacture.belgium.be (FPS Finance)
2026-01-01Le mandat B2B entre en vigueur : toutes les transactions B2B nationales taxables doivent utiliser la facturation électronique structurée via Peppol.OpenPeppol · Belgique
Fin 2025 (selon le FPS Finance)Chemin d'envoi HERMES mis hors service.Portail HERMES · avis officiel
2026-03-31La fenêtre de consultation seule d'HERMES se ferme. Plateforme entièrement hors ligne.Portail HERMES · avis officiel

Chronologie 2017 → 2028

DateQuiQuoi
2017-01-01Toutes les entreprises BEB2G fédéral via Mercurius (en vigueur, toujours d'application).
2024-02-06LégislateursLoi du 6 février 2024 promulguée (mandat B2B).
2025-12-31FPS FinanceChemin d'envoi HERMES mis hors service.
2026-01-01Transactions B2B nationales taxablesFacturation électronique structurée obligatoire via Peppol BIS 3.0 (BE-CIUS).
2026-03-31FPS FinanceLa fenêtre de consultation HERMES se ferme.
2028-01-01 indicatifTout le B2BContrôle continu des transactions (CTC) dans le cadre du calendrier ViDA de l'UE. Mise en œuvre belge finale à déterminer ; attendez-vous à un reporting quasi temps réel des données d'en-tête de facture au FPS Finance.

Le modèle Peppol à 4 coins

Contrairement au PPF français ou au SDI italien, la Belgique ne fait pas transiter les factures par un régulateur central. Chaque entreprise se connecte à un point d'accès Peppol (Flowie en est un), et les factures circulent de coin à coin :

┌─────────────┐     ┌────────────┐    ┌──────────────┐    ┌────────────────┐
│  Sender ERP │ →→→ │ Sender AP  │ →→ │ Recipient AP │ →→ │ Recipient ERP  │
│             │     │  (Flowie)  │    │ (any Peppol) │    │                │
└─────────────┘     └────────────┘    └──────────────┘    └────────────────┘
                          ↓
              [discovers recipient via SMP]

Il n'y a pas de branche parallèle vers un hub réglementaire. La piste de conformité que vous conservez est la vôtre : le Message Level Status (MLS) Peppol que vous recevez en retour du point d'accès destinataire, les événements de cycle de vie que vous enregistrez dans Flowie et votre système comptable. C'est la piste d'audit si vous êtes un jour contrôlé par le FPS Finance.

Profil BE-CIUS — ce qui est spécifique à la Belgique

La Belgique utilise Peppol BIS Billing 3.0 avec une Core Invoice Usage Specification (CIUS) qui ajoute ces contraintes par-dessus le noyau européen (EN 16931) :

Champs obligatoires pour les factures belges

Mercurius — hub B2G fédéral

Mercurius est le seul hub côté régulateur belge encore concerné. Pour les acheteurs publics fédéraux, régionaux et locaux belges, le destinataire est toujours Mercurius. L'identifiant Peppol ressemble à :

9925:BE-mercurius-<OVO-number>

Recherchez le numéro OVO de n'importe quelle entité publique dans le portail Mercurius, ou interrogez l'annuaire de Flowie :

curl https://back.p2p-flowie.com/exchange/v1/directory/search?country=BE&naceCodes=8411 \
  -H "Authorization: Bearer $FLOWIE_KEY"

Envoyer une facture belge — de bout en bout

Le même POST /v1/documents/send fonctionne pour la Belgique ; rien de plus à câbler par rapport à un envoi Peppol générique. Flowie applique la validation BE-CIUS lorsque les deux numéros de TVA commencent par BE :

curl -X POST https://back.p2p-flowie.com/exchange/v1/documents/send \
  -H "Authorization: Bearer $FLOWIE_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: inv-be-2026-0451" \
  -d '{
    "type": "invoice",
    "from": "comp_be_acme",
    "to":   "0208:0123456789",
    "document": {
      "number":    "INV-2026-0451",
      "issueDate": "2026-04-30",
      "dueDate":   "2026-05-30",
      "currency":  "EUR",
      "buyer":     { "vatNumber": "BE0987654321" },
      "lines": [{
        "description": "Consulting — April 2026",
        "quantity": 10, "unit": "hours",
        "unitPrice": 150.00,
        "vatCategory": "S", "vatRate": 21
      }],
      "payment": {
        "reference": "+++123/4567/89000+++",
        "iban": "BE68 5390 0754 7034"
      }
    }
  }'

Réponse : un webhook document.sent est émis lorsque le point d'accès destinataire confirme la réception. Aucun événement compliance.reported ne suivra — c'est désormais intentionnel.

Cycle de vie des factures belges

Vous pouvez toujours appeler POST /v1/documents/{id}/lifecycle sur les factures belges pour enregistrer approved, rejected, paid, etc. — Flowie conserve la piste d'audit et émet les webhooks lifecycle.updated. La différence par rapport à la France/l'Italie :

PaysLa mise à jour du cycle de vie émetRapport de conformité
🇫🇷 Francelifecycle.updated + compliance.reported (PPF)Oui — Flowie effectue le reporting vers le PPF
🇮🇹 Italielifecycle.updated + compliance.reported (SDI)Oui — Flowie effectue le reporting vers le SDI
🇧🇪 Belgiquelifecycle.updated uniquementNon — la remise Peppol est la conformité

Si vos chemins de code se branchent sur compliance.reported pour la Belgique, traitez l'absence de cet événement comme le signal de succès — l'achèvement de la mise à jour du cycle de vie est la seule chose dont vous avez besoin.

Erreurs de validation

La validation BE-CIUS s'exécute dans Flowie avant même que la facture ne quitte le point d'accès. Les codes que vous voyez proviennent des artefacts standard du validateur Peppol BIS Billing 3.0 (règles métier EN 16931 + le schematron BE-CIUS). Le jeu de règles complet est volumineux — le tableau ci-dessous met en évidence les règles que la plupart des intégrations BE rencontrent.

Famille de règlesCe qu'elle vérifieOù elle apparaît
BR-CO-*Totaux multi-lignes EN 16931 : les nets de ligne, les totaux du document et les ventilations de TVA doivent se réconcilier.422 Unprocessable Entity sur POST /v1/documents/send ou /validate. Vérifiez error.details[] pour le code de règle en échec et le XPath fautif.
BR-BE-*Ajouts BE-CIUS : TVA (BTW) obligatoire sur les parties B2B, somme de contrôle de la communication structurée OGM-VCS, catégories de TVA autorisées.Idem — 422 synchrone. Les noms de codes spécifiques dépendent de la version du schematron BE-CIUS livrée par Flowie ; le corps de la réponse porte toujours le code de règle, la description humaine et le XPath.
Recherche TVANuméro de TVA (BTW) du vendeur / de l'acheteur actif dans le KBO/BCE.Détecté à POST /v1/companies (création d'entreprise) — les TVA erronées n'atteignent jamais le chemin d'envoi.
MERC-*Acceptation B2G Mercurius — numéro OVO reconnu, schéma accepté.Webhook document.failed avec errorCode renseigné, après le saut de remise Peppol.
La validation est passée du régulateur au moment de l'envoi
Avant le retrait d'HERMES, les échecs de schematron sur les factures belges apparaissaient sous forme de webhooks compliance.reported.failed différés. Aujourd'hui, les mêmes vérifications s'exécutent localement avant que la facture ne quitte Flowie — les échecs sont des 422 sur la réponse synchrone POST /v1/documents/send, avec le code de règle propre au validateur dans error.details[].code. Retour plus rapide, sans glue de gestion d'événements supplémentaire.

Tester votre intégration belge

Utilisez l'hôte sandbox avec une clé flw_test_…. Deux tests reproductibles couvrent les cas qui intéressent le plus les intégrateurs :

Ce que vous voulez testerComment
Cas nominal BE (B2B)TVA expéditeur BE0000000001, destinataire 0208:TEST_OK, les deux TVA renseignées. Les webhooks document.sent + document.delivered sont émis ; pas de compliance.reported.
Envoi B2G MercuriusDestinataire 9925:BE-mercurius-99999. Même forme de réponse qu'un destinataire privé.
Destinataire injoignableDestinataire 0208:TEST_AP_FAIL → webhook document.failed avec RECIPIENT_UNREACHABLE.
Rejet de validationEnvoyer avec un UBL délibérément cassé (par ex. totaux de ligne incohérents) → 422 sur la réponse synchrone. Le code de règle exact provient du schematron BE-CIUS et varie selon la version du validateur.

Pour un test négatif exhaustif du validateur, utilisez POST /v1/documents/validate — il exécute toutes les règles BE-CIUS et renvoie l'intégralité de error.details[] sans tenter de remise Peppol.

Migration : HERMES → Peppol

Si votre stack supposait que Flowie effectuerait automatiquement le reporting des factures belges vers HERMES, voici le diff :

AuparavantDésormais
Écouter compliance.reported avec data.platform == "HERMES"Supprimez l'écouteur pour la Belgique. L'événement n'est plus émis.
Se brancher sur data.platform == "HERMES" dans votre routeur de webhooksSupprimez la branche. compliance.reported n'est émis que pour la France (PPF) et l'Italie (SDI).
Définir settings.autoCompliance.HERMES sur une entreprise BEChamp accepté mais sans effet ; supprimez-le au prochain rafraîchissement de config.
Filtrer GET /v1/compliance/reports?platform=HERMESRenvoie uniquement les lignes historiques. Les nouvelles factures BE n'ajouteront pas de lignes ici.
Gestion des rejets sur HER-001 / HER-002 / HER-007Déplacez la gestion des rejets équivalente sur la réponse 422 synchrone de POST /v1/documents/send. Lisez error.details[].code (règle du schematron BE-CIUS) et error.details[].xpath (où dans l'UBL cela a échoué).

La table compliance_reports elle-même conserve les lignes HERMES historiques pour l'audit — elles ne sont jamais supprimées, elles cessent simplement d'être créées.

FAQ

Dois-je m'enregistrer auprès de quelque chose de nouveau ?

Non. Flowie publie automatiquement les entreprises BE sur le SMP Peppol (le même enregistrement qui vous permettait déjà d'envoyer des factures Peppol partout en Europe). Il n'y a aucun successeur à HERMES.

Puis-je continuer à utiliser des factures papier pour le B2C ?

Oui. Le mandat du 2026-01-01 concerne uniquement le B2B. Le B2C reste en format libre jusqu'à nouvel ordre.

Qu'en est-il de l'exemption PME ?

Aucune exemption — le mandat couvre toutes les transactions B2B taxables quelle que soit la taille de l'entreprise, ce qui est inhabituel en Europe. Planifiez en conséquence.

Le PDF intégré en BLOB est-il obligatoire ?

Non, il est optionnel. Mais de nombreux destinataires préfèrent encore un rendu lisible par l'humain pour les comptes fournisseurs. Flowie le génère automatiquement lorsque vous envoyez du JSON.

Qu'en est-il du CTC (contrôle continu des transactions) en 2028 ?

Le gouvernement fédéral a signalé son intention de s'aligner sur le calendrier ViDA de l'UE (CTC d'ici 2028) mais aucune réglementation belge concrète n'existe encore. Lorsqu'elle arrivera, Flowie la fera apparaître de nouveau comme une branche côté régulateur — même forme que le PPF/SDI aujourd'hui. Nous l'annoncerons dans le journal des modifications.

J'avais HERMES_REPORT_URL dans mon environnement. Et maintenant ?

Vous pouvez le supprimer. Flowie ne lit plus HERMES_REPORT_URL ni HERMES_REPORT_TOKEN — l'adaptateur correspondant a été supprimé. Laisser les variables définies est sans danger mais inutile.

Références

Sources primaires (gouvernement belge & régulateur de l'UE) :

Analyses sectorielles (confirmation indépendante du calendrier de retrait) :