logo-Boraup
Faça login ou
crie seu cadastro

Como criar um webhook

📘 Documentação de Webhooks

Esta documentação descreve todos os webhooks disponíveis para integração, seus respectivos eventos e os payloads JSON simulados enviados pelo sistema em ambiente sandbox para testes.

🧪 Introdução

Cada evento listado aqui pode ser simulado via o [endpoint de sandbox](url do frontend para testar webhooks) e será enviado via requisição HTTP POST para a URL cadastrada pelo usuário. Os dados simulados são realistas, mas fictícios, gerados para facilitar testes e depuração do seu sistema.


🔄 Lista de Eventos Disponíveis

EventoIdentificador (eventType)
Carrinho AbandonadoABANDONED_CART
Compra AprovadaPURCHASE_APPROVED
ReembolsoREFUND
Estorno (Chargeback)CHARGEBACK
Boleto GeradoBILLET_GENERATED
PIX GeradoPIX_GENERATED

📦 Payloads por Evento

1. 🛒 Carrinho Abandonado – ABANDONED_CART

Evento disparado quando um cliente abandona o checkout.

Payload:

{
 "cartId": "d02f5214-5e3e-4036-9e0d-f4f94bdcf127",
 "checkoutLink": "https://sua-loja.com/checkout?cartId=d02f5214-5e3e-4036-9e0d-f4f94bdcf127",
 "name": "Lucas Rocha",
 "productId": "b05b7923-2c58-4eec-b86b-4f13c0e8034d",
 "status": "ABANDONED_CART",
 "createdAt": "2025-08-04T12:43:02.123Z",
 "productName": "Curso Completo de JavaScript",
 "document": "479.136.106-70"
}

2. ✅ Compra Aprovada – PURCHASE_APPROVED

Evento disparado quando um pagamento é confirmado.

Payload:

{
 "id": "1a2b3c4d-5678-90ef-gh12-ijklmnop3456",
 "typeOfSale": "PRODUCER",
 "releaseDate": "2025-08-14T12:43:02.123Z",
 "commissions": [
   {
     "customer": { "name": "Maria Oliveira" },
     "releaseDate": "2025-08-14T12:43:02.123Z",
     "status": "AWAITING_PAYMENT",
     "typeOfSale": "PRODUCER",
     "value": 83.27
   }
 ],
 "offer": {
   "id": "offer-id",
   "name": "super promo",
   "product": {
     "id": "product-id",
     "name": "product x"
   }
 },
 "price": 395.00,
 "fee": 19.75,
 "commission": 83.27,
 "netRevenue": 291.98,
 "totalAmount": 498.02,
 "payment": {
   "paymentMethod": "BILLET",
   "generatedPaymentMethod": "BILLET"
 },
 "customer": {
   "name": "João Pedro",
   "email": "joao.pedro@email.com",
   "document": "479.136.106-70"
 },
 "createdAt": "2025-08-04T12:43:02.123Z",
 "updatedAt": "2025-08-04T12:43:02.123Z"
}

3. 💸 Reembolso – REFUND

Enviado quando uma compra é reembolsada.

Payload:

{
 "id": "1a2b3c4d-5678-90ef-gh12-ijklmnop3456",
 "typeOfSale": "PRODUCER",
 "releaseDate": "2025-08-14T12:43:02.123Z",
 "commissions": [...],
 "offer": {...},
 "price": 395.00,
 "fee": 19.75,
 "commission": 83.27,
 "netRevenue": 291.98,
 "totalAmount": 498.02,
 "payment": {
   "paymentMethod": "BILLET",
   "generatedPaymentMethod": "BILLET"
 },
 "customer": {
   "name": "João Pedro",
   "email": "joao.pedro@email.com",
   "document": "479.136.106-70"
 },
 "createdAt": "2025-08-04T12:43:02.123Z",
 "updatedAt": "2025-08-04T12:43:02.123Z",
 "refundPdfUrl": "https://boraup.com.br"
}

4. ⚠️ Chargeback – CHARGEBACK

Disparado quando um pagamento é contestado junto à operadora.

Payload:

Mesmo payload de PURCHASE_APPROVED, com o campo eventType: "CHARGEBACK".


5. 🧾 Boleto Gerado – BILLET_GENERATED

Enviado no momento da geração do boleto bancário.

Payload:

Mesmo payload de PURCHASE_APPROVED, com o campo eventType: "BILLET_GENERATED".


6. 🔢 PIX Gerado – PIX_GENERATED

Evento que indica que um QR Code PIX foi criado.

Payload:

Mesmo payload de PURCHASE_APPROVED, com o campo eventType: "PIX_GENERATED".


🧰 Regras de Negócio Simuladas

  • Comissões: Geradas aleatoriamente com valores entre 1% e 15%.
  • Taxas: Calculadas com base em taxas de 1% a 10%.
  • Datas: releaseDate é sempre 10 dias após a data atual.
  • Documentos: CPF fictício, mas com formato válido.

🛡️ Segurança

Todos os webhooks devem ser verificados no seu sistema por meio de:

  • Verificação da origem do IP (caso aplicável)
  • Conferência do conteúdo JSON recebido

🔄 Recomendações para Integração

  • Utilize ferramentas como Webhook.site, RequestBin ou o Postman para testar.
  • Armazene logs de cada webhook recebido para análise futura.
  • Garanta que seu endpoint responda com HTTP 2xx para confirmar o recebimento.

❓ Dúvidas Frequentes

Posso configurar múltiplos webhooks?
Sim, o sistema permite múltiplas URLs por tipo de evento e por produto.

Posso filtrar por produto?
Sim, em produção o webhook pode ser restrito a produtos específicos.

Como recebo novamente um webhook perdido?
No ambiente de produção, o sistema tentará reenvio em caso de falha. No sandbox, basta executar novamente o teste.


📞 Suporte

Em caso de dúvidas ou problemas na integração, entre em contato com o suporte técnico via:

BoraUp
Escrito por BoraUpAtualizado há 6 meses
logo
BORAUP SERVIÇOS DIGITAIS LTDACNPJ 52.315.782/0001-51