--- title: 7.4. Consultar Limite de Crédito url: https://docs.vehub.com.br/API/Cadastro%20de%20Cedente/7.%20V%C3%ADnculo%20com%20Opera%C3%A7%C3%B5es/7.4.%20Consultar%20Limite%20de%20Cr%C3%A9dito/ --- Consulta do limite de crédito do cedente em uma operação e dos títulos que o consomem. O **limite de crédito** é cadastrado no [vínculo do cedente à operação](7.1.%20Vincular%20Cedente%20a%20Opera%C3%A7%C3%B5es.md) (campo `limiteCredito`). Estes endpoints expõem, em tempo real: - **Limite total** — o valor concedido no vínculo. - **Limite tomado** — quanto já está comprometido: títulos cedidos ao fundo ainda **em aberto** (não liquidados) **+** títulos de cessão em **lotes pendentes** (solicitações ainda não finalizadas/canceladas/rejeitadas). - **Limite disponível** — `total − tomado` (pode ser **negativo** se o tomado ultrapassar o total). !!! info "Operação precisa validar limite" Os valores só são calculados quando a operação tem a validação de limite habilitada (`validaLimiteCredito = true`). Caso contrário, `validaLimiteCredito` retorna `false` e os demais campos vêm nulos. !!! warning "Risco Sacado é por par cedente×sacado" Em operações **Risco Sacado**, o limite é controlado por **par cedente×sacado**, não pelo cedente como um todo. Use as variantes `.../sacados/{idSacado}/...`. Se consultar o endpoint do cedente (sem sacado) numa operação Risco Sacado, `validaLimiteCredito` vem `true` mas os valores vêm nulos (par indeterminável). !!! tip "Validação por Base CNPJ (matriz × filiais)" A operação pode validar o limite de duas formas: **por Filial** (padrão — cada CNPJ/empresa tem seu próprio limite) ou **por Base CNPJ**. Quando é **Base CNPJ**, o limite passa a ser controlado pela **raiz do CNPJ** (8 primeiros dígitos), agregando todas as filiais: - o **limite total** é lido do vínculo da empresa marcada como **matriz** daquela raiz; - o **limite tomado** soma os títulos/lotes de **todas as filiais** da mesma raiz; - em **Risco Sacado**, a agregação é pela raiz do **sacado**; em **Desconto Próprio**, pela raiz do **cedente**. Se a operação está em Base CNPJ mas **nenhuma empresa da raiz está marcada como matriz**, a criação de lote e a definição de limite são **bloqueadas** com erro (ex.: `"Defina a empresa matriz da base CNPJ {raiz} para validar o limite."`); os endpoints de leitura retornam os campos de limite nulos (sem derrubar a consulta). O indicador de matriz é definido pelo campo `matriz` no [cadastro de cedente/sacado](../2.%20Empresa%20Cedente/2.1.%20Criar%2C%20Consultar%20e%20Atualizar%20Cedente.md). --- ## Consultar Limite de Crédito | Método | URL | | --------------------------------------------- | ------------------------------------------------------------------------------ | | ![GET](https://img.shields.io/badge/GET-blue) | `https://BASE_URL/public/api/v1/cedentes/{idEmpresa}/operacoes/{idOperacao}/limite` | Retorna o limite total, tomado e disponível do cedente na operação. ### Path Params | Campo | Tipo | Descrição | | ------------ | ------ | --------------------------------- | | `idEmpresa` | Número | Identificador da empresa cedente. | | `idOperacao` | Número | Identificador da operação. | ```json title="Response Body — 200 OK" { "validaLimiteCredito": true, "limiteTotal": 100000.00, "limiteTomado": 30000.00, "limiteDisponivel": 70000.00 } ``` ```json title="Response Body — 200 OK (operação não valida limite)" { "validaLimiteCredito": false, "limiteTotal": null, "limiteTomado": null, "limiteDisponivel": null } ``` ```json title="Response Body — 400 Bad Request" { "status": "erro", "mensagem": "Operação não encontrada." } ``` O modelo de resposta é o [Limite de Crédito](#limite-de-credito). --- ## Consultar Limite de Crédito (Risco Sacado) | Método | URL | | --------------------------------------------- | ------------------------------------------------------------------------------------------------ | | ![GET](https://img.shields.io/badge/GET-blue) | `https://BASE_URL/public/api/v1/cedentes/{idEmpresa}/operacoes/{idOperacao}/sacados/{idSacado}/limite` | Retorna o limite do **par cedente×sacado**. Mesmo modelo de resposta do endpoint acima. ### Path Params | Campo | Tipo | Descrição | | ------------ | ------ | --------------------------------- | | `idEmpresa` | Número | Identificador da empresa cedente. | | `idOperacao` | Número | Identificador da operação. | | `idSacado` | Número | Identificador da empresa sacado. | --- ## Títulos do Limite Tomado | Método | URL | | --------------------------------------------- | ------------------------------------------------------------------------------------- | | ![GET](https://img.shields.io/badge/GET-blue) | `https://BASE_URL/public/api/v1/cedentes/{idEmpresa}/operacoes/{idOperacao}/limite/titulos` | Lista paginada dos títulos que **compõem o limite tomado**. A soma dos `valor` de todos os registros (em todas as páginas) confere com o `limiteTomado` do endpoint acima. ### Path Params | Campo | Tipo | Descrição | | ------------ | ------ | --------------------------------- | | `idEmpresa` | Número | Identificador da empresa cedente. | | `idOperacao` | Número | Identificador da operação. | ### Query Params | Campo | Tipo | Descrição | | ----------------- | ------ | ------------------------------------------- | | `indicePagina` | Número | Índice da página (1-based). Default: `1`. | | `tamanhoDaPagina` | Número | Tamanho da página (1 a 100). Default: `20`. | ```json title="Response Body — 200 OK" { "registros": [ { "id": 5001, "idTitulo": 5001, "numeroDocumento": "NF-12345", "nomeSacado": "Sacado Exemplo LTDA", "dataVencimento": "2026-06-01", "valor": 20000.00, "origem": 1, "idLote": null }, { "id": 5002, "idTitulo": 5002, "numeroDocumento": "NF-12346", "nomeSacado": "Sacado Exemplo LTDA", "dataVencimento": "2026-07-01", "valor": 10000.00, "origem": 2, "idLote": 88 } ], "paginacao": { "paginaAtual": 1, "paginaTotal": 1, "paginaQuantidadeRegistro": 20, "quantidadeRegistros": 2, "temPaginaAnterior": false, "temProximaPagina": false }, "mensagem": null } ``` Cada item é um [Título do Limite Tomado](#titulo-do-limite-tomado); o envelope é o [Envelope de Paginação](#envelope-de-paginacao). --- ## Títulos do Limite Tomado (Risco Sacado) | Método | URL | | --------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | ![GET](https://img.shields.io/badge/GET-blue) | `https://BASE_URL/public/api/v1/cedentes/{idEmpresa}/operacoes/{idOperacao}/sacados/{idSacado}/limite/titulos` | Lista os títulos que compõem o limite tomado do **par cedente×sacado**. Mesmos query params e modelo de resposta do endpoint acima. --- # Modelo de Dados ## Limite de Crédito | Campo | Tipo | Descrição | | --------------------- | ------- | -------------------------------------------------------------------------------------------------- | | `validaLimiteCredito` | Booleano | `true` se a operação controla limite de crédito. Quando `false`, os demais campos vêm nulos. | | `limiteTotal` | Decimal | Limite concedido no vínculo. `null` = sem limite cadastrado / par não determinável (Risco Sacado). | | `limiteTomado` | Decimal | Valor já comprometido (em aberto no fundo + lotes de cessão pendentes). | | `limiteDisponivel` | Decimal | `limiteTotal − limiteTomado`. Pode ser **negativo**. | ## Título do Limite Tomado | Campo | Tipo | Descrição | | ----------------- | ------- | ------------------------------------------------------------------------------- | | `id` / `idTitulo` | Número | Identificador do título. | | `numeroDocumento` | Texto | Número do documento do título. | | `nomeSacado` | Texto | Nome do sacado do título. | | `dataVencimento` | Data | Data de vencimento (`YYYY-MM-DD`). | | `valor` | Decimal | Valor considerado no limite: `nominal − abatimento − desconto`. | | `origem` | Número | Origem do título no tomado. `1` = Em aberto (cedido ao fundo, não liquidado); `2` = Em solicitação pendente (lote de cessão não finalizado). | | `idLote` | Número | Lote da solicitação pendente. `null` quando `origem = 1`. | ## Envelope de Paginação Toda listagem paginada da API retorna `registros` (a página atual) e `paginacao`: | Campo | Tipo | Descrição | | ---------------------------------- | -------- | ------------------------------------------ | | `paginacao.paginaAtual` | Número | Página atual (1-based). | | `paginacao.paginaTotal` | Número | Total de páginas. | | `paginacao.paginaQuantidadeRegistro` | Número | Tamanho da página. | | `paginacao.quantidadeRegistros` | Número | Contagem total de itens (todas as páginas).| | `paginacao.temPaginaAnterior` | Booleano | `true` se há página anterior. | | `paginacao.temProximaPagina` | Booleano | `true` se há próxima página. | | `mensagem` | Texto | Mensagem opcional acompanhando o retorno (geralmente `null`). |