API publique + webhooks pour intégration logiciels
60+ endpoints REST + webhooks signés HMAC. Shopify, Slack, HubSpot.
Un logiciel comptable sans API, c'est une île. Ta boutique Shopify, ton CRM et tes outils maison restent de l'autre côté, et quelqu'un recopie à la main. Forge Tech Accounting expose une API REST : celle-là même que le logiciel de bureau appelle pour travailler. Voici ce qu'elle fait, comment t'y connecter, trois intégrations que tu peux bâtir dès aujourd'hui et l'état exact des webhooks.
API REST : les endpoints disponibles
L'API publique n'est pas une version allégée réservée aux développeurs. Quand tu crées une facture dans le logiciel de bureau, c'est POST /api/tenant/invoices qui part : ton script appelle exactement la même route. Le 26 septembre 2026, j'ai compté les routes dans le code : 559 sous /api/tenant/, soit 248 GET, 183 POST, 59 PUT et 69 DELETE. Les plus utiles pour commencer :
POST /api/auth/login— Obtenir un jeton JWT (clé de licence + courriel + mot de passe)GET /api/tenant/customers?q=— Liste des clients ;qcherche dans le nom, le courriel, le numéro et le téléphonePOST /api/tenant/customers— Créer un client (seul le nom est obligatoire)GET /api/tenant/invoices— Les 500 factures les plus récentes, avec le client et les lignesPOST /api/tenant/invoices— Créer une factureGET /api/tenant/products— Catalogue produitsPOST /api/tenant/payroll/employees— Créer un employéPOST /api/tenant/payroll/calculate— Calculer la paie d'une période
La référence complète est un PDF généré à partir de la spécification OpenAPI de l'API. Tu l'ouvres dans le logiciel, écran API & Webhooks, bouton Documentation de l'API (PDF).
Authentification JWT Bearer
# 1. Connexion
curl -X POST https://api.forge-tech.ca/api/auth/login \
-H "Content-Type: application/json" \
-d '{"licenseKey":"FT-XXXX-XXXX-XXXX-XXXX","email":"...","password":"..."}'
# Réponse : {"accessToken":"eyJh...","expiresAtUtc":"...", ...}
# 2. Appel authentifié
curl https://api.forge-tech.ca/api/tenant/customers \
-H "Authorization: Bearer eyJh..." Trois choses à savoir avant d'écrire ton script :
- Le jeton vaut 8 heures. Garde-le et réutilise-le d'un appel à l'autre. Te reconnecter à chaque requête est inutile, et risqué : après 5 mots de passe erronés en 15 minutes, la connexion se bloque 15 minutes et répond
429. Un script qui insiste avec un mauvais mot de passe s'enferme dehors tout seul. - Aucun identifiant d'entreprise à passer. Chaque entreprise a sa propre base de données, et c'est le jeton qui dit à l'API laquelle ouvrir. Un jeton ne voit que les données de son entreprise.
- Ton script laisse des traces. Chaque création, modification ou suppression qu'il fait est inscrite au journal d'audit, au courriel de l'utilisateur connecté, avec l'ancienne et la nouvelle valeur des champs modifiés. Le détail est dans l'article sur les audit logs.
Webhooks : ce qui marche aujourd'hui, et ce qui manque encore
Un webhook, c'est l'inverse d'une requête : au lieu que ton script vienne demander s'il y a du nouveau, le logiciel l'avertit. Dans Forge Tech, l'écran API & Webhooks te laisse préparer cette réception :
- Ton adresse de réception, en HTTPS. Forge Tech refuse les adresses internes (127.0.0.1, réseau privé) et refait la vérification DNS à chaque envoi.
- L'événement à surveiller : facture créée, facture payée, client créé, dépense créée, prospect créé, ou tout changement.
- Une clé secrète, générée à la création de l'abonnement.
- Un bouton Test qui envoie un vrai POST JSON à ton adresse :
{"event":"test","message":"Forge Tech webhook test"}. Il attend 10 secondes au plus et garde le code HTTP de ta réponse, jamais son contenu. - Un historique :
GET /api/tenant/webhooks/{id}/deliveriesrend les 50 derniers envois (jusqu'à 200 avec?limit=200), etGET /api/tenant/webhooks/delivery-statsle taux de réussite de chaque abonnement.
Là, je dois être franc, parce que tu vas écrire du code en te fiant à cette page. Dans le code du logiciel au 26 septembre 2026, rien n'envoie encore ces webhooks tout seul quand une facture est créée ou payée : seul le bouton Test envoie un POST. Et la clé secrète existe, mais elle ne signe pas encore les envois : il n'y a pas d'en-tête HMAC-SHA256 à vérifier pour l'instant. J'aurais pu t'afficher un bel exemple de vérification de signature. Je préfère te montrer la méthode qui fonctionne dès aujourd'hui : ton script interroge l'API à intervalle régulier. C'est celle des exemples qui suivent.
Exemples d'intégration
Trois montages que tu peux bâtir avec l'API telle qu'elle est. Les noms, numéros et montants sont des exemples.
Shopify → Forge Tech : chaque commande devient une facture
Shopify, lui, envoie un webhook à chaque commande (le sujet orders/create). Ton serveur le reçoit, retrouve le client par son courriel (GET /api/tenant/customers?q=) ou le crée (POST /api/tenant/customers), puis crée la facture :
POST /api/tenant/invoices
Authorization: Bearer eyJh...
Content-Type: application/json
{
"customerId": "3f2a...",
"issueDate": "2026-09-26",
"dueDate": "2026-09-26",
"status": "Sent",
"lines": [
{ "description": "Commande Shopify 1001", "quantity": 1, "unitPrice": 100.00, "lineTax": 14.98 }
]
} Ce que l'API fait de cette requête : elle attribue le numéro selon le format de ton entreprise (par défaut FT-2026-001, FT-2026-002…), puis recalcule chaque sous-total (prix × quantité − escompte) et le total. La taxe de chaque ligne, elle la garde telle que tu l'envoies : c'est ton script qui la calcule.
Exemple : une commande de 100 $ avant taxes, livrée au Québec. TPS à 5 % (taux de l'ARC) : 5,00 $. TVQ à 9,975 % (taux de Revenu Québec) : 9,975 $, arrondi à 9,98 $. Taxe de la ligne : 5,00 + 9,98 = 14,98 $. Comme la facture arrive au statut Sent, Forge Tech passe aussitôt l'écriture au journal et répartit la taxe entre TPS et TVQ au prorata des deux taux :
| Compte | Débit | Crédit |
|---|---|---|
| 1200 Comptes clients | 114,98 $ | |
| 4000 Revenus de services | 100,00 $ | |
| 2100 TPS à payer | 5,00 $ | |
| 2200 TVQ à payer | 9,98 $ |
Fais la preuve : 100,00 + 5,00 + 9,98 = 114,98. Au statut Draft (brouillon), aucune écriture : elle se crée au moment où la facture passe à Sent. Le revenu va au compte 4000, quelle que soit la ligne ; si tu ventiles tes ventes par compte, reclasse ensuite.
Notifications Slack : une facture payée, un message
Slack accepte des messages par Incoming Webhook : une adresse où poster du JSON. Ton script, lancé toutes les 15 minutes, lit les factures et annonce celles qui sont passées à Paid depuis son dernier passage :
// Toutes les 15 minutes
const reponse = await fetch('https://api.forge-tech.ca/api/tenant/invoices', {
headers: { Authorization: 'Bearer ' + jeton }
});
const factures = await reponse.json(); // les 500 plus récentes
for (const f of factures) {
if (f.status === 'Paid' && !dejaAnnoncees.has(f.id)) {
await fetch(ADRESSE_SLACK, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: f.customer.name + ' vient de payer la facture ' + f.number })
});
dejaAnnoncees.add(f.id);
}
} Garde les identifiants déjà annoncés dans un fichier ou une table ; sinon, chaque passage réannonce les mêmes factures. Et comme GET /api/tenant/invoices rend les 500 plus récentes par date d'émission, une facture plus ancienne se relit une à une par GET /api/tenant/invoices/{id}.
Synchro CRM HubSpot, dans les deux sens
Chaque nuit, ton script lit GET /api/tenant/customers (la liste complète, triée par nom), garde les clients dont createdAtUtc est postérieur à son dernier passage et les crée comme contacts avec l'API de HubSpot. Dans l'autre sens, un contact devenu client dans HubSpot entre dans Forge Tech par POST /api/tenant/customers : seul le nom est obligatoire, et Forge Tech lui attribue son numéro (C-2026-001, C-2026-002…).
Qui a accès à l'API, et combien ça coûte
L'API publique et les webhooks font partie du forfait Entreprise (249 $ par mois). Sur un autre forfait, tu n'as pas à monter jusque-là : les modules du catalogue s'activent à la carte.
- Les deux modules du thème, API publique développeurs et API & Webhooks, coûtent 2 × 24,99 $ = 49,98 $ par mois.
- Le package Pilotage avancé, à 59,99 $ par mois, contient l'API publique et les webhooks, plus huit autres modules : tableau de bord BI, budgets sur 3 ans, prévisions, journal d'audit, double authentification, sauvegardes et restauration, Marketplace et multi-entreprises.
Le calcul, posé : au forfait Base (29 $), les deux modules à la carte portent ta facture à 29 + 49,98 = 78,98 $ par mois. Si tu veux aussi un troisième module du package, le journal d'audit par exemple, la carte coûterait 3 × 24,99 = 74,97 $, et le package à 59,99 $ te fait économiser 14,98 $ par mois. Refais ce calcul avec ton forfait et tes modules : le prix de chaque palier est sur la page des tarifs.
Essaie Forge Tech 30 jours, logiciel complet, sans carte de crédit : tu peux faire ton premier GET /api/tenant/customers avant de payer quoi que ce soit. Et si tu veux relier un outil précis, écris-moi ce que tu veux brancher : je te dirai quelles routes utiliser.
— Guillaume Régimbald, Fondateur, Forge Tech Inc.
Discute avec nous gratuitement
Une question sur ta comptabilité ou ton logiciel actuel ? On en discute 30 min, gratuit.
Prendre rendez-vous