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).
5. Tester votre première facture
curl -X POST https://facturino.com/api/v1/invoices/inv_xxx/send \
-H "Authorization: Bearer fac_test_..."
Une fois la facture envoyée, surveillez le statut via le webhook ou par
polling sur GET /v1/invoices/{id}. Vous devriez observer
deposited dans les secondes suivant l'envoi, puis les autres
statuts au rythme de votre PA.