Technique

Erreur PDF/A-3 Factur-X : pdfaid:part 3 + conformance A/B/U — différence PDF/A-2

2 min de lecture Par FacturX API

Factur-X impose PDF/A-3 (pdfaid:part=3) niveau A, B ou U. PDF/A-2 autorise seulement les PJ PDF/A. PDF/A-3 autorise les PJ arbitraires, dont le XML CII.

En bref

  • Factur-X exige strictement un PDF/A-3 (ISO 19005-3) avec pdfaid:part="3" dans les métadonnées XMP.
  • Niveau de conformance requis : A (Accessible), B (Basic) ou U (Unicode).
  • PDF/A-2 autorise les pièces jointes PDF/A mais pas l’embarquement arbitraire d’un XML de facture.
  • C’est précisément pour cela que Factur-X s’appuie sur PDF/A-3, pas PDF/A-2.
  • Notre endpoint /convert s’appuie sur callas pdfToolbox pour la génération PDF/A-3 conforme (voir README repo).

Ce que l’erreur veut dire

Factur-X repose sur PDF/A-3 (norme ISO 19005-3:2012). Contrairement à PDF/A-1 (qui n’autorise aucune pièce jointe) et à PDF/A-2 (qui autorise uniquement des pièces jointes elles-mêmes en PDF/A), PDF/A-3 autorise l’embarquement d’un fichier arbitraire — dont le XML CII de la facture. Le niveau de conformance (A, B, ou U) est déclaré dans les métadonnées XMP du PDF via pdfaid:part et pdfaid:conformance. Notre validateur s’appuie sur veraPDF (146 règles ISO 19005-3).

Quand cette erreur arrive

Survient avec : (a) PDF généré par wkhtmltopdf, Word, LibreOffice sans option PDF/A-3 ; (b) PDF/A-1 (pas de pièces jointes autorisées) ; (c) PDF/A-2 (pièces jointes PDF/A uniquement, pas de XML de facture) ; (d) PDF retraité par un outil qui supprime les métadonnées XMP ; (e) Print-to-PDF macOS/Windows qui produit du PDF standard non-A.

Exemple XMP qui déclenche l’erreur (PDF/A-1)

<!-- Métadonnées XMP du PDF (extrait) -->
<rdf:Description rdf:about=""
    xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">
  <pdfaid:part>1</pdfaid:part>  <!-- ❌ PDF/A-1 n'autorise aucune pièce jointe -->
  <pdfaid:conformance>B</pdfaid:conformance>
</rdf:Description>

Exemple XMP corrigé (PDF/A-3B)

<rdf:Description rdf:about=""
    xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">
  <pdfaid:part>3</pdfaid:part>
  <pdfaid:conformance>B</pdfaid:conformance>
</rdf:Description>

Correction manuelle

Régénérer le PDF en PDF/A-3 avec niveau A, B ou U. PDF/A-1 n’autorise aucune pièce jointe. PDF/A-2 autorise des pièces jointes PDF/A uniquement (pas un XML). Seul PDF/A-3 autorise des pièces jointes arbitraires. Notre endpoint /convert génère du PDF/A-3 conforme automatiquement (voir README repo pour l’implémentation callas pdfToolbox).

Réparable automatiquement par /repair ?

Non — la correction est sémantique ou structurelle et nécessite une décision humaine (choix de catégorie TVA, URN de profil, etc.). Utilisez /validate pour confirmer après correction manuelle.

Et maintenant ?

Convertir mon PDF en Factur-X conforme →

curl -X POST https://api.facturxapi.com/api/v1/convert \
  -H "Authorization: Bearer VOTRE_CLE" \
  -F "[email protected]"

Voir aussi

#en16931 #schematron #factur-x #erreurs #validation