Referência da API v1 do Firm Suite para integração programática.
Todas as requisições devem incluir um token de API no header Authorization.
Tokens são gerados em Configurações → Chaves de API. O token é exibido apenas uma vez na criação.
100 requisições/minuto por chave de API. Quando excedido, a API retorna 401.
Listar deals, templates, documentos e audit log.
Criar deals, fazer upload de templates, gerar documentos.
Gerenciar membros, chaves de API. Inclui todos os scopes.
/api/firm/v1/dealsscope: generateCriar um novo deal
Request body:
{"name": "FIDC Alpha", "product_type": "FIDC"}Response:
{"data": {"id": "uuid", "name": "FIDC Alpha", "product_type": "FIDC", "status": "active"}}/api/firm/v1/dealsscope: readListar deals do escritório
Response:
{"data": [{"id": "uuid", "name": "FIDC Alpha", "product_type": "FIDC", "status": "active"}]}/api/firm/v1/deals/:id/generatescope: generateGerar documento para um deal
Request body:
{"template_id": "uuid", "deal_inputs": {"fund_name": "FIDC Alpha"}}Response:
{"message": "Geração aceita", "deal_id": "uuid", "status": "processing"}/api/firm/v1/deals/:id/documentsscope: readListar documentos gerados de um deal
Response:
{"data": [{"id": "uuid", "version": 1, "review_status": "draft"}]}/api/firm/v1/documents/:id/downloadscope: readDownload de documento DOCX gerado
Response:
Binary DOCX file
/api/firm/v1/templates/:id/analyzescope: generateIniciar análise de um template enviado
Response:
{"message": "Análise iniciada", "status": "calibrating"}/api/firm/v1/templates/:idscope: readObter schema de slots e formatação do template
Response:
{"data": {"id": "uuid", "slot_schema": [...], "formatting_schema": {...}}}/api/firm/v1/audit-logscope: readAudit log paginado (query params: page, limit, action, decision)
Response:
{"data": [...], "pagination": {"page": 1, "limit": 20, "total": 150, "pages": 8}}Pseudocódigo para automatizar geração de documentos a partir do iManage:
// 1. Quando um novo deal é criado no iManage
const deal = await fetch('https://usenorma.ai/api/firm/v1/deals', {
method: 'POST',
headers: {
'Authorization': 'Bearer nrmk_sua_chave_aqui',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'FIDC Alpha - Série 1',
product_type: 'FIDC',
}),
}).then(r => r.json());
// 2. Gerar documento usando template calibrado
const gen = await fetch(
`https://usenorma.ai/api/firm/v1/deals/${deal.data.id}/generate`,
{
method: 'POST',
headers: {
'Authorization': 'Bearer nrmk_sua_chave_aqui',
'Content-Type': 'application/json',
},
body: JSON.stringify({
template_id: 'uuid-do-template',
deal_inputs: {
fund_name: 'FIDC Alpha',
administradora: 'XP Investimentos',
valor_emissao: '100.000.000,00',
},
}),
}
).then(r => r.json());
// 3. Baixar DOCX gerado e arquivar no iManage
const docx = await fetch(
`https://usenorma.ai/api/firm/v1/documents/${gen.document_id}/download`,
{ headers: { 'Authorization': 'Bearer nrmk_sua_chave_aqui' } }
);
const blob = await docx.blob();
// → iManage.upload(workspace, blob, 'regulamento-fidc-alpha.docx');