Skip to main content

Visão Geral

Os eventos de webhook de transações permitem que você receba notificações em tempo real quando transações são criadas ou atualizadas em sua organização. Gu1 envia automaticamente solicitações HTTP POST para seu endpoint de webhook configurado, permitindo que você automatize fluxos de trabalho de monitoramento de transações, detecção de fraude e conformidade regulatória.

Por Que Usar Webhooks de Transações?

Monitoramento em Tempo Real

Receba notificações instantâneas sobre transações novas ou atualizadas

Detecção de Fraude

Implemente verificações de segurança adicionais em tempo real

Automação de Workflows

Acione processos automáticos baseados em atividade transacional

Auditoria e Conformidade

Mantenha registros de auditoria sincronizados em todos os seus sistemas

Eventos Disponíveis

Gu1 envia webhooks para os seguintes eventos de transações:
Os eventos transaction.created e transaction.updated estão atualmente em desenvolvimento e serão ativados em breve. A documentação está disponível para preparar sua integração.Disponível hoje: transaction.status_changed é emitido quando o status muda. O Gu1 também pode enviar transaction.updated na mesma alteração (payload mais rico com valores, origem/destino, etc.). Inscreva-se em um ou em ambos conforme precise do instantâneo completo ou apenas da transição.

Estrutura do Payload do Evento

Todos os eventos de webhook de transações seguem esta estrutura padrão:

Campos Comuns do Payload

string
O tipo de evento (por exemplo, transaction.created)
string
Timestamp ISO 8601 quando o evento ocorreu
string
Seu ID de organização
string
O ID UUID da transação no Gu1
string
Seu ID externo para a transação
string
Tipo de transação: payment, transfer, withdrawal, etc.
string
Status atual da transação: CREATED, PROCESSING, SUSPENDED, SENT, SUCCESSFUL, DECLINED, REFUNDED, EXPIRED
number
Valor da transação na moeda original
string
Código de moeda ISO 4217 (por exemplo, USD, EUR, BRL)

Payloads Específicos de Eventos

transaction.created

Enviado quando uma nova transação é registrada no sistema.
Caso de uso: Acione verificações de fraude adicionais, atualize saldos de conta em tempo real, ou inicie processos de conformidade.

transaction.updated

Enviado quando uma transação existente é atualizada (por exemplo, mudança de status).
Caso de uso: Notifique clientes sobre o status de sua transação, atualize dashboards em tempo real, ou acione fluxos de trabalho pós-transação.

transaction.status_changed

Enviado quando o status de uma transação muda (por exemplo após atualização manual em Monitoramento de transações ou pela API). O payload é compacto: status novo e anterior mais identificadores em transaction. Após a mudança o motor de regras pode ser reexecutado; quando aplicável, rulesExecutionSummary segue o mesmo tipo de resumo da API de transações para essa avaliação.
string
Novo status após a mudança (ex.: SUCCESSFUL, DECLINED, REFUNDED).
string
Status antes da mudança.
object
Identificadores: id (UUID no Gu1), externalId, type e status atual.
object
Opcional. Presente quando há metadados da avaliação de regras nesta transição (mesma forma conceitual das respostas da API).
Caso de uso: Fluxos que dependem só da transição de status, auditoria ou integrações que precisam de webhook leve. Prefira transaction.updated se precisar de valores, origem/destino e demais campos na mesma notificação.

Exemplos de Código

Node.js - Lidando com Eventos de Transações

Python - Lidando com Eventos de Transações

Melhores Práticas

O webhook inclui externalId que é o ID que você forneceu ao criar a transação. Use-o para buscar a transação no seu banco de dados.
Salve o transactionId do Gu1 no seu banco de dados. Isso permite que você consulte detalhes da transação mais tarde se necessário.
Você pode receber o mesmo webhook múltiplas vezes. Use o transactionId e o event para garantir que você processe cada evento apenas uma vez.
Sempre retorne um código de status 200 o mais rápido possível para confirmar o recebimento. Processe o webhook assincronamente se necessário.
Sempre verifique o header X-Webhook-Signature para garantir que o webhook seja autêntico. Veja o guia de segurança para detalhes.

Solução de Problemas

Verificar estes itens:
  • URL do webhook é publicamente acessível via HTTPS
  • Webhook está configurado e habilitado no dashboard
  • Inscrito nos tipos de eventos corretos
  • Endpoint retorna código de status 200 dentro de 30 segundos
  • Verificar logs do servidor para solicitações recebidas
  • Os eventos de transações estão atualmente em desenvolvimento - confirme que estão ativados para sua organização
Causas comuns:
  • Usar secret errado (verificar dashboard para secret atual)
  • Verificar assinatura em JSON analisado em vez de corpo raw
  • Secret não salvo corretamente após criação do webhook
  • Problemas de codificação (garantir UTF-8)
Veja o guia de segurança para implementação adequada.
Este é um comportamento normal. Webhooks podem ser enviados múltiplas vezes devido a problemas de rede, timeouts ou tentativas.Sempre implemente idempotência usando o transactionId e tipo de event do webhook.

Próximos Passos

Eventos de Entidades

Lidar com eventos de ciclo de vida de entidades

Eventos KYC

Processar atualizações de verificação KYC

Segurança de Webhooks

Proteger seus endpoints de webhook

Configuração

Configurar ajustes de webhook