Ontwikkelaars
Server-Sent Events (SSE)
Stream realtime events via een langlopende verbinding
SSE biedt een langlopende stream van dezelfde events die webhooks ontvangen. Gebruik SSE wanneer je een persistente verbinding prefereert boven HTTP-callbacks.
Endpoint
GET /api/orgs/:orgId/realtime/subscribeAuthenticatie
SSE gebruikt dezelfde authenticatie als andere API-endpoints:
- x-api-key - Jouw API-sleutel
- X-Tillor-Org-Id - Organisatie-ID
Event-filtering
Gebruik de events query-parameter om te filteren op event type:
GET /api/orgs/:orgId/realtime/subscribe?events=invoice:created&events=invoice:paidGebruik events=* om alle events te ontvangen (zelfde als parameter weglaten).
Zie Event types voor de volledige lijst.
Event-formaat
Elk SSE-bericht bevat:
- event - Event key (bijv.
invoice:created) - data - JSON-object met event-payload
- timestamp - Unix timestamp (ms)
Voorbeeld: Node.js
const orgId = "org_abc123";
const apiKey = "tkn_xxx";
const url = `https://app.tillor.eu/api/orgs/${orgId}/realtime/subscribe?events=invoice:created&events=customer:updated`;
const response = await fetch(url, {
headers: {
"x-api-key": apiKey,
"X-Tillor-Org-Id": orgId,
"Accept": "text/event-stream",
},
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value, { stream: true });
for (const line of chunk.split("\n")) {
if (line.startsWith("data: ")) {
const payload = JSON.parse(line.slice(6));
console.log(payload.event, payload.data);
}
}
}Voorbeeld: cURL
curl -N -H "x-api-key: tkn_xxx" \
-H "X-Tillor-Org-Id: org_abc123" \
"https://app.tillor.eu/api/orgs/org_abc123/realtime/subscribe"Herverbinding
Als de verbinding verbreekt, herverbind met dezelfde URL en headers. De stream ondersteunt geen resumption; je ontvangt alleen nieuwe events na herverbinden.
Gerelateerd
- OpenAPI - Volledige API-specificatie
- HTTP API - API-sleutels en authenticatie
- Webhooks - Zelfde events via HTTP POST
- Voorbeelden - Code- en payload-voorbeelden