O que está incluso
Verificação em 3 tiers
Bronze: automático, em segundos, sem documento físico. Prata: foto da carteira profissional + selfie, revisão hospedada pelo Lastreo. Ouro: assinatura digital ICP-Brasil AR-CFM. Você escolhe o tier por nível de confiança.
Modal embed estilo Stripe Elements
SDK JS drop-in. O médico envia carteira + selfie direto para o Lastreo via iframe — a biometria nunca passa pelo seu backend. Tema customizável e white-label opcional.
Rede cross-tenant
Um médico verificado em qualquer cliente Lastreo é reconhecido nos próximos — onboarding instantâneo, sem reenviar documento. Cada cliente novo amplia a rede para os demais.
Compliance LGPD operator-grade (incluído)
Lastreo é operador (Art. 5 VII): audit log imutável, direitos do titular automatizados (Art. 18), notificação de incidente (Art. 48), consent versionado (Art. 8) e DPA pronto. Infraestrutura, não eixo de venda.
Zero data egress
O processamento de biometria roda na infraestrutura Lastreo, sem subprocessador adicional. A foto da carteira e a selfie não saem do Brasil.
Webhooks + Push FCM nativos
verification.approved / verification.rejected, assessment.created, alert.created, medication_reminder.due. Retry com backoff + assinatura HMAC SHA-256.
Quickstart
Receba sua API key
Cada cliente recebe uma X-API-KEY exclusiva (no formato lk_<prefix>_<secret>). O secret é mostrado uma única vez na emissão — guarde em vault seguro.
Crie um usuário paciente
Use o endpoint público POST /auth/register:
curl -X POST https://lastreo.com/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "SenhaForte@123",
"full_name": "Maria Silva",
"role": "paciente"
}'
Autentique e faça chamadas
curl -X POST https://lastreo.com/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "SenhaForte@123"}'
# Resposta: { "access_token": "eyJ...", "refresh_token": "..." }
# Use o token nas chamadas autenticadas:
curl https://lastreo.com/api/v1/users/me \
-H "Authorization: Bearer eyJ..."
Configure webhooks (opcional)
Receba eventos em tempo real (verification.approved, alert.created, assessment.created, etc.). Veja a seção Webhooks abaixo.
Autenticação
Há dois fluxos:
| Caso | Mecanismo | Header |
|---|---|---|
| Endpoints de pacientes/médicos (fluxo aplicativo) | Bearer JWT obtido via /auth/login |
Authorization: Bearer <access_token> |
| Integração server-to-server (webhooks de entrada, etc.) | API key estática | X-API-KEY: lk_<prefix>_<secret> |
Access tokens expiram em 60 minutos. Use POST /auth/refresh para renovar sem nova autenticação.
Webhooks
O Lastreo entrega eventos via HTTP POST em URLs HTTPS que você configura. Cada delivery inclui:
- Header
X-Lastreo-Event: tipo do evento (ex.alert.created) - Header
X-Lastreo-Delivery: ID único da delivery (idempotência) - Header
X-Lastreo-Signature:t=<unix_ts>,v1=<hex_hmac>(HMAC SHA-256, formato Stripe) - Body: JSON com
{id, type, created_at, data}
Verificação da assinatura (exemplo Python)
import hmac, hashlib, time
def verify(body_bytes: bytes, header: str, secret: str, tolerance_sec=300) -> bool:
parts = dict(item.split("=", 1) for item in header.split(","))
ts = int(parts["t"])
if abs(int(time.time()) - ts) > tolerance_sec:
return False
signed = f"{ts}.".encode("ascii") + body_bytes
expected = hmac.new(secret.encode("ascii"), signed, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, parts["v1"])
Política de retry
Se sua URL retornar não-2xx ou der timeout (15s), tentamos novamente:
- 1 minuto → 5 minutos → 30 minutos → 2 horas → 6 horas
- Após 5 falhas, status
failede admin pode forçar retry manualmente - Sempre responda com
2xxrapidamente — processamento pesado deve ser assíncrono no seu lado
Eventos disponíveis
| Evento | Quando |
|---|---|
verification.approved | Médico aprovado (tier ouro via ICP-Brasil ou prata via análise manual) |
verification.rejected | Verificação rejeitada com motivo |
verification.submitted | Nova submissão prata na fila de admin |
alert.created | Alerta clínico (severidade baixa/media/alta) |
assessment.created | Nova avaliação clínica (EDSS, Walk Test, etc.) |
symptom.recorded | Sintoma registrado |
medication_reminder.due | Lembrete de medicação acionado pelo scheduler |
patient.created | Conta de paciente criada |
patient.merged | Provisório convertido em conta real |
patient.deleted | Paciente apagado (LGPD eliminação) |
dsr.created | Solicitação LGPD do titular |
incident.notified | Notificação de incidente de segurança |
Compliance LGPD
O Lastreo opera como operador de dados (Art. 5 VII LGPD). Seu app é o controlador. Cobrimos as obrigações técnicas que pesam sobre o operador:
- Art. 18 — DSR automation (confirmation, access, portability, rectification, deletion, anonymization, info_sharing, automated_decision_review, opt_out)
- Art. 20 — Right to explanation de decisão automatizada
- Art. 46 — Medidas técnicas e administrativas (field encryption, audit log, TLS DB, backup encriptado, error tracking in-house)
- Art. 48 — Breach notification workflow (template + tracking de notificações por cliente em até 3 dias úteis)
- Art. 8 + 18 IX — Consent tracking versionado com content hash SHA-256
DPA template disponível mediante solicitação.
Estabilidade da API
/api/v1é estável indefinidamente- Breaking changes vão para
/v2com 6+ meses de aviso - Contract tests rodam em CI a cada PR — garantem que campos existentes não somem ou mudam de tipo