Conecte seu sistema
ao Sendero CRM.
Consulte os dados de negócio, acompanhe o financeiro e mantenha sua aplicação atualizada com uma API de leitura.
/api/integracoes/v1Sua primeira consulta
Esta documentação é pública. Para consultar dados, sua aplicação precisa de uma chave emitida por um administrador do CRM.
Receba uma credencial
O administrador abre Cadastros → Integrações, cria uma aplicação e entrega a chave por um canal seguro. Para acesso completo de leitura, use o escopo
dados:read.Configure o sistema consumidor
Guarde
CRM_API_KEYno ambiente seguro do seu servidor. UseCRM_BASE_URLcom a URL base completa mostrada acima. Não coloque a chave no código do navegador, na URL ou no repositório.Faça uma requisição GET
Os exemplos consultam a primeira página de créditos e tratam uma resposta recusada. Os arquivos completos para paginação estão disponíveis ao final.
Os exemplos serão carregados com JavaScript.Exemplos para execução no servidor do consumidor. Nenhuma consulta à API é executada por esta página.
Como é uma resposta de consulta
Exemplo ilustrativo, sem registros reais:
{
"items": [],
"pagination": { "limit": 50, "hasMore": false, "nextCursor": null },
"consultedAt": "2026-10-16T12:00:00.000Z"
}items contém os registros da página. consultedAt informa quando a consulta foi realizada.
Autenticação e escopos
Envie a chave em todas as requisições, exclusivamente no cabeçalho Authorization. O consumidor externo não precisa da senha, do cookie ou do CSRF de um usuário do CRM.
Authorization: Bearer SUA_CHAVE
Accept: application/jsonNovas credenciais são emitidas sem vencimento. Seu acesso pode ser suspenso temporariamente ou revogado definitivamente. Credenciais antigas com data de vencimento mantêm essa data. A chave aparece uma única vez ao ser criada.
Em Cadastros → Integrações → Editar acessos, o administrador pode alterar as permissões de uma aplicação ativa, mantendo a mesma chave, nome e validade. As próximas consultas usam os novos acessos. “Todos os dados de negócio” inclui o financeiro; para restringir, desmarque essa opção e selecione os acessos necessários.
O consumidor deve tratar respostas de permissão insuficiente. Retirar dados:read também encerra o acompanhamento SSE existente quando a permissão é revalidada; não tente reconectar continuamente enquanto esse acesso estiver bloqueado.
O responsável pode usar Suspender em Cadastros → Integrações para bloquear novas chamadas. Elas retornam HTTP 401; conexões SSE abertas são encerradas na revalidação. Uma consulta REST já autorizada pode terminar. Após Reativar, a mesma chave e os mesmos acessos voltam a funcionar; abra uma nova conexão SSE.
As ações ficam na auditoria. Revogação é definitiva: uma credencial revogada ou vencida não pode ser reativada. Ao receber 401, interrompa as tentativas automáticas e verifique o acesso com o responsável.
Em uma aplicação ativa, o administrador pode usar Gerar nova chave no mesmo cadastro. A troca mantém nome, permissões e validade, sem criar outra aplicação. Após a confirmação, a chave anterior deixa de autenticar novas consultas e o acompanhamento existente é encerrado quando a credencial é revalidada.
Copie a nova chave, exibida uma única vez, e substitua-a no sistema consumidor. A troca fica registrada na auditoria. Credenciais revogadas ou vencidas não são reativadas por essa ação.
Carregando escopos…
Os dados ficam restritos à organização da credencial. Campos técnicos de senhas, sessões e chaves não são disponibilizados. Essa proteção não analisa o conteúdo livre de textos e anexos.
Selecione campos e filtre os dados
Existem duas formas de consultar. Use os recursos amigáveis, como /creditos e /campanhas, ou a consulta universal /dados/{table}, com os nomes de tabela e coluna do catálogo.
| Parâmetro | Como usar |
|---|---|
fields | Campos separados por vírgula. Se omitido, retorna todos os campos disponíveis da tabela. |
filters | Lista JSON de até 20 condições {field, op, value}. As condições são combinadas por AND. |
limit | De 1 a 200 registros por página; padrão 50. |
cursor | Valor de pagination.nextCursor da resposta anterior. |
Consulte os operadores de cada coluna no catálogo: eq, ne, gt, gte, lt, lte, in, contains ou isNull. SQL, expressões e joins não são aceitos nesses parâmetros.
O UUID do exemplo é ilustrativo. Obtenha o ID real na listagem de créditos. Nos recursos amigáveis, os campos usam camelCase; na consulta universal, geralmente snake_case.
A consulta universal também pode retornar registros excluídos logicamente. Quando precisar somente dos ativos, use o campo apropriado do catálogo, por exemplo {"field":"deleted_at","op":"isNull","value":true}.
Percorra todas as páginas
O padrão é 50 registros por página. A listagem /creditos aceita até 1.000: envie limit=1000 para reduzir a quantidade de chamadas na carga completa. Os demais recursos, consultas universais e acompanhamentos mantêm até 200 registros por página; resumos mantêm até 200 grupos. Para ler o conjunto completo, continue enquanto pagination.hasMore for verdadeiro.
- Leia
itemse processe os registros. - Use
pagination.nextCursorcomocursorna próxima chamada. - Mantenha o mesmo recurso, campos, filtros e limite. Não edite o cursor.
- Encerre quando
hasMoreforfalse.
As páginas consultam o estado disponível em cada requisição; uma sequência de páginas não é um snapshot único. Preserve valores monetários, documentos e identificadores legados como texto para manter precisão e zeros iniciais.
Baixar exemplo de paginação em Node.js / Baixar exemplo em Python
Financeiro completo e resumos
Use as tabelas abaixo para consultar os valores armazenados. Relacione os registros por prospect_id e o crédito à campanha por campaign_id.
| Tabela ou visão | Conteúdo |
|---|---|
prospect_values | QGC, propostas, fechamento, valores pagos e recebidos, incluindo maximum_proposal_amount. |
prospect_financial_profiles | Abertura do financeiro e details com honorários, originação e aprovações. |
prospect_financial_movements | Movimentos de pagamento e recebimento: tipo, valor, data e beneficiário. |
prospect_financial_totals | Totais da visão financeira do banco. |
A rota /creditos/{id}/financeiro reúne movimentos paginados e um summary com os valores, detalhes e estado de abertura. Não some automaticamente valores legados, honorários, saldos de abertura e movimentos: existem regras de reconciliação. Não some novamente os totais aos movimentos.
Calcule contagens e somas no servidor
Use /dados/{table}/resumo com groupBy (até três campos) e metrics (até dez métricas). Funções: count, sum, avg, min e max.
Resumos não têm cursor. O limite é de 200 grupos; acima disso, a API responde 422 AGGREGATION_TOO_LARGE sem retornar um resumo parcial. Restrinja a consulta com filtros. Contagens, somas e médias são strings. Para reproduzir relatórios calculados do CRM, aplique os mesmos critérios e fórmulas aos dados.
Acompanhe atualizações com SSE
Abra /acompanhar/{table} ou /acompanhar/{table}/resumo com dados:read, os mesmos parâmetros da consulta e Accept: text/event-stream.
event: snapshot
data: {"result":{"items":[],"pagination":{"limit":50,"hasMore":false,"nextCursor":null},"consultedAt":"2026-10-16T12:00:00.000Z"},"refreshedAt":"2026-10-16T12:00:00.000Z"}Cada snapshot representa a consulta ou página completa. Não concatene os itens. A conexão inicial e a reconexão recebem o estado atual, sem replay de alterações perdidas.
Alterações salvas provocam novas consultas, agrupadas com intervalo mínimo de dois segundos mais o tempo de execução. Há uma verificação a cada 60 segundos. Uma página acompanhada não representa todos os registros da tabela.
Use fetch com o cabeçalho Bearer. Não coloque a chave em parâmetros de EventSource. Trate o evento error, faça reconexão limitada para falhas transitórias e interrompa em credencial inválida ou permissão insuficiente.
Baixar consumidor Node.js com parser SSE e reconexão
Para sincronização completa, reconcilie também exclusões e tabelas relacionadas. prospects.updated_at não é um marcador universal de mudanças em contatos, pagamentos e demais registros.
Baixe arquivos de documentos
Localize o ID e os metadados nas tabelas prospect_documents ou campaign_documents. Depois, baixe o arquivo com dados:read:
/documentos/prospects/{id}/arquivo/documentos/campanhas/{id}/arquivoO ID da rota é o ID do documento, não o ID do crédito ou da campanha. A resposta é binária, com Content-Disposition: attachment; não tente interpretá-la como JSON.
Arquivos preservados com exclusão lógica continuam disponíveis, respeitando a organização. Um registro de documento gerado não garante um arquivo disponível por essas duas rotas.
Endpoints
Caminhos a partir do endereço do CRM; já incluem /api/integracoes/v1. Expanda um endpoint para ver parâmetros, campos, resposta e observações.
Carregando referência…
Não foi possível carregar a referência. ou abrir o OpenAPI.
Tabelas, campos e relações
Esta referência descreve a estrutura publicada, sem registros de credores. O catálogo autenticado GET /dados é a fonte de verdade do ambiente consultado.
Não foi possível carregar as tabelas. ou abrir o catálogo JSON.
Erros e limites
Verifique o status HTTP antes de ler os dados. As falhas REST retornam {error: {code, message}, requestId}. Informe o requestId ao investigar um erro; nunca registre a chave ou o cabeçalho Authorization.
| Status | O que fazer |
|---|---|
| 400 | Corrija parâmetros, filtros ou cursor. |
| 401 | Verifique a credencial, sua validade, suspensão e revogação. Interrompa as tentativas automáticas. |
| 403 | Solicite o escopo necessário ao administrador. |
| 404 | Confira o recurso, identificador e sua disponibilidade para a organização. |
| 405 | Use GET. A API de dados não aceita operações de escrita nem HEAD. |
| 413 / 422 | Restrinja o resultado ou os grupos. Não há resposta parcial silenciosa. |
| 429 | Reduza a concorrência e respeite Retry-After antes de repetir. |
| 503 | Faça novas tentativas com espera crescente e limite de tentativas. |
O serviço limita a quatro as consultas REST simultâneas. Para SSE, INVALID_CREDENTIAL e SCOPE_REQUIRED encerram o consumo. Corrija consultas com INVALID_QUERY, INVALID_CURSOR, RESOURCE_UNAVAILABLE, AGGREGATION_TOO_LARGE ou SNAPSHOT_TOO_LARGE antes de repetir. STREAM_UNAVAILABLE, STREAM_TIMEOUT e STREAM_LIMIT permitem reconexão controlada.
Exemplos e arquivos
Use o OpenAPI em ferramentas de desenvolvimento e os exemplos no servidor da sua aplicação. Configure as variáveis de ambiente antes da execução.
