Una API limpia, tipada, documentada.
REST + JSON, versionada por URL, scope-gated, paginada por cursor. SDKs Node, Python, React y Embed. Webhooks firmados, OpenAPI 3.1 generado.
Tu primera sesión en 5 minutos.
# 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.Todo lo que puedes controlar desde la API.
/sessions
Crear, listar, recuperar y terminar una sesión. Invitaciones SMS / email.
/evidence
Listar pruebas, descargar PDF firmado, obtener hash blockchain.
/whiteboards
Recuperar anotaciones SVG / PNG por sesión. Exportación marcada.
/webhooks
Registrar endpoint, rotar secreto, test-fire. Firma HMAC-SHA256.
/branding
Personalizar logo, colores, dominio para marca blanca.
/org
Leer metadatos de organización, cuotas, miembros, roles RBAC.
Webhooks firmados HMAC-SHA256.
Formato Stripe-style con tolerancia de reloj de 5 min. Secreto cifrado en reposo. Reintentos exponenciales hasta 24h.
# 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 SDKs tipados y mantenidos.
npm install @nexbasira/node
- Tipos desde OpenAPI
- Paginación async iterator
- Verif webhook integrada
pip install nexbasira
- Modelos Pydantic v2
- Modo async + sync
- Errores tipados
npm install @nexbasira/react
- Componente listo
- Hooks useSession, useEvidence
- Theming Tailwind
<script src="cdn.nbx.com/embed.js"></script>
- Sin framework, <30 KB
- CDN UE distribuida
- Compat. universal
Conecta Nexbasira a tu stack.
OIDC + SAML 2.0 SSO
Just-in-time con allowlist por dominio y rol por defecto.
SCIM 2.0
Aprovisionamiento automático. Token por organización.
Webhooks y verificación
Helpers HMAC en todos los SDKs. Reintentos exponenciales.
Self-hosting
Stack Docker + Caddy. Disponible en plan Enterprise.
Idempotencia
Cabecera Idempotency-Key en todos los POST. Sin duplicados.
Rate limits
Cabeceras X-RateLimit-*. Cuotas por clave y por org.
Esquema generado, público, versionado.
Descarga el esquema OpenAPI 3.1 filtrado y genera tus tipos automáticamente.
# 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
Estabilidad garantizada SemVer-URL
Los cambios disruptivos viven bajo un nuevo prefijo (/v2/) con 12 meses mínimos de superposición antes del retiro de la versión anterior. Los cambios aditivos se despliegan en su sitio.
¿Listo para integrar Nexbasira?
Obtén tu clave API sandbox en 30 segundos.