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
status | Significa |
|---|---|
executing | em execução |
settled | concluída — os saldos já refletem |
failed | nã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.