LIVE · AUDIT-KETEN · EU-GEHOST
SYSTEEM · 99,99% UPTIME
v 1.0 ↗ GEMAAKT IN DE EU
BASIS-URL
https://api.nexbasira.com/v1
🇪🇺 Gehost in de EU SemVer · v1 stabiel 12 maanden min. achterwaartse compat.

Uw eerste sessie in 5 minuten.

# 1. Créer une session d'inspection
curl -X POST https://api.nexbasira.com/v1/sessions \
-H "Authorization: Bearer nbx_live_sk_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"type": "field_inspection",
"reference": "INS-42871",
"participant": {
"name": "Marie L.",
"channel": "sms",
"phone": "+33612345678"
},
"callbacks": {
"session.completed": "https://your-app.com/webhooks/nbx"
}
}'
# Réponse 201 — la session est créée, le lien SMS est en route
{
"id": "sess_42871",
"status": "pending",
"join_url": "https://join.nexbasira.com/s/abc123def...",
"expires_at": "2026-05-26T14:00:00Z"
}
import Nexbasira from '@nexbasira/node';
const nbx = new Nexbasira({ apiKey: process.env.NBX_KEY });
const session = await nbx.sessions.create({
type: 'field_inspection',
reference: 'INS-42871',
participant: {
name: 'Marie L.',
channel: 'sms',
phone: '+33612345678',
},
callbacks: {
'session.completed': 'https://your-app.com/webhooks/nbx',
},
});
console.log(session.join_url);
// → https://join.nexbasira.com/s/abc123def...
// Itérer sur les sessions récentes (async iterator)
for await (const s of nbx.sessions.list({ status: 'completed' })) {
console.log(s.id, s.completed_at);
}
from nexbasira import Nexbasira
nbx = Nexbasira(api_key=os.environ["NBX_KEY"])
session = nbx.sessions.create(
type="field_inspection",
reference="INS-42871",
participant={
"name": "Marie L.",
"channel": "sms",
"phone": "+33612345678",
},
callbacks={
"session.completed": "https://your-app.com/webhooks/nbx",
},
)
print(session.join_url)
# → https://join.nexbasira.com/s/abc123def...
# Récupérer le dossier de preuve une fois signé
evidence = nbx.evidence.retrieve(session_id=session.id)
print(evidence.pdf_url, evidence.audit_chain_hash)
import { NexbasiraEmbed } from '@nexbasira/react';
export function InspectionView({ sessionId }) {
return (
<NexbasiraEmbed
sessionId={sessionId}
onCapture={(evt) => trackPhoto(evt)}
onSigned={(evt) => redirect(evt.evidence_url)}
theme="dark"
brand={{ logo: "/logo.svg", accent: "#00E5A0" }}
/>
);
}
// L'embed gère WebRTC, capture GPS, signature eIDAS.
// Vous gérez l'UI autour. White-label par défaut.

Alles wat u kunt aansturen via de API.

POST GET DELETE

/sessions

Maak, lijst op, haal op en beëindig een inspectiesessie. Uitnodigingen via sms / e-mail.

GET

/evidence

Toon het bewijsmateriaal van een sessie, download de ondertekende PDF, haal de blockchain-hash op.

GET

/whiteboards

Haal annotaties op als SVG / PNG per sessie. Export met tijdstempel.

POST GET

/webhooks

Registreer een endpoint, roteer het secret, test-fire. HMAC-SHA256-handtekening.

GET PATCH

/branding

Pas logo, kleuren en domein aan voor de white-label-modus.

GET

/org

Lees organisatiemetadata, quota, leden en RBAC-rollen.

HMAC-SHA256 ondertekende webhooks.

Stripe-stijl formaat met 5 min klokafwijkingstolerantie. Secret versleuteld in rust. Exponentiële nieuwe pogingen met backoff tot 24 u.

Beschikbare events
session.createdSessie aangemaakt, link verzonden
session.joinedDeelnemer aangesloten
session.evidence.capturedNieuwe foto / annotatie
session.signedeIDAS-handtekening toegepast
session.anchoredHash vastgelegd op de blockchain
session.completedPDF klaar om te downloaden
Voorbeeld van handtekening
# En-tête envoyé par Nexbasira
Nbx-Signature: t=1714060800,v1=5257a869e7ec...
# Vérification (Node.js)
import { verifyWebhook } from '@nexbasira/node';
app.post('/webhooks/nbx', (req, res) => {
const event = verifyWebhook(
req.rawBody,
req.headers['nbx-signature'],
process.env.NBX_WEBHOOK_SECRET
);
if (event.type === 'session.completed') {
downloadEvidence(event.data.id);
}
res.json({ ok: true });
});

4 getypeerde, onderhouden SDK's.

@nexbasira/node
v2.6.0 · Node 18+
npm install @nexbasira/node
  • Types uit OpenAPI
  • Async iterator-paginering
  • Ingebouwde webhook-verificatie
nexbasira (Python)
v2.6.0 · Python 3.10+
pip install nexbasira
  • Pydantic v2-modellen
  • Async- + sync-modus
  • Getypeerde fouten per code
@nexbasira/react
v2.6.0 · React 18+
npm install @nexbasira/react
  • Kant-en-klare <Embed/>
  • Hooks useSession, useEvidence
  • Tailwind-compatibele theming
@nexbasira/embed
v2.6.0 · Vanilla JS
<script src="cdn.nbx.com/embed.js"></script>
  • Geen framework, <30 KB
  • In Europa gedistribueerde CDN
  • Compatibel met alle frameworks

Verbind Nexbasira met uw stack.

🔑

OIDC + SAML 2.0 SSO

Just-in-time provisioning met domein-allowlist en standaardrol.

👥

SCIM 2.0

Automatische provisioning van gebruikers en groepen. Bearer-token per organisatie.

📨

Webhooks & verificatie

HMAC-verificatiehelpers in alle SDK's. Exponentiële nieuwe pogingen.

🏠

Self-hosting

Docker + Caddy-stack gedocumenteerd. Beschikbaar in het Enterprise-plan.

🔄

Idempotentie

Idempotency-Key-header op alle POST-verzoeken. Nooit dubbele records.

📊

Rate limits

X-RateLimit-*-headers op elke respons. Quota per sleutel + per organisatie.

OpenAPI 3.1

Gegenereerd, openbaar, geversioneerd schema.

Download het gefilterde OpenAPI 3.1-schema (alleen openbare bewerkingen) en genereer uw types automatisch.

https://api.nexbasira.com/v1/openapi.json
# Types TypeScript
npx openapi-typescript \
https://api.nexbasira.com/v1/openapi.json \
-o src/nbx-types.ts
# Modèles Pydantic
datamodel-codegen \
--url https://api.nexbasira.com/v1/openapi.json \
--output-model-type pydantic_v2.BaseModel \
--output nbx_models.py

Stabiliteit gegarandeerd door SemVer-URL

Breaking changes leven onder een nieuwe prefix (/v2/) met minstens 12 maanden overlap voordat de vorige versie wordt uitgefaseerd. Additieve wijzigingen (nieuwe optionele velden, nieuwe endpoints, nieuwe eventtypes) worden ter plekke uitgerold. Onze SDK's behandelen onbekende velden als voorwaarts compatibel.

Klaar om Nexbasira te integreren?

Verkrijg uw sandbox-API-sleutel in 30 seconden, geen creditcard nodig.