EN VIVO · CON AUDITORÍA · UE
SISTEMA · 99,99% UPTIME
v 1.0 ↗ HECHO EN UE
URL BASE
https://api.nexbasira.com/v1
🇪🇺 Alojado en UE SemVer · v1 stable 12 meses retrocompat. mín.

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.

POST GET DELETE

/sessions

Crear, listar, recuperar y terminar una sesión. Invitaciones SMS / email.

GET

/evidence

Listar pruebas, descargar PDF firmado, obtener hash blockchain.

GET

/whiteboards

Recuperar anotaciones SVG / PNG por sesión. Exportación marcada.

POST GET

/webhooks

Registrar endpoint, rotar secreto, test-fire. Firma HMAC-SHA256.

GET PATCH

/branding

Personalizar logo, colores, dominio para marca blanca.

GET

/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.

Eventos disponibles
session.createdSesión creada
session.joinedParticipante unido
session.evidence.capturedNueva foto
session.signedFirma aplicada
session.anchoredHash en blockchain
session.completedPDF listo
Ejemplo de firma
# 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.

@nexbasira/node
v2.6.0 · Node 18+
npm install @nexbasira/node
  • Tipos desde OpenAPI
  • Paginación async iterator
  • Verif webhook integrada
nexbasira (Python)
v2.6.0 · Python 3.10+
pip install nexbasira
  • Modelos Pydantic v2
  • Modo async + sync
  • Errores tipados
@nexbasira/react
v2.6.0 · React 18+
npm install @nexbasira/react
  • Componente listo
  • Hooks useSession, useEvidence
  • Theming Tailwind
@nexbasira/embed
v2.6.0 · Vanilla JS
<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.

OpenAPI 3.1

Esquema generado, público, versionado.

Descarga el esquema OpenAPI 3.1 filtrado y genera tus tipos automáticamente.

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

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.