Referência/Webhooks
Eventos

Webhooks da CodeChat

Requisições HTTP POST assíncronas enviadas para a URL configurada pelo consumidor.

27 eventos por instância

Fila em memória, timeout de 15 segundos e entrega para o webhook da instância ou global.

14 eventos de lote

Outbox PostgreSQL, entrega global e retry persistente com backoff.

Resposta de sucesso

Qualquer status HTTP entre 200 e 299 confirma a entrega.

Sem assinatura HMAC

Use HTTPS e controles de rede. x-request-id não comprova autenticidade.

Entrega, retry e idempotência

  • Eventos por instância não possuem retry automático nem dead-letter queue.
  • Eventos de Message Batch usam retry persistente e podem ser entregues novamente.
  • A ordem relativa não é garantida. Consumidores devem ser idempotentes e tolerar duplicidades.
  • O header x-request-id é útil para correlação, mas não é uma chave de idempotência garantida.

Headers por instância

http
Content-Type: application/json
User-Agent: CodeChat-Webhook/1.0
x-request-id: 019f0000-0000-7000-8000-000000000000
x-owner-jid: [email protected]
x-instance-name: minha-instancia
x-instance-id: 1
x-webhook-event: messages.upsert
callUpsertcall.upsert

Atualizacao de chamada de voz ou video.

chatsDeletedchats.delete

Exclusao ou limpeza de conversa.

chatsUpdatedchats.updated

Atualizacao de propriedades de conversas.

connectionUpdatedconnection.update

Mudanca de estado da conexao da instancia.

contactsUpdatedcontacts.update

Atualizacao parcial em contato existente.

contactsUpsertcontacts.upsert

Contato criado ou atualizado no cadastro local.

groupsParticipantsUpdatedgroups.participants.update

Mudanca de participantes em grupo.

groupsUpdatedgroups.update

Atualizacao parcial de metadados de grupo.

groupsUpsertgroups.upsert

Grupo criado, descoberto ou sincronizado.

historySynchistory.sync

Sincronizacao de historico recebida do WhatsApp.

identityUpdatedidentity.update

Mudanca de identidade criptografica de um contato.

labelsAssociationlabels.association

Associacao ou remocao de label em chat ou mensagem.

labelsEditlabels.edit

Criacao, alteracao ou remocao de label.

mediaRetrymedia.retry

Resultado ou erro relacionado a tentativa de retry de midia.

messagesDeletedmessages.delete

Mensagem removida localmente pelo evento DeleteForMe.

messagesStarredmessages.star

Marcacao ou desmarcacao de estrela em mensagem.

messagesUndecryptablemessages.undecryptable

Mensagem recebida sem possibilidade de descriptografia.

messagesUpdatedmessages.update

Atualizacao de recibo/status de uma mensagem ja conhecida.

messagesUpsertmessages.upsert

Mensagem recebida e persistida pela aplicacao.

newsLetternews.letter

Eventos relacionados a newsletters/canais.

presenceUpdatedpresence.updated

Atualizacao de presenca de usuario ou presenca em chat.

profilePictureUpdatedprofile.picture.update

Atualizacao de foto de perfil da propria instancia ou de outro JID.

qrcodeUpdatedqrcode.updated

Novo QR Code disponivel para pareamento da instancia.

sendMessagesend.message

Mensagem enviada pela API apos envio e persistencia bem-sucedidos.

settingsUpdatedsettings.update

Atualizacao de configuracoes do usuario/instancia.

statusInstancestatus.instance

Eventos de estado operacional ou avisos da instancia.

userAboutUpdateduser.about.update

Atualizacao do recado/about de um usuario.

Message Batch · Promessage.batch.created

Lote, itens e instancias persistidos.

Message Batch · Promessage.batch.started

Primeiro claim do lote em QUEUED.

Message Batch · Promessage.batch.progress

Percentual inteiro mudou ou chegou a 100.

Message Batch · Promessage.batch.pause-requested

API aceitou a solicitacao de pausa.

Message Batch · Promessage.batch.paused

Worker chegou a um ponto seguro e pausou.

Message Batch · Promessage.batch.waiting-instance

Nenhuma instancia do lote esta conectada.

Message Batch · Promessage.batch.resumed

Lote foi retomado ou uma instancia voltou.

Message Batch · Promessage.batch.stop-requested

API aceitou a solicitacao de stop.

Message Batch · Promessage.batch.stopped

Worker concluiu o stop controlado.

Message Batch · Promessage.batch.interrupted

Lease expirou ou o processo encerrou.

Message Batch · Promessage.batch.completed

Todos os itens terminaram sem falha ou UNKNOWN.

Message Batch · Promessage.batch.completed-with-errors

Todos os itens terminaram com falha ou UNKNOWN.

Message Batch · Promessage.batch.item.failed

Um item terminou em FAILED.

Message Batch · Promessage.batch.item.unknown

O resultado externo de um item nao pode ser confirmado.