Skip to main content

Documentação do Webhook de Cash-in

Visão Geral

Nosso sistema de webhook envia notificações em tempo real sobre transações de cash-in. Quando o status de uma transação é alterado, uma requisição POST é enviada para a URL configurada com informações detalhadas da transação.

Payload do Webhook

O webhook envia um payload JSON contendo os detalhes e status da transação.

Exemplo de Payload

{
  "transactionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "transactionStatus": "PAID", 
  "transactionType": "CASH_IN",
  "value": "100.00",
  "externalId": "pedido_123456",
  "e2e_id": "Exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "debtorAccount": {
    "name": "João da Silva",
    "document": "123.***.***-00",
    "accountType": "TRAN"
  }
}

Descrição dos Campos

Informações da Transação

  • transactionId (string): Identificador único da transação no formato UUID
  • transactionStatus (string): Status atual da transação. Valores possíveis:
    • PAID: Transação concluída com sucesso
  • transactionType (string): Tipo da transação, neste caso “CASH_IN”
  • value (string): Valor da transação
  • externalId (string): ID de referência externa fornecido pelo cliente
  • e2e_id (string): Identificador fim-a-fim da transação

Informações da Conta do Pagador

  • debtorAccount (objeto): Informações sobre a conta que está enviando o dinheiro
    • name (string): Nome completo do titular da conta
    • document (string): Número do documento (CPF) parcialmente mascarado
    • accountType (string): Tipo de conta, ex: “TRAN” para conta transacional

Segurança: Verificação de Assinatura

Toda requisição deste webhook é assinada com HMAC-SHA256 (header X-Webhook-Signature), usando o seu api_secret como chave. Valide a assinatura antes de processar o payload para garantir que a notificação veio realmente da 3X Pay e não foi adulterada no caminho.

Guia completo: Segurança dos Webhooks

Headers de segurança, fórmula da assinatura e exemplos de validação (Node.js, Python, PHP).

Boas Práticas

1
Valide a assinatura HMAC (X-Webhook-Signature) antes de processar — veja Segurança dos Webhooks
2
Confirme o recebimento do webhook com uma resposta 200 OK
3
Implemente verificações de idempotência usando o transactionId e externalId
4
Processe webhooks de forma assíncrona
5
Mantenha logs dos webhooks recebidos para resolução de problemas
6
Implemente lógica de retry para entregas de webhook falhas

O Webhook deve retornar Status Code 200

Para que a transação tenha seu fluxo finalizado com sucesso é de extrema importância que seja retornado 200 na resposta!