# Retries e logs

> Quando a Rapid tenta entregar o webhook de novo, em que intervalos, o que conta como sucesso e como ler o log de entregas.

Página: https://doc.rapidchargeback.com/canais/webhook/retries-e-logs/

## Política de retentativa

Se sua aplicação responder com qualquer código diferente de `2xx`, ou não responder dentro do timeout, a Rapid considera a tentativa como falha e reenvia o webhook.

| Tentativa | Atraso em relação à anterior |
|---|---|
| 1ª | envio imediato após enfileirar |
| 2ª | 5 minutos |
| 3ª | 15 minutos |
| 4ª | 30 minutos |

Total: **4 tentativas** (1 inicial + 3 retentativas). Depois da 4ª falha a entrega é encerrada e o alerta fica disponível apenas no painel para ação manual.

## Timeout

Cada tentativa tem **timeout de 30 segundos**. Se sua aplicação não responder nesse prazo, a tentativa é considerada falha.

## O que conta como sucesso

Qualquer código **`2xx`**: `200`, `201`, `202`, `204` e os demais da faixa. O corpo da resposta é opcional.

Qualquer outro código (incluindo `4xx` e `5xx`) dispara retentativa.

### Redirecionamento

Cadastre a **URL final**. A Rapid trata redirecionamento assim:

| Resposta da sua URL | O que acontece |
|---|---|
| `301`, `302`, `303` | **Falha.** Esses códigos trocam o POST por `GET` e descartam o corpo, então segui-los seria entregar nada. A tentativa entra na retentativa e o log mostra para onde a sua URL redireciona. |
| `307`, `308` para o **mesmo** domínio | Seguido, com o POST, o corpo e os headers intactos. Até 3 redirecionamentos seguidos. |
| `307`, `308` para **outro** domínio | **Falha.** O payload assinado não sai do domínio que você cadastrou. |

Os casos comuns são o servidor acrescentar `/` no fim do caminho e redirecionar `http` para `https`. No log de entregas o motivo aparece começando com `[redirecionamento]`, junto com o endereço de destino. Se o alerta não deve ser processado pelo seu lado, ainda assim retorne `200` para evitar retentativas desnecessárias.

## Endereço que não é público

Se o endereço cadastrado não resolve para um endereço público de internet (aponta para rede local ou privada, ou o domínio não existe), a entrega **falha sem nenhuma requisição** e entra no fluxo normal de retentativas. No log de entregas o motivo aparece começando com `[destino]`. Corrija a URL ou o DNS do domínio; veja [Use um endereço público de internet](https://doc.rapidchargeback.com/canais/webhook/boas-praticas/#use-um-endereço-público-de-internet).

Se o motivo começa com `[assinatura]`, a falha é do lado da Rapid: a entrega não sai sem assinatura, e é tentada de novo automaticamente. Não é preciso fazer nada no seu sistema.

## Empresas bloqueadas

Se a empresa está bloqueada por inadimplência na Rapid, **o fluxo de webhooks continua normal**: alertas seguem sendo recebidos dos provedores, armazenados e entregues à URL configurada. O painel continua disponível. O que o bloqueio corta é a **API por credencial** (leitura e escrita: `GET/PATCH /chargeback-alert/alerts`, transações, merchants, aliases legados), que passa a responder `403 COMPANY_BLOCKED`, e a defesa de novas disputas.

Para interromper o recebimento de novos alertas, é necessário desativar o cadastro diretamente no provedor (ação operada pela equipe da Rapid).

## Logs de entrega

Toda tentativa é registrada internamente com:
- Evento entregue (`chargeback_alert.received`, `dispute.fraud.revoke_access`)
- Data/hora da tentativa
- URL de destino
- Código HTTP da resposta
- Corpo da resposta (truncado em 1000 caracteres)
- Número da tentativa

Você pode consultar esses logs no painel da Rapid, em **Atividade**, aba **Webhooks**, para depurar falhas de entrega. (A tela `Configurações > Webhook` é a do cadastro da URL; ela não mostra as entregas.)

## Reenvio manual

Quando todas as tentativas automáticas falham, o alerta fica visível no painel. Você pode solicitar reenvio manual pela equipe da Rapid: alertas reenviados chegam como um novo webhook com o mesmo `alert_id`, por isso [idempotência](https://doc.rapidchargeback.com/canais/webhook/boas-praticas/#idempotência) é essencial.
