Sample code for 30+ languages & platforms
Lianja

Bitfinex v2 REST Submit Order

See more Bitfinex v2 REST Examples

Submit an order.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loHttp = createobject("CkHttp")

loCrypt = createobject("CkCrypt2")

lcApiPath = "v2/auth/w/order/submit"
lcApiKey = "MY_API_KEY"
lcApiSecret = "MY_API_SECRET"

loDt = createobject("CkDateTime")
loDt.SetFromCurrentSystemTime()

loSbNonce = createobject("CkStringBuilder")
loSbNonce.Append(loDt.GetAsUnixTimeStr(.F.))
loSbNonce.Append("000")
lcNonce = loSbNonce.GetAsString()

loJson = createobject("CkJsonObject")
loJson.UpdateString("type","LIMIT")
loJson.UpdateString("symbol","tBTCUSD")
loJson.UpdateString("price","15")
loJson.UpdateString("amount","0.001")
loJson.UpdateInt("flags",0)
lcBody = loJson.Emit()

loSbSignature = createobject("CkStringBuilder")
loSbSignature.Append("/api/")
loSbSignature.Append(lcApiPath)
loSbSignature.Append(lcNonce)
loSbSignature.Append(lcBody)

loCrypt.EncodingMode = "hex_lower"
loCrypt.HashAlgorithm = "sha384"
loCrypt.MacAlgorithm = "hmac"
loCrypt.SetMacKeyString(lcApiSecret)

lcSig = loCrypt.MacStringENC(loSbSignature.GetAsString())

loHttp.SetRequestHeader("bfx-apikey",lcApiKey)
loHttp.SetRequestHeader("bfx-signature",lcSig)
loHttp.SetRequestHeader("bfx-nonce",lcNonce)

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpStr("POST","https://api.bitfinex.com/v2/auth/w/order/submit",lcBody,"utf-8","application/json",loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loCrypt
    release loDt
    release loSbNonce
    release loJson
    release loSbSignature
    release loResp
    return
endif

? "Response body:"
? loResp.BodyStr


release loHttp
release loCrypt
release loDt
release loSbNonce
release loJson
release loSbSignature
release loResp