1. Gateway - API
GatewayV4-API
  • Gateway - API
    • Home
    • Webhook - Reply
    • Webhook - Status
    • Contacts
      • List
    • Routes
      • Routes
    • Reports
      • Received Messages Report
      • Sent Messages Report
      • Messages Requests Report
      • Cancel Messages Request
    • RCS
      • Send RCS (File) Message
      • Send RCS (Carrossel) Message
      • Send RCS (Card) Message
      • Send RCS (Basic) Message
      • Send RCS (Single) Message
    • SMS
      • Send SMS Message
    • Balance
      • GetBalance
    • Token
      • Create API Token
      • Validate API Token
    • Child User
      • Create Child User
    • Short Links
      • Create Short Link
      • Get Short Links
      • Update Short Link
      • Delete Short Link
    • Schemas
      • Core
        • CoreResult
      • Contacts
        • Contact
      • Routes
        • Routes
      • Reports
        • Received
        • Sent
        • MessageRequestsReportResult
        • CancelMessagesRequestInput
      • RCS
        • Send RCS File
        • Send RCS Basic
        • Send RCS carousel
        • Send RCS card
      • SMS
        • Send Sms
      • Balance
        • BalanceResult
      • Token
        • CreateApiTokenResponse
        • ValidateApiTokenResponse
      • ChildUser
        • CreateChildUserRequest
        • PublicChildUser
      • Short Links
        • Short Link Object Response
  1. Gateway - API

Webhook - Status

Webhook de status de mensagem#

O webhook de status informa as mudanças ocorridas durante o processamento e a entrega de uma mensagem. A cada atualização recebida, a plataforma envia uma requisição HTTP POST para a URL de webhook de status cadastrada na conta.
O mesmo formato de payload é utilizado para mensagens SMS e RCS.

Requisição enviada#

Headers de identificação da Comtele#

Nos callbacks de SMS e RCS, os headers abaixo permitem identificar que a requisição foi produzida pela plataforma Comtele e qual evento originou o callback:
HeaderValores possíveisDescrição
X-Comtele-Sourcegateway-v4Identificador técnico da aplicação Comtele que enviou o callback.
X-Comtele-PlatformComtele Gateway V4Nome da plataforma Comtele responsável pelo envio.
X-Comtele-Eventmessage.statusIdentifica que a requisição é um callback de status de mensagem.
Exemplo de validação dos headers:
Esses headers identificam a origem lógica da requisição, mas não são uma assinatura criptográfica e podem ser reproduzidos por terceiros. Não os utilize como único mecanismo de autenticação. Aplique também os controles de segurança adotados pela sua aplicação.

Exemplo de payload#

{
  "messageId": "b72bd6c8-4489-4ff1-8e91-13c634ca24b0",
  "messageStatus": "Delivered",
  "messageStatusDetails": "A mensagem foi entregue com confirmação no aparelho.",
  "messageTag": "pedido-12345",
  "messageCustom": "cliente-987",
  "messageType": "Sms",
  "webhookType": "Status"
}

Campos do payload#

CampoTipoPode ser nuloDescrição
messageIdstring (UUID)NãoIdentificador único da mensagem. É o mesmo identificador retornado no envio e deve ser usado para relacionar o callback à mensagem original.
messageStatusstringNãoStatus atual da mensagem. Consulte a tabela de status abaixo.
messageStatusDetailsstringSimDescrição legível com mais detalhes sobre o status. O tratamento automático deve utilizar messageStatus, e não este texto.
messageTagstringSimTag informada pelo cliente no envio da mensagem.
messageCustomstringSimValor personalizado informado pelo cliente no envio da mensagem. Pode ser usado para correlação com um identificador do seu sistema.
messageTypestringNãoTipo/canal da mensagem. Consulte os valores possíveis abaixo.
webhookTypestringNãoIdentifica este callback. Para atualizações de status, o valor é sempre Status.

Status possíveis#

ValorSignificado
AnalysisA mensagem está em análise antes de seguir o fluxo de envio.
CreatedA mensagem foi criada e aguarda processamento.
ProcessingA mensagem está sendo processada.
QueuedA mensagem foi adicionada à fila de envio.
SendingA mensagem está em processo de envio para a operadora/provedor.
SentA mensagem foi enviada para a operadora/provedor. Este status não confirma a entrega no aparelho.
DeliveredA entrega no aparelho foi confirmada.
ReadA mensagem foi entregue e aberta/lida pelo destinatário, quando o canal oferece essa confirmação.
ExpiredO prazo de entrega expirou.
FailedNão foi possível concluir a entrega.
InvalidA mensagem é inválida e não pode ser enviada.
InvalidNumberO número do destinatário é inválido.
RejectedO conteúdo da mensagem foi rejeitado.
UndeliverableA operadora/provedor não conseguiu entregar a mensagem no aparelho.
LowBalanceNão havia saldo suficiente para realizar o envio.
BlockedO destinatário está na lista de bloqueio da conta.
CanceledA mensagem foi cancelada pelo usuário.
LimitExceededO limite de tentativas de entrega foi atingido.
Nem todos os canais passam por todos os status. Uma mensagem pode, por exemplo, evoluir de Sent para Delivered e depois para Read, enquanto outra pode encerrar o fluxo em Failed ou Undeliverable.

Tipos de mensagem#

O campo messageType pode conter:
ValorTipo de mensagem
SmsSMS
RcsBasicRCS básico
RcsCardCard RCS
RcsFileArquivo RCS
RcsCarouselCarrossel RCS
RcsSingleTextTexto simples RCS

Resposta esperada do seu endpoint#

Depois de receber e armazenar o evento, responda rapidamente com qualquer código HTTP de sucesso da família 2xx. O corpo da resposta pode ser vazio.
O endpoint deve estar acessível pela internet. Recomenda-se utilizar HTTPS e não realizar processamentos demorados antes de responder; se necessário, coloque o evento em uma fila interna e processe-o de forma assíncrona.

Boas práticas de integração#

Use messageId como chave de correlação com a mensagem enviada.
Trate o callback de forma idempotente. O recebimento repetido do mesmo status não deve gerar efeitos duplicados.
Não presuma que todos os status intermediários serão recebidos.
Guarde o valor original de messageStatus; messageStatusDetails é apenas descritivo e pode mudar sem alterar o significado do evento.
Considere novos valores de status ou tipo de mensagem desconhecidos, sem rejeitar todo o payload.
Restrinja o acesso ao endpoint conforme a política de segurança da sua aplicação. O payload atual não possui assinatura criptográfica.

Exemplo de tratamento#

Modified at 2026-07-16 16:54:04
Previous
Webhook - Reply
Next
List
Built with