Manual de Integração — API Direct Data
O Monitoramento de APIs é o produto Direct Data que executa periodicamente um conjunto de consultas configuradas para os documentos (CPFs e CNPJs) que o cliente deseja acompanhar. Sempre que uma execução detecta uma alteração em relação ao último resultado gravado, um evento é registrado e fica disponível para consulta — permitindo ao cliente reagir a mudanças cadastrais, fiscais, regulatórias etc. de forma automatizada.
Esta API permite ao cliente consultar as listas, entidades, monitoramentos e eventos já configurados na plataforma e pausar/retomar monitoramentos em três níveis de granularidade: por monitoramento individual, por entidade (todos os monitoramentos de um documento) ou por lista (todos os monitoramentos de um lote).
/api/MonitorAppapplication/json)
Antes de usar a API, é importante entender as quatro entidades centrais do produto:
| Conceito | Identificador | Descrição |
|---|---|---|
| Lista (Lote) | listGuid |
Conjunto de entidades importadas em lote (ex: "Clientes Inadimplentes — Janeiro/2026"). Uma lista pode conter dezenas de entidades, e cada entidade pode estar vinculada a múltiplas APIs configuradas. |
| Entidade | entityGuid |
Um documento específico (CPF ou CNPJ) sendo monitorado. Uma entidade pode existir individualmente ou pertencer a uma lista, e tipicamente possui várias APIs configuradas para ela. |
| Monitoramento | monitoringGuid |
A configuração concreta de "consultar a API X para a entidade Y a cada N dias". Cada monitoramento tem frequência, período de vigência e status próprios. É a unidade de cobrança do produto. |
| Evento | eventGuid |
Registro de uma alteração detectada em uma execução do monitoramento (ex: mudança de situação cadastral, novo apontamento, alteração de quadro societário). |
GetMonitoringEvents, GetEntityEvents, GetListEvents) refletem
exatamente essa hierarquia — você escolhe o nível de agregação que faz sentido para sua aplicação.
Todos os endpoints exigem autenticação via header Token contendo o GUID
de API emitido pela Direct Data para a sua empresa. Esse token é único por empresa e deve ser
tratado como credencial sensível.
| Header | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Token | Guid | Sim | Token de API fornecido pela Direct Data, no formato 00000000-0000-0000-0000-000000000000. |
Content-Type | string | Sim (PATCH) | Sempre application/json nos endpoints PATCH. Não é necessário nos GET. |
https://app.directd.com.br/configuracoes/perfil.
O Token é exibido nessa página e pode ser copiado para uso em todas as chamadas desta API.
Todas as respostas estendem o envelope ResponseMetaDataDTO. Independente de sucesso ou
falha, o cliente sempre receberá os campos abaixo no corpo da resposta:
{
"success": true,
"status": "OK",
"elapsedTimeMs": 124,
"dateTimeExecution": "08/05/2026 14:32:15",
"error": null
}
| Campo | Tipo | Descrição |
|---|---|---|
success | bool | Indica se a operação foi bem sucedida (HTTP 2xx). |
status | string | Descrição textual do status HTTP retornado. |
elapsedTimeMs | long | Tempo total de processamento da requisição em milissegundos. |
dateTimeExecution | string | Data e hora em que a requisição foi executada no servidor. |
error | object | Objeto com fieldName e message em caso de erro. null em caso de sucesso. |
Usado como filtro no parâmetro status de GetMonitoredEntities e também
retornado nos campos status das listagens. Aceita o nome (ex: Available) ou
o número correspondente.
| Valor | Nome | Descrição |
|---|---|---|
1 | Available | Disponível — monitoramentos ativos e em dia. |
2 | Unavailable | Indisponível — última execução resultou em falha (ex: documento não encontrado, saldo insuficiente). |
3 | Paused | Pausada — pelo menos um monitoramento foi pausado pelo cliente. |
4 | Processing | Em processamento — execução em andamento. |
Retornado no campo status de GetLists:
| Valor | Descrição |
|---|---|
"Ativa" | Todos os monitoramentos da lista estão ativos. |
"Parcialmente Ativa" | Pelo menos um monitoramento da lista está ativo, mas outros estão pausados ou indisponíveis. |
"Pausada" | Todos os monitoramentos da lista foram pausados. |
"Inativada" | Lista encerrada — todos os monitoramentos chegaram ao fim do período de vigência. |
O fluxo padrão de uso da API combina os endpoints de descoberta (listas → entidades → APIs), consulta de eventos e controle (pause/resume), conforme o diagrama abaixo:
dateFrom e dateTo, quando
aceitos, suportam os formatos yyyyMMdd, yyyy-MM-dd,
yyyy/MM/dd, dd-MM-yyyy, dd/MM/yyyy,
ddMMyyyy e ISO 8601. Recomendamos yyyy-MM-dd para evitar ambiguidade.
Retorna todas as listas (lotes) de monitoramento da empresa autenticada. Sem paginação — devolve
todos os registros. Suporta filtros opcionais por listGuid (uma lista específica) e por
intervalo de criação (dateFrom / dateTo).
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
listGuid | Guid | Não | Filtra por uma lista específica. |
dateFrom | string | Não | Data inicial de criação da lista. |
dateTo | string | Não | Data final de criação da lista. |
GET /api/MonitorApp/GetLists?dateFrom=2026-01-01&dateTo=2026-05-31 HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
{
"success": true,
"status": "OK",
"elapsedTimeMs": 142,
"dateTimeExecution": "08/05/2026 14:32:15",
"error": null,
"lists": [
{
"listGuid": "a1b2c3d4-...",
"listName": "Fornecedores Críticos — 2026",
"entityCount": 48,
"apiCount": 5,
"createdDate": "12/01/2026",
"lastUpdated": "07/05/2026",
"status": "Parcialmente Ativa"
}
]
}
| Campo | Tipo | Descrição |
|---|---|---|
lists[] | array | Listas pertencentes à empresa autenticada. |
lists[].listGuid | Guid | Identificador da lista — usar nos endpoints de eventos por lista e pause/resume de lista. |
lists[].listName | string | Nome amigável da lista. |
lists[].entityCount | int | Quantidade de documentos distintos (CPFs/CNPJs) na lista. |
lists[].apiCount | int | Quantidade de APIs distintas monitoradas na lista. |
lists[].createdDate | string | Data de criação no formato dd/MM/yyyy. |
lists[].lastUpdated | string | Data da última atualização no formato dd/MM/yyyy. |
lists[].status | string | Status agregado: Ativa, Parcialmente Ativa, Pausada ou Inativada. |
Retorna todas as entidades (documentos CPF/CNPJ) monitoradas pela empresa autenticada. Sem
paginação. Suporta filtro opcional por status agregado.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
status | enum | Não | Filtra pelo status agregado. Aceita: Available (ou 1), Unavailable (ou 2), Paused (ou 3), Processing (ou 4). |
GET /api/MonitorApp/GetMonitoredEntities?status=Paused HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
{
"success": true,
"status": "OK",
"elapsedTimeMs": 168,
"dateTimeExecution": "08/05/2026 14:33:02",
"error": null,
"entities": [
{
"entityGuid": "b2c3d4e5-...",
"entityName": "EXEMPLO TECNOLOGIA LTDA",
"document": "12.345.678/0001-90",
"apiCount": 3,
"status": "Pausado",
"origin": "Fornecedores Críticos — 2026"
}
]
}
| Campo | Tipo | Descrição |
|---|---|---|
entities[] | array | Entidades monitoradas pela empresa autenticada. |
entities[].entityGuid | Guid | Identificador da entidade — usar em GetEntityApis, GetEntityEvents e nos endpoints de pause/resume de entidade. |
entities[].entityName | string | Razão Social ou Nome do documento. |
entities[].document | string | CPF ou CNPJ formatado. |
entities[].apiCount | int | Quantidade de APIs configuradas para a entidade. |
entities[].status | string | Status agregado: Disponível, Indisponível, Pausado ou Processando. |
entities[].origin | string | Individual (criada manualmente) ou nome da lista de origem. |
Retorna todas as APIs configuradas para uma entidade específica, com frequência, período de vigência, status atual e datas de execução. Sem paginação.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
entityGuid | Guid | Sim | EntityGuid retornado por GetMonitoredEntities. |
GET /api/MonitorApp/GetEntityApis?entityGuid=b2c3d4e5-... HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
{
"success": true,
"status": "OK",
"elapsedTimeMs": 95,
"dateTimeExecution": "08/05/2026 14:34:18",
"error": null,
"apis": [
{
"monitoringGuid": "c3d4e5f6-...",
"apiName": "Sintegra - ES",
"apiCategory": "Cadastro",
"origin": "Fornecedores Críticos — 2026",
"frequency": "Mensal",
"interval": 30,
"period": "1 ano",
"lastExecution": "01/05/2026",
"nextExecution": "31/05/2026",
"status": "Disponível",
"reason": null
}
]
}
| Campo | Tipo | Descrição |
|---|---|---|
apis[].monitoringGuid | Guid | Identificador do monitoramento — usar nos endpoints de pause/resume e detalhe. |
apis[].apiName | string | Nome legível da API consultada (ex: "Sintegra - ES"). |
apis[].apiCategory | string | Categoria da API (ex: "Cadastro", "Fiscal"). |
apis[].origin | string | Individual ou nome da lista de origem. |
apis[].frequency | string | Descrição da frequência: Semanal, Quinzenal, Mensal etc. |
apis[].interval | int | Intervalo em dias entre execuções. |
apis[].period | string | Período de vigência: 1 mês, 3 meses, 6 meses, 1 ano ou Indeterminado. |
apis[].lastExecution | string | Última execução no formato dd/MM/yyyy, ou null se ainda não executou. |
apis[].nextExecution | string | Próxima execução agendada no formato dd/MM/yyyy. |
apis[].status | string | Disponível, Indisponível, Pausado ou Processando. |
apis[].reason | string | Motivo do status quando aplicável (ex: "Saldo insuficiente", "Documento não encontrado"). |
Retorna a visão completa de um único monitoramento configurado: dados da entidade e da API, configuração (frequência, período), histórico de execuções e eventos detectados. É o endpoint recomendado quando o cliente precisa exibir uma "tela de detalhe" de um monitoramento.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monitoringGuid | Guid | Sim | MonitoringGuid retornado por GetEntityApis. |
GET /api/MonitorApp/GetMonitoringDetail?monitoringGuid=c3d4e5f6-... HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
{
"success": true,
"status": "OK",
"elapsedTimeMs": 215,
"dateTimeExecution": "08/05/2026 14:35:40",
"error": null,
"monitoringGuid": "c3d4e5f6-...",
"entityGuid": "b2c3d4e5-...",
"entityName": "EXEMPLO TECNOLOGIA LTDA",
"document": "12.345.678/0001-90",
"apiName": "Sintegra - ES",
"apiCategory": "Cadastro",
"origin": "Fornecedores Críticos — 2026",
"listGuid": "a1b2c3d4-...",
"frequency": "Mensal",
"interval": 30,
"period": "1 ano",
"startDate": "12/01/2026",
"endDate": "12/01/2027",
"lastExecution": "01/05/2026",
"nextExecution": "31/05/2026",
"status": "Disponível",
"reason": null,
"executionHistory": [
{ "executionDate": "01/05/2026, 03:12", "result": "Sem alteração", "status": "Sucesso" },
{ "executionDate": "01/04/2026, 03:08", "result": "Alteração detectada", "status": "Sucesso" },
{ "executionDate": "12/01/2026, 03:05", "result": "Primeira consulta", "status": "Sucesso" }
],
"events": [
{
"eventGuid": "d4e5f6a7-...",
"eventDescription": "Situação cadastral alterada de ATIVA para SUSPENSA",
"executionDate": "01/04/2026, 03:08"
}
]
}
| Campo | Tipo | Descrição |
|---|---|---|
monitoringGuid | Guid | Identificador do monitoramento. |
entityGuid | Guid | Identificador da entidade vinculada. |
entityName | string | Razão Social ou Nome. |
document | string | CPF ou CNPJ formatado. |
apiName | string | Nome legível da API. |
apiCategory | string | Categoria da API. |
origin | string | Individual ou nome da lista. |
listGuid | Guid | null quando o monitoramento não pertence a uma lista (criado individualmente). |
frequency / interval / period | — | Mesma semântica de GetEntityApis. |
startDate / endDate | string | Início e fim da vigência do monitoramento (dd/MM/yyyy). |
lastExecution / nextExecution | string | Mesma semântica de GetEntityApis. |
status / reason | string | Mesma semântica de GetEntityApis. |
executionHistory[]| Campo | Tipo | Descrição |
|---|---|---|
executionDate | string | Data e hora da execução no formato dd/MM/yyyy, HH:mm. |
result | string | Resultado: Alteração detectada, Sem alteração, Erro na execução, Primeira consulta. |
status | string | Status da execução: Sucesso, Falha, Processando ou Indisponível. |
events[]| Campo | Tipo | Descrição |
|---|---|---|
eventGuid | Guid | Identificador do evento. |
eventDescription | string | Descrição da alteração detectada. |
executionDate | string | Data e hora da execução que detectou o evento (dd/MM/yyyy, HH:mm). |
entityName nem
apiName, pois o contexto do monitoramento já está no bloco principal. Se você precisa
de eventos com contexto completo (ex: para construir um feed agregado), use
GetMonitoringEvents, GetEntityEvents
ou GetListEvents.
Retorna todos os eventos (alterações detectadas) de um único monitoramento, com filtro opcional por intervalo de execução. Útil para auditar o histórico de mudanças capturadas em uma API específica de uma entidade. Sem paginação.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monitoringGuid | Guid | Sim | Identificador do monitoramento. |
dateFrom | string | Não | Data inicial de execução do evento. |
dateTo | string | Não | Data final de execução do evento. |
GET /api/MonitorApp/GetMonitoringEvents?monitoringGuid=c3d4e5f6-...&dateFrom=2026-01-01 HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
{
"success": true,
"status": "OK",
"elapsedTimeMs": 88,
"dateTimeExecution": "08/05/2026 14:36:12",
"error": null,
"events": [
{
"eventGuid": "d4e5f6a7-...",
"entityGuid": "b2c3d4e5-...",
"entityName": "EXEMPLO TECNOLOGIA LTDA",
"apiName": "Sintegra - ES",
"apiCategory": "Cadastro",
"eventDescription": "Situação cadastral alterada de ATIVA para SUSPENSA",
"executionDate": "01/04/2026, 03:08"
}
]
}
events[]| Campo | Tipo | Descrição |
|---|---|---|
eventGuid | Guid | Identificador único do evento. |
entityGuid | Guid | Entidade vinculada ao evento. |
entityName | string | Razão Social ou Nome. |
apiName | string | Nome legível da API que gerou o evento. |
apiCategory | string | Categoria da API. |
eventDescription | string | Descrição da alteração detectada. |
executionDate | string | Data e hora da execução (dd/MM/yyyy, HH:mm). |
Retorna todos os eventos detectados em todos os monitoramentos de uma entidade, com filtro opcional por intervalo de execução. Útil para construir uma timeline consolidada de alterações de um documento. Sem paginação.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
entityGuid | Guid | Sim | Identificador da entidade. |
dateFrom | string | Não | Data inicial de execução do evento. |
dateTo | string | Não | Data final de execução do evento. |
GET /api/MonitorApp/GetEntityEvents?entityGuid=b2c3d4e5-... HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Estrutura da resposta idêntica a GetMonitoringEvents — o array
events[] agrega eventos de todas as APIs configuradas para a entidade no período
consultado.
Retorna todos os eventos detectados em todas as entidades de uma lista, com filtro opcional por intervalo de execução. É a visão mais ampla do produto — útil para gerar um relatório consolidado de alterações de um lote inteiro. Sem paginação.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
listGuid | Guid | Sim | Identificador da lista. |
dateFrom | string | Não | Data inicial de execução do evento. |
dateTo | string | Não | Data final de execução do evento. |
GET /api/MonitorApp/GetListEvents?listGuid=a1b2c3d4-...&dateFrom=2026-04-01&dateTo=2026-04-30 HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Estrutura da resposta idêntica a GetMonitoringEvents — o array
events[] agrega eventos de todas as entidades e APIs da lista no período consultado.
Os endpoints de pausa e retomada permitem suspender e religar a execução de monitoramentos em três
níveis de granularidade: por monitoramento individual, por entidade ou por lista. Todos retornam o
mesmo envelope ResponseAPIMonitorAppToggleDTO, com a quantidade de monitoramentos
afetados e uma mensagem descritiva.
Resume* equivalente.
{
"success": true,
"status": "OK",
"elapsedTimeMs": 95,
"dateTimeExecution": "08/05/2026 14:42:18",
"error": null,
"affectedCount": 3,
"summary": "3 monitoramento(s) pausado(s) com sucesso."
}
| Campo | Tipo | Descrição |
|---|---|---|
affectedCount | int | Quantidade de monitoramentos efetivamente afetados pela operação. |
summary | string | Mensagem descritiva do resultado. |
Pausa um único monitoramento de API configurada, identificado pelo monitoringGuid.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monitoringGuid | Guid | Sim | Identificador do monitoramento a ser pausado. |
PATCH /api/MonitorApp/PauseMonitoring HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"monitoringGuid": "c3d4e5f6-..."
}
Retoma um único monitoramento previamente pausado.
Idêntico a PauseMonitoring.
PATCH /api/MonitorApp/ResumeMonitoring HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"monitoringGuid": "c3d4e5f6-..."
}
Pausa todos os monitoramentos de uma entidade (CPF ou CNPJ). O campo
affectedCount da resposta indica quantos monitoramentos foram pausados.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
entityGuid | Guid | Sim | Identificador da entidade. |
PATCH /api/MonitorApp/PauseEntity HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"entityGuid": "b2c3d4e5-..."
}
Retoma todos os monitoramentos previamente pausados de uma entidade.
Idêntico a PauseEntity.
PATCH /api/MonitorApp/ResumeEntity HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"entityGuid": "b2c3d4e5-..."
}
Pausa todos os monitoramentos de uma lista (lote). O campo
affectedCount da resposta indica o total de monitoramentos afetados — somando todas
as APIs de todas as entidades da lista.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
listGuid | Guid | Sim | Identificador da lista. |
PATCH /api/MonitorApp/PauseList HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"listGuid": "a1b2c3d4-..."
}
Retoma todos os monitoramentos previamente pausados de uma lista.
Idêntico a PauseList.
PATCH /api/MonitorApp/ResumeList HTTP/1.1
Host: {base-url-directdata}
Token: 00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"listGuid": "a1b2c3d4-..."
}
Quando uma requisição falha, o envelope ResponseMetaDataDTO retorna o campo
error preenchido com o nome do campo problemático e a mensagem correspondente.
O campo success será false e o status HTTP refletirá o tipo de falha.
// Exemplo de resposta 401 Unauthorized (token inválido)
{
"success": false,
"status": "Unauthorized",
"elapsedTimeMs": 12,
"dateTimeExecution": "08/05/2026 14:40:01",
"error": {
"fieldName": "Token",
"message": "Token de acesso inválido. Verifique suas credenciais."
}
}
// Exemplo de resposta 404 Not Found (Guid não pertence à empresa)
{
"success": false,
"status": "Not Found",
"elapsedTimeMs": 28,
"dateTimeExecution": "08/05/2026 14:40:14",
"error": {
"fieldName": "monitoringGuid",
"message": "Monitoramento não encontrado para esta empresa."
}
}
Token está ausente, mal formado ou
não corresponde a uma empresa válida.monitoringGuid, entityGuid ou listGuid) não
existe ou não pertence à empresa autenticada.
GET /api/MonitorApp/GetLists · GET /api/MonitorApp/GetMonitoredEntities
| Código | Condição | Campo | Mensagem |
|---|---|---|---|
| 400 | Formato inválido em dateFrom ou dateTo / valor inválido em status | parâmetro | Parâmetro de consulta inválido. |
| 401 | Header Token ausente ou inválido | Token | Token de acesso inválido. Verifique suas credenciais. |
| 403 | Empresa sem o produto habilitado | Product | Produto não liberado para esta empresa. |
| 500 | Exceção não tratada no servidor | — | Erro inesperado ao processar a requisição. |
Endpoints GET que recebem um Guid obrigatório.
| Código | Condição | Campo | Mensagem |
|---|---|---|---|
| 400 | Guid ausente ou em formato inválido | parâmetro | Identificador inválido. |
| 404 | Guid informado não pertence à empresa autenticada | parâmetro | Recurso não encontrado para esta empresa. |
| 401 | Header Token ausente ou inválido | Token | Token de acesso inválido. Verifique suas credenciais. |
| 403 | Empresa sem o produto habilitado | Product | Produto não liberado para esta empresa. |
| 500 | Exceção não tratada no servidor | — | Erro inesperado ao processar a requisição. |
PauseMonitoring · ResumeMonitoring · PauseEntity · ResumeEntity · PauseList · ResumeList
| Código | Condição | Campo | Mensagem |
|---|---|---|---|
| 400 | Body inválido ou Guid ausente / mal formado | campo do body | Identificador inválido. |
| 404 | Guid informado não pertence à empresa autenticada | campo do body | Recurso não encontrado para esta empresa. |
| 401 | Header Token ausente ou inválido | Token | Token de acesso inválido. Verifique suas credenciais. |
| 403 | Empresa sem o produto habilitado | Product | Produto não liberado para esta empresa. |
| 500 | Exceção não tratada no servidor | — | Erro inesperado ao processar a requisição. |