Pular para o conteúdo principal

Comprar e vender cripto

Duas chamadas: você cota, e depois executa aquela cotação.

Cotar​

POST /integration/v1/quotes
{ "side": "buy", "baseAsset": "USDT", "quoteAsset": "BRL", "quoteAmount": "500.00" }

Resposta:

{
"id": "9b1d4e7a-2c3f-4a85-b6d0-7e8f9a0b1c2d",
"side": "buy",
"baseAsset": "USDT",
"quoteAsset": "BRL",
"baseAmount": "99.00",
"quoteAmount": "500.00",
"expiresAt": "2026-08-20T14:03:41Z",
"expiresInSeconds": 30
}

O preço é final: já embute tudo, e não há taxa somada depois. baseAmount é exatamente o que a conta recebe.

Executar​

POST /integration/v1/orders
{ "quoteId": 4471 }

A cotação é de uso único e vale até expiresAt. Depois disso a execução é recusada, e o caminho é cotar de novo.

Isso protege os dois lados: sem prazo, quem cota poderia esperar o mercado se mover e executar só quando lhe conviesse.

Os estados da ordem​

statusSignifica
executingem execução
settledconcluída — os saldos já refletem
failednão executou; nada foi movido
GET /integration/v1/orders/{id}

O que fazer com o prazo de 30 segundos​

Cote no momento em que o cliente vai confirmar, não quando ele abre a tela. Uma cotação exibida por dois minutos vence antes do clique, e o erro chega depois da decisão dele.

Se você precisa mostrar um preço indicativo antes disso, deixe claro que ele é indicativo e cote de novo na confirmação.

Indisponibilidade​

Se o par estiver indisponível, a cotação responde 503 com service_temporarily_unavailable. Nada foi movido; recuo exponencial e tente de novo.