Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.aobapay.com/llms.txt

Use this file to discover all available pages before exploring further.

Os webhooks permitem que sua aplicação seja notificada automaticamente, em tempo real, sobre eventos relevantes na AobaPay. Isso elimina a necessidade de consultas manuais à API, garantindo mais agilidade e consistência em seus processos.

Gerenciando Webhooks

Você pode gerenciar seus webhooks diretamente pelo dashboard da AobaPay. É possível:
  • Listar todos os webhooks ativos
  • Criar novos webhooks conforme sua necessidade
  • Desativar webhooks que não serão mais utilizados

Criando Webhooks

Boas práticas de segurança

  • Utilize um secret exclusivo para cada webhook
  • Valide a assinatura de todas as requisições recebidas
  • Configure apenas URLs HTTPS para maior segurança
  • Implemente lógica de retry para lidar com falhas temporárias

Como criar seu Webhook

Siga estes passos no dashboard da AobaPay:
1

Acesse a seção de Webhooks

Interface da plataforma AobaPay mostrando a seção de webhooks

Navegue até a seção Integrar e clique em Webhooks

Inicie a configuração de um novo webhook
2

Inicie a criação

Formulário de criação de webhook

Clique em 'Criar'

Você será direcionado ao formulário de configuração
3

Configure seu Webhook

Preencha os campos obrigatórios:

  • Nome → Identificador do webhook (ex.: “Pagamentos Aprovados”)
  • URL → Endpoint HTTPS que receberá as notificações
  • Assinatura → Secret usado para validação das requisições
  • Status → Defina se o webhook ficará ativo ou inativo

Protegendo suas requisições

Cada notificação enviada inclui o secret configurado, que deve ser validado pela sua aplicação. Isso garante que apenas chamadas legítimas da AobaPay sejam processadas.

Exemplo de URL de Webhook

  • URL base configurada no dashboard:
https://meusite.com/webhook/aobapay 
  • Chamadas realizadas pela AobaPay incluirão o header de assinatura com o secret:
signature: seu_secret_configurado

Exemplo de Implementação

// Exemplo de validação de webhook com Node.js/Express
app.post('/webhook/aobapay', (req, res) => {
  const signature = req.headers['signature'];

  if (signature !== process.env.WEBHOOK_SECRET) {
    return res.status(401).json({ error: 'Invalid webhook signature' });
  }

  // Processa o evento recebido
  const event = req.body;
  console.log('Webhook recebido:', event);

  res.status(200).json({ received: true });
});

Eventos Suportados

Atualmente, suportamos os seguintes eventos:

EVENT:CHARGE_PAID

Este evento é disparado quando um pagamento é confirmado:
{
  "event": "EVENT:CHARGE_PAID",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "brCode": "00020001021226810014br.gov.bcb.pix255..",
    "brCodeImageUrl": "https://api.aobapay.com/v1/qrcode/ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "amount": 300,
    "endToEndId": "8129812-189asnk1y1-1289aisn-1-2",
    "expiration": "300",
    "fee": 78,
    "expiresAt": "2025-09-16 11:43:30",
    "status": "PAID",
    "customer": {
      "id": "cus_2352001f-43da-4875-b4c0-cc6350d3891e",
      "name": "Brendo Oliveira",
      "document": "123.456.789.01",
      "email": "brendo@aobapay.com",
      "phone": "(15) 99799-1010"
    }
  }
}

EVENT:CHARGE_EXPIRED

Este evento é disparado quando uma cobrança é expirada
{
  "event": "EVENT:CHARGE_EXPIRED",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "brCode": "00020001021226810014br.gov.bcb.pix255..",
    "brCodeImageUrl": "https://api.aobapay.com/v1/qrcode/ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "amount": 300,
    "expiration": "300",
    "fee": 78,
    "expiresAt": "2025-09-16 11:43:30",
    "status": "EXPIRED",
    "customer": {
      "id": "cus_2352001f-43da-4875-b4c0-cc6350d3891e",
      "name": "Brendo Oliveira",
      "document": "123.456.789.01",
      "email": "brendo@aobapay.com",
      "phone": "(15) 99799-1010"
    }
  }
}

EVENT:CHARGE_REFUND

Este evento é disparado quando uma cobrança é extornada
{
  "event": "EVENT:CHARGE_REFUND",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "brCode": "00020001021226810014br.gov.bcb.pix..",
    "brCodeImageUrl": "https://api.aobapay.com/v1/qrcode/ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "amount": 250,
    "endToEndId": "8129812-189asnk1y1-1289aisn-1-2",
    "expiration": "300",
    "fee": 78,
    "expiresAt": "2025-09-16 11:43:30",
    "status": "REFUNDED",
    "customer": {
      "id": "cus_2352001f-43da-4875-b4c0-cc6350d3891e",
      "name": "Brendo Otavio",
      "document": "490.464.828-55",
      "email": "brendo.dev@outlook.com",
      "phone": "(15) 99787-6029"
    }
  }
}

EVENT:CASH_OUT

Este evento é disparado quando uma cobrança é extornada
{
  "event": "EVENT:CASH_OUT",
  "data": {
    "id": "wdl_47d56145-870e-4240-83a4-c0199308278b",
    "externalID": "123-SAQUE",
    "amount": 200,
    "comment": "PAGAMENTO",
    "status": "DONE",
    "destination": {
      "name": "BRENDO OTAVIO DE OLIVEIRA SANTOS",
      "bankName": "BCO SANTANDER (BRASIL) S.A.",
      "pikKey": "brendo@aobapay.com",
      "pixKeyType": "EMAIL",
      "account": "00000000000000000",
      "branch": "0000"
    },
    "createdAt": "2025-09-17 15:59:07",
    "updatedAt": "2025-09-17 15:59:10"
  }
}

EVENT:MED_CREATED

Este evento é disparado quando uma Disputa/Med é criada
{
  "event": "EVENT:MED_CREATED",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "endToEndId": "8129812-189asnk1y1-1289aisn-1-2",
    "amount": 200,
    "name": "Sr Fulano",
    "email": "vecna@strangerthings.com",
    "status": "OPENED",
    "disputeReason": "Will me enganou!",
    "createdAt": "2025-09-17 15:59:07",
    "updatedAt": "2025-09-17 15:59:10"
  }
}

EVENT:MED_REJECTED

Este evento é disparado quando uma Disputa/Med é Rejeitada e Favorável a empresa.
{
  "event": "EVENT:MED_REJECTED",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "endToEndId": "8129812-189asnk1y1-1289aisn-1-2",
    "amount": 200,
    "name": "Sr Fulano",
    "email": "vecna@strangerthings.com",
    "status": "REJECTED",
    "disputeReason": "Will me enganou!",
    "createdAt": "2025-09-17 15:59:07",
    "updatedAt": "2025-09-17 15:59:10"
  }
}

EVENT:MED_CANCELLED

Este evento é disparado quando uma Disputa/Med Cancelado
{
  "event": "EVENT:MED_CANCELLED",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "endToEndId": "8129812-189asnk1y1-1289aisn-1-2",
    "amount": 200,
    "name": "Sr Fulano",
    "email": "vecna@strangerthings.com",
    "status": "CANCELLED",
    "disputeReason": "Will me enganou!",
    "createdAt": "2025-09-17 15:59:07",
    "updatedAt": "2025-09-17 15:59:10"
  }
}

EVENT:MED_ACCEPTED

Este evento é disparado quando uma Disputa/Med Aceito e Favorável ao cliente
{
  "event": "EVENT:MED_ACCEPTED",
  "data": {
    "id": "ch_abb6bc4f-f55d-45ff-8be2-8fdbde0cb8b8",
    "externalID": null,
    "endToEndId": "8129812-189asnk1y1-1289aisn-1-2",
    "amount": 200,
    "name": "Sr Fulano",
    "email": "vecna@strangerthings.com",
    "status": "ACCEPTED",
    "disputeReason": "Will me enganou!",
    "createdAt": "2025-09-17 15:59:07",
    "updatedAt": "2025-09-17 15:59:10"
  }
}

Nota Importante

  • Todos os valores monetários são expressos em centavos
  • O campo fee representa a taxa cobrada pela AobaPay
  • O campo event identifica o tipo de evento recebido

Precisa de ajuda?

Nossa equipe está disponível para auxiliar na implementação de webhooks. Entre em contato pelo e-mail contato@aobapay.com