Comment attester qu'une facture d'achat a été reçue via le réseau Peppol ?

0000003292     -      14/04/2025

Afin de pouvoir récupérer la TVA sur une facture d'achat, l'écriture comptable doit reposer sur une pièce justificative valide. A partir du 1er janvier 2026, en Belgique, cette facture ne sera une pièce justificative valide que si elle a été reçue via le réseau Peppol. (Pour les factures B2B émises par une société belge). Se pose donc une interrogation quant à la preuve à pouvoir apporter le cas échéant, attestant que cette facture a bien transité via le réseau Peppol. Le fichier XML n'est en soit pas suffisant puisqu'il est possible (et même courant) d'échanger ce type de fichiers par simple mail.

Lorsqu'une facture transite via le réseau, elle est incluse dans une "enveloppe" de type StandardBusinessDocument qui, en plus de la facture, contient un StandardBusinessDocumentHeader. Ce header contient des informations concernant le document électronique ainsi qu'un timestamp qui atteste de son passage via le réseau. Cela sera donc utilisé comme preuve.

Pour visualiser cette information, il suffit d'ajouter dans l'écran des achats de gestion commerciale et/ou de la comptabilité un objet de type PeppolHeader.

StandardBusinessDocumentHeader

Cette documentation est écrite sans connaissance de la tolérance administrative qui prévaudra.


Techniquement, cette information est stockée dans la table PEPPPOL_RECEIVED_HEADERS. Mercator n'y supprime jamais aucun enregistrement et ils ne sont modifiables nulle part dans le programme.

Si on souhaite effectuer du reporting sur ces headers, ou développer d'autres applications, les relations sont construites sur base de la colonne IMPORTED_IN :

Pour la gestion commerciale

  • 'G:'  + str(@type) + cast(@id as char(10))+cast(@journal as char(5))+str(@piece,10)
  • "G:" + billingEngine.Type + billingEngine.Id.PadRight(10) + billingEngine.Journal.PadRight(5) + billingEngine.Piece.ToString().PadLeft(10);

Pour la comptabilité :

  • 'C:' + str(@num_ex,3)+cast(@journal as char(5))+str(@piece,10)
  • "C:" + bookingEngine.NumEx.ToString().PadLeft(3) + bookingEngine.Journal.PadRight(5) + bookingEngine.Piece.ToString().PadLeft(10);


Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)