Connecteur AFNOR XP Z12-013 — une PA, n'importe laquelle
Pas besoin d'attendre un connecteur dédié : le connecteur AFNOR générique de Facturino se branche sur toute Plateforme Agréée qui expose l'API standard d'interopérabilité XP Z12-013 (AFNOR, mai 2025). C'est la norme que les plateformes agréées adoptent pour être interopérables entre elles — la même API partout. Résultat : au-delà de nos connecteurs dédiés (Super PDP, Iopole, B2Brouter, Seqino), vous pouvez connecter l'une des 137+ plateformes agréées dès qu'elle publie son API AFNOR, en renseignant simplement sa base URL et vos identifiants — aucun développement côté Facturino.
Statut : bêta. Le connecteur générique est éprouvé sur l'API AFNOR d'une Plateforme Agréée existante et sa couverture s'étend à chaque PA qui publie son API normée. Pour Super PDP, Iopole, B2Brouter et Seqino, nos connecteurs dédiés restent le chemin le plus éprouvé.
Sous le capot, le connecteur implémente les deux services de la norme :
Flow Service (POST /flows multipart,
POST /flows/search, téléchargement par docType) et
Directory Service (résolution SIREN/SIRET), avec l'auth
OAuth 2.0 client_credentials du référentiel.
Couverture universelle. La norme laisse chaque PA monter
ses services où elle veut : Facturino expose donc, à la connexion, des
champs pour surcharger le segment Flow, le
segment Directory et l'endpoint OAuth2.
Aucune intervention du support n'est requise — vous configurez tout
vous-même dans l'interface. Vides, ces champs retombent sur les chemins
normatifs par défaut (/flow-service, /directory-service,
{base}/auth-service/token).
1. Préparer votre PA
- Récupérez la base URL de votre PA (ex :
https://pa.example.com/api). - Générez un
client_idet unclient_secretOAuth 2.0 dans la console de votre PA. -
Vérifiez auprès de votre PA que les 6 flux AFNOR sont implémentés :
- F1 — émission de facture
- F2 — émission d'avoir
- F6 — événements de cycle de vie
- F10 — e-reporting
- F11 / F12 — annuaire (SIREN, SIRET)
2. Connecter Facturino
La connexion d'une PA se gère depuis l'interface Facturino — les identifiants sensibles ne transitent jamais par l'API publique.
- Ouvrez Paramètres → Facturation électronique et choisissez Autre PA (AFNOR XP Z12-013).
-
Renseignez les identifiants :
- Client ID (OAuth2) ou clé API (obligatoire) — fourni par votre PA
- Client Secret (optionnel) — laissez vide si votre PA utilise une simple clé API (elle sera envoyée en bearer)
- Base URL (obligatoire) — URL racine de l'API AFNOR de votre PA
- (Optionnel) Config avancée, si votre PA monte ses services hors des chemins normatifs :
- Endpoint OAuth2 (token) — défaut
{base}/auth-service/token - Segment Flow Service — défaut
/flow-service - Segment Directory Service — défaut
/directory-service - Scope OAuth2 — uniquement si votre PA l'exige
Exemple Super PDP : endpoint
https://api.superpdp.tech/oauth2/token, segment Flow/afnor-flow, segment Directory/afnor-directory. - Endpoint OAuth2 (token) — défaut
- Cliquez sur Connecter. Facturino négocie un bearer OAuth 2.0 (
client_credentials), puis dépose chaque flux viaPOST {flow}/v1/flows(multipartflowInfo+ fichier Factur-X/CII).
3. Webhook entrant
Au moment de Connecter, Facturino génère un secret HMAC-SHA256 et
affiche une URL à configurer sur votre PA :
https://facturino.com/api/v1/webhooks/pa-flow/{companyId}.
Le secret est accepté en encodage hexadécimal ou base64 —
Facturino détecte automatiquement le format.
4. Codes de cycle de vie supportés
Le connecteur mappe les 14 codes du cycle de vie facture
(fr:200 à fr:213) du CDAR vers les statuts internes
Facturino. Les codes obligatoires DGFiP sont garantis :
fr:200— Déposéefr:210— Refuséefr:212— Encaisséefr:213— Rejetée
Les autres codes de la plage 200–213 (recommandés / optionnels) sont également mappés. Un code hors de cette plage n'entraîne aucun changement de statut : le connecteur retombe alors sur l'accusé technique du flux (Pending → sending).
Les métadonnées d'un flux XP Z12-013 ne portent que l'accusé technique (Pending, Ok,
Error). Les statuts réglementaires arrivent comme flux CustomerInvoiceLC entrants :
Facturino télécharge le document CDAR du flux (docType=Original), y lit le code, le motif et la note,
et l'apparie à la facture par le numéro qu'il référence. Une plateforme qui expose en plus le code sur les
métadonnées est lue sans téléchargement uniquement si referencedFlowId désigne le dépôt. Un accusé Ok sur un flux de cycle de vie ne modifie jamais
la facture à lui seul.
E-reporting : contrôles et accusés
Le rapport FRR suit les formats DGFiP v3.2 : dates sur huit chiffres
(AAAAMMJJ) et horodatage sur quatorze chiffres (AAAAMMJJHHMMSS).
Les données unitaires portent l’identité de l’acheteur, la TVA du déclarant et,
pour un avoir 381, la référence de la facture corrigée (TG-11).
Consultez les règles de l’avoir unitaire.
Un accusé technique Ok produit l’état acknowledged, résumé
submitted. L’acceptation par l’administration (accepted)
provient d’un verdict métier dans le cycle de vie du rapport.
5. Tester votre première facture
curl -X POST https://facturino.com/api/v1/invoices/inv_xxx/send \
-H "Authorization: Bearer fac_test_..."
Avec une clé fac_test_, le dépôt est simulé : aucun appel à la plateforme.
En production, surveillez le statut via le webhook ou par polling sur
GET /v1/invoices/{id} : sending attend la confirmation
du dépôt, puis deposited et les autres statuts suivent les réponses de votre PA.
Questions fréquentes
Ma plateforme agréée n'a pas de connecteur dédié — puis-je quand même la connecter ?
Oui, dès qu'elle expose l'API AFNOR XP Z12-013. Renseignez sa base URL et vos identifiants OAuth 2.0 : aucun développement côté Facturino n'est nécessaire. Si elle n'expose pas encore cette API, restez en dépôt manuel (téléchargement du Factur-X conforme) en attendant.
Comment savoir si ma PA expose l'API AFNOR ?
Demandez à votre PA si elle publie une API conforme XP Z12-013 (Flow Service + Directory Service, auth OAuth 2.0 client_credentials). Sa documentation développeur doit mentionner la norme ou les endpoints /flows et l'annuaire SIREN/SIRET.
Ma PA monte ses services sur des chemins non standard — est-ce bloquant ?
Non. La configuration avancée permet de surcharger le segment Flow, le segment Directory, l'endpoint OAuth 2.0 et le scope. Laissés vides, ces champs retombent sur les chemins normatifs par défaut.
Dois-je fournir un client secret ?
Seulement si votre PA utilise OAuth 2.0 client_credentials. Si elle s'authentifie par une simple clé API, laissez le champ secret vide : la clé sera envoyée en bearer.
Le connecteur générique gère-t-il l'e-reporting ?
Oui : le flux F10 (e-reporting) fait partie des six flux implémentés, aux côtés de l'émission (F1), l'avoir (F2), le cycle de vie (F6) et l'annuaire (F11/F12).