Pular para o conteúdo principal

Cotação para Carteira Externa

Este endpoint permite calcular antecipadamente quanto o cliente receberá em Crypto ao criar uma solitação de saque para uma carteira externa, já descontando as taxas de gás da rede blockchain vigente.


Endpoint​

  • Método: POST
URL do Endpoint
https://api.xgateglobal.com/withdraw/transaction/crypto/amount

Testar Integração​

Utilize o formulário abaixo para simular um saque para carteira externa. O sistema irá buscar automaticamente os dados necessários e calcular quanto receberia em Crypto.

📉

Testar: Cotação Crypto (Carteira Externa)

1. Suas Credenciais

Requisição​

É necessário enviar o Header de autenticação e o corpo JSON com o valor e o objeto da moeda.

Headers Obrigatórios​

HeaderValorDescrição
AuthorizationBearer <seu_token>O token JWT obtido no login.

Body (Corpo da Requisição)​

CampoTipoObrigatórioDescrição
amountnumberSimValor em Crypto que se deseja calcular o saque.
cryptocurrencyobjectSimO objeto da criptomoeda, obtido na rota de listagem de criptomoedas para saques.
blockchainNetworkobjectSimO objeto da rede blockchain, obtido na listagem de redes blockchain.

Respostas (Responses)​

Sucesso (200 OK)​

Retorna o valor que aproximadamente será recebido na carteira externa.

{
"amount": 99.521567,
"cryptocurrency": "USDC"
}

Erros Comuns​

StatusMensagemMotivo Provável
401Unauthorized• Token inválido ou expirado.
• Header inválido ou não informado.
• IP não permitido.
500Internal Server ErrorErro interno de servidor. Entrar em contato com suporte.

Como usar​

Apenas Consulta

Esta rota não gera um pedido de saque ou movimenta fundos. Ela serve estritamente para consulta de cotação e previsão de taxas da rede.

O Fluxo Recomendado (UX)​

Para oferecer a melhor experiência aos seus clientes, recomendamos o seguinte fluxo de integração:

  1. Input do Usuário: O cliente digita o valor que deseja sacar (ex: 10) em seu aplicativo ou site.
  2. Consulta de Cotação: Em background, seu sistema chama o endpoint POST /withdraw/transaction/crypto/amount enviando o valor de 10, junto com os objetos da rede e da criptomoeda selecionadas.
  3. Exibição do Valor Líquido: A API calcula os custos da blockchain e retorna o valor exato que chegará na carteira de destino (ex: 9.369984879637112 USDT). Você exibe na tela algo como: "Você receberá aproximadamente 9.36 USDT".
  4. Ação / Confirmação: Se o usuário concordar com as taxas e o valor líquido, seu sistema então chama a rota definitiva de Criar Pedido de Saque (POST /withdraw) para efetivar a transação.

Exemplo Prático​

Siga os passos abaixo para realizar a cotação para carteira externa.

1. Passo: Insira o valor em Crypto para a cotação:

{
"amount": 100,
"blockchainNetwork": {
"_id": "69ea849098**************",
"chain": "Solana",
"name": "Solana",
},
"cryptocurrency": {
"_id": "6733a2a9007**************",
"name": "USDT",
"symbol": "USDT",
"coinGecko": "tether"
}
}

2. Passo: Você deve buscar e injetar o objeto da rede blockchain dentro de blockchainNetwork:

{
"amount": 100,
"blockchainNetwork": {
"_id": "69ea849098**************",
"chain": "Solana",
"name": "Solana",
},
"cryptocurrency": {
"_id": "6733a2a9007**************",
"name": "USDT",
"symbol": "USDT",
"coinGecko": "tether"
}
}

Você pode obter a lista de redes blockchain clicando aqui.

3. Passo: Você deve buscar e injetar o objeto da criptomoeda dentro de cryptocurrency:

{
"amount": 100,
"blockchainNetwork": {
"_id": "69ea849098**************",
"chain": "Solana",
"name": "Solana",
},
"cryptocurrency": {
"_id": "6733a2a9007**************",
"name": "USDT",
"symbol": "USDT",
"coinGecko": "tether"
}
}

Você pode obter a lista de criptomoedas clicando aqui.


Integração​

O exemplo de integração utiliza a biblioteca Axios em Node.js.

Instalando Axios:

npm install axios

Exemplo Javascript:

const axios = require("axios");

(async () => {
const email = "email@domain.com";
const password = "••••••";
const amount = 10;

try {
const url_api = "https://api.xgateglobal.com"

// 1. Login
const login = await axios.post(`${url_api}/auth/token`, { email, password });
const config = {
headers: { "Authorization": `Bearer ${login.data.token}` }
};

// 2. Buscar Redes e Criptomoedas
const blockchains = await axios.get(`${url_api}/withdraw/company/blockchain-networks`, config);

// Seleciona a primeira rede disponível
const selectedNetwork = blockchains.data[0];

// Busca especificamente pelo objeto do USDT dentro da lista de criptos da rede
const usdtObject = selectedNetwork.cryptocurrencies.find(
item => item.cryptocurrency.symbol === 'USDT'
);

if (!usdtObject) {
throw new Error(`USDT não encontrado na rede ${selectedNetwork.name}`);
}

// 3. Calcular Cotação
const { data } = await axios.post(`${url_api}/withdraw/transaction/crypto/amount`, {
amount,
cryptocurrency: usdtObject.cryptocurrency,
blockchainNetwork: selectedNetwork
}, config);

console.log("Cotação Recebida:", data);
} catch (error) {
console.log(error.response ? error.response.data : error.message);
}
})()