Buscar Fundo por CNPJ
Introdução
Este recurso resolve o CNPJ de um fundo de investimento para o issuance_serie_key necessário em Selecionar Fundo — o cliente normalmente só tem o CNPJ em mãos, não o issuance_serie_key. A busca é feita em dois passos no fund-classes-service, a origem cadastral dos fundos: primeiro resolve o fundo pelo CNPJ, depois lista as séries de emissão desse fundo, já com os campos de qualificação (investment_restriction_type, investment_suitability) que permitem checar a elegibilidade antes de tentar a adesão.
A listagem de séries por fundo (passo 2 abaixo) só aceita os tipos de agente Gestor, Administrador e Investidor — uma integração de Consultor recebe erro ao chamá-la.
Passo 1 — Buscar o Fundo pelo CNPJ
/fund_classes/public/fund_class/paginatedGET200Query params
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
document_number | string | CNPJ do fundo | Não |
limit | int | Limite de objetos por página (máx. 500) | Não |
page | int | Número da página | Não |
Response
Campos relevantes para este fluxo
{
"data": [
{
"fund_class_key": "UUID",
"name": "Sample Fund Name",
"short_name": "SAMPLE FIM",
"document_number": "12.345.678/0001-95",
"status": "open",
"manager": {
"manager_key": "UUID",
"name": "Sample Gestora",
"document_number": "77.784.920/0001-72",
"email": "gestora@example.com"
},
"administrator": {
"administrator_key": "UUID",
"name": "Sample Administrator Name",
"document_number": "00.000.000/0000-00"
}
}
],
"limit": 50,
"page": 0,
"is_last_page": true
}
O objeto retornado tem muitos outros campos internos do cadastro do fundo — para este fluxo, o único que você precisa é fund_class_key, usado no passo 2. O status do fundo (pending_validation / pre_operational / open / canceled) é um enumerador próprio, independente do status da série de emissão no Passo 2 — não confunda os dois.
Passo 2 — Listar as Séries de Emissão do Fundo
/fund_classes/public/fund_class/{fund_class_key}/issuance_seriesGET200Query params
| Campo | Tipo | Descri ção | Obrigatório |
|---|---|---|---|
limit | int | Limite de objetos por página (máx. 500) | Não |
page | int | Número da página | Não |
Response
{
"data": [
{
"issuance_serie_key": "1de4125b-48c7-40ca-b97b-0b65fb356468",
"name": "Sample Issuance Serie Name",
"serie": 1,
"status": "open",
"internal_code": "INTERNAL-CODE-1",
"minimum_share_capital": 1000.0,
"remuneration_type": "residual",
"processing_method": "d0",
"exclusive": false,
"investment_restriction_type": "retail",
"investment_suitability": "moderate",
"required_adhesion_documents": ["adhesion_term"],
"sub_class": {
"name": "Sample Sub Class Name",
"sub_class_key": "UUID",
"subordination_level": 0,
"status": "open",
"fund_class": { "...": "mesmo objeto completo do Passo 1" }
}
}
],
"limit": 20,
"page": 0,
"is_last_page": true
}
sub_class.fund_class repete o objeto completo do fundoO campo fund_class dentro de sub_class traz de volta o mesmo objeto completo retornado no Passo 1 (todos os campos internos do cadastro, não só os relevantes mostrados ali) — redundante já que você chamou por fund_class_key, mas presente na resposta.
Issuance Serie
| Campo | Tipo | Descrição |
|---|---|---|
issuance_serie_key | string | Chave (UUID) da série — é o valor a enviar em Selecionar Fundo |
name | string | Nome da série |
serie | int | Número da série |
status | string | Enumerador de Status da Série |
internal_code | string | Código interno da série |
minimum_share_capital | number | Valor mínimo para aplicação |
remuneration_type | string | Tipo de remuneração (ex.: residual) |
processing_method | string | Método de processamento da série |
exclusive | boolean | Indica se a série é exclusiva |
investment_restriction_type | string | Qualificação mínima exigida do investidor — ver Qualificação e Suitability |
investment_suitability | string | Perfil de suitability mínimo exigido — ver Qualificação e Suitability |
required_adhesion_documents | array | Tipos de documento que essa série exige na adesão |
sub_class | object | name, sub_class_key, subordination_level, status, fund_class (objeto completo do fundo) — use sub_class.name + name para montar o rótulo do seletor (SUBCLASSE - NOME DA SÉRIE) |
Status da Série
| Enumerador | Descrição |
|---|---|
pending_validation | Série cadastrada, ainda em validação — não disponível para adesão |
open | Operacional — disponível para adesão |
Filtre por status === "open" para exibir apenas séries que aceitam adesão.
Qualificação e Suitability
Antes de chamar Selecionar Fundo, compare estes dois campos da série com os dados já coletados do investidor no cadastro, para evitar uma tentativa que vai ser recusada:
| Campo da série | Compare com | Vocabulário |
|---|---|---|
investment_restriction_type | investor_category do investidor (Enviar Patrimônio) | retail, qualified, professional — o investidor precisa estar na categoria da série ou acima |
investment_suitability | perfil de suitability do investidor (Enviar Suitability) | conservative, moderate, bold — abaixo do exigido não bloqueia, mas gera suitability_nonconformity: true |
Enquadramento insuficiente (investment_restriction_type) é o que gera status: rejected em Selecionar Fundo. Suitability abaixo do perfil não bloqueia, mas exige o termo de não conformidade — ver os dois avisos em Selecionar Fundo.