DÉMARRAGE RAPIDE
Votre première Factur-X en cinq minutes
L'API InvoiceBridge transforme vos encaissements en documents conformes à la réforme française de la facturation électronique : classification fiscale, Factur-X EN 16931, transmission via Plateforme Agréée et e-reporting. Les clés de test offrent une parité de contrat stricte avec la production, sans aucune transmission réelle.
1. Créez votre clé de test
Dans votre tableau de bord, onglet
Développeurs, créez une clé ib_test_…. Elle est affichée une seule fois.
2. Envoyez une transaction
curl https://invoicebridge.fr/v1/transactions \
-H "Authorization: Bearer ib_test_..." \
-H "Idempotency-Key: order_84212" \
-d '{
"external_id": "order_84212",
"occurred_at": "2026-09-12",
"amount_cents": 4999,
"currency": "EUR",
"vat_breakdown": [{ "rate": 20.0, "base_cents": 4166, "tax_cents": 833 }],
"customer": {
"name": "ACME SAS", "country": "FR", "type": "business",
"siret": "73282932000074",
"address": { "line1": "1 rue de Rivoli", "postal_code": "75001", "city": "Paris", "country": "FR" }
}
}'
Réponse 202 : la transaction entre dans la chaîne (classification,
génération, validation, transmission). Rejouer la même requête avec la même
Idempotency-Key renvoie la même réponse, sans doublon.
3. Suivez la conformité
Interrogez GET /v1/transactions/{id} pour connaître la classification et le
document lié, puis GET /v1/documents/{id} pour le rapport de validation
complet (XSD, Schematron EN 16931, PDF/A-3, contrôles métier) et les URLs signées de
téléchargement. En production, préférez les webhooks :
curl https://invoicebridge.fr/v1/webhook-endpoints \
-H "Authorization: Bearer ib_test_..." \
-d '{ "url": "https://votre-backend.fr/webhooks/invoicebridge",
"events": ["document.compliant", "document.rejected"] }'
Chaque livraison est signée : en-tête IB-Signature: t=<ts>,v1=<hmac_sha256(secret, ts + '.' + corps)>,
tolérance de 5 minutes contre le rejeu, 5 tentatives avec backoff en cas de non-2xx.
Erreurs
Toutes les erreurs partagent un format unique :
{ "error": { "type": "validation_error", "code": "SIRET_INVALID",
"message": "Le SIRET du client est invalide (clé de contrôle).",
"param": "customer.siret", "doc_url": "…" } }
| TYPE | CODE HTTP |
|---|---|
validation_error | 422 |
authentication_error | 401 |
permission_error | 403 |
not_found | 404 |
conflict | 409 |
rate_limit_error | 429 (Retry-After) |
api_error | 500 |