Utilisez fetch natif (Node 18+) ou Axios, streamez vos PDF, recevez un JSON propre.

Intégrer FacturX API avec Node.js

Fonctionne avec Next.js, NestJS, Cloudflare Workers ou scripts CLI.

Compatibilité TypeScript
Gestion des secrets via process.env ou Cloudflare KV
Idéal pour pipelines serverless

Exemple curl

multipart/form-data
curl -X POST https://api.facturxapi.com/api/v1/validate \
  -H "Authorization: Bearer $FACTURX_API_KEY" \
  -F "[email protected]" \
  -F "lang=fr"

Snippet Node.js

Auth + appel /api/v1/validate
const response = await fetch('https://api.facturxapi.com/api/v1/validate', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.FACTURX_API_KEY}`
  },
  body: (() => {
    const form = new FormData();
    form.append('file', fs.createReadStream('invoices/FX-2024-0001.pdf'));
    form.append('lang', 'fr');
    return form;
  })()
});

const payload = await response.json();
if (!payload.valid) {
  console.log('Erreurs Schematron', payload.errors);
}

Checklist intégration

  • Toujours lire le stream en mode bufferisé pour éviter les fuites

  • Limiter la taille via formidable/multer

  • Tracer request_id côté observabilité (Datadog, Sentry)

Retries & timeouts

Utilisez p-retry ou ky pour rejouer 429/502 avec jitter.

  • • Timeout fetch : 20 s
  • • Utiliser AbortController pour annuler les validations lentes
  • • Logger les erreurs 4xx pour support FacturX

Erreurs fréquentes

Mappez vos logs aux codes pour des corrections rapides.

413 payload_too_large

PDF > 10 MB.

💡 Divisez les PDF ou compressez les scans avant upload.

415 unsupported_media_type

Content-Type incorrect (application/octet-stream).

💡 Laisser FormData gérer le boundary et les headers.

schematron_failed_assert

Erreur métier EN16931.

💡 Afficher le champ errors[].spec + field pour guider l'équipe finance.

FAQ

Peut-on intégrer dans un worker Cloudflare ?

Oui, utilisez fetch + FormData natif, tout se fait côté edge.

Comment suivre les quotas ?

Exposez les headers X-Usage-* retournés par l'API dans vos dashboards.

Documentation API

Référence complete

Pricing

Quotas & SLA

Errors library

Codes BR-xx prêts à analyser