Bestfy API
  1. Webhooks
Bestfy API
  • Sobre a Bestfy
    • Comece aqui
  • Webhooks
    • O que é um Webhook?
  • Transações
    • Criar transações
      POST
    • Buscar transação
      GET
    • Listar transações
      GET
  1. Webhooks

O que é um Webhook?

Um webhook é um mecanismo de comunicação entre sistemas que permite que a Bestfy envie notificações automáticas para uma URL da sua aplicação sempre que um evento importante ocorrer. Em vez de você precisar consultar nossa API repetidamente para verificar se algo mudou (polling), nós avisamos você instantaneamente.
Pense no webhook como um "aviso automático": quando uma transação é criada ou muda de status, a Bestfy faz uma requisição HTTP POST para a URL que você configurou, enviando os dados do evento no corpo da requisição.

Como configurar um Webhook#

Para configurar um webhook na sua conta:
1.
Acesse a plataforma da Bestfy
2.
No menu lateral esquerdo, clique em Webhooks
3.
Clique em Criar webhook
4.
Preencha os campos:
URL: A URL do seu servidor que receberá as notificações (deve aceitar requisições POST)
Evento: Selecione o evento que deseja monitorar
5.
Clique em Salvar
⚠️ Limite: Você pode cadastrar no máximo 3 webhooks por evento

Eventos disponíveis#

Atualmente, a Bestfy dispara webhooks para o seguinte evento:
EventoDescrição
TRANSACTION_CREATED_OR_UPDATEDDisparado quando uma transação é criada ou tem seu status atualizado

Payload do Webhook#

Quando um evento ocorre, enviamos uma requisição POST para a sua URL. O conteúdo do payload varia conforme o momento do disparo.

Quando a transação é criada#

Ao criar uma nova transação (via PIX, cartão de crédito, etc.), enviamos o payload mais simples:
{
  "companyId": "uuid-da-empresa",
  "transactionId": "uuid-da-transacao",
  "status": "PENDING"
}
💡 O status na criação é sempre PENDING, indicando que a transação foi gerada e está aguardando pagamento.

Quando a transação tem o status atualizado#

Quando o status da transação muda (por exemplo, de PENDING para PAID), o payload inclui campos adicionais:
{
  "companyId": "uuid-da-empresa",
  "transactionId": "uuid-da-transacao",
  "status": "PAID",
  "pixEndToEndId": "E12345678202312171430abc123def456",
  "paymentConfirmedAt": "2025-12-17T14:30:00.000Z"
}

Comparativo dos campos#

CampoCriaçãoAtualizaçãoDescrição
companyId✅✅Identificador único da empresa
transactionId✅✅Identificador único da transação
status✅✅Status da transação (na criação é sempre PENDING)
pixEndToEndId❌⚠️ID end-to-end do PIX (somente quando pagamento PIX é confirmado)
paymentConfirmedAt❌⚠️Data/hora de confirmação (somente quando a transação for paga)

Descrição dos campos#

CampoTipoDescrição
companyIdstringIdentificador único da empresa (UUID)
transactionIdstringIdentificador único da transação financeira (UUID)
statusstringStatus atual da transação (veja tabela abaixo)
pixEndToEndIdstringIdentificador end-to-end do PIX (apenas para pagamentos PIX)
paymentConfirmedAtstringData/hora de confirmação do pagamento (formato ISO 8601)

Status da transação#

O campo status pode conter os seguintes valores:
StatusDescrição
PENDINGTransação pendente, aguardando pagamento
PAIDPagamento confirmado com sucesso
CANCELEDTransação cancelada
EXPIREDTransação expirada (prazo de pagamento vencido)
REFUNDEDValor estornado ao cliente
UNDER_REVIEWPagamento em análise
REJECTEDPagamento rejeitado
MEDMecanismo Especial de Devolução (PIX)
UNKNOWNStatus desconhecido

Exemplo de recebimento#

Seu servidor deve estar preparado para receber requisições POST. Exemplo em Node.js/Express:

Boas práticas#

1.
Responda rapidamente: Retorne um status 2xx em até 5 segundos para confirmar o recebimento
2.
Processamento assíncrono: Se precisar executar operações demoradas, salve o payload e processe em background
3.
Idempotência: Prepare seu sistema para receber o mesmo evento mais de uma vez (webhooks podem ser reenviados)
4.
Validação: Sempre valide o companyId para garantir que o evento pertence à sua conta
5.
HTTPS: Use sempre URLs com HTTPS para garantir a segurança dos dados

Erros comuns#

CódigoMotivo
400Limite de webhooks excedido (máximo 3 por evento)
404Empresa não encontrada
409URL já cadastrada para este evento
500Erro interno
Modified at 2026-01-28 19:10:24
Previous
Comece aqui
Next
Criar transações
Built with