Peppol en Allemagne : ce qu'une facture BIS 3.0 valide exige en plus
Lorsque le vendeur et l’acheteur sont tous deux établis en Allemagne, une facture Peppol BIS Billing 3.0 doit satisfaire à davantage que l’EN 16931 et les règles Peppol générales. Le jeu de règles officiel d’OpenPeppol ajoute 31 règles nationales allemandes, les règles DE-R. La plupart sont obligatoires : si l’une d’elles échoue, la facture est invalide. Quelques-unes sont des avertissements.
Cet article recense ce qu’exigent les règles allemandes, explique pourquoi « valide » s’accompagne toujours d’un numéro de version, et montre comment SealDoc contrôle chaque facture Peppol allemande avant même qu’elle n’existe.
Quand les règles allemandes s’appliquent
Chaque règle DE-R commence par la même condition : le fournisseur et le client sont tous deux établis en Allemagne. Une facture d’un vendeur allemand à un acheteur aux Pays-Bas, ou d’un vendeur français à un acheteur allemand, est contrôlée selon l’EN 16931 et les règles Peppol, mais pas selon les règles DE-R.
Ce qu’exigent les règles allemandes
Regroupées par partie de la facture, avec les numéros de règle du jeu de règles officiel, version 3.0.21.
Vendeur
| Règle | Exigence |
|---|---|
| DE-R-002 | Le groupe contact du vendeur (BG-6) est présent |
| DE-R-005 | Point de contact du vendeur (BT-41) |
| DE-R-006 | Numéro de téléphone du contact vendeur (BT-42) |
| DE-R-007 | Adresse e-mail du contact vendeur (BT-43) |
| DE-R-003, DE-R-004 | Ville (BT-37) et code postal (BT-38) du vendeur |
| DE-R-016 | Avec la catégorie de TVA S, Z, E, AE, K, G, L ou M : l’identifiant TVA du vendeur (BT-31), l’identifiant d’enregistrement fiscal (BT-32) ou un représentant fiscal (BG-11) |
| DE-R-027, DE-R-028 (avertissements) | Un numéro de téléphone plausible (au moins trois chiffres) et une adresse e-mail bien formée |
Acheteur et livraison
| Règle | Exigence |
|---|---|
| DE-R-015 | Référence acheteur (BT-10) |
| DE-R-008, DE-R-009 | Ville (BT-52) et code postal (BT-53) de l’acheteur |
| DE-R-010, DE-R-011 | Si une adresse de livraison (BG-15) est indiquée : sa ville (BT-77) et son code postal (BT-78) |
Paiement
| Règle | Exigence |
|---|---|
| DE-R-001 | Instructions de paiement (BG-16) |
| DE-R-023-1, DE-R-023-2 | Virement (code 30 ou 58) : le groupe virement (BG-17), et aucun groupe carte ni prélèvement |
| DE-R-024-1, DE-R-024-2 | Carte de paiement (code 48, 54 ou 55) : le groupe carte (BG-18), et aucun autre groupe de paiement |
| DE-R-025-1, DE-R-025-2 | Prélèvement (code 59) : le groupe prélèvement (BG-19), et aucun autre groupe de paiement |
| DE-R-030, DE-R-031 | Prélèvement : l’identifiant de créancier attribué par la banque (BT-90) et l’identifiant du compte débité (BT-91) |
| DE-R-018 | Le Skonto dans les conditions de paiement (BT-20), dans un format fixe, par exemple #SKONTO#TAGE=14#PROZENT=2.00# |
| DE-R-019, DE-R-020 (avertissements) | Un IBAN valide pour le virement SEPA (58) et le prélèvement SEPA (59) |
TVA et document
| Règle | Exigence |
|---|---|
| DE-R-014 | Le taux de la catégorie de TVA (BT-119) pour chaque catégorie de TVA |
| DE-R-017 (avertissement) | Un code de type de facture (BT-3) issu d’une liste restreinte : 326, 380, 381, 384, 389, 875, 876 ou 877 |
| DE-R-026 (avertissement) | Une facture rectificative (384) fait référence à la facture précédente (BG-3) |
| DE-R-022 | Les pièces jointes (BG-24) ont des noms de fichier uniques |
| DE-R-T02 (avertissement) | L’emplacement d’un document externe (BT-124) est une URL absolue |
La règle Skonto est celle qui surprend le plus d’équipes. Le format est strict : chaque entrée commence et se termine par un #, les segments sont SKONTO, TAGE= et PROZENT= en majuscules, le pourcentage comporte un point et deux décimales, et aucun autre texte n’est autorisé sur cette ligne.
Pourquoi « valide » a un numéro de version
OpenPeppol publie ses règles par versions successives. Un fichier valide selon une version peut être invalide selon la suivante, parce que des règles sont ajoutées ou durcies. La version 3.0.21 est obligatoire depuis le 17 août 2026. Par rapport à la 3.0.20, elle ajoute une règle allemande, DE-R-T02.
La réponse honnête à « cette facture est-elle valide ? » comporte donc toujours deux précisions de plus : selon quelles règles, et dans quelle version.
Comment SealDoc contrôle les factures Peppol allemandes
SealDoc crée la facture Peppol BIS 3.0 (UBL 2.1) à partir de JSON, via l’API avec le profil PeppolBis3. Avant que la facture n’existe, SealDoc la contrôle selon l’EN 16931, les règles Peppol et les règles allemandes. Une facture qui ne passe pas n’est pas créée.
Pour être sûrs que notre propre contrôle dit ce que disent les règles officielles, nous avons fait vérifier le résultat par un validateur indépendant. Le 2 octobre 2026, nous avons exécuté phive, le moteur de validation open source, avec les règles officielles OpenPeppol 3.0.21 dans un conteneur isolé, sur exactement les octets que livre SealDoc :
- une facture à 19 % : valide, aucune erreur, aucun avertissement ;
- une facture avec 19 % et 7 % sur une même facture : valide, aucune erreur, aucun avertissement ;
- un avoir : valide, aucune erreur, aucun avertissement.
Et un contre-test : la même facture sans l’adresse e-mail du vendeur. Le validateur la rejette sur DE-R-007. C’est ainsi que vous savez que les règles allemandes s’exécutent réellement.
Envoyer via Peppol
L’envoi via Peppol directement depuis SealDoc est tout proche. Nous achevons les dernières étapes de la connexion.
Questions fréquentes
Les règles allemandes s’appliquent-elles aux factures transfrontalières ?
Elles ne s’appliquent que lorsque le vendeur et l’acheteur sont tous deux établis en Allemagne. Une facture transfrontalière est contrôlée selon l’EN 16931 et les règles Peppol.
SealDoc crée-t-il aussi des XRechnung ?
Oui. SealDoc crée des XRechnung 3.0 (CII) sous forme de PDF/A-3 avec le XML intégré, dans le navigateur avec SealDoc Invoice et via l’API. Le guide de conformité XRechnung 3.0 explique les règles allemandes propres à ce format.
Par où commencer ?
Par l’introduction à Peppol BIS 3.0 pour les bases, et par la page développeurs pour l’API.