Pular para o conteúdo principal

Consultar Opções

Retorna o que a sua empresa pode fazer agora: ativos e redes liberados, limites de compra, endereços salvos e validade da cotação. Use esta rota antes de cotar ou comprar.


Endpoint​

  • Método: GET
URL do Endpoint
https://api.xgateglobal.com/crypto/options

Requisição​

Headers Obrigatórios​

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

Esta rota não recebe parâmetros.


Respostas (Responses)​

Sucesso (200 OK)​

{
"assets": [
{
"asset": "USDT",
"networks": [
{ "network": "TRON", "networkFee": "0.012000", "networkFeeAsset": "USDT" },
{ "network": "POLYGON", "networkFee": "0.003000", "networkFeeAsset": "USDT" }
]
},
{
"asset": "USDC",
"networks": [
{ "network": "SOLANA", "networkFee": "0.002000", "networkFeeAsset": "USDC" }
]
}
],
"buy": {
"enabled": true,
"minAmount": "50.00",
"maxAmountPerTx": "100000.00",
"dailyCap": "500000.00",
"dailyRemaining": "498500.00",
"totpThreshold": null,
"autoApproval": false,
"addresses": [
{
"addressId": "66f1a2b3c4d5e6f708192a3b",
"alias": "Carteira tesouraria",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"network": "TRON",
"source": "MANUAL",
"addedAt": "2026-10-01T12:00:00.000Z",
"activeAt": "2026-10-01T12:00:00.000Z"
}
]
},
"savedAddressesOnly": {
"enabled": false,
"newAddressHoldHours": 24
},
"quoteTtlSeconds": 30,
"sale": {
"enabled": false,
"status": "DISABLED",
"minAmount": { "USDT": null, "USDC": null },
"depositAddresses": []
}
}

Descrição dos Campos​

CampoTipoDescrição
assets[].assetUSDT | USDCAtivo.
assets[].networks[].networkstringRede disponível para o ativo (POLYGON, ETHEREUM, TRON, SOLANA).
assets[].networks[].networkFeestring | nullGás estimado da rede, no próprio ativo (6 casas), descontado da entrega. null quando indisponível ou quando a regra da empresa é percentual.
assets[].networks[].networkFeeAssetUSDT | USDCAtivo em que o gás é cobrado.
buy.enabledbooleanCompra liberada para a empresa.
buy.minAmountstringCompra mínima, em BRL.
buy.maxAmountPerTxstring | nullMáximo por compra, em BRL.
buy.dailyCapstring | nullTeto diário de compra, em BRL.
buy.dailyRemainingstring | nullQuanto ainda resta do teto diário, em BRL.
buy.totpThresholdstring | nullUsado só no painel. Não se aplica à API.
buy.autoApprovalbooleantrue = a compra não passa pela fila de aprovação da XGate.
buy.addresses[]arrayEndereços salvos da empresa: addressId, alias, address, network, source (MANUAL | CARD), addedAt, activeAt. O addressId pode ser usado como destino na compra.
savedAddressesOnly.enabledbooleanTrava "só endereços salvos", ligada pela empresa no painel.
savedAddressesOnly.newAddressHoldHoursintegerCarência, em horas, de um endereço novo quando a trava está ligada (24).
quoteTtlSecondsintegerValidade da cotação, em segundos (30).
sale.enabledbooleanVenda liberada para a empresa pela XGate.
sale.statusstringDISABLED · PROVISIONING · READY. A primeira consulta de uma empresa com venda liberada cria os endereços: fica PROVISIONING por alguns minutos e passa a READY.
sale.minAmountobjectVenda mínima por ativo (USDT, USDC), na quantidade do ativo.
sale.depositAddresses[]arrayEndereço fixo da empresa para cada par asset × network (asset, network, address). Vazio enquanto sale.enabled for false. Veja Vender Cripto.
Trava de endereços salvos

Com savedAddressesOnly.enabled = true, a compra só aceita endereços de buy.addresses[], e um endereço recém-cadastrado só pode ser usado depois de activeAt (carência de newAddressHoldHours).

Erros Comuns​

StatusReason
400VALIDATION_FAILED
401UNAUTHORIZED
403PERMISSION_DENIED, COMPANY_MISMATCH, COMPANY_BLOCKED, ALLOWED_IPS_REQUIRED, CLIENT_IP_NOT_ALLOWED, CRYPTO_DISABLED, CRYPTO_API_DISABLED
503CONFIGURATION_UNAVAILABLE, SERVICE_OVERLOADED

Veja o significado de cada código em Códigos de Erro.


Integração​

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

npm install axios
const axios = require("axios");

(async () => {
const email = "your_email@domain.com";
const password = "**********";

try {
const url_api = "https://api.xgateglobal.com";
const login = await axios.post(`${url_api}/auth/token`, { email, password });
const { data } = await axios.get(`${url_api}/crypto/options`, {
headers: { "Authorization": `Bearer ${login.data.token}` }
});
console.log(data.assets, data.buy); // Response
} catch (error) {
console.log(error.response.data.reason, error.response.data.message); // Error
}
})()