Documentação XFlow API

POST

Webhook CashOut (Saques)

Receba notificações automáticas sobre o status das solicitações de saque.

🔗 Endpoint & Autenticação

Método
POST
URL

Definida pelo cliente na rota /api/SendWebhook

Exemplo: https://meusite.com.br/api/webhook/xflow

Headers Obrigatórios

Content-Type: application/json
X-Idempotency-Key: <uuid>

⚙️ Estrutura do Evento

🟣 Exemplo real de Webhook Cashout

{
  "object": "withdraw",
  "type": "cashout",
  "status": "successful",
  "companyId": 1,
  "withdrawId": 7184,
  "value": 10,
  "valueInCents": 1000,
  "currency": "BRL",
  "provider": "A55",
  "providerStatus": 1,
  "providerTid": "wld-00007184",
  "providerPaymentId": "uuid-provider",
  "endToEndId": "Exxxxxxxx",
  "providerAmount": 10,
  "providerConfirmedAt": "2025-11-27T10:12:33Z",
  "providerDebitedAt": null,
  "pixKey": "chave",
  "pixKeyType": "CPF",
  "creditorDocument": "xxx",
  "payer": {
    "name": "NOME DO BANCO/A55",
    "document": "xxx",
    "ispb": "xxxxx",
    "agency": "xxxx",
    "account": "xxxx"
  },
  "receiver": {
    "name": "NOME DO CLIENTE",
    "document": "xxx",
    "ispb": "xxxx",
    "agency": "xxxx",
    "account": "xxxx"
  },
  "createdAt": "2025-11-27T00:00:00Z",
  "updatedAt": "2025-11-27T00:00:00Z",
  "processedAt": "2025-11-27T00:00:00Z",
  "metadata": null
}

🔍 Descrição dos Campos

object

Sempre 'withdraw'

type

Tipo do evento — sempre 'cashout'

status

Status final: successful, failure, refunded

withdrawId

ID interno do saque na XFlow Payments

value

Valor sacado em reais

valueInCents

Valor sacado em centavos

endToEndId

Código PIX único do saque (E2E). Pode ser usado para consultas Pix Out

providerAmount

Valor confirmado pelo provedor

providerConfirmedAt

Data/hora de confirmação pelo provedor

pixKey

Chave PIX de destino

pixKeyType

Tipo da chave (CPF, CNPJ, EMAIL, PHONE, EVP)

payer

Dados do pagador (banco/provedor)

receiver

Dados do recebedor (cliente)

metadata

Metadados customizados enviados na solicitação

🧠 Notas importantes

O campo endToEndId já é salvo automaticamente no banco (Campo: ProviderEndToEndId, Tabela: Withdraws)

Utilize o endToEndId para consultar status do PIX-out no provedor, rastrear auditoria bancária e exibir detalhes no painel administrativo

📬 Quando o webhook é enviado?

• O saque é confirmado (successful)

• O saque é estornado (refunded)

• O saque é recusado / failure

🧩 Status possíveis

pending

Solicitado, aguardando

successful

Pago

failure

Falhou / rejeitado

🔁 Reenvio automático

3 tentativas automáticas (1 min / 5 min / 15 min)

Idempotência garantida pelo header X-Idempotency-Key

✅ Exemplo de resposta

{ "received": true, "idempotent": false }