Pular para o conteúdo principal

Receber Webhooks de Venda

A XGate envia um evento para a sua URL a cada mudança de status de uma venda de cripto.


Configuração​

A configuração é igual à dos demais webhooks (veja Receber Webhooks): no painel da XGate, menu Webhooks, selecione o tipo de evento Vendas de Cripto (CRYPTO_SALE) e os status que deseja receber.

O tipo CRYPTO_SALE só aparece para empresas com venda liberada.


Formato do evento​

Envelope diferente dos webhooks de depósito e saque

Os eventos de cripto não usam o formato plano dos webhooks de depósito e saque (id, status, amount, operation...). Eles vêm em um envelope com id, type, createdAt e data, o mesmo dos webhooks de compra.

  • Método: POST
{
"id": "evt_6ad6d669b2be17e22bbec226_SETTLED",
"type": "sale.settled",
"createdAt": "2026-10-16T14:03:24.902Z",
"data": {
"id": "6711c0e5a1b2c3d4e5f60718",
"status": "SETTLED",
"asset": "USDT",
"network": "TRON",
"txHash": "9f2c1e0b7a6d5c4b3a291807f6e5d4c3b2a1908f7e6d5c4b3a2918070f6e5d4c",
"cryptoAmount": "1000.000000",
"netAmount": "5355.90",
"settlement": { "type": "BALANCE" },
"updatedAt": "2026-10-16T14:03:24.870Z"
}
}

Envelope do evento​

CampoTipoDescrição
idstringID único do evento. Use para descartar entregas repetidas.
typestringTipo do evento (tabela abaixo).
createdAtstringData de criação do evento (ISO 8601, UTC).
dataobjectResumo da venda (tabela abaixo). O objeto completo está em Consultar Venda.

Campos de data (resumo da venda)​

CampoTipoDescrição
idstringId da venda na XGate. Use em GET /crypto/sales/{id}.
statusstringRECEIVED · SETTLING · SETTLED · SETTLED_TO_BALANCE.
assetstringAtivo recebido.
networkstringRede em que foi recebido.
txHashstringHash do envio do integrador. A venda não tem externalId; a conciliação é por este campo.
cryptoAmountstringQuantidade recebida.
netAmountstring | nullBRL creditado. null até a liquidação.
settlementobject{ type }: BALANCE ou PIX_KEY.
updatedAtstring (ISO)Última alteração; use com status para ordenar eventos fora de ordem.

Eventos​

Evento (type)Status no painelQuando
sale.receivedRECEIVEDCripto recebida e confirmada no endereço fixo.
sale.settledSETTLED ou SETTLED_TO_BALANCEBRL creditado. data.status diz qual dos dois e data.settlement mostra como. Final.

Regras para o integrador​

  • Um evento por mudança de status, enviado uma vez.
  • Entrega pelo menos uma vez: o mesmo evento pode chegar mais de uma vez. Trate a idempotência pelo id do evento.
  • Ordem: eventos podem chegar fora de ordem. Ordene por data.updatedAt e data.status.
  • Responda 200 rapidamente, como nos demais webhooks.
  • Concilie cada venda pelo data.txHash do seu envio.