Saltar al contenido principal

Cotización para billetera externa

Este endpoint le permite calcular con anticipación cuánto recibirá el cliente en criptomonedas al crear una solicitud de retiro a una billetera externa, descontando ya las comisiones de gas de la red blockchain.


Endpoint​

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

Prueba de integración​

Utilice el formulario a continuación para simular un retiro a una billetera externa. El sistema obtendrá automáticamente los datos necesarios y calculará cuánto recibiría en criptomonedas.

📉

Probar: Cotización Crypto (Billetera Externa)

1. Sus Credenciales

Solicitud​

Debe enviar el encabezado de autenticación y el cuerpo JSON con el valor y el objeto de moneda.

Encabezados obligatorios​

EncabezadoValorDescripción
AuthorizationBearer <tu_token>El token JWT obtenido al iniciar sesión.

Cuerpo (Request Body)​

CampoTipoRequeridoDescripción
amountnumberSíMonto en criptomonedas para el que desea calcular el retiro.
cryptocurrencyobjectSíEl objeto de la criptomoneda, obtenido desde la ruta de listado de criptomonedas.
blockchainNetworkobjectSíEl objeto de la red blockchain, obtenido desde la ruta de listado de redes blockchain.

Respuestas​

Éxito (200 OK)​

Devuelve el valor que aproximadamente se recibirá en la billetera externa.

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

Errores comunes​

EstadoMensajePosible causa
401Unauthorized• Token inválido o vencido.
• Encabezado inválido o faltante.
• IP no permitida.
500Internal Server ErrorError interno del servidor. Contacte con soporte.

Cómo usar​

Solo Consulta

Esta ruta no genera un pedido de retiro ni mueve fondos. Sirve estrictamente para consulta de cotizaciones y estimación de tarifas de la red.

El Flujo Recomendado (UX)​

Para ofrecer la mejor experiencia a tus clientes, recomendamos el siguiente flujo de integración:

  1. Entrada del Usuario: El cliente ingresa el monto que desea retirar (ej.: 10) en tu aplicación o sitio web.
  2. Consulta de Cotización: En segundo plano, tu sistema llama al endpoint POST /withdraw/transaction/crypto/amount enviando el valor de 10, junto con los objetos de la red y de la criptomoneda seleccionadas.
  3. Visualización del Monto Neto: La API calcula los costos de la blockchain y devuelve el monto exacto que llegará a la billetera de destino (ej.: 9.369984879637112 USDT). Muestras en la pantalla algo como: "Recibirás aproximadamente 9.36 USDT".
  4. Acción / Confirmación: Si el usuario está de acuerdo con las tarifas y el monto neto, tu sistema entonces llama a la ruta definitiva de Crear Pedido de Retiro (POST /withdraw) para efectuar la transacción.

Ejemplo práctico​

Siga los pasos a continuación para realizar una cotización para billetera externa.

Paso 1: Ingrese la cantidad en USDT para la cotización:

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

Paso 2: Debe obtener e inyectar el objeto de la red blockchain dentro de blockchainNetwork:

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

Puede obtener la lista de redes blockchain haciendo clic aquí.

Paso 3: Debe obtener e inyectar el objeto de la criptomoneda dentro de cryptocurrency:

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

Puede obtener la lista de criptomonedas haciendo clic aquí.


Integración​

Este ejemplo de integración utiliza la librería Axios en Node.js.

Instalando Axios:

npm install axios

Ejemplo en 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. Fetch Networks and Cryptocurrencies
const blockchains = await axios.get(`${url_api}/withdraw/company/blockchain-networks`, config);

// Selects the first available network
const selectedNetwork = blockchains.data[0];

// Searches specifically for the USDT object within the network's crypto list
const usdtObject = selectedNetwork.cryptocurrencies.find(
item => item.cryptocurrency.symbol === 'USDT'
);

if (!usdtObject) {
throw new Error(`USDT not found in ${selectedNetwork.name} network`);
}

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

console.log("Quote Received:", data);
} catch (error) {
console.log(error.response ? error.response.data : error.message);
}
})()