HSM


Webhook de HSM WhatsApp

Configuração: POST /whatsapp/config/ com o campo url_hsm_callback

Este webhook traz callbacks com o resultado dos disparos de WhatsApp.

Payload

CampoTipoDescrição
event_idstring (uuid)Identificador único do evento (UUID v4).
idinteger | nullId da mensagem.
fromstring | nullNúmero de telefone de origem.
tostringNúmero de telefone de destino.
bsuidstring | nullBusiness Scoped User ID do destinatário.
usernamestring | nullUsername do perfil WhatsApp do destinatário.
statusstringStatus da notificação (ver tabela abaixo).
campaign_idintegerId da campanha.
request_idstring | nullID da requisição original (UUID v4).
cost_center_idintegerId do centro de custo.
dataobject | nullDados adicionais incluídos no envio.
documentstring | nullDocumento CPF ou CNPJ do destinatário.
contractstring | nullContrato do destinatário.
messagestring | nullMensagem enviada.
datetimestring (date-time)Data e hora do envio (ISO 8601 UTC-3).
is_retrybooleanSe é uma retentativa de contato.
retry_indexinteger | nullÍndice da retentativa.
reasonstring | nullMotivo da falha (apenas em FAILED).
blocklistResponseboolean | nullSe a resposta é de blocklist (apenas em REPLIED).

Sobre bsuid e username: o BSUID (Business Scoped User ID) é o identificador único do usuário no escopo da sua conta, e permite mensagear sem conhecer o número de telefone. Os dois campos chegam apenas nos eventos SERVER, DEVICE, READ, FAILED e REPLIED; nos demais as chaves não aparecem no payload. O username depende da adoção do recurso pelo usuário final no WhatsApp e, até lá, chega como null.

Status possíveis

StatusDescrição
ENQUEUEDMensagem enfileirada para envio.
SENTMensagem enviada.
SERVERMensagem recebida pelo servidor do WhatsApp.
DEVICEMensagem entregue no dispositivo.
READMensagem lida pelo destinatário.
REPLIEDDestinatário respondeu a mensagem.
EXPIREDMensagem expirou sem resposta.
FAILEDFalha no envio da mensagem.

Exemplo - ENQUEUED

{
  "event_id": "550e8400-e29b-41d4-a716-446655440000",
  "from": null,
  "to": "5511988888888",
  "status": "ENQUEUED",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": null,
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "is_retry": false,
  "retry_index": null
}

Exemplo - SENT

{
  "event_id": "650e9500-f39c-42e5-b827-557766551111",
  "from": "5511977777777",
  "to": "5511988888888",
  "status": "SENT",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": "Mensagem de texto",
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "is_retry": false,
  "retry_index": null
}

Exemplo - REPLIED

{
  "event_id": "950e9800-i62f-65h8-e150-880099884444",
  "from": "5511977777777",
  "to": "5511988888888",
  "status": "REPLIED",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": "Mensagem de texto",
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "bsuid": "IN.1648738043044942",
  "username": null,
  "is_retry": false,
  "retry_index": null,
  "blocklistResponse": false
}

Exemplo - REPLIED (Blocklist)

{
  "event_id": "a60ea900-j73g-76i9-f261-991100995555",
  "from": "5511977777777",
  "to": "5511988888888",
  "status": "REPLIED",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": "Mensagem de texto",
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "bsuid": "IN.1648738043044942",
  "username": null,
  "is_retry": false,
  "retry_index": null,
  "blocklistResponse": true
}

Exemplo - EXPIRED

{
  "event_id": "b70eba00-k84h-87j0-g372-aa2211aa6666",
  "from": null,
  "to": "5511988888888",
  "status": "EXPIRED",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": null,
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "is_retry": false,
  "retry_index": null
}

Exemplo - FAILED

{
  "event_id": "c80ecb00-l95i-98k1-h483-bb3322bb7777",
  "from": null,
  "to": "5511988888888",
  "status": "FAILED",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": null,
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "bsuid": "IN.1648738043044942",
  "username": null,
  "is_retry": false,
  "retry_index": null,
  "reason": "META ERROR: 131047 - Re-engagement message"
}

Exemplo - RETRY

{
  "event_id": "d90edc00-ma6j-a9l2-i594-cc4433cc8888",
  "from": "5511977777777",
  "to": "5511988888888",
  "status": "SENT",
  "campaign_id": 54321,
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "cost_center_id": 12345,
  "data": {
    "key1": "value1",
    "key2": "value2"
  },
  "document": "00000000000",
  "message": "Mensagem de texto",
  "datetime": "2024-12-06T17:49:55.610-03:00",
  "is_retry": true,
  "retry_index": 0
}