Condutor verificado
Biometria facial, checagem de idoneidade e habilitação conferida antes de qualquer viagem. Ninguém opera fora desse crivo.
Para operadoras de seguros
A RotaCerta Brasil nasceu dentro do cooperativismo de transporte: o condutor é verificado, o veículo é cadastrado e cada viagem deixa registro. Não somos corretora e não entramos no contrato — abrimos a porta para que a seguradora negocie diretamente com cooperativas, frotistas e motoristas autônomos.
Biometria facial, checagem de idoneidade e habilitação conferida antes de qualquer viagem. Ninguém opera fora desse crivo.
Placa única por itinerário, com bloqueio automático de duplicidade de horário e vínculo obrigatório a uma cooperativa parceira.
Origem, paradas, destino e posições registradas. Cada chamado de pane nasce com local, horário e contexto da viagem.
Repasses, taxas, faturas e notas fiscais registrados e auditáveis pela cooperativa e pelo condutor.
O RotaCerta Brasil não é corretora de seguros e não participa do contrato. A apólice é firmada diretamente entre você e a seguradora parceira, sem custo ou intermediação financeira da plataforma.
A proposta é analisada pela administração e, aprovada, passa a ser exibida na área de Assistência para as cooperativas, frotistas e motoristas do perfil e das UFs indicadas — que falam com você diretamente.
A seguradora pode enviar e acompanhar propostas direto do próprio sistema e receber avisos automáticos a cada mudança. Peça a credencial pelo formulário acima informando, nas condições, o endereço do seu webhook.
POST /api/public/seguradoras/propostas — envia uma propostaGET /api/public/seguradoras/propostas — lista as suas propostasGET /api/public/seguradoras/propostas/{id} — detalhePATCH /api/public/seguradoras/propostas/{id} — atualiza a própria oferta (volta para análise)curl -X POST https://rotacertabrasil.com.br/api/public/seguradoras/propostas \
-H "Authorization: Bearer rcb_..." \
-H "Content-Type: application/json" \
-d '{
"nome": "Seguradora Exemplo",
"contato_nome": "Comercial",
"contato_email": "comercial@exemplo.com.br",
"publicos": ["cooperativa", "frotista", "autonomo"],
"ufs": ["AP"],
"coberturas": ["Assistência 24h", "Reboque"],
"resumo": "Condições da parceria oferecida às cooperativas e motoristas."
}'Enviamos um POST ao seu webhook nos eventos proposta.recebida, proposta.aprovada, proposta.recusada, proposta.pausada e interesse.criado. O corpo é assinado com HMAC-SHA256 no cabeçalho x-rotacerta-assinatura, usando o segredo entregue junto com a credencial — confira a assinatura antes de processar. Falhas são reenviadas automaticamente por algumas horas.
Os avisos nunca contêm dados de passageiros, motoristas ou corridas: apenas a sua proposta e o contato comercial de quem manifestou interesse.
POST https://seu-sistema.com.br/rotacerta
x-rotacerta-assinatura: <hmac-sha256 do corpo, em hexadecimal>
x-rotacerta-timestamp: 1756400000000
content-type: application/json
{
"evento": "proposta.aprovada",
"enviado_em": "2026-08-28T20:00:00.000Z",
"dados": {
"proposta_id": "0b1e...",
"nome": "Seguradora Exemplo",
"situacao": "aprovada"
}
}Calcule o HMAC-SHA256 do corpo bruto (exatamente como recebido, sem reserializar o JSON) usando o segredo entregue com a credencial e compare, em tempo constante, com o cabeçalho x-rotacerta-assinatura. Recuse eventos com assinatura diferente ou com x-rotacerta-timestamp muito antigo (sugerimos 5 minutos de tolerância). Responda 2xx: qualquer outra resposta é tratada como falha e reenviada automaticamente até 5 vezes, com intervalos crescentes.
// Node.js
import { createHmac, timingSafeEqual } from "node:crypto";
app.post("/rotacerta", express.raw({ type: "application/json" }), (req, res) => {
const esperado = createHmac("sha256", process.env.ROTACERTA_SEGREDO)
.update(req.body) // Buffer com o corpo bruto
.digest("hex");
const recebido = req.header("x-rotacerta-assinatura") ?? "";
const ok =
recebido.length === esperado.length &&
timingSafeEqual(Buffer.from(recebido), Buffer.from(esperado));
if (!ok) return res.status(401).end();
const evento = JSON.parse(req.body.toString());
// processe evento.evento / evento.dados (idempotente: o mesmo evento pode chegar de novo)
res.status(200).json({ recebido: true });
});Depois de publicar o seu endpoint, dispare um evento webhook.teste com a sua própria credencial. A resposta informa se a entrega foi confirmada, o código HTTP devolvido e o corpo exato que enviamos — ideal para validar a assinatura antes de entrar em produção.
curl -X POST https://rotacertabrasil.com.br/api/public/seguradoras/webhook-teste \
-H "Authorization: Bearer rcb_..."
{
"envio_id": "6d0a...",
"entregue": true,
"status": "entregue",
"http_status": 200,
"tentativas": 1,
"webhook_url": "https://seu-sistema.com.br/rotacerta",
"payload_enviado": { "evento": "webhook.teste", "enviado_em": "...", "dados": { } }
}