POST
para URLs cadastradas sempre que determinados eventos ocorrerem. O payload enviado contém todas as includes
disponíveis relacionadas ao recurso.
Crie webhooks via API
Você pode criar e gerenciar webhooks através da API de Webhooks. Para mais informações, consulte a documentação da API de Webhooks.Eventos disponíveis
Abaixo estão os eventos atualmente suportados. Você pode configurar webhooks para escutar um ou mais desses eventos:Evento | Descrição | Exemplos |
---|---|---|
order.created | Pedido criado | Ver payload |
order.paid | Pedido aprovado | Ver payload |
order.status.updated | O status de um pedido foi atualizado | Ver payload |
order.invoice.created | Nota fiscal de um pedido foi criada | Ver payload |
order.invoice.updated | Nota fiscal de um pedido foi atualizada | Ver payload |
transaction.payment.refused | O pagamento de uma transação foi negado | Ver payload |
cart.reminder | Notificação de carrinho abandonado | Ver payload |
customer.created | Cliente criado | Ver payload |
customer.address.created | Endereço do cliente criado | Ver payload |
product.created | Produto criado | Ver payload |
product.updated | Produto atualizado | Ver payload |
product.deleted | Produto excluído | Ver payload |
product.inventory.updated | Estoque de produto atualizado | Ver payload |
cashback.expiring | Um Cashback está expirando | Ver payload |
Exemplos de payloads de Webhook
Aqui centralizaremos todos os payloads retornados por cada webhook.- Pedidos
- Carrinhos abandonados
- Clientes
- Endereços de clientes
- Produtos
- Cashback
- Transações
- Notas fiscais
- Estoque
Exemplos de payloads retornados em
order.created
, order.updated
, order.paid
e order.status.updated
.
Onde, o campo event
é enviado de acordo com o evento que disparou esse webhook.⚠️ Sua aplicação deve responder em até 5 segundos com um status code do nível 2XX. Caso contrário, a Yampi abortará a requisição e marcará como uma falha. Após 30 falhas, o webhook será desativado automaticamente.
Segurança
A validação do webhook serve para verificar se realmente ele foi enviado pela Yampi, e é de extrema importância a sua utilização para que suas transações estejam seguras. Para fazer a validação, são necessárias duas informações de nosso webhook:- Valor do header
X-Yampi-Hmac-SHA256
. Vamos chamar esse valor de “assinatura do webhook”; - Corpo da requisição (no mesmo formato mostrado acima). Com esses dois valores, basta realizar o base64 do algoritmo HMAC-SHA256 do corpo da requisição utilizando a chave secreta do Webhook e comparar com a assinatura do webhook. Se os valores forem iguais, excelente. Caso contrário, não fomos nós que enviamos essa requisição!
Exemplo de validação em PHP
Importante: é esperado que o base64 seja calculado em cima do hmac em formato binário. No exemplo em PHP, é o terceiro argumento da função hash_hmac()