Communauté gestion

Forum Discussion

Avatar de SupportSV
SupportSV
Icône pour le rang Première notePremière note
il y a 28 jours
Répondu

Accès API au validateur

Bonjour,

Actuellement il est possible d'utiliser  l'url      ....../invoices/e_invoice_validator pour uploader un pdf et avoir le compte-rendu détaillé des anomalies qui ont été détectée.

Est-ce qu'il est possible d'avoir la même fonctionnalité en API lorsqu'un fichier est déposé par 

https://app.pennylane.com/api/external/v2/customer_invoices/import 

=> 
{ "type": "cii", "profile": "facturx_en16931", "valid": false, "validation_results": { "XSD Structure": { "valid": true, "errors": [], "warnings": [] }, "Factur-X": { "valid": true, "errors": [], "warnings": [] }, "French Rules (BR-FR)": { "valid": true, "errors": [], "warnings": [] }, "PPF Portal": { "valid": false, "errors": [ { "rule_id": "G6.25", "message": "Value must be greater than 2026-09-04", "locations": [ "BT-74 - billing_period_attributes.end_date" ] } ],

etc...


Merci

  • Bonjour SupportSV​ 

    Non, il n'est pas possible aujourd'hui d'obtenir le même compte-rendu détaillé (structuré par catégorie : XSD Structure, Factur-X, French Rules BR-FR, PPF Portal) via l'API /api/external/v2/customer_invoices/import ou via /api/external/v2/customer_invoices/e_invoices/imports.

    Le rapport détaillé provient d'un service dédié (validation Factur-X/PPF), qui n'est appelé que par le contrôleur derrière la page "E-Invoice Validator" (fonctionnalité protégée par le feature flag invoicing_core__e_invoice_validator). Les endpoints d'import de facture appellent d'autres validateurs/services (contrôle des paramètres, création de la facture, puis conversion asynchrone en Factur-X si convert_to_e_invoice est à true), qui ne produisent pas cette sortie structurée par catégorie. En cas de non-conformité (ex. règles BR-FR), l'import peut échouer ou la conversion en e-facture peut échouer, mais l'API ne renvoie pas le même JSON détaillé que celui produit par le validateur.

3 Réponses

  • Bonjour SupportSV​ 

    Non, il n'est pas possible aujourd'hui d'obtenir le même compte-rendu détaillé (structuré par catégorie : XSD Structure, Factur-X, French Rules BR-FR, PPF Portal) via l'API /api/external/v2/customer_invoices/import ou via /api/external/v2/customer_invoices/e_invoices/imports.

    Le rapport détaillé provient d'un service dédié (validation Factur-X/PPF), qui n'est appelé que par le contrôleur derrière la page "E-Invoice Validator" (fonctionnalité protégée par le feature flag invoicing_core__e_invoice_validator). Les endpoints d'import de facture appellent d'autres validateurs/services (contrôle des paramètres, création de la facture, puis conversion asynchrone en Factur-X si convert_to_e_invoice est à true), qui ne produisent pas cette sortie structurée par catégorie. En cas de non-conformité (ex. règles BR-FR), l'import peut échouer ou la conversion en e-facture peut échouer, mais l'API ne renvoie pas le même JSON détaillé que celui produit par le validateur.

  • Bonjour,

    Après un envoi de pdf facturX via  /api/external/v2/customer_invoices/e_invoices/imports.

    Comment avoir un peu plus de détail que seulement "schematron:invalid" ?
    (même si ce n'est pas aussi détaillé que l'écran du validateur)

    Il n'y a pas d'autre choix que d'aller soumettre le fichier PDF sur la page du validateur ?

    • Avatar de Angélique_
      Angélique_
      Icône pour le rang PennylaneurPennylaneur

      Bonjour SupportSV​ 

      À ce jour, l'endpoint /api/external/v2/customer_invoices/e_invoices/imports ne renvoie pas de détail additionnel sur l'erreur "schematron:invalid".

      La validation Schematron s'exécute de façon asynchrone après l'import, et son seul résultat exposé côté API publique est le champ schematron_validation_status sur la facture (renvoyé lors de la création, de la lecture ou de la mise à jour de la facture), avec pour seules valeurs possibles : pending, valid ou invalid. Ce champ est une valeur dérivée d'un simple booléen interne (vide → pending, vrai → valid, faux → invalid) et ne contient ni identifiant de règle (rule_id) ni message d'erreur détaillé.

      Le webhook customer_invoice.e_invoicing_status_updated ainsi que l'évènement temps réel associé à la validation Schematron transportent eux aussi uniquement ce même booléen, sans détail des règles en échec. Le détail des erreurs par règle (identifiant de règle + message, tel que produit par le service Schematron) n'est exposé que par l'outil de validation interne (le validateur), et non par l'endpoint d'import ni par les autres endpoints de lecture de facture.