Crypto Withdrawal

The crypto withdrawal API debits BRL from your balance, converts it to USDT at the current quote and sends it to the wallet you choose. Live credentials only; sandbox gets HTTP 403.

Create a withdrawal

POST /crypto/withdraw

{
  "token": "YOUR_TOKEN",
  "secret": "YOUR_SECRET",
  "chain": "polygon",
  "address": "0x0000000000000000000000000000000000000001",
  "amount": 50.00
}
FieldRequiredDescription
chainYespolygon, tron or solana.
addressYesDestination wallet. Validated per network (table below).
amountYesBRL to debit. Minimum 10.00, or 30.00 on Solana.
NetworkAddress format
Polygon0x followed by 40 hex characters
TronT followed by 33 base58 characters
Solana32 to 44 base58 characters

Double check the address. On chain transfers cannot be reversed.

Response (201)

{
  "status": "ok",
  "message": "Saque em crypto solicitado com sucesso",
  "data": {
    "order_id": 4821,
    "chain": "polygon",
    "amount_brl": "50.00",
    "usdt_to_receive": "8.456789",
    "usdt_gross": "8.500000",
    "platform_fee_usdt": "0.043211",
    "address": "0x0000000000000000000000000000000000000001",
    "status": "processing",
    "created_at": "2026-10-01T13:30:00+00:00",
    "expires_at": "2026-10-01T14:00:00+00:00"
  }
}
  • order_id is an integer. Store it.
  • Amounts are decimal strings: BRL with 2 places, USDT with 6.
  • usdt_to_receive is the amount after the platform fee. Network fees are paid by the platform.
  • The BRL amount is reserved from your balance as soon as the order is created.

Check a withdrawal

POST /crypto/withdraw/status

{
  "token": "YOUR_TOKEN",
  "secret": "YOUR_SECRET",
  "order_id": "4821"
}

Send order_id as a string. A JSON number fails validation with 422.

{
  "status": "ok",
  "data": {
    "order_id": 4821,
    "status": "completed",
    "status_message": "Transação concluída",
    "chain": "polygon",
    "amount_brl": "50.00",
    "usdt_to_receive": "8.456789",
    "address": "0x0000000000000000000000000000000000000001",
    "payout_tx_hash": "0x00000000000000000000000000000000000000000000000000000000000000aa",
    "created_at": "2026-10-01T13:30:00+00:00",
    "completed_at": "2026-10-01T13:41:00+00:00"
  }
}
data.statusMeaning
processingOrder created, USDT being acquired.
sendingUSDT is being sent to the destination wallet.
completedSent. payout_tx_hash holds the on chain hash.
failedFailed. The reserved BRL is returned.
cancelledCancelled. The reserved BRL is returned.

completed_at is the time of the last update to the order and is present for every status. Decide completion by data.status, not by completed_at.

There is no callback for crypto withdrawals. Poll this endpoint (every 30 to 60 seconds is enough). Typical completion time is 5 to 15 minutes, depending on the network.

Errors

HTTPBodyWhen
400Endereço de carteira inválido para a rede selecionadaAddress does not match the network.
400O valor mínimo para saque na rede Solana é R$ 30,00Solana below 30.00.
400Saldo insuficiente with available_balance and requested_amountBalance below the amount.
401Invalid credentials or blocked account.
403Sandbox credentials, or account limited to refunds.
404Ordem não encontradaStatus: order not found for your account.
422Erro de validação with errorsMissing or invalid fields, unsupported chain, amount below 10.00.
500Não foi possível obter cotação no momentoQuote unavailable. Retry later.

There is no idempotency key. If the create request times out, check your balance before sending it again.


Did this page help you?