API transakcyjne

REST API umożliwia kontrolę własnego konta, poprzez zewnętrzne aplikacje, napisane przez użytkowników (np. boty transakcyjne).

Informacje dla Developerów

API publiczne

Adres prywatnego API

Generuj Klucz prywatnego API

Metody prywatnego API

  • getFunds - pobiera aktualne saldo dostępne konta i adres zasileń BTC

    POST: nonce=#, zwrot: plns, btcs, ltcs, addressBTC, addressLTC

  • getOrders - pobiera aktualnie złożone oferty i saldo

    POST: nonce=#, zwrot: plns, btcs, ltcs, market, orders

  • buy - ustawia zlecenie skupu BTC, LTC (BID)

    POST: nonce=#&amount=#&price=#&market=#, zwrot: plns, btcs, ltcs, orders

  • sell - ustawia zlecenie sprzedaży BTC, LTC (ASK)

    POST: nonce=#&amount=#&price=#&market=#, zwrot: plns, btcs, ltcs, orders

  • cancelOrder - usuwa zlecenie kupna / sprzedaży

    POST: nonce=#&oid=#&type=#&market=#, zwrot: plns, btcs, ltcs, orders

  • getTransactions - zwraca listę ostatnich 100 transakcji własnych

    POST: nonce=#&market=#&type=#&count=#&offset, zwrot: plns, btcs, transactions, all

  • withdraw - zleca wypłatę BTC,LTC,PLN na wskazane w systemie konto

    POST: nonce=#&type=#amount=#, zwrot: plns, btcs, ltcs

Metody prywatnego API na zamówienie

Legenda
plns - ilość PLN
btcs - ilość BTC
address - adres do zasileń Bitcoin, Litecoin
orders - oferty, zawierają: oid, amount, price, type (1=ASK, 2=BID)
oid - identyfikator oferty
market - btcpln, ltcpln
amount - ilość BTC LTC lub PLN (przy metodzie withdraw)
price - cena PLN
type - BTC LTC lub PLN (typ wypłaty)

Przykładowy kod klienta PHP

Przedstawiony przykład jest tylko prezentacją idei jak można użyć funkcje API.
Aby przykład działał prawidłowo należy uzupełnić kod poprawną składnią.

<?php

function ConnectApi(pathkey ''secret '', array req = array()) {
    

  //Czas do zapytania autoryzacji
    
mt explode(' 'microtime());
    
req['nonce'] = mt[1].substr(mt[0], 26);

    
//Dane POST
    
post_data http_build_query(req'''&');

    
//Nagłówki
    
headers = array(
        
'Rest-Key: ' key,
        
'Rest-Sign: ' base64_encode(hash_hmac('sha512'post_database64_decode(secret), true)),
    );

    
//init CURL
    
static ch null;
    if (
is_null(ch)) {
        
ch curl_init();
        
curl_setopt(chCURLOPT_RETURNTRANSFERtrue);
        
curl_setopt(chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; NevBit.com Client; ' php_uname('s') . '; PHP/' phpversion() . ')');
    }

    
curl_setopt(chCURLOPT_URL'https://nevbit.com/api/' path);
    
curl_setopt(chCURLOPT_POSTFIELDSpost_data);
    
curl_setopt(chCURLOPT_HTTPHEADERheaders);

    
//zapytanie
    
res curl_exec(ch);
    if (
res === false) throw new Exception('Could not get reply: ' curl_error(ch));
    
res json_decode(restrue);
    if (!
res) {
        throw new 
Exception('Invalid data received, please make sure connection is working and requested API exists');
    }
    return 
res;
}

//Saldo
ConnectApi('0/getFunds''kluczapi''sekretapi');

//Nowe zlecenie ASK
ConnectApi('0/sell''kluczapi''sekretapi', array('amount' => 2'price' => 17.15));

//Kasuj zlecenie 9 (ASK)
ConnectApi('0/cancelOrder''kluczapi''sekretapi', array('oid' => 9'type' => 1));

Przykładowy kod klienta Phyton

Przedstawiony przykład jest tylko prezentacją idei jak można użyć funkcje API.
Aby przykład działał prawidłowo należy uzupełnić kod poprawną składnią.

from hmac import new
from time import time
from requests import post
from requests.auth import AuthBase
from hashlib import sha512
from base64 import b64decode, b64encode

def base64_decode(in_str):
    return b64decode(pad4(in_str))

def pad4(in_str):
    len4 = len(in_str) % 4
    if len4 == 1:
        raise ValueError('Input string would require === as a padding: %s' % in_str)
    return in_str + (4-len4)*'='

class Nevbit_auth(AuthBase):
    def __init__(self, key, secret):
        self.key    = key
        self.secret = base64_decode(secret)

    def __call__(self, request):
        signature = b64encode(new(self.secret, request.body, sha512).digest())

        request.headers.update(❴'Rest-Sign' : signature,
                                'Rest-Key'  : self.key❵)

        return request

r = post('https://nevbit.com/api/0/getFunds', auth=Nevbit_auth('key', 'secret'), data=❴'nonce' : str(int(time()*1e3))❵)

print(r.json())