1. Gestão de portfolio
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. Gestão de portfolio

Análise geral

Gestão de Portfolio — Visão Geral#

1. Conceito#

A Gestão de Portfolio é o módulo para cadastro, acompanhamento e gestão de carteiras de recebíveis. Foco no agronegócio, com instrumentos variados — CPRs (Físicas e Financeiras), contratos de compra e venda, duplicatas, CCBs, notas promissórias, entre outros.
Cada tipo de contrato possui um schema de campos base fixo pela plataforma, extensível pela empresa via templates customizados com campos dinâmicos, seções visuais e regras condicionais (inspirado no modelo AgFlow start-forms / phase-fields).
O módulo distingue duas entidades centrais: o template de contrato (ContractTemplate) — entidade abstrata que define o schema, as regras e os comportamentos padrão de um tipo de contrato — e o contrato (Contract) propriamente dito — entidade concreta que representa uma operação jurídico-financeira real, criada a partir de um template. Essa separação permite que uma mesma definição seja reaproveitada em múltiplas operações sem duplicação, e que o schema evolua de forma independente dos contratos já emitidos.

1.1. Escopo#

Foco na visão gerencial e operacional:
Múltiplos portfolios por empresa com carteiras.
Templates de contrato dinâmicos (tipo base + campos customizáveis).
Contratos com participantes tipados (credores, devedores, garantidores).
Colaterais (garantias reais e fidejussórias) como sub-recurso do contrato.
Pagamentos (parcelas) com cálculo de encargos.
Baixas (recebimentos) manuais com snapshot de encargos.
Importação via API.
Exportação de dados.
Listagem básica de clientes na carteira.

1.2. Relação com o sistema existente#

Empresa (Company): Portfolios, templates e configurações pertencem à empresa.
Usuários Tenant (User): O acesso ao módulo é controlado pela combinação de duas dimensões:
1.
Permissões RBAC do próprio módulo — resources e actions descritos na seção 9 definem o que o usuário pode fazer (ler, criar, editar, etc.).
2.
Atribuição direta do usuário a portfolios e/ou carteiras (via portfolio:assign_user) — define em quais carteiras o usuário atua.
Sobre o escopo de unit (UNIT_RESTRICTED). Em outros módulos da plataforma, o escopo UNIT_RESTRICTED é usado para limitar a visibilidade de um usuário aos recursos das unit(s) à(s) qual(is) ele pertence (separação matriz/filial em sistemas que segmentam a empresa por unidades operacionais). Esse escopo não se aplica ao módulo de Portfolio Management. Aqui, a visibilidade é determinada exclusivamente pela combinação RBAC + atribuição a portfolios/carteiras descrita acima. Um usuário com contract:read, por exemplo, enxerga todos os contratos dos portfolios aos quais foi atribuído, independentemente da unit a que pertence.
Clientes (Client): Todos os participantes de contratos devem ser Clients já cadastrados na plataforma. O módulo não cria Clients — quando não encontrado, orienta o usuário a cadastrar pelo módulo de Clientes do AgRisk.
RBAC: Novos resources e actions específicos do módulo.

2. Estrutura do Módulo#

Sub-móduloArquivoDescrição
PortfoliosGestão de carteira.mdMúltiplos por empresa. Cada portfolio tem uma ou mais carteiras (obrigatórias para receber contratos).
TemplatesContractTemplates.mdTipo base + campos customizáveis. Seções, regras, cálculos.
ContratosContratos.mdInstrumentos de crédito orientados a template.
ParticipantesParticipantes.mdCredores, devedores, garantidores. Client ↔ Contract.
ColateraisColaterais.mdGarantias reais e fidejussórias. Sub-recurso do contrato (1:N).
PagamentosPagamentos.mdParcelas/obrigações com vencimento.
BaixasBaixas.mdRegistro de recebimento de pagamento com snapshot de encargos.
ClientesInformações dos clientes.mdListagem básica de devedores com indicadores.
ImportaçãoImportacao.mdIngestão via API. Fluxo em duas fases.

3. Hierarquia de Entidades#

Empresa (Company)
├── Template de contrato (ContractTemplate) [1..N] ─── entidade abstrata (schema reutilizável)
│   └── Tipo base + campos customizados + regras
│
└── Portfolio (1..N por empresa)
    └── Carteira (SubPortfolio) [1..N por portfolio]
        │
        └── Contrato (Contract) ─── entidade concreta, referencia 1 template via templateId
            ├── Participante (ContractParticipant) ─── CREDITOR / DEBTOR / GUARANTOR
            │   └── → Client já cadastrado na plataforma
            ├── Colateral (ContractCollateral) [0..N] ─── REAL / FIDEJUSSORY
            │
            └── Pagamento (ContractPayment) [1..N] ─── parcela
                └── Baixa (PaymentReceipt) [0..N] ─── registro de recebimento
Regras fundamentais:
Um contrato pertence a exatamente um portfolio (silo isolado).
Um contrato referencia exatamente um template; um template pode originar múltiplos contratos.
Um contrato tem 1..N pagamentos (parcelas).
Um contrato tem ao menos um participante CREDITOR (a própria empresa ou outro Client) e ao menos um participante DEBTOR para ser ativado.
Tipo do pagamento restrito pelo contrato (allowedPaymentTypes).
Colaterais são sub-recurso do contrato (1:N), não entidade independente.
Todos os participantes são Clients existentes na plataforma.
Carteiras são obrigatórias para receber contratos. Todo portfolio precisa ter ao menos uma carteira ativa para que contratos possam ser criados nele. As carteiras são a entidade onde os contratos efetivamente vivem — não há acesso direto a contratos pelo portfolio. Portfolios recém-criados podem existir vazios (sem carteiras), mas a empresa precisa criar pelo menos uma carteira antes de adicionar contratos. Carteiras também servem para segmentar a operação (por gestor, região, produto) e atribuir visibilidade granular a usuários específicos.
Empresa como participante. A própria empresa pode figurar como CREDITOR (caso comum) ou em outros papéis. Para isso, a empresa possui um Client espelho associado (isCompany = true), criado automaticamente ao ativar o módulo, que a representa em participações de contrato.

4. Modelo de Templates#

4.1. Template vs. Contrato: abstração e instância#

O template é a definição abstrata e reutilizável de um tipo de contrato: especifica quais campos existem, quais regras se aplicam, quais defaults de comportamento valem. Não representa nenhuma operação real — é um molde.
O contrato é a instância concreta criada a partir de um template: representa uma operação jurídico-financeira específica, com participantes, valores, datas, colaterais e pagamentos reais. O vínculo se dá pelo campo templateId no contrato.
AspectoTemplate (ContractTemplate)Contrato (Contract)
NaturezaAbstrata — define a estrutura de um tipo de contratoConcreta — representa uma operação real
PapelMolde / schema reutilizávelInstância com dados preenchidos
CardinalidadePode originar N contratosCriado a partir de 1 template
ComposiçãoCampos, regras condicionais, seções, defaultsParticipantes, valores, colaterais, pagamentos
Ciclo de vidaPróprio (edição, publicação, arquivamento)Próprio (DRAFT → ACTIVE → CLOSED/DEFAULTED/...)
Gera obrigações financeirasNãoSim (via pagamentos)
Arquivo de especificaçãoContractTemplates.mdContratos.md
Ciclos de vida independentes. O template e o contrato possuem ciclos de vida próprios e distintos. As regras específicas de versionamento e do impacto de alterações no template sobre contratos já criados estão definidas em Template de Contratos.md.

4.2. Tipos base (fixos pela plataforma)#

CódigoNome
CPR_PHYSICALCPR Física
CPR_FINANCIALCPR Financeira
INVOICEDuplicata / Nota Fiscal
PURCHASE_SALE_CONTRACTContrato de Compra e Venda
CCBCédula de Crédito Bancário
PROMISSORY_NOTENota Promissória
OTHEROutro (empresa define 100% dos campos)

4.3. Composição do template em 3 camadas#

Um template é montado pela combinação de três camadas, aplicadas em sequência. As duas primeiras são nativas da plataforma — garantem que qualquer contrato tenha as informações mínimas necessárias para representar um instrumento de crédito. A terceira é configurada pela empresa e permite personalizar o template com os campos operacionais do seu negócio.
CamadaFonteQuando aplicaConteúdo
1. Campos comuns do contratoPlataforma (fixa)SempreInformações estruturais presentes em todo contrato: código, datas (emissão, vencimento), valor principal, status.
2. Campos do tipo basePlataforma (fixa)Quando type != OTHERCampos específicos do instrumento jurídico (typeSpecificFields). Ex.: safra e cultura para CPR, dados bancários para CCB.
3. Campos customizadosEmpresa (configurável)Definidos pela empresa no templateCampos livres (customFields) que compõem a personalização do template, com seções, regras condicionais e cálculos.
Um contrato criado a partir de um template deve preencher os campos obrigatórios das camadas aplicáveis. A obrigatoriedade dentro de cada camada é definida pela plataforma (camadas 1 e 2) e pela empresa (camada 3).
Composição com tipo OTHER. Quando o tipo base é OTHER, a camada 2 fica vazia — não há campos fixos do instrumento — e toda a especificidade do contrato reside na camada 3. Isso permite modelar instrumentos não contemplados pela plataforma, mantendo a estrutura mínima garantida pela camada 1.
Múltiplos templates por empresa. Uma empresa pode ter vários templates, inclusive para o mesmo tipo base. O que varia entre eles é a camada 3 — as camadas 1 e 2 são idênticas para todos os templates do mesmo tipo. Templates padrão da plataforma podem servir como fallback quando a empresa ainda não configurou nenhum.
Responsabilidade de gestão por camada.
Camadas 1 e 2 (geridas pela plataforma): os campos comuns do contrato (camada 1) e os campos do tipo base (camada 2) são modelados como uma coleção única de campos. Esta coleção é gerida pela plataforma com endpoints CRUD próprios — campos da camada 1 são sempre obrigatórios; campos da camada 2 são mapeados como aplicáveis ao tipo base correspondente (CPR, CCB, etc.). Para o tipo OTHER, apenas os campos da camada 1 se aplicam.
Camada 3 (gerida pela empresa): os campos customizados, seções, regras condicionais e cálculos são geridos pela empresa via os endpoints documentados na seção 10.

5. Ciclos de Vida#

5.1. Contrato#

DRAFT ──► ACTIVE ◄──► OVERDUE ──► DEFAULTED ──► CLOSED / RENEGOTIATED / CANCELLED
              │                              ▲
              └──────────────────────────────┘
              (ACTIVE também pode ir direto a CLOSED / RENEGOTIATED / CANCELLED)
              (OVERDUE volta a ACTIVE quando a parcela em atraso é liquidada
               antes da inadimplência ser formalizada)
DRAFT ──► CANCELLED
StatusSignificado
DRAFTEm elaboração, ainda não ativo.
ACTIVEVigente, com parcelas em dia.
OVERDUEVigente com ao menos uma parcela vencida (em atraso). Estado transitório — volta a ACTIVE se a parcela for liquidada antes da formalização da inadimplência.
DEFAULTEDInadimplência formal. Configurada por regra (ex.: parcela em atraso há mais de N dias) ou marcação operacional.
CLOSEDEncerrado por liquidação total.
RENEGOTIATEDEncerrado por substituição via renegociação.
CANCELLEDCancelado (a partir de DRAFT ou ACTIVE).

5.2. Pagamento (parcela)#

PENDING ◄──► OVERDUE ──► DEFAULTED ──► PAID / PARTIALLY_PAID / RENEGOTIATED / CANCELLED
         │                          ▲
         └──────────────────────────┘
         (PENDING também pode ir direto a PAID / PARTIALLY_PAID / RENEGOTIATED / CANCELLED)
         (OVERDUE volta a PENDING quando a parcela é liquidada antes da
          formalização da inadimplência)
StatusSignificado
PENDINGEm aberto, ainda dentro do prazo.
OVERDUEVencida (dueDate ultrapassado), sem liquidação. Estado transitório.
DEFAULTEDInadimplência formal da parcela. Configurada por regra (ex.: vencida há mais de N dias) ou marcação operacional.
PAIDLiquidada integralmente.
PARTIALLY_PAIDLiquidada parcialmente.
RENEGOTIATEDSubstituída por renegociação.
CANCELLEDCancelada antes da liquidação.
Relação contrato ↔ parcela. O status OVERDUE do contrato é derivado: o contrato passa a OVERDUE quando ao menos uma parcela está em OVERDUE ou DEFAULTED. O DEFAULTED do contrato é independente — pode ser configurado por regra própria do contrato (prazo de N dias) ou por marcação operacional manual.
Pagamento parcial e vencimento. Uma parcela em PARTIALLY_PAID que ultrapassa o dueDate é movida automaticamente para OVERDUE. A trilha histórica de que houve baixas parciais é preservada via dischargedAmount e via auditoria das transições de status. Múltiplas baixas parciais são permitidas até a liquidação integral; o cálculo de encargos sobre o saldo aberto é detalhado na seção 6 e em Pagamentos.md.
Configuração do prazo de inadimplência (N dias). O prazo após o vencimento que define a transição para DEFAULTED é configurado no contrato. A transição pode ocorrer das duas formas:
Automática: job programado (ver seção 11) lê o N dias do contrato e movimenta a parcela/contrato quando o prazo é ultrapassado.
Manual: usuário pode marcar inadimplência formal antes do prazo, conforme a operação reconhecer a situação.

6. Encargos#

Encargos representam acréscimos cobrados em pagamentos atrasados. No escopo da v1 são dois:
EncargoCampo no contratoCálculo
MultafinePercentagePercentual aplicado uma única vez sobre o valor da parcela quando há atraso.
Juros de moradailyInterestPercentagePercentual aplicado por dia de atraso sobre o valor da parcela.
A definição e o uso desses encargos passam por três fases, cada uma com responsabilidade clara:

Fase 1 — Aplicabilidade (template)#

O template define se faz sentido cobrar encargos para aquele tipo de contrato, via paymentDefaults. É uma regra de domínio: alguns instrumentos não comportam multa e juros de mora pela própria natureza.
Tipo baseEncargos aplicáveis?Justificativa
CPR_PHYSICALNãoObrigação é entrega de produto, não pagamento financeiro.
CPR_FINANCIAL, CCB, PROMISSORY_NOTE, INVOICE, PURCHASE_SALE_CONTRACTSimOperações financeiras com previsão de mora.
OTHERConfigurávelEmpresa decide ao montar o template.
Quando o template indica que encargos não são aplicáveis, os campos finePercentage e dailyInterestPercentage ficam ocultos no contrato e nenhum cálculo é feito.

Fase 2 — Parâmetros (contrato)#

Quando os encargos são aplicáveis, o contrato preenche os percentuais que serão usados no cálculo. Os campos são opcionais:
Se finePercentage não for informado, multa não é calculada.
Se dailyInterestPercentage não for informado, juros de mora não são calculados.
Se ambos não forem informados, nenhum encargo é calculado, mesmo que aplicáveis pelo template.
Os percentuais valem para todas as parcelas do contrato.

Fase 3 — Cobrança efetiva (baixa)#

No momento de registrar a baixa de uma parcela em atraso, o sistema calcula os valores de multa e juros com base nos percentuais do contrato e nos dias de atraso. O usuário pode sobrescrever os valores calculados com os valores efetivamente cobrados — por exemplo, conceder desconto comercial, perdoar parte da mora, ou registrar um acordo pontual.
Campo na baixaOrigemComportamento
calculatedFineAmountSistemaValor calculado a partir de finePercentage. Não editável.
calculatedInterestAmountSistemaValor calculado a partir de dailyInterestPercentage × dias de atraso. Não editável.
chargedFineAmountUsuárioValor de multa efetivamente cobrado. Default = calculatedFineAmount.
chargedInterestAmountUsuárioValor de juros efetivamente cobrado. Default = calculatedInterestAmount.
A baixa armazena ambos (calculado e cobrado) como snapshot, garantindo trilha de auditoria sobre o que o sistema sugeriu e o que foi efetivamente registrado.

7. Participantes#

PapelCódigoCardinalidadeDescrição
CredorCREDITOR1..NQuem concede o crédito. Obrigatório — pode ser a própria empresa (via Client espelho) ou outro Client. Suporta múltiplos credores em operações de cessão, cofinanciamento ou securitização.
DevedorDEBTOR1..NQuem assume a obrigação. Ao menos um obrigatório.
GarantidorGUARANTOR0..NGarantia pessoal (aval/fiança). Complementar ao colateral fidejussório.
Todos os devedores devem ser Clients já cadastrados na plataforma. Client não encontrado → erro com orientação para cadastrar no AgRisk.
UX default. No formulário de criação de contrato, o campo CREDITOR vem pré-selecionado com a empresa (Client espelho da empresa, ver seção 3). O usuário pode trocar para outro Client ou adicionar credores adicionais conforme a operação, adicionando os dados do novo credor..

8. Colaterais#

Garantias reais e fidejussórias como sub-recurso do contrato (1:N):
CategoriaTipos
REALPenhor agrícola, penhor de safra futura, alienação fiduciária (móvel/imóvel), hipoteca, seguro, outro.
FIDEJUSSORYAval, fiança, fiança bancária, outro.
Colateral fidejussório complementa o participante GUARANTOR: o participante registra quem garante; o colateral registra os termos.

9. Permissões RBAC#

ResourceDomínioActions
portfolioTENANTcreate, read, update, delete, assign_contract, assign_user
contract_templateTENANTcreate, read, update, delete
contractTENANTcreate, read, update
paymentTENANTcreate, read, update
payment_receiptTENANTcreate, read
portfolio_reportTENANTread, export
portfolio_importTENANTcreate, read
Participantes e colaterais usam contract:update. Não possuem resource próprio.
A action delete em portfolio corresponde a desativação (soft delete via status = INACTIVE), bloqueada quando o portfolio possui contratos em estados não-terminais (regra detalhada em Carteiras.md).

9.1. Modelo de visibilidade#

A visibilidade dos recursos do módulo (portfolios, contratos, pagamentos, baixas, etc.) é determinada pela combinação de duas dimensões independentes:
1.
Permissão sobre o resource (RBAC) — contract:read, portfolio:read, etc. Define o que o usuário pode fazer.
2.
Atribuição do usuário a portfolios e/ou carteiras — define em quais carteiras o usuário atua. Gerenciada via action portfolio:assign_user.
A atribuição opera em dois níveis:
NívelEntidadeEfeito
PortfolioPortfolioUserUsuário enxerga todos os contratos do portfolio, incluindo os de qualquer carteira.
CarteiraSubPortfolioUserUsuário enxerga apenas os contratos da(s) carteira(s) à(s) qual(is) está atribuído.
Um usuário pode ser atribuído ao portfolio inteiro, a carteiras específicas, ou a ambos (na prática, a atribuição ao portfolio já cobre tudo). A regra de visibilidade composta é:
Recurso visível ⇔ (usuário tem permissão RBAC sobre o resource) AND (usuário está atribuído ao portfolio do recurso OU a alguma carteira que contenha o recurso).
Sobre o escopo de unit (UNIT_RESTRICTED). Em outros módulos da plataforma, esse escopo limita a visibilidade do usuário aos recursos da(s) unit(s) à(s) qual(is) ele pertence (separação matriz/filial). Esse escopo não se aplica ao módulo de Portfolio Management. A visibilidade aqui é determinada exclusivamente pela combinação RBAC + atribuição descrita acima — independente da estrutura organizacional de units.

10. Endpoints — Mapa Geral#

Templates#

MétodoRotaArquivo
POST/v2/companies/:companyId/contract-templatesContractTemplates.md
GET/v2/companies/:companyId/contract-templatesContractTemplates.md
GET/v2/companies/:companyId/contract-templates/:templateIdContractTemplates.md
GET/v2/companies/:companyId/contract-templates/:templateId/schemaContractTemplates.md
PATCH/v2/companies/:companyId/contract-templates/:templateIdContractTemplates.md
PUT/v2/companies/:companyId/contract-templates/:templateId/statusContractTemplates.md
POST/v2/companies/:companyId/contract-templates/:templateId/sectionsContractTemplates.md
PATCH/v2/companies/:companyId/contract-templates/:templateId/sections/:sectionIdContractTemplates.md
DELETE/v2/companies/:companyId/contract-templates/:templateId/sections/:sectionIdContractTemplates.md
POST/v2/companies/:companyId/contract-templates/:templateId/fieldsContractTemplates.md
PATCH/v2/companies/:companyId/contract-templates/:templateId/fields/:fieldIdContractTemplates.md
DELETE/v2/companies/:companyId/contract-templates/:templateId/fields/:fieldIdContractTemplates.md
POST/v2/companies/:companyId/contract-templates/:templateId/rulesContractTemplates.md
PATCH/v2/companies/:companyId/contract-templates/:templateId/rules/:ruleIdContractTemplates.md
DELETE/v2/companies/:companyId/contract-templates/:templateId/rules/:ruleIdContractTemplates.md

Portfolios e carteiras#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfoliosCarteiras.md
GET/v2/companies/:companyId/portfoliosCarteiras.md
GET/v2/companies/:companyId/portfolios/:portfolioIdCarteiras.md
PATCH/v2/companies/:companyId/portfolios/:portfolioIdCarteiras.md
PUT/v2/companies/:companyId/portfolios/:portfolioId/statusCarteiras.md
POST/v2/companies/:companyId/portfolios/:portfolioId/assigned-usersCarteiras.md
GET/v2/companies/:companyId/portfolios/:portfolioId/assigned-usersCarteiras.md
DELETE/v2/companies/:companyId/portfolios/:portfolioId/assigned-users/:userIdCarteiras.md
POST/v2/companies/:companyId/portfolios/:portfolioId/sub-portfoliosCarteiras.md
GET/v2/companies/:companyId/portfolios/:portfolioId/sub-portfoliosCarteiras.md
GET/v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioIdCarteiras.md
PATCH/v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioIdCarteiras.md
PUT/v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/statusCarteiras.md
POST/v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/assigned-usersCarteiras.md
GET/v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/assigned-usersCarteiras.md
DELETE/v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/assigned-users/:userIdCarteiras.md
A vinculação de um contrato a uma carteira é representada como o campo obrigatório subPortfolioId no contrato, informado no POST de criação (POST .../portfolios/:portfolioId/contracts). Para mover um contrato entre carteiras do mesmo portfolio, atualiza-se o subPortfolioId via PATCH .../contracts/:contractId. Não é permitido subPortfolioId = null — todo contrato sempre pertence a uma carteira. Listar contratos de uma carteira específica: GET .../portfolios/:portfolioId/contracts?subPortfolioId=....

Contratos#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfolios/:portfolioId/contractsContratos.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contractsContratos.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/exportContratos.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractIdContratos.md
PATCH/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractIdContratos.md
PUT/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/statusContratos.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/historyContratos.md

Participantes#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/participantsParticipantes.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/participantsParticipantes.md
PATCH/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/participants/:participantIdParticipantes.md
DELETE/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/participants/:participantIdParticipantes.md

Colaterais#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/collateralsColaterais.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/collateralsColaterais.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/collaterals/:collateralIdColaterais.md
PATCH/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/collaterals/:collateralIdColaterais.md
DELETE/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/collaterals/:collateralIdColaterais.md

Pagamentos (parcelas)#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/paymentsPagamentos.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/paymentsPagamentos.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/payments/:paymentIdPagamentos.md
PATCH/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/payments/:paymentIdPagamentos.md
PUT/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/payments/:paymentId/statusPagamentos.md

Baixas#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/payments/:paymentId/receiptsBaixas.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/payments/:paymentId/receiptsBaixas.md
GET/v2/companies/:companyId/portfolios/:portfolioId/contracts/:contractId/payments/:paymentId/receipts/:receiptIdBaixas.md

Clientes#

MétodoRotaArquivo
GET/v2/companies/:companyId/portfolios/:portfolioId/clientsClientesCarteira.md
GET/v2/companies/:companyId/portfolios/:portfolioId/clients/:clientIdClientesCarteira.md
GET/v2/companies/:companyId/portfolios/:portfolioId/clients/:clientId/contractsClientesCarteira.md
GET/v2/companies/:companyId/portfolios/:portfolioId/clients/:clientId/receivablesClientesCarteira.md
GET/v2/companies/:companyId/portfolios/:portfolioId/clients/exportClientesCarteira.md

Importação#

MétodoRotaArquivo
POST/v2/companies/:companyId/portfolios/:portfolioId/importsImportacao.md
GET/v2/companies/:companyId/portfolios/:portfolioId/importsImportacao.md
GET/v2/companies/:companyId/portfolios/:portfolioId/imports/:importIdImportacao.md
GET/v2/companies/:companyId/portfolios/:portfolioId/imports/:importId/errorsImportacao.md
POST/v2/companies/:companyId/portfolios/:portfolioId/imports/:importId/confirmImportacao.md
POST/v2/companies/:companyId/portfolios/:portfolioId/imports/:importId/cancelImportacao.md

11. Jobs Programados#

A atualização automática de status no módulo é feita por jobs programados (scheduler puro). As regras de transição de status executadas pelo scheduler são:
JobDescrição
Pagamento → OVERDUEMove pagamentos PENDING ou PARTIALLY_PAID com dueDate ultrapassado para OVERDUE. Recalcula encargos.
Pagamento → DEFAULTEDMove pagamentos OVERDUE que ultrapassem o prazo de inadimplência (N dias) configurado no contrato.
Contrato → OVERDUEMove contratos ACTIVE para OVERDUE quando ao menos uma parcela está em OVERDUE ou DEFAULTED.
Contrato → DEFAULTEDMove contratos OVERDUE para DEFAULTED conforme regra de inadimplência formal (parcela em DEFAULTED ou prazo configurado no contrato ultrapassado).
Cliente → collectionStatusAvalia o status de cobrança derivado de cada cliente da carteira (ON_TRACK / OVERDUE / CRITICAL) com base nas parcelas e contratos vinculados. Detecta transições e emite eventos de domínio para consumo por outros módulos (ver 7. Informações dos clientes.md).
Transição manual. A transição para DEFAULTED (parcela e contrato) também pode ser realizada manualmente pelo usuário antes do prazo configurado, quando a operação reconhece a inadimplência formalmente. A transição via job e a manual são complementares.

12. Glossário#

TermoDefinição
PortfolioAgrupamento de contratos. Múltiplos por empresa, silos isolados.
CarteiraAgrupamento obrigatório dentro de um portfolio, atribuído a um gestor. Todo contrato vive em exatamente uma carteira (nome técnico: SubPortfolio).
TemplateTipo base (plataforma) + campos customizados (empresa). Define o formulário.
Tipo baseInstrumento jurídico fixo pela plataforma (CPR, CCB, etc.).
customFieldsCampos definidos pela empresa no template (camada 3).
typeSpecificFieldsCampos do tipo base fixos pela plataforma (camada 2).
ContratoInstrumento jurídico criado a partir de um template.
ParticipanteParte do contrato: credor, devedor ou garantidor. Referência a Client.
ColateralGarantia vinculada ao contrato (real ou fidejussória). Sub-recurso 1:N.
Pagamento (parcela)Obrigação com vencimento. Unidade mínima de cobrança.
BaixaRegistro de recebimento de um pagamento (PaymentReceipt).
paymentDefaultsConfig do template que define se encargos são aplicáveis.
displayStatusReferência de tradução do status técnico para label exibido na interface. Derivado no frontend a partir do status retornado pelo backend — não é um campo retornado pela API. Tabela de mapeamento documentada em Contratos.md e Pagamentos.md.
taxIdIdentificador fiscal do Client. CPF (11 dígitos) ou CNPJ (14 dígitos), armazenado apenas com dígitos (sem máscara).
SnapshotCópia dos valores no momento de uma operação, para auditoria.
Modificado em 2026-05-15 21:15:52
Página anterior
Bureau Query
Próxima página
Dicionário de campos base (Necessário validar)
Built with