API REST HeartCo
Intègre HeartCo dans tes outils et automatise tes flux métier grâce à l'API REST. L'API utilise JSON et l'authentification par Bearer token.
Plan BUSINESSAccès anticipé
La documentation API complète sera disponible à partir du T2 2026. En attendant, contacte-nous à support@heartco.fr pour un accès anticipé.
URL de base
https://app.heartco.fr/api/v1
Authentification
Toutes les requêtes doivent inclure ta clé API dans le header Authorization :
Authorization: Bearer hco_live_xxxxxxxxxxxx
Génère tes clés API depuis Réglages → Paramètres.
Sécurité des clés
Ne partage jamais ta clé API. Ne la commite pas dans ton code source. Utilise des variables d'environnement pour la stocker.
Endpoints disponibles
Clients
/api/v1/clientsLister tous les clients de l'organisation. Supporte la pagination et la recherche par nom.
/api/v1/clientsCréer un nouveau client. Champs requis : name. Optionnels : email, phone, address, siret, vatNumber.
Factures
/api/v1/invoicesLister les factures. Filtres disponibles : status (DRAFT, SENT, PAID, OVERDUE), dateRange.
/api/v1/invoicesCréer et émettre une facture. Requiert un clientId et au moins une ligne (description, quantity, unitPrice, vatRate).
Devis
/api/v1/quotesLister les devis de l'organisation. Filtres : status (DRAFT, SENT, ACCEPTED, REJECTED, EXPIRED).
Webhooks
/api/v1/webhooksEnregistrer une URL de webhook pour recevoir des événements en temps réel.
Format des réponses
Toutes les réponses sont au format JSON avec la structure suivante :
{
"data": { ... },
"meta": {
"page": 1,
"limit": 25,
"total": 142
}
}En cas d'erreur :
{
"error": {
"code": "NOT_FOUND",
"message": "La ressource demandée n'existe pas."
}
}Webhooks
HeartCo envoie des événements en temps réel vers ton endpoint lors des actions importantes.
Événements disponibles
| Événement | Déclencheur |
|---|---|
invoice.created | Nouvelle facture créée |
invoice.paid | Facture marquée comme payée |
quote.sent | Devis envoyé au client |
quote.accepted | Devis accepté par le client |
client.created | Nouveau client ajouté |
member.invited | Nouveau membre invité |
Vérification de signature
Chaque requête webhook inclut un en-tête X-HeartCo-Signature contenant un hash HMAC-SHA256 du body.
Pour vérifier la signature :
const crypto = require("crypto");
function verifySignature(body, signature, secret) {
const computed =
"sha256=" + crypto.createHmac("sha256", secret).update(body).digest("hex");
return crypto.timingSafeEqual(Buffer.from(computed), Buffer.from(signature));
}Sécurité HMAC
Utilise toujours timingSafeEqual pour comparer les signatures. Ne compare
jamais avec === — cela expose ton endpoint à des attaques par timing.
En-têtes webhook
| En-tête | Description |
|---|---|
X-HeartCo-Signature | sha256=<hex> — signature HMAC-SHA256 |
X-HeartCo-Event | Type d'événement (ex : invoice.paid) |
Content-Type | application/json |
Tester un webhook
Depuis Réglages → Webhooks, clique sur Tester pour envoyer un payload de test à ton endpoint. HeartCo enregistre le code HTTP de réponse et la durée de la requête.
Rate limiting
L'API est limitée à 100 requêtes par minute par clé API. En cas de dépassement, tu reçois une réponse 429 Too Many Requests avec un en-tête Retry-After.
Questions fréquentes
Comment obtenir une clé API ?
Depuis Réglages → Paramètres, génère une clé API. Tu peux créer plusieurs clés (production, test) et les révoquer individuellement.
L'API est-elle disponible sur tous les plans ?
L'API REST est disponible à partir du plan Battement (Business). Les webhooks sortants sont disponibles dès le plan Pulsation (Starter).
Puis-je utiliser l'API en sandbox ?
Contacte support@heartco.fr pour obtenir un accès sandbox avec des données de test. La documentation complète avec sandbox sera disponible au T2 2026.
Voir aussi
- Sécurité & RGPD — webhooks, 2FA, permissions
- Créer une facture — créer une facture manuellement