Quickstart
Van "geen account" naar "sessie aangemaakt + eerste webhook ontvangen" in ongeveer vijf minuten. We gebruiken de Node SDK; Python is vrijwel identiek.
1. Verkrijg API-credentials
- Meld u aan op app.nexbasira.com — de bootstrap-flow maakt uw organisatie + adminaccount in één stap aan.
- Ga naar Beheer → API-credentials en klik op Credential uitgeven.
- Kopieer het
nb_pub_*+nb_sec_*-paar. Het secret wordt precies één keer getoond — sla het direct op in uw secrets manager.
2. Installeer de SDK
npm install @nexbasira/node Of voor Python: pip install nexbasira.
3. Maak een sessie aan
import { NexBasira } from "@nexbasira/node";
const nb = new NexBasira({
apiKey: process.env.NB_PUBLIC_KEY!,
apiSecret: process.env.NB_SECRET_KEY!,
});
const session = await nb.sessions.create({
notes: "Vehicle damage — claim CL-2026-0042",
scheduled_for: "2026-05-23T10:00:00Z",
});
console.log("Session id:", session.id);
// → "0c8f4d2e-..." 4. Genereer een uitnodiging voor een veldgebruiker
const invite = await nb.sessions.invite(session.id, {
recipient_email: "alex@policyholder.com",
send_email: true,
});
console.log("Field URL (shown ONCE):", invite.url);
// → "https://app.nexbasira.com/join/0c8f.../?t=tok_..." Stuur de URL naar uw veldgebruiker — hij opent deze op een telefoon (mobiele Safari of Chrome), geeft camera- + GPS-toestemming, en de operator ziet hem binnen 30 seconden op het SPA-dashboard.
5. Sluit de webhook aan
Webhooks vuren bij session.created, session.completed,
evidence.added, recording.ready, audit.anchored,
signature.completed, en nog een paar. Registreer een afleverings-URL via Beheer → Webhooks en verifieer de handtekening bij elke POST:
// Express handler
app.post("/nb-webhook", express.raw({ type: "application/json" }), (req, res) => {
const sig = req.header("NB-Signature")!;
const secret = process.env.NB_WEBHOOK_SECRET!;
try {
const event = nb.webhooks.constructEvent(req.body, sig, secret);
// event is now type-narrowed by event.type
switch (event.type) {
case "session.completed":
await onSessionCompleted(event.data);
break;
case "audit.anchored":
await onAuditAnchored(event.data);
break;
}
res.status(204).end();
} catch (err) {
if (err instanceof InvalidSignatureError) {
return res.status(401).send("bad signature");
}
throw err;
}
}); 6. (Optioneel) Embed de veldwidget
Als u de veldgebruikerservaring liever in uw eigen klantgerichte app host in plaats van onze gehoste URL te gebruiken, gebruik dan de embed-widget:
import { embed } from "@nexbasira/embed";
const widget = embed({
container: "#nb-host",
sessionUrl: invite.url,
onSessionComplete: (id) => router.push(`/inspections/${id}`),
});
// Imperative methods on the returned handle:
widget.requestSnapshot();
widget.openWhiteboard();
widget.endSession(); React-app? Gebruik dan de @nexbasira/react's <NexBasiraSession> -component — hetzelfde oppervlak, idiomatisch React.
Wat u nu heeft
- Sessies aangemaakt via de API
- Veldgebruikers die toetreden via ondertekende uitnodigings-URL's (geen app-installatie)
- Webhooks geverifieerd + verwerkt in uw backend
- (Optioneel) ingebedde veldervaring binnen uw product
Wat nu
- Concepten — wat een Sessie, Bewijs-rij en Audit-keten eigenlijk zijn
- Volledige API-referentie — elk endpoint met voorbeelden
- Webhooks in detail — event-typen, retry-gedrag, idempotency
- SSO-configuratie — OIDC + SAML voor uw IT-team