Forum Discussion
SupportSV
Première note
il y a 28 joursAccè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
- Angélique_
Pennylaneur
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. - SupportSV
Première note
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 ?- Angélique_
Pennylaneur
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.