Webhooks
Webhooks (ou callbacks) são retornos de chamada de HTTP definidos pelo usuário, que são acionados por eventos específicos. Sempre que ocorrer um evento de acionamento, a API da Sinch coletará os dados e imediatamente enviará uma notificação (solicitação HTTP) a URL escolhida pelo cliente atualizando o status das mensagens enviadas ou indicando quando você receber uma mensagem.
Quando o cliente enviar uma mensagem a você, API da Sinch Messaging enviará uma notificação de solicitação HTTP POST à URL do Webhook com os detalhes.
É importante que seu Webhook retorne uma resposta HTTPS 200 OK às notificações (em até 200 ms ou de maneira assíncrona). Caso contrário, a API da Sinch Messaging considerará essa notificação com falha e tentará novamente após um atraso.
Importante: A URL onde você irá receber os Webhooks precisa ser configurado por nosso time de suporte.
O formato do retorno seguirá a seguinte descrição:
total
Número de callbacks retornados.
String
data
Dados retornados no Callback.
Data[]
clientInfo
Informações do cliente.
ClientInfo
conversationID
String
Data:
id
id da mensagem.
String
correlationId
Caso tenha sido especificado um correlationId no envio da mensagem, ele irá aparecer aqui.
String
destination
Número do telefone que a mensagem foi enviada (incluindo código de pais). Exemplo: 5511900000000.
String
origin
Número da Conta de WhatsApp (incluindo código de pais). Exemplo: 5511900000000.
String
campaignId
Caso tenha sido especificado um campaignID no envio da mensagem, ele irá aparecer aqui.
String
campaignAlias
Caso tenha sido especificado um campaignAlias no envio da mensagem, ele irá aparecer aqui.
String
extraInfo
Informação extra enviada com a mensagem original.
String
sent
Indica se a mensagem foi enviada.
Boolean
sentStatusCode
Código de Status gerado pela Sinch Messaging WhatsApp API para a mensagem indicando o status de envio.
Number
sentStatus
Descrição do status de envio.
Boolean
sentDate
Data em que a mensagem foi enviada. Formato: yyyy-MM-dd’T'HH:mm:ssZ.
String
sentAt
Horário em que a mensagem foi enviada, usando Unix_time format
Number
delivered
Indica se a mensagem foi entregue no destino.
Boolean
deliveredStatusCode
Código de Status gerado pela Sinch Messaging WhatsApp API indicando se a mensagem foi entregue.
Number
deliveredStatus
Descrição do status de entrega.
String
deliveredDate
Data em que a mensagem foi entregue. Formato:: yyyy-MM-dd’T'HH:mm:ssZ
String
deliveredAt
Horário em que a mensagem foi entregue, usando Unix_time format
Number
read
Indica se a mensagem foi lida pelo destinatário.
Boolean
readDate
Data em que a mensagem foi lida. Formato: yyyy-MM-dd’T'HH:mm:ssZ
String
readAt
Horário em que a mensagem foi lida, usando Unix_time format
String
updatedDate
Data em que o status da mensagem foi atualizado. Formato: yyyy-MM-dd’T'HH:mm:ssZ
String
updatedAt
Horário em que o status da mensagem foi atualizado, usando Unix_time format
String
type
O tipo de entidade a que se refere este objeto de status. Atualmente, a única opção disponível é “mensagem”.
String
Exemplo de requisição com Webhook
ClientInfo:
customerId
Código de identificação do cliente.
Number
subAccountId
Código de identificação da subconta.
Number
userId
Código de identificação do usuário.
Number
Status
Descrição dos Status que podem ser enviados no callback:
SENT_SUCCESS
Mensagem recebida pelo servidor do WhatsApp
Uma marca de seleção
DELIVERED_SUCCESS
Mensagem entregue para o destinatário
Duas marcas de seleção
READ_SUCCESS
Mensagem lida pelo destinatário
Duas marcas de seleção azuis
Outros Status
Esses são os códigos retornados nos campos sentStatusCode e deliveredStatusCode.
102
CARRIER COMMUNICATION ERROR
Erro ao fazer upload de mídia para o WhatsApp
103
REJECTED_BY_CARRIER
Ocorreu erro de comunicação com o WhatsApp.
2
101
EXPIRED
Mensagem expirada.
2
104
NOT_DELIVERED
Possíveis Causas: Limite atingido - muitos envios de mensagens tentados; Ou falha ao enviar mensagem porque o número de telefone de destino é parte de um experimento; Ou a estrutura do template não existe; Ou falhou ao enviar mensagem pois o número de destino está fora da janela de atendimento de 24h para receber mensagens de forma livre; Ou houve erro de upload de mídia (erro desconhecido); Ou falha ao enviar mensagem porque sua conta é inelegível no Facebook Business Manager; Ou houve falha temporária de upload. Tente novamente mais tarde.
2
105
WA_MO_MEDIA_UNRETRYABLE_EXCEPTION
202
EXPIREDINVALID_DESTINATION_NUMBER
Contato de WhatsApp inválido.
204
DESTINATION_BLOCKED_BY_OPTOUT
Destino bloqueado por Opt-Out.
207
INVALID_MESSAGE_TEXT
Valor de parâmetro inválido.
209
INVALID_CONTENT
Tipo de mensagem UNKNOWN inválido.
210
INVALID_SESSION
Sessão ou janela de atendimento não está aberta e nenhum Template de fallback está configurado.
301
INTERNAL_ERROR
Não foi possível verificar o contato na API do WhatsApp.
Erros
HTTP Code
Description
2xx
Success
200
Success (OK)
201
Successfully created (For POST requests)
302
Found
4xx
Client Errors
400
Request was invalid
401
Unauthorized
403
Forbidden
404
Not found
405
Method not allowed
412
Precondition failed
429
Too many requests
5xx
Server Errors
500
Internal server error
504
Timeout
Last updated