API v1 — stabiel

Bouw verder op Kolva

RESTful API om uw tools met Kolva te integreren. Beheer klanten, deals, bezoeken en contacten programmatisch. Realtime webhooks voor elke gebeurtenis.

OpenAPI 3.1-specificatie

Authenticatie

Authenticatie met API-sleutel

Genereer uw API-sleutels via Instellingen → Ontwikkelaar in uw Kolva-beheerpaneel. Elke sleutel heeft afgebakende machtigingen en kan op elk moment worden ingetrokken.

Authenticatie via header

Aanbevolen methode

# Optie 1: header X-Kolva-Key
X-Kolva-Key: kolva_sk_abc123...

# Optie 2: Bearer-token
Authorization: Bearer kolva_sk_abc123...

Beschikbare scopes

Fijnmazige machtigingen

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

Endpoints

RESTful resources

Alle endpoints volgen de REST-conventies. De antwoorden zijn in JSON. Paginering met ?page= en ?limit= (max. 100).

Klanten

/api/v1/clients

Beheer uw klantenbestand — weergeven, aanmaken, bijwerken, deactiveren.

GETPOSTPUTDELETE
Scopes: read:clients, write:clients

Contacten

/api/v1/contacts

CRUD-bewerkingen op contacten binnen klantdossiers (JSONB-array met contacten).

GETPOSTPUTDELETE
Scopes: read:clients, write:clients

Deals

/api/v1/deals

Orders en deals — aanmaken, status bijwerken, omzet volgen.

GETPOSTPUTDELETE
Scopes: read:deals, write:deals

Bezoeken

/api/v1/visits

Veldbezoeken — plannen, check-in/check-out volgen, planningen beheren.

GETPOSTPUTDELETE
Scopes: read:visits, write:visits

Rate limits

Limieten voor redelijk gebruik

100

verzoeken / minuut

429

status bij overschrijding

Retry-After

header meegestuurd

Webhooks

Realtime gebeurtenismeldingen

Abonneer u op gebeurtenissen via Instellingen → Ontwikkelaar → Webhooks. Kolva stuurt POST-verzoeken naar uw URL, met handtekeningverificatie via HMAC-SHA256.

deal_created

Wordt geactiveerd wanneer een nieuwe deal/order wordt aangemaakt

deal_updated

Wordt geactiveerd wanneer de status of het bedrag van een deal verandert

client_created

Wordt geactiveerd wanneer een nieuwe klant wordt toegevoegd

client_updated

Wordt geactiveerd wanneer klantgegevens worden gewijzigd

visit_completed

Wordt geactiveerd wanneer een veldvertegenwoordiger uitcheckt

invoice_created

Wordt geactiveerd wanneer een factuur wordt aangemaakt

order_created

Wordt geactiveerd wanneer een order wordt geplaatst

contact_updated

Wordt geactiveerd wanneer een klantcontact wordt gewijzigd

Handtekeningverificatie

Elke webhook-POST bevat een header X-Kolva-Signature . Verifieer hem met HMAC-SHA256 en uw webhook-secret.

// Verificatie in 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)
);

Herhaalbeleid: 3 pogingen met exponentiële backoff (1 min, 5 min, 30 min). Na 10 opeenvolgende mislukkingen wordt de webhook automatisch uitgeschakeld.

Voorbeelden

Snelstart

cURL — klanten opvragen
curl -X GET "https://kolva.ai/api/v1/clients?page=1&limit=10" \
  -H "X-Kolva-Key: kolva_sk_your_key_here"
cURL — een deal aanmaken
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 — bezoeken opvragen
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 — een bezoek aanmaken
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.

Klaar om te integreren?

Maak uw API-sleutel aan in de Kolva-instellingen of raadpleeg de OpenAPI-specificatie voor de volledige referentie.