Skip to main content
Version: 8.5

Réception de factures

Cette section décrit le processus de réception, dans AOS, des factures émises par les fournisseurs et acheminées par la PA. Elle se concentre sur la mise en œuvre côté AOS : comment la réception est déclenchée, comment le flux entrant est traité par le pipeline interne, où l'utilisateur consulte et supervise les flux entrants, et comment traiter les cas d'erreur.

Deux prérequis conditionnent la réception et doivent être satisfaits avant que le sous-module puisse acheminer une facture entrante dans AOS :

  • Une règle de routage de type Réception doit être configurée sur la plateforme d'accès, rattachée à un paramétrage Data Capture dont l'option « Générer automatiquement la facture » est activée.
  • L'adresse électronique de l'entreprise destinataire doit être enregistrée dans AOS et présente dans l'annuaire de la PA — c'est ce qui permet à la PA d'identifier l'entreprise comme destinataire et de lui adresser les flux entrants.

Déclenchement de la réception

Le batch « Synchronisation des factures » (action ACTION_SYNC_INVOICES du batch E-Invoicing) interroge périodiquement la PA pour récupérer les flux entrants disponibles. Pour chaque nouveau flux détecté, le batch télécharge le contenu (XML, éventuellement PDF lisible) et déclenche le traitement.

info

En cours de développement : Un planificateur (jobScheduler) sera intégré dans une future version afin de pouvoir configurer la périodicité d'exécution du batch.

Lorsque la plateforme d'accès est configurée avec « Webhook activé » et que la PA prend en charge ce mécanisme, les nouveaux flux entrants sont notifiés à AOS en temps réel par appel webhook (signé avec le secret partagé). Le sous-module identifie l'événement et déclenche immédiatement le traitement du flux entrant correspondant, sans attendre la prochaine exécution du batch.

info

La spécification webhook de la norme AFNOR XP Z12-013 (Annexe D) étant encore en pré-version à la date de la version de la norme utilisée. Cette méthode est en cours de développement et n'est pas disponible pour le moment. Le batch « Synchronisation des factures » constitue le mécanisme de référence pour la réception.

Chaque flux entrant créé dans AOS est associé à une « origine » qui indique le canal par lequel la réception a été déclenchée. Cette information est conservée à des fins de traçabilité et de diagnostic. Cet indicateur est en cours de développement car son utilité actuelle reste très restreinte, les autres méthodes que le Batch d'envoi étant en cours de développement. À terme il contiendra les valeurs suivantes :

  • Utilisateur — déclenchement manuel (en cours de développement)
  • Webhook — notification poussée par la PA (en cours de développement)
  • Import fichier — réinjection d'un fichier reçu hors API (en cours de développement)
  • Batch d'envoi — exécution planifiée du batch de synchronisation.

Traitement d'un flux entrant

Le traitement d'un flux entrant suit toujours la même séquence interne. Le sous-module orchestre le téléchargement, valide la compatibilité du format avec le paramétrage de capture configuré, puis délègue l'intégration au pipeline Data Capture qui produit la facture dans AOS.

Le sous-module appelle la PA pour télécharger le contenu du flux entrant :

  • Le fichier XML structuré (Factur-X, UBL ou CII) est récupéré systématiquement.
  • Le PDF lisible (ReadableView), s'il est mis à disposition par la PA, est récupéré en complément ; il sera attaché à la facture comme document de référence visuelle. En cours de développement.

Les fichiers téléchargés sont enregistrés en MetaFile et rattachés au flux.

Avant de lancer le pipeline Data Capture, le sous-module vérifie que le type du flux entrant retourné par la PA (flowTypeSelect : Factur-X, UBL, CII) est compatible avec le paramétrage Data Capture rattaché à la règle de routage Réception (champ applicationTypeSelect du paramétrage : facturx, ubl, cii, json).

Si les deux ne correspondent pas, le flux est mis de côté sans tentative d'intégration : un avertissement est journalisé, le flux reste en base avec son contenu téléchargé mais sans facture associée, et une exception est remontée au batch. L'administrateur doit alors soit ajuster le paramétrage Data Capture pour qu'il corresponde au format effectivement reçu, soit configurer une seconde règle de réception couvrant un autre format selon les besoins.

Ensuite le sous-module utilise un Template Data Capture à partir du paramétrage rattaché et du fichier XML téléchargé, puis enchaîne les étapes du pipeline standard de Data Capture :

  1. Création du Template — un nouveau Template Data Capture est créé en référence au paramétrage et au fichier XML.
  2. Reconnaissance des données — le pipeline Data Capture lit le XML et extrait les valeurs selon le schéma configuré.
  3. Validation des données — les règles de mappage et les contraintes obligatoires sont vérifiées.
  4. Évaluation des règles de contrôle — si la validation est en succès, les règles de contrôle métier configurées sur le paramétrage sont évaluées.
  5. Génération de la facture — le service de génération de facture du sous-module Data Capture produit l'objet Invoice dans AOS à partir des données extraites.

Le détail technique de ces étapes (notion de Template, règles d'extraction, règles de mappage, règles de contrôle) est documenté dans la documentation Axelor Data Capture, à laquelle il convient de se référer pour le paramétrage et le diagnostic du pipeline.

À l'issue de la génération de la facture, le sous-module rapproche le flux et la facture nouvellement créée.

  • Le flux référence la facture (Flow.invoice).
  • Le flux référence le Template Data Capture (Flow.dataCaptureTemplate), permettant de retrouver le détail du traitement.
  • La facture référence son identifiant de flux PA (Invoice.pdpFlowId) pour traçabilité.
  • Le fichier original est attaché à la facture comme document principal.

Cas d'erreur et reprise

Plusieurs catégories d'erreurs peuvent survenir au cours du traitement d'un flux entrant. Le sous-module conserve la trace de chaque tentative et expose des vues dédiées au diagnostic.

Lorsque le type du flux entrant ne correspond pas à l'applicationTypeSelect du paramétrage Data Capture rattaché à la règle Réception (par exemple : la PA livre un UBL alors que le paramétrage attend du Factur-X), le flux est ignoré sans tentative d'intégration. Un avertissement est journalisé et une exception est remontée au batch. Le flux reste en base avec son contenu téléchargé, mais sans facture associée.

Il est alors recommandé d'adapter le paramétrage Data Capture, ou créer une seconde règle de routage Réception couvrant le format effectivement reçu. Les flux ainsi mis de côté restent visibles dans le menu correspondant et peuvent être suivis pour reprise après correction.

Lorsque le paramétrage Data Capture est incorrect ou incomplet (schéma manquant, règle de mappage invalide, etc.), la création du Template peut échouer. Une exception explicite est remontée à l'utilisateur, accompagnée du message d'erreur retourné par le pipeline Data Capture. Aucune facture n'est créée et le flux reste sans facture rapprochée.

Lorsque le pipeline parvient à créer un Template mais échoue lors de la reconnaissance, de la validation ou de l'évaluation des règles de contrôle, le Template Data Capture passe à l'état « Anomalie » et son badge l'indique dans l'onglet Templates du flux. La facture n'est pas générée. L'administrateur reprend le Template manuellement depuis le sous-module Data Capture pour analyser et corriger l'anomalie.

Lorsque le Template est validé mais que le service de génération de facture ne produit pas de facture (cas typique : règles métier non remplies, données obligatoires absentes), une exception est remontée. Comme dans les cas précédents, le flux reste sans facture rapprochée et nécessite une intervention.

Une fois la cause de l'erreur identifiée et corrigée (ajustement du paramétrage Data Capture, correction d'un schéma ou d'une règle de mappage, mise à jour des données de référence), la reprise s'effectue généralement en actionnant manuellement les étapes suivantes du workflow classique de Data Capture, se référer à la documentation de ce module si nécessaire.