Skip to main content
Referência da recuperação de receita: contrato do endpoint, eventos, assinatura e respostas. Para o passo a passo, veja a receita Recuperar carrinho abandonado. Sua plataforma envia o evento para um endpoint único da sua organização, e a Arara dispara o template vinculado àquele evento para o telefone do cliente, com um botão de retorno rastreável.
A recuperação de receita depende do plano: os endpoints /v1/recovery/* respondem 403 PLAN_FEATURE_LOCKED quando o plano não inclui o recurso. O número de automações ativas também é limitado pelo plano.

Eventos

Qualquer outro nome de evento é aceito se houver uma automação escutando ele. Sem automação e sem template, o ingest termina com UNKNOWN_EVENT.

Como funciona

Setup

1

Pegue o endpoint da sua organização

Responde { code, hmacSecret, active, url }. O endpoint nasce com active: false. Os eventos da sua plataforma vão para https://api.ararahq.com/l/{code}.
2

Provisione os templates padrão (opcional)

Cria os 4 templates da tabela acima na sua conta e vincula cada um ao seu evento. Responde { data: [{ event, templateName, status, error }] }. Os templates precisam ser aprovados pela Meta antes do primeiro envio.
3

Ou vincule um template seu a um evento

templateId é o UUID do template. A seção Variáveis, abaixo, explica o variableMapping.
4

Ative o endpoint

Esse interruptor vale para recuperação de um passo (evento para template). Com ele desligado, o evento só é aproveitado por automações ativas que escutam aquele evento; sem nenhuma, a resposta vem REJECTED com reason: NO_ACTIVE_AUTOMATION.

Enviando um evento

Não precisa de chave de API: o endpoint é identificado pelo code.
O campo url devolvido por GET /v1/recovery/endpoint aponta para ararahq.com/l/{code}, que só aceita GET (redirecionamento de links). Envie o POST do evento para https://api.ararahq.com/l/{code}.
A resposta é 202 com { ingestId, status, reason, messageId }.

Assinatura

A assinatura do endpoint de recuperação é calculada só sobre o corpo bruto (sem timestamp). Se o header vier e não bater, a resposta é 401 RECOVERY_HMAC_INVALID. Envie sempre: é o que impede terceiros de disparar mensagens com o seu código.
Envie exatamente a string assinada como corpo. Vazou o segredo? POST /v1/recovery/endpoint/regenerate gera novo code e novo hmacSecret (a URL antiga para de funcionar).
Os webhooks que a Arara envia para você usam outro esquema (HMAC de {timestamp}.{rawBody}). Ver Webhooks.

Variáveis

  • variables.link não entra no corpo do template: vira o destino do botão de link do template, encurtado e rastreado.
  • As demais chaves de variables são enviadas como variáveis do template na ordem alfabética das chaves.
  • variableMapping renomeia chaves antes dessa ordenação. Pra controlar a ordem, mapeie cada chave para "1", "2", "3" na ordem em que aparecem no template (até 9 variáveis).

Motivos de rejeição

Excesso de eventos por organização responde 429 RECOVERY_RATE_LIMITED com Retry-After.

Configs, ingests e métricas

  • ingests responde { content, totalPages, totalElements }, com id, eventType, phone, status, rejectReason e receivedAt por item.
  • stats aceita period = TODAY (default), YESTERDAY, LAST_7D ou LAST_30D e responde { period, valueRecovered, valueRecoveredDelta, byEvent }. O valor recuperado vem das conversões que você reporta (ver Atribuição de conversão).

Testando sem evento real

Processa um payload de exemplo como se viesse da sua plataforma e envia de verdade para o telefone cadastrado no seu usuário. O endpoint precisa estar ativo e o template aprovado.

Próximos passos

Receita: recuperar carrinho

Fluxo de carrinho abandonado de ponta a ponta.

Atribuição

Reporte a venda para medir o valor recuperado.