En Allemagne, fiskaly prend en charge l’envoi et la réception de factures électroniques B2B. La facturation électronique est réglementée par le Ministère fédéral des Finances (BMF — Bundesministerium der Finanzen). Toutes les factures électroniques doivent être conformes à la norme EN 16931, satisfaite par des formats tels que XRechnung, ZUGFeRD ou Peppol BIS 3.0 Billing, et doivent être archivées pendant 8 ans dans un format électronique conforme (§14b UStG).
fiskaly génère des factures électroniques conformes à la norme EN 16931 et les transmet via l’un des deux canaux. Le canal est choisi par facture sur le destinataire (recipients[].invoicing) : par e-mail — au format ZUGFeRD ou XRechnung — ou via le réseau PEPPOL, au format XRechnung.
Les deux directions se configurent différemment :
Envoi — B2B
Deux canaux de transmission, choisis par facture sur le destinataire : par e-mail au format ZUGFeRD ou XRechnung, ou via le réseau PEPPOL au format XRechnung. L'e-mail ne nécessite aucune inscription au réseau.
Réception — B2B
Uniquement via PEPPOL : l'inscription PEPPOL facultative et un Proof of Ownership validé sont donc requis. Un Taxpayer qui envoie uniquement par e-mail ne peut pas recevoir. Les XRechnung entrantes ne sont actuellement pas reçues.
Cette page couvre les exigences spécifiques à l’Allemagne qui complètent l’Intégration générale étape par étape. Assurez-vous de disposer des informations suivantes sur le contribuable avant de continuer :
vat_id_number— Numéro d’identification TVA (Umsatzsteuer-ID)credentials.tax_number— Numéro fiscal au format ELSTER (Steuernummer)name— Dénomination légale enregistrée et nom commercial de l’entreprise ou de la personne physiqueaddress— Adresse légale enregistrée de l’entreprise ou de la personne physique
Un System E_INVOICE_SERVICE allemand ne peut pas être mis en service tant
qu’aucun vat_id_number valide n’est renseigné sur le Taxpayer. Le
Steuernummer indiqué dans credentials.tax_number ne suffit pas : les
factures électroniques allemandes exigent une identité fiscale de type TVA,
les deux champs ne sont donc pas interchangeables ici. Sans lui, la mise en
service échoue avec 422 Unprocessable Content.
Envoi de factures électroniques : exigences relatives au destinataire
Section intitulée « Envoi de factures électroniques : exigences relatives au destinataire »Pour envoyer une facture électronique, vous indiquez son destinataire et son mode d’acheminement directement sur l’enregistrement de la facture. Lorsque vous créez la facture (TRANSACTION::INVOICE) avec createRecord, ajoutez le destinataire à son tableau recipients.
Comme l’explique l’Intégration générale étape par étape, chaque destinataire doit être de type BUSINESS et son bloc invoicing doit être renseigné. Au-delà des informations standard de toute facture électronique (nom, adresse, identification fiscale du destinataire, lignes de facture, etc.), l’Allemagne ajoute le canal de transmission sur le destinataire :
recipients[].type=BUSINESSrecipients[].identification.type=VAT— la facture électronique allemande identifie l’acheteur par son numéro de TVArecipients[].invoicing.type=EMAILouPEPPOL— le canal de transmissionrecipients[].invoicing.email— (EMAIL uniquement) l’adresse e-mail du destinatairerecipients[].invoicing.format— (EMAIL uniquement, facultatif) le format du documentrecipients[].invoicing.identifier— (PEPPOL uniquement) le PEPPOL Network Identifier du destinataire, sous la forme<code de schéma>:<valeur>— généralement9930:<numéro de TVA>pour une entreprise allemande
invoicing.type | Également requis | Mode de transmission par fiskaly |
|---|---|---|
EMAIL | invoicing.email | Par e-mail à cette adresse, au format ZUGFeRD ou XRechnung selon invoicing.format. |
PEPPOL | invoicing.identifier | Vers le point d’accès PEPPOL du destinataire, au format XRechnung — voir la limitation XRechnung. |
Vous choisissez le canal par facture et non une fois pour toutes par destinataire — la même entreprise peut recevoir une facture par e-mail et la suivante via PEPPOL.
Sans le bloc invoicing, la facture électronique est créée mais non transmise
au destinataire.
Inscription PEPPOL
Section intitulée « Inscription PEPPOL »En Allemagne, l’inscription au réseau PEPPOL est facultative : vous choisissez de l’activer System par System.
Renseignez-la sur le System E_INVOICE_SERVICE avec
createSystem :
{ "content": { "type": "E_INVOICE_SERVICE", "location": { "id": "..." }, "software": { "...": "..." }, "registrations": [{ "type": "PEPPOL" }] }}Ou ajoutez-la à un System existant avec
updateSystem :
{ "content": { "registrations": [{ "type": "PEPPOL" }] }}Ce qui découle de ce choix :
registrationsomis — le System n’envoie que par e-mail. Aucun Proof of Ownership n’est nécessaire et le System passe directement en modeOPERATIVE.registrationscontientPEPPOL— un Proof of Ownership est requis. Lors de la mise en service, lestatedu System devientCOMMISSIONEDmais sonmodedevientDEGRADED, et le System porte une entrée de journal signalant l’absence du Proof of Ownership.
Pour faire passer le System en mode OPERATIVE, téléversez le Proof of
Ownership comme décrit à l’étape 11
du guide d’intégration général. La vérification prend jusqu’à 72 heures ; une
fois terminée, le System change d’état automatiquement et l’entrée de journal
est supprimée. Le contenu attendu du document est décrit dans la
section Proof of Ownership.
Vous pouvez ajouter PEPPOL à un System déjà mis en service. Cela relance la
vérification du Proof of Ownership : un System qui n’a jamais fourni le
document repasse donc en mode DEGRADED jusqu’à ce qu’il le fasse.
Transmission via PEPPOL
Section intitulée « Transmission via PEPPOL »Sur le destinataire de votre requête createRecord, définissez :
recipients[].invoicing.type=PEPPOLrecipients[].invoicing.identifier— le PEPPOL Network Identifier du destinataire
Deux conditions préalables doivent être remplies : votre System E_INVOICE_SERVICE doit être inscrit au réseau PEPPOL (voir Inscription PEPPOL) et vous devez disposer du PEPPOL Network Identifier du destinataire. fiskaly se charge du schéma de l’identifiant.
Les factures transmises ainsi sont générées au format XRechnung. recipients[].invoicing.format n’intervient pas ici : sur ce canal, le format n’est pas sélectionnable.
PEPPOL inscrit chaque participant pour les types de document qu’il est en
mesure de recevoir, et XRechnung constitue un type de document à part entière
sur le réseau. L’envoi à un destinataire qui n’est pas inscrit pour XRechnung
échoue avec receiver does not support document type.
Ce n’est pas la conformité qui est en cause : XRechnung respecte les règles
Peppol BIS 3.0, mais cela ne la rend pas livrable à un participant inscrit
uniquement pour Peppol BIS Billing 3.0. fiskaly ne génère actuellement pas de
Peppol BIS Billing 3.0 pour l’Allemagne : recipients[].invoicing.format
propose ZUGFERD_V2 et XRECHNUNG_V3, et ne concerne que le canal e-mail.
Tant que vous ne savez pas qu’un destinataire est inscrit pour XRechnung, adressez-lui ses factures par e-mail.
L’envoi aux acheteurs publics allemands (B2G) n’est pas encore pris en charge, l’adressage via la Leitweg-ID n’est donc pas disponible.
Envoi par e-mail : choisir le format du document
Section intitulée « Envoi par e-mail : choisir le format du document »Lorsque le canal est EMAIL, vous décidez quel format de document fiskaly génère. Définissez-le sur le même destinataire dans votre requête createRecord, via recipients[].invoicing.format :
| Valeur | Format |
|---|---|
ZUGFERD_V2 (par défaut) | ZUGFeRD — un document hybride : un PDF/A-3 lisible par une personne, avec le XML structuré intégré à l’intérieur. |
XRECHNUNG_V3 | XRechnung — une facture XML purement structurée, sans couche PDF. |
Le champ est facultatif : si vous l’omettez, fiskaly génère ZUGFERD_V2. Les deux formats sont conformes à la EN 16931.
Réception de factures électroniques
Section intitulée « Réception de factures électroniques »La réception des factures entrantes passe par PEPPOL et dépend donc de la même inscription PEPPOL que la transmission via PEPPOL — Proof of Ownership validé inclus. Un Taxpayer qui envoie uniquement par e-mail ne peut pas recevoir.
Lorsque vous inscrivez un Taxpayer allemand sur PEPPOL, fiskaly l’inscrit par
défaut à l’envoi et à la réception. Les factures entrantes adressées au
PEPPOL Identifier du System lui sont rattachées, et fiskaly crée pour chacune un
Record de type E_INVOICE::RECEPTION.
L’inscription pour la réception couvre Peppol BIS Billing 3.0, et non
XRechnung. Une facture adressée à votre Taxpayer au format XRechnung est
rejetée par le réseau avant d’atteindre fiskaly ; aucun Record de type
E_INVOICE::RECEPTION n’est donc créé. Il s’agit de la même limitation liée
aux types de document inscrits que celle décrite sous
Transmission via PEPPOL.
Appelez retrieveSystem
pour lire compliance.state :
TRANSMISSION_RECEPTION— le System peut envoyer et recevoir.TRANSMISSION_ONLY— le System ne peut qu’envoyer.
L’envoi et la réception constituent le comportement par défaut, mais fiskaly se replie sur une inscription en envoi seul si l’inscription PEPPOL signale un conflit — généralement parce que le PEPPOL Participant Identifier de votre Taxpayer est déjà enregistré chez un autre prestataire. Le System reste utilisable pour l’envoi. Si vous comptiez recevoir, contactez l’équipe de support fiskaly à l’adresse dev-support@fiskaly.com en indiquant le numéro de TVA du Taxpayer.
Récupération des factures reçues
Section intitulée « Récupération des factures reçues »Chaque facture adressée à votre Taxpayer est reçue et stockée automatiquement sous forme de Record — il n’y a pas de webhook, vous interrogez donc l’API pour détecter les nouvelles :
- Appelez
listRecordset filtrez surE_INVOICE::RECEPTION. - Pour chaque nouveau Record, appelez
retrieveRecordaveccompliance-artifactpour obtenir le XML signé.
listRecords renvoie les Records les plus récents (limit vaut 10 par défaut,
du plus récent au plus ancien) : suivez donc ceux que vous avez déjà traités.