API v1 — Stable

Développez sur Kolva

API RESTful pour intégrer vos outils à Kolva. Gérez clients, affaires, visites et contacts par programmation. Webhooks en temps réel pour chaque événement.

Spécification OpenAPI 3.1

Authentification

Authentification par clé API

Générez vos clés API depuis Paramètres → Développeur dans votre panneau d’administration Kolva. Chaque clé dispose de permissions cantonnées et peut être révoquée à tout moment.

Authentification par en-tête

Méthode recommandée

# Option 1 : en-tête X-Kolva-Key
X-Kolva-Key: kolva_sk_abc123...

# Option 2 : jeton Bearer
Authorization: Bearer kolva_sk_abc123...

Scopes disponibles

Permissions granulaires

read:clients
write:clients
read:deals
write:deals
read:visits
write:visits
read:finance
* (all)

Endpoints

Ressources RESTful

Tous les endpoints suivent les conventions REST. Les réponses sont au format JSON. Pagination avec ?page= et ?limit= (max. 100).

Clients

/api/v1/clients

Gérez votre base de clients — lister, créer, mettre à jour, désactiver.

GETPOSTPUTDELETE
Scopes : read:clients, write:clients

Contacts

/api/v1/contacts

CRUD des contacts au sein des fiches client (tableau de contacts JSONB).

GETPOSTPUTDELETE
Scopes : read:clients, write:clients

Affaires

/api/v1/deals

Commandes et affaires — créer, mettre à jour le statut, suivre le chiffre d’affaires.

GETPOSTPUTDELETE
Scopes : read:deals, write:deals

Visites

/api/v1/visits

Visites terrain — planifier, suivre les pointages d’arrivée et de départ, gérer les plannings.

GETPOSTPUTDELETE
Scopes : read:visits, write:visits

Limites de débit

Limites d’usage équitable

100

requêtes / minute

429

statut en cas de dépassement

Retry-After

en-tête inclus

Webhooks

Notifications d’événements en temps réel

Abonnez-vous aux événements depuis Paramètres → Développeur → Webhooks. Kolva envoie des requêtes POST à votre URL avec vérification de signature HMAC-SHA256.

deal_created

Déclenché lorsqu’une nouvelle affaire/commande est créée

deal_updated

Déclenché lorsque le statut ou le montant d’une affaire change

client_created

Déclenché lorsqu’un nouveau client est ajouté

client_updated

Déclenché lorsque les détails d’un client sont modifiés

visit_completed

Déclenché lorsqu’un commercial terrain pointe son départ

invoice_created

Déclenché lorsqu’une facture est générée

order_created

Déclenché lorsqu’une commande est passée

contact_updated

Déclenché lorsqu’un contact client est modifié

Vérification de la signature

Chaque POST de webhook inclut un en-tête X-Kolva-Signature . Vérifiez-le avec HMAC-SHA256 à l’aide de votre secret de webhook.

// Vérification Node.js
const crypto = require('crypto');
const signature = req.headers['x-kolva-signature'];
const expected = crypto
  .createHmac('sha256', webhookSecret)
  .update(JSON.stringify(req.body))
  .digest('hex');
const valid = crypto.timingSafeEqual(
  Buffer.from(signature), Buffer.from(expected)
);

Politique de réessai : 3 tentatives avec backoff exponentiel (1 min, 5 min, 30 min). Après 10 échecs consécutifs, le webhook est désactivé automatiquement.

Exemples

Démarrage rapide

cURL — Lister les clients
curl -X GET "https://kolva.ai/api/v1/clients?page=1&limit=10" \
  -H "X-Kolva-Key: kolva_sk_your_key_here"
cURL — Créer une affaire
curl -X POST "https://kolva.ai/api/v1/deals" \
  -H "X-Kolva-Key: kolva_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"client_id": "uuid", "total_ht": 1500, "currency": "EUR"}'
JavaScript — Lister les visites
const response = await fetch("https://kolva.ai/api/v1/visits?status=completed", {
  headers: { "X-Kolva-Key": process.env.KOLVA_API_KEY },
});
const { data, total } = await response.json();
console.log(`Found ${total} completed visits`);
JavaScript — Créer une visite
const visit = await fetch("https://kolva.ai/api/v1/visits", {
  method: "POST",
  headers: {
    "X-Kolva-Key": process.env.KOLVA_API_KEY,
    "Idempotency-Key": crypto.randomUUID(),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    client_id: "client-uuid",
    commercial_id: "rep-uuid",
    planned_date: "2026-03-15",
    type: "routine",
  }),
});
const { data } = await visit.json();
// Retry the same operation with the same UUID. A replay returns HTTP 200;
// the initial creation returns HTTP 201.

Prêt à intégrer ?

Créez votre clé API dans les paramètres Kolva, ou consultez la spécification OpenAPI pour la référence complète.