POST
/webhooks/receive
Endpoint para receber webhooks de status de mensagens
Parâmetros:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| message_id | string | Sim | ID externo da mensagem |
| status | string | Sim | Status: sent, delivered, failed, read |
| timestamp | datetime | Sim | Timestamp do evento |
| error_code | string | Não | Código de erro (se status = failed) |
| error_message | string | Não | Mensagem de erro (se status = failed) |
Exemplo de Webhook Recebido:
{
"message_id": "msg_ext_123",
"status": "delivered",
"timestamp": "2024-01-15T10:30:15Z",
"error_code": null,
"error_message": null
}
Resposta Esperada:
200{
"success": true,
"message": "Webhook processado com sucesso"
}
GET
/webhooks/logs
Lista os logs de webhooks recebidos
🔒 Autenticação Necessária
Este endpoint requer autenticação JWT
Parâmetros de Query:
| Parâmetro | Tipo | Descrição |
|---|---|---|
| per_page | integer | Número de itens por página (padrão: 15) |
| message_id | string | Filtrar por ID da mensagem |
| event | string | Filtrar por evento: sent, delivered, failed, read |
Resposta de Sucesso:
200{
"success": true,
"data": {
"data": [
{
"id": 1,
"message_id": 1,
"external_message_id": "msg_ext_123",
"event": "delivered",
"payload": {
"message_id": "msg_ext_123",
"status": "delivered",
"timestamp": "2024-01-15T10:30:15Z"
},
"received_at": "2024-01-15T10:30:15Z"
}
],
"current_page": 1,
"last_page": 2,
"per_page": 15,
"total": 25
}
}
📋 Configuração de Webhooks
Formato: JSON via POST
Timeout: 30 segundos
Retry: 3 tentativas com backoff exponencial
Autenticação: Opcional via header personalizado