Un'API pulita, tipizzata, documentata.
REST + JSON, con versioning tramite URL, scope-gated, paginazione a cursore. SDK Node, Python, React ed Embed. Webhook firmati, OpenAPI 3.1 generato, code generator pronti all'uso.
La tua prima sessione in 5 minuti.
# 1. Crea una sessione d'ispezione
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"
}
}'
# Risposta 201 — la sessione è creata, il link SMS è in arrivo
{
"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...
// Itera sulle sessioni recenti (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...
# Recupera il dossier di prova una volta firmato
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 gestisce WebRTC, cattura GPS, firma eIDAS.
// Tu gestisci l'UI attorno. White-label di default.Tutto ciò che puoi pilotare dall'API.
/sessions
Crea, elenca, recupera e termina una sessione d'ispezione. Inviti via SMS / email.
/evidence
Elenca le prove di una sessione, scarica il PDF firmato, recupera l'hash blockchain.
/whiteboards
Recupera le annotazioni in SVG / PNG per sessione. Export con marca temporale.
/webhooks
Registra un endpoint, ruota il secret, test-fire. Firma HMAC-SHA256.
/branding
Personalizza logo, colori, dominio per la modalità white-label.
/org
Lettura dei metadati dell'organizzazione, quote, membri, ruoli RBAC.
Webhook firmati HMAC-SHA256.
Formato in stile Stripe con tolleranza di clock skew di 5 minuti. Secret cifrato a riposo. Ritentativi esponenziali con backoff fino a 24h.
# Header inviato da Nexbasira
Nbx-Signature: t=1714060800,v1=5257a869e7ec...
# Verifica (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 SDK tipizzati e mantenuti.
npm install @nexbasira/node
- Tipi generati da OpenAPI
- Paginazione async iterator
- Verifica webhook integrata
pip install nexbasira
- Modelli Pydantic v2
- Modalità async + sync
- Errori tipizzati per codice
npm install @nexbasira/react
- Componente <Embed/> plug & play
- Hook useSession, useEvidence
- Theming compatibile Tailwind
<script src="cdn.nbx.com/embed.js"></script>
- Nessun framework, <30 KB
- CDN distribuito in Europa
- Compatibile con tutti i framework
Collega Nexbasira al tuo stack.
OIDC + SAML 2.0 SSO
Provisioning just-in-time con allowlist per dominio e ruolo predefinito.
SCIM 2.0
Provisioning automatico di utenti e gruppi. Bearer token per organizzazione.
Webhook e verifica
Helper di verifica HMAC in tutti gli SDK. Ritentativi esponenziali.
Self-hosting
Stack Docker + Caddy documentato. Disponibile con il piano Enterprise.
Idempotenza
Header Idempotency-Key su tutte le POST. Nessun duplicato, mai.
Rate limit
Header X-RateLimit-* su ogni risposta. Quote per chiave API e per organizzazione.
Schema generato, pubblico, versionato.
Scarica lo schema OpenAPI 3.1 filtrato (solo le operazioni pubbliche) e genera automaticamente i tuoi tipi.
# Tipi TypeScript
npx openapi-typescript \
https://api.nexbasira.com/v1/openapi.json \
-o src/nbx-types.ts
# Modelli Pydantic
datamodel-codegen \
--url https://api.nexbasira.com/v1/openapi.json \
--output-model-type pydantic_v2.BaseModel \
--output nbx_models.py
Stabilità garantita da SemVer-URL
I breaking change vivono sotto un nuovo prefisso (/v2/) con almeno 12 mesi di sovrapposizione prima del ritiro della versione precedente. Le modifiche additive (nuovi campi opzionali, nuovi endpoint, nuovi tipi di evento) vengono distribuite in place. I nostri SDK trattano i campi sconosciuti come compatibili in avanti.
Pronto a integrare Nexbasira?
Ottieni la tua chiave API sandbox in 30 secondi, senza carta di credito.