Garu

2026-05-05

v0.8.1 — Endpoint HTTP do gatilho manual de webhook

webhooksapideveloper-experience

A v0.8.0 entregou o motor por baixo, mas esqueceu o endpoint que torna o gatilho manual usável. A v0.8.1 fecha essa ponta.

O que mudou

POST /api/webhook-endpoints/:id/trigger

Body:

{
  "event": "transaction.payment.failed",
  "payloadOverrides": { "failureCode": "card_expired" }
}
  • O endpoint precisa estar inscrito no evento informado — caso contrário, 404.
  • O event precisa pertencer à whitelist de eventos manuais (qualquer evento que a Garu emita, exceto webhook.test, que continua atendido pelo /test legado).
  • payloadOverrides é mesclado raso no data.object do payload de exemplo — útil para fixar valores específicos (failureCode, gatewayFailureCode, etc.) e exercitar fluxos de erro determinísticos do seu lado.
  • O payload chega com metadata.test: true para que o consumer possa ramificar.
  • Retorna o OutgoingWebhookEvent já entregue (status, attempts, response code).

Para que serve

Substituto leve de sandbox. Útil principalmente para:

  • Validar parsing dos novos campos (failureCode/failureReason/gatewayFailureCode) introduzidos na v0.8.0 sem precisar de uma transação real falha.
  • Disparar scheduled_charge.cycle_failed em ambiente do parceiro antes de configurar uma série recorrente real.
  • Testar o handler de payment_method.expired sem esperar o vencimento real do cartão.

Migração

Nenhuma. Endpoint novo, totalmente aditivo.