Segurança contra replay
A entrega é at-least-once. O mesmo event_id reutiliza a linha do evento. A entrega inicial é única por evento e endpoint (ON CONFLICT DO NOTHING). Um replay manual com uma Idempotency-Key nova insere outra linha com delivery_kind=replay. A ordem entre eventos não é garantida.
Trate id como chave idempotente no seu sistema. Um POST repetido com o mesmo MuPag-Signature, o mesmo X-Gateway-Event-Id e o mesmo corpo é o mesmo fato, não um evento novo. X-Gateway-Signature carrega o mesmo HMAC-SHA256.
O que o emissor não faz
Não há ordenação global. Não há tolerância fixa no remetente: a janela, quando você valida, é o argumento de verify. Os testes usam 300 segundos. O replay manual, feito na sessão da conta, deduplica a mesma Idempotency-Key com o mesmo lojista, endpoint, evento e motivo: a resposta devolve a delivery já criada. A chave tem no máximo 80 caracteres e é guardada como hash SHA-256. A mesma chave com outros parâmetros falha. Uma chave nova cria outra delivery do mesmo id.
O circuito de 10 falhas por 1 hora, os status retentáveis 408, 425, 429 e 500–599 (incluindo 599 de transporte) e o abandono do status 0 estão em Retries. O segredo continua sendo o whsec_ devolvido uma vez na criação ou na rotação.
checkout_session.completed é o tipo de sessão concluída. Não existe checkout_session.paid.
Esta página liberou seu próximo passo?
O feedback permanece no fluxo da documentação e nunca deve incluir dados de clientes ou cartões.