Hurtig start
Fra »ingen konto« til »session oprettet + første webhook modtaget« på cirka fem minutter. Vi bruger Node-SDK'en; Python er næsten identisk.
1. Hent API-legitimation
- Tilmeld dig på app.nexbasira.com — bootstrap-flowet opretter din organisation + admin-bruger i ét trin.
- Gå til Admin → API-legitimation og klik på Udsted legitimation.
- Kopiér
nb_pub_*+nb_sec_*-parret. Hemmeligheden vises præcis én gang — gem den i din secrets manager med det samme.
2. Installér SDK'en
npm install @nexbasira/node Eller for Python: pip install nexbasira.
3. Opret en session
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. Præg en feltbruger-invitation
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_..." Send URL'en til din feltbruger — de åbner den på en telefon (mobil Safari eller Chrome), giver adgang til kamera + GPS, og operatøren ser dem på SPA-dashboardet på under 30 sekunder.
5. Kobl webhooken op
Webhooks udløses ved session.created, session.completed,
evidence.added, recording.ready, audit.anchored,
signature.completed, og et par flere. Registrér en leverings-URL fra Admin → Webhooks og verificér signaturen på hver 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. (Valgfrit) Indlejr feltside-widgetten
Hvis du hellere vil hoste feltbruger-oplevelsen inde i din egen kundevendte app i stedet for at bruge vores hostede URL, så brug embed-widgetten:
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? Brug @nexbasira/react's <NexBasiraSession> -komponenten i stedet — samme flade, idiomatisk React.
Hvad du har nu
- Sessioner oprettet via API
- Feltbrugere, der tilslutter via signerede invitations-URL'er (ingen app-installation)
- Webhooks verificeret + afsendt i din backend
- (Valgfrit) indlejret feltside-oplevelse inde i dit produkt
Hvad er det næste
- Koncepter — hvad en Session, en bevisrække og en audit-kæde egentlig er
- Fuld API-reference — hvert endpoint med eksempler
- Webhooks i dybden — event-typer, retry-adfærd, idempotens
- SSO-opsætning — OIDC + SAML til dit IT-team