Le parcours d’une facture
Une facture, de l’export ERP aux événements de statut.
- Dans le bac à sable
- Pas encore dans le bac à sable
En termes simples
Cette page suit une facture depuis l’ERP du client jusqu’à la liste des factures en échec. Ce qui compte pour l’entreprise : quand une facture est erronée, la réponse nomme le champ dans l’export du client et indique qui le corrige, avant tout envoi. Dans le bac à sable hébergé, la dernière étape n’a pas encore de connexion à un pays.
Une facture, de l’export de l’ERP à la liste de suivi. La fiche jaune est la réponse qui nomme le champ dans l’export du client. Le cadre en pointillés est le réseau. Le bac à sable hébergé n’en a encore aucun de configuré.
- La facture quitte l’ERP du client sous forme d’export d’ERP (Business Central ou SAP Business One), de JSON canonique ou de fichier XML finalisé.
- Elle arrive par
POST /invoices,POST /invoices/xmlou un fichier dans le dossier de dépôt. - Le modèle canonique contrôle la structure. Un échec nomme le champ.
- Les validateurs propres au canal s’exécutent : KoSIT pour l’Allemagne, Schematron pour Peppol, la France et la Roumanie, le schéma FA(3) pour la Pologne. La réponse est
202avec un identifiant, ou422avec un code du catalogue qui nomme le champ, indique qui agit et donne une indication de correction. - Une facture qui passe les contrôles attend dans une file d’attente. KSeF, Peppol, la France et l’Allemagne partagent la voie rapide. L’ANAF a sa propre voie lente.
- Un canal doté d’un identifiant d’accès au réseau envoie la facture. L’Allemagne n’a pas de réseau : sa facture s’arrête à
readyet l’intégrateur livre le fichier. Un canal sans identifiant d’accès, comme aujourd’hui sur le bac à sable hébergé, n’envoie rien. - Chaque résultat devient un événement de statut, conservé dans l’ordre. Voir statuts.
- Un rejet définitif arrive sur la liste de suivi. Les échecs temporaires donnent lieu à de nouvelles tentatives, et n’y arrivent que lorsque celles-ci sont épuisées.
Remarque
Un fichier XML finalisé prend un raccourci. Il passe un contrôle de sécurité et les validateurs du canal (étape 4), mais ni contrôle canonique ni mapping, et rejoint la file d’attente à l’étape 5.
POST /validate n’exécute que les étapes 3 et 4. Il ne stocke rien, n’envoie rien et répond toujours 200 avec un rapport. Voir essai à blanc.