1. Carteiras
AgRisk
  • AgRisk
    • Documentação
      • AgRisk
    • API
      • versão
        • Consulta versão API
      • saúde da API
        • Consulta saúde da API
      • autenticação
        • Autenticar via credenciais
      • clientes
        • Cadastrar cliente
        • Listar clientes da empresa
        • Solicitar relatório AgRisk
        • Consultar quantide de clientes por classificação
        • Remover cliente
      • grupos
        • Cadastrar grupos
        • Listar grupos
        • Cadastrar grupo econômico expandido
        • Listar clientes de um grupo
        • Cadastrar cliente em um grupo
        • Consultar totais de clientes de um grupo
        • Renomear grupo
        • Remover grupo
        • Adicionar cliente a um grupo
        • Remover cliente de um grupo
      • empresas
      • produtos
        • Listar produtos permitidos ao usuário
        • Listar produtos permitidos por tipo de consulta
        • Consultar preço de um produto
      • serviços
      • saldo
        • Visualizar saldo de uma empresa
        • Listar histórico de créditos de uma empresa
      • usuários
        • Cadastrar resposta da pesquisa de satisfação
        • Verificar se usuário já respondeu a pesquisa de satisfação
      • agflow
      • matrículas
        • Lista análise de registro de um cliente
        • Cria análise de registro de um cliente
        • Solicitar análise de matrícula de um imóvel
        • Listar matrículas sem contrato de um cliente
        • Visualizar análise de matrícula
        • Remover análise de matrícula
        • Desvincular matrícula de um contrato
      • consultas - endividamento CPR
        • Registrar decisão sobre solicitação de consulta de CPR na CERC
        • Listar CPRs de um cliente
        • Listar solicitações de consulta de CPR na CERC
        • Visualizar solicitação de consulta de CPR na CERC
        • Exportar CPRs de um cliente (Excel)
        • Listar CPRs de um cliente (detalhado)
        • Visualizar detalhes de uma CPR
      • cobrança
        • Listar cobranças de uma empresa
        • Exportar consumo da empresa
      • relatórios financeiros
        • Listar extrações de balanço e DRE de um cliente
        • Solicitar extração de balanço e DRE
        • Visualizar relatório consolidado de um cliente
        • Solicitar relatório consolidado de um cliente
        • Visualizar relatório consolidado de um cliente (detalhado)
        • Visualizar extração de balanço e DRE
        • Remover extração de balanço e DRE
        • Atualizar extração de balanço e DRE
        • Visualizar extração de balanço e DRE (detalhado)
        • Recalcular indicadores de uma extração
        • Solicitar nova análise de uma extração
      • produção rural
        • Cadastrar referencial de custo de produção
        • Listar referenciais de custo de produção
        • Visualizar referencial de custo de produção
        • Atualizar referencial de custo de produção
        • Remover referencial de custo de produção
        • Listar produções de um cliente
        • Cadastrar produções de um cliente
        • Visualizar consolidado das produções de um cliente
        • Exportar consolidado das produções de um cliente (Excel)
        • Atualizar produção de um cliente
        • Remover produção de um cliente
        • Cadastrar imóvel rural de um cliente
        • Atualizar imóvel rural de um cliente
        • Remover imóvel rural de um cliente
        • Importar imóveis rurais de um cliente
        • Listar imóveis rurais de um cliente
        • Exportar produções de um cliente (Excel)
        • Visualizar produção de um cliente
        • Visualizar imóvel rural de um cliente
        • Calcular produções (simulação)
        • Listar filtros disponíveis das produções de um cliente
      • culturas
        • Listar culturas
      • Sapiens
      • arquivos
        • Gerar URL de upload de arquivo para análise AG-IA
        • Gerar URL de download de arquivo da análise AG-IA
        • Gerar URL de upload de arquivo de um cliente
        • Gerar URL de download de arquivo de um cliente
      • relatórios
        • Visualizar relatório-resumo de um cliente
        • Visualizar relatório personalizado de um cliente
      • planos
        • Consultar status da assinatura de um plano
        • Assinar plano ou iniciar período de testes
        • Listar planos assinados por uma empresa
      • planos de assinatura
      • Radar RJ
        • Listar ocorrências do Radar RJ
        • Pesquisar ocorrências do Radar RJ
        • Cadastrar registros do Radar RJ da empresa
        • Remover registros do Radar RJ
        • Listar registros do Radar RJ da empresa
      • recomendações
        • Listar pedidos de recomendação
        • Solicitar recomendação de um cliente
        • Listar avaliações de um pedido de recomendação
        • Avaliar um pedido de recomendação
      • API KEY
      • bancos
      • permissões
        • Consultar as permissões do usuário autenticado
      • score
        • Solicitar consulta de Score AgRisk de clientes
      • registro CPR
        • Gerar URL assinada de download de arquivo de cessão
        • Gerar URL assinada de upload de arquivo de cessão
        • Calcular custo de registro de CPR Ag
        • Registrar cessão de operações
        • Listar cessões
        • Listar operações de uma cessão
        • Pesquisar CPRs da empresa
        • Registrar CPR de um cliente
        • Registrar CPR Ag
        • Calcular custo de registro de CPR
        • Registrar CPR Ag em rascunho ou com erro
        • Listar CPRs da empresa
        • Enviar documento de CPR Ag para análise automática
        • Informar pagamento ou inadimplência de uma CPR
        • Reenviar documento de CPR Ag para análise automática
        • Exportar CPRs da empresa (Excel)
        • Cancelar CPR Ag
        • Registrar endosso de CPR de um cliente
        • Registrar endosso de CPR Ag de um cliente
        • Registrar cessão de CPR de um cliente
        • Registrar aditivo de CPR de um cliente
        • Registrar cessão de CPR Ag de um cliente
      • termos de uso
        • Registrar aceite ou recusa dos termos de uso
        • Verificar aceite dos termos de uso
      • monitoramento
        • Limpar alertas de um cliente
        • Marcar falhas de consulta do monitoramento como vistas
        • Listar monitoramentos da empresa
        • Cadastrar monitoramento
        • Listar módulos monitoráveis
        • Pesquisar clientes para monitoramento
        • Consultar alertas não lidos do usuário
        • Calcular previsão de créditos de um monitoramento
        • Atualizar monitoramento
        • Visualizar monitoramento
        • Desativar monitoramento
        • Listar histórico de alterações de um monitoramento
        • Reativar monitoramento
        • Definir clientes de um monitoramento
        • Remover cliente de um monitoramento
        • Listar alertas de um cliente do monitoramento
        • Marcar alertas de um cliente como lidos
        • Listar consultas de um monitoramento
      • antecipação
        • Solicitar contato sobre antecipação de crédito
      • documentos
        • Cadastrar arquivo de um cliente
        • Registrar autorização SCR de um cliente
        • Consultar arquivo
        • Mover arquivo para a lixeira
        • Editar arquivo
        • Mover arquivo
        • Compartilhar arquivo
        • Abrir arquivo compartilhado
        • Remover compartilhamento de arquivo
        • Criar pasta nos documentos de um cliente
        • Listar conteúdo de uma pasta
        • Editar pasta
        • Mover pasta
        • Mover pasta para a lixeira
        • Listar documentos de um cliente
        • Criar etiquetas pré-definidas de uma empresa
        • Listar etiquetas de uma empresa
        • Adicionar etiqueta personalizada a uma empresa
        • Remover etiqueta personalizada de uma empresa
      • senha
        • Solicitar redefinição de senha
      • patrimônio
        • Listar imóveis rurais detalhados de um cliente
        • Cadastrar ativo financeiro de um cliente
        • Cadastrar imóvel rural no patrimônio de um cliente
        • Consultar imóvel rural
        • Remover imóvel rural de um cliente
        • Baixar KML de um imóvel rural
        • Cadastrar imóvel urbano de um cliente
        • Atualizar imóvel urbano
        • Remover imóvel urbano
        • Atualizar ativo financeiro
        • Remover ativo financeiro
        • Atualizar bem móvel
        • Listar ativos financeiros de um cliente
        • Listar imóveis rurais de um cliente, com totais
        • Remover bem móvel
        • Cadastrar passivo de um cliente
        • Atualizar passivo
        • Remover passivo
        • Listar passivos de um cliente
        • Importar passivo bancário do SCR de um cliente
        • Solicitar extração de declaração de IR de um cliente
        • Listar extrações de IR recentes de um cliente
        • Consultar resultado de extração de IR
        • Cadastrar bem móvel de um cliente
        • Listar bens móveis de um cliente
        • Listar imóveis urbanos de um cliente
      • notificações
        • Listar notificações vigentes do usuário
      • banners
        • Listar banners em exibição
      • contratos
        • Listar contratos de um cliente
        • Cadastrar contrato de um cliente para análise
        • Visualizar detalhes de um contrato
        • Exportar conferência de matrículas de um contrato (CSV)
        • Remover contrato de um cliente
        • Comparar contrato com uma matrícula vinculada
        • Vincular várias matrículas a um contrato
        • Vincular uma matrícula analisada a um contrato
        • Enviar matrícula para análise e vincular a um contrato
      • consultas
        • Solicitar consultas
        • Listar consultas mais recentes de um cliente
        • Solicitar consulta de flag de negativação
        • Visualizar resumo de uma consulta
        • Listar consultas de um cliente
        • Listar consultas de um cliente por serviço
        • Consultar status geral de uma consulta
        • Listar status dos serviços de um cliente por produto
        • Obter URL assinada de um documento (v2)
        • Obter URL assinada de um documento
        • Listar armazéns registrados de um cliente
      • consultas - imóveis CAR
        • Obter URL assinada do recibo do CAR
        • Listar imóveis CAR de um cliente
        • Listar imóveis CAR de um cliente (detalhado)
        • Visualizar imóvel CAR
        • Cadastrar imóveis CAR em uma consulta
        • Atualizar imóvel CAR
        • Baixar certidão do CAR
        • Cadastrar geometria NDVI de um imóvel CAR
        • Visualizar imóvel CAR (streaming)
        • Exportar geometria de um imóvel CAR (KML)
        • Listar imóveis CAR por arquivo (KML ou Shapefile)
        • Listar imóveis CAR por coordenadas
        • Solicitar valores de tipologia dos imóveis CAR de um cliente
      • consultas - restritivos de créditos
        • Solicitar consulta de negativação
        • Visualizar restritivos de crédito de um cliente
        • Visualizar negativação de uma consulta
      • consultas - imóveis rurais
        • Baixar comprovante CISC de um imóvel rural
        • Verificar dados complementares de imóvel rural por NIRF
        • Verificar dados complementares de imóvel rural por código INCRA
        • Verificar dados complementares de imóvel rural por CAR
      • consultas - processos judiciais
        • Consultar status de atualização de um processo
        • Listar processos de um cliente
        • Exportar processos de um cliente (Excel)
        • Listar filtros de processos de um cliente
        • Solicitar análise de processo judicial por IA
        • Visualizar processo de um cliente
      • consultas - endividamento
        • Consultar dados de cliente na Nutrien
        • Consultar percentual IF mais recente do SCR
        • Consultar endividamento (SCR) de um cliente em uma consulta
        • Registrar decisão de autorização de SCR
        • Listar solicitações de SCR
        • Visualizar resumo do SCR de um cliente
        • Solicitar análise de endividamento por IA
      • consultas - compliance (conformidade)
        • Visualizar compliance de um cliente
        • Exportar compliance ambiental SEMA (Excel)
        • Visualizar compliance de um cliente (v2)
        • Visualizar documento de compliance
      • consultas - flag negativação
        • Consultar o resultado de uma flag de negativação
      • consultas - dados básicos
        • Listar contatos de um cliente
        • Consultar dados cadastrais de um cliente
      • consultas - BNDES
        • Listar registros do BNDES de um cliente
      • consultas - sintegra
        • Listar registros do Sintegra de um cliente
      • consultas - veículo
        • Listar veículos de uma consulta
      • consultas - Boa Vista
        • Visualizar Boa Vista de um cliente
      • consultas - protesto
        • Visualizar protestos de um cliente
      • consultas - QUOD
        • Visualizar Quod de um cliente
      • consultas - grupo familiar
        • Listar pessoas do grupo familiar de um cliente
      • consultas - grupo econômico
        • Listar pessoas do grupo econômico de um cliente
      • custódia CPR
      • débitos
        • Listar débitos da empresa
    • Esquemas
      • API Requests
        • ClientResponse
      • AppError
      • CenprotError
      • InternalError
      • CenprotTitle
      • CenprotNotary
      • CenprotResult
      • get_release_Response
      • CenprotHistoryItem
      • post_login_Response
      • get_balance_companyId_Response
      • get_clients_clientId_resume_Response
      • get_queries_queryId_resume_Response
      • get_queries_clients_clientId_cpr_queryId_detailed_Response
      • patch_balance_companyId_block_Response
      • post_balance_companyId_add_Response
      • get_health_check_Response
      • patch_services_serviceId_Response
      • post_services_Response
      • get_v2_queries_clients_clientId_report_extraction_consolidated_Response
      • get_v2_queries_clients_clientId_report_extraction_consolidated_detailed_Response
      • get_v2_queries_clients_clientId_report_extraction_id_Response
      • get_v2_rural_production_clientId_consolidated_Response
      • get_v2_rural_production_clientId_rural_properties_Response
      • get_products_Response
      • get_products_productId_Response
      • post_v2_rural_production_clientId_rural_properties_create_Response
      • put_v2_rural_production_clientId_rural_properties_areaId_Response
      • delete_v2_rural_production_clientId_rural_properties_areaId_Response
      • get_v2_rural_production_clientId_rural_properties_area_id_Response
      • post_v2_files_clients_clientId_download_Response
      • get_v2_plans_code_status_Response
      • get_v2_plans_companyId_Response
      • patch_v2_plans_code_deactivate_companyId_Response
      • post_v2_plans_charge_Response
      • post_v2_plans_code_sign_Response
      • get_v2_recommendations_Response
      • get_v2_recommendations_evaluate_recommendationId_Response
      • post_v2_recommendations_Response
      • post_v2_recommendations_evaluate_recommendationId_Response
      • get_v2_report_clients_clientId_Response
      • get_v2_report_clients_custom_clientId_Response
      • post_v2_signature_plans_Response
      • get_v2_sapiens_auth_Response
      • delete_v2_api_key__id_Response
      • get_v2_api_key_Response
      • post_v2_api_key_Response
      • get_v2_group_groupId_clients_Response
      • get_v2_rural_properties_car_carCode_Response
      • get_v2_rural_properties_clientId_clientId_rural_property_propertyId_cisc_Response
      • get_v2_rural_properties_incra_incraNumber_Response
      • get_v2_rural_properties_nirf_nirfCode_Response
      • get_v2_products_Response
      • get_v2_products_list_Response
      • get_v2_products_productCode_price_Response
      • post_v2_check_score_Response
      • get_v2_users_commercial_and_success_Response
      • patch_v2_users_userId_agflow_role_Response
      • get_v2_banks_Response
      • post_v2_terms_accept_Response
      • get_v2_terms_check_Response
      • post_v2_anticipation_Response
      • post_documents_files_Response
      • get_documents_files_idFile_Response
      • patch_documents_files_trash_idFile_Response
      • patch_documents_files_edit_Response
      • patch_documents_files_move_Response
      • get_documents_files_idFile_share_Response
      • get_documents_files_shared_idHashed_Response
      • patch_documents_files_idFile_share_remove_Response
      • post_documents_folders_Response
      • get_documents_folders_idFolder_Response
      • patch_documents_folders_edit_Response
      • patch_documents_folders_move_Response
      • patch_documents_folders_trash_idFolder_Response
      • get_documents_list_clientId_Response
      • post_documents_labels_companyId_Response
      • get_documents_labels_companyId_Response
      • patch_documents_labels_companyId_Response
      • patch_documents_labels_companyId_remove_label_Response
      • post_password_register_tokenURL_Response
      • post_password_resetPassword_Response
      • get_queries_clients_clientId_lawsuits_Response
      • get_queries_clients_clientId_scr_queryId_Response
      • get_queries_clients_clientId_lawsuits_excel_Response
      • post_queries_clients_scr_queryId_Response
      • get_queries_clients_clientId_lawsuits_detailed_Response
      • get_queries_clients_clientId_lawsuits__id_Response
      • post_v2_queries_clients_clientId_scr_ia_analysis_scrId_Response
      • get_v2_lawsuits_updates_clientId_update_status_detailId_Response
      • post_v2_scr_authorization_nutrien_Response
      • get_v2_scr_if_percent_Response
      • post_v2_scr_update_status_Response
      • get_v2_scr_requests_Response
      • post_cpr_additive_clientId_Response
      • post_cpr_cession_clientId_Response
      • post_cpr_cost_Response
      • post_cpr_endorsement_clientId_Response
      • post_cpr_payment_cprId_Response
      • post_cpr_process_cpr_id_Response
      • post_cpr_register_clientId_Response
      • get_cpr_download_Response
      • post_cpr_completed_Response
      • get_cession_generate_download_signed_url_Response
      • get_cession_generate_upload_signed_url_Response
      • get_cession_list_cessions_Response
      • get_cession_list_details_cession_id_Response
      • post_cession_save_cession_Response
      • delete_banner_banner_id_Response
      • get_banner_Response
      • get_banner_banner_id_details_Response
      • get_banner_show_Response
      • delete_notification_notificationId_Response
      • get_notification_Response
      • get_notification_notificationId_detail_Response
      • get_notification_user_Response
      • patch_notification_notificationId_Response
      • post_notification_Response
      • patch_banner_banner_id_Response
      • post_banner_Response
      • delete_assets_fiancial_fiancialId_Response
      • delete_assets_liabilities_liabilitiesId_Response
      • get_assets_clientId_properties_rural_detailed_Response
      • get_assets_ir_status_clientId_Response
      • get_assets_liabilities_clientId_Response
      • get_assets_properties_rural_kml_propertyId_Response
      • get_assets_properties_rural_propertyId_Response
      • patch_assets_fiancial_fiancialId_Response
      • patch_assets_id_properties_mobile_update_Response
      • patch_assets_id_properties_urban_update_Response
      • patch_assets_liabilities_liabilitiesId_Response
      • post_assets_clientId_properties_urban_create_Response
      • post_assets_ir_import_clientId_Response
      • post_assets_liabilities_create_Response
      • post_assets_liabilities_import_SCR_clientId_Response
      • get_v2_cpr_ag_list_Response
      • patch_v2_cpr_ag_pre_register_id_Response
      • post_v2_cpr_ag_cession_clientId_Response
      • post_v2_cpr_ag_cost_Response
      • post_v2_cpr_ag_cprId_cancel_Response
      • post_v2_cpr_ag_endorsement_clientId_Response
      • post_v2_cpr_ag_pre_register_Response
      • post_v2_cpr_ag_register_Response
      • post_v2_cpr_ag_register_id_Response
      • get_clients_client_clientId_Response
      • get_clients_details_Response
      • get_queries_clients_clientId_Response
      • get_queries_clients_clientId_bndes_Response
      • get_queries_clients_clientId_bvs_queryId_Response
      • get_queries_clients_clientId_credit_restrictive_queryId_Response
      • get_queries_clients_clientId_groups_economic_Response
      • get_queries_clients_clientId_groups_family_Response
      • get_queries_clients_clientId_protests_queryId_Response
      • get_queries_clients_clientId_quod_queryId_Response
      • get_queries_clients_clientId_sintegra_Response
      • get_queries_companies_companyId_Response
      • delete_groups_groupId_Response
      • get_groups_groupId_clients_Response
      • get_groups_groupId_clients_details_Response
      • patch_groups_groupId_Response
      • post_groups_groupId_clients_Response
      • get_queries_clients_clientId_cpr_queryId_Response
      • get_assets_clientId_properties_mobile_list_Response
      • get_assets_clientId_properties_rural_Response
      • get_assets_clientId_properties_urban_list_Response
      • get_assets_fiancial_clientId_Response
      • post_assets_clientId_properties_mobile_create_Response
      • post_assets_fiancial_create_Response
      • post_assets_properties_rural_Response
      • get_v2_queries_clients_cars_download_carId_Response
      • get_v2_queries_clients_clientId_contacts_Response
      • get_v2_queries_vehicle_assets_queryId_Response
      • post_v2_queries_clients_clientId_lawsuits_ia_analysis_Response
      • get_queries_clients_clientId_compliance_queryId_Response
      • delete_v2_clients_clientId_contracts_contractId_Response
      • get_v2_clients_Response
      • get_v2_clients_clientId_contracts_Response
      • get_v2_clients_clientId_contracts_contractId_crossing_registryAnalysisId_Response
      • get_v2_clients_clientId_contracts_contractId_details_Response
      • get_v2_clients_clientId_contracts_contractId_export_Response
      • post_v2_clients_clientId_contracts_Response
      • post_v2_clients_clientId_contracts_contractId_property_registration_registryAnalysisId_Response
      • delete_permissions_permissionId_Response
      • get_permissions_Response
      • get_permissions_permissionId_Response
      • get_permissions_user_Response
      • post_permissions_Response
      • put_permissions_permissionId_Response
      • get_v2_cpr_requests_Response
      • get_v2_cpr_requests_requestId_Response
      • post_v2_cpr_update_status_Response
      • delete_v2_radar_rj_records_Response
      • get_v2_radar_rj_Response
      • get_v2_radar_rj_records_Response
      • get_v2_radar_rj_search_Response
      • post_v2_radar_rj_records_Response
      • get_v2_queries_clients_clientId_registry_analysis_without_contract_Response
      • put_v2_queries_clients_clientId_registry_analysis_id_remove_contract_Response
      • get_v2_monitoring_Response
      • ICreateMonitoringModuleBody
      • post_v2_monitoring_Response
      • IUpdateMonitoringModuleBody
      • patch_v2_monitoring_monitoringId_Response
      • post_v2_monitoring_estimate_Response
      • get_v2_monitoring_modules_Response
      • get_v2_monitoring_monitoringId_Response
      • get_v2_monitoring_clients_Response
      • post_v2_monitoring_monitoringId_clients_Response
      • get_v2_monitoring_monitoringId_clients_clientId_Response
      • get_v2_monitoring_alerts_unread_count_Response
      • post_v2_monitoring_monitoringId_deactivate_Response
      • post_v2_monitoring_monitoringId_reactivate_Response
      • get_v2_monitoring_monitoringId_history_Response
      • get_v2_monitoring_monitoringId_queries_Response
      • post_v2_monitoring_tick_Response
      • delete_v2_monitoring_monitoringId_clients_clientId_Response
      • post_v2_monitoring_monitoringId_clients_clientId_alerts_read_Response
      • post_v2_monitoring_validator_Response
      • post_v2_monitoring_finalizer_Response
      • get_cpr_list_Response
      • get_clients_pre_approved_taxId_Response
      • post_clients_Response
      • get_queries_clients_clientId_cpr_details_cercPublicidadeCprsId_Response
      • get_queries_clients_clientId_filters_Response
      • get_queries_clients_clientId_registered_warehouses_queryId_Response
      • get_queries_queryId_general_status_Response
      • post_clients_clients_exportation_Response
      • post_documents_files_clients_clientId_scr_auth_Response
      • get_companies_Response
      • get_companies_by_tax_id_taxId_Response
      • get_companies_companyId_Response
      • get_companies_companyId_excel_Response
      • get_companies_companyId_users_Response
      • get_companies_excel_survey_recommendation_Response
      • get_companies_survey_recommendation_userAlreadyExists_Response
      • get_companies_users_customerSuccessAnalyst_Response
      • get_companies_users_userId_Response
      • patch_companies_companyId_Response
      • patch_companies_users_userId_Response
      • post_companies_Response
      • post_companies_query_consume_Response
      • post_companies_users_validate_Response
      • get_groups_Response
      • patch_groups_groupId_clients_clientId_add_Response
      • patch_groups_groupId_clients_clientId_remove_Response
      • post_groups_Response
      • post_groups_group_expanded_Response
      • get_queries_clients_clientId_documents_queryId_Response
      • get_queries_clients_clientId_excel_queryId_Response
      • get_queries_file_documents_Response
      • post_queries_Response
      • post_queries_clients_clientId_finance_Response
      • delete_assets_clients_clientId_properties_rural_propertyId_Response
      • get_assets_ir_ir_extraction_status_id_irExtractionStatusId_Response
      • patch_assets_id_properties_mobile_delete_Response
      • patch_assets_id_properties_urban_delete_Response
      • get_balance_Response
      • get_balance_companyId_log_Response
      • get_services_Response
      • post_v2_files_clients_clientId_Response
      • post_v2_files_clients_clientId_ag_ia_download_Response
      • post_v2_files_clients_clientId_ag_ia_upload_Response
      • get_v2_login_users_Response
      • post_v2_login_Response
      • post_v2_login_microsoft_Response
      • post_v2_login_user_Response
      • post_v2_billing_Response
      • post_v2_billing_negativation_clients_clientId_Response
      • post_v2_clients_clientId_contracts_contractId_property_registration_Response
      • post_v2_clients_clientId_contracts_contractId_property_registration_batch_Response
      • get_v2_cultures_Response
      • delete_v2_queries_clients_clientId_registry_analysis_id_Response
      • delete_v2_queries_clients_clientId_report_extraction_id_Response
      • get_v2_queries_clients_cars_id_Response
      • get_v2_queries_clients_cars_id_stream_Response
      • get_v2_queries_clients_cars_kml_id_Response
      • get_v2_queries_clients_clientId_Response
      • get_v2_queries_clients_clientId_compliance_queryId_Response
      • get_v2_queries_clients_clientId_latest_Response
      • get_v2_queries_clients_clientId_products_Response
      • get_v2_queries_clients_clientId_queryId_cars_Response
      • get_v2_queries_clients_clientId_queryId_cars_detailed_Response
      • get_v2_queries_clients_clientId_registry_analysis_Response
      • get_v2_queries_clients_clientId_registry_analysis_id_Response
      • get_v2_queries_clients_clientId_report_extraction_Response
      • get_v2_queries_clients_clientId_report_extraction_id_detailed_Response
      • get_v2_queries_clients_clientId_scpc_net_queryId_Response
      • get_v2_queries_clients_clientId_scr_resume_queryId_Response
      • get_v2_queries_queryId_credit_restrictive_negativation_Response
      • get_v2_queries_send_webhook_clientId_Response
      • patch_v2_queries_clients_cars_id_Response
      • patch_v2_queries_clients_clientId_report_extraction_id_Response
      • patch_v2_queries_property_registry_propertyRegistryId_Response
      • post_v2_queries_clients_cars_id_Response
      • post_v2_queries_clients_clientId_cars_property_amounts_Response
      • post_v2_queries_clients_clientId_queryId_cars_coords_Response
      • post_v2_queries_clients_clientId_queryId_cars_create_Response
      • post_v2_queries_clients_clientId_queryId_cars_file_Response
      • post_v2_queries_clients_clientId_registry_analysis_Response
      • post_v2_queries_clients_clientId_report_extraction_Response
      • post_v2_queries_clients_clientId_report_extraction_consolidated_Response
      • post_v2_queries_clients_clientId_report_extraction_id_new_analysis_Response
      • post_v2_queries_clients_clientId_report_extraction_id_new_indicators_Response
      • post_v2_queries_file_Response
      • post_v2_queries_property_registry_clientId_Response
      • delete_v2_rural_production_clientId_production_productionId_Response
      • delete_v2_rural_production_reference_referenceId_Response
      • get_v2_rural_production_clientId_consolidated_excel_Response
      • get_v2_rural_production_clientId_filters_Response
      • get_v2_rural_production_clientId_production_Response
      • get_v2_rural_production_clientId_production_excel_Response
      • get_v2_rural_production_clientId_production_production_id_Response
      • get_v2_rural_production_clientId_rural_properties_import_Response
      • get_v2_rural_production_references_Response
      • get_v2_rural_production_references_referenceId_Response
      • post_v2_rural_production_clientId_production_Response
      • post_v2_rural_production_clientId_production_calc_Response
      • post_v2_rural_production_references_Response
      • put_v2_rural_production_clientId_production_productionId_Response
      • put_v2_rural_production_references_referenceId_Response
      • get_v2_users_validate_email_Response
      • get_clients_client_report_export_clientId_Response
      • patch_clients_clientId_delete_Response
      • post_clients_client_report_Response
      • get_queries_clients_clientId_compliance_Response
      • get_queries_clients_clientId_cpr_details_Response
      • get_queries_clients_clientId_protests_Response
      • get_queries_excelSema_clients_clientId_compliance_queryId_Response
      • post_companies_companyId_users_Response
      • post_companies_survey_recommendation_Response
      • patch_products_productId_Response
      • post_products_Response
      • post_v2_agflow_Response
      • post_v2_agflow_publish_queries_Response
      • post_v2_sapiens_create_Response
      • post_v2_banks_Response
      • get_v2_car_carCode_Response
      • post_v2_monitoring_monitoringId_clients_clientId_alerts_clear_Response
      • post_v2_monitoring_monitoringId_queries_seen_Response
  • AgFlow
    • 🇧🇷 Português
      • Introdução
      • 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
        • Obter gatilho
      • 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
        • Listar permissões de um papel
      • 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
        • Listar templates
      • 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
      • Clientes
        • Clientes — Visão geral
        • Consultar dados AgRisk do cliente
        • Listar cards do cliente
        • Criar cliente
        • Obter cliente
        • Listar clientes
        • Atualizar cliente
    • 🇺🇸 English
      • Getting Started
      • 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
        • Get trigger
      • 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
        • List role permissions
      • 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
        • List templates
      • 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
      • Clients
        • Clients — Overview
        • Get client AgRisk data
        • List client cards
        • Create client
        • Get client
        • List clients
        • Update client
    • 🇧🇷 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
  • cenPROT
    • Raiz
      • Motor CENPROT (novo módulo) v0.1.0
      • Tarefa
        • Processar consulta CENPROT
      • Exportação
        • Exportar resultado CENPROT em XLSX
    • Documentação
    • Esquemas
      • CenprotError
  1. Carteiras

Gestão da carteira

Carteiras (Portfolios) — Regras de Negócio#

1. Conceito#

O Portfolio é a entidade de agrupamento de carteiras e operações de crédito dentro da plataforma. Uma empresa pode criar múltiplos portfolios independentes, organizando sua carteira conforme a estrutura que fizer sentido para o negócio — por unidade/filial, por safra, por tipo de operação, por produto, ou livremente.
Cada portfolio é um silo isolado: contratos pertencem a exatamente um portfolio, e não existe visão consolidada. Os indicadores, relatórios e filtros operam sempre dentro do escopo de um portfolio específico.
Dentro de cada portfolio, a empresa pode criar Carteiras — agrupamentos nomeados que permitem segmentar contratos para fins operacionais e de controle de acesso.

1.1. Modelo de organização#

Empresa (Company)
├── Portfolio "Safra 2024/2025"
│   ├── Carteira "Analista A — Região Sul"
│   │   ├── Contrato CPR-001
│   │   └── Contrato CPR-002
│   └── Carteira "Analista B — Região Norte"
│       └── Contrato CPR-003
├── Portfolio "Duplicatas — SP"
│   └── Carteira "Padrão"
│       ├── Contrato CT-001
│       └── Contrato CT-002
└── Portfolio "CCBs — Crédito Rural"
    └── Carteira "Padrão"
        └── Contrato CCB-001
Hierarquia: Empresa → Portfolio (1..N) → Carteira (1..N por portfolio) → Contratos.
Todo contrato pertence a exatamente uma carteira, e toda carteira pertence a exatamente um portfolio. Não há acesso direto a contratos pelo portfolio — contratos vivem dentro de carteiras. O portfolio é uma camada de agrupamento e apresentação consolidada das suas carteiras.

1.2. Modelo de acesso#

A visibilidade dos portfolios, carteiras e demais recursos do módulo é determinada pela combinação de duas dimensões independentes:
1.
Permissão RBAC sobre o resource — portfolio:read, contract:read, etc. Define o que o usuário pode fazer.
2.
Atribuição direta 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, em qualquer carteira filha.
CarteiraSubPortfolioUserUsuário enxerga apenas os contratos da(s) carteira(s) à(s) qual(is) está atribuído (escopo restrito dentro do portfolio).
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 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 UNIT_RESTRICTED. O escopo de unit usado em outros módulos da plataforma (separação matriz/filial) não se aplica ao módulo de Portfolio Management. A visibilidade aqui é independente da estrutura organizacional de units.
Carteiras são obrigatórias para receber contratos. Um portfolio pode existir vazio (recém-criado, sem carteiras), mas não é possível vincular contratos a um portfolio diretamente — a empresa precisa criar ao menos uma carteira antes. Carteiras são as entidades que efetivamente armazenam os vínculos com contratos, pagamentos e baixas, permitindo segmentação operacional (por gestor, região, produto, etc.) e atribuição de visibilidade a usuários específicos.

2. Estruturas de Dados#

2.1. Portfolio#

Criado por ação explícita do usuário. Uma empresa pode ter múltiplos portfolios ativos simultaneamente.
CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único do portfolio.
companyIdUUIDSimEmpresa à qual o portfolio pertence.
nameStringSimNome do portfolio (ex: "Safra 2024/2025", "Duplicatas — Filial SP"). Único por empresa.
descriptionStringNãoDescrição do propósito ou critério de agrupamento do portfolio.
statusEnumSimEstado: ACTIVE, INACTIVE.
createdByObjectSimUsuário que criou o portfolio, hidratado: { id, name }. No armazenamento permanece como UUID flat.
createdAtDateTimeSimData de criação.
updatedAtDateTimeSimData da última atualização.

2.2. PortfolioSummary (objeto calculado)#

Calculado sob demanda a partir dos contratos e pagamentos (parcelas) do portfolio dentro do período informado. Não é armazenado — derivado em tempo de leitura. Todos os campos numéricos acompanham um campo delta em relação ao período anterior equivalente.
O período de referência é informado via query params (startDate / endDate). Quando omitido, o sistema assume todas as informações do portfolio.

Indicadores principais#

CampoTipoDescrição
totalReceivableDecimalSoma do valor em aberto de todos os pagamentos (parcelas) com status PENDING ou PARTIALLY_PAID no período.
totalReceivableDeltaDecimalVariação percentual em relação ao período anterior.
totalOverdueDecimalSoma do valor em aberto de todos os pagamentos (parcelas) com status OVERDUE.
totalOverdueDeltaDecimalVariação percentual em relação ao período anterior.
defaultersIntegerNúmero de devedores únicos com ao menos um pagamento (parcela) OVERDUE.
defaultersDeltaIntegerVariação absoluta.
activeContractsIntegerContratos com status = ACTIVE.
activeContractsDeltaIntegerVariação absoluta.
overdueContractsIntegerContratos com ao menos um pagamento (parcela) OVERDUE.
overdueContractsDeltaIntegerVariação absoluta.
overduePaymentsIntegerTotal de pagamentos (parcelas) com status OVERDUE.
overduePaymentsDeltaIntegerVariação absoluta.

Análise de efetividade#

CampoTipoDescrição
recoveryRateDecimalPercentual do valor vencido efetivamente recebido no período.
recoveryRateDeltaDecimalVariação em pontos percentuais.
averageReceivingDaysIntegerTempo médio em dias entre vencimento e liquidação.
averageReceivingDaysDeltaIntegerVariação absoluta em dias.

2.3. SubPortfolio (Carteira)#

Agrupamento nomeado obrigatório criado dentro de um portfolio. É a entidade onde os contratos efetivamente são vinculados — todo contrato pertence a exatamente uma carteira (subPortfolioId). O nome técnico da entidade no código permanece SubPortfolio (refletindo a hierarquia: portfolio é a carteira-pai); o rótulo PT-BR exibido na UI e na documentação de negócio é "Carteira".
CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único da carteira.
companyIdUUIDSimEmpresa à qual a carteira pertence.
portfolioIdUUIDSimPortfolio ao qual a carteira pertence.
nameStringSimNome da carteira. Único dentro do portfolio.
descriptionStringNãoDescrição opcional do critério de agrupamento.
userObjectNãoUsuário responsável (gestor) pela carteira, hidratado: { id, name }. No armazenamento permanece como UUID flat.
statusEnumSimEstado: ACTIVE, INACTIVE.
createdByObjectSimUsuário que criou a carteira, hidratado: { id, name }. No armazenamento permanece como UUID flat.
createdAtDateTime (ISO 8601 UTC)SimData de criação.
updatedAtDateTime (ISO 8601 UTC)SimData da última atualização.

2.3.1. SubPortfolioSummary (objeto calculado)#

Calculado sob demanda a partir dos contratos e parcelas da carteira. Mesma estrutura do PortfolioSummary (seção 2.2), mas no escopo de uma única carteira. Acessado via GET /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId no campo summary da resposta.
O PortfolioSummary é a agregação dos SubPortfolioSummary das carteiras filhas do portfolio — todos os indicadores numéricos do portfolio são a soma dos respectivos indicadores das suas carteiras.

2.4. Vínculo Contrato ↔ Carteira#

A relação entre contrato e carteira é representada como o campo subPortfolioId obrigatório na entidade Contract (ver Contratos.md). Não existe entidade de vínculo separada. O contrato é criado já indicando a carteira de destino, e o campo pode ser alterado posteriormente para mover o contrato entre carteiras do mesmo portfolio via PATCH .../contracts/:contractId.
Não é permitido subPortfolioId = null em um contrato — todo contrato precisa estar atribuído a exatamente uma carteira do seu portfolio.

2.5. PortfolioUser (Vínculo Usuário ↔ Portfolio)#

Atribui um usuário do tenant a um portfolio inteiro. Usuários atribuídos enxergam todos os contratos do portfolio, independentemente de carteira.
CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único do vínculo.
portfolioIdUUIDSimReferência ao portfolio.
userObjectSimUsuário tenant vinculado, hidratado: { id, name }. No armazenamento permanece como UUID flat.
assignedByObjectSimUsuário que realizou a atribuição, hidratado: { id, name }. No armazenamento permanece como UUID flat.
assignedAtDateTimeSimData e hora da atribuição.
createdAtDateTimeSimData de criação do registro.

2.6. SubPortfolioUser (Vínculo Usuário ↔ Carteira)#

Atribui um usuário do tenant a uma carteira específica. Usuários atribuídos enxergam apenas os contratos daquela carteira (refinamento do escopo de visibilidade dentro do portfolio).
CampoTipoObrigatórioDescrição
idUUIDSimIdentificador único do vínculo.
subPortfolioIdUUIDSimReferência à carteira.
userObjectSimUsuário tenant vinculado, hidratado: { id, name }. No armazenamento permanece como UUID flat.
assignedByObjectSimUsuário que realizou a atribuição, hidratado: { id, name }. No armazenamento permanece como UUID flat.
assignedAtDateTime (ISO 8601 UTC)SimData e hora da atribuição.
createdAtDateTime (ISO 8601 UTC)SimData de criação do registro.

3. Regras de Negócio#

3.1. Portfolio#

RN-PORT-001: Criação explícita
Portfolios são criados por ação explícita do usuário. Não existe portfolio auto-criado. Uma empresa pode ter N portfolios ativos simultaneamente.
RN-PORT-002: Nome único por empresa
O campo name deve ser único dentro da empresa. Erro: PORTFOLIO_NAME_ALREADY_EXISTS.
RN-PORT-003: Silo isolado
Cada portfolio é independente. Um contrato pertence a exatamente um portfolio (por meio da sua carteira). Não existe visão consolidada cross-portfolio. Indicadores são sempre calculados no escopo de um portfolio (agregando suas carteiras).
RN-PORT-003B: Acesso a contratos apenas via carteira
Não há acesso direto a contratos pelo portfolio. Contratos são listados, criados e gerenciados sempre no escopo de uma carteira. O endpoint de detalhe do portfolio retorna apenas metadados, lista de carteiras filhas e indicadores agregados — nunca a lista de contratos diretamente.
RN-PORT-004: Desativação
Um portfolio só pode ser desativado se não possuir contratos em estados não-terminais (DRAFT, ACTIVE, OVERDUE, DEFAULTED). Todos os contratos devem estar em estados terminais (CLOSED, CANCELLED ou RENEGOTIATED) antes da desativação. Erro: PORTFOLIO_HAS_ACTIVE_CONTRACTS.
RN-PORT-005: Desativação em cascata pela empresa
Quando uma empresa transita para INACTIVE, todos os seus portfolios são automaticamente desativados. Todas as carteiras e vínculos de usuários (tanto PortfolioUser quanto SubPortfolioUser) são removidos em cascata.
RN-PORT-006: Exclusão lógica
Portfolios nunca são deletados fisicamente. Desativação via status = INACTIVE.

3.2. Carteiras#

RN-SUBPORT-001: Vínculo obrigatório ao portfolio + carteira como pré-condição para contratos
Toda carteira deve estar vinculada a um portfolio via portfolioId. Não é possível criar carteiras em portfolios com status = INACTIVE. Erro: PORTFOLIO_INACTIVE.
Para que um portfolio possa receber contratos, ele precisa ter ao menos uma carteira ativa. A carteira não é criada automaticamente — a empresa precisa criá-la explicitamente após criar o portfolio. Tentativas de criar contrato em portfolio sem carteira ativa retornam erro PORTFOLIO_HAS_NO_SUB_PORTFOLIO.
RN-SUBPORT-002: Nome único por portfolio
O campo name deve ser único dentro do portfolio (não da empresa). Carteiras de portfolios diferentes podem ter o mesmo nome. Erro: SUB_PORTFOLIO_NAME_ALREADY_EXISTS.
RN-SUBPORT-003: Pré-condições para desativação
Uma carteira só pode ser desativada se não houver contratos vinculados em estados não-terminais (DRAFT, ACTIVE, OVERDUE, DEFAULTED). O usuário deve mover ou encerrar todos os contratos ativos antes da desativação. Erro: SUB_PORTFOLIO_HAS_CONTRACTS.
RN-SUBPORT-004: Impacto sobre acesso de usuários
Ao desativar uma carteira, todos os vínculos de SubPortfolioUser são removidos automaticamente. Os contratos permanecem no portfolio.
RN-SUBPORT-005: Exclusão lógica
Carteiras nunca são deletadas fisicamente.

3.3. Vínculo Contrato ↔ Carteira#

A relação contrato ↔ carteira é representada pelo campo subPortfolioId obrigatório na entidade Contract (não há entidade de vínculo separada).
RN-CONT-SUBPORT-001: subPortfolioId obrigatório
Todo contrato deve ter subPortfolioId preenchido — não é permitido null. O contrato é criado já indicando a carteira de destino. Erro: SUB_PORTFOLIO_REQUIRED.
RN-CONT-SUBPORT-002: Unicidade
Um contrato pertence a exatamente uma carteira por vez (subPortfolioId é um campo único, não uma lista). Mover entre carteiras é feito sobrescrevendo o subPortfolioId com o ID da nova carteira via PATCH .../contracts/:contractId.
RN-CONT-SUBPORT-003: Consistência portfolio × contrato
A carteira indicada em subPortfolioId deve pertencer ao mesmo portfolio do contrato (portfolioId). Erro: CONTRACT_PORTFOLIO_MISMATCH.
RN-CONT-SUBPORT-004: Atribuição/movimentação manual
A movimentação entre carteiras é sempre explícita e manual, via PATCH .../contracts/:contractId informando o novo subPortfolioId. Permissão requerida: portfolio:assign_contract.
RN-CONT-SUBPORT-005: Movimentação não afeta dados do contrato
Mover o contrato para outra carteira não altera demais campos do contrato. O contrato permanece no mesmo portfolio (não é permitido mover entre portfolios).
RN-CONT-SUBPORT-006: Ciclo de vida do contrato não altera o vínculo
Transições de status do contrato não alteram o subPortfolioId. O contrato permanece atribuído à carteira até ser explicitamente movido.

3.4. Vínculo Usuário ↔ Portfolio#

RN-PORT-USER-001: Consistência empresa × usuário
O usuário deve ser um tenant vinculado à mesma empresa do portfolio. Vínculos com usuários de outras empresas ou internos são bloqueados. Erro: USER_COMPANY_MISMATCH.
RN-PORT-USER-002: Visibilidade total no portfolio
Usuário atribuído a um portfolio enxerga todos os contratos daquele portfolio, incluindo os atribuídos a qualquer carteira.
RN-PORT-USER-003: Múltiplos portfolios por usuário
Um usuário pode estar atribuído a múltiplos portfolios da mesma empresa. Enxerga a união dos contratos de todos os portfolios aos quais está vinculado.
RN-PORT-USER-004: Remoção ao desativar usuário
Quando um usuário é desativado, todos os seus vínculos com portfolios são removidos.

3.5. Vínculo Usuário ↔ Carteira#

RN-SUBPORT-USER-001: Consistência empresa × usuário
O usuário deve ser um tenant vinculado à mesma empresa do portfolio. Vínculos com usuários de outras empresas ou internos são bloqueados. Erro: USER_COMPANY_MISMATCH.
RN-SUBPORT-USER-002: Visibilidade restrita à carteira
Usuário atribuído apenas a carteira(s) específica(s) — sem atribuição direta ao portfolio que as contém — enxerga somente os contratos daquela(s) carteira(s).
RN-SUBPORT-USER-003: Atribuição cumulativa com portfolio
Usuário atribuído tanto ao portfolio quanto a carteiras do mesmo portfolio mantém a visibilidade ampla concedida pelo portfolio. A atribuição à carteira é redundante nesse cenário, mas permitida.
RN-SUBPORT-USER-004: Múltiplas carteiras por usuário
Um usuário pode estar vinculado a carteiras de portfolios diferentes. Enxerga a união dos contratos de todas as carteiras às quais está vinculado.
RN-SUBPORT-USER-005: Remoção ao desativar usuário
Quando um usuário é desativado, todos os seus vínculos com carteiras são removidos.

4. Padrão de Erros e Paginação#

4.1. Formato padrão de erro#

{
  "error": "CODIGO_DO_ERRO",
  "message": "Descrição legível do problema.",
  "details": {}
}

4.2. Códigos de erro comuns#

StatusCódigoDescrição
401 UnauthorizedUNAUTHORIZEDToken JWT ausente, expirado ou inválido.
403 ForbiddenFORBIDDENPermissão insuficiente.
404 Not FoundPORTFOLIO_NOT_FOUNDPortfolio não encontrado ou não pertence à empresa.
404 Not FoundSUB_PORTFOLIO_NOT_FOUNDCarteira não encontrada.
404 Not FoundCONTRACT_NOT_FOUNDContrato não encontrado.
404 Not FoundUSER_NOT_FOUNDUsuário não encontrado.
500 Internal Server ErrorINTERNAL_SERVER_ERRORErro inesperado.

4.3. Códigos de erro específicos#

StatusCódigoDescrição
409 ConflictPORTFOLIO_NAME_ALREADY_EXISTSNome de portfolio duplicado na empresa.
422 Unprocessable EntityPORTFOLIO_INACTIVEPortfolio inativo — operação não permitida.
422 Unprocessable EntityPORTFOLIO_HAS_ACTIVE_CONTRACTSPortfolio possui contratos ativos e não pode ser desativado.
422 Unprocessable EntityPORTFOLIO_HAS_NO_SUB_PORTFOLIOTentativa de criar contrato em portfolio sem carteira ativa. Criar uma carteira primeiro.
409 ConflictSUB_PORTFOLIO_NAME_ALREADY_EXISTSNome de carteira duplicado no portfolio.
422 Unprocessable EntitySUB_PORTFOLIO_HAS_CONTRACTSCarteira possui contratos em estados não-terminais e não pode ser desativada.
422 Unprocessable EntitySUB_PORTFOLIO_INACTIVECarteira inativa.
422 Unprocessable EntitySUB_PORTFOLIO_REQUIREDContrato sendo criado sem subPortfolioId. O campo é obrigatório.
422 Unprocessable EntityCONTRACT_PORTFOLIO_MISMATCHCarteira informada não pertence ao portfolio do contrato.
422 Unprocessable EntityUSER_COMPANY_MISMATCHUsuário não pertence à empresa.
422 Unprocessable EntityINTERNAL_USER_NOT_ALLOWEDUsuários internos não podem ser vinculados.
409 ConflictUSER_ALREADY_ASSIGNEDUsuário já vinculado ao portfolio ou à carteira.
404 Not FoundUSER_ASSIGNMENT_NOT_FOUNDVínculo usuário-portfolio ou usuário-carteira não encontrado.

4.4. Formato padrão de paginação#

Todas as listagens da plataforma seguem o padrão offset/limit.
Parâmetros aceitos na request (query string):
ParâmetroTipoDefaultDescrição
offsetInteger0Quantidade de registros a pular antes de começar a retornar.
limitInteger20Quantidade máxima de registros por página. Máximo: 100.
Estrutura padrão de response paginado:
{
  "items": [ ... ],
  "nextPage": true
}
items: array com os registros da página atual.
nextPage: indica se existe uma próxima página. true quando há mais registros após os retornados; false quando a página atual é a última.
Parâmetros offset e limit enviados na request não são retornados no response (o cliente já os conhece). Não há campo total no response da v1 — listagens não dependem de "página X de Y".

5. Endpoints#

Base path para todos os endpoints deste módulo:
/v2/companies/:companyId/portfolios

5.1. CRUD de Portfolios#

POST /v2/companies/:companyId/portfolios#

Cria um novo portfolio.
Permissão requerida: portfolio:create
Request body:
{
  "name": "Safra 2024/2025",
  "description": "Contratos de crédito rural vinculados à safra 24/25."
}
No request, apenas user.id é necessário (e aceito).
Response 201 Created:
{
  "id": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
  "companyId": "a1b2c3d4-0000-0000-0000-000000000001",
  "name": "Safra 2024/2025",
  "description": "Contratos de crédito rural vinculados à safra 24/25.",
  "status": "ACTIVE",
  "createdBy": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "name": "João Silva"
  },
  "createdAt": "2025-03-17T09:00:00.000+00:00",
  "updatedAt": "2025-03-17T09:00:00.000+00:00"
}
Erros: PORTFOLIO_NAME_ALREADY_EXISTS, USER_COMPANY_MISMATCH (quando user.id informado é inválido).

GET /v2/companies/:companyId/portfolios#

Lista os portfolios da empresa.
Permissão requerida: portfolio:read
Query params:
ParâmetroTipoObrigatórioDescrição
statusEnumNãoFiltrar por ACTIVE ou INACTIVE.
orderByEnumNãoOrdenação: name, createdAt. Default: name.
orderEnumNãoasc ou desc. Default: asc.
offsetIntegerNãoDefault: 0.
limitIntegerNãoDefault: 20. Máximo: 100.
Response 200 OK:
{
  "items": [
    {
      "id": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
      "companyId": "a1b2c3d4-0000-0000-0000-000000000001",
      "name": "Safra 2024/2025",
      "description": "Contratos de crédito rural vinculados à safra 24/25.",
      "status": "ACTIVE",
      "summary": {
        "subPortfolios": 45,
        "value": 12500000.00
      },
      "createdBy": {
        "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
        "name": "João Silva"
      },
      "createdAt": "2025-03-17T09:00:00.000+00:00",
      "updatedAt": "2025-03-17T09:00:00.000+00:00"
    }
  ],
    "summary": {
        "activeContracts": 45,
        "value": 12500000.00
        },
  "nextPage": false
}
A listagem retorna summary.activeContracts e summary.value como campos resumidos para contexto — sem o cálculo completo do PortfolioSummary (que vai no detalhe).

GET /v2/companies/:companyId/portfolios/:portfolioId#

Retorna o detalhe do portfolio com indicadores consolidados.
Permissão requerida: portfolio:read
Query params:
ParâmetroTipoObrigatórioDescrição
startDateDatetime (UTC)NãoInício do período para summary. Default: primeiro dia do ano corrente.
endDateDatetime (UTC)NãoFim do período. Default: último dia do ano corrente.
Response 200 OK:
{
  "id": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
  "companyId": "a1b2c3d4-0000-0000-0000-000000000001",
  "name": "Safra 2024/2025",
  "description": "Contratos de crédito rural vinculados à safra 24/25.",
  "status": "ACTIVE",
  "createdBy": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "name": "João Silva"
  },
  "createdAt": "2025-03-17T13:32:32.209+00:00",
  "updatedAt": "2025-03-17T13:32:32.209+00:00",
  "summary": {
/**    "period": {
      "startDate": "2025-01-01T13:32:32.209+00:00",
      "endDate": "2025-12-31T13:32:32.209+00:00"
    },**/
    "Receivable": 2847350.00,
    "ReceivableDelta": 5.2,
    "Overdue": 892150.00,
    "OverdueDelta": 2.1,
    "defaulters": 127,
    "defaultersDelta": -3,
    "activeContracts": 45,
    "activeContractsDelta": 12,
    "overdueContracts": 8,
    "overdueContractsDelta": 2,
    "overduePayments": 23,
    "overduePaymentsDelta": 3,
    "recoveryRate": 68.5,
    "recoveryRateDelta": 2.3,
    "averageReceivingDays": 18,
    "averageReceivingDaysDelta": -3
  }
}
No detalhe do portfolio, o summary é a agregação dos SubPortfolioSummary das carteiras filhas. O portfolio não devolve a lista de contratos — a UI obtém essa informação via GET .../sub-portfolios/:subPortfolioId/contracts ou GET .../portfolios/:portfolioId/contracts?subPortfolioId=....
Erros: PORTFOLIO_NOT_FOUND, INVALID_DATE_RANGE.

PATCH /v2/companies/:companyId/portfolios/:portfolioId#

Atualiza atributos editáveis do portfolio: name, description
Permissão requerida: portfolio:update
Request body:
{
  "name": "Safra 2024/2025 — Soja e Milho",
  "description": "Contratos de crédito rural para soja e milho, safra 24/25."
}
Response 200 OK: Retorna o portfolio atualizado (mesmo formato do GET detalhe).
Erros: PORTFOLIO_NAME_ALREADY_EXISTS, PORTFOLIO_INACTIVE, USER_COMPANY_MISMATCH (quando user.id é informado e o usuário não pertence à empresa).

PUT /v2/companies/:companyId/portfolios/:portfolioId/status#

Ativa ou desativa um portfolio (substituição completa do status).
Permissão requerida: portfolio:delete
Request body:
{
  "status": "INACTIVE"
}
Response 200 OK:
{
  "id": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
  "status": "INACTIVE",
  "updatedAt": "2025-03-17T11:00:00.000+00:00"
}
Erros: PORTFOLIO_HAS_ACTIVE_CONTRACTS.

5.2. Carteiras#

POST /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios#

Cria uma carteira dentro do portfolio.
Permissão requerida: portfolio:create
Request body:
{
  "name": "Analista João — Região Sul",
  "description": "Contratos da região Sul sob responsabilidade do analista João.",
  "user": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851"
  }
}
Response 201 Created:
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "companyId": "a1b2c3d4-0000-0000-0000-000000000001",
  "portfolioId": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
  "name": "Analista João — Região Sul",
  "description": "Contratos da região Sul sob responsabilidade do analista João.",
  "user": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "name": "João Silva"
  },
  "status": "ACTIVE",
  "createdBy": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "name": "João Silva"
  },
  "createdAt": "2025-03-17T13:32:32.209+00:00",
  "updatedAt": "2025-03-17T13:32:32.209+00:00"
}
Erros: SUB_PORTFOLIO_NAME_ALREADY_EXISTS, PORTFOLIO_INACTIVE, USER_COMPANY_MISMATCH (quando user.id informado é inválido).

GET /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios#

Lista carteiras do portfolio com indicadores resumidos para cada uma. Esta é a porta de entrada padrão da UI quando o gestor abre um portfolio.
Permissão requerida: portfolio:read
Query params:
ParâmetroTipoObrigatórioDescrição
statusEnumNãoFiltrar por ACTIVE ou INACTIVE.
orderByEnumNãoOrdenação: name, createdAt. Default: name.
orderEnumNãoasc ou desc. Default: asc.
offsetIntegerNãoDefault: 0.
limitIntegerNãoDefault: 20. Máximo: 100.
Response 200 OK:
{
  "items": [
    {
      "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "portfolioId": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
      "name": "Analista João — Região Sul",
      "description": "Contratos da região Sul sob responsabilidade do analista João.",
      "user": {
        "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
        "name": "João Silva"
      },
      "status": "ACTIVE",
      "summary": {
        "activeContracts": 12,
        "value": 3500000.00,
        "overdue": 100000.00
      },
      "createdAt": "2025-03-17T13:32:32.209+00:00"
    }
  ],
  "nextPage": false
}

GET /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId#

Detalhe da carteira com SubPortfolioSummary completo (mesma estrutura do PortfolioSummary, ver seção 2.2/2.3.1, mas no escopo desta carteira).
Permissão requerida: portfolio:read
Query params:
ParâmetroTipoObrigatórioDescrição
startDateDatetime (UTC)NãoInício do período para summary. Default: primeiro dia do ano corrente.
endDateDatetime (UTC)NãoFim do período. Default: último dia do ano corrente.
Response 200 OK: Mesma estrutura do GET /portfolios/:portfolioId, mas restrita aos contratos desta carteira (ver PortfolioSummary em 2.2 para os campos do summary).

PATCH /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId#

Atualiza atributos editáveis da carteira: name, description, user (envia apenas { "user": { "id": "..." } }).
Erros: SUB_PORTFOLIO_NAME_ALREADY_EXISTS, SUB_PORTFOLIO_INACTIVE, USER_COMPANY_MISMATCH.

PUT /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/status#

Ativa ou desativa a carteira (substituição completa do status).
Erros: SUB_PORTFOLIO_HAS_CONTRACTS.

5.3. Vinculação de contratos a carteiras#

A vinculação de um contrato a uma carteira não é feita por endpoint próprio neste módulo. É representada como o campo subPortfolioId (obrigatório) na entidade Contract e definida no POST do contrato (ver Contratos.md). Para mover um contrato entre carteiras do mesmo portfolio, atualiza-se o campo via PATCH .../portfolios/:portfolioId/contracts/:contractId informando o novo subPortfolioId.
Criação: o subPortfolioId é obrigatório no POST do contrato (POST .../portfolios/:portfolioId/contracts).
Movimentação: PATCH .../contracts/:contractId com novo subPortfolioId no body.
Listar contratos de uma carteira específica: GET .../portfolios/:portfolioId/contracts?subPortfolioId=... ou via endpoint dedicado da carteira (ver Contratos.md).
Não é permitido subPortfolioId = null — todo contrato sempre pertence a uma carteira.
Permissão requerida: portfolio:assign_contract.

5.4. Vínculos de Usuários — Portfolio#

Atribui usuários do tenant a portfolios inteiros. Usuários atribuídos enxergam todos os contratos do portfolio (incluindo carteiras).

POST /v2/companies/:companyId/portfolios/:portfolioId/assigned-users#

Vincula um usuário a um portfolio.
Permissão requerida: portfolio:assign_user
Request body:
{
  "user": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "role": "d290f1..."
  }
}
Response 201 Created:
{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "portfolioId": "e3b0c442-98fc-1c14-9afb-f4c8996fb924",
  "user": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "name": "João Silva"
  },
  "assignedBy": {
    "id": "a1b2c3d4-1111-2222-3333-444455556666",
    "name": "Maria Santos"
  },
  "assignedAt": "2025-03-17T13:32:32.209+00:00",
  "createdAt": "2025-03-17T13:32:32.209+00:00"
}
Erros: USER_ALREADY_ASSIGNED, USER_COMPANY_MISMATCH, INTERNAL_USER_NOT_ALLOWED.

GET /v2/companies/:companyId/portfolios/:portfolioId/assigned-users#

Lista usuários vinculados ao portfolio. Paginação padrão. Cada item segue o formato do response do POST.

DELETE /v2/companies/:companyId/portfolios/:portfolioId/assigned-users/:userId#

Remove vínculo do usuário com o portfolio. O :userId na rota é o user.id.
Response 204 No Content
Erros: USER_ASSIGNMENT_NOT_FOUND.

5.5. Vínculos de Usuários — Carteira (subPortfolio)#

Atribui usuários do tenant a uma carteira específica. Usuários atribuídos apenas a carteira(s) — sem atribuição direta ao portfolio que as contém — enxergam somente os contratos daquela(s) carteira(s).

POST /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/assigned-users#

Vincula um usuário a uma carteira.
Permissão requerida: portfolio:assign_user
Request body:
{
  "user": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "role": "d290f1..."
  }
}
Response 201 Created:
{
  "id": "b9d3f1aa-22cc-4e72-b430-1e45a3d6e001",
  "subPortfolioId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "user":[
   {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "name": "João Silva",
    "role": "d290f1..."
  },  
   {
    "id": "d2901...",
    "name": "Pedro Henrique",
    "role": "d290f1..."
  }
  ],
  "assignedBy": {
    "id": "a1b2c3d4-1111-2222-3333-444455556666",
    "name": "Maria Santos"
  },
  "assignedAt": "2025-03-17T13:32:32.209+00:00",
  "createdAt": "2025-03-17T13:32:32.209+00:00"
}
Erros: USER_ALREADY_ASSIGNED, USER_COMPANY_MISMATCH, INTERNAL_USER_NOT_ALLOWED.

GET /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/assigned-users#

Lista usuários vinculados à carteira. Paginação padrão. Cada item segue o formato do response do POST.

DELETE /v2/companies/:companyId/portfolios/:portfolioId/sub-portfolios/:subPortfolioId/assigned-users/:userId#

Remove vínculo do usuário com a carteira. O :userId na rota é o user.id.
Response 204 No Content
Erros: USER_ASSIGNMENT_NOT_FOUND.

Modificado em 2026-06-02 15:00:18
Página anterior
[Desatualizado]Fluxo de funcionamento
Próxima página
Contratos
Built with