InvoiceBridge

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": "…" } }
TYPECODE HTTP
validation_error422
authentication_error401
permission_error403
not_found404
conflict409
rate_limit_error429 (Retry-After)
api_error500

Aller plus loin