401 unauthorized
Clé API absente ou expirée (ex: variable d'environnement non chargée).
💡 Vérifiez FACTURX_API_KEY dans .env + config:cache après déploiement.
Upload sécurisé (multipart), réponse JSON structurée < 3 s, retry natif via Guzzle.
Envoyez vos PDF/XML Factur-X depuis un backend Laravel, Symfony ou WordPress en quelques lignes.
curl -X POST https://api.facturxapi.com/api/v1/validate \
-H "Authorization: Bearer $FACTURX_API_KEY" \
-F "[email protected]" \
-F "lang=fr" <?php
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.facturxapi.com',
'timeout' => 15,
]);
$response = $client->request('POST', '/api/v1/validate', [
'headers' => [
'Authorization' => 'Bearer ' . getenv('FACTURX_API_KEY'),
],
'multipart' => [
[
'name' => 'file',
'contents' => fopen(storage_path('invoices/FX-2024-0001.pdf'), 'r'),
],
[
'name' => 'lang',
'contents' => 'fr',
],
],
]);
$payload = json_decode((string) $response->getBody(), true);
logger()->info('facturx.validation', $payload); Centraliser la clé dans .env + config/cache Laravel
Utiliser Storage::disk pour les fichiers temporaires (< 10 MB)
Logger request_id pour corréler avec Plausible / billing
Configurer Guzzle RetryMiddleware sur 429/500 avec backoff exponentiel (max 3 tentatives).
Mappez vos logs aux codes pour des corrections rapides.
Clé API absente ou expirée (ex: variable d'environnement non chargée).
💡 Vérifiez FACTURX_API_KEY dans .env + config:cache après déploiement.
PDF multi-fichier ou XML non Factur-X.
💡 Forcer le mime-type côté backend et valider la taille avant upload (max 10 MB).
Trop de validations simultanées.
💡 Activez la queue Laravel + backoff exponentiel sur 429.
Oui, l'upload est idempotent. Conservez seulement le request_id pour vos logs.
Utilisez vos identifiants (invoice_number) dans les métadonnées de job et stockez le JSON retourné.
Endpoints, schémas JSON et statuts
10 validations gratuites/mois
Comprendre BR-CO-xx et BR-CL-xx
Et après ?
Choisissez l'étape suivante pour activer FacturX API sur votre stack. Tous les liens sont internes pour garder le suivi clair.
10 validations gratuites + clés distinctes pour dev/staging.
Free, Pro ou Scale selon vos appels mensuels et SLA requis.
Endpoints détaillés + schémas JSON pour parser les réponses.
Uploader un fichier depuis l'UI pour comparer avec la réponse API.