Envio de um ativo para uma carteira especifica

Este endpoint permite realizar o envio (transferência) de um ativo digital para um endereço de carteira externo. A transação é enviada para processamento assíncrono e o status será notificado via Webhook.

O saldo necessário será bloqueado até que o processamento seja concluído. A transação é irreversível após a confirmação na blockchain.

📍 Endpoint

POST https://api.etherglobalassets.com.br/exchange/send

🧾 Cabeçalhos obrigatórios (Headers)

Cabeçalho

Valor

Descrição

Authorization

Bearer <token>

Token JWT de autenticação.

Content-Type

application/json

Define que o corpo está em JSON.

🧰 Corpo da Requisição (JSON)

{
  "amount": "100000000",
  "currency": "USDT",
  "network": "Polygon",
  "destinationAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcdef",
  "isSimulation": false
}

🧮 Campos Obrigatórios:

Campo

Tipo

Enum/Valores

Descrição

amount

string

"100000000", "5000", "1000000000"

Quantidade do ativo em notação de menor unidade. Veja exemplos por token abaixo.

currency

string

BTC, ETH, USDT, USDC

Símbolo da criptomoeda.

network

string

Bitcoin, Ethereum, ERC20, Tron, Polygon, Base, Optimism, Solana

Rede blockchain para envio da transação.

destinationAddress

string

"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"

Endereço da carteira de destino (deve ser válido para a rede selecionada).

💰 Exemplos de Amount por Token:

Token

Menor Unidade

Exemplo

Corresponde a

USDT

Centavos

"200"

2 USDT

USDC

Centavos

"500"

5 USDC

BTC

Satoshis

"5000"

0.00005 BTC

ETH

Gwei

"1000000000"

1 ETH

📋 Campos Opcionais:

Campo

Tipo

Default

Descrição

isSimulation

boolean

false

Quando true, apenas valida a requisição e calcula taxas sem executar de fato. Quando false, a transação será processada de forma real e irreversível.

📌 Exemplo com curl

curl https://api.etherglobalassets.com.br/exchange/send \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "amount": "100000000",
    "currency": "USDT",
    "network": "Polygon",
    "destinationAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcdef",
    "isSimulation": false
}'

✅ Resposta esperada (HTTP 202 - Accepted)

{
  "id": "tx_1234567890abcdef",
  "walletId": "wallet_abc123",
  "typeAsset": "TOKEN",
  "type": "WITHDRAW",
  "amount": "100000000",
  "senderAddress": "0x1234567890123456789012345678901234567890",
  "recipientAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
  "symbol": "USDT",
  "status": "PENDING",
  "externalRequestId": "req_external_123",
  "externalReferenceId": "ref_external_456",
  "metadata": "",
  "tokenIdentifier": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  "createdAt": "2026-05-20T14:30:00.000Z",
  "updatedAt": "2026-05-20T14:30:00.000Z"
}

[!NOTE] O status 202 indica que a transação foi validada e enfileirada no provedor CryptoBrokers. A confirmação final ocorrerá na blockchain e você receberá uma atualização via Webhook quando o status mudar para COMPLETED ou FAILED.

Campos da Resposta:

Campo

Tipo

Descrição

id

string

ID único da transação no provedor.

walletId

string

ID da carteira blockchain utilizada.

typeAsset

string

Tipo de ativo: TOKEN ou COIN.

type

string

Tipo de operação: WITHDRAW.

amount

string

Quantidade enviada em notação de menor unidade.

senderAddress

string

Endereço da carteira remetente.

recipientAddress

string

Endereço da carteira destinatária.

symbol

string

Símbolo da criptomoeda (USDT, BTC, ETH, USDC).

status

string

Status atual: CREATE, PENDING, COMPLETED, FAILED.

createdAt

string

Data e hora de criação (ISO-8601 UTC).

updatedAt

string

Data e hora da última atualização (ISO-8601 UTC).

⚠️ Possíveis Erros

Código

Erro

Causa comum

400

Bad Request

Dados inválidos: formato de endereço inválido, rede não suportada, ou quantidade inválida.

401

Unauthorized

Token JWT expirado, inválido ou usuário inativo.

403

Forbidden

Usuário não tem permissão para realizar esta operação.

422

Unprocessable Entity

Saldo insuficiente, limite de transação excedido, ou outras violações de regras de negócio.

500

Internal Server Error

Erro na comunicação com o provedor ou falha no processamento.

🛡️ Segurança e Boas Práticas

✅ FAÇA:

  • Verifique duas vezes o destinationAddress. Transações em blockchain são irreversíveis. ⚠️

  • Garanta que a rede selecionada (network) é a mesma utilizada no destino (ex: Enviar USDT para um endereço Ethereum resultará em perda de fundos se enviado para rede diferente).

  • Use isSimulation: true para validar a requisição antes de executar a transação real.

  • Implemente tratamento de webhook para receber atualizações de status da transação.

❌ NÃO FAÇA:

  • Não realize envios sem antes confirmar o saldo total disponível através do endpoint de Saldo da Conta.

  • Não exponha este endpoint em áreas do frontend sem proteção adicional (como MFA/2FA), dado que ele movimenta valores reais.

  • Não asuma que a transação foi concluída apenas porque recebeu HTTP 202. Aguarde a confirmação via Webhook.

📡 Webhook de Notificação

Quando o status da transação muda, você receberá uma notificação no seu webhook com a estrutura atualizada incluindo:

  • Status atual (PENDING, COMPLETED, FAILED)

  • Hash da transação (quando disponível)

  • Erros (caso a transação falhe)

Suporte Técnico

Para rastrear uma operação que não chegou ao destino, utilize o id retornado na resposta 202 ou contate suporte@etherglobalassets.com.br.