Referência da API
Automação
O cliente liga ou pausa a automação por corretora. Um sinal da estratégia só vira ordem se TODOS os portões permitirem: cliente ativo, estratégia e corretora no contrato, setup válido, sem trava diária, cobrança em dia, conexão ok e (Hyperliquid) builder aprovado.
GET/v1/users/:externalUserId/automationEstado da automaçãoPUT/v1/users/:externalUserId/automationLigar ou pausar
GET
/v1/users/:externalUserId/automationEstado da automação
Tela do clienteVer no app modelo: Operação ↗
Por corretora: automação registrada, se novas entradas estão permitidas (newEntries ALLOWED/BLOCKED), o motivo (blockReason) e a garantia de que a manutenção das posições continua.
blockReason mais comuns: CLIENT_SUSPENDED, B2B_ACCESS_SUSPENDED, OBLIGATION_OVERDUE (fatura vencida), SETUP_DISABLED, AUTOMATION_OFF. Mostre ao cliente o porquê.
Parâmetros de caminho
- externalUserIdstring (1–120)obrigatório
id do cliente no SEU sistema
Requisição
curl -X GET "$FIN_API/v1/users/cli-1001/automation" \
-u "$FIN_CLIENT_ID:$FIN_CLIENT_SECRET"Resposta200
{
"externalUserId": "cli-1001",
"tenantId": "TENANT_A",
"requestId": "req_muyn0wd0_a0igg83c",
"providers": [
{
"providerId": "BINANCE",
"setupEnabled": false,
"mode": "PAPER",
"haltedToday": false,
"automation": {
"strategyId": "FUTURES_MAIN_V1",
"strategyVersion": "1.0.0",
"enabled": false,
"risk": {
"leverage": 3,
"maxMarginPerTradeUsd": 10,
"maxConcurrentTrades": 1,
"maxDailyLossUsd": 10
},
"updatedAt": "2026-10-07T15:34:09.570Z"
},
"newEntries": "BLOCKED",
"blockReason": "SETUP_DISABLED",
"positionMaintenance": "CONTINUES"
}
]
}PUT
/v1/users/:externalUserId/automationLigar ou pausar
Corpo SEMPRE completo, inclusive para desligar (risk é obrigatório). Pausar não fecha posições: a proteção delas continua.
Parâmetros de caminho
- externalUserIdstring (1–120)obrigatório
id do cliente no SEU sistema
Corpo (JSON)
- providerIdBINANCE | HYPERLIQUIDobrigatório
corretora
- strategyIdstringobrigatório
estratégia concedida e selecionada
- enabledbooleanobrigatório
ligar/pausar
- riskobjetoobrigatório
leverage, maxMarginPerTradeUsd, maxConcurrentTrades, maxDailyLossUsd
- conditionsobjetoopcional
symbols, tradingWindowUtc { from, to }, minConfidence (0–100)
Erros comuns
- 400VALIDATION_ERRORfaltou risk: "Requisição inválida em \"risk\"."
- 403STRATEGY_NOT_GRANTEDestratégia fora do contrato
Requisição
curl -X PUT "$FIN_API/v1/users/cli-1001/automation" \
-u "$FIN_CLIENT_ID:$FIN_CLIENT_SECRET" \
-H "Idempotency-Key: put-automation-cli-1001-$(uuidgen)" \
-H "content-type: application/json" \
-d '{
"providerId": "BINANCE",
"strategyId": "FUTURES_MAIN_V1",
"enabled": true,
"risk": {
"leverage": 3,
"maxMarginPerTradeUsd": 10,
"maxConcurrentTrades": 1,
"maxDailyLossUsd": 10
}
}'Resposta200
{
"externalUserId": "cli-1001",
"automation": {
"providerId": "BINANCE",
"strategyId": "FUTURES_MAIN_V1",
"strategyVersion": "1.0.0",
"enabled": false,
"risk": {
"leverage": 3,
"maxMarginPerTradeUsd": 10,
"maxConcurrentTrades": 1,
"maxDailyLossUsd": 10
},
"conditions": {},
"runtime": "DISABLED"
},
"requestId": "req_muyn3x3g_a1jannjw"
}