SQL Server / Binance spot API / Cancel an Existing Order and Send a New Order (TRADE)
Back to Collection Items
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
-- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Content-Type', 'application/json'
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'X-MBX-APIKEY', '{{binance-api-key}}'
DECLARE @resp int
EXEC sp_OAMethod @http, 'QuickRequest', @resp OUT, 'POST', 'https://domain.com/api/v3/order/cancelReplace?symbol=BNBUSDT&side=SELL&type=&cancelReplaceMode=×tamp={{timestamp}}&signature={{signature}}'
EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
RETURN
END
EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT
PRINT @iTmp0
EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @http
END
GO
Curl Command
curl -X POST
-H "Content-Type: application/json"
-H "X-MBX-APIKEY: {{binance-api-key}}"
https://domain.com/api/v3/order/cancelReplace?symbol=BNBUSDT&side=SELL&type=&cancelReplaceMode=×tamp={{timestamp}}&signature={{signature}}
Postman Collection Item JSON
{
"name": "Cancel an Existing Order and Send a New Order (TRADE)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"type": "text",
"value": "application/json"
},
{
"key": "X-MBX-APIKEY",
"value": "{{binance-api-key}}",
"type": "text"
}
],
"url": {
"raw": "{{url}}/api/v3/order/cancelReplace?symbol=BNBUSDT&side=SELL&type=&cancelReplaceMode=×tamp={{timestamp}}&signature={{signature}}",
"host": [
"{{url}}"
],
"path": [
"api",
"v3",
"order",
"cancelReplace"
],
"query": [
{
"key": "symbol",
"value": "BNBUSDT",
"description": "Trading symbol, e.g. BNBUSDT"
},
{
"key": "side",
"value": "SELL"
},
{
"key": "type",
"value": "",
"description": "Order type"
},
{
"key": "cancelReplaceMode",
"value": "",
"description": "- `STOP_ON_FAILURE` If the cancel request fails, the new order placement will not be attempted.\n- `ALLOW_FAILURES` If new order placement will be attempted even if cancel request fails."
},
{
"key": "timeInForce",
"value": "",
"description": "Order time in force",
"disabled": true
},
{
"key": "quantity",
"value": "",
"description": "Order quantity",
"disabled": true
},
{
"key": "quoteOrderQty",
"value": "",
"description": "Quote quantity",
"disabled": true
},
{
"key": "price",
"value": "",
"description": "Order price",
"disabled": true
},
{
"key": "cancelNewClientOrderId",
"value": "",
"description": "Used to uniquely identify this cancel. Automatically generated by default",
"disabled": true
},
{
"key": "cancelOrigClientOrderId",
"value": "",
"description": "Either the cancelOrigClientOrderId or cancelOrderId must be provided. If both are provided, cancelOrderId takes precedence.",
"disabled": true
},
{
"key": "cancelOrderId",
"value": "",
"description": "Either the cancelOrigClientOrderId or cancelOrderId must be provided. If both are provided, cancelOrderId takes precedence.",
"disabled": true
},
{
"key": "newClientOrderId",
"value": "",
"description": "Used to identify the new order. Automatically generated by default",
"disabled": true
},
{
"key": "strategyId",
"value": "",
"disabled": true
},
{
"key": "strategyType",
"value": "",
"description": "The value cannot be less than 1000000",
"disabled": true
},
{
"key": "stopPrice",
"value": "20.01",
"description": "Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.",
"disabled": true
},
{
"key": "trailingDelta",
"value": "",
"description": "Used with STOP_LOSS, STOP_LOSS_LIMIT, TAKE_PROFIT, and TAKE_PROFIT_LIMIT orders.",
"disabled": true
},
{
"key": "icebergQty",
"value": "",
"description": "Used with LIMIT, STOP_LOSS_LIMIT, and TAKE_PROFIT_LIMIT to create an iceberg order.",
"disabled": true
},
{
"key": "newOrderRespType",
"value": "",
"description": "Set the response JSON. MARKET and LIMIT order types default to FULL, all other orders default to ACK.",
"disabled": true
},
{
"key": "recvWindow",
"value": "5000",
"description": "The value cannot be greater than 60000",
"disabled": true
},
{
"key": "timestamp",
"value": "{{timestamp}}",
"description": "UTC timestamp in ms"
},
{
"key": "signature",
"value": "{{signature}}",
"description": "Signature"
}
]
},
"description": "Cancels an existing order and places a new order on the same symbol.\n\nFilters are evaluated before the cancel order is placed.\n\nIf the new order placement is successfully sent to the engine, the order count will increase by 1.\n\nWeight(IP): 1"
},
"response": [
]
}