AO VIVO · AUDIT CHAIN · UE
SISTEMA · 99,99% DISPONIBILIDADE
v 1.0 ↗ FEITO NA UE
Integração

API pública + SDKs + widget de embed

Quatro SDKs de primeira parte sobre uma API REST versionada. Paginação por cursor, cabeçalhos Idempotency-Key, assinatura HMAC de webhooks, helpers de iterador assíncrono, erros tipados. As peças de experiência de developer que deveriam estar presentes — não uma reflexão tardia.

Os quatro SDKs

Node

@nexbasira/node

Do lado do servidor. Tipado contra o esquema OpenAPI; iteradores assíncronos para listas paginadas; constructEvent(body, sig, secret) para verificação de webhooks. Zero dependências em runtime além do fetch global.

Ler o guia de Node →
Python

nexbasira (PyPI)

Do lado do servidor. Modelos Pydantic v2 gerados a partir do esquema. Os clientes síncrono + assíncrono partilham a mesma superfície; a verificação de webhooks vive em WebhookSigner.verify(body, sig, secret).

Ler o guia de Python →
React

@nexbasira/react

Hooks + componentes para a superfície do operador. <CertivisioSessionView /> renderiza a interface em sessão com branding, provas e chat. Encaixe na sua app React existente — sem redirecionamento para portal.

Ler o guia de React →
Embed

Widget em iframe

<script src=".../nb-embed.js"> + uma div — a integração de menor fricção. Para equipas de operações que correm a interface do operador a partir de uma stack não-React. O branding é herdado da página que faz o embed via postMessage.

Ler o guia de Embed →

Construído sobre a especificação OpenAPI

Os SDKs de Node + Python são gerados a partir do mesmo esquema OpenAPI 3.1 filtrado que publicamos em app.nexbasira.com/api/public-schema/ — por isso, se quiser saltar o SDK e gerar o seu próprio cliente tipado em Go ou Rust, pode:

# Node typed client
npx openapi-typescript https://app.nexbasira.com/api/public-schema/ -o src/nb-types.ts

# Python typed models
datamodel-codegen \
  --url https://app.nexbasira.com/api/public-schema/ \
  --input-file-type openapi \
  --output-model-type pydantic_v2.BaseModel \
  --output cvp_models.py

A superfície ergonómica escrita à mão (erros tipados, iteradores assíncronos, verificação de webhooks) vai por cima desses tipos gerados. Não está a escolher entre «cliente tipado rápido» e «bom DX» — ambos vêm incluídos.

Convenções REST, deliberadamente aborrecidas

ConvençãoPorquê
Paginação por cursorEstável sob escritas concorrentes. next_cursor na resposta; devolva-o como ?cursor=….
Cabeçalho Idempotency-KeyEnvie um UUID; repita em caso de timeout; o servidor devolve a resposta original de qualquer forma.
Webhooks HMAC-SHA256NB-Signature: t=…,v1=…. Os SDKs incluem uma verificação de uma linha; janela de replay de 5 min.
Prefixo de URL versionado/api/v1/public/. As alterações disruptivas passam para /v2/ com 12 meses de sobreposição.
Credenciais restringidas por âmbitoCada credencial transporta âmbitos explícitos (sessions:write, evidence:read, …). Rode sem perder um tenant.
Envelope de erro tipadoO mesmo formato em cada endpoint. code, detail, retry_after_seconds quando relevante.

Promessa de estabilidade

As alterações aditivas — novos campos opcionais, novos endpoints, novos tipos de evento de webhook — entram no mesmo sítio; os SDKs tratam os campos desconhecidos como compatíveis para a frente. As alterações disruptivas passam para um novo prefixo de URL e sobrepõem-se à versão anterior durante pelo menos 12 meses. Não vai acordar com uma migração de verde para vermelho numa manhã de terça-feira.

Comece pelo início rápido

Crie uma sessão, emita um convite de campo, verifique um webhook — em menos de 5 minutos. Copiar-e-colar curl + Node + Python na mesma página.