1. Atividades
AgRisk
  • AgRisk
    • Documentação
      • AgRisk
    • API - AgRisk
      • Login
        • Atualizar token
        • Autenticar usuário
      • Consultas
        • Solicitar consulta
        • Listar consultas
        • Listar consultas da empresa
      • Listagem de Produtos
        • Listar produtos
      • Clientes
        • Listar clientes
        • Criar cliente
        • Listar contadores de clientes
        • Deletar cliente
        • Listar contadores de clientes no grupo
      • Dados Cadastrais
        • Buscar dados cadastrais
      • Grupos
        • Listar grupos
        • Criar grupo
        • Listar clientes em grupo
        • Criar cliente em grupo
        • Atualizar nome do grupo
        • Deletar grupo
        • Inserir cliente em grupo
        • Remover cliente de grupo
      • Análise de Matrícula
        • Listar análises de matrículas
        • Criar análise de matrícula
        • Buscar análise de matrícula
        • Deletar análise de matrícula
      • Contatos
        • Listar contatos
      • BNDES
        • Listar BNDES
      • Boa Vista
        • Listar Boa Vista
      • Compliance
        • Listar compliance
      • CPRs
        • Listar CPRs
        • Buscar CPR
      • Grupo econômico
        • familiar
          • Listar grupo econômico
          • Listar grupo familiar
      • Imposto de Renda
        • Criar ativo financeiro
        • Listar ativos financeiros
        • Criar dívida
        • Importar dívidas
        • Listar dívidas
        • Atualizar dívida
        • Deletar dívida
        • Criar ativo móvel
        • Listar ativos móveis
        • Atualizar ativo móvel
        • Deletar ativo móvel
        • Criar imóvel urbano
        • Listar imóveis urbanos
        • Atualizar imóvel urbano
        • Deletar imóvel urbano
      • Judicial
        • Listar processos judiciais
        • Buscar processo judicial
        • Solicitar análise por IA
      • Protestos
        • Listar protestos
      • Imóveis Rurais - Simples
        • Criar imóvel rural
        • Listar imóveis rurais
        • Buscar imóvel rural
      • Endividamento
        • Listar SCR (endividamento)
      • Imóveis Rurais - CAR
        • Listar CAR (Cadastro Ambiental Rural)
        • Buscar CAR
        • Deletar CAR
        • Criar CAR
        • Download certidão CAR
      • QUOD
        • Buscar Quod
      • Restritivo Nacional
        • Buscar Restritivo Nacional
      • Veicular
        • Buscar Patrimônio Veicular
      • Sintegra
        • Listar Sintegras
    • APIs
    • Raiz
    • Esquemas
      • API Requests
        • ClientResponse
  • AgFlow
    • 🇧🇷 Português
      • Aprovação
        • Aprovação — Visão Geral
        • Consultar configuração de aprovação
        • Criar configuração de aprovação
        • Atualizar configuração de aprovação
        • Adicionar regra de aprovação
        • Atualizar regra de aprovação
        • Remover configuração de aprovação
        • Consultar aprovação do card
        • Registrar voto de aprovação
        • Atualizar voto de aprovação
      • Fluxo
        • Fluxo — Visão Geral
        • Verificar disponibilidade
        • Criar fluxo
        • Listar fluxos
        • Obter fluxo
        • Atualizar fluxo
        • Remover fluxo
        • Adicionar usuário ao fluxo
        • Remover usuário do fluxo
        • Listar caminhos de campos dinâmicos
      • Consulta a Bureau
        • Consulta a Bureau — Visão Geral
        • Obter configuração de consulta a bureau
        • Criar configuração de consulta a bureau
        • Atualizar configuração de consulta a bureau
      • Campos
        • Campos — Visão Geral
        • Listar campos da fase
        • Atualizar campos da fase
        • Atualizar regras de campos da fase
      • Conversa
        • Conversa — Visão Geral
        • Obter configuração de conversa
        • Criar configuração de conversa
        • Remover configuração de conversa
      • Motores
        • Motores — Visão Geral
        • Consultar resultado do motor de decisão do card
        • Executar motor de decisão no card
        • Consultar inputs do motor de crédito para o card
        • Consultar resultado do motor de crédito do card
        • Executar motor de crédito no card
        • Consultar configuração do motor de decisão
        • Criar configuração do motor de decisão
        • Atualizar configuração do motor de decisão
        • Remover configuração do motor de decisão
        • Consultar detalhe da configuração do motor de crédito
        • Criar configuração do motor de crédito
        • Listar configurações do motor de crédito do flow
        • Listar políticas de crédito aplicáveis a um card
        • Atualizar configuração do motor de crédito
        • Remover configuração do motor de crédito
      • Parecer
        • Parecer — Visão Geral
        • Consultar configuração do parecer técnico
        • Criar configuração do parecer técnico
        • Atualizar configuração do parecer técnico
        • Consultar parecer registrado no card
        • Registrar parecer no card
        • Atualizar parecer no card
      • Formulário Inicial
        • Formulário Inicial — Visão Geral
        • Criar formulário inicial
        • Definir regras condicionais do formulário
        • Atualizar metadados do formulário
        • Consultar formulário inicial
        • Consultar formulário público
        • Atualizar campos do formulário
        • Remover formulário inicial
      • Filtros
        • Filtros — Visão Geral
        • Listar filtros salvos
        • Criar filtro salvo
        • Atualizar filtro salvo
        • Buscar cards do flow
        • Busca global de cards
      • AgRisk
        • AgRisk — Visão Geral
        • Listar produtos de consulta AgRisk
      • Gatilhos
        • Gatilhos — Visão Geral
        • Listar gatilhos do flow
        • Criar gatilho
        • Atualizar gatilho
        • Remover gatilho
        • Listar gatilhos da fase
      • Autenticação
        • Autenticação — Visão Geral
        • Autenticar usuário
      • Mensageria
        • Mensageria — Visão Geral
        • Configurar telefone
        • Consultar configuração de mensageria
        • Criar configuração de mensageria
        • Atualizar configuração de mensageria
        • Criar regras de mensageria
        • Atualizar regra de mensageria
        • Remover configuração de mensageria
      • Empresas e Papéis
        • Empresas e Papéis — Visão Geral
        • Listar usuários da empresa
        • Listar papéis da empresa
        • Atualizar papel
        • Listar catálogo de permissões
        • Criar papel
        • Gerar URL de upload do logotipo
        • Gerar URL de download do logotipo
        • Atribuir papéis a um usuário
      • Documentos
        • Documentos — Visão Geral
        • Criar configuração de geração automática de documento
        • Remover configuração de geração automática de documento
        • Consultar configuração de geração automática de documento
        • Atualizar configuração de geração automática de documento
        • Consultar campos para geração do documento
        • Gerar documento a partir de template
        • Consultar template por ID
        • Listar templates do card
        • Ativar template
        • Criar template de documento
        • Remover template
        • Listar templates
        • Definir campos do template
        • Configurar regras condicionais do template
        • Atualizar arquivo do template
      • Cards
        • Cards — Visão Geral
        • Listar cards de uma fase
        • Mover card de fase
        • Criar card
        • Listar cards do flow
        • Criar card via link público
        • Buscar cards
        • Obter card
        • Atualizar card
        • Atualizar responsável do card
        • Atualizar campos via link público
        • Atualizar campos de fase do card
        • Remover cards em lote
        • Atualizar Ficha Cadastral do card
        • Obter responsável do card
        • Listar etiquetas do card
        • Listar campos de uma fase do card
        • Listar campos de uma fase do card (link público)
        • Obter histórico do card
        • Listar clientes do card
        • Criar comentário no card
        • Listar comentários do card
        • Remover comentário do card
        • Listar anexos do card
        • Cadastrar anexo no card
        • Remover anexo do card
        • Remover vínculo do anexo com campo de fase
        • Adicionar membros ao grupo do card
        • Remover membro do grupo do card
      • Configuração de Cliente
        • Configuração de Cliente — Visão Geral
        • Obter configuração de cliente por empresa
        • Criar configuração de cliente
        • Atualizar configuração de cliente
        • Obter configuração de cliente
        • Remover configuração de cliente
        • Listar seções
        • Criar seções
        • Obter seção
        • Atualizar seção
        • Atualizar seção parcialmente
        • Remover seção
        • Listar campos
        • Criar campos
        • Obter campo
        • Atualizar campo
        • Atualizar campo parcialmente
        • Remover campo
        • Listar regras
        • Criar regra
        • Obter regra
        • Atualizar regra
        • Atualizar regra parcialmente
        • Remover regra
      • Fase
        • Fase — Visão Geral
        • Criar ação de fase
        • Criar fase
        • Remover ação de fase
        • Remover fase
        • Listar ações da fase
        • Listar fases
        • Atualizar ação de fase
        • Atualizar fase
    • 🇺🇸 English
      • Phase
        • Phase — Overview
        • Create phase action
        • Create phase
        • Delete phase action
        • Delete phase
        • List phase actions
        • List phases
        • Update phase action
        • Update phase
      • Approval
        • Approval — Overview
        • Get approval configuration
        • Create approval configuration
        • Update approval configuration
        • Add approval rule
        • Update approval rule
        • Delete approval configuration
        • Get card approval
        • Register approval vote
        • Update approval vote
      • Flow
        • Flow — Overview
        • Health check
        • Create flow
        • List flows
        • Get flow
        • Update flow
        • Delete flow
        • Add user to flow
        • Remove user from flow
        • List dynamic field paths
      • Bureau Query
        • Bureau Query — Overview
        • Get bureau query configuration
        • Create bureau query configuration
        • Update bureau query configuration
      • Fields
        • Fields — Overview
        • List phase fields
        • Update phase fields
        • Update phase field rules
      • Engines
        • Engines — Overview
        • Get card decision engine result
        • Run card decision engine
        • Get card credit engine inputs
        • Get card credit engine result
        • Run card credit engine
        • Get decision engine configuration
        • Create decision engine configuration
        • Update decision engine configuration
        • Delete decision engine configuration
        • Get credit engine configuration detail
        • Create credit engine configuration
        • List flow credit engine configurations
        • List credit policies applicable to a card
        • Update credit engine configuration
        • Delete credit engine configuration
      • Conversation
        • Conversation — Overview
        • Get conversation configuration
        • Create conversation configuration
        • Delete conversation configuration
      • Opinion
        • Opinion — Overview
        • Get opinion configuration
        • Create opinion configuration
        • Update opinion configuration
        • Get card opinion
        • Create card opinion
        • Update card opinion
      • Start Form
        • Start Form — Overview
        • Create start form
        • Set start form conditional rules
        • Update start form metadata
        • Get start form
        • Get public start form
        • Update start form fields
        • Delete start form
      • Filters
        • Filters — Overview
        • List saved filters
        • Create saved filter
        • Update saved filter
        • Search flow cards
        • Search cards across flows
      • AgRisk
        • AgRisk — Overview
        • List AgRisk query products
      • Triggers
        • Triggers — Overview
        • List flow triggers
        • Create trigger
        • Update trigger
        • Delete trigger
        • List phase triggers
      • Authentication
        • Authentication — Overview
        • Authenticate user
      • Messaging
        • Messaging — Overview
        • Configure phone
        • Get messaging config
        • Create messaging config
        • Update messaging config
        • Create messaging rules
        • Update messaging rule
        • Delete messaging config
      • Companies & Roles
        • Companies & Roles — Overview
        • List company users
        • List company roles
        • Update role
        • List permissions catalog
        • Create role
        • Generate company logo upload URL
        • Generate company logo download URL
        • Assign roles to a user
      • Documents
        • Documents — Overview
        • Create automatic document configuration
        • Delete automatic document configuration
        • Get automatic document configuration
        • Update automatic document configuration
        • Get fields for document generation
        • Generate document from template
        • Get template by ID
        • List card templates
        • Activate template
        • Create document template
        • Delete template
        • List templates
        • Set template fields
        • Configure template conditional rules
        • Update template file
      • Cards
        • Cards — Overview
        • List cards in a phase
        • Move card to another phase
        • Create card
        • List flow cards
        • Create card via public link
        • Search cards
        • Get card
        • Update card
        • Update card assignee
        • Update fields via public link
        • Update card phase fields
        • Delete cards in bulk
        • Update card registration record
        • Get card assignee
        • List card labels
        • List card phase fields
        • List card phase fields (public link)
        • Get card history
        • List card clients
        • Create card comment
        • List card comments
        • Delete card comment
        • List card attachments
        • Register card attachment
        • Delete card attachment
        • Delete attachment's phase-field link
        • Add members to card group
        • Remove card group member
      • Client Configuration
        • Client Configuration — Overview
        • Get client configuration by company
        • Create client configuration
        • Update client configuration
        • Get client configuration
        • Delete client configuration
        • List sections
        • Create sections
        • Get section
        • Update section
        • Partially update section
        • Delete section
        • List fields
        • Create fields
        • Get field
        • Update field
        • Partially update field
        • Delete field
        • List rules
        • Create rule
        • Get rule
        • Update rule
        • Partially update rule
        • Delete rule
    • 💼 Visão de Negócio
      • Fase
      • Fluxo
      • Campos — Visão de Negócio
      • Aprovação
      • Parecer
      • Motores
      • Empresas e Papéis
      • Gatilhos
      • Conversa
      • Documentos
      • Mensageria
      • Filtros
      • Autenticação
      • Configuração de Cliente
      • Cards
      • AgRisk
      • Formulário Inicial
      • Consulta a Bureau
    • 💼 Business Overview
      • Phase
      • Flow
      • Approval
      • Fields — Business Overview
      • Opinion
      • Engines
      • Companies & Roles
      • Documents
      • Triggers
      • Messaging
      • Conversation
      • Filters
      • Authentication
      • Client Configuration
      • Cards
      • AgRisk
      • Start Form
      • Bureau Query
  • Portfolio
    • Documentação
      • Empresa
      • Gestão de portfolio
        • Análise geral
        • Dicionário de campos base (Necessário validar)
        • [Desatualizado]Fluxo de funcionamento
        • Carteiras
          • Gestão da carteira
        • Contratos
          • Contratos
          • Template Contratos
        • Pagamentos
          • Pagamentos
        • Baixas
          • Baixas
        • Clientes
          • Devedores e credores (Participantes)
          • Informações dos clientes
        • Importação de dados
          • Importação de dados
        • Garantia
          • Colaterais
      • Gestão de Cobrança
        • Régua de cobrança
          • Regras da régua por empresa
        • Atividades
          • Regras das Atividades
  1. Atividades

Regras das Atividades

Atividades — Regras de Negócio#

1. Conceito#

A Atividade (Activity) é o registro de uma ação operacional a ser realizada pelo time de cobrança. Representa tarefas como ligações, e-mails, reuniões e outras interações vinculadas a contratos e títulos da carteira. É a unidade de trabalho do time de cobrança e o principal instrumento de rastreabilidade das interações com clientes devedores.
Atividades podem ser criadas de duas formas:
Criação automática — geradas pelo motor de execução das réguas de cobrança quando uma etapa com actionType = ACTIVITY é disparada (ver ReguasCobranca.md). A atividade herda o title, description, priority e activityType configurados no actionConfig da etapa.
Criação manual — registradas pelo usuário via interface ou API. Útil para ações ad-hoc fora do fluxo automático da régua (ex: contato de follow-up, reunião presencial, negociação de acordo).

1.1. Relação com outros módulos#

A atividade é vinculada obrigatoriamente a um contrato e opcionalmente a um título específico. Através do contrato, o sistema resolve o cliente devedor, o que permite exibir o contexto financeiro (valor em aberto, dias de atraso) diretamente na atividade.
A atividade também é o elo entre a régua de cobrança e o histórico de interações do cliente:
Régua de Cobrança → (dispara etapa) → Atividade → (registra em) → Histórico de Interações do Cliente

2. Estruturas de Dados#

2.1. Activity#

CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único da atividade.
companyIdUUIDSimEmpresa à qual a atividade pertence.
contractIdUUIDSimContrato vinculado.
receivableIdUUIDNãoTítulo específico vinculado. null quando a atividade é sobre o contrato como um todo.
clientIdUUIDSimCliente devedor. Desnormalizado a partir do contrato para facilitar consultas e filtros.
typeEnumSimTipo da atividade: CALL, EMAIL, MEETING, OTHER.
typeDescriptionStringCondicionalDescrição livre quando type = OTHER. Obrigatório nesse caso.
titleStringSimTítulo da atividade (ex: "Ligar para negociar acordo de pagamento").
descriptionStringNãoDescrição detalhada ou instrução para o responsável.
priorityEnumSimPrioridade: LOW, MEDIUM, HIGH.
statusEnumSimStatus da atividade: PENDING, SCHEDULED, OVERDUE, COMPLETED, CANCELLED.
sourceEnumSimOrigem: MANUAL (criada pelo usuário) ou COLLECTION_RULE (gerada por régua de cobrança).
collectionRuleIdUUIDNãoRégua que gerou a atividade. Preenchido quando source = COLLECTION_RULE.
collectionStepIdUUIDNãoEtapa da régua que gerou a atividade. Preenchido quando source = COLLECTION_RULE.
assignedToUUIDNãoUsuário responsável pela execução da atividade. null se não atribuída.
dueDateDateSimData limite para conclusão da atividade.
dueTimeTimeNãoHora agendada para a atividade (ex: 10:00). null quando sem horário definido.
completedAtDateTimeNãoData e hora da conclusão. Preenchido ao mover para COMPLETED.
completedByUUIDNãoUsuário que concluiu a atividade.
outcomeEnumNãoResultado da interação ao concluir. Opcional. Ver seção 2.2.
outcomeNotesStringNãoObservações livres sobre o resultado da interação.
cancelledAtDateTimeNãoData de cancelamento.
cancelledByUUIDNãoUsuário que cancelou.
cancellationReasonStringNãoMotivo do cancelamento.
notesStringNãoObservações gerais sobre a atividade (visíveis antes da conclusão).
createdByUUIDSimUsuário que criou (manual) ou sistema (automática).
createdAtDateTimeSimData de criação.
updatedAtDateTimeSimData da última atualização.

2.2. Outcome (resultado da interação)#

Enum opcional preenchido ao concluir a atividade. Permite classificar o resultado para relatórios e análise de efetividade.
ValorLabelDescrição
CONTACT_MADEContato realizadoCliente foi contactado com sucesso.
NO_ANSWERNão atendeuTentativa de contato sem resposta.
PAYMENT_PROMISEPromessa de pagamentoCliente prometeu pagar até uma data específica.
AGREEMENT_PROPOSEDProposta de acordoProposta de renegociação enviada ao cliente.
AGREEMENT_FORMALIZEDAcordo formalizadoAcordo de pagamento/renegociação formalizado.
PAYMENT_CONFIRMEDPagamento confirmadoCliente informou que pagamento já foi efetuado.
DISPUTEContestaçãoCliente contestou o débito ou os valores.
WRONG_CONTACTContato incorretoDados de contato do cliente estão incorretos/desatualizados.
OTHEROutroResultado não classificado nas opções anteriores. Usar outcomeNotes para detalhar.

2.3. Ciclo de vida da atividade#

PENDING ──► SCHEDULED ──► COMPLETED
   │            │
   │            ├──► OVERDUE ──► COMPLETED
   │            │           └──► CANCELLED
   │            └──► CANCELLED
   ├──► OVERDUE ──► COMPLETED
   │           └──► CANCELLED
   └──► CANCELLED
TransiçãoTipoDescrição
PENDING → SCHEDULEDManualAtividade atribuída a um usuário e/ou com dueTime definido.
PENDING → OVERDUEAutomática (job)dueDate ultrapassado sem conclusão.
PENDING → COMPLETEDManualConcluída diretamente sem passar por agendamento.
PENDING → CANCELLEDManualCancelada antes da execução.
SCHEDULED → COMPLETEDManualAtividade executada e concluída.
SCHEDULED → OVERDUEAutomática (job)dueDate ultrapassado sem conclusão.
SCHEDULED → CANCELLEDManualCancelada.
OVERDUE → COMPLETEDManualConcluída com atraso.
OVERDUE → CANCELLEDManualCancelada após atraso.
A transição PENDING → SCHEDULED ocorre automaticamente quando a atividade é atualizada com assignedTo e/ou dueTime. Atividades criadas já com esses campos nascem diretamente como SCHEDULED.

2.4. ActivitySummary (indicadores da listagem)#

Objeto retornado no endpoint de listagem como header de contadores.
CampoTipoDescrição
totalCountIntegerTotal de atividades no escopo do filtro aplicado.
pendingCountIntegerAtividades com status = PENDING.
scheduledCountIntegerAtividades com status = SCHEDULED.
completedCountIntegerAtividades com status = COMPLETED.
overdueCountIntegerAtividades com status = OVERDUE.
cancelledCountIntegerAtividades com status = CANCELLED.

2.5. Contexto financeiro na atividade (campos enriquecidos)#

Para exibição na interface, os endpoints de listagem e detalhe retornam campos enriquecidos calculados a partir do contrato e título vinculados:
CampoTipoDescrição
clientNameStringNome do cliente devedor.
clientDocumentStringCPF/CNPJ do cliente.
clientEmailStringE-mail do cliente.
clientPhoneStringTelefone do cliente.
contractCodeStringCódigo do contrato vinculado.
receivableCodeStringCódigo do título vinculado. null se sem título específico.
clientOpenAmountDecimalValor total em aberto do cliente na carteira.
receivableOverdueDaysIntegerDias em atraso do título vinculado. null se sem título ou título não vencido.
activityOverdueDaysIntegerDias de atraso da atividade (diferença entre data atual e dueDate). 0 se não atrasada.

3. Regras de Negócio#

Criação#

RN-ACT-001: Vínculo obrigatório com contrato
Toda atividade deve estar vinculada a um contrato existente via contractId. O contrato deve pertencer à mesma empresa. O clientId é resolvido automaticamente a partir do contrato. Erro: CONTRACT_NOT_FOUND.
RN-ACT-002: Vínculo opcional com título
O receivableId, quando informado, deve pertencer ao contrato vinculado. Erro: RECEIVABLE_NOT_FOUND ou RECEIVABLE_CONTRACT_MISMATCH.
RN-ACT-003: Criação por régua de cobrança
Quando a atividade é criada pelo motor de execução da régua, o sistema preenche automaticamente source = COLLECTION_RULE, collectionRuleId, collectionStepId, e os campos title, description, priority, type a partir do actionConfig da etapa. As variáveis de template ({{clientName}}, {{contractCode}}, etc.) são resolvidas no momento da criação. O dueDate é calculado como data do disparo + dueDaysAfterTrigger configurado na etapa.
RN-ACT-004: Status inicial
Atividades criadas com assignedTo e/ou dueTime preenchidos nascem com status = SCHEDULED. Atividades sem esses campos nascem como PENDING.
RN-ACT-005: Atribuição a usuário
O assignedTo deve ser um usuário tenant da mesma empresa. Quando não informado na criação, a atividade fica não atribuída (PENDING) e pode ser atribuída posteriormente via PATCH. Erro: USER_NOT_FOUND.

Ciclo de vida#

RN-ACT-006: Transição automática para OVERDUE
O sistema move automaticamente atividades com status = PENDING ou SCHEDULED para OVERDUE quando a data atual ultrapassar dueDate. Executado por job diário — o mesmo job que processa títulos e contratos.
RN-ACT-007: Conclusão da atividade
A transição para COMPLETED é sempre manual (via endpoint PATCH /status). O campo outcome é opcional mas recomendado — permite classificar o resultado da interação para análise de efetividade. O campo outcomeNotes permite detalhar o resultado em texto livre. Os campos completedAt e completedBy são preenchidos automaticamente.
RN-ACT-008: Cancelamento
A transição para CANCELLED é permitida de qualquer status exceto COMPLETED. O campo cancellationReason é opcional mas recomendado. Atividades geradas por régua de cobrança que são canceladas registram o cancelamento no CollectionStepExecution — o log de execução da régua permanece com status = SUCCESS (a atividade foi criada com sucesso; o cancelamento é posterior).
RN-ACT-009: Reagendamento
A dueDate e dueTime podem ser alterados via PATCH enquanto a atividade estiver em PENDING, SCHEDULED ou OVERDUE. Reagendar uma atividade OVERDUE com uma data futura move-a de volta para SCHEDULED. O histórico de reagendamentos é registrado no ActivityHistory.

Edição#

RN-ACT-010: Campos editáveis
Os seguintes campos podem ser alterados via PATCH enquanto a atividade não estiver COMPLETED ou CANCELLED: title, description, priority, type, typeDescription, assignedTo, dueDate, dueTime, notes, receivableId.
RN-ACT-011: Atividades concluídas e canceladas são imutáveis
Atividades com status = COMPLETED ou CANCELLED não podem ser editadas. Erro: ACTIVITY_IMMUTABLE.

Exclusão#

RN-ACT-012: Exclusão lógica
Atividades nunca são deletadas fisicamente. Encerramento via COMPLETED ou CANCELLED.

4. Padrão de Erros#

Erros comuns herdados#

Todos os erros de autenticação, autorização e servidor seguem Carteiras.md.

Códigos de erro específicos#

StatusCódigoDescrição
404 Not FoundACTIVITY_NOT_FOUNDAtividade não encontrada ou não pertence à empresa.
404 Not FoundCONTRACT_NOT_FOUNDContrato vinculado não encontrado ou não pertence à empresa.
404 Not FoundRECEIVABLE_NOT_FOUNDTítulo vinculado não encontrado.
422 Unprocessable EntityRECEIVABLE_CONTRACT_MISMATCHO título informado não pertence ao contrato vinculado.
422 Unprocessable EntityMISSING_TYPE_DESCRIPTIONtype = OTHER sem typeDescription.
422 Unprocessable EntityINVALID_STATUS_TRANSITIONTransição de status não permitida.
422 Unprocessable EntityACTIVITY_IMMUTABLEAtividade em status final (COMPLETED, CANCELLED).
422 Unprocessable EntityUSER_NOT_FOUNDassignedTo não é um usuário válido da empresa.
422 Unprocessable EntityINVALID_DUE_DATEdueDate é anterior à data atual na criação.

5. Endpoints#

5.1. Criar Atividade#

POST /v2/companies/:companyId/portfolio/activities#

Cria uma nova atividade manual.
Permissão requerida: activity:create
Request body:
{
  "contractId": "b9d3f1aa-22cc-4e72-b430-1e45a3d6e001",
  "receivableId": "r1a2b3c4-0000-0000-0000-000000000001",
  "type": "CALL",
  "title": "Ligar para negociar acordo de pagamento",
  "description": "Cliente possui 2 títulos em atraso totalizando R$ 85.000. Verificar possibilidade de acordo com desconto.",
  "priority": "HIGH",
  "assignedTo": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "dueDate": "2025-01-15",
  "dueTime": "10:00",
  "notes": null
}
Response 201 Created:
{
  "id": "act1a2b3c4-0000-0000-0000-000000000001",
  "companyId": "a1b2c3d4-0000-0000-0000-000000000001",
  "contractId": "b9d3f1aa-22cc-4e72-b430-1e45a3d6e001",
  "receivableId": "r1a2b3c4-0000-0000-0000-000000000001",
  "clientId": "a3f1c2d4-0000-0000-0000-000000000010",
  "type": "CALL",
  "typeDescription": null,
  "title": "Ligar para negociar acordo de pagamento",
  "description": "Cliente possui 2 títulos em atraso totalizando R$ 85.000. Verificar possibilidade de acordo com desconto.",
  "priority": "HIGH",
  "status": "SCHEDULED",
  "source": "MANUAL",
  "collectionRuleId": null,
  "collectionStepId": null,
  "assignedTo": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "dueDate": "2025-01-15",
  "dueTime": "10:00",
  "completedAt": null,
  "completedBy": null,
  "outcome": null,
  "outcomeNotes": null,
  "cancelledAt": null,
  "cancelledBy": null,
  "cancellationReason": null,
  "notes": null,
  "createdBy": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "createdAt": "2025-01-14T09:00:00Z",
  "updatedAt": "2025-01-14T09:00:00Z",
  "clientName": "Agropecuária Horizonte",
  "clientDocument": "12.345.678/0001-90",
  "clientEmail": "contato@agrohorizonte.com.br",
  "clientPhone": "(11) 99999-9999",
  "contractCode": "CT-2024-002",
  "receivableCode": "NF-001",
  "clientOpenAmount": 85000.00,
  "receivableOverdueDays": 10,
  "activityOverdueDays": 0
}
Erros específicos:
StatusCódigo
404CONTRACT_NOT_FOUND
404RECEIVABLE_NOT_FOUND
422RECEIVABLE_CONTRACT_MISMATCH
422MISSING_TYPE_DESCRIPTION
422USER_NOT_FOUND
422INVALID_DUE_DATE

5.2. Listar Atividades#

GET /v2/companies/:companyId/portfolio/activities#

Lista as atividades da carteira com indicadores de resumo, filtros e paginação.
Permissão requerida: activity:read
Query params:
ParâmetroTipoObrigatórioDescrição
searchStringNãoBusca por nome do cliente, código do contrato ou descrição da atividade.
statusEnum (multi)NãoFiltrar por status. Aceita múltiplos valores.
typeEnum (multi)NãoFiltrar por tipo: CALL, EMAIL, MEETING, OTHER.
priorityEnum (multi)NãoFiltrar por prioridade: LOW, MEDIUM, HIGH.
sourceEnumNãoFiltrar por origem: MANUAL, COLLECTION_RULE.
assignedToUUIDNãoFiltrar por usuário responsável.
clientIdUUIDNãoFiltrar por cliente.
contractIdUUIDNãoFiltrar por contrato.
dueDateStartDate (ISO)NãoAtividades com dueDate >= esta data.
dueDateEndDate (ISO)NãoAtividades com dueDate <= esta data.
sortByEnumNãoOrdenação: dueDate, priority, createdAt, clientName. Default: dueDate.
sortOrderEnumNãoasc ou desc. Default: asc.
pageIntegerNãoDefault: 1.
pageSizeIntegerNãoDefault: 20. Máximo: 100.
Response 200 OK:
{
  "summary": {
    "totalCount": 8,
    "pendingCount": 5,
    "scheduledCount": 2,
    "completedCount": 1,
    "overdueCount": 5,
    "cancelledCount": 0
  },
  "data": [
    {
      "id": "act1a2b3c4-0000-0000-0000-000000000001",
      "contractId": "b9d3f1aa-22cc-4e72-b430-1e45a3d6e001",
      "receivableId": "r1a2b3c4-0000-0000-0000-000000000001",
      "clientId": "a3f1c2d4-0000-0000-0000-000000000010",
      "type": "CALL",
      "title": "Ligar para negociar acordo de pagamento",
      "description": "Cliente possui 2 títulos em atraso totalizando R$ 85.000.",
      "priority": "HIGH",
      "status": "SCHEDULED",
      "source": "COLLECTION_RULE",
      "assignedTo": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "assignedToName": "João Silva",
      "dueDate": "2025-01-15",
      "dueTime": "10:00",
      "outcome": null,
      "createdAt": "2025-01-14T09:00:00Z",
      "clientName": "Agropecuária Horizonte",
      "clientDocument": "12.345.678/0001-90",
      "clientEmail": "contato@agrohorizonte.com.br",
      "clientPhone": "(11) 99999-9999",
      "contractCode": "CT-2024-002",
      "receivableCode": "NF-001",
      "clientOpenAmount": 85000.00,
      "receivableOverdueDays": 10,
      "activityOverdueDays": 0
    },
    {
      "id": "act1a2b3c4-0000-0000-0000-000000000002",
      "contractId": "c7e2a1bb-33dd-4f83-c541-2f56b4e7f999",
      "receivableId": null,
      "clientId": "b4g2d3e5-0000-0000-0000-000000000020",
      "type": "EMAIL",
      "title": "Enviar proposta de renegociação",
      "description": null,
      "priority": "LOW",
      "status": "PENDING",
      "source": "MANUAL",
      "assignedTo": null,
      "assignedToName": null,
      "dueDate": "2025-01-15",
      "dueTime": "14:00",
      "outcome": null,
      "createdAt": "2025-01-14T10:00:00Z",
      "clientName": "João Silva",
      "clientDocument": "123.456.789-00",
      "clientEmail": "joao.silva@email.com",
      "clientPhone": "(11) 97777-6666",
      "contractCode": "CT-2024-005",
      "receivableCode": null,
      "clientOpenAmount": 85000.00,
      "receivableOverdueDays": null,
      "activityOverdueDays": 0
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 20,
    "nextPage": false
  }
}
O summary é calculado sobre todos os registros que atendem aos filtros aplicados (não apenas a página atual), permitindo que a interface exiba os cards de contadores.

5.3. Detalhe da Atividade#

GET /v2/companies/:companyId/portfolio/activities/:activityId#

Retorna o detalhe completo de uma atividade.
Permissão requerida: activity:read
Response 200 OK: Mesmo formato da resposta do POST (seção 5.1), com todos os campos preenchidos.

5.4. Atualizar Atividade#

PATCH /v2/companies/:companyId/portfolio/activities/:activityId#

Atualiza campos editáveis da atividade. Permitido apenas para atividades com status != COMPLETED e status != CANCELLED.
Permissão requerida: activity:update
Campos editáveis: title, description, priority, type, typeDescription, assignedTo, dueDate, dueTime, receivableId, notes.
Request body (exemplo — reagendar e reatribuir):
{
  "assignedTo": "e4a5b6c7-7g99-6b05-e763-4178d6g9h334",
  "dueDate": "2025-01-20",
  "dueTime": "09:00",
  "notes": "Reagendada — responsável anterior em férias."
}
Quando uma atividade OVERDUE é reagendada com dueDate futura, o status transita automaticamente para SCHEDULED.
Response 200 OK: Retorna a atividade atualizada.
Erros específicos:
StatusCódigo
422ACTIVITY_IMMUTABLE
422USER_NOT_FOUND
422RECEIVABLE_CONTRACT_MISMATCH

5.5. Alterar Status da Atividade#

PATCH /v2/companies/:companyId/portfolio/activities/:activityId/status#

Executa transição de status manual. Usado para concluir ou cancelar atividades.
Permissão requerida: activity:update
Request body — concluir com resultado:
{
  "status": "COMPLETED",
  "outcome": "PAYMENT_PROMISE",
  "outcomeNotes": "Cliente informou que efetuará pagamento via PIX até 20/01. Valor acordado: R$ 85.000 sem desconto."
}
Request body — concluir sem resultado (apenas marcar como feita):
{
  "status": "COMPLETED"
}
Request body — cancelar:
{
  "status": "CANCELLED",
  "cancellationReason": "Título foi pago antes da atividade ser executada."
}
Response 200 OK:
{
  "id": "act1a2b3c4-0000-0000-0000-000000000001",
  "status": "COMPLETED",
  "outcome": "PAYMENT_PROMISE",
  "outcomeNotes": "Cliente informou que efetuará pagamento via PIX até 20/01.",
  "completedAt": "2025-01-15T10:30:00Z",
  "completedBy": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "updatedAt": "2025-01-15T10:30:00Z"
}
Erros específicos:
StatusCódigo
422INVALID_STATUS_TRANSITION
422ACTIVITY_IMMUTABLE

5.6. Exportar Atividades#

GET /v2/companies/:companyId/portfolio/activities/export#

Exporta a listagem de atividades em CSV ou XLSX. Respeita os mesmos filtros da listagem.
Permissão requerida: activity:read
Query params: Mesmos filtros do GET /activities, acrescidos de:
ParâmetroTipoObrigatórioDescrição
formatEnumSimCSV ou XLSX.
Response 200 OK: Arquivo binário.

6. Permissões RBAC#

O módulo de Atividades adiciona o seguinte resource ao catálogo RBAC:
ResourceDomínioDescrição
activityTENANTCRUD e gestão de atividades de cobrança.
ResourceActions
activitycreate, read, update, delete
A action delete cobre cancelamento (não existe exclusão física).

7. Impacto em Outros Módulos#

7.1. Réguas de Cobrança#

A ação ACTIVITY da régua de cobrança (ver ReguasCobranca.md, seção 2.3) cria atividades neste módulo. O resultRef no CollectionStepExecution aponta para o id da atividade criada. O assignedTo da atividade gerada por régua é:
O usuário gestor da sub-carteira à qual o contrato pertence, quando definido.
null (não atribuída) quando o contrato não está em sub-carteira ou a sub-carteira não tem gestor.

7.2. Clientes na Carteira#

O endpoint GET /portfolio/clients/:clientId/interactions (ver ClientesCarteira.md) é uma fachada que consulta este módulo com filtro clientId implícito. Os campos lastInteractionAt e lastInteractionType do PortfolioClientSummary são calculados a partir da atividade COMPLETED mais recente do cliente.

7.3. Indicadores da Carteira Global#

O PortfolioSummary (ver Carteiras.md) inclui indicadores de efetividade por ação (actionEffectiveness). Esses indicadores são calculados cruzando pagamentos de títulos com a última atividade COMPLETED registrada antes do pagamento — ex: se a última atividade antes de um pagamento foi do tipo CALL, o valor recuperado é atribuído ao tipo CALL.

8. Roadmap#

8.1. Atividades recorrentes#

Status: Fora do escopo da v1.
Permitir configurar atividades que se repetem automaticamente (ex: ligação semanal enquanto título estiver em atraso). Diferente da régua de cobrança, que dispara em pontos fixos — a recorrência seria contínua enquanto a condição for verdadeira.

8.2. Integração com canais#

Status: Fora do escopo da v1.
Integração com canais de comunicação para executar ações diretamente da atividade: click-to-call (VoIP), envio de e-mail com template, envio de SMS/WhatsApp. Na v1, a atividade é um registro — a execução é feita fora do sistema.

8.3. SLA e escalação automática#

Status: Fora do escopo da v1.
Definir SLAs por tipo e prioridade de atividade. Atividades que excedam o SLA são escaladas automaticamente (ex: reatribuídas ao gestor, prioridade elevada, notificação enviada).
Modificado em 2026-03-30 18:40:40
Página anterior
Regras da régua por empresa
Built with