Retenção das mensagens
O Turbo Notify leva as suas mensagens até o WhatsApp e traz as respostas de volta. Ele não precisa guardar o que foi dito, e por isso guarda o conteúdo por pouco tempo: 1 hora por padrão, ou o prazo mais longo que você escolher dentro do seu plano. A mensagem em si (status, datas e horas, participantes, recibos, reações) fica bem mais tempo, 12 meses, sem o conteúdo: só o conteúdo expira.
Os dois prazos
- Conteúdo (por plano, em horas): o texto, a legenda, a referência da mídia, a transcrição de áudio e o
preview. Enquanto o prazo não acaba, você lê tudo pela API. Quando ele acaba, o Turbo Notify apaga esse conteúdo do banco em até 15 minutos. Não é um filtro de leitura: o dado deixa de existir. - Registro da mensagem (12 meses, igual em todo plano): que a mensagem existiu, o status final, quando foi enviada ou recebida e quem participou. Esse prazo não muda com o plano e não é ajustável. Uma mensagem fora do prazo de conteúdo continua consultável e operável pela API, só que sem o conteúdo e com
content_expired: true.
Prazo de conteúdo por plano
Todo plano começa em 1 hora. Nos planos que oferecem mais de uma opção, você escolhe o prazo em Cobrança, no dashboard (abre em nova aba) .
| Plano | Prazos disponíveis | Padrão |
|---|---|---|
| Gratuito | 1 hora | 1 hora |
| Lobo Solitário | 1 ou 7 horas | 1 hora |
| Empresarial | 1, 7, 24 ou 72 horas | 1 hora |
| Personalizado | 1, 7, 24 ou 72 horas | 1 hora |
Um prazo mais longo dá mais tempo para ler o conteúdo de novo pela API (por exemplo, para um atendente revisar uma conversa no fim do dia). Se você guarda o que precisa no seu próprio sistema assim que recebe o webhook, 1 hora basta.
Quando você muda de plano
- Para um plano com prazo maior: a sua escolha continua a mesma. As novas opções aparecem em Cobrança e você decide se quer usá-las.
- Para um plano com prazo menor: quando a mudança entra em vigor, a retenção passa para o maior prazo que o novo plano oferece sem passar da sua escolha. Exemplos: 72 ou 24 horas no Empresarial viram 7 horas no Lobo Solitário; 7 horas no Lobo Solitário viram 1 hora no Gratuito. O conteúdo além do novo prazo é apagado no processamento seguinte.
- Uma mudança agendada para o fim do ciclo só muda a retenção no dia em que entra em vigor. Até lá, o prazo que você escolheu continua valendo.
Um único prazo para consulta, listagem, webhook e polling
O prazo de conteúdo vale, com o mesmo número, para todos os caminhos pelos quais você recupera o conteúdo:
GET /v1/numbers/{ref}/messages/{id}devolve a mensagem completa dentro do prazo. Depois dele, devolve a mesma mensagem comcontent_expired: true,previewetextvazios e os blocos de mídia e de conteúdo estruturado como{"kind": "unavailable", "reason": "expired"}(veja Conteúdo expirado).GET /v1/numbers/{ref}/messagescontinua listando a mensagem, comcontent_expired: trueepreviewvazio. O remetente e o grupo continuam na mensagem, e ela segue nos filtrosgroup_idecontact_id.GET /v1/eventscontinua devolvendo os eventos (o registro de eventos fica 90 dias), com o conteúdo dos eventosmessage.*(preview, transcrição) já apagado.- A cópia guardada de uma entrega de webhook já concluída (entregue ou que esgotou as novas tentativas) tem o conteúdo apagado no mesmo prazo.
A única exceção é a entrega de webhook ainda não concluída: se o seu endpoint ainda não respondeu com sucesso, o Turbo Notify guarda o conteúdo dessa entrega até ela ser entregue ou até acabarem as novas tentativas, no máximo 72 horas. Assim uma instabilidade do seu lado não faz você receber uma notificação sem o conteúdo. Depois de concluída, a entrega segue o prazo do seu plano.
Depois do prazo: só o conteúdo expira
Toda rota que recebe um {message_id} continua funcionando depois que o conteúdo expira, tanto na forma aninhada quanto na rota plana equivalente do número principal:
| Operação | Rota aninhada |
|---|---|
| Consultar mensagem | GET /v1/numbers/{ref}/messages/{id} |
| Consultar status | GET /v1/numbers/{ref}/messages/{id}/status |
| Histórico de recibos | GET /v1/numbers/{ref}/messages/{id}/receipts |
| Listar reações | GET /v1/numbers/{ref}/messages/{id}/reactions |
| Listar respostas de um evento | GET /v1/numbers/{ref}/messages/{id}/responses |
| Responder | POST /v1/numbers/{ref}/messages/{id}/reply |
| Editar | POST /v1/numbers/{ref}/messages/{id}/edit |
| Apagar | POST /v1/numbers/{ref}/messages/{id}/delete |
| Reagir | POST /v1/numbers/{ref}/messages/{id}/react |
Editar e apagar para todos continuam sujeitos aos prazos que o próprio WhatsApp aceita para essas ações. Um texto ou uma legenda só pode ser editado até 15 minutos depois do envio: depois disso a API responde 400 edit_window_expired. Nos demais casos fora do prazo, o pedido é aceito e o desfecho chega como message.edit.failed ou message.delete.failed.
As respostas dos convidados a um evento de calendário seguem o prazo das reações: ficam 12 meses junto com a mensagem. O conteúdo do próprio evento (nome, descrição, local) segue o prazo de conteúdo do seu plano.
Uma resposta a uma mensagem cujo conteúdo expirou continua encadeada na conversa; o balão de citação vai sem o texto original. Uma mensagem só responde 404 not_found quando não existe, é de outra organização ou é de outro número.
Cópias técnicas e cópias de segurança
- Cópias técnicas de processamento (as filas internas por onde as mensagens passam entre a API e o WhatsApp) expiram em até 6 horas.
- Cópias de segurança do banco de dados são rotativas e guardadas por 30 dias. Elas servem só para recuperação de desastre e nunca são usadas para devolver conteúdo a um cliente.
Mídia
O Turbo Notify não guarda arquivos de mídia:
- Com armazenamento próprio configurado, o arquivo vai direto para o seu bucket assim que a mensagem chega. O que o Turbo Notify guarda é só a referência a esse arquivo, e ela é apagada junto com o resto do conteúdo. O arquivo continua no seu bucket, sob as regras de ciclo de vida que você definir: o Turbo Notify nunca apaga nada dele.
- Sem armazenamento próprio, o arquivo não é guardado: ele passa pela memória dos nossos servidores só para ser processado e é descartado. O bloco de mídia (
image/video/audio/document/sticker) vem comkind: "unavailable"e umsetup_hintque mostra como configurar.
E a lei?
O Marco Civil da Internet obriga o Turbo Notify a guardar os próprios registros de acesso à aplicação por 6 meses (guardamos por 12). Essa obrigação não alcança o conteúdo das mensagens que você troca, e por isso ele fica só pelo prazo acima. O WhatsApp e a Meta guardam os registros deles segundo as regras deles.
Implicações práticas
- Configure um webhook e guarde no seu sistema o que importa para o seu negócio (o
message_id, o status final, o texto, se você precisar dele depois). A API não é um arquivo das suas conversas. - O status, os recibos e as reações continuam consultáveis por 12 meses; só o conteúdo some no prazo.
- Se você reenvia manualmente pelo dashboard uma entrega de webhook já concluída depois do prazo, ela sai com o conteúdo apagado, como a consulta por id.
- Aumentar o prazo ou mudar para um plano maior não recupera conteúdo que já foi apagado.
- As cotas de mensagens e de contatos por ciclo são outro assunto: veja Cota e uso.
Consulta de status
Para verificar o status de uma mensagem, veja Status. Ele continua disponível por 12 meses, também depois que o conteúdo expira.