BitBay

The BitBay Developer Hub

Welcome to the BitBay developer hub. You'll find comprehensive guides and documentation to help you start working with BitBay as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    
Suggest Edits

Wprowadzenie

 

API BitBay zostało zaprojektowane w celu udzielenia wygodnego dostępu do zasobów serwisu w zakresie pobierania danych oraz wykonywania operacji przy użyciu oprogramowania zewnętrznego. Z łatwością może zostać użyte do tworzenia dynamicznych wykresów ze statystykami dowolnych rynków, czy zaprojektowania autonomicznej aplikacji grającej na giełdzie.

Jeżeli podczas przeglądania dokumentacji zauważyłeś błąd lub masz ciekawe sugestie dotyczące funkcjonalności i rozbudowy, skontaktuj się z nami poprzez formularz kontaktowy.

Adres bazowy, pod którym dostępne jest API: https://api.bitbay.net/rest

W niniejszej dokumentacji, dla uproszczenia wszystkie endpointy będą nazywane metodami.
Wywołanie konkretnej metody, np. dostęp do tickera (szczegóły zostaną opisane w dalszej części) będzie wyglądać następująco: https://api.bitbay.net/rest/trading/ticker

Wszystkie parametry czasowe zwracane przez API są w formacie UNIX timestamp z dokładnością do milisekund.
Zapytania muszą zawierać nagłówek Content-type: applicatioj/json, w innym przypadku mogą zostać niepoprawnie przetworzone.

Ponieważ wszystkie odpowiedzi są zwracane z kodem "200 OK" - każda metoda zwraca w odpowiedzi swój status wykonania.
W przypadku niepoprawnego wykonania - w odpowiedzi zostanie zwrócony status: "Fail" wraz z komunikatem o błędzie.

Suggest Edits

Gotowe rozwiązania

 

Aby przyspieszyć proces podpięcia swojej aplikacji, śmiało możesz skorzystać z naszych gotowych bibliotek.
Jeżeli masz wrażenie, że stworzone przez Ciebie rozwiązanie będzie pomocne również dla innych użytkowników i chcesz się nim podzielić, wyślij nam swój kod, a my po sprawdzeniu udostępnimy go w tej sekcji.


Node REST API

PHP REST API

Masz ciekawe sugestie jak jeszcze bardziej możemy ulepszyć naszą platformę? Natrafiłeś na dodatkową trudność z integracją lub już nawet udało Ci się ją obejść?
Dołącz do naszej społeczności na Gitterze i podziel się swoją wiedzą oraz doświadczeniem!

Aby zaoferować możliwie najlepszą obsługę, akcje są ograniczone ilością zapytań, którą można wykonać w ciągu jednej minuty.

Akcja
Maksymalna ilość zapytań na minutę

Wystawienie oferty

200

Anulowanie oferty

200

Pobranie listy wystawionych ofert

200

Pobranie listy transakcji

100

Pobranie konfiguracji rynku

100

Zmiana konfiguracji rynku

20

Wszystkie pozostałe

60

Suggest Edits

Komunikaty błędów

 

W przypadku niepowodzenia wykonania zapytania zostanie zwrócony status "Fail" wraz z komunikatem o błędzie. Listę ogólnych komunikatów o błędach znajdziesz poniżej, natomiast pozostałe będą przypisane do konkretnej kategorii metod, w której mogą wystąpić.

Komunikat błędu
Opis

PERMISSIONS_NOT_SUFFICIENT

Uprawnienia nadane kluczowi API nie są wystarczające do wykonania akcji.

INVALID_HASH_SIGNATURE

Wygenerowany podpis zapytania (API-Hash) jest niepoprawny.

RESPONSE_TIMEOUT

Czas odpowiedzi od modułu został przekroczony.

TIMEOUT

Nieprawidłowe odwołanie do metody: nieobsługiwane parametry / nieobsługiwany typ zapytania / błąd w nazwie odwołania.

ACTION_BLOCKED

Akcja jest zablokowana na koncie użytkownika.

ACTION_LIMIT_EXCEEDED

Limit wywołań akcji został wykorzystany, należy odczekać do następnej pełnej minuty przed kolejnym zapytaniem.

 
Suggest Edits

Ticker

Ticker zapewnia ogólny przegląd konfiguracji i statystyk wszystkich rynków lub jedynie wybranego - w tym celu wystarczy dodać kod rynku w adresie. Pokazuje wartość najmniejszej transakcji, jaką możemy przeprowadzić oraz liczbę miejsc po przecinku dla konkretnej waluty z wybranego rynku. Zwraca również bieżącą najlepszą ofertę kupna i sprzedaży, a także ostatnią i przedostatnią cenę transakcji.

 
gethttps://api.bitbay.net/rest/trading/ticker/kod_rynku
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/ticker",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/ticker',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/ticker")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
import requests

url = "https://api.bitbay.net/rest/trading/ticker"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "ticker": {
    "market": {
      "code": "BTC-PLN",
      "first": {
        "currency": "BTC",
        "minOffer": 0.00003,
        "scale": 8
      },
      "second": {
        "currency": "PLN",
        "minOffer": 0.1,
        "scale": 2
      }
    },
    "time": 1529498308810,
    "highestBid": 24600.23,
    "lowestAsk": 24647,
    "rate": 24640,
    "previousRate": 24625.96
  }
}
{
  "status": "Fail",
  "errors": [
    "MARKET_NOT_RECOGNIZED"
  ]
}
 

Path Params

kod_rynku
string

Opcjonalnie: kod rynku z którego chcesz pozyskać informacje.

W przypadku wykonana jedynie dla wybranego rynku, pełny adres będzie następujący:
https://api.bitbay.net/rest/trading/ticker/BTC-PLN

Szczegóły odpowiedzi

Klucz
Typ
Opis

ticker

array

code

string

Kod rynku dla którego zostało wykonane zapytanie.

first / second

array

Tablica informacji pierwszej / drugiej waluty z pary.

  • currency

string

Kod waluty z wybranego rynku.

  • minOffer

decimal

Minimalna wartość waluty jaką można wystawić.

  • scale

integer

Ilość miejsc po przecinku obsługiwana przez daną walutę.

time

Unix Timestamp

Czas wywołania.

highestBid

decimal

Aktualnie najlepszy kurs dla ofert kupna

lowestAsk

decimal

Aktualnie najlepszy kurs dla ofert sprzedaży

rate

decimal

Kurs ostatniej transakcji.

previousRate

decimal

Kurs przedostatniej transakcji.

Suggest Edits

Statystyki rynków

Wyświetla statystyki z ostatnich 24 godzin: najwyższej i najniższej oferty oraz wartość wolumenu. Możemy je pobrać dla wybranego przez nas rynku lub dla wszystkich w przypadku pustego parametru dla kodu rynku.

 
gethttps://api.bitbay.net/rest/trading/stats/kod_rynku
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/stats",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/stats',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/stats")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
import requests

url = "https://api.bitbay.net/rest/trading/stats"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "stats": {
    "m": "BTC-PLN",
    "h": "25350",
    "l": "24538.65",
    "v": "737.16361855"
  }
}
{
  "status": "Fail",
  "errors": [
    "STATS_COULD_NOT_BE_LOADED"
  ]
}
 

Path Params

kod_rynku
string

Opcjonalnie: kod rynku z którego chcesz pozyskać informacje.

W przypadku wykonana jedynie dla wybranego rynku, pełny adres będzie następujący:
https://api.bitbay.net/rest/trading/stats/BTC-PLN

Szczegóły odpowiedzi

Klucz
Typ
Opis

stats

array

  • m

string

Kod rynku.

  • h

decimal

Najwyższy kurs z ostatnich 24 godzin.

  • l

decimal

Najniższy kurs z ostatnich 24 godzin.

  • v

decimal

Wolumen z ostatnich 24 godzin.

Suggest Edits

Orderbook

Zwraca listę 300 najwyższych ofert kupna i 300 najniższych ofert sprzedaży.

 
gethttps://api.bitbay.net/rest/trading/orderbook/kod_rynku
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/orderbook/BTC-PLN",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/orderbook/BTC-PLN',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/orderbook/BTC-PLN")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
import requests

url = "https://api.bitbay.net/rest/trading/orderbook/BTC-PLN"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "sell": [
    {
      "ra": "25285.31",
      "ca": "0.02839638",
      "sa": "0.02839638",
      "pa": "0.02839638",
      "co": 1
    }
  ],
  "buy": [
    {
      "ra": "25280",
      "ca": "0.82618498",
      "sa": "3.59999",
      "pa": "0.82618498",
      "co": 1
    }
  ],
  "timestamp": "1529512856512"
}
{
  "status": "Fail",
  "errors": [
    "MARKET_NOT_RECOGNIZED"
  ]
}

Path Params

kod_rynku
string
required

Kod rynku z którego chcesz pozyskać informacje.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

sell / buy

array

  • ra

decimal

Kurs pozycji.

  • ca

decimal

Obecna ilość kryptowaluty w pozycji.

  • sa

decimal

Początkowa ilość kryptowaluty w pozycji.

  • pa

decimal

Ilość kryptowaluty w pozycji przed ostatnią zmianą.

  • co

integer

Ilość ofert na którą składa się pozycja.

timestamp

Unix Timestamp

Czas dla jakiego wszystkie powyżej wartości są aktualne.

Suggest Edits

Ostatnie transakcje

Zwraca listę ostatnich transakcji dla wybranego rynku. Bez uwzględnienia dodatkowych parametrów otrzymujemy ostatnie 10 transakcji.

 
gethttps://api.bitbay.net/rest/trading/transactions/kod_rynku
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/transactions/BTC-PLN",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/transactions/BTC-PLN',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/transactions/BTC-PLN")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
import requests

url = "https://api.bitbay.net/rest/trading/transactions/BTC-PLN"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "items": [
    {
      "id": "f9ff807c-ec8d-4654-b12a-aa3f6fdcf94c",
      "t": "1529515852759",
      "a": "0.04016101",
      "r": "25111.14",
      "ty": "Sell"
    },
    {
      "id": "952d5907-f6db-4fc1-a01a-d39371233115",
      "t": "1529515819014",
      "a": "0.01491232",
      "r": "25147",
      "ty": "Buy"
    }
  ]
}
{
  "status": "Fail",
  "errors": [
    "MARKET_NOT_RECOGNIZED"
  ]
}

Path Params

kod_rynku
string
required

Kod rynku z którego chcesz pozyskać informacje.

Query Params

limit
int32

Określa ilość zwracanych transakcji. Maksymalnie: 300.

fromTime
date-time

Czas od którego chcemy pobrać transakcje.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

items

array

  • id

UUID

ID transakcji.

  • t

Unix Timestamp

Czas transakcji.

  • a

decimal

Ilość kryptowaluty w transakcji.

  • r

decimal

Kurs transakcji.

  • ty

string

Typ transakcji: buy / sell.

Suggest Edits

Wykres świec

Zwraca statystyki świec dla wybranych przez nas parametrów czasowych.

 
gethttps://api.bitbay.net/rest/trading/candle/history/kod_rynku/rozdzielczosc
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/candle/history/BTC-PLN/900?from=1543410329000&to=1543410329000",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/candle/history/BTC-PLN/900?from=1543410329000&to=1543410329000',
  headers: { 'content-type': 'application/json' },
  qs: { "from": "1514797200000", "to": "1514800800000"}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/candle/history/BTC-PLN/900?from=1543410329000&to=1543410329000")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.bitbay.net/rest/trading/candle/history/BTC-PLN/900?from=1543410329000&to=1543410329000"

querystring = {"from":"1514797200000","to":"1514800800000"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "items": [
    [
      "1530742800000",
      {
        "o": "25045.87",
        "c": "25046.03",
        "h": "25130.93",
        "l": "25043.59",
        "v": "0.22349329"
      }
    ],
    [
      "1530743100000",
      {
        "o": "25003.51",
        "c": "25125",
        "h": "25125",
        "l": "24960.81",
        "v": "0.15407649"
      }
    ]
  ]
}
{
  "status": "Fail",
  "errors": [
    "MARKET_NOT_RECOGNIZED"
  ]
}

Path Params

kod_rynku
string
required

Kod rynku z którego chcesz pozyskać informacje.

rozdzielczosc
int32
required

Czas w sekundach dla jakiego ma zostać narysowana świeca. Lista dostępnych rozdzielczości znajduje się poniżej.

Query Params

from
date-time

Czas od którego chcemy pobrać statystyki.

to
date-time

Czas do którego chcemy pobrać statystyki.

 

Dostępne rozdzielczości:

Rozdzielczość
Wartość

1 minuta

60

3 minuty

180

5 minut

300

15 minut

900

30 minut

1800

1 godzina

3600

2 godziny

7200

4 godziny

14400

6 godzin

21600

12 godzin

43200

1 dzień

86400

3 dni

259200

1 tydzień

604800

Szczegóły odpowiedzi

Klucz
Typ
Opis

Unix Timestamp

Czas dla jakiego została wygenerowana świeczka.

o

decimal

Kurs otwarcia.

c

decimal

Kurs zamknięcia.

h

decimal

Najwyższa wartość kursu.

l

decimal

Najniższa wartość kursu.

v

decimal

Wygenerowany wolumen.

Suggest Edits

Autoryzacja

 

Punkty końcowe, które wymagają autoryzacji użytkownika będą dalej nazywane “metodami prywatnymi”. By z nich korzystać, należy utworzyć parę kluczy umożliwiających autoryzację tworzonej aplikacji. Można to zrobić pod adresem https://auth.bitbay.net/settings/api
Konkretna para kluczy powinna mieć uprawnienia tylko do modułów, z których rzeczywiście będzie korzystać. Parametry muszą zostać wysłane w formacie JSON, który umożliwia wygenerowanie hasza.

Aby odnieść się do dowolnej metody prywatnej, w nagłówku muszą znaleźć się następujące parametry autoryzacyjne:

Klucz
Opis

API-Key

Klucz publiczny w jawnej formie.

API-Hash

HMAC("SHA512", klucz_publiczny + aktualny_timestamp + parametry_metody_JSON, klucz prywatny)

operation-id

Jednorazowy, losowo wygenerowany UUID operacji.

Request-Timestamp

Aktualny czas w formacie UNIX Timestamp. Ta sama wartość musi zostać użyta do wygenerowania hasza.

Content-Type

Dwuczęściowy identyfikator formatu plików, domyślnie: application/json.

Wartość API-Hash jest wygenerowaną wartością HMAC przy użyciu funkcji haszującej algorytmem SHA512 dla następujących danych:

  • Klucz publiczny
  • Aktualny czas w formacie UNIX Timestamp
  • Dane, które zostały przesłane w formacie JSON
  • Klucz prywatny (w niektórych bibliotekach podawany jest on jako osobny parametr będący kluczem szyfrowania)

Przykładowe wartości autoryzacji oraz gotowy kod:

API-Key: 12345f6f-1b1d-1234-a973-a10b1bdba1a1
API-Hash: 8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720
operation-id: 78539fe0-e9b0-4e4e-8c86-70b36aa93d4f
Request-Timestamp: 1529897422
Content-Type: application/json
<?php
class bitbayAPI

{
	private $pubkey = '';
	private $privkey = '';
  
	public function __construct($pubkey, $privkey)
	{
		$this->pubkey = $pubkey;
		$this->privkey = $privkey;
	}

	public function GetUUID($data)
	{
		assert(strlen($data) == 16);
		$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
		$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
		return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data) , 4));
	}

	public function callApi($method, $params = null, $type = 'GET')
	{
		$post = null;
		if (($type == 'GET') && is_array($params)):
			$method = $method . '?query=' . urlencode(json_encode($params));
		elseif (($type == 'POST' || $type == 'PUT' || $type == 'DELETE') && is_array($params) && (count($params) > 0)):
			$post = json_encode($params);
		endif;
		$time = time();
		$sign = hash_hmac("sha512", $this->pubkey . $time . $post, $this->privkey);
		$headers = array(
			'API-Key: ' . $this->pubkey,
			'API-Hash: ' . $sign,
			'operation-id: ' . GetUUID(random_bytes(16)) ,
			'Request-Timestamp: ' . $time,
			'Content-Type: application/json'
		);
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $type);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curl, CURLOPT_URL, 'https://api.bitbay.net/rest/' . $method);
		if ($type == 'POST' || $type == 'PUT' || $type == 'DELETE') {
			curl_setopt($curl, CURLOPT_POST, true);
			curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
		}

		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
		$ret = curl_exec($curl);
		$info = curl_getinfo($curl);
		return $ret;
	}
}
'use strict'

const uuidv4 = require('uuid/v4');
const crypto = require('crypto');

const apiKey = '48249e33-fbad-4805-a752-a82fe216e933';
const apiSecret = '12cd3901-1d4f-4b24-82ef-fbbc36638b7c';
var body = null;

function getHash(apiKey, timestamp, apiSecret, body) {
    const hmac = crypto.createHmac('sha512', apiSecret);

    if (body)
        hmac.update(apiKey + timestamp + JSON.stringify(body));
    else
        hmac.update(apiKey + timestamp);

    return hmac.digest('hex');
};

let timestamp = Date.now();
var headers = {
    'API-Key': apiKey,
    'API-Hash': getHash(apiKey, timestamp, apiSecret, body),
    'operation-id': uuidv4(),
    'Request-Timestamp': timestamp,
    'Content-Type': 'application/json'
};
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

public abstract class APIHashGenerator {

  public static String gemerate(String data, String key) {

        String result = "";

        try{
            byte [] byteKey = key.getBytes("UTF-8");
            final String HMAC_SHA512 = "HmacSHA512";
            Mac sha512_HMAC = null;
            sha512_HMAC = Mac.getInstance(HMAC_SHA512);
            SecretKeySpec keySpec = new SecretKeySpec(byteKey, HMAC_SHA512);
            sha512_HMAC.init(keySpec);
            byte [] mac_data = sha512_HMAC.
                    doFinal(data.getBytes("UTF-8"));
            result = bytesToHex(mac_data);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return result;
    }
  
    private static String bytesToHex(byte[] hashInBytes) {

        StringBuilder sb = new StringBuilder();

        for (byte b : hashInBytes) {
            sb.append(String.format("%02x", b));
        }

        return sb.toString();

    }
}
 
Suggest Edits

Nowa oferta

Na rynku BitBay możesz stworzyć następujące typy ofert: limit, market, fill or kill lub post only. Szczegółowy opis każdej z nich znajdziesz poniżej. W przypadku gdy któryś z parametrów jest nieużywany, należy przypisać mu wartość null.

 
posthttps://api.bitbay.net/rest/trading/offer/kod_rynku
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/offer/BTC-PLN",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"amount\":0.45,\"rate\":23000,\"offerType\":\"sell\",\"mode\":\"limit\",\"postOnly\":false,\"fillOrKill\":false}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'POST',
  url: 'https://api.bitbay.net/rest/trading/offer/BTC-PLN',
  headers: { 'content-type': 'application/json' },
  body: '{"amount":0.45,"rate":23000,"offerType":"sell","mode":"limit","postOnly":false,"fillOrKill":false}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/offer/BTC-PLN")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"amount\":0.45,\"rate\":23000,\"offerType\":\"sell\",\"mode\":\"limit\",\"postOnly\":false,\"fillOrKill\":false}"

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/trading/offer/BTC-PLN"

payload = "{\"amount\":0.45,\"rate\":23000,\"offerType\":\"sell\",\"mode\":\"limit\",\"postOnly\":false,\"fillOrKill\":false}"
response = requests.request("POST", url, data=payload)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "completed": true,
  "offerId": "6388963b-1d0d-4a70-ab6b-2ada1f9c06ea",
  "transactions": [
    {
      "amount": "0.00005",
      "rate": "21980.02"
    }
  ]
}
{
  "status": "Fail",
  "errors": [
    "FUNDS_NOT_SUFFICIENT"
  ]
}

Path Params

kod_rynku
string
required

Kod rynku z którego chcesz pozyskać informacje.

Body Params

amount
float
required

Ilość kryptowaluty.

rate
float
required

Kurs oferty.

price
float

Całkowita wartość oferty. Ma zastosowanie tylko przy ofercie typu market i w przypadku zastosowania - zastępuje wartość rate. Prawidłowe użycie zostało przedstawione poniżej.

offerType
string
required

Typ oferty: buy /sell.

mode
string
required

Sposób utworzenia oferty: limit / market.

postOnly
boolean

Czy oferta jest typu post only.

fillOrKill
boolean

Czy oferta jest typu fill or kill.

firstBalanceId
string

UUID portfela dla pierwszej waluty z wybranego rynku. Bez podania parametru transakcja zostanie wykonana wykorzystując domyślny portfel.

secondBalanceId
string

UUID portfela dla drugiej waluty z wybranego rynku. Bez podania parametru transakcja zostanie wykonana wykorzystując domyślny portfel.

 

Limit - standardowy sposób wykonywania ofert, domyślny widok na giełdzie.

Market - szybkie kupno i szybka sprzedaż. Przy tej metodzie ustawiamy jedynie parametr offerType na sell lub buy oraz pola amount lub price w zależności od tego, jak oferta ma zostać zrealizowana. Ustawiając pole price, transakcja zostanie zrealizowana, by uzupełnić się do danej kwoty. Z kolei ustawiając pole amount, transakcje będą realizowane, by zrealizować określoną ilość kryptowaluty.

Post only - daje pewność, że zawsze zapłacisz prowizję typu "Maker". Przy próbie wystawienia oferty tego typu masz pewność, że zostanie ona wystawiona do listy ofert (orderbook) lub anulowana (w przypadku, gdyby miało dojść do transakcji).

Fill or Kill - jest to oferta limitowana, która musi zostać zrealizowana natychmiast i w całości, lub zostanie anulowana. Celem korzystania z tego typu oferty jest upewnienie się, że pozycja jest wprowadzana natychmiast, zrealizowana w całości i po określonym kursie.

IOC (Immediate or Cancel) - jest ofertą limitowaną, która pozwala na natychmiastowy zakup, bądź sprzedaż kryptowaluty po wskazanym przez użytkownika kursie lub korzystniejszym. W przeciwieństwie do Fill or Kill, IOC pozwala na częściową realizację zakupu/sprzedaży, jeśli cała oferta nie będzie mogła zostać zrealizowana natychmiastowo.

W przypadku gdy któryś z wymaganych parametrów jest nieużywany, należy przypisać mu wartość null.

{
  "offerType": "BUY",
  "amount": "20",
  "price": null,
  "rate": null,
  "postOnly": false,
  "mode": "market",
  "fillOrKill": false
}
{
  "offerType": "BUY",
  "amount": null,
  "price": "500",
  "rate": null,
  "postOnly": false,
  "mode": "market",
  "fillOrKill": false
}
{
  "offerType": "SELL",
  "amount": "1",
  "price": null,
  "rate": "24600",
  "postOnly": false,
  "mode": "limit",
  "fillOrKill": false
}
{
  "offerType": "BUY",
  "amount": "100",
  "price": null,
  "rate": "0.8",
  "postOnly": true,
  "mode": "limit",
  "fillOrKill": false
}
{
  "offerType": "BUY",
  "amount": "11",
  "price": null,
  "rate": "230.11",
  "postOnly": false,
  "mode": "limit",
  "fillOrKill": true
}
{
  "offerType": "SELL",
  "amount": "10",
  "price": null,
  "rate": "1.07",
  "postOnly": false,
  "mode": "limit",
  "immediateOrCancel": true
}

Szczegóły odpowiedzi

Klucz
Typ
Opis

completed

boolean

Czy oferta została od razu zrealizowana w całości.

offerId

UUID

Identyfikator oferty.

transactions

array

Tablica zrealizowanych transakcji podczas wystawiania oferty:

  • amount

decimal

Ilość kryptowaluty w transakcji.

  • rate

decimal

Kurs wykonanej transakcji.

Suggest Edits

Aktywne oferty

Zwraca tablicę aktywnych ofert dla wybranego lub wszystkich dostępnych rynków.

 
gethttps://api.bitbay.net/rest/trading/offer/kod_rynku
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/offer",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/offer',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/offer")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/trading/offer"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
   "status":"Ok",
   "items":[
      {
         "market":"BTC-PLN",
         "offerType":"Sell",
         "id":"f424817e-9910-4688-8f08-50336d88f4c6",
         "currentAmount":"0.001",
         "lockedAmount":"0.001",
         "rate":"30000",
         "startAmount":"0.001",
         "time":"1508230579837",
         "postOnly":false,
         "mode":"limit",
         "receivedAmount":"0",
         "firstBalanceId": "aa1c89b7-103a-4ad2-8002-b4a6fd03b60c",
         "secondBalanceId": "6c25f724-4b07-4a0f-bad2-8432ffc07b12"
      }
   ]
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}
 

Path Params

kod_rynku
string

Opcjonalnie: kod rynku z którego chcesz pozyskać informacje.

W przypadku wykonana jedynie dla wybranego rynku, pełny adres będzie następujący:
https://api.bitbay.net/rest/trading/offer/BTC-PLN

Szczegóły odpowiedzi

Klucz
Typ
Opis

data

array

market

string

Kod marketu.

offerType

string

Typ oferty: buy / sell.

currentAmount

decimal

Aktualna ilość kryptowaluty w pozycji.

lockedAmount

decimal

Ilość kryptowaluty zablokowana na koncie.

rate

decimal

Kurs oferty.

startAmount

decimal

Początkowa ilość kryptowaluty.

time

UNIX timestamp

Czas wystawienia pozycji.

postOnly

boolean

Czy oferta jest typu post only.

mode

string

Typ oferty: limit / market.

receivedAmount

decimal

Ilość kryptowaluty, która została już przez nas odebrana z oferty.

firstBalanceId

UUID

Identyfikator portfela dla pierwszej waluty z rynku.

secondBalanceId

UUID

Identyfikator portfela dla drugiej waluty z rynku.

Suggest Edits

Anulowanie oferty

 
deletehttps://api.bitbay.net/rest/trading/offer/kod_rynku/id_oferty/typ_oferty/kurs
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/offer/BTC-PLN/71d78058-8c33-4806-871b-1493c29ba4bc/buy/23000",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.bitbay.net/rest/trading/offer/BTC-PLN/71d78058-8c33-4806-871b-1493c29ba4bc/buy/23000' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/offer/BTC-PLN/71d78058-8c33-4806-871b-1493c29ba4bc/buy/23000")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/trading/offer/BTC-PLN/71d78058-8c33-4806-871b-1493c29ba4bc/buy/23000"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
	"status": "Ok",
	"errors": []
}
{
	"status": "Fail",
	"errors": [
		"OFFER_NOT_FOUND"
	]
}

Path Params

kod_rynku
string
required

Kod rynku w którym istnieje oferta.

id_oferty
string
required

UUID aktywnej oferty.

typ_oferty
string
required

Typ oferty: buy / sell.

kurs
float
required

Kurs aktywnej oferty.

 
Suggest Edits

Prowizje i konfiguracja rynku

Metoda zwraca nam aktualnie przypisaną prowizję dla wybranego rynku oraz jego konfigurację, która uwzględnia: minimalną wartość transakcji i domyślnie używane portfele do gry. Portfele używane do gry mogą zostać zmienione, przy użyciu następnej metody. Jeżeli chcesz dowiedzieć się więcej o systemie prowizji, przejdź niżej do szczegółów odpowiedzi.

 
gethttps://api.bitbay.net/rest/trading/config/kod_rynku
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/config/BTC-PLN",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/config/BTC-PLN' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/config/BTC-PLN")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/trading/config/BTC-PLN"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status":"Ok",
  "config":{
    "buy":{
      "commissions":{
        "maker":"0.0028",
        "taker":"0.0041"
      }
    },
    "sell":{
      "commissions":{
        "maker":"0.0028",
        "taker":"0.0041"
      }
    },
    "first":{
      "balanceId":"ad9397c5-3bd9-4372-82ba-22da6a90cb56",
      "minValue":"0.00003"
    },
    "second":{
      "balanceId":"f1ed4490-54f6-450b-a87c-16f13d14a949",
      "minValue":"0.1"
    }
  }
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}

Path Params

kod_rynku
string
required

Kod rynku z którego chcesz pozyskać informacje.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

config

array

buy / sell

array

Tablice prowizji dla ofert: buy / sell.

commissions

array

Tablice prowizji.

  • maker

decimal

Wartość prowizji maker.

  • taker

decimal

Wartość prowizji taker.

first / second

array

Tablice minimalnych transakcji dla pary walutowej.

  • balanceId

UUID

Identyfikator portfela.

  • minValue

decimal

Minimalna wartość transakcji dla danej waluty.

Suggest Edits

Zmiana konfiguracji rynku

Metoda pozwala na zmianę aktualnie używanych portfeli do gry na giełdzie. Dla wybranego rynku możemy zmienić portfel przypisany do każdej z walut.

 
posthttps://api.bitbay.net/rest/trading/config/kod_rynku
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/config/BTC-PLN",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"first\":\"65049d0d-390d-4ce8-b430-3784de1a3bda\",\"second\":\"ed1c9dbc-7232-459f-9249-5846c03e5710\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'POST',
  url: 'https://api.bitbay.net/rest/trading/config/BTC-PLN',
  headers: { 'content-type': 'application/json' },
  body: '{"first":"65049d0d-390d-4ce8-b430-3784de1a3bda","second":"ed1c9dbc-7232-459f-9249-5846c03e5710"}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/config/BTC-PLN")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"first\":\"65049d0d-390d-4ce8-b430-3784de1a3bda\",\"second\":\"ed1c9dbc-7232-459f-9249-5846c03e5710\"}"

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/trading/config/BTC-PLN"

payload = "{\"first\":\"65049d0d-390d-4ce8-b430-3784de1a3bda\",\"second\":\"ed1c9dbc-7232-459f-9249-5846c03e5710\"}"
response = requests.request("POST", url, data=payload)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
	"status": "Ok",
	"errors": []
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}

Path Params

kod_rynku
string
required

Kod rynku z którego chcesz pozyskać informacje.

Body Params

first
string
required

UUID dla pierwszej waluty z rynku, w typ przypadku: BTC.

second
string
required

UUID dla drugiej waluty z rynku, w typ przypadku: PLN.

 
Suggest Edits

Komunikaty o błędach

 

Standardowe błędy

Komunikat o błędzie
Opis

MARKET_NOT_RECOGNIZED

MARKET_NOT_RECOGNIZED

TICKER_NOT_FOUND

Ticker dla danego marketu nie został odnaleziony.

NOT_RECOGNIZED_OFFER_TYPE

Nieznany typ oferty.

FUNDS_NOT_SUFFICIENT

Środki na koncie przeznaczonym do tradingu nie są wystarczające do realizacji oferty.

OFFER_FUNDS_NOT_EXCEEDING_MINIMUMS

Wartość oferty jest mniejsza niż dopuszczalne minimum.

OFFER_FUNDS_SCALE_ISSUE

Wartość liczbowa podana w zapytaniu nie jest zgodna z ilością miejsc po przecinku dla danej waluty.

OFFER_COULD_NOT_BE_FILLED

Oferta nie może zostać zrealizowana w całości (dotyczy "Fill or kill").

OFFER_WOULD_HAVE_BEEN_PARTIALLY_FILLED

Oferta może zostać zrealizowana tylko w części (dotyczy "Fill or kill").

FILL_OR_KILL_COMBINED_WITH_POST_ONLY

Użyto typów "Fill or kill" z "Post only" - te parametry nie mogą być przesyłane razem.

INVALID_RESOLUTION

Niepoprawna wartość parametru resolution dla historycznych świec.

OFFER_NOT_FOUND

Oferta nie została odnaleziona (w przypadku anulowania).

SECONDARY_AMOUNTONLY

Dla oferty typu market.

ALLOWED_WITH_MARKET_OFFER

SELF_TRADING

Użytkownik posiada przeciwstawne oferty w danym rynku.

PRICE_PRECISION_INVALID

Nieprawidłowa precyzja dla ceny.

USER_OFFER_COUNT_LIMIT_EXCEEDED

Limit ofert wystawionych do marketu dla danego rynku został wyczerpany.

Błędy nieprawidłowo skonstruowanego zapytania

Komunikat błędu
Opis

INVALID_REQUEST

Zapytanie zostało skonstruowane nieprawidłowo.

MALFORMED_REQUEST

JSON przesłany w zapytaniu jest uszkodzony.

MARKET_CODE_CANNOT_BE_EMPTY

Nie podano kodu marketu.

Błędy przeciążenia tradingu

Komunikat błędu
Opis

CONFIG_LOAD_TIMEOUT

Nie można załadować konfiguracji marketu.

SYSTEM_TIMEOUT

Przekroczony czas odpowiedzi systemu.

CORE_OVERFLOW

System tradingowy został przeciążony.

SYSTEM_OVERLOADED

System giełdy jest przeciążony.

Błędy systemowe

Komunikat błędu
Opis

UNKNOWN_ERROR

Wystąpił nieznany błąd.

CONFIG_NOT_FOUND

Konfiguracja rynku dla użytkownika nie została znaleziona.

NOT_SUPPORTED_RESULT

Odpowiedz z modułu realizującego zapytanie nie jest prawidłowa.

CANNOT_GET_REQUIRED_BALANCE

Nie można uzyskać dostępu do portfela użytkownika.

STATS_COULD_NOT_BE_LOADED

Statystyki marketu nie mogą zostać załadowane.

BALANCE_NOT_FOUND_OR_INCOMPATIBLE

Portfel nie został znaleziony lub jest nieobsługiwany.

BALANCE_NOT_FOUND

Portfel nie został znaleziony.

 
Suggest Edits

Historia transakcji

Metoda zwraca z podziałem na strony: listę wszystkich przeprowadzonych transakcji.
Może również zostać użyta z parametrami, które zapewnią nam przefiltrowanie wyników.

 
gethttps://api.bitbay.net/rest/trading/history/transactions
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

$params = array(
	"markets" => ["LSK-PLN"],
	"rateFrom"=> "10",
	"rateTo"=> "20",
	"userAction" => "Buy",
	"nextPageCursor" => "start"
);


curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/trading/history/transactions?query=" . urlencode(json_encode($params)),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/trading/history/transactions',
  headers: { 'content-type': 'application/json' },
  qs: {"markets":["LSK-PLN"], "rateFrom":"1", "rateTo":"20", "userAction":"Buy", "nextPageCursor":"start"}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/trading/history/transactions?query=%7B%22markets%22%3A%5B%22LSK-PLN%22%5D%2C%20%22rateFrom%22%3A%221%22%2C%20%22rateTo%22%3A%2220%22%2C%20%22userAction%22%3A%22Buy%22%2C%20%22nextPageCursor%22%3A%22start%22%7D")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/trading/history/transactions"

querystring = '{"markets":["LSK-PLN"], "rateFrom":"1", "rateTo":"20", "userAction":"Buy", "nextPageCursor":"start"}'

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "totalRows": "31503",
  "items": [
    {
      "id": "d0e4746b-288e-4869-8107-d8277fcf4b9d",
      "market": "BTC-PLN",
      "time": "1529670604532",
      "amount": "0.01281693",
      "rate": "23572.84",
      "initializedBy": "Sell",
      "wasTaker": false,
      "userAction": "Buy",
      "offerId": "0325186f-c750-4aaa-98a2-d54e363f30bb",
      "commissionValue" : "1.14"
    }
  ],
  "query": {
    "markets": [ "BTC-PLN" ],
    "limit": [],
    "offset": [],
    "fromTime": [],
    "toTime": [],
    "initializedBy": [],
    "rateFrom": [],
    "rateTo": [],
    "userAction": [],
    "nextPageCursor": [ "start" ]
  },
  "nextPageCursor": "QW9ON3cvcjk2T0lDUHdWallXVTRPRFV3WWkwelpUQTVMVFEyTXpndFlqVmtOQzA1TldJeU56RmxOR1U0WWpZL0kxc2lSVlJJTFZCTVRpSXNJakUxTWpNNU5ERXhNREkyTlRFaUxDSmpZV1U0T0RVd1lpMHpaVEE1TFRRMk16Z3RZalZrTkMwNU5XSXlOekZsTkdVNFlqWWlYUT09"
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}
 

JSON Array of Query Params

markets
array of strings

Tablica rynków.

rateFrom
float

Minimalna wartość kursu.

rateTo
float

Maksymalna wartość kursu.

fromTime
timestamp

Czas w formacie Unix Timestamp, od którego mają zostać pobrane rekordy.

toTime
timestamp

Czas w formacie Unix Timestamp, do którego mają zostać pobrane rekordy.

userAction
string

Rola, jaką użytkownik pełnij w wykonanej transakcji: buy / sell.

nextPageCursor
string

Wskaźnik, od którego mają zostać pobrane rekordy. Początkowym wskaźnikiem jest: start.

Wszystkie parametry filtrowania muszą zostać wysłane w query w formacie JSON.
Aby przechodzić przez każdą kolejną stronę, należy użyć parametru nextPageCursor, który jest wskaźnikiem do kolejnej strony. W momencie, gdy zwrócony wskaźnik będzie odpowiadał temu, który został wysłany przez nas, będzie to oznaczać, że osiągnęliśmy ostatnią stronę historii.

Szczegóły odpowiedzi

Klucz
Typ
Opis

totalRows

integer

Ilość wszystkich rekordów

items

array

  • id

UUID

ID transakcji

  • market

string

Kod rynku dla danej transakcji.

  • time

Unix Timestamp

Czas wykonania transakcji.

  • amount

decimal

Ilość kryptowaluty.

  • rate

decimal

Kurs transakcji.

  • initializedBy

string

Ktora strona zainicjowała transakcję: buy / sell.

  • wasTaker

boolean

Czy użytkownik realizuje istniejącą już ofertę innego użytkownika.

  • userAction

string

Rola, jaką użytkownik pełnij w wykonanej transakcji: buy / sell.

  • offerId

UUID

Identyfikator oferty w wyniku, której powstała transakcja.

  • commissionValue

decimal

Wartość pobranej prowizji.

query

array

Tablica zawierająca parametry wysłanego zapytania.

nextPageCursor

string

Wskaźnik do kolejnego elementu strony. Jeżeli wskaźnik w odpowiedzi będzie odpowiadał temu, który został wysłany przez nas, będzie to oznaczać, że osiągnęliśmy ostatnią stronę.

Suggest Edits

Historia operacji

Metoda zwraca z podziałem na strony: listę wszystkich przeprowadzonych operacji na koncie.
Może również zostać użyta z parametrami, które zapewnią nam przefiltrowanie wyników.

 
gethttps://api.bitbay.net/rest/balances/BITBAY/history
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

$params = array (
  'balancesId' => NULL,
  'balanceCurrencies' => 
  array (
    0 => 'BTC',
  ),
  'balanceTypes' => NULL,
  'users' => NULL,
  'fromTime' => NULL,
  'toTime' => NULL,
  'limit' => '20',
  'offset' => 0,
  'types' => 
  array (
    0 => 'ADD_FOUNDS',
  ),
  'sort' => 
  array (
    0 => 
    array (
      'order' => 'DESC',
      'by' => 'time',
    ),
  ),
  'hasNextPage' => false,
  'nextPageCursor' => 'start',
)

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/balances/BITBAY/history?query=" . urlencode(json_encode($params)),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/balances/BITBAY/history',
  headers: { 'content-type': 'application/json' },
  qs: {"balancesId":null,"balanceCurrencies":["BTC"],"balanceTypes":null,"users":null,"fromTime":null,"toTime":null,"limit":"20","offset":0,"types":["ADD_FOUNDS"],"sort":[{"order":"DESC","by":"time"}],"hasNextPage":false,"nextPageCursor":"start"}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/balances/BITBAY/history?query=%7B%22balancesId%22%3Anull%2C%22balanceCurrencies%22%3A%5B%22BTC%22%5D%2C%22balanceTypes%22%3Anull%2C%22users%22%3Anull%2C%22fromTime%22%3Anull%2C%22toTime%22%3Anull%2C%22limit%22%3A%2220%22%2C%22offset%22%3A0%2C%22types%22%3A%5B%22ADD_FOUNDS%22%5D%2C%22sort%22%3A%5B%7B%22order%22%3A%22DESC%22%2C%22by%22%3A%22time%22%7D%5D%2C%22hasNextPage%22%3Afalse%2C%22nextPageCursor%22%3A%22start%22%7D")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/balances/BITBAY/history"

querystring = '{"balancesId":null,"balanceCurrencies":["BTC"],"balanceTypes":null,"users":null,"fromTime":null,"toTime":null,"limit":"20","offset":0,"types":["ADD_FOUNDS"],"sort":[{"order":"DESC","by":"time"}],"hasNextPage":false,"nextPageCursor":"start"}'

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status":"Ok",
  "items":[
    {
      "historyId":"21607612-7b64-4e2a-bac3-22185c556183",
      "balance":{
        "id":"69d14efe-0b1b-413f-ada4-4a8a975b7d76",
        "currency":"PLN",
        "type":"FIAT",
        "userId":"b47f9af4-081d-4f5d-8cd7-9f3a1411d2e2",
        "name":"PLN"
      },
      "detailId":null,
      "time":1530265764420,
      "type":"CREATE_BALANCE",
      "value":0,
      "fundsBefore":{
        "total":null,
        "available":null,
        "locked":null
      },
      "fundsAfter":{
        "total":0,
        "available":0,
        "locked":0
      },
      "change":{
        "total":0,
        "available":0,
        "locked":0
      }
    }
  ],
  "hasNextPage":true,
  "fetchedRows":10,
  "limit":10,
  "offset":0,
  "queryTime":1,
  "totalTime":46,
  "settings":{
    "balancesId":null,
    "balanceCurrencies":[

    ],
    "balanceTypes":[

    ],
    "users":[
      "b47f9af4-081d-4f5d-8cd7-9f3a1411d2e2"
    ],
    "engine":"BITBAY",
    "fromTime":0,
    "toTime":2229729760000,
    "absValue":false,
    "fromValue":null,
    "toValue":null,
    "sort":[

    ],
    "limit":10,
    "offset":0,
    "types":null
  },
  "errors":null
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}
 

JSON Array of Query Params

balancesId
array of strings

Tablica identyfikatorów rachunków dla których ma zostać zwrócona historia.

balanceCurrencies
array of strings

Tablica walut dla których ma zostać zwrócona historia.

fromTime
int32

Czas w formacie UNIX timestamp od którego mają zostać pobrane rekordy.

toTime
int32

Czas w formacie UNIX timestamp do którego mają zostać pobrane rekordy.

fromValue
float

Minimalna ilość kryptowaluty w transakcji dla której mają zostać pobrane rekordy.

toValue
float

Maksymalna ilość kryptowaluty w transakcji dla której mają zostać pobrane rekordy.

balanceTypes
string

Typ portfela: fiat / crypto.

types
array of strings

Tablica typów operacji. Lista operacji dostępna jest poniżej.

sort
array of objects

Tablica parametrów sortowania: by - pole po którym posortować, order - rodzaj sortowania: ASC/DESC.

Wszystkie parametry filtrowania muszą zostać wysłane w query w formacie JSON.

Szczegóły odpowiedzi

Klucz
Typ
Opis

items

array

historyId

UUID

Unikalny identyfikator wpisu.

balance

array

Informacje o saldzie, którego dotyczy wpis.

  • id

UUID

Unikalny identyfikator rachunku.

  • cyrrency

string

Kod waluty.

  • type

string

Typ portfela: crypto / fiat.

  • userId

UUID

Unikalny identyfikator użytkownika.

  • name

string

Nazwa portfela.

detailId

UUID

Unikalny identyfikator detali operacji (jeżeli są dostępne).

time

UNIX timestamp

Czas utworzenia wpisu.

type

string

Typ operacji, lista wszystkich typów dostępna jest poniżej.

value

decimal

Wartość operacji.

fundsBefore / fundsAfter / change

array

Tablice parametrów dla salda, które uwzględniają wartości przed / po operacji oraz samą wartość zmiany.

  • total

decimal

Całkowita ilość środków.

  • avalilable

decimal

Dostępna ilość środków.

  • locked

decimal

Zablokowana ilość środków.

hasNextPage

boolean

Czy istnieje kolejna strona z historią.

fetchedRows

integer

Ilość pobranych wierszy.

limit

integer

Wartość aktualnego limitu wierszy.

settings

array

Tablica parametrów o filtrach zastosowanych w zapytaniu.

  • balancesId

array

Tablica identyfikatorów rachunków, dla których została zwrócona historia.

  • balanceCurrencies

array

Tablica walut, dla których została zwrócona historia

  • balanceTypes

array

Tablica walut, dla których została zwrócona historia

  • engine

string

Nazwa aplikacji, której dotyczy portfel: BITBAY / BITBAYPAY.

  • fromTime

Unix Timestamp

Czas, od którego chcemy pobrać historię.

  • toTime

Unix Timestamp

Czas, do którego chcemy pobrać historię.

  • absValue

boolean

Czy zastosować filtrowanie dla wartości bezwzględnych z wartości fromValue oraz toValue.

  • fromValue

decimal

Minimalna ilość kryptowaluty w transakcji dla której mają zostać pobrane rekordy.

  • toValue

decimal

Maksymalna ilość kryptowaluty w transakcji dla której mają zostać pobrane rekordy.

  • sort

array

Tablica parametrów sortowania: by - pole po którym posortować, order - rodzaj sortowania: ASC/DESC.

  • limit

integer

Wartość aktualnego limitu wierszy.

  • types

array

Tablica typów operacji. Wszystkie możliwości dostępne są poniżej.

Typy operacji

Klucz
Opis

CREATE_BALANCE

Utworzenie rachunku.

ADD_FUNDS

Wpłata na rachunek.

SUBTRACT_FUNDS

Wypłata z rachunku.

TRANSFER_FROM

Przelew wewnętrzny z rachunku.

TRANSFER_TO

Przelew wewnętrzny na rachunek.

TRANSACTION_COMMISSION_OUTCOME

Pobranie prowizji za transakcję.

TRANSACTION_PRE_LOCKING

Blokada środków na rachunku.

LOCK_FUNDS

Blokada środków na rachunku.

ADMIN_LOCK_FUNDS

Blokada środków na rachunku

UNLOCK_FUNDS

Odblokowanie środków na rachunku.

ADMIN_UNLOCK_FUNDS

Odblokowanie środków na rachunku.

TRANSACTION_POST_INCOME

Otrzymanie środków z transakcji na rachunek.

TRANSACTION_POST_OUTCOME

Pobranie środków z transakcji z rachunku

ADMIN_ADD_FUNDS

Korekta środków na rachunku

ADMIN_SUBTRACT_FUNDS

Korekta środków na rachunku

TRANSACTION_OFFER_ABORTED_RETURN

Zwrot za usunięcie oferty na rachunek

AFFILIATE_FUNDS_TRANSFER

Transfer środków z programu partnerskiego

PAY_WITHDRAW_LOCK

Blokada środków na rachunku: {name}

TRANSACTION_OFFER_COMPLETED_RETURN

Anulowanie oferty poniżej wartości minimalnych

TRANSACTION_FAIL_UNLOCKING

Zwrot po nieudanej próbie wystawienia oferty

WITHDRAWAL_LOCK_FUNDS

Blokada środków

WITHDRAWAL_UNLOCK_FUNDS

Odblokowanie środków

WITHDRAWAL_SUBTRACT_FUNDS

Wypłata środków

FUNDS_MIGRATION

Migracja środków

TRANSACTION_COMMISSION_RETURN

Zwrot prowizji

ADD_FUNDS_ERROR_REFUND

Korekta blokady

OLD_ADDRESS_CRYPTO_DEPOSIT

Wpłata na stary adres

FIAT_DEPOSIT_MIGRATED

Wpłata na rachunek: {name}

ADMIN_SUBTRACT_FUNDS

Korekta środków na rachunku: {name}

ADMIN_WITHDRAWAL_REFUND

Zwrot środków za anulowaną wypłatę

SUBTRACT_FUNDS_ERROR_CORRECTION

Korekta środków

ADD_FUNDS_COMPENSATION

Rekompensata

BITCOIN_GOLD_FORK

Fork Bitcoin

BALANCE_DEPOSIT_CORRECTION

Korekta wpłaty

WITHDRAWAL_CUSTOM_COMMISSION

Prowizja za przelew dla sieci Bitcoin

Typy operacji, które nie są już używane i związane są z nieaktualnymi kartami:

Klucz
Opis

CARD_ADMISSION

Zasilenie karty z rachunku

CARD_ORDER

Zamówienie karty

INCOME

Zasilenie karty

OUTCOME

Wypłata z karty

LOCK_CARD_ADMISSION

Zasilenie karty, blokada środków

UNLOCK_CARD_ADMISSION

Anulowanie zasilenia karty

SUBTRACT_CARD_ADMISSION

Zasilenie karty

LOCK_ORDER_COMISSION

Blokada środków za zamówienie karty

SUBTRACT_CARD_ORDER

Opłata za wydanie karty

UNLOCK_CARD_ORDER

Odblokowanie środków za wydanie karty

 
Suggest Edits

Lista portfeli

Zwraca wszystkie portfele dostępne na koncie wraz ze stanem środków.

 
gethttps://api.bitbay.net/rest/balances/BITBAY/balance
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/balances/BITBAY/balance",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/balances/BITBAY/balance',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/balances/BITBAY/balance")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/balances/BITBAY/balance"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
   "status":"Ok",
   "balances":[
      {
         "id": "01931d52-536b-4ca5-a9f4-be28c86d0cc3",
         "userId": "4bc43956-423f-47fd-9faa-acd37c58ed9f",
         "availableFunds": 9830.28785615,
         "totalFunds": 9840.28785615,
         "lockedFunds": 10.00000000,
         "currency":"ETH",
         "type":"CRYPTO",
         "name":"Domyślny rachunek ETH",
         "balanceEngine":"BITBAY"
      }
   ],
   "errors":null
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}
 

Szczegóły odpowiedzi

Klucz
Typ
Opis

balances

array

id

UUID

Identyfikator portfela.

userId

UUID

Identyfikator użytkownika.

availableFunds

decimal

Ilość dostępnych środków.

totalFunds

decimal

Całkowita ilość środków.

lockedFunds

decimal

Ilość zablokowanych środków.

currency

string

Kod waluty.

type

string

Rodzaj waluty: CRYPTO / FIAT.

name

string

Nazwa portfela.

balanceEngine

string

Nazwa aplikacji, której dotyczy portfel: BITBAY / BITBAYPAY.

Suggest Edits

Nowy portfel

Metoda pozwala na utworzenie dodatkowego portfela dla wybranej waluty.
Można utworzyć maksymalnie 10 własnych portfeli, co wraz z domyślnym daje łączną liczbę maksymalnie 11 portfeli dla każdej z walut.

 
posthttps://api.bitbay.net/rest/balances/BITBAY/balance
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/balances/BITBAY/balance",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"currency\":\"BTC\",\"type\":\"crypto\",\"name\":\"oszczednosci\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'POST',
  url: 'https://api.bitbay.net/rest/balances/BITBAY/balance',
  headers: { 'content-type': 'application/json' },
  body: '{"currency":"BTC","type":"crypto","name":"oszczednosci"}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/balances/BITBAY/balance")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"currency\":\"BTC\",\"type\":\"crypto\",\"name\":\"oszczednosci\"}"

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/balances/BITBAY/balance"

payload = "{\"currency\":\"BTC\",\"type\":\"crypto\",\"name\":\"oszczednosci\"}"
response = requests.request("POST", url, data=payload)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status":"Ok",
  "items":[
    {
      "historyId":"21607612-7b64-4e2a-bac3-22185c556183",
      "balance":{
        "id":"69d14efe-0b1b-413f-ada4-4a8a975b7d76",
        "currency":"PLN",
        "type":"FIAT",
        "userId":"b47f9af4-081d-4f5d-8cd7-9f3a1411d2e2",
        "name":"PLN"
      },
      "detailId":null,
      "time":1530265764420,
      "type":"CREATE_BALANCE",
      "value":0,
      "fundsBefore":{
        "total":null,
        "available":null,
        "locked":null
      },
      "fundsAfter":{
        "total":0,
        "available":0,
        "locked":0
      },
      "change":{
        "total":0,
        "available":0,
        "locked":0
      }
    }
  ],
  "hasNextPage":true,
  "fetchedRows":10,
  "limit":10,
  "offset":0,
  "queryTime":1,
  "totalTime":46,
  "settings":{
    "balancesId":null,
    "balanceCurrencies":[

    ],
    "balanceTypes":[

    ],
    "users":[
      "b47f9af4-081d-4f5d-8cd7-9f3a1411d2e2"
    ],
    "engine":"BITBAY",
    "fromTime":0,
    "toTime":2229729760000,
    "absValue":false,
    "fromValue":null,
    "toValue":null,
    "sort":[

    ],
    "limit":10,
    "offset":0,
    "types":null
  },
  "errors":null
}
{
  "status": "Fail",
  "errors": [
    "BALANCE_COUNT_LIMIT_EXCEEDED"
  ]
}

Body Params

currency
string

Kod waluty.

type
string

Typ przechowywanej waluty: CRYPTO / FIAT.

name
string

Nazwa dla nowo utworzonego portfela.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

balance

array

id

UUID

Identyfikator portfela.

userId

UUID

Identyfikator użytkownika.

availableFunds

decimal

Ilość dostępnych środków.

totalFunds

decimal

Całkowita ilość środków.

lockedFunds

decimal

Ilość zablokowanych środków.

currency

string

Kod waluty.

type

string

Rodzaj waluty: CRYPTO / FIAT.

name

string

Nazwa dla stworzonego portfela.

balanceEngine

string

Nazwa aplikacji, której dotyczy portfel: BITBAY / BITBAYPAY.

Suggest Edits

Zmiana nazwy

Udostępnia możliwość zmiany nazwy wcześniej utworzonego przez nas portfela.
Zmiana nazwy domyślnego portfela nie jest możliwa.

 
puthttps://api.bitbay.net/rest/balances/BITBAY/balance/id_portfela
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/balances/BITBAY/balance/9c196289-fdbe-4a60-b89a-43594f8eae3c",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"name\":\"trading\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.bitbay.net/rest/balances/BITBAY/balance/9c196289-fdbe-4a60-b89a-43594f8eae3c',
  body: { name: 'trading' },
  json: true };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/balances/BITBAY/balance/9c196289-fdbe-4a60-b89a-43594f8eae3c")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request.body = "{\"name\":\"trading\"}"

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/balances/BITBAY/balance/9c196289-fdbe-4a60-b89a-43594f8eae3c"



payload = "{\"name\":\"trading\"}"
response = requests.request("PUT", url, data=payload)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
   "status":"Ok",
   "message":null
}
{
   "status":"Fail",
   "errors": [
    "MALFORMED_REQUEST"
  ]
}

Path Params

id_portfela
string
required

Identyfikator portfela dla którego zostanie zmieniona nazwa.

Body Params

name
string

Nowa nazwa dla wybranego portfela.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

message

string

Komunikat odpowiedzi. Domyślnie: null.

Suggest Edits

Przelew wewnętrzny

Zapewnia wygodną możliwość wysłania środków pomiędzy własnymi portfelami.

 
posthttps://api.bitbay.net/rest/balances/BITBAY/balance/transfer/id_zrodlowe/id_docelowe
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/balances/BITBAY/balance/transfer/be7ddc36-e048-4f1f-b2f2-4c63de20caa6/4e76ee66-572f-476e-b769-b89a17319d68",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"currency\":\"BTC\",\"funds\":0.5}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'POST',
  url: 'https://api.bitbay.net/rest/balances/BITBAY/balance/transfer/be7ddc36-e048-4f1f-b2f2-4c63de20caa6/4e76ee66-572f-476e-b769-b89a17319d68',
  headers: { 'content-type': 'application/json' },
  body: '{"currency":"BTC","funds":0.5}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/balances/BITBAY/balance/transfer/be7ddc36-e048-4f1f-b2f2-4c63de20caa6/4e76ee66-572f-476e-b769-b89a17319d68")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"currency\":\"BTC\",\"funds\":0.5}"

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/balances/BITBAY/balance/transfer/be7ddc36-e048-4f1f-b2f2-4c63de20caa6/4e76ee66-572f-476e-b769-b89a17319d68"

payload = "{\"currency\":\"BTC\",\"funds\":0.5}"
response = requests.request("POST", url, data=payload)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
   "status":"Ok",
   "from":{
      "id":"ad9397c5-3bd9-4372-82ba-22da6a90cb56",
      "userId":"4bc43956-423f-47fd-9faa-acd37c58ed9f",
      "availableFunds":0.01803472,
      "totalFunds":0.01804161,
      "lockedFunds":0.00000689,
      "currency":"BTC",
      "type":"CRYPTO",
      "name":"BTC",
      "balanceEngine":"BITBAY"
   },
   "to":{
      "id":"01931d52-536b-4ca5-a9f4-be28c86d0cc3",
      "userId":"4bc43956-423f-47fd-9faa-acd37c58ed9f",
      "availableFunds":0.00010000,
      "totalFunds":0.00010000,
      "lockedFunds":0E-8,
      "currency":"BTC",
      "type":"CRYPTO",
      "name":"Prowizja",
      "balanceEngine":"BITBAY"
   },
   "errors":null
}
{
  "status": "Fail",
  "errors": [
    "MALFORMED_REQUEST"
  ]
}

Path Params

id_zrodlowe
string
required

Identyfikator portfela źródłowego z którego zostaną pobrane środki.

id_docelowe
string
required

Identyfikator portfela docelowego, który otrzyma środki.

Body Params

currency
string

Kod waluty.

funds
string

Ilość środków, która ma zostać przelana.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

from / to

array

Tablica informacji dla salda źródłowego i docelowego.

id

UUID

Identyfikator portfela.

userId

UUID

Identyfikator użytkownika.

availableFunds

decimal

Ilość dostępnych środków.

totalFunds

decimal

Całkowita ilość środków.

lockedFunds

decimal

Ilość zablokowanych środków.

currency

string

Kod waluty.

type

string

Rodzaj waluty: CRYPTO / FIAT.

name

string

Nazwa portfela.

balanceEngine

string

Nazwa aplikacji, której dotyczy portfel: BITBAY / BITBAYPAY.

Suggest Edits

Kantor FIAT

 
Suggest Edits

Aktualny kurs

Metoda pobiera bieżący kurs dla wybranej pary walutowej.

 
gethttps://api.bitbay.net/rest/fiat_cantor/rate/waluta1/waluta2
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/fiat_cantor/rate/PLN/EUR",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/fiat_cantor/rate/PLN/EUR',
  headers: { 'content-type': 'application/json' },
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/fiat_cantor/rate/PLN/EUR")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["content-type"] = 'application/json'

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/fiat_cantor/rate/PLN/EUR"

headers = {'content-type': 'application/json'}

response = requests.request("GET", url, headers=headers)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "message": null,
  "currency1": "PLN",
  "currency2": "EUR",
  "rate": 4.2936
}
{
  "status": "Fail",
  "errors": [
    "PERMISSIONS_NOT_SUFFICIENT"
  ]
}

Path Params

waluta1
string
required

Kod waluty, którą chcemy wymienić.

waluta2
string
required

Kod waluty, na jaką ma zostać dokonana wymiana.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

currency1

string

Waluta do zamiany.

currency2

string

Waluta, która zostanie otrzymana po zamianie.

rate

decimal

Aktualny kurs.

 
posthttps://api.bitbay.net/rest/fiat_cantor/exchange
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/fiat_cantor/exchange",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"currency1BalanceId\":\"c3b1d15b-3c94-4ed1-9010-0f538bbf17f7\",\"currency2BalanceId\":\"1a9ceaec-ddda-45e0-a1e8-ca8a82a625f8\",\"currency1\":\"EUR\",\"currency2\":\"PLN\",\"amount\":10,\"rate\":4.2935}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'POST',
  url: 'https://api.bitbay.net/rest/fiat_cantor/exchange',
  headers: { 'content-type': 'application/json' },
  body: '{"currency1BalanceId":"c3b1d15b-3c94-4ed1-9010-0f538bbf17f7","currency2BalanceId":"1a9ceaec-ddda-45e0-a1e8-ca8a82a625f8","currency1":"EUR","currency2":"PLN","amount":10,"rate":4.2935}' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/fiat_cantor/exchange")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"currency1BalanceId\":\"c3b1d15b-3c94-4ed1-9010-0f538bbf17f7\",\"currency2BalanceId\":\"1a9ceaec-ddda-45e0-a1e8-ca8a82a625f8\",\"currency1\":\"EUR\",\"currency2\":\"PLN\",\"amount\":10,\"rate\":4.2935}"

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/fiat_cantor/exchange"

payload = "{\"currency1BalanceId\":\"c3b1d15b-3c94-4ed1-9010-0f538bbf17f7\",\"currency2BalanceId\":\"1a9ceaec-ddda-45e0-a1e8-ca8a82a625f8\",\"currency1\":\"EUR\",\"currency2\":\"PLN\",\"amount\":10,\"rate\":4.2935}"
response = requests.request("POST", url, data=payload)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "message": null,
  "amount": 42.93
}
{
  "status": "Fail",
  "errors": [
    "RATE_CHANGED"
  ]
}

Body Params

currency1BalanceId
string
required

ID portfela dla pierwszej waluty, która zostanie wymieniona.

currency2BalanceId
string
required

ID portfela drugiej waluty na którą zostanie dokonana zamiana.

currency1
string
required

Kod waluty, która zostanie wymieniona.

currency2
string
required

Kod waluty na którą zostanie wykonana zamiana.

amount
float
required

Ilość środków do wymiany.

rate
float
required

Aktualny kurs wymiany, pobrany z metody wyżej.

 

Szczegóły odpowiedzi

Klucz
Typ
Opis

amount

decimal

Ilość otrzymanych środków.

W przypadku, gdy w trakcie wymiany kurs ulegnie zmianie:

  • na korzyść: wymiana dokona się po lepszym kursie
  • na niekorzyść: otrzymany w odpowiedzi błąd:
    {"status":"Fail","errors":["RATE_CHANGED"]}
Suggest Edits

Historia

Zwraca kompletną historię dokonanych wymian w kantorze.

 
gethttps://api.bitbay.net/rest/fiat_cantor/history
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

<?php

$curl = curl_init();

$params = array (
  'page' => 1,
  'limit' => 10,
  'markets' => 
  array (
    0 => 'PLNEUR',
    1 => 'PLNUSD',
    2 => 'EURPLN',
    3 => 'EURUSD',
    4 => 'USDPLN',
    5 => 'USDEUR',
  ),
);


curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.bitbay.net/rest/fiat_cantor/history?params=" . urlencode(json_encode($params)),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
// Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
// Zobacz jak poprawnie przeprowadzić autoryzację:
// https://docs.bitbay.net/reference#autoryzacja

var request = require("request");

var options = { method: 'GET',
  url: 'https://api.bitbay.net/rest/fiat_cantor/history?params=',
  headers: { 'content-type': 'application/json' },
  qs: {"page":1,"limit":2,"markets":["PLNEUR","PLNUSD","EURPLN","EURUSD","USDPLN","USDEUR"]}
};

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

require 'uri'
require 'net/http'

url = URI("https://api.bitbay.net/rest/fiat_cantor/history?params=")
params = { :page => "1", :limit => "2", :markets => "PLNEUR" }
url.query = URI.encode_www_form( params )

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
# Wybrana metoda jest metodą prywatną i wymaga dodatkowych nagłówków do autoryzacji
# Zobacz jak poprawnie przeprowadzić autoryzację:
# https://docs.bitbay.net/reference#autoryzacja

import requests

url = "https://api.bitbay.net/rest/fiat_cantor/history"

querystring = '{"page":1,"limit":2,"markets":["PLNEUR","PLNUSD","EURPLN","EURUSD","USDPLN","USDEUR"]}'

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "status": "Ok",
  "message": null,
  "hasNextPage": true,
  "items": [
    {
      "time": 1538139352000,
      "currency1": "EUR",
      "currency2": "PLN",
      "amountGiven": 250000,
      "amountReceived": 1062900,
      "rate": 4.2516,
      "userId": "b2f415cc-c71a-406b-bcf0-bbbba4b196b9",
      "status": "finished"
    },
    {
      "time": 1534257506000,
      "currency1": "EUR",
      "currency2": "PLN",
      "amountGiven": 16897.56,
      "amountReceived": 71995.43,
      "rate": 4.2607,
      "userId": "b2f415cc-c71a-406b-bcf0-bbbba4b196b9",
      "status": "finished"
    }
  ]
}
 

JSON Array of Query Params

page
int32

Strona która ma zostać pobrana.

limit
int32

Ilość rekordów na stronę.

markets
array of strings

Tablica par walutowych dla jakich ma zostać pobrana historia.

fromTime
int32

Czas w formacie UNIX timestamp od którego mają zostać pobrane rekordy.

toTime
timestamp

Czas do którego mają zostać pobrane rekordy.

Szczegóły odpowiedzi

Klucz
Typ
Opis

hasNextPage

boolean

Czy istnieje kolejna strona wyników.

items

array

Tablica rekordów w historii.

  • time

Unix Timestamp

Czas dokonania wymiany.

  • currency1

string

Waluta która została wymieniona.

  • currency2

string

Otrzymana waluta przy zamianie.

  • amountGiven

decimal

Wymieniona ilość środków pierwszej waluty.

  • amountReceived

decimal

Otrzymana ilość środków w drugiej walucie.

  • rate

decimal

Kurs wymiany.

  • userId

UUID

ID naszego użytkownika.

  • status

string

Status wymiany.

Suggest Edits

Komunikaty o błędach

 

Wymiana

Komunikat
Opis

BALANCE_EXCEPTION

Błąd portfela.

FUNDS_NOT_SUFFICIENT

Środki na portfelu nie są wystarczające do wykonania zamiany.

EXTERNAL_API_EXCEPTION

Błąd po stronie zewnętrznego operatora.

RATE_CHANGED

Kurs uległ zmianie na niekorzyść. Równocześnie wymiana nie doszła do skutku.

INVALID_BALANCE_ID

Niepoprawny UUID jednego z portfelów na których chcemy przeprowadzić wymianę.

AMOUNT_TOO_LOW

Zbyt niska ilość waluty do wykonania zamiany.

INVALID_AMOUNT_PRECISION

Pole amount posiada zbyt dużą precyzję. Maksymalna precyzja wynosi 2 miejsca po przecinku.

Historia

Komunikat
Opis

LIMIT_TOO_BIG_EXCEPTION

Przekroczono limit rekordów do pobrania. Maksymalna ilość: 100.

NO_MARKETS_GIVEN

Tablica markets do filtrowania wyników jest pusta.

Suggest Edits

Subskrypcja

 

ConnectionClosed

Połączenia są obsługiwane przez zewnętrzne proxy: CloudFlare. Operator by zapewnić jak najwyższą jakość świadczonych usług, zmienia kilka razy dziennie politykę obsługi ruchu pomiędzy serwerami, co może skutkować nagłym zerwaniem połączenia na kanale WebSocket. Zalecamy zatem już na samym początku pisania własnej aplikacji aby uwzględnić i obsłużyć takie sytuacje.

Adres bazowy, pod którym dostępny jest interfejs:

wss://api.bitbay.net/websocket/

Aby nawiązać połączenie z publiczną subskrypcją, należy wysłać w formacie JSON: akcję subscribe-public wraz z modułem i ścieżką z której będziemy korzystać. Ten rodzaj połączenia nie wymaga żadnych dodatkowych parametrów autoryzacyjnych. Aby przerwać subskrypcję, wystarczy wysłać akcję unsubscribe na ten sam moduł i ścieżkę. Zamknięcie websocketu automatycznie przerwie subskrypcję na wszystkich kanałach.

{
 "action": "subscribe-public",
 "module": "trading",
 "path": "ticker"
}
{
 "action": "unsubscribe",
 "module": "trading",
 "path": "ticker"
}

Snapshot

Każda z przedstawionych poniżej subskrypcji publicznych, udostępnia dodatkową możliwość pobrania snapshota. Odbywa się to poprzez akcję proxy, która jest wykonywana na metodzie RESTowej typu GET z dodatkowym parametrem requestId, który stanowi unikalny identyfikator naszego zapytania.

{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"action": "proxy",
	"module": "trading",
	"path": "ticker/btc-pln",
}
{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "statusCode": 200,
  "body": {
    "status": "Ok",
    "ticker": {
      "market": {
        "code": "BTC-PLN",
        "first": {
          "currency": "BTC",
          "minOffer": "0.00003",
          "scale": 8
        },
        "second": {
          "currency": "PLN",
          "minOffer": "0.1",
          "scale": 2
        }
      },
      "time": "1530796785036",
      "highestBid": "24720.98",
      "lowestAsk": "24739.97",
      "rate": "24739.99",
      "previousRate": "24730.13"
    }
  }
}
Suggest Edits

Ping

Subskrypcja pozwala na przetestowanie aktywności połączenia, co możemy wdrożyć jako tzw heartbeat'a dla naszej aplikacji. Po wysłaniu wiadomości "ping", jeżeli tylko nasze połączenie z serwerem wciąż jest aktywne - otrzymamy "pong" w odpowiedzi.

 
{
  "action": "ping"
}
{
  "action": "pong"
}
 
Suggest Edits

Ticker

Subskrypcja informuje o ogólnej konfiguracji i statystykach rynku. Pokazuje wartość najmniejszej transakcji, jaką możemy przeprowadzić oraz liczbę miejsce po przecinku dla konkretnej waluty z wybranego rynku. Zwraca również bieżącą najlepszą ofertę kupna i sprzedaży, a także ostatnią i przedostatnią cenę transakcji.

 

W przypadku nieuwzględnienia kodu rynku, w tym przypadku: BTC-PLN, subskrypcja będzie nas informować o statystykach dla wszystkich rynków.

{
 "action": "subscribe-public",
 "module": "trading",
 "path": "ticker/{kod_rynku}"
}
{
	"market": {
		"code": "BTC-PLN",
		"first": {
			"currency": "BTC",
			"minOffer": "0.00003",
			"scale": 8
		},
		"second": {
			"currency": "PLN",
			"minOffer": "0.1",
			"scale": 2
		}
	},
	"time": "1519758072515",
	"highestBid": "14818.08",
	"lowestAsk": "15365.89",
	"rate": "15218.08",
	"previousRate": "15240.14"
}
{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"action": "proxy",
	"module": "trading",
	"path": "ticker/{kod_rynku}",
}

Szczegóły odpowiedzi:

Klucz
Typ
Opis

ticker

array

code

string

Kod rynku dla którego zostało wykonane zapytanie.

first / second

array

Tablica informacji pierwszej / drugiej waluty z pary.

  • currency

string

Kod waluty.

  • minOffer

decimal

Minimalna wartość waluty jaką można wystawić.

  • scale

integer

Ilość miejsc po przecinku obsługiwana przez daną walutę.

time

Unix Timestamp

Czas wywołania.

highestBid

decimal

Aktualnie najlepszy kurs dla ofert kupna

lowestAsk

decimal

Aktualnie najlepszy kurs dla ofert sprzedaży

rate

decimal

Kurs ostatniej transakcji.

previousRate

decimal

Kurs przedostatniej transakcji.

Suggest Edits

Statystyki rynków

Informuje o statystykach z ostatnich 24h: najwyższej i najniższej oferty oraz wartość wolumenu. Możemy je pobrać dla wybranego przez nas rynku lub dla wszystkich w przypadku pustego parametru dla kodu rynku.

 

W przypadku nieuwzględnienia kodu rynku, w tym przypadku: GAME-EUR, subskrypcja będzie nas informować o statystykach dla wszystkich rynków.

{
 "action": "subscribe-public",
 "module": "trading",
 "path": "stats/{kod_rynku}"
}
{
	"m": "GAME-EUR",
	"h": 1.99,
	"l": 1.7,
	"v": 15056.97671429
}
{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"action": "proxy",
	"module": "trading",
	"path": "stats/{kod_rynku}",
}

Szczegóły odpowiedzi

Klucz
Typ
Opis

stats

array

m

string

Kod rynku.

h

decimal

Najwyższy kurs z ostatnich 24 godzin.

l

decimal

Najniższy kurs z ostatnich 24 godzin.

v

decimal

Wolumen z ostatnich 24 godzin.

Suggest Edits

Orderbook

Subskrypcja informuje nas o aktualizacji ofert w orderbooku.

 
{
 "action": "subscribe-public",
 "module": "trading",
 "path": "orderbook/{kod_rynku}"
}
{
	"changes": [
		{
			"marketCode": "BTC-PLN",
			"entryType": "Buy",
			"rate": "15218.08",
			"action": "remove"
		},
		{
			"marketCode": "BTC-PLN",
			"entryType": "Sell",
			"rate": "15218.08",
			"action": "update",
			"state": {
				"ra": "15218.08",
				"ca": "1",
				"sa": "1",
				"pa": "1",
				"co": 1
			}
		}
	],
	"timestamp": "1519758072517"
}
{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"action": "proxy",
	"module": "trading",
	"path": "orderbook/{kod_rynku}",
}

Szczegóły odpowiedzi

Klucz
Typ
Opis

changes

array

mmarketCode

string

Kod rynku.

entryType

string

Typ transakcji: buy / sell.

rate

decimal

Kurs transakcji.

action

string

Typ zmiany: remove / update. W przypadku wartości update, zostanie zwrócona dodatkowa tablica state.

state

array

Opcjonalna tablica informacji o pozycji, jeżeli jest aktywna.

  • ra

decimal

Kurs pozycji.

  • ca

decimal

Obecna ilość kryptowaluty w pozycji.

  • sa

decimal

Początkowa ilość kryptowaluty w pozycji.

  • pa

decimal

Ilość kryptowaluty w pozycji przed ostatnią zmianą.

  • co

decimal

Ilość ofert na którą składa się pozycja.

timestamp

Unix Timestamp

Czas dla którego powyższe wartości są aktualne.

Suggest Edits

Ostatnie transakcje

Subskrypcja zwraca bieżące transakcje na wybranym rynku.

 
{
 "action": "subscribe-public",
 "module": "trading",
 "path": "transactions/{kod_rynku}"
}
{
	"transactions": [
		{
			"id": "c99475e2-f08b-402e-a767-40723b38acc8",
			"t": "1519758072352",
			"a": "0.18413273",
			"r": "15218.08",
			"ty": "Sell"
		}
	]
}
{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"action": "proxy",
	"module": "trading",
	"path": "transactions/{kod_rynku}",
}

Szczegóły odpowiedzi

Klucz
Typ
Opis

items

array

id

UUID

ID transakcji.

t

Unix Timestamp

Czas transakcji.

a

decimal

Ilość kryptowaluty w transakcji.

r

decimal

Kurs transakcji.

ty

string

Typ transakcji: buy / sell.

Suggest Edits

Subskrypcja

 

ConnectionClosed

Połączenia są obsługiwane przez zewnętrzne proxy: CloudFlare. Operator by zapewnić jak najwyższą jakość świadczonych usług, zmienia kilka razy dziennie politykę obsługi ruchu pomiędzy serwerami, co może skutkować nagłym zerwaniem połączenia na kanale WebSocket. Zalecamy zatem już na samym początku pisania własnej aplikacji aby uwzględnić i obsłużyć takie sytuacje.

Adres bazowy, pod którym dostępny jest interfejs:

wss://api.bitbay.net/websocket/

Aby rozpocząć subskrypcję prywatną, należy wysłać akcję subscribe-private wraz z modułem i ścieżką z której będziemy korzystać oraz wymagane parametry autoryzacyjne. Wszystkie dane wejściowe, jak i wyjściowe występują w formacie JSON. Zamknięcie połączenie następuje poprzez wysłanie akcji unsubscribe wraz z wysłanymi wcześniej parametrami. Wysłanie akcji automatycznie rozłączy wszystkie obecnie otwarte websockety.

Parametry z których należy skorzystać, aby prawidłowo przeprowadzić autoryzację:

Klucz
Opis

hashSignature

HMAC("SHA512", klucz_publiczny + aktualny_timestamp, klucz prywatny)

publicKey

Klucz publiczny w jawnej formie.

requestTimestamp

Aktualny czas w formacie UNIX Timestamp.

{
 "action": "subscribe-private",
 "module": "trading",
 "path": "offer",
 "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
 "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
 "requestTimestamp": 1529897422
}
{
 "action": "unsubscribe",
 "module": "trading",
 "path": "offer",
}
{
	"error": "Authentication failed"
}

Snapshot

Niektóre z przedstawionych metod, udostępniają dodatkową możliwość pobrania snapshota. W tym przypadku będziemy musieli skorzystać z akcji proxy z odniesieniem do konkretnego modułu, parametrami autoryzacyjnymi oraz dodatkowymi:

  • requestId - unikalny identyfikator naszego zapytania
  • queryString - opcjonalny - ciąg parametrów przekazywany do adresu zapytania
{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"action": "proxy",
	"module": "trading",
	"path": "/history/transactions",
	"queryString": "markets=BTC-PLN&rateFrom=23000",
	"hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
	"publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
	"requestTimestamp": 1529897422
}
{
	"requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
	"statusCode": 200,
	"body": "{\r\n  \"status\": \"Ok\",\r\n  \"totalRows\": \"31503\",\r\n  \"items\": [\r\n    {\r\n      \"id\": \"d0e4746b-288e-4869-8107-d8277fcf4b9d\",\r\n      \"market\": \"BTC-PLN\",\r\n      \"time\": \"1529670604532\",\r\n      \"amount\": \"0.01281693\",\r\n      \"rate\": \"23572.84\",\r\n      \"initializedBy\": \"Sell\",\r\n      \"wasTaker\": false,\r\n      \"userAction\": \"Buy\"\r\n    }\r\n  ],\r\n  \"query\": {\r\n    \"markets\": [ \"BTC-PLN\" ],\r\n    \"limit\": [],\r\n    \"offset\": [],\r\n    \"fromTime\": [],\r\n    \"toTime\": [],\r\n    \"initializedBy\": [],\r\n    \"rateFrom\": 2300,\r\n    \"rateTo\": [],\r\n    \"userAction\": [],\r\n    \"nextPageCursor\": [ \"start\" ]\r\n  },\r\n  \"nextPageCursor\": \"QW9ON3cvcjk2T0lDUHdWallXVTRPRFV3WWkwelpUQTVMVFEyTXpndFlqVmtOQzA1TldJeU56RmxOR1U0WWpZL0kxc2lSVlJJTFZCTVRpSXNJakUxTWpNNU5ERXhNREkyTlRFaUxDSmpZV1U0T0RVd1lpMHpaVEE1TFRRMk16Z3RZalZrTkMwNU5XSXlOekZsTkdVNFlqWWlYUT09\"\r\n}"
}
 
Suggest Edits

Aktywne oferty

Subskrypcja informuje o aktualizacji stanu aktywnych ofert na wybranym lub wszystkich rynkach.

 

W przypadku nieuwzględnienia kodu rynku, subskrypcja będzie nas informować o zmianach w ofercie na wszystkich rynkach.

{
 "action": "subscribe-private",
 "module": "trading",
 "path": "offers/{kod_rynku}",
 "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
  "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
  "requestTimestamp": 1529897422
}
{
	"entryType": "Sell",
	"rate": "15929.85",
	"action": "update",
	"offerId": "94a4f38d-8bfd-4cfe-9ade-607e84cff262",
	"market": "BTC-PLN",
	"state": {
		"market": "BTC-PLN",
		"offerType": "Sell",
		"id": "94a4f38d-8bfd-4cfe-9ade-607e84cff262",
		"currentAmount": "0.61118341",
		"lockedAmount": "0.61118341",
		"rate": "15929.85",
		"startAmount": "1",
		"time": "1521405521083",
		"postOnly": false,
		"mode": "limit",
		"receivedAmount": "6193.78"
	}
}
{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "action": "proxy",
  "module": "trading",
  "path": "history/transactions",
  "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
  "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
  "requestTimestamp": 1529897422
}

Szczegóły odpowiedzi

Klucz
Typ
Opis

entryType

array

Typ oferty: buy / sell.

rate

decimal

Kurs oferty.

action

string

Przeprowadzona akcja: update - zaktualizowanie stanu oferty, remove - oferta została usunięta.

offerId

UUID

Unikalny identyfikator oferty.

market

string

Rynek w którym znajduje się oferta.

state

array

Tablica szczegółowych informacji o ofercie.

  • market

string

Rynek w którym znajduje się oferta.

  • offerType

string

Typ oferty: buy / sell.

  • id

UUID

Unikalny identyfikator oferty.

  • currentAmount

decimal

Aktualna ilość kryptowaluty w pozycji.

  • lockedAmount

decimal

Ilość kryptowaluty zablokowana na koncie.

  • rate

decimal

Kurs oferty.

  • startAmount

decimal

Początkowa ilość kryptowaluty.

  • time

UNIX timestamp

Czas wystawienia pozycji.

  • postOnly

boolean

Czy oferta jest typu post only.

  • mode

string

Typ oferty: limit / market.

  • receivedAmount

decimal

Ilość kryptowaluty, która została już uzyskana z oferty.

 
Suggest Edits

Stan środków

Zwraca każdą aktualizację stanu środków na koncie.

 
{
 "action": "subscribe-private",
 "module": "balances",
 "path": "balance/bitbay/updatefunds",
 "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
  "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
  "requestTimestamp": 1529897422
}
{
	"id": "60536b59-3fb2-4a8a-ad51-1ef880213da7",
	"userId": "578a2540-8594-4162-8742-26de0c568443",
	"availableFunds": 58934.53,
	"totalFunds": 58934.53,
	"lockedFunds": 0,
	"currency": "PLN",
	"type": "FIAT",
	"name": "Zaa",
	"balanceEngine": "BITBAY"
}

Szczegóły odpowiedzi

Klucz
Typ
Opis

id

UUID

Identyfikator portfela.

userId

UUID

Identyfikator użytkownika.

availableFunds

decimal

Ilość dostępnych środków.

totalFunds

decimal

Całkowita ilość środków.

lockedFunds

decimal

Ilość zablokowanych środków.

currency

string

Kod waluty.

type

string

Typ waluty: crypto / fiat.

name

string

Nazwa portfela.

balanceEngine

string

Nazwa aplikacji, której dotyczy portfel: BITBAY / BITBAYPAY.

 
Suggest Edits

Historia transakcji

Informuje o wykonaniu transakcji na wybranym rynku lub na wszystkich dostępnych.

 

Aby otrzymywać wiadomości z każdego z rynków, należy wysłać subskrypcję na: history/transactions

{
 "action": "subscribe-private",
 "module": "trading",
 "path": "history/transactions/xrp-pln",
 "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
  "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
  "requestTimestamp": 1529897422
}
{
	"id": "38f29b80-f5ae-48d3-9846-723e45f4ba71",
	"market": "XRP-PLN",
	"time": "1530812763363",
	"amount": "1",
	"rate": "1.77",
	"initializedBy": "Sell",
	"wasTaker": true,
	"userAction": "Sell"
}
{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "action": "proxy",
  "module": "trading",
  "path": "history/transactions",
  "queryString": "markets=BTC-PLN&rateFrom=23000",
  "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
  "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
  "requestTimestamp": 1529897422
}

Snapshot Query Params

markets
array of strings

Tablica rynków.

rateFrom
float

Minimalna wartość kursu.

rateTo
float

Maksymalna wartość kursu.

fromTime
date-time

Czas w formacie UNIX timestamp od którego mają zostać pobrane rekordy.

toTime
date-time

Czas w formacie UNIX timestamp do którego mają zostać pobrane rekordy.

userAction
string

Rola jaką użytkownik pełnij w wykonanej transakcji: buy / sell.

nextPageCursor
string

Wskaźnik od którego mają zostać pobrane rekordy. Początkowym wskaźnikiem jest: start.

Szczegóły odpowiedzi są identyczne, jak w przypadku metody GET trading/history/transactions

Szczegóły odpowiedzi

Klucz
Typ
Opis

id

UUID

Unikalny identyfikator transakcji.

market

string

Rynek w którym została wykonana transakcja.

time

UNIX timestamp

Czas wykonania transakcji.

amount

decimal

Ilość kryptowaluty.

rate

decimal

Kurs oferty.

initializedBy

string

Ktora strona zainicjowała transakcję: buy / sell.

wasTaker

boolean

Czy użytkownik zrealizował istniejącą już ofertę innego użytkownika.

userAction

string

Typ akcji wywołanej przez użytkownika: buy /sell.

Suggest Edits

Historia operacji

 

Wybrana subskrypcja występuje jedynie w postaci snapshota i jest wykonywana przez akcję proxy.

{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "action": "proxy",
  "module": "balances",
  "path": "bitbay/history",
  "queryString": "balanceCurrencies=BTC",
  "hashSignature": "8892f16e0713c5f3e3d7e9fa26c5a5f2817b09fc48fece72ed5712ae33547c92e91e735b1818397136beea760efae61d1449a93e48ee2f80789dfa24830ef720",
  "publicKey": "12345f6f-1b1d-1234-a973-a10b1bdba1a1",
  "requestTimestamp": 1529897422
}
{
  "requestId": "78539fe0-e9b0-4e4e-8c86-70b36aa93d4f",
  "statusCode": 200,
  "body": {
    "status": "Ok",
    "items": [
      {
        "historyId": "3dd7ad49-cb5c-4cd7-828a-8a14db017355",
        "balance": {
          "id": "6d1e6463-a4b5-440e-8d69-83154afce7d0",
          "currency": "LSK",
          "type": "CRYPTO",
          "userId": "578a2540-8594-4162-8742-26de0c568443",
          "name": "Domyślny rachunek LSK"
        },
        "detailId": "8b5dcabf-5a58-4834-9cf5-00b140d3b22c",
        "time": 1521458695099,
        "type": "TRANSACTION_POST_OUTCOME",
        "value": -1435.25890556,
        "fundsBefore": {
          "total": 10000,
          "available": 8564.74109444,
          "locked": 1435.25890556
        },
        "fundsAfter": {
          "total": 8564.74109444,
          "available": 8564.74109444,
          "locked": 0
        },
        "change": {
          "total": -1435.25890556,
          "available": 0,
          "locked": -1435.25890556
        }
      }
    ],
    "hasNextPage": true,
    "fetchedRows": 20,
    "limit": 20,
    "offset": 0,
    "queryTime": 1,
    "totalTime": 5,
    "settings": {
      "balancesId": null,
      "balanceCurrencies": [
        "BTC"
      ],
      "users": [
        "578a2540-8594-4162-8742-26de0c568443"
      ],
      "getHidden": false,
      "engine": "BITBAY",
      "fromTime": 0,
      "toTime": 2229729760000,
      "absValue": false,
      "fromValue": null,
      "toValue": null,
      "sort": [
        {
          "by": "time",
          "order": "DESC"
        }
      ],
      "limit": 20,
      "offset": 0,
      "types": null
    },
    "errors": null
  }
}

Snapshot Query Params

balancesId
array of strings

Tablica identyfikatorów rachunków dla których ma zostać zwrócona historia.

balanceCurrencies
array of strings

Tablica walut dla których ma zostać zwrócona historia.

fromTime
date-time

Czas w formacie UNIX timestamp od którego mają zostać pobrane rekordy.

toTime
date-time

Czas w formacie UNIX timestamp do którego mają zostać pobrane rekordy.

fromValue
float

Minimalna ilość kryptowaluty w transakcji dla której mają zostać pobrane rekordy.

toValue
float

Maksymalna ilość kryptowaluty w transakcji dla której mają zostać pobrane rekordy.

balanceTypes
string

Typ portfela: fiat / crypto.

types
array of strings

Tablica typów operacji. Lista operacji dostępna jest poniżej.

sort
array of objects

Tablica parametrów sortowania: by - pole po którym posortować, order - rodzaj sortowania: ASC/DESC.

Szczegóły odpowiedzi są identyczne, jak w przypadku metody GET balances/BITBAY/history.