Documentação

Comprar

NegociaçãoAutenticação Obrigatória

Compre um contrato. O parâmetro loginid foi removido, e vários campos em parameters foram alterados.

Comparação rápida

AspetoLegacy APINew APIAção
EndpointbuybuyNenhum
Autenticação ObrigatóriaSimSimNenhum
loginid parâmetroOpcionalRemovidoRemover dos pedidos
parameters.symbolObrigatórioRenomeado para underlying_symbolRenomear em pedidos
Cinco parameters camposAceiteRemovidoRemover dos pedidos
contract_type valoresInclui tipos spread, lookback e snowAdiciona HIGHER e LOWERReveja os tipos de contrato

Alterações de rutura

1. loginid parâmetro removido

O parâmetro loginid foi removido em New. Este parâmetro era anteriormente usado para autenticação multi-conta.

Alteração necessária: Remova o campo loginid dos seus pedidos de buy . A seleção da conta é agora efetuada através do token de autorização.

2. parameters.symbol renomeado para parameters.underlying_symbol

O campo symbol em parameters é agora underlying_symbol. A Nova API indica underlying_symbol como obrigatório em parameters, pelo que um pedido que continue a enviar parameters.symbol falha.

Alteração necessária: Renomeie parameters.symbol para parameters.underlying_symbol nos seus pedidos buy .

3. Campos removidos de parameters

Estes campos foram removidos de parameters na Nova API: barrier_range, date_start, product_type, trade_risk_profile e trading_period_start.

Alteração necessária: Remova estes campos do objeto parameters nos seus pedidos buy .

4. contract_type valores alterados

A lista de parameters.contract_type deixou de incluir CALLSPREAD, PUTSPREAD, LBFLOATCALL, LBFLOATPUT, LBHIGHLOW, SNOWUP ou SNOWDOWN. Adiciona HIGHER e LOWER.

Alteração necessária: Deixe de enviar os tipos de contrato removidos. Utilize antes um dos valores indicados pela Nova API.

Estrutura de pedido

Legacy APIexemplo de pedido
{
  "buy": "uw2mk7no3oktoRVVsB4Dz7TQnFfABuFDgO95dlxfMxRuPUsz",
  "price": 10.50,
  "loginid": "CR123456"
}
New APIexemplo de pedido
{
  "buy": "uw2mk7no3oktoRVVsB4Dz7TQnFfABuFDgO95dlxfMxRuPUsz",
  "price": 10.50
}

Estrutura de resposta

Legacy APIexemplo de resposta
{
  "buy": {
    "balance_after": 9989.50,
    "buy_price": 10.50,
    "contract_id": 123456789,
    "longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
    "payout": 20.00,
    "purchase_time": 1234567890,
    "shortcode": "CALL_R_100_20_1234567890_1234568190_S0P_0",
    "start_time": 1234567890,
    "transaction_id": 987654321
  },
  "echo_req": { "buy": "uw2mk7no3oktoRVVsB4Dz7TQnFfABuFDgO95dlxfMxRuPUsz", "price": 10.50 },
  "msg_type": "buy"
}
New APIexemplo de resposta
{
  "buy": {
    "balance_after": 9989.50,
    "buy_price": 10.50,
    "contract_id": 123456789,
    "longcode": "Win payout if Volatility 100 Index is strictly higher than entry spot at 5 minutes after contract start time.",
    "payout": 20.00,
    "purchase_time": 1234567890,
    "shortcode": "CALL_R_100_20_1234567890_1234568190_S0P_0",
    "start_time": 1234567890,
    "transaction_id": 987654321
  },
  "echo_req": { "buy": "uw2mk7no3oktoRVVsB4Dz7TQnFfABuFDgO95dlxfMxRuPUsz", "price": 10.50 },
  "msg_type": "buy"
}

Exemplos de código

async function buyContract(proposalId, price, loginid) {
  const request = {
    buy: proposalId,
    price: price,
    // loginid used for multi-account support
    loginid: loginid
  };

  ws.send(JSON.stringify(request));

  ws.onmessage = (event) => {
    const response = JSON.parse(event.data);
    if (response.msg_type === "buy") {
      // buy object may be missing in some cases
      if (response.buy) {
        console.log("Contract ID:", response.buy.contract_id);
      }
    }
  };
}
Click to open live chat support. Get instant help from our support team.