Webhooks da CodeChat
Requisições HTTP POST assíncronas enviadas para a URL configurada pelo consumidor.
Fila em memória, timeout de 15 segundos e entrega para o webhook da instância ou global.
Outbox PostgreSQL, entrega global e retry persistente com backoff.
Qualquer status HTTP entre 200 e 299 confirma a entrega.
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
Content-Type: application/jsonUser-Agent: CodeChat-Webhook/1.0x-request-id: 019f0000-0000-7000-8000-000000000000x-owner-jid: [email protected]x-instance-name: minha-instanciax-instance-id: 1x-webhook-event: messages.upsert
Atualizacao de chamada de voz ou video.
chatsDeletedchats.deleteExclusao ou limpeza de conversa.
chatsUpdatedchats.updatedAtualizacao de propriedades de conversas.
connectionUpdatedconnection.updateMudanca de estado da conexao da instancia.
contactsUpdatedcontacts.updateAtualizacao parcial em contato existente.
contactsUpsertcontacts.upsertContato criado ou atualizado no cadastro local.
groupsParticipantsUpdatedgroups.participants.updateMudanca de participantes em grupo.
groupsUpdatedgroups.updateAtualizacao parcial de metadados de grupo.
groupsUpsertgroups.upsertGrupo criado, descoberto ou sincronizado.
historySynchistory.syncSincronizacao de historico recebida do WhatsApp.
identityUpdatedidentity.updateMudanca de identidade criptografica de um contato.
labelsAssociationlabels.associationAssociacao ou remocao de label em chat ou mensagem.
labelsEditlabels.editCriacao, alteracao ou remocao de label.
mediaRetrymedia.retryResultado ou erro relacionado a tentativa de retry de midia.
messagesDeletedmessages.deleteMensagem removida localmente pelo evento DeleteForMe.
messagesStarredmessages.starMarcacao ou desmarcacao de estrela em mensagem.
messagesUndecryptablemessages.undecryptableMensagem recebida sem possibilidade de descriptografia.
messagesUpdatedmessages.updateAtualizacao de recibo/status de uma mensagem ja conhecida.
messagesUpsertmessages.upsertMensagem recebida e persistida pela aplicacao.
newsLetternews.letterEventos relacionados a newsletters/canais.
presenceUpdatedpresence.updatedAtualizacao de presenca de usuario ou presenca em chat.
profilePictureUpdatedprofile.picture.updateAtualizacao de foto de perfil da propria instancia ou de outro JID.
qrcodeUpdatedqrcode.updatedNovo QR Code disponivel para pareamento da instancia.
sendMessagesend.messageMensagem enviada pela API apos envio e persistencia bem-sucedidos.
settingsUpdatedsettings.updateAtualizacao de configuracoes do usuario/instancia.
statusInstancestatus.instanceEventos de estado operacional ou avisos da instancia.
userAboutUpdateduser.about.updateAtualizacao do recado/about de um usuario.
Message Batch · Promessage.batch.createdLote, itens e instancias persistidos.
Message Batch · Promessage.batch.startedPrimeiro claim do lote em QUEUED.
Message Batch · Promessage.batch.progressPercentual inteiro mudou ou chegou a 100.
Message Batch · Promessage.batch.pause-requestedAPI aceitou a solicitacao de pausa.
Message Batch · Promessage.batch.pausedWorker chegou a um ponto seguro e pausou.
Message Batch · Promessage.batch.waiting-instanceNenhuma instancia do lote esta conectada.
Message Batch · Promessage.batch.resumedLote foi retomado ou uma instancia voltou.
Message Batch · Promessage.batch.stop-requestedAPI aceitou a solicitacao de stop.
Message Batch · Promessage.batch.stoppedWorker concluiu o stop controlado.
Message Batch · Promessage.batch.interruptedLease expirou ou o processo encerrou.
Message Batch · Promessage.batch.completedTodos os itens terminaram sem falha ou UNKNOWN.
Message Batch · Promessage.batch.completed-with-errorsTodos os itens terminaram com falha ou UNKNOWN.
Message Batch · Promessage.batch.item.failedUm item terminou em FAILED.
Message Batch · Promessage.batch.item.unknownO resultado externo de um item nao pode ser confirmado.
