Ir para o conteúdo

7.8. Título Rejeitado

🔔 Tipo de Notificação

Campo Valor
tipoEvento titulo.rejeitado Título foi rejeitado dentro de um lote
Id 10 Identificador do tipo de evento na tabela tipo_evento_webhook

🧾 Descrição

Esta notificação é enviada via POST para o endpoint configurado quando um título é rejeitado dentro de um lote — ou seja, quando o registro LoteTitulo transiciona seu status para Rejeitado (valor 2). Pode acontecer em qualquer ocorrência (Cessão, Recompra, Liquidação, etc.) quando:

  • O sacado fica fora do limite de exposição configurado.
  • O título não passa em alguma regra de elegibilidade bloqueante.
  • A administradora rejeita explicitamente via webhook ou retorno.
  • O gestor rejeita manualmente um título específico no lote.

Use este evento para:

  • Identificar e tratar títulos não cedidos / não liquidados.
  • Notificar o cedente sobre rejeições (ex: para que envie outro título no lugar).
  • Alimentar dashboards de qualidade de carteira.

📤 Payload Enviado

{
  "idWebhook": "019e0892-8d99-778c-9fa5-47bd07cd9ffb",
  "tipoEvento": "titulo.rejeitado",
  "dataHora": "2026-05-08T14:23:11.512Z",
  "grupoEconomico": "MeuGrupo",
  "dados": {
    "idTitulo": 2001,
    "numeroDocumento": "NF-000123",
    "especieTitulo": "DuplicataMercantil",
    "ocorrencia": "Cessao",
    "idLote": 1001,
    "idLoteTitulo": 3001,
    "idCedente": 301,
    "documentoCedente": "12.345.678/0001-90",
    "idSacado": 401,
    "documentoSacado": "98.765.432/0001-10",
    "dataVencimento": "2026-06-07",
    "valorNominal": 50000.00,
    "valorAquisicao": 48750.00,
    "statusAnterior": "EmAnalise",
    "statusAtual": "Rejeitado",
    "motivoRejeicao": "Sacado fora do limite de exposição configurado para a operação."
  },
  "etiquetas": {
    "isTeste": "false",
    "origem": "vhub"
  }
}

🧾 Detalhamento dos Campos de dados

Campo Tipo Descrição
idTitulo integer Identificador do título no VHub
numeroDocumento string — null Número do documento
especieTitulo string (enum) — null Espécie do título
ocorrencia string (enum) Tipo de ocorrência em que o título foi rejeitado (Cessao, Repasse, etc.)
idLote integer Identificador do lote
idLoteTitulo integer Identificador do registro lote × título
idCedente integer — null Identificador do cedente
documentoCedente string — null CPF/CNPJ do cedente
idSacado integer — null Identificador do sacado
documentoSacado string — null CPF/CNPJ do sacado
dataVencimento string (date) — null Data de vencimento do título
valorNominal number — null Valor nominal do título
valorAquisicao number — null Valor de aquisição esperado (caso a operação tivesse sucedido)
statusAnterior string (enum) — null Status anterior do LoteTitulo (ver tabela abaixo). Pode ser null se não detectável
statusAtual string (enum) Sempre Rejeitado neste evento
motivoRejeicao string — null Motivo textual da rejeição preenchido no LoteTitulo

🔢 Status do LoteTitulo (statusAnterior / statusAtual)

Valor (string) Código Significado
EmAnalise 0 Título em análise pelas regras de elegibilidade
Aprovado 1 Título aprovado nas regras
Rejeitado 2 Título rejeitado nas regras (status atual deste evento)

📪 Exemplo de envio

POST /webhook/vhub HTTP/1.1
Host: app.cliente.com.br
Content-Type: application/json; charset=utf-8
X-Idempotency-Key: 019e0892-8d99-778c-9fa5-47bd07cd9ffb
X-Event-Type: titulo.rejeitado
X-Webhook-Signature: sha256=ab12cd...

{
  "idWebhook": "019e0892-8d99-778c-9fa5-47bd07cd9ffb",
  "tipoEvento": "titulo.rejeitado",
  "dataHora": "2026-05-08T14:23:11.512Z",
  "grupoEconomico": "MeuGrupo",
  "dados": {
    "idTitulo": 2001,
    "numeroDocumento": "NF-000123",
    "especieTitulo": "DuplicataMercantil",
    "ocorrencia": "Cessao",
    "idLote": 1001,
    "idLoteTitulo": 3001,
    "idCedente": 301,
    "documentoCedente": "12.345.678/0001-90",
    "idSacado": 401,
    "documentoSacado": "98.765.432/0001-10",
    "dataVencimento": "2026-06-07",
    "valorNominal": 50000.00,
    "valorAquisicao": 48750.00,
    "statusAnterior": "EmAnalise",
    "statusAtual": "Rejeitado",
    "motivoRejeicao": "Sacado fora do limite de exposição configurado para a operação."
  },
  "etiquetas": {
    "isTeste": "false",
    "origem": "vhub"
  }
}

Resposta esperada

HTTP/1.1 200 OK
Content-Type: application/json

{ "received": true }

🕒 Observações

  • Este evento dispara uma vez por título rejeitado. Em validações automáticas que rejeitam vários títulos de um mesmo lote, espere múltiplas notificações em sequência.
  • O motivoRejeicao é preenchido pelo motor de elegibilidade ou pela ação que rejeitou o título (ex: webhook de retorno da administradora). Quando preenchido, é uma string livre informativa — não use para roteamento programático, prefira o statusAtual e o contexto da ocorrencia.
  • Se o statusAnterior estiver como null, o motor não detectou a transição original (geralmente quando a inserção já foi feita com status = 2, ex: importação direta).
  • Após a rejeição, o título não é mais processado neste lote — fica disponível para nova movimentação em outros lotes (caso DisponivelParaMovimentacao = true).
  • Para detectar a rejeição do lote inteiro (estado terminal), escute também lote.status_alterado com statusAtual = "Rejeitado".