Reward_Redeemed (30) e Reward_Cancelled (31) acompanham o ciclo de vida de um resgate. No painel, eles aparecem como Recompensa resgatada e Recompensa cancelada. Os dois compartilham a mesma estrutura base, e o cancelamento acrescenta os campos do cancelamento.
Use estes tópicos para sincronizar resgates com sua integração. Eles são independentes de Communication_RedeemPoints e Communication_RewardCustomRedeemNotification, que continuam seguindo as regras de comunicação e só são enviados quando a comunicação de resgate é disparada.
Resgate de recompensa
O tópicoReward_Redeemed (30) é enviado quando o cliente troca pontos por uma recompensa.
Quando o evento é gerado
O evento é gerado em todos os resgates, para qualquer tipo de recompensa (cupom, cashback ou recompensa customizada) e qualquer origem: página do programa, widget, checkout, API e PDV. A origem vem no campoRedeemOrigin.
Cada resgate gera no máximo um evento por assinatura. O evento é enviado mesmo que o resgate já tenha sido cancelado quando a entrega acontece; nesse caso, o cancelamento chega separadamente em Reward_Cancelled.
No checkout, cada atualização do carrinho pode cancelar o resgate anterior e criar um novo. Nesses casos, você recebe um
Reward_Redeemed para cada resgate e um Reward_Cancelled para cada resgate substituído. Use RewardId para cruzar os dois eventos.Exemplo
Exemplo completo com o envelope padrão, em um resgate de cashback feito no checkout:Campos do payload
Recompensa cancelada
O tópicoReward_Cancelled (31) é enviado quando um resgate de recompensa é cancelado e os pontos voltam para o cliente.
Quando o evento é gerado
O evento é gerado nos cancelamentos feitos pelo fluxo padrão de cancelamento de resgates, incluindo:- cancelamento pela API e pelo PDV;
- remoção do resgate pelo cliente no checkout;
- cancelamentos automáticos do checkout: atualização do carrinho, carrinho abandonado e chave de segurança ausente ou inválida;
- cancelamento automático do resgate quando o pedido que o utilizou é cancelado.
CancellationType. Um resgate só pode ser cancelado uma vez, então cada resgate gera no máximo um evento de cancelamento por assinatura.
Os cancelamentos automáticos do checkout são frequentes: a cada atualização do carrinho, o resgate anterior pode ser cancelado e substituído por um novo. Use
CancellationType para filtrar as origens relevantes para sua integração.Exemplo
Payload do cancelamento do resgate do exemplo anterior, feito pela API (sem o envelope, que segue o mesmo formato comTopic 31 e TopicName "Reward_Cancelled"):
Campos do payload
Todos os campos deReward_Redeemed, com estas diferenças:
Enums
- RewardType
- RedeemOrigin
- CancellationType
Indica o tipo da recompensa resgatada.
Entrega
Apenas assinaturas ativas com o tópico selecionado no momento do evento recebem a notificação. Ativar a assinatura ou adicionar o tópico não recupera resgates ou cancelamentos anteriores. Rotinas internas de correção que usam o fluxo padrão de resgate e cancelamento também geram estes eventos, em geral com
CancellationType null. Ajustes feitos diretamente no resgate, sem passar por esse fluxo (algumas sincronizações específicas de plataforma ou correções no banco), não geram eventos.- Use o
Uuiddo envelope para deduplicar as tentativas da mesma entrega. Ele permanece igual nas retentativas; assinaturas diferentes têm seus própriosUuid. - Use
TopicName+RewardIdcomo chave de idempotência de negócio: cada resgate gera no máximo um evento de cada tópico por assinatura. UseRewardIdpara cruzarReward_RedeemedcomReward_CancelledePointIdpara cruzar com os tópicos de pontos. - Não há garantia de ordem entre os tópicos. No checkout, quando o resgate é cancelado logo depois de feito, o
Reward_Cancelledpode chegar antes doReward_Redeemeddo mesmo resgate. Trate o cancelamento como estado final: se oReward_Redeemedchegar depois, não reative o resgate.
Customer e PointsBalance podem refletir movimentações de pontos posteriores ao evento, principalmente em retentativas. Em algumas plataformas, rotinas de reconciliação também podem ajustar CashValue e Points do resgate depois do evento.
Formato das datas
RedeemDate, CancelledDate e o Timestamp do envelope estão em UTC, mas são enviados sem designador de fuso e com até seis casas decimais nos segundos, por exemplo 2026-10-05T14:05:00.127941. Trate esses valores como UTC: em JavaScript, por exemplo, new Date("2026-10-05T14:05:00.127941") interpreta a data como hora local.
Estes tópicos usam a política de entrega existente, com os headers, método, URL e corpo configurados na assinatura.
Tópicos Disponíveis
Documentação atualizada em Outubro de 2026.