API Bill — la prise universelle

Branchez votre caisse, votre DMS garage ou votre ancien logiciel à Bill. Une clé Bearer, des webhooks signés — et c'est tout : l'API est incluse dans votre plan.

API incluse dans votre plan

L'API ne coûte rien de plus : elle consomme les crédits de votre compte, exactement comme l'application (1 document = 1 crédit, même compteur). La sandbox de test est gratuite et illimitée ; la clé live s'ouvre dès que votre SIRET est vérifié. Créez vos clés depuis Paramètres → API & Développeurs ou depuis Mes connexions logiciels.

Endpoints

MéthodeCheminRôle
POST/api/v1/invoicesCrée un brouillon de facture.
POST/api/v1/invoices/<id>/finalizeNumérote, débite 1 crédit (même compteur que l'application), génère le Factur-X et (option) envoie à la PA. Supporte Idempotency-Key.
GET/api/v1/invoices/<id>Récupère l'état, le numéro et les statuts PA.
GET/api/v1/creditsSolde de crédits du compte — à lire avant un envoi en lot.
POST/api/v1/convertConvertit un PDF (1 crédit en LIVE) — renvoie le texte extrait et l'aperçu.
POST/api/v1/bills/<id>/validateApplique les corrections, passe la facture en validated et génère le Factur-X. Aucun débit (déjà pris au convert).
POST/api/v1/ereporting/daysEnregistre une journée B2C (caisse, boutique). Aucun crédit à l'enregistrement — la transmission PA reste manuelle (1 crédit). Connectez votre caisse ou votre boutique : vous ne changez rien.

Exemples curl

Créer un brouillon
curl -X POST https://monbill.fr/api/v1/invoices \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "client": { "name": "ACME SAS", "siren": "552081317", "email": "compta@acme.fr" },
    "lines": [
      { "description": "Prestation mensuelle", "qty": 1, "unit_price_ht": 1200, "vat_rate": 20 }
    ]
  }'
Finaliser + envoi PA (avec clé de rejeu)
curl -X POST https://monbill.fr/api/v1/invoices/<id>/finalize \
  -H "Authorization: Bearer sk_live_..." \
  -H "Idempotency-Key: caisse-42-ticket-8137" \
  -H "Content-Type: application/json" \
  -d '{ "send_pa": true }'
Lire le solde de crédits
curl https://monbill.fr/api/v1/credits \
  -H "Authorization: Bearer sk_live_..."
Convertir un PDF
curl -X POST https://monbill.fr/api/v1/convert \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "pdf_base64": "JVBERi0xLjQK...", "filename": "facture.pdf" }'
Valider (après convert) — passe la facture en 'validated'
curl -X POST https://monbill.fr/api/v1/bills/<id>/validate \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "invoice_number": "F-2026-0001",
    "invoice_date": "2026-07-11",
    "due_date": "2026-08-10",
    "client": { "name": "ACME SAS", "siren": "552081317" },
    "total_ht": 1200, "vat_amount": 240, "total_ttc": 1440
  }'

Boucle complète depuis un PDF : convert validate (avec corrections éventuelles) → GET /invoices/<id>. Aucun redébit entre les étapes ; le crédit a déjà été pris au convert.

Crédits & bonnes pratiques

  • L'API est incluse dans tous les plans : chaque document produit en live consomme 1 crédit du compte — le même compteur que l'application.
  • À solde nul, l'API répond 429 avec le code credits_exhausted — rien n'est envoyé. Rechargez un pack ou attendez le renouvellement du plan.
  • Idempotence : envoyez un en-tête Idempotency-Key unique par document sur finalize — un réessai après coupure renvoie le même document, sans re-débit.
  • Avant un lot (caisse, export), lisez GET /api/v1/credits pour connaître le solde.

Sécurité

  • Deux modes : sk_test_… (aucun débit, aucun envoi PA, factures marquées mode_test) et sk_live_… (nécessite un SIRET vérifié).
  • La clé secrète n'est affichée qu'à la création. Bill n'en conserve que l'empreinte SHA-256 — nous ne pouvons pas vous la restituer.
  • Rate limit : 60 requêtes / minute / clé. Réponse 429 au-delà.
  • Webhooks sortants signés HMAC SHA-256 (header X-Bill-Signature: t=…,v1=…) — vérifiez la signature avant de traiter la charge utile.
  • Journal d'audit intégral : chaque appel API est tracé (user, préfixe de clé, endpoint, code HTTP) sans jamais stocker vos payloads sensibles.

Gros volumes — offres à venir

Vous branchez un parc entier (caisses multi-magasins, réseau, très gros volumes de documents) ? Des offres volume dédiées arrivent. En attendant, l'API standard est ouverte et vos crédits gouvernent le volume — écrivez-nous pour préparer votre intégration : contact@storafix.com.