Pular para o conteúdo principal

Códigos de Erro

Todo erro da API de cripto vem no envelope { "reason", "message", "traceId" } (veja Convenções). Use sempre o reason na sua lógica; a message é apenas informativa.


Mapa de reasons por status HTTP​

HTTPReasons
400VALIDATION_FAILED, AMOUNT_MUST_BE_STRING, CONFLICTING_FIELDS
401UNAUTHORIZED
403PERMISSION_DENIED, COMPANY_MISMATCH, COMPANY_BLOCKED, ALLOWED_IPS_REQUIRED, CLIENT_IP_NOT_ALLOWED, CRYPTO_DISABLED, CRYPTO_API_DISABLED, BUY_DISABLED
404PURCHASE_NOT_FOUND, SALE_NOT_FOUND, QUOTE_NOT_FOUND, SAVED_ADDRESS_NOT_FOUND, ROUTE_NOT_FOUND
409EXTERNAL_ID_CONFLICT, QUOTE_EXPIRED, QUOTE_ALREADY_USED
410FEATURE_DISCONTINUED (saque cripto, cotações de saque cripto e carteira do customer, a partir de 30/10/2026)
413PAYLOAD_TOO_LARGE
422AMOUNT_BELOW_MIN, AMOUNT_ABOVE_MAX, AMOUNT_TOO_LOW_FOR_NETWORK_FEE, ASSET_NOT_SUPPORTED, NETWORK_NOT_SUPPORTED, ADDRESS_INVALID_FOR_NETWORK, ADDRESS_NOT_SAVED, ADDRESS_ON_HOLD, ADDRESS_NOT_ALLOWED, SAVED_ADDRESS_NETWORK_MISMATCH, INSUFFICIENT_BALANCE, PRICE_UNSTABLE
429RATE_LIMITED, DAILY_CAP_EXCEEDED, OUTFLOW_HOURLY_CAP_EXCEEDED
500INTERNAL_SERVER_ERROR
503PRICE_STALE, NETWORK_FEE_UNAVAILABLE, CRYPTO_TEMPORARILY_UNAVAILABLE, CONFIGURATION_UNAVAILABLE, PURCHASE_UNAVAILABLE, SERVICE_OVERLOADED, FEATURE_STATUS_UNAVAILABLE

Significado dos principais reasons​

ReasonSignificadoO que fazer
VALIDATION_FAILEDCampo ausente ou fora do formato.Corrigir o corpo ou a query.
AMOUNT_MUST_BE_STRINGValor monetário enviado como número.Enviar como string ("1500.00").
CONFLICTING_FIELDSCampos de formas diferentes misturados (ex: quoteId com amount).Usar só uma das formas.
PERMISSION_DENIEDO usuário da API não tem acesso a esta operação.Falar com a XGate.
COMPANY_BLOCKEDEmpresa bloqueada.Contatar o suporte.
ALLOWED_IPS_REQUIREDA empresa não tem lista de IPs permitidos.Cadastrar IPs no painel.
CLIENT_IP_NOT_ALLOWEDRequisição feita de um IP fora da lista.Liberar o IP no painel.
CRYPTO_DISABLEDCripto não está liberada para a empresa.Contatar a XGate.
CRYPTO_API_DISABLEDCripto pela API não está liberada para a empresa.Contatar a XGate.
BUY_DISABLEDCompra não está liberada para a empresa.Contatar a XGate.
PURCHASE_NOT_FOUNDID de compra inexistente, fora do formato ou de outra empresa.Conferir o id retornado na criação.
SALE_NOT_FOUNDID de venda inexistente, fora do formato ou de outra empresa.Conferir o id recebido no webhook.
QUOTE_NOT_FOUNDquoteId inexistente.Gerar nova cotação.
QUOTE_EXPIREDA cotação passou de expiresAt.Gerar nova cotação.
QUOTE_ALREADY_USEDA cotação já foi usada em outra compra.Gerar nova cotação.
EXTERNAL_ID_CONFLICTexternalId já usado com outro corpo.Usar outro externalId.
SAVED_ADDRESS_NOT_FOUNDaddressId inexistente.Conferir buy.addresses[].
SAVED_ADDRESS_NETWORK_MISMATCHO endereço salvo é de outra rede.Usar endereço da rede da compra.
ADDRESS_INVALID_FOR_NETWORKEndereço inválido para a rede.Conferir o endereço.
ADDRESS_NOT_SAVEDTrava "só endereços salvos" ligada e o endereço não está salvo.Salvar o endereço no painel ou usar addressId.
ADDRESS_ON_HOLDEndereço salvo ainda em carência.Aguardar até activeAt.
ASSET_NOT_SUPPORTEDAtivo não suportado ou não liberado.Conferir GET /crypto/options.
NETWORK_NOT_SUPPORTEDRede não suportada para o ativo.Conferir GET /crypto/options.
AMOUNT_BELOW_MINValor abaixo de buy.minAmount.Aumentar o valor.
AMOUNT_ABOVE_MAXValor acima de buy.maxAmountPerTx.Dividir em compras menores.
AMOUNT_TOO_LOW_FOR_NETWORK_FEEO valor não cobre a taxa e o gás da rede.Aumentar o valor ou escolher outra rede.
INSUFFICIENT_BALANCESaldo BRL insuficiente.Depositar BRL antes de comprar.
PRICE_UNSTABLEPreço instável no momento. Nada foi debitado.Tentar novamente em instantes.
PRICE_STALEPreço de referência indisponível.Tentar novamente em instantes.
NETWORK_FEE_UNAVAILABLENão foi possível estimar o gás da rede.Tentar novamente ou usar outra rede.
RATE_LIMITEDMuitas chamadas por minuto.Aguardar o Retry-After.
DAILY_CAP_EXCEEDEDTeto diário de compra atingido.Aguardar o próximo dia ou ver buy.dailyRemaining.
OUTFLOW_HOURLY_CAP_EXCEEDEDTeto horário de saída da tesouraria atingido.Tentar novamente mais tarde.
CRYPTO_TEMPORARILY_UNAVAILABLECripto temporariamente indisponível.Tentar novamente mais tarde.
FEATURE_DISCONTINUEDRota antiga de cripto, desligada em 30/10/2026.Use a Compra e Venda de Cripto.
FEATURE_STATUS_UNAVAILABLENão foi possível verificar o estado da descontinuação.Tentar novamente.

Motivos de recusa da compra​

Quando uma compra termina em REJECTED, o campo rejection.reason traz um dos motivos abaixo. Em todos eles, rejection.refunded = true significa que o BRL voltou integralmente ao saldo, taxa incluída.

rejection.reasonSignificado
INSUFFICIENT_BALANCESaldo BRL insuficiente.
QUOTE_NOT_FOUNDCotação inexistente.
QUOTE_EXPIREDCotação vencida.
QUOTE_ALREADY_USEDCotação já usada.
PRICE_STALEPreço de referência indisponível.
PRICE_UNSTABLEPreço instável; nada foi debitado.
NETWORK_FEE_UNAVAILABLEGás da rede indisponível.
AMOUNT_TOO_LOW_FOR_NETWORK_FEEValor não cobre a taxa e o gás.
DAILY_CAP_EXCEEDEDTeto diário atingido.
OUTFLOW_HOURLY_CAP_EXCEEDEDTeto horário de saída da tesouraria atingido.
LIQUIDITY_UNAVAILABLELiquidez indisponível.
CRYPTO_TEMPORARILY_UNAVAILABLECripto temporariamente indisponível.
APPROVAL_REJECTEDRecusada na fila de aprovação da XGate.
PROVIDER_REJECTEDRecusada pela custódia.
SEND_FAILEDErro no envio; nada saiu.