Mon Entreprise

Signaler un problème

5 400 jetonsVoir mon site

Démonstration : « Mon Entreprise » est une entreprise fictive. Chiffres, clients et messages sont des exemples ; explorez librement, rien n'est envoyé et tout est remis à zéro régulièrement.

Créer mon site

Paramètres

Pour vos outils d'automatisation et les développeurs qui travaillent avec vous.

https://fondatoria.com/api/v1Documentation OpenAPI
Clés actives
1
Webhooks
1
Appels sur 24 h
4
Limite par clé
120 / min

Pas besoin d'écrire de code pour Zapier, Make ou n8n : leurs guides sont dans Connexions.

Connecter ChatGPT ou Claude

Votre espace dans la conversation, par le protocole MCP

Demandez par exemple « fais un devis pour M. Dupont : remplacement d'un chauffe-eau, 1 200 € HT » ou « quelles factures sont en retard ? », ou encore « ajoute nos horaires d'été sur le site ». L'assistant n'agit qu'avec les autorisations cochées à la connexion ; il vous demande confirmation avant d'émettre ou d'envoyer un document, de noter un règlement ou de publier le site, et chaque action est notée dans le journal.

La même pour tous les espaces : vous choisissez le vôtre en vous connectant.

ChatGPT

  1. Dans ChatGPT, ouvrez Paramètres, puis Applications et connecteurs, et créez un connecteur (mode développeur activé si ChatGPT le demande).
  2. Collez l'adresse ci-dessus et choisissez l'authentification OAuth.
  3. ChatGPT ouvre cette plateforme : connectez-vous, choisissez l'espace et cochez les autorisations.

Claude

  1. Dans Claude, ouvrez Paramètres, puis Connecteurs, et ajoutez un connecteur personnalisé.
  2. Collez l'adresse ci-dessus, sans identifiant client : Claude s'enregistre seul.
  3. Cliquez sur « Se connecter », puis choisissez l'espace et les autorisations.

Réservé au propriétaire et aux administrateurs. Si un administrateur perd ce rôle ou quitte l'équipe, les applications qu'il a connectées sont coupées.

Applications connectées

Aucune application connectée pour le moment.

Clés d'API

À mettre dans l'en-tête Authorization: Bearer
NomCléPermissionsDernier usageValiditéActions
Zapier
Vous, le 4 nov. 2026
sb_test_Bx4C…fNEM5 sur 22il y a 12 minJusqu'au 4 nov. 2027
Créer une clé
Usage
Permissions

Webhooks

Vos événements envoyés, signés, à l'adresse de votre choix
Ajouter un webhook
Demandes et clients
Devis, factures et paiements
Avis et abonnés

Derniers appels

Gardés 30 jours
QuandRequêteCléRéponse
il y a 12 minPOST /contactsZapier201 48 ms
il y a 14 minGET /eventsZapier200 31 ms
il y a 1 hGET /leadsZapier200 27 ms
il y a 3 hGET /meZapier200 9 ms

Vérifier la signature

Chaque envoi suit la norme Standard Webhooks : en-têtes webhook-id, webhook-timestamp et webhook-signature, signés en HMAC-SHA256 avec le secret du webhook. Les bibliothèques officielles de la norme fonctionnent telles quelles.

import { createHmac, timingSafeEqual } from "node:crypto";

// secret : la valeur whsec_… affichée dans votre espace
export function verifier(secret, headers, body) {
  const id = headers["webhook-id"];
  const ts = headers["webhook-timestamp"];
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const cle = Buffer.from(secret.replace(/^whsec_/, ""), "base64");
  const attendu = createHmac("sha256", cle).update(`${id}.${ts}.${body}`).digest();
  return headers["webhook-signature"].split(" ").some((s) => {
    const recu = Buffer.from(s.split(",")[1] ?? "", "base64");
    return recu.length === attendu.length && timingSafeEqual(recu, attendu);
  });
}

Répondez par un code 2xx en moins de 10 secondes. Sinon l'envoi est retenté sept fois, sur près de deux jours ; un code 410 arrête le webhook.

Exemples d'appels

Montants en centimes, taux de TVA en points de base (550 = 5,5 %)

Créer une facture en brouillon

L'en-tête Idempotency-Key protège des doublons : renvoyée avec la même clé (coupure réseau, nouvel essai de Zapier), la requête rend la même facture sans en créer une autre.

curl https://fondatoria.com/api/v1/invoices \
  -H "Authorization: Bearer sb_live_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "contactId": "ctc_…",
    "title": "Remplacement du chauffe-eau",
    "lines": [
      { "label": "Chauffe-eau 200 L", "quantity": 1, "unitPriceCents": 189000, "vatRate": 550, "nature": "goods" },
      { "label": "Pose", "quantity": 3.5, "unit": "h", "unitPriceCents": 5500, "vatRate": 550, "nature": "services" }
    ]
  }'

L'émettre, puis l'envoyer au client

L'émission donne le numéro légal et fige la facture : elle ne pourra plus être modifiée ni supprimée, seulement corrigée par un avoir. S'il manque une mention obligatoire, la réponse 422 en donne la liste.

curl -X POST https://fondatoria.com/api/v1/invoices/fac_…/issue -H "Authorization: Bearer sb_live_…" -H "Idempotency-Key: $(uuidgen)"
curl -X POST https://fondatoria.com/api/v1/invoices/fac_…/send -H "Authorization: Bearer sb_live_…" -H "Idempotency-Key: $(uuidgen)"

Noter un règlement reçu

Montant en centimes, au plus le reste à payer ; la facture passe à payée quand elle est soldée.

curl https://fondatoria.com/api/v1/invoices/fac_…/payments \
  -H "Authorization: Bearer sb_live_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "amountCents": 120000, "method": "transfer", "paidOn": "2026-11-02", "reference": "VIR DUBOIS" }'

Modifier une fiche client sans écraser une autre modification

Renvoyez l'ETag lu dans If-Match : si quelqu'un a changé la fiche entre-temps, la réponse est 412 et rien n'est modifié.

curl -i https://fondatoria.com/api/v1/contacts/ctc_… -H "Authorization: Bearer sb_live_…"
curl -X PATCH https://fondatoria.com/api/v1/contacts/ctc_… \
  -H "Authorization: Bearer sb_live_…" \
  -H 'If-Match: "…etag lu…"' \
  -H "Content-Type: application/json" \
  -d '{ "phone": "06 12 34 56 78", "company": "Dubois SARL" }'