Exemples d'intégration
Du code qui se colle et qui marche. Aucun SDK, aucune dépendance exotique.
URL de base
https://api.pont-facturx.comRemplacez sk_live_votre_cle par une clé créée depuis Réglages → API. Une clé sk_test_ suffit pour tout essayer sans consommer de crédit.
1. Authentification et quota
Vérifie que la clé est acceptée et lit le solde de crédits. Ne débite rien. Une clé sk_test_ convertit même avec 0 crédit : ce solde ne concerne que sk_live_.
export PFX_API_KEY="sk_live_votre_cle"
curl -s https://api.pont-facturx.com/v1/account/usage \
-H "Authorization: Bearer $PFX_API_KEY"
# {"plan":"Abonnement Pro","credits_available":187,"rate_limit":"30 requests/minute",...}2. Convertir un PDF (Idempotency-Key)
Rejouer la même requête avec la même clé ne débite qu'un crédit. Une clé par facture.
curl -sS -D headers.txt \
-X POST https://api.pont-facturx.com/v1/convert \
-H "Authorization: Bearer $PFX_API_KEY" \
-H "Idempotency-Key: facture-FA-2026-0042" \
-F "file=@facture.pdf" \
-F "profile=BASIC_WL" \
--output facture_facturx.pdf
grep -i "^x-facturx-validation-status" headers.txt
# x-facturx-validation-status: PASSED3. Extraire sans convertir
0 crédit. Relisez le JSON, corrigez-le, puis renvoyez-le en invoice_data pour sauter l'OCR.
curl -sS -X POST https://api.pont-facturx.com/v1/extract \
-H "Authorization: Bearer $PFX_API_KEY" \
-F "file=@facture.pdf" | jq '.invoice_data' > invoice_data.json
curl -sS -X POST https://api.pont-facturx.com/v1/convert \
-H "Authorization: Bearer $PFX_API_KEY" \
-H "Idempotency-Key: facture-FA-2026-0042" \
-F "file=@facture.pdf" \
-F "invoice_data=$(cat invoice_data.json)" \
--output facture_facturx.pdf4. Valider un document existant
Un document invalide renvoie 200 avec valid:false — lisez le corps, pas le code HTTP.
curl -sS -X POST https://api.pont-facturx.com/v1/validate \
-H "Authorization: Bearer $PFX_API_KEY" \
-F "file=@facture_facturx.pdf" | jq '.valid, .errors'5. Gérer les erreurs
Sur 429 et 5xx, rejouez la MÊME Idempotency-Key : aucun crédit supplémentaire.
http_code=$(curl -sS -o out.bin -w '%{http_code}' \
-X POST https://api.pont-facturx.com/v1/convert \
-H "Authorization: Bearer $PFX_API_KEY" \
-H "Idempotency-Key: facture-FA-2026-0042" \
-F "file=@facture.pdf")
case "$http_code" in
200) mv out.bin facture_facturx.pdf ;;
402) echo "Crédits épuisés : $(jq -r '.detail.message' out.bin)" ;;
409) echo "Idempotency-Key déjà utilisée pour une autre requête" ;;
429) echo "Trop de requêtes — attendre Retry-After puis rejouer la même clé" ;;
*) echo "Erreur $http_code : $(cat out.bin)" ;;
esac6. Mode test (sk_test_)
Même moteur, document identique. 0 crédit, quotas bas, aucune conservation, transmission refusée.
curl -sS -D headers.txt \
-X POST https://api.pont-facturx.com/v1/convert \
-H "Authorization: Bearer sk_test_votre_cle" \
-F "file=@facture.pdf" \
--output facture_test.pdf
grep -i "^x-livemode" headers.txt
# x-livemode: false