Skip to main content

Exchange & Orders (Binance)

Dokumentasi untuk endpoint market data dan order/trading yang memakai integrasi Binance Spot.

Semua response mengikuti envelope di docs/bitwewe/api-conventions.

Market data (publik)

API v1 (prefix /api/exchange/binance/)

MethodPathController@methodCatatan
GET/api/exchange/binance/exchangeInfoBinanceSpotController@exchangeInformation
GET/api/exchange/binance/configBinanceSpotController@config
GET/api/exchange/binance/timeBinanceSpotController@time
GET/api/exchange/binance/symbolsBinanceSpotController@symbols
GET/api/exchange/binance/historyBinanceSpotController@candlestickData
POST/api/exchange/binance/testOrderBinanceSpotController@testNewOrder

Payload untuk sebagian endpoint market data divalidasi oleh request class spesifik (mis. BinanceCandlestickRequest, BinanceGetSymbolsRequest). Jika diperlukan, kita dokumentasikan per endpoint dari file request tersebut.


Trading (protected)

API v1 (auth.xtoken)

Base: /api/exchange/binance/* di dalam grup auth.xtoken, verified:api.

MethodPathController@method
GET/api/exchange/binance/historyTradeOrderController@historyTrades
GET/api/exchange/binance/historyOrderOrderController@historyOrders
GET/api/exchange/binance/currentOrderOrderController@currentOrders
POST/api/exchange/binance/orderOrderController@createOrder
DELETE/api/exchange/binance/order/{orderNo}OrderController@cancelOrder
POST/api/exchange/binance/order/{exchangeOrderId}/{userId}/deleteOrderController@deleteOrder
DELETE/api/exchange/binance/symbolOrdersOrderController@cancelSymbolOrders
DELETE/api/exchange/binance/allOrdersOrderController@cancelAllOrders
GET/api/exchange/binance/accountInfoBinanceSpotController@accountInformation

Create order

Route

  • API v1: POST /api/exchange/binance/orderApi\\OrderController@createOrder
  • Request validation: App\\Http\\Requests\\Api\\BinanceCreateOrderRequest

Payload (JSON)

BinanceCreateOrderRequest memvalidasi berdasarkan type:

LIMIT

FieldTipeWajib
sidestringYa (BUY / SELL)
typestringYa (LIMIT)
txPairstringYa (contoh: BTCUSDT)
volumenumberYa
pricenumberYa

MARKET

FieldTipeWajib
sidestringYa
typestringYa (MARKET)
txPairstringYa
volumenumberYa

Contoh LIMIT:

{
"side": "BUY",
"type": "LIMIT",
"txPair": "BTCUSDT",
"volume": 0.01,
"price": 65000
}

Proses server (highlight)

Berdasarkan controller OrderController@createOrder:

  • Memverifikasi status user ($user->verifyStatus()).
  • Memastikan trading pair ada dan aktif (TxPair).
  • Menghitung amount/volume/price final (TOrder::computeOrderPriceVolumeAmount).
  • Memastikan saldo user cukup (UserBalance::checkSufficientUserCoinBalance).
  • Memanggil Binance untuk create order (BinanceSpotController->createOrder).
  • Menyimpan order ke tabel t_order dan mengunci saldo (freeze).

Khusus v1 ada validasi tambahan untuk LIMIT price vs market price (mengambil market dari getBitweweDataSocket()):

  • LIMIT BUY: input price tidak boleh lebih tinggi dari market
  • LIMIT SELL: input price tidak boleh lebih rendah dari market

Response sukses (200)

Mengembalikan data berupa JSON string berisi ringkasan order:

{
"code": 200,
"title": "OK",
"message": "api.order_create_success",
"result": true,
"data": "{\"order_no\":\"...\",\"status\":\"CREATE\"}"
}

Catatan: data pada implementasi ini adalah string JSON (json_encode($response)), bukan object JSON langsung.

Response gagal (contoh)

KondisiHTTPmessage
Market price tidak tersedia (v1)400api.market_price_unavailable
LIMIT BUY price terlalu tinggi (v1)400api.limit_buy_price_too_high
LIMIT SELL price terlalu rendah (v1)400api.limit_sell_price_too_low
Pair tidak ada / nonaktif400api.trading_pair_does_not_exist
Saldo tidak cukup400api.order_insufficient_funds

Cancel order

Route

  • API v1: DELETE /api/exchange/binance/order/{orderNo}Api\\OrderController@cancelOrder

Payload

Tidak ada payload body; orderNo dari path param.

Response sukses (200)

{
"code": 200,
"title": "OK",
"message": "api.order_cancel_success",
"result": true
}

Response gagal (contoh)

KondisiHTTPmessage
Order tidak ditemukan400api.order_does_not_exist
Order sudah DONE400api.order_status_completed
Order sudah CANCEL400api.order_status_canceled
Cancel ke Binance gagal400api.order_cancel_fail / order_cancel_fail

Cancel symbol orders

Route

  • API v1: DELETE /api/exchange/binance/symbolOrderscancelSymbolOrders
  • Request validation: BinanceCancelSymbolOrdersRequest

Payload (JSON)

{ "txPair": "BTCUSDT" }

Response sukses (200)

{
"code": 200,
"title": "OK",
"message": "api.order_all_cancel_success",
"result": true
}

Payload create order sama dengan BinanceCreateOrderRequest.