email do usuário (query string no GET/DELETE,
corpo JSON nos demais). Uma operação de outro email responde 404.
from/to (RFC3339) filtram por closedAt quando status é closed ou
cancelled, e por openedAt nos demais casos. source filtra pela origem.
Origem e idempotência
source indica de onde a operação veio: manual, calculator ou desktop.
Sem valor, vira calculator quando há calculatorId e manual nos demais
casos. O resumo agrupa o resultado por origem em bySource.
externalId (até 128 caracteres) é o id da operação no cliente, como o id da
execução no app desktop. Com ele a criação é idempotente por usuário: repetir
o POST com o mesmo externalId devolve a operação existente com 200 em
vez de criar outra (a primeira criação responde 201). Isso permite repetir a
chamada com segurança depois de uma falha de rede ou de retomar uma execução.
source e externalId só são lidos na criação.
Estratégias
Em
spot_spot, entrySellPrice é o preço de venda esperado e o fechamento
exige apenas exitSellPrice.
Taxas
fees aceita trading, withdrawal e funding em moeda de cotação. Quando
fees é nulo o serviço estima as taxas com a taxa taker de cada exchange sobre
todas as pernas e, em spot_spot, um saque da buyExchange. Sem dado da
exchange são usados NET_SPREAD_DEFAULT_TAKER_RATE e
NET_SPREAD_DEFAULT_WITHDRAWAL_USD, e a operação fica com feesEstimated: true.
O campo funding do corpo define o funding (positivo recebido, negativo pago)
mesmo com taxas estimadas.
Resultado líquido = bruto − trading − withdrawal + funding. O percentual usa o
nocional de entrada.