Sendero InvestDesenvolvedores
OpenAPI Abrir console
SENDERO CRM / API v1

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.

URL BASE DESTE AMBIENTE/api/integracoes/v1
REST + JSONRequisições GET autenticadas
Bearer tokenUma credencial por aplicação
SSEAtualizações de uma consulta
COMECE AQUI

Sua primeira consulta

Esta documentação é pública. Para consultar dados, sua aplicação precisa de uma chave emitida por um administrador do CRM.

  1. 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.

  2. Configure o sistema consumidor

    Guarde CRM_API_KEY no ambiente seguro do seu servidor. Use CRM_BASE_URL com a URL base completa mostrada acima. Não coloque a chave no código do navegador, na URL ou no repositório.

  3. 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/json
Validade da chave

Novas 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.

Alteração dos acessos

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.

Suspender e reativar o acesso

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.

Perdeu a chave?

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âmetros da consulta universal
ParâmetroComo usar
fieldsCampos separados por vírgula. Se omitido, retorna todos os campos disponíveis da tabela.
filtersLista JSON de até 20 condições {field, op, value}. As condições são combinadas por AND.
limitDe 1 a 200 registros por página; padrão 50.
cursorValor 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.

Filtrar valores de um crédito · cURL

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.

Registros com exclusão lógica

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.

  1. Leia items e processe os registros.
  2. Use pagination.nextCursor como cursor na próxima chamada.
  3. Mantenha o mesmo recurso, campos, filtros e limite. Não edite o cursor.
  4. Encerre quando hasMore for false.

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.

Onde encontrar os dados financeiros
Tabela ou visãoConteúdo
prospect_valuesQGC, propostas, fechamento, valores pagos e recebidos, incluindo maximum_proposal_amount.
prospect_financial_profilesAbertura do financeiro e details com honorários, originação e aprovações.
prospect_financial_movementsMovimentos de pagamento e recebimento: tipo, valor, data e beneficiário.
prospect_financial_totalsTotais 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.

Contar créditos por situação · cURL

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.

Acompanhar valores · cURL
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"}
Substitua o resultado anterior

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:

GET/documentos/prospects/{id}/arquivo
GET/documentos/campanhas/{id}/arquivo

O 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.

Salvar um documento · cURL

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.

REFERÊNCIA DA API

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…

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.

Tratamento recomendado
StatusO que fazer
400Corrija parâmetros, filtros ou cursor.
401Verifique a credencial, sua validade, suspensão e revogação. Interrompa as tentativas automáticas.
403Solicite o escopo necessário ao administrador.
404Confira o recurso, identificador e sua disponibilidade para a organização.
405Use GET. A API de dados não aceita operações de escrita nem HEAD.
413 / 422Restrinja o resultado ou os grupos. Não há resposta parcial silenciosa.
429Reduza a concorrência e respeite Retry-After antes de repetir.
503Faça novas tentativas com espera crescente e limite de tentativas.
60/minRequisições por credencial
1.000 / 200Créditos por página / demais recursos e grupos por resumo
3 / 12Streams por credencial / serviço
2 MiBTamanho máximo de um snapshot SSE

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.

Sendero CRM Documentação da API v1 · Somente leitura