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-out. 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": "550e8400-e29b-41d4-a716-446655440000",
  "transactionStatus": "PAID",
  "transactionType": "CASH_OUT",
  "value": 100.00,
  "externalId": "pedido_123456",
  "creditorAccount": {
    "name": "João Silva",
    "document": "123.456.789-00",
    "accountType": "CHECKING"
  },
  "e2e_id": "E12345678202403151234567890"
}

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
    • FAILED: Transação falhou
    • CHARGEBACK: Transação estornada
  • transactionType (string): Tipo da transação, sempre “CASH_OUT”
  • value (number): Valor da transação
  • externalId (string): ID de referência externa fornecido pelo cliente
  • error_message (string, opcional): Mensagem de erro quando a transação falha ou é estornada
  • creditorAccount (objeto, opcional): Informações da conta do beneficiário quando a transação é bem-sucedida
    • name (string): Nome do beneficiário
    • document (string): Documento do beneficiário
    • accountType (string): Tipo da conta
  • e2e_id (string, opcional): Identificador único da transação PIX

Exemplos por Status

Transação Bem-sucedida

{
  "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  "transactionStatus": "PAID",
  "transactionType": "CASH_OUT",
  "value": 10,
  "externalId": "pedido_123456",
  "creditorAccount": {
    "name": "João Silva",
    "document": "123.456.789-00",
    "accountType": "CHECKING"
  },
  "e2e_id": "E12345678202403151234567890"
}

Transação Falha

{
  "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  "transactionStatus": "FAILED",
  "transactionType": "CASH_OUT",
  "value": 10,
  "externalId": "pedido_123456",
  "error_message": "Saldo insuficiente"
}

Transação Estornada

{
  "transactionId": "550e8400-e29b-41d4-a716-446655440000",
  "transactionStatus": "CHARGEBACK",
  "transactionType": "CASH_OUT",
  "value": 10,
  "externalId": "pedido_123456",
  "error_message": "REFUNDED"
}

Boas Práticas

1

Confirme o recebimento do webhook com uma resposta 200 OK
2

Implemente verificações de idempotência usando o transactionId e externalId
3

Processe webhooks de forma assíncrona
4

Mantenha logs dos webhooks recebidos para resolução de problemas
5

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 importancia que seja retornado 200 na resposta!