1. Importação de dados
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. Importação de dados

Importação de dados

Importação — Regras de Negócio#

1. Conceito#

O módulo de Importação permite que a empresa traga contratos e pagamentos (parcelas) existentes para dentro de um portfolio via API REST. Útil para integração com ERPs, sistemas legados e migração de dados.

1.1. Fluxo em duas fases#

Fase 1 — Validação: Dados verificados sem persistência. Relatório de erros e alertas retornado.
Fase 2 — Confirmação: Após revisão, o usuário confirma. Apenas registros válidos são persistidos.

1.2. Relação com templates e participantes#

Cada contrato importado deve referenciar um template (templateId). O sistema valida o snapshot armazenado no template (camadas 1, 2 e 3) contra os dados informados — typeSpecificFields contra baseTypeFields do template e customFields contra os campos customizados (ver ContractTemplates.md).
Cada contrato deve informar:
Ao menos um devedor via clientId (com role = DEBTOR).
Ao menos um credor via clientId (com role = CREDITOR). Pode ser a própria empresa via Client espelho (ver Participantes.md, seção 1.1) ou outro Client.
Todos os participantes devem ser Clients já cadastrados na plataforma — não há auto-criação via importação. Clients não encontrados geram erro CLIENT_NOT_FOUND.

1.3. Migração de contratos legados#

Para empresas que estão migrando contratos do sistema legado (antes do modelo de participantes), nem todos os contratos terão credor explícito — historicamente, a empresa era implicitamente o credor. A regra geral é: contratos importados sem CREDITOR informado ganham automaticamente o Client espelho da empresa (isCompany = true). O sistema registra essa atribuição automática como evento PARTICIPANT_ADDED no ContractHistory (ver Contratos.md, seção 2.3) com referência clara de que foi resultado da migração.

2. Estruturas de Dados#

2.1. ImportJob#

CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único.
companyIdUUIDSimEmpresa.
portfolioIdUUIDSimPortfolio de destino.
sourceEnumSimAPI na v1.
importModeEnumSimCONTRACTS_AND_PAYMENTS, CONTRACTS_ONLY, PAYMENTS_ONLY.
statusEnumSimStatus do job. Ver seção 2.3.
totalRecordsIntegerNãoTotal de registros submetidos. Após validação.
validRecordsIntegerNãoRegistros válidos. Após validação.
invalidRecordsIntegerNãoRegistros com erros. Após validação.
warningRecordsIntegerNãoRegistros com alertas. Após validação.
importedContractsIntegerNãoContratos importados. Após conclusão.
importedPaymentsIntegerNãoPagamentos importados. Após conclusão.
submittedByUUIDSimUsuário que iniciou.
confirmedByUUIDNãoUsuário que confirmou.
confirmedAtDateTime (ISO 8601 UTC)NãoData da confirmação.
createdAtDateTime (ISO 8601 UTC)SimData de criação.
updatedAtDateTime (ISO 8601 UTC)SimÚltima atualização.
completedAtDateTime (ISO 8601 UTC)NãoData de conclusão.

2.2. ImportJobError#

CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único.
importJobIdUUIDSimJob ao qual pertence.
recordIndexIntegerNãoÍndice do registro no payload. null para erros gerais.
fieldStringNãoCampo com problema. Notação: typeSpecificFields.campo ou customFields.key.
errorCodeStringSimCódigo do erro. Ver seção 2.4.
errorMessageStringSimDescrição legível.
severityEnumSimERROR ou WARNING.
rawValueStringNãoValor original.
createdAtDateTime (ISO 8601 UTC)SimData de criação.

2.3. Ciclo de vida do ImportJob#

PENDING_VALIDATION ──► VALIDATED ──► IMPORTING ──► COMPLETED
                   │                           └──► COMPLETED_WITH_ERRORS
                   └──► VALIDATION_FAILED

VALIDATED ──► CANCELLED
StatusDescrição
PENDING_VALIDATIONValidação assíncrona em andamento.
VALIDATEDAo menos um registro válido. Aguardando confirmação.
VALIDATION_FAILEDNenhum registro válido.
IMPORTINGImportação em andamento.
COMPLETEDTodos os registros válidos importados.
COMPLETED_WITH_ERRORSRegistros válidos importados; com ERROR ignorados.
CANCELLEDCancelado após validação.

2.4. Códigos de erro de validação#

Erros de contrato#

CódigoSeverityDescrição
MISSING_REQUIRED_FIELDERRORCampo obrigatório ausente.
INVALID_DATE_FORMATERRORFormato inválido.
INVALID_DATE_RANGEERRORendDate anterior a startDate.
INVALID_AMOUNTERRORValor inválido ou negativo.
INVALID_ENUM_VALUEERRORValor não pertence ao enum.
TEMPLATE_NOT_FOUNDERRORTemplate não encontrado.
TEMPLATE_INACTIVEERRORTemplate inativo.
SUB_PORTFOLIO_REQUIREDERRORsubPortfolioId ausente no contrato. Toda importação exige carteira de destino.
SUB_PORTFOLIO_NOT_FOUNDERRORCarteira informada não existe no portfolio de destino.
SUB_PORTFOLIO_INACTIVEERRORCarteira informada está inativa.
CONTRACT_CODE_DUPLICATEERRORCódigo já existe no portfolio.
CONTRACT_CODE_DUPLICATE_IN_PAYLOADERRORCódigo duplicado dentro do payload.
MISSING_TYPE_DESCRIPTIONERRORtype = OTHER sem descrição.
INTEREST_RATE_NOT_ALLOWEDERRORJuros para tipo que não aceita.
MISSING_TYPE_SPECIFIC_FIELDERRORCampo obrigatório do tipo base ausente.
INVALID_TYPE_SPECIFIC_FIELDERRORCampo do tipo base inválido.
MISSING_CUSTOM_FIELDERRORCampo obrigatório do template ausente.
INVALID_CUSTOM_FIELD_VALUEERRORCampo customizado inválido.

Erros de participantes#

CódigoSeverityDescrição
DEBTOR_REQUIREDERRORNenhum devedor informado.
CREDITOR_REQUIREDERRORNenhum credor informado e empresa não pode ser usada como fallback (situação anômala — ver RN-IMP-CREDITOR-FALLBACK).
CLIENT_NOT_FOUNDERRORClient não encontrado na plataforma.
INVALID_PARTICIPANT_ROLEERRORRole não reconhecido.
PARTICIPATION_PERCENTAGE_EXCEEDS_100ERRORSoma dos participationPercentage dos credores excede 100%.

Erros de pagamento (parcela)#

CódigoSeverityDescrição
CONTRACT_NOT_FOUNDERRORContrato não existe (modo PAYMENTS_ONLY).
DUE_DATE_OUT_OF_CONTRACT_RANGEERRORdueDate fora da vigência.
PAYMENT_CODE_DUPLICATE_IN_PAYLOADERRORCódigo duplicado no mesmo contrato.
INCOMPATIBLE_PAYMENT_TYPEERRORTipo não permitido para o contrato.

Alertas (não bloqueantes)#

CódigoSeverityDescrição
TOTAL_AMOUNT_MISMATCHWARNINGSoma dos pagamentos diverge do totalAmount.

3. Regras de Negócio#

RN-IMP-001: Duas fases obrigatórias.
RN-IMP-002: Importação parcial. Registros ERROR excluídos. Registros WARNING importados.
RN-IMP-003: Confirmação explícita.
RN-IMP-004: Cancelamento. Jobs VALIDATED podem ser cancelados. IMPORTING não.
RN-IMP-005: Contratos como DRAFT. Ativação manual após importação.
RN-IMP-006: Validação de template. Cada contrato validado contra o template informado.
RN-IMP-006B: Carteira obrigatória no contrato. Cada contrato importado deve informar subPortfolioId referenciando uma carteira ativa do portfolio de destino. Contratos sem subPortfolioId geram erro SUB_PORTFOLIO_REQUIRED. Carteira informada inválida ou inativa gera SUB_PORTFOLIO_NOT_FOUND ou SUB_PORTFOLIO_INACTIVE.
RN-IMP-007: Clients devem existir. Todos os participantes informados devem ser Clients já cadastrados. Erro CLIENT_NOT_FOUND quando não encontrado.
RN-IMP-008: Fallback de credor para migração de contratos legados. Quando um contrato é importado sem participante CREDITOR informado, o sistema atribui automaticamente o Client espelho da empresa (isCompany = true) como credor com participationPercentage = 100%. Um evento PARTICIPANT_ADDED é registrado no ContractHistory indicando a atribuição automática como resultado de migração. Caso o Client espelho da empresa não exista (situação anômala), o erro CREDITOR_REQUIRED é gerado.
RN-IMP-009: Colaterais não importados na v1. Colaterais devem ser cadastrados manualmente após importação dos contratos.
RN-IMP-010: Compatibilidade de tipo de pagamento. Validado contra allowedPaymentTypes do snapshot do template.
RN-IMP-011: Tamanho máximo. 500 registros por requisição.
RN-IMP-012: Processamento assíncrono. Polling via GET /imports/:id.
RN-IMP-013: Imutabilidade do job concluído.

4. Padrão de Erros#

StatusCódigoDescrição
404IMPORT_JOB_NOT_FOUNDJob não encontrado.
422EMPTY_PAYLOADNenhum registro no payload.
422PAYLOAD_TOO_LARGEExcede 500 registros (RN-IMP-011).
422INVALID_IMPORT_MODEModo inválido.
422JOB_NOT_VALIDATEDConfirmação antes da validação.
422JOB_NOT_CANCELLABLEJob em andamento.
422VALIDATION_FAILED_NO_VALID_RECORDSNenhum registro válido.

5. Endpoints#

Base path: /v2/companies/:companyId/portfolios/:portfolioId/imports

POST .../imports#

Submete contratos e/ou pagamentos para validação assíncrona.
Permissão: portfolio_import:create
Request body — modo CONTRACTS_AND_PAYMENTS:
{
  "importMode": "CONTRACTS_AND_PAYMENTS",
  "contracts": [
    {
      "templateId": "tpl-001",
      "subPortfolioId": "subport-001",
      "code": "CPR-2024-001",
      "description": "CPR Física — Soja Safra 24/25",
      "total": 450000.00,
      "currency": "COMMODITY_LINKED",
      "startDate": "2024-03-01",
      "endDate": "2025-04-30",
      "paymentPeriodicity": "HARVEST",
      "periodicityDescription": "Liquidação na colheita.",
      "finePercentage": 2.0,
      "typeSpecificFields": {
        "crop": "SOYBEAN",
        "harvestSeason": "2024/2025",
        "expectedQuantity": 7500,
        "quantityUnit": "BAGS_60KG",
        "deliveryLocation": "Armazém Cooperativa — Lucas do Rio Verde/MT",
        "deliveryDeadline": "2025-04-15"
      },
      "customFields": {
        "variedadeSoja": "TMG7062",
        "areaCultivada": 500.0
      },
      "participants": [
        { "clientId": "client-company-mirror", "role": "CREDITOR", "isPrimary": true, "participationPercentage": 100.0 },
        { "clientId": "client-002", "role": "DEBTOR", "isPrimary": true },
        { "clientId": "client-004", "role": "GUARANTOR" }
      ],
      "payments": [
        {
          "code": "CPR-001",
          "nominalAmount": 450000.00,
          "dueDate": "2025-04-15",
          "status": "PENDING"
        }
      ]
    }
  ]
}
Response 202 Accepted:
{
  "id": "job-001",
  "companyId": "company-001",
  "portfolioId": "portfolio-001",
  "source": "API",
  "importMode": "CONTRACTS_AND_PAYMENTS",
  "status": "PENDING_VALIDATION",
  "totalRecords": null,
  "validRecords": null,
  "invalidRecords": null,
  "warningRecords": null,
  "importedContracts": null,
  "importedPayments": null,
  "submittedBy": "user-001",
  "confirmedBy": null,
  "confirmedAt": null,
  "createdAt": "2025-03-20T09:00:00.000+00:00",
  "updatedAt": "2025-03-20T09:00:00.000+00:00",
  "completedAt": null
}
Request body — modo PAYMENTS_ONLY:
{
  "importMode": "PAYMENTS_ONLY",
  "payments": [
    {
      "contractId": "contract-001",
      "code": "NF-004",
      "type": "INVOICE",
      "nominalAmount": 50000.00,
      "dueDate": "2024-12-01",
      "status": "PENDING"
    }
  ]
}

GET .../imports/:importJobId#

Status do job para polling.
Permissão: portfolio_import:read
Response 200 OK:
{
  "id": "job-001",
  "companyId": "company-001",
  "portfolioId": "portfolio-001",
  "source": "API",
  "importMode": "CONTRACTS_AND_PAYMENTS",
  "status": "VALIDATED",
  "totalRecords": 10,
  "validRecords": 8,
  "invalidRecords": 1,
  "warningRecords": 1,
  "importedContracts": null,
  "importedPayments": null,
  "submittedBy": "user-001",
  "confirmedBy": null,
  "confirmedAt": null,
  "createdAt": "2025-03-20T09:00:00.000+00:00",
  "updatedAt": "2025-03-20T09:05:00.000+00:00",
  "completedAt": null
}

GET .../imports/:importJobId/errors#

Erros e alertas da validação.
Permissão: portfolio_import:read
Query params:
ParâmetroTipoObrigatórioDescrição
severityEnumNãoFiltrar por ERROR ou WARNING.
errorCodeStringNãoFiltrar por código de erro específico.
offsetIntegerNãoDefault: 0.
limitIntegerNãoDefault: 50. Máximo: 100.
Response 200 OK:
{
  "items": [
    {
      "id": "err-001",
      "importJobId": "job-001",
      "recordIndex": 3,
      "field": "participants[0].clientId",
      "errorCode": "CLIENT_NOT_FOUND",
      "errorMessage": "O cliente 'client-999' não foi encontrado na plataforma. Cadastre o cliente pelo módulo de Clientes do AgRisk.",
      "severity": "ERROR",
      "rawValue": "client-999",
      "createdAt": "2025-03-20T09:05:00.000+00:00"
    },
    {
      "id": "err-002",
      "importJobId": "job-001",
      "recordIndex": 5,
      "field": "totalAmount",
      "errorCode": "TOTAL_AMOUNT_MISMATCH",
      "errorMessage": "Soma dos pagamentos (R$ 440.000) diverge do totalAmount (R$ 450.000).",
      "severity": "WARNING",
      "rawValue": "450000.00",
      "createdAt": "2025-03-20T09:05:00.000+00:00"
    }
  ],
  "nextPage": false
}

POST .../imports/:importJobId/confirm#

Confirma importação.
Permissão: portfolio_import:create
Request body: {}
Response 202 Accepted:
{
  "id": "job-001",
  "status": "IMPORTING",
  "confirmedBy": "user-001",
  "confirmedAt": "2025-03-20T09:10:00.000+00:00",
  "updatedAt": "2025-03-20T09:10:00.000+00:00"
}

POST .../imports/:importJobId/cancel#

Cancela job validado.
Permissão: portfolio_import:create
Request body: {}
Response 200 OK:
{
  "id": "job-001",
  "status": "CANCELLED",
  "updatedAt": "2025-03-20T09:08:00.000+00:00"
}

GET .../imports#

Histórico de jobs.
Permissão: portfolio_import:read
Query params:
ParâmetroTipoObrigatórioDescrição
statusEnum (multi)NãoFiltrar por status do job.
orderByEnumNãoOrdenação: createdAt, completedAt. Default: createdAt.
orderEnumNãoasc ou desc. Default: desc.
offsetIntegerNãoDefault: 0.
limitIntegerNãoDefault: 20. Máximo: 100.
Response 200 OK:
{
  "items": [
    {
      "id": "job-001",
      "source": "API",
      "importMode": "CONTRACTS_AND_PAYMENTS",
      "status": "COMPLETED_WITH_ERRORS",
      "totalRecords": 10,
      "validRecords": 8,
      "invalidRecords": 1,
      "warningRecords": 1,
      "importedContracts": 8,
      "importedPayments": 24,
      "submittedBy": "user-001",
      "confirmedBy": "user-001",
      "confirmedAt": "2025-03-20T09:10:00.000+00:00",
      "createdAt": "2025-03-20T09:00:00.000+00:00",
      "updatedAt": "2025-03-20T09:12:00.000+00:00",
      "completedAt": "2025-03-20T09:12:00.000+00:00"
    }
  ],
  "nextPage": false
}

6. Roadmap#

6.1. Importação via planilha (CSV/XLSX)#

Upload de arquivo com template type-aware. Devido à complexidade de campos customizáveis por empresa, a importação via planilha será implementada após entendimento dos padrões de uso. Possibilidades: template de planilha gerado por templateId, mapeamento de colunas via interface.

6.2. Importação de colaterais#

Criação de colaterais vinculados ao contrato durante importação.
Modificado em 2026-06-02 15:01:30
Página anterior
Informações dos clientes
Próxima página
Colaterais
Built with