Sample code for 30+ languages & platforms
Objective-C

Bitfinex v2 REST Submit Order

See more Bitfinex v2 REST Examples

Submit an order.

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <CkoCrypt2.h>
#import <NSString.h>
#import <CkoDateTime.h>
#import <CkoStringBuilder.h>
#import <CkoJsonObject.h>
#import <CkoHttpResponse.h>

BOOL success = NO;

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

CkoHttp *http = [[CkoHttp alloc] init];

CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init];

NSString *apiPath = @"v2/auth/w/order/submit";
NSString *apiKey = @"MY_API_KEY";
NSString *apiSecret = @"MY_API_SECRET";

CkoDateTime *dt = [[CkoDateTime alloc] init];
[dt SetFromCurrentSystemTime];

CkoStringBuilder *sbNonce = [[CkoStringBuilder alloc] init];
[sbNonce Append: [dt GetAsUnixTimeStr: NO]];
[sbNonce Append: @"000"];
NSString *nonce = [sbNonce GetAsString];

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"type" value: @"LIMIT"];
[json UpdateString: @"symbol" value: @"tBTCUSD"];
[json UpdateString: @"price" value: @"15"];
[json UpdateString: @"amount" value: @"0.001"];
[json UpdateInt: @"flags" value: [NSNumber numberWithInt: 0]];
NSString *body = [json Emit];

CkoStringBuilder *sbSignature = [[CkoStringBuilder alloc] init];
[sbSignature Append: @"/api/"];
[sbSignature Append: apiPath];
[sbSignature Append: nonce];
[sbSignature Append: body];

crypt.EncodingMode = @"hex_lower";
crypt.HashAlgorithm = @"sha384";
crypt.MacAlgorithm = @"hmac";
[crypt SetMacKeyString: apiSecret];

NSString *sig = [crypt MacStringENC: [sbSignature GetAsString]];

[http SetRequestHeader: @"bfx-apikey" value: apiKey];
[http SetRequestHeader: @"bfx-signature" value: sig];
[http SetRequestHeader: @"bfx-nonce" value: nonce];

CkoHttpResponse *resp = [[CkoHttpResponse alloc] init];
success = [http HttpStr: @"POST" url: @"https://api.bitfinex.com/v2/auth/w/order/submit" bodyStr: body charset: @"utf-8" contentType: @"application/json" response: resp];
if (success == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

NSLog(@"%@",@"Response body:");
NSLog(@"%@",resp.BodyStr);