API REST pública para consumo de normas regulatórias. Todos os endpoints retornam JSON.
Base URL: https://fabricabot.one/api/v1
/api/v1/entidades/api/v1/normas/api/v1/normas/:id/api/v1/normas/:id/textoEndpoints dedicados para integração com bots WhatsApp. Utilizam autenticação por número de celular (JWT) e mantêm contexto de conversa automaticamente.
Base URL: https://fabricabot.one/api/whatsapp · Auth: Bearer JWT (obtido via /token) · Validade do token: 24 horas
/api/whatsapp/token/api/whatsapp/chat/api/whatsapp/sessionconst BASE = "https://fabricabot.one/api/whatsapp";
// 1. Ao iniciar conversa — obter token (uma vez por sessão)
async function startSession(phone) {
const res = await fetch(`${BASE}/token`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ phone })
});
const data = await res.json();
if (!res.ok) return { error: data.message }; // plano não disponível
return { token: data.token, greeting: data.message };
}
// 2. Para cada mensagem — enviar pergunta
async function askQuestion(token, question, entityId = null) {
const res = await fetch(`${BASE}/chat`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({ question, ...(entityId && { entityId }) })
});
const data = await res.json();
if (res.status === 429) return data.message; // limite atingido
if (!res.ok) return 'Erro ao processar sua pergunta. Tente novamente.';
return data.answer; // texto formatado para WhatsApp
}
// 3. Ao encerrar conversa
async function endSession(token) {
await fetch(`${BASE}/session`, {
method: 'DELETE',
headers: { 'Authorization': `Bearer ${token}` }
});
}
// Uso:
const { token, greeting } = await startSession('+5511999999999');
console.log(greeting); // "Olá, João! Sessão iniciada..."
const answer = await askQuestion(token, 'O que é a Resolução CVM 175?');
console.log(answer); // resposta formatada para WhatsApp| Código | Descrição |
|---|---|
| 200 | Sucesso - Requisição processada corretamente |
| 400 | Bad Request - Parâmetros inválidos ou entidade não encontrada |
| 404 | Not Found - Norma não encontrada |
| 500 | Internal Server Error - Erro interno do servidor |
{
"success": false,
"error": "Entidade não encontrada: XYZ",
"entidadesDisponiveis": ["CVM", "RECEITA_FEDERAL", "ANBIMA", "COAF", "SUSEP", "B3"]
}