Send Order

This endpoint allows sending a limit or stop order for a currently listed Futures contract.

Authentication is required.

Endpoint

Request Type Permissible API Keys
/api/v3/sendorder
POST Read-write, Master
Argument Type Required Description
orderType
string Yes The order type, either lmt for a limit order, post for a post-only limit order or stp for a stop order
symbol
string Yes The symbol of the Futures, see Section 3.4.4
side
string Yes The direction of the order, either buy for a buy order or sell for a sell order
size
positive integer Yes The size associated with the order
limitPrice
positive float Yes The limit price associated with the order. Must not
have more than 2 decimal places
stopPrice
positive float No The stop price associated with a stop order.
Required if orderType is stp. Must not have
more than 2 decimal places. Note that for stp
orders, limitPrice is also required and denotes
the worst price at which the stp order can get filled
cliOrdId
UUID No The order identity that is specified from the user. It must be globally unique.
Sample Calls

https://futures.kraken.com/derivatives/api/v3/sendorder?orderType=stp&symbol=fi_xbtusd_180615&side=buy&size=10&limitPrice=4255

https://futures.kraken.com/derivatives/api/v3/sendorder?orderType=lmt&symbol=fi_xbtusd_180615&side=buy&size=10&limitPrice=4255&cliOrdId=694c2b62-0e3f-412b-8249-9e67428574ca

https://futures.kraken.com/derivatives/api/v3/sendorder?orderType=stp&symbol=fi_xbtusd_180615&side=buy&size=10&limitPrice=4255&stopPrice=800

https://futures.kraken.com/derivatives/api/v3/sendorder?orderType=stp&symbol=fi_xbtusd_180615&side=buy&size=10&limitPrice=4255&stopPrice=800&cliOrdId=36825274-4c2f-4fb4-acd9-583f897d2b3f

 

Sample Return if Successful

{  
    "result":"success",
    "sendStatus":{  
        "order_id":"c18f0c17-9971-40e6-8e5b-10df05d422f0",
        "receivedTime":"2018-05-09T11:47:27.507Z",    
        "status":"placed",

    },
    "serverTime":"2018-05-09T11:47:27.507Z"

}

{  
    "result":"success",
    "sendStatus":{  
        "order_id":"9427bb1b-212d-4177-b7c0-fb3fb125b473",
        "cliOrdId":"694c2b62-0e3f-412b-8249-9e67428574ca",
        "receivedTime":"2018-05-09T11:48:27.507Z",    
        "status":"attempted",

    },
    "serverTime":"2018-05-09T11:48:27.507Z"

}

{  
    "result":"success",
    "sendStatus":{  
        "order_id":"2fceff75-d100-4f0a-822e-d0e268b4fddf",
        "receivedTime":"2018-05-09T11:49:27.506Z",    
        "status":"placed",

    },
    "serverTime":"2018-05-09T11:49:27.507Z"

}

{  
    "result":"success",
    "sendStatus":{  
        "order_id":"262b0c72-d526-4465-a15c-d8f7e0ac84f4",
        "cliOrdId":"36825274-4c2f-4fb4-acd9-583f897d2b3f",
        "receivedTime":"2018-05-09T11:50:27.507Z",    
        "status":"placed",

    },
    "serverTime":"2018-05-09T11:50:27.507Z"

}

Field

Type Description
result
string Always success
sendStatus
structure  A structure containing information on the send order request, see below
order_id UUID The unique identifier of the order
cliOrdId UUID The unique client order identifier. This field is returned only if the order has a client order id.
receivedTime ISO8601 datetime The date and time the order was received
status string The status of the order, either of:
  • placed: the order was placed successfully
  • attempted: the post-order will be attempted. If it is successful it will be shown in open orders
  • invalidOrderType: the order was not placed because orderType is invalid
  • invalidSide: the order was not placed because side is invalid
  • invalidSize: the order was not placed because size is invalid
  • invalidPrice: the order was not placed because limitPrice and/or stopPrice are invalid
  • insufficientAvailableFunds: the order was not placed because available funds are insufficient
  • selfFill: the order was not placed because it would be filled against an existing order belonging to the same account
  • tooManySmallOrders: the order was not placed because the number of small open orders would exceed the permissible limit
  • marketSuspended: the order was not placed because the market is suspended
  • marketInactive: the order was not placed because the market is inactive 
  • clientOrderIdAlreadyExist: the specified client id already exist
  • clientOrderIdTooLong: the client id is longer than the permissible limit
serverTime
ISO8601 datetime The server date and time

 

Sample Return if Unsuccessful
 {  
   "result":"error",
   "serverTime":"2016-02-25T09:45:53.818Z",
   "error":"apiLimitExceeded",
}

Field

Type Description
result
String Always error
serverTime
ISO8601 datetime The server date and time
error
string

The reason the API call failed, either of:

  • apiLimitExceeded: the API limit for the calling IP address has been exceeded
  • authenticationError: the request could not be authenticated
  • accountInactive: the Crypto Facilities account the request refers to is inactive 
  • requiredArgumentMissing: a required argument was missing
  • invalidArgument: <argument>:argument "<argument>" is invalid
  • nonceBelowThreshold: <threshold> the provided nonce is below the <threshold>
  • nonceDuplicate: <duplicate> the provided nonce is a duplicate as it has been used in a previous request