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".