System.Net.Http.HttpRequestException
Proxy d'entreprise bloque l'appel.
💡 Autoriser api.facturxapi.com dans vos règles sortantes ou utiliser Private Link.
HttpClient + MultipartFormDataContent, idéal pour pipelines finance/ERP.
Fonctionne pour ASP.NET Core, Azure Functions ou Windows Services.
curl -X POST https://api.facturxapi.com/api/v1/validate \
-H "Authorization: Bearer $FACTURX_API_KEY" \
-F "[email protected]" \
-F "lang=fr" using var client = new HttpClient
{
BaseAddress = new Uri("https://api.facturxapi.com")
};
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("FACTURX_API_KEY"));
using var form = new MultipartFormDataContent();
form.Add(new StreamContent(File.OpenRead("Invoices/FX-2024-0001.pdf")), "file", "FX-2024-0001.pdf");
form.Add(new StringContent("fr"), "lang");
var response = await client.PostAsync("/api/v1/validate", form);
var payload = await response.Content.ReadFromJsonAsync<FacturxReport>();
if (payload is { Valid: false })
{
logger.LogWarning("FacturX errors {@Errors}", payload.Errors);
} Réutiliser HttpClient (DI) pour éviter l'épuisement des sockets
Ajouter Polly (WaitAndRetry) sur 429/502
Logguer request_id via ILogger pour support
Policy de retry Polly : 3 tentatives avec jitter + circuit-breaker sur 5xx consécutifs.
Mappez vos logs aux codes pour des corrections rapides.
Proxy d'entreprise bloque l'appel.
💡 Autoriser api.facturxapi.com dans vos règles sortantes ou utiliser Private Link.
XML encodé en UTF-16.
💡 Convertir en UTF-8 avant de générer la facture.
Aucun identifiant vendeur (BT-29, BT-30 ou BT-31) présent dans la facture.
💡 Renseigner le SIREN dans BT-30 (schemeID="0002") ou le numéro de TVA dans BT-31.
Oui, créez un plugin qui envoie le PDF généré via HttpClient.
Exposez les métriques dans Application Insights via custom dimensions.
Vérifier vos exports ERP
Activer votre clé
1 000 validations/mois
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.