Skip to main content
Muitos resultados de pagamento acontecem depois que sua chamada de API original retorna — um APM assíncrono é liquidado, um desafio 3DS é concluído, uma disputa é aberta, ou uma assinatura é renovada conforme programado. Os webhooks são como o Therius avisa o seu servidor sobre esses eventos. Você registra um endpoint HTTPS, assina os tipos de evento que interessam, e o Therius faz um POST de uma carga JSON para esse endpoint sempre que um evento correspondente ocorre.
Os webhooks são a fonte de verdade para os resultados assíncronos. Para os métodos de voucher e transferência bancária em especial, não atenda um pedido com a resposta inicial pending / pending_action — aguarde o webhook payment.captured.

Configure o seu endpoint

Os endpoints de webhook são configurados no painel do Therius, em Desenvolvedores → Webhooks:
1

Defina a URL do endpoint

Informe uma URL HTTPS pública no seu servidor (por exemplo https://your-server.com/webhooks/therius). URLs não HTTPS e URLs que resolvem para endereços privados, de loopback ou link-local são rejeitadas.
2

Escolha os eventos

Selecione os tipos de evento a receber. Deixar a seleção vazia assina você em todos os eventos. Veja o catálogo de eventos para a lista completa.
3

Habilite a entrega

Ative o endpoint. Você pode desativá-lo a qualquer momento sem perder a configuração.
4

Envie um evento de teste

Use o controle Enviar evento de teste para disparar uma carga de amostra ao seu endpoint, depois verifique-a em Entregas recentes.
É aceito um endpoint de webhook por conta do lojista. Os eventos de sandbox e de produção são configurados juntos, mas cada carga traz um campo environment para você distingui-los.

Mecânica de entrega

Seu endpoint deve confirmar o recebimento com um status 2xx o mais rápido possível — faça o processamento de fato em uma fila em segundo plano. O Therius trata uma resposta lenta ou que não seja 2xx como uma entrega falha e a refaz.

Novas tentativas

Uma entrega falha é refeita até 7 vezes em uma programação de espera crescente: Após a tentativa final, a entrega é marcada como morta. Você pode inspecionar cada tentativa — incluindo o último status HTTP e o erro — em Desenvolvedores → Webhooks → Entregas recentes, e disparar uma nova entrega com Reenviar.
Como as entregas são refeitas, o seu endpoint vai receber ocasionalmente o mesmo evento mais de uma vez. Trate os eventos de forma idempotente — baseie o seu processamento no data.payment_code (ou subscription_id) mais o tipo de event, e faça as entregas repetidas não terem efeito.

Verificação de assinatura

Quando há um segredo de assinatura configurado para o seu endpoint, cada requisição traz um cabeçalho X-Therius-Signature:
O HMAC é calculado sobre os bytes brutos exatos do corpo da requisição, usando o seu segredo de assinatura como chave. Verifique-o antes de confiar em uma carga:
Se não houver um cabeçalho X-Therius-Signature, um segredo de assinatura ainda não foi provisionado para a sua conta. Entre em contato com o Therius para emitir um e, até lá, restrinja o endpoint por outros meios (por exemplo, um segmento de caminho imprevisível ou uma lista de permissões dos endereços de saída do Therius).

Envelope da carga

Todo corpo de webhook é um objeto JSON com uma string event de nível superior, um timestamp e um objeto data. Os eventos de pagamento e de assinatura têm envelopes ligeiramente diferentes — veja Eventos de webhook para a estrutura exata de cada um.