Abra 🪝 Webhooks → Configurar URL. O secret é separado do token. Cada POST traz GramPay-Event, GramPay-Delivery-ID, GramPay-Timestamp e GramPay-Signature: sha256=<hex>.

Calcule HMAC-SHA256 sobre os bytes brutos antes de interpretar JSON e compare em tempo constante. Assinatura ausente/inválida deve receber não-2xx.

Ao salvar/testar, Phoenix envia o mesmo webhook_test sem assinatura, com assinatura errada e correta. A correta deve responder 2xx em 5 s; redirects não são seguidos. O teste não repete. Eventos reais repetem até 17 vezes por cerca de quatro dias e depois desativam o endpoint. Persista e responda rápido, processe de forma idempotente e deduplique por GramPay-Delivery-ID.

Próximo passo

Os primeiros 50 pagamentos são por nossa conta.

Começar com US$ 5 ↗