Sample code for 30+ languages & platforms
Xbase++

Bitfinex v2 REST Submit Order

See more Bitfinex v2 REST Examples

Submit an order.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oCrypt
LOCAL cApiPath
LOCAL cApiKey
LOCAL cApiSecret
LOCAL oDt
LOCAL oSbNonce
LOCAL cNonce
LOCAL oJson
LOCAL cBody
LOCAL oSbSignature
LOCAL cSig
LOCAL oResp

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

oCrypt := CreateObject("Chilkat.Crypt2")

cApiPath := "v2/auth/w/order/submit"
cApiKey := "MY_API_KEY"
cApiSecret := "MY_API_SECRET"

oDt := CreateObject("Chilkat.CkDateTime")
oDt:SetFromCurrentSystemTime()

oSbNonce := CreateObject("Chilkat.StringBuilder")
oSbNonce:Append(oDt:GetAsUnixTimeStr(0))
oSbNonce:Append("000")
cNonce := oSbNonce:GetAsString()

oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("type", "LIMIT")
oJson:UpdateString("symbol", "tBTCUSD")
oJson:UpdateString("price", "15")
oJson:UpdateString("amount", "0.001")
oJson:UpdateInt("flags", 0)
cBody := oJson:Emit()

oSbSignature := CreateObject("Chilkat.StringBuilder")
oSbSignature:Append("/api/")
oSbSignature:Append(cApiPath)
oSbSignature:Append(cNonce)
oSbSignature:Append(cBody)

oCrypt:EncodingMode := "hex_lower"
oCrypt:HashAlgorithm := "sha384"
oCrypt:MacAlgorithm := "hmac"
oCrypt:SetMacKeyString(cApiSecret)

cSig := oCrypt:MacStringENC(oSbSignature:GetAsString())

oHttp:SetRequestHeader("bfx-apikey", cApiKey)
oHttp:SetRequestHeader("bfx-signature", cSig)
oHttp:SetRequestHeader("bfx-nonce", cNonce)

oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpStr("POST", "https://api.bitfinex.com/v2/auth/w/order/submit", cBody, "utf-8", "application/json", oResp)
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oCrypt:destroy()
    oDt:destroy()
    oSbNonce:destroy()
    oJson:destroy()
    oSbSignature:destroy()
    oResp:destroy()
    RETURN
ENDIF

? "Response body:"
? oResp:BodyStr

oHttp:destroy()
oCrypt:destroy()
oDt:destroy()
oSbNonce:destroy()
oJson:destroy()
oSbSignature:destroy()
oResp:destroy()