Changelog 16.01.2023
- Die Socket.io-Client-Bibliothek des Websockets wird auf die Version 4.5.4 aktualisiert.
Changelog 13.01.2022
- Dokumentation für C2C-Marktplatz (Krypto/Krypto) hinzugefügt
- Dokumentation für C2C-Marktplatz (Ext. Wallet) Marktplatz entfernt
Changelog 05.04.2021
- Die Socket.io-Client-Bibliothek des Websockets wird auf die Version 2.4.0 aktualisiert.
Changelog 03.11.2020
- Die Methode showOrderbook wurde um den Parameter "page_size" erweitert.
Changelog 30.07.2020
- Response der Methoden requestDepositAddress, showDeposit, showDeposits, showWithdrawal & showWithdrawals wurde um das Feld "recipient_purpose" erweitert.
- Die Methode createWithdrawal wurde um die Option "recipient_purpose" erweitert. Diese Option wurde in der Dokumentation der entsprechenden API-Methode als optional deklariert, weil nicht jede Währung diese Option unterstützt.
- Bitte entnehmen Sie dem Dokumentationsabschnitt Unterstützung der Option "recipient_purpose" die genaueren Auswirkungen der neuen Option "recipient_purpose" was Ein- & Auszahlungen betrifft.
Changelog 14.07.2020
Integration von SEPA-Echtzeitüberweisung in der Trading-API
- Trading API SDK V4 Erweiterung
- Die Methode showOrderbook wurde um den Filter-Parameter "sepa_option" erweitert.
- Response der Methoden showOrderDetails, showMyOrders & showMyOrderDetails wurde um das Feld "sepa_option" erweitert.
- Die Methode createOrder wurde um die Option "sepa_option" erweitert.
- Die Methode executeTrade hat für den Parameter "payment_option" einen weiteren Wert erhalten.
- Response der Methoden showMyTrades & showMyTradeDetails hat bei "payment_option" einen weiteren Wert erhalten.
- Response der Websocket-Methode add_order um die Information "sepa_option" erweitert.
Changelog 13.01.2020
- Response von showDeposit & showDeposits um das Feld "created_at" erweitert.
Changelog 17.12.2019
- Methode showPermissions hinzugefügt.
Changelog 30.09.2019
- Response von showMyTrades & showMyTradeDetails um die Felder "Depositor" und "IBAN" erweitert.
- Die Methode executeTrade wurde um den optionalen Parameter "payment_option" erweitert. Bei Orders mit der "payment_option" => 3 (Express & SEPA) kann mit diesem Parameter festgelegt werden, ob die Order per Express oder SEPA durchgeführt werden soll.
Changelog 16.09.2019
- Trading API SDK V4 - Bugfix & Erweiterung
- Die Methode showMyTrades wurde um den Filter-Parameter "only_trades_with_action_for_payment_or_transfer_required" erweitert.
- Response von showMyTrades & showMyTradeDetails um die Information "ist ein Trade als bezahlt bzw. transferiert markiert worden" erweitert.
Changelog v4
Wichtig: Die neue API Version 4 ist nicht kompatibel zu den vorherigen API-Versionen. Beachten Sie hierfür insbesondere die Punkte 1-3 und die dort genannten Verweise auf die Dokumentation der entsprechenden Methoden:
Sämtliche URLs bestehender Methoden sind um Handelspaar bzw. Währung ergänzt worden.
Einige bestehende Methoden haben zum Zwecke der Vereinheitlichung und Eindeutigkeit neu benannte Request-Parameter und Response-Werte erhalten:
- showOrderbook
- showOrderDetails
- createOrder
- showMyOrders
- showMyOrderDetails
- executeTrade
- showMyTrades
- showMyTradeDetails
- markTradeAsPaid
- markTradeAsPaymentReceived
- showOrderbookCompact
- showPublicTradeHistory
Die folgende Methode kann ab der Version v4 jederzeit, d.h. auch bei einem negativen Credit-Stand ausgeführt werden:
Einige URLs bestehender Methoden haben neue Pfade erhalten:
- deleteOrder
- showMyOrders
- showDeposit
- showDeposits
- deleteWithdrawal
- showWithdrawal
- showWithdrawalMinNetworkFee
- showWithdrawals
Viele bestehende Methoden sind für die Nutzung des Krypto-zu-Krypto (mit externem Wallet)-Marktplatzes erweitert worden:
- showOrderbook
- showOrderDetails
- createOrder
- showMyOrders
- showMyOrderDetails
- executeTrade
- showMyTrades
- showMyTradeDetails
- showRates
Neue Methoden sind für die Krypto-zu-Krypto (mit externem Wallet)-Marktplätze eingeführt worden:
Allgemeine Informationen zu dem Aufruf (API Call)
Zugangsdaten
API-Key
Der API-Key dient in Kombination mit Ihrem API-Secret zur Authentifizierung und Autorisierung gegenüber der Trading-API.
API-Secret
Ihr API-Secret ist, ähnlich wie Ihr Passwort, streng vertraulich zu behandeln, da jeder, der im Besitz Ihres API-Keys und API-Secrets ist, jede für den jeweiligen API-Key erlaubte API-Funktionalität nutzen kann.
Sofern Anhaltspunkte dafür bestehen, dass einer Ihrer API-Secrets kompromittiert wurde, sollten Sie Ihren API-Key (bzw. Ihre API-Keys) umgehend sperren. Dazu erhalten Sie von uns nach jedem API-Request, dem mindestens eine 15-minütige Pause ohne API-Request vorherging, per E-Mail einen Link zur Sperrung Ihres API-Keys, wobei immer nur der zuletzt versandte Link gültig ist. Alternativ können Sie Ihre API-Keys auch im Login-Bereich in den Einstellungen Ihres Accounts unter 'mein Bitcoin.de' -> 'Trading-API' sperren.
Sie haben die Möglichkeit diese Benachrichtigungen zu deaktivieren. Bitte Beachten Sie, dass durch das Abstellen der E-Mail-Benachrichtigungen eine Sicherheitsfunktionalität deaktiviert wird. Sollte ein Unberechtigter Zugriff auf die API-Daten oder ein Script, das diese Daten nutzt, bekommen, werden Sie nicht mehr über diese Zugriffe per E-Mail informiert.
Zugriffsbeschränkung
In gewissen Fällen ist es sinnvoll den Zugriff eines API-Keys nur für bestimmte API-Funktionalitäten zu erlauben. Möchten Sie beispielsweise nur das Orderbook abfragen, sollten Sie den Zugriff auf direkte handelsbezogene Funktionen wie das Einstellen von eigenen Angeboten oder das Kaufen/Verkaufen von eingestellten Angeboten untersagen. Ebenfalls ist eine Zugriffsbeschränkung sinnvoll, wenn Sie mit Hilfe einer Drittsoftware (z.B. einer Smartphone-APP) auf die Trading-API zugreifen und in diesem Fall aber nur Ihre eigenen Kontoinformationen auslesen möchten. Sie sollten dem entsprechenden API-Key nur so viel API-Berechtigungen wie nötig gewähren, da andernfalls die Drittsoftware in der Lage wäre, den kompletten API-Funktionsumfang nutzen zu können.
Zusätzlich können Sie den Zugriff für den entsprechenden API-Key auf bestimmte IP-Adressen (v4) beschränken, indem Sie entweder vollständige IP-Adressen (z.B. 206.30.221.95) eintragen oder mit Hilfe von Platzhaltern (*, z.B. 206.30.221.* oder 206.30.*.*) die Freigabe größerer IP-Adressräume gewähren. Erfolgt ein Zugriffsversuch außerhalb dieser Adressbeschränkung wird der Zugriff mit einem HTTP-Statuscode 403 (Forbidden) sowie dem Error-Code 94 beantwortet.
Verschlüsselung
Jeder Request benötigt die folgenden Header:
- X-API-KEY
- X-API-NONCE
- X-API-SIGNATURE
X-API-KEY
Entspricht Ihrem API-Key.
X-API-NONCE
Ein Integer-Wert der bei jedem Request größer sein muss als beim vorherigen Request. Üblicherweise wird hierfür ein Unix-Timestamp verwendet (Vorsicht bei mehreren Abfragen innerhalb derselben Sekunde!).
X-API-SIGNATURE
Die Signatur repräsentiert eine HMAC-SHA256 verschlüsselte Nachricht, welche die HTTP-Methode, die aufzurufende URI, Ihren API-Key, das Nonce, als auch mögliche POST-Parameter beinhaltet und mit Ihrem API-Secret verschlüsselt wird. Es wird die hexadezimale Repräsentation des HMACs in Kleinschreibung benötigt!
Zum Erhalt einer validen Signatur ist es wichtig, dass Sie die Berechnung exakt wie im folgenden PHP-Codebeispiel vornehmen:
$post_parameters = array('type' => 'buy', 'amount' => 5.3);
$concatted_post_parameters = '';
$http_method = 'POST';
if (0 < count($post_parameters))
{
ksort($post_parameters); // Sort parameters by key ascending
// Generate URL-encoded query string
$concatted_post_parameters = http_build_query($post_parameters, '', '&');
}
$hmac_data = implode('#', array($http_method, $uri, $api_key, $nonce, md5($concatted_post_parameters)));
$hmac = hash_hmac('sha256', $hmac_data, $secret);
Signatur-POST-Beispiel
Es soll die API-Funktion createTrade mit den folgenden Ausgangswerten durchgeführt werden:
POST-Parameter:
{
'type' : 'buy',
'max_amount' : 5.3,
'price' : 255.50
}
api_key: 'MY_API_KEY' // Entspricht dem eigenen API-Key
nonce: 1234567 // Das für den aktuellen Request verwendete Nonce
api_secret: 'MY_API_SECRET' // Entspricht dem eigenen API-Secret
http_method: 'POST'
uri: 'https://api.bitcoin.de/v4/orders'
Schritt 1: Aufsteigendes Sortieren der POST-Parameter anhand ihres Namens¹
{
'max_amount' : 5.3,
'price' : 255.50,
'type' : 'buy'
}
Schritt 2: Einen validen URL-encoded Query-String aus den POST-Parametern generieren¹
url_encoded_query_string = 'max_amount=5.3&price=255.5&type=buy'
Schritt 3: md5-Hash über den in Schritt 2 erstellten Query-String der POST-Parameter bilden
post_parameter_md5_hashed_url_encoded_query_string = md5(url_encoded_query_string) // Es wird der MD5-Hash in hexadezimaler Form benötigt
=> '5f4aece1d75c7adfc5ef346216e9bb11'
Schritt 4: Konkatinieren der HMAC-Eingabedaten
hmac_data = http_method+'#'+uri+'#'+api_key+'#'+nonce+'#'+post_parameter_md5_hashed_url_encoded_query_string
=> 'POST#https://api.bitcoin.de/v4/orders#MY_API_KEY#1234567#5f4aece1d75c7adfc5ef346216e9bb11'
Schritt 5: Bilden des eigentlichen sha256-HMACs
hmac = HMAC('sha256', hmac_data, api_secret)
=> ''
¹ Sofern keine POST-Parameter vorhanden sind, weil eine API-Methode einen GET- oder DELETE-Request vorschreibt, entfallen die Schritte 1 und 2. Innerhalb von Schritt 3 wird dann lediglich der md5-Hash aus einem Leerstring gebildet. Somit bleibt der md5-Hash innerhalb der Variable post_parameter_md5_hashed_url_encoded_query_string bei GET- und DELETE-Requests konstant. Als Konsequenz kann bei GET- und DELETE-Requests der md5-Hash d41d8cd98f00b204e9800998ecf8427e für Variable post_parameter_md5_hashed_url_encoded_query_string verwendet werden.
Signatur-GET-Beispiel
Es soll die API-Funktion showOrderbook mit den folgenden Ausgangswerten durchgeführt werden:
GET-Parameter:
{
'type' : 'buy',
'amount' : 5.3,
'price' : 255.50
}
POST-Parameter:
{
}
api_key: 'MY_API_KEY' // Entspricht dem eigenen API-Key
nonce: 1234567 // Das für den aktuellen Request verwendete Nonce
api_secret: 'MY_API_SECRET' // Entspricht dem eigenen API-Secret
http_method: 'GET'
uri: 'https://api.bitcoin.de/v4/orders'
Schritt 1: einen validen URL-encoded Query-String aus den GET-Parametern generieren
get_parameter_url_encoded_query_string = 'type=buy&amount=5.3&price=255.5' // Die Reihenfolge der GET-Parameter ist irrelevant
Schritt 2: Erweitern der URI um GET-Parameter
uri = uri+'?'+get_parameter_url_encoded_query_string
=> 'https://api.bitcoin.de/v4/orders?type=buy&amount=5.3&price=255.5'
Schritt 3: md5-Hash der POST-Parameter für die HMAC-Daten erstellen¹
post_parameter_md5_hashed_url_encoded_query_string = md5('');
=> 'd41d8cd98f00b204e9800998ecf8427e'
Schritt 4: Konkatinieren der HMAC-Eingabedaten
hmac_data = http_method+'#'+uri+'#'+api_key+'#'+nonce+'#'+post_parameter_md5_hashed_url_encoded_query_string
=> 'GET#https://api.bitcoin.de/v4/orders?type=buy&amount=5.3&price=255.5#MY_API_KEY#1234567#d41d8cd98f00b204e9800998ecf8427e'
Schritt 5: Bilden des eigentlichen sha256-HMACs
hmac = HMAC('sha256', hmac_data, api_secret)
=> ''
Wichtig: Der zum Berechnen des HMACs genutzte API-Secret ist ähnlich wie Ihr Passwort streng vertraulich zu behandeln.
Credits
Alle API-Keys eines Bitcoin.de-Accounts teilen sich ein Credit-Kontingent, welches abhängig vom jeweiligen Trust-Level des Accounts auf ein bestimmtes Maximum gedeckelt ist.
Die API-Aufrufe kosten Credits, die sofort vom aktuellen Kontingent abgezogen werden und dieses auch ins Negative laufen lassen können. Befindet sich der User vor einem Aufruf bereits im Negativen, so verdoppeln sich die Kosten eines Aufrufs.
Das Credit-Kontingent wird pro Sekunde, in der keine API-Abfrage gestellt wird, um einen Credit erhöht solange das Credit-Maximum noch nicht erreicht wurde.
Sofern nicht mehr genügend Credits für eine API-Abfrage zur Verfügung stehen oder ein negatives Credit-Kontingent erreicht wurde, erhalten Sie im Response als HTTP-Statuscode 429 (Too many requests) und einen Header namens Retry-After, der die Sekundenanzahl beinhaltet, nach der die aktuelle API-Abfrage (auf die gewünschte API-Funktion) aufgrund ausreichender Credits wieder durchgeführt werden kann.
Ausnahme (neu ab API-Version v4): Die Methode deleteOrder kann jederzeit, d.h. auch bei einem negativen Credit-Stand ausgeführt werden. Es wird also nie ein HTTP-Statuscode 429 zurückgegeben. Die Credits werden für den Aufruf von deleteOrder selbstverständlich immer berechnet - bei einem bereits negativen Credit-Stand doppelt (vgl. Absatz oben).
Sollten Sie trotz bereits negativem Credit-Kontingent und daraus resultierenden *429 (Too many requests)* Statuscodes weitere API-Requests stellen (außer deleteOrder - vgl. vorherigen Absatz), so behalten wir uns vor Ihre API-Zugänge temporär zu sperren, wodurch weitere API-Requests mit einem HTTP-Status *403 (Forbidden)* beantwortet werden würden.
Credit-Übersicht
Aufruf | Anzahl Credits |
---|---|
showOrderbook | 2 |
createOrder | 1 |
showOrderDetails | 2 |
deleteOrder | 2 |
deleteOrder (instant*) | 10 |
showMyOrders | 2 |
showMyOrderDetails | 2 |
showOrderbookCompact | 3 |
executeTrade | 1 |
showMyTradeDetails | 3 |
markTradeAsPaid | 1 |
showMyTrades | 3 |
markTradeAsPaymentReceived | 1 |
addTradeRating | 1 |
markCoinsAsTransferred | 1 |
showPublicTradeHistory | 3 |
markCoinsAsReceived | 1 |
showAccountInfo | 2 |
showRates | 3 |
showAccountLedger | 3 |
showPermissions | 2 |
deleteWithdrawal | 2 |
showWithdrawal | 2 |
showWithdrawals | 2 |
createWithdrawal | 2 |
showWithdrawalMinNetworkFee | 2 |
showOutgoingAddresses | 2 |
requestDepositAddress | 2 |
showDeposit | 2 |
showDeposits | 2 |
*Orders die nicht älter als 60 Sekunden sind.
Allgemeine Informationen zu der Rückgabe (API Response)
General Response Format
JSON
General HTTP Response Codes
Code | Message |
---|---|
200 | GET-/ DELETE-Request wurde erfolgreich durchgeführt |
201 | POST-Request wurde erfolgreich durchgeführt und die neue Ressource angelegt (z.B. Trade) |
400 | Bad Request |
403 | Forbidden |
404 | Angefragte Entität konnte nicht gefunden werden |
422 | Anfrage konnte nicht erfolgreich durchgeführt werden. Für weitere Gründe bitte die im Response aufgeführten Fehler im Array-Eintrag "errors" untersuchen. |
429 | Too many requests |
Hinweis: Sofern ein Response den Statuscode 200 oder 201 trägt, konnte Ihr korrespondierender Request ohne Fehler abgearbeitet werden. Sollte der Statuscode abweichen, so finden Sie weiterführende Informationen im Eintrag "errors" im Response.
Location-Header im Response
Sofern ein Response den Location-Header beinhaltet, kann der im Header hinterlegte URI verwendet werden, um nähere Infos zur verknüpften Ressource (z.B. eine Order oder einen Trade) zu erhalten.
Globale Werte im Response
Name | Required | Type | Value | Notes |
---|---|---|---|---|
errors | true | array | [{"message":"abc","code":123, "field" => "field_abs"}] |
Liste mit Error-Meldungen und dazugehörigen Error-Codes. |
credits | true | integer | -- | Anzahl aktuell verbleibender Credits |
maintenance | false | array | array | Infos bzgl. Wartungsarbeiten (s. Tabelle "Maintenance-Details" |
nonce | false | integer | -- | Sofern der "Error-Code 4 (Invalid nonce)" auftritt, wird das letzte gültige Nonce in diesem Feld ausgegeben |
Error-Details
Name | Required | Type | Value | Notes |
---|---|---|---|---|
message | true | string | -- | Infotext |
code | true | string | -- | Fehlercode |
field | false | string | -- | Feld, auf den sich der Fehler bezieht. |
Auflistung der Error-Codes
Request
Order
Trade
Withdrawal
Deposit
Crypto (Marketplace Wallet) - to - Crypto (External Customer Wallet)
Response mit Fehlerbeispiel
{
"errors": [
{
"message": "Order not found",
"code": 50,
"field": "order_id"
}
]
}
Maintenance-Details
Name | Required | Type | Value | Notes |
---|---|---|---|---|
message | true | string | -- | Infotext |
start | true | string | -- | Start der Arbeiten (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
end | true | string | -- | Voraussichtliches Ende der Arbeiten (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
Bankenländerliste
Ländercode ISO 3166-2 | Land |
---|---|
AT | Österreich |
BE | Belgien |
BG | Bulgarien |
CH | Schweiz |
CY | Zypern |
CZ | Tschechische Republik |
DE | Deutschland |
DK | Dänemark |
EE | Estland |
ES | Spanien |
FI | Finnland |
FR | Frankreich |
GB | Großbritannien |
GR | Griechenland |
HR | Kroatien |
HU | Ungarn |
IE | Irland |
IS | Island |
IT | Italien |
LI | Liechtenstein |
LT | Litauen |
LU | Luxemburg |
LV | Lettland |
MT | Malta |
MQ | Martinique |
NL | Niederlande |
NO | Norwegen |
PL | Polen |
PT | Portugal |
RO | Rumänien |
SE | Schweden |
SI | Slowenien |
SK | Slowakei |
Handelspaare P2P-Marktplatz (Krypto/Euro)
Handelspaar-Kürzel | Bezeichnung |
---|---|
btceur | BTC / EUR |
bcheur | BCH / EUR |
btgeur | BTG / EUR |
etheur | ETH / EUR |
ltceur | LTC / EUR |
usdteur | USDT / EUR |
xrpeur | XRP / EUR |
dogeeur | DOGE / EUR |
soleur | SOL / EUR |
trxeur | TRX / EUR |
Handelspaare C2C-Marktplatz (Krypto/Krypto)
Handelspaar-Kürzel | Bezeichnung |
---|---|
btcusdt | BTC / USDT |
ethusdt | ETH / USDT |
ethbtc | ETH / BTC |
xrpbtc | XRP / BTC |
dogebtc | DOGE / BTC |
Kryptowährungen
Kryptowährungen-Kürzel | Bezeichnung |
---|---|
btc | Bitcoin |
bch | "Bitcoin Cash" |
btg | "Bitcoin Gold" |
eth | Ether |
ltc | Litecoin |
xrp | Ripple |
doge | Dogecoin |
sol | Solana |
trx | Tron |
usdt | Tether - ETH-Chain |
Unterstützung der Option "recipient_purpose"
Kryptowährungen-Kürzel | Einzahlungen * | Auszahlungen | Währungsspezifische Bezeichnung |
---|---|---|---|
btc | Nicht unterstützt | Nicht unterstützt | --- |
bch | Nicht unterstützt | Nicht unterstützt | --- |
btg | Nicht unterstützt | Nicht unterstützt | --- |
eth | Nicht unterstützt | Nicht unterstützt | --- |
ltc | Nicht unterstützt | Nicht unterstützt | --- |
xrp | Pflicht | Optional | Destination-Tag |
doge | Nicht unterstützt | Nicht unterstützt | --- |
sol | Nicht unterstützt | Nicht unterstützt | --- |
trx | Nicht unterstützt | Nicht unterstützt | --- |
usdt | Nicht unterstützt | Nicht unterstützt | --- |
Orders
Orders showOrderbookOrders - showOrderbook
Durchsuchen des Orderbooks nach passenden Angeboten
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type | String |
|
Angebots-Typ. |
|
amount_currency_to_trade OPTIONAL
|
Float |
Menge der Coins |
||
price OPTIONAL
|
Float |
Preis pro Coin. |
||
order_requirements_fullfilled OPTIONAL
|
Integer |
|
0 |
Nur Angebote anzeigen, deren Anforderungen ich erfülle (bspw. Legitimationsstatus, Trust-Level, Sitz der Bank, Zahlungsart). |
only_kyc_full OPTIONAL
|
Integer |
|
0 |
Nur Angebote von vollständig identifizierten Usern anzeigen. |
only_express_orders OPTIONAL
|
Integer |
|
0 |
Nur Angebote anzeigen, die über Express-Handel gehandelt werden können. |
payment_option OPTIONAL
|
Integer |
|
Ist der Parameter 'payment_option' gesetzt, so wird der Parameter "only_express_orders" bei der Abfrage ignoriert. |
|
sepa_option OPTIONAL
|
Integer |
|
0 |
Diese Option ist nur verfügbar, wenn |
only_same_bankgroup OPTIONAL
|
Integer |
|
0 |
Nur Angebote von Handelspartnern anzeigen, die ein Bankkonto bei derselben Bankgruppe (BIC-Nummernkreis) wie ich haben. |
only_same_bic OPTIONAL
|
Integer |
|
0 |
Nur Angebote von Handelspartnern anzeigen, die ein Bankkonto bei derselben Bank wie ich haben. |
seat_of_bank OPTIONAL
|
Array |
|
Alle möglichen Länder aus der Tabelle Bankenländerliste |
Nur Angebote mit bestimmtem Sitz der Bank anzeigen. (ISO 3166-2). s. Tabelle Bankenländerliste |
page_size OPTIONAL
|
String |
|
small |
Anzahl der Angebote, die geladen werden. |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
orders | Array |
Gefundene Angebote |
Orders
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
ID des Angebots |
|
is_external_wallet_order | Boolean |
Zeigt an ob sich die Order auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
type | String |
|
Typ des Angebots |
max_amount_currency_to_trade | Float |
Maximal handelbare Coin-Menge |
|
min_amount_currency_to_trade | Float |
Mindestens handelbare Coin-Menge |
|
price | Float |
Preis pro Coin |
|
max_volume_currency_to_pay | Float |
Max. Volumen des Angebots |
|
min_volume_currency_to_pay | Float |
Min. Volumen des Angebots |
|
order_requirements_fullfilled | Boolean |
Zeigt an, ob das Angebot bedient werden könnte oder nicht (Trust-Level, KYC-Full, Sitz der Bank etc.). |
|
sepa_option | Integer |
|
Optionen zur Abwicklung via SEPA |
trading_partner_information | Array |
Infos zum User des Angebots (s. Tabelle Trading Partner Information) |
|
order_requirements | Array |
Voraussetzungen zum Bedienen des Angebots (s. Tabelle Order Requirements) |
Trading-Partner-Information (beziehen sich auf den Ersteller des Angebots)
Name | Type | Value | Notes |
---|---|---|---|
username | String |
User-Name |
|
is_kyc_full | Boolean |
Vollständig identifizierter User |
|
trust_level | String |
|
Trust-Level |
bank_name | String |
Name der Bank |
|
bic | String |
BIC der Bank |
|
rating | Integer |
Prozentualer Anteil an positiven Bewertungen durch die Handelspartner |
|
amount_trades | Integer |
Anzahl bereits getätigter Trades |
Order Requirements
Name | Type | Value | Notes |
---|---|---|---|
min_trust_level | String |
|
Mindest-Trust-Level des Handelspartners |
only_kyc_full OPTIONAL
|
Boolean |
Handelspartner muss vollständig identifiziert sein |
|
seat_of_bank OPTIONAL
|
Array |
|
Erlaubte Länder, in denen die Bank des Handelspartners ihren Sitz haben darf (ISO 3166-2) s. Tabelle Bankenländerliste |
payment_option OPTIONAL
|
Integer |
|
1 => Express-Only |
Success-Response:
HTTP/1.1 200 OK
{
"orders": [{
"order_id": "A1B2D3",
"is_external_wallet_order":false,
"trading_pair": "btceur",
"type": "buy",
"max_amount":0."max_amount_currency_to_trade":0.5,
"min_amount":0."min_amount_currency_to_trade":0.1,
"price":230.55,
"max_volume":115."max_volume_currency_to_pay":115.28,
"min_volume":23."min_volume_currency_to_pay":23.06,
"order_requirements_fullfilled":true,
"sepa_option":0,
"trading_partner_information":{
"username":"bla",
"is_kyc_full":true,
"trust_level":"gold",
"bank_name":"Sparkasse",
"bic":"HASPDEHHXXX",
"seat_of_bank":"DE",
"rating": 99,
"amount_trades": 52
},
"order_requirements":{
"min_trust_level":"gold",
"only_kyc_full":true,
"seat_of_bank":[
"DE",
"NL"
],
"payment_option":1
}
}],
"errors":[
],
"credits":12
}
Error
Http-Status 422
Code | Note |
---|---|
57 | no bank account |
52 | Invalid order type |
107 | Flag sepa_instant not allowed for order-type "buy" |
108 | Flag sepa_instant is only allowed in combination with payment_option "2" or "3" |
114 | Futurum-Trading outside of business hours is not possible |
Durchsuchen des Orderbooks nach passenden Angeboten
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare - Krypto-zu-Krypto Marktplatz |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type | String |
|
Angebots-Typ. |
|
amount_currency_to_trade OPTIONAL
|
Float |
Menge der Coins |
||
price OPTIONAL
|
Float |
Preis pro Coin. |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
orders | Array |
Gefundene Angebote |
Orders
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
ID des Angebots |
|
is_external_wallet_order | Boolean |
Zeigt an ob sich die Order auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
type | String |
|
Typ des Angebots |
max_amount_currency_to_trade | Float |
Maximal handelbare Coin-Menge |
|
min_amount_currency_to_trade | Float |
Mindestens handelbare Coin-Menge |
|
price | Float |
Preis pro Coin |
|
max_volume_currency_to_pay | Float |
Max. Volumen des Angebots |
|
min_volume_currency_to_pay | Float |
Min. Volumen des Angebots |
|
order_requirements_fullfilled | Boolean |
Zeigt an, ob das Angebot bedient werden könnte oder nicht (Trust-Level). |
|
trading_partner_information | Array |
Infos zum User des Angebots (s. Tabelle Trading Partner Information) |
Trading-Partner-Information (beziehen sich auf den Ersteller des Angebots)
Name | Type | Value | Notes |
---|---|---|---|
username | String |
User-Name |
|
is_kyc_full | Boolean |
Vollständig identifizierter User |
|
trust_level | String |
|
Trust-Level |
rating | Integer |
Prozentualer Anteil an positiven Bewertungen durch die Handelspartner |
|
amount_trades | Integer |
Anzahl bereits getätigter Trades |
Success-Response:
HTTP/1.1 200 OK
{
"orders":{
"order_id":"ETHBTC-75S6ZF",
"is_external_wallet_order":true,
"trading_pair":"ethbtc",
"type":"buy",
"max_amount_currency_to_trade":"10.00000000",
"min_amount_currency_to_trade":"9.00000000",
"price":"0.01900000",
"max_volume_currency_to_pay":"0.19",
"min_volume_currency_to_pay":"0.171",
"order_requirements_fullfilled":true,
"trading_partner_information":{
"username":"maxM",
"is_kyc_full":true,
"trust_level":"bronze",
"amount_trades":72,
"rating":99
},
},
"errors":[
],
"credits":12
}
Error
Http-Status 422
Orders - showOrderDetails
Details zu einem Angebot abrufen
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
|
order_id | String |
ID des abzufragenden Angebots |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
order | Array |
Gefundenes Angebot |
Order
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
ID des Angebots |
|
is_external_wallet_order | Boolean |
Zeigt an ob sich die Order auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
trading_pair | string |
Handelspaar (s. Tabelle Handelspaare) |
|
type | String |
|
Typ des Angebots |
max_amount_currency_to_trade | Float |
Maximal handelbare Coin-Menge |
|
min_amount_currency_to_trade | Float |
Mindestens handelbare Coin-Menge |
|
price | Float |
Preis pro Coin |
|
max_volume_currency_to_pay | Float |
Max. Volumen des Angebots |
|
min_volume_currency_to_pay | Float |
Min. Volumen des Angebots |
|
order_requirements_fullfilled | Boolean |
Zeigt an, ob das Angebot bedient werden könnte oder nicht (Trust-Level, KYC-Full, Sitz der Bank etc.). |
|
sepa_option | Integer |
|
Zeigt an, welche SEPA-Optionen für das Angebot vorliegen (nur in Kombination mit der payment_option "2" oder "3" möglich, s. Tabelle Order Requirements). |
trading_partner_information | Array |
Infos zum User des Angebots (s. Tabelle Trading Partner Information) |
|
order_requirements | Array |
Voraussetzungen zum Bedienen des Angebots (s. Tabelle Order Requirements) |
Trading-Partner-Information (beziehen sich auf den Ersteller des Angebots)
Name | Type | Value | Notes |
---|---|---|---|
username | String |
User-Name |
|
is_kyc_full | Boolean |
Vollständig identifizierter User |
|
trust_level | String |
|
Trust-Level |
bank_name | String |
Name der Bank |
|
bic | String |
BIC der Bank |
|
rating | Integer |
Prozentualer Anteil an positiven Bewertungen durch die Handelspartner |
|
amount_trades | Integer |
Anzahl bereits getätigter Trades |
Order Requirements
Name | Type | Value | Notes |
---|---|---|---|
min_trust_level | String |
|
Mindest-Trust-Level des Handelspartners |
only_kyc_full | Boolean |
Handelspartner muss vollständig identifiziert sein |
|
seat_of_bank | Array |
|
Erlaubte Länder, in denen die Bank des Handelspartners ihren Sitz haben darf (ISO 3166-2) s. Tabelle Bankenländerliste |
payment_option | Integer |
|
1 => Express-Only |
Success-Response:
HTTP/1.1 200 OK
{
"order":{
"order_id": "A1B2D3",
"trading_pair":"btceur",
"type": "buy",
"max_amount":0.5,
"min_amount":0.1,
"price":230.55,
"max_volume":115.28,
"min_volume":23.06,
"order_requirements":{
"min_trust_level":"gold",
"only_kyc_full":true,
"seat_of_bank":[
"DE",
"NL"
],
"payment_option":1,
}
"trading_partner_information":{
"username":"mustermann",
"is_kyc_full":true,
"trust_level":"gold",
"bank_name":"Sparkasse",
"bic":"HASPDEHHXXX",
"seat_of_bank":"DE",
"rating": 99,
"amount_trades": 52
},
"order_requirements_fullfilled":true,
"order_id":"82NW88",
"trading_pair":"btceur",
"is_external_wallet_order":false,
"type":"sell",
"max_amount_currency_to_trade":"0.015",
"min_amount_currency_to_trade":"0.015",
"price":8660,
"max_volume_currency_to_pay":129.9,
"min_volume_currency_to_pay":129.9,
"order_requirements":{
"min_trust_level":"bronze",
"only_kyc_full":true,
"seat_of_bank":[ "AT", "DE" ],
"payment_option":3
},
"trading_partner_information":{
"username":"MusterMann",
"is_kyc_full":true,
"trust_level":"gold",
"bank_name":"Fidor Bank",
"bic":"FDDODEMMXXX",
"seat_of_bank":"DE",
"amount_trades":90,
"rating":97
},
"order_requirements_fullfilled":true,
"sepa_option":0
},
"errors":[
],
"credits":12
"errors":[],
"credits":62
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Details zu einem Angebot abrufen
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare - Krypto-zu-Krypto Marktplatz |
|
order_id | String |
ID des abzufragenden Angebots |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
order | Array |
Gefundenes Angebot |
Order
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
ID des Angebots |
|
is_external_wallet_order | Boolean |
Zeigt an ob sich die Order auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
trading_pair | string |
Handelspaar (s. Tabelle Handelspaare) |
|
type | String |
|
Typ des Angebots |
max_amount_currency_to_trade | Float |
Maximal handelbare Coin-Menge |
|
min_amount_currency_to_trade | Float |
Mindestens handelbare Coin-Menge |
|
price | Float |
Preis pro Coin |
|
max_volume_currency_to_pay | Float |
Max. Volumen des Angebots |
|
min_volume_currency_to_pay | Float |
Min. Volumen des Angebots |
|
order_requirements_fullfilled | Boolean |
Zeigt an, ob das Angebot bedient werden könnte oder nicht (Trust-Level). |
|
trading_partner_information | Array |
Infos zum User des Angebots (s. Tabelle Trading Partner Information) |
Trading-Partner-Information (beziehen sich auf den Ersteller des Angebots)
Name | Type | Value | Notes |
---|---|---|---|
username | String |
User-Name |
|
is_kyc_full | Boolean |
Vollständig identifizierter User |
|
trust_level | String |
|
Trust-Level |
rating | Integer |
Prozentualer Anteil an positiven Bewertungen durch die Handelspartner |
|
amount_trades | Integer |
Anzahl bereits getätigter Trades |
Success-Response:
HTTP/1.1 200 OK
{
"order":{
"order_id":"ETHBTC-YTR3N3",
"trading_pair":"ethbtc",
"is_external_wallet_order":true,
"type":"sell",
"max_amount_currency_to_trade":"13",
"min_amount_currency_to_trade":"6.5",
"price":"0.012",
"max_volume_currency_to_pay":"0.156",
"min_volume_currency_to_pay":"0.078",
"order_requirements_fullfilled":true,
"trading_partner_information":{
"username":"Max",
"is_kyc_full":true,
"trust_level":"bronze",
"amount_trades":72,
"rating":67
},
},
"errors":[],
"credits":198
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Orders - createOrder
Anlegen einer neuen Order
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | string |
|
Handelspaar (s. Tabelle Handelspaare) |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type | String |
|
||
max_amount_currency_to_trade | Float |
Maximale Menge der zu handelnden Coins |
||
price | Float |
Preis pro Coin |
||
min_amount_currency_to_trade OPTIONAL
|
Float |
max_amount_currency_to_trade/2 |
Mindest-Menge der zu handelnden Coins |
|
end_datetime OPTIONAL
|
String |
akt. Datum + 2 Tage |
Enddatum (mindestens 2 Tage in der Zukunft) des Angebots. |
|
new_order_for_remaining_amount OPTIONAL
|
Integer |
0 |
Neues Angebot mit Restmenge anlegen, wenn nur eine Teilmenge aus dem Angebot bedient wurde. |
|
min_trust_level OPTIONAL
|
String |
|
Default-Einstellung im User-Profil |
Mindest-Trust-Level des Handelspartners |
only_kyc_full OPTIONAL
|
Integer |
0 |
Handelspartner muss vollständig identifiziert sein. |
|
payment_option OPTIONAL
|
Integer |
|
1 |
Diese Option wirkt sich nur bei |
sepa_option OPTIONAL
|
Integer |
|
0 |
Diese Option ist nur verfügbar, wenn |
seat_of_bank OPTIONAL
|
Array |
|
Alle möglichen Länder aus der Tabelle Bankenländerliste |
Erlaubte Länder, in denen die Bank des Handelspartners ihren Sitz haben darf (ISO 3166-2) |
Response
Success 201
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
Die ID des angelegten Angebots. |
Location-Header
Sofern die Details zu der neu angelegten Order abgerufen werden sollen, kann der hier im Location-Header enthaltene URI verwendet werden, der auf die API-Methode "showMyOrderDetails" der konkreten Order zeigt.
https://api.bitcoin.de/v4/:trading_pairs/orders/:order_id
Success-Response:
HTTP/1.1 201 Created
{
"order_id": "A1234BC",
"errors": [],
"credits": 8
}
Error
Http-Status 422
Code | Note |
---|---|
29 | Express trade is temporary not available. |
34 | Invalid trading_pair |
52 | Invalid order type |
53 | payment_option not allowed for order-type "buy" |
55 | Trading on the marketplace is currently suspended. |
59 | Order not possible due to §7 of Supplementary agreement for the implementation of accelerated transaction processing functions. |
71 | Express trade not allowed |
107 | Flag sepa_instant not allowed for order-type "buy" |
108 | Flag sepa_instant is only allowed in combination with payment_option "2" or "3" |
109 | SEPA-instant order is not possible |
Anlegen einer neuen Order
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | string |
|
Handelspaar (s. Tabelle Handelspaare) |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type | String |
|
||
max_amount_currency_to_trade | Float |
Maximale Menge der zu handelnden Coins |
||
price | Float |
Preis pro Coin |
||
min_amount_currency_to_trade OPTIONAL
|
Float |
max_amount_currency_to_trade/2 |
Mindest-Menge der zu handelnden Coins |
|
end_datetime OPTIONAL
|
String |
akt. Datum + 2 Tage |
Enddatum (mindestens 2 Tage in der Zukunft) des Angebots. |
|
new_order_for_remaining_amount OPTIONAL
|
Integer |
0 |
Neues Angebot mit Restmenge anlegen, wenn nur eine Teilmenge aus dem Angebot bedient wurde. |
Response
Success 201
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
Die ID des angelegten Angebots |
Location-Header
Sofern die Details zu der neu angelegten Order abgerufen werden sollen, kann der hier im Location-Header enthaltene URI verwendet werden, der auf die API-Methode "showMyOrderDetails" der konkreten Order zeigt.
https://api.bitcoin.de/v4/:trading_pair/orders/:order_id
Success-Response:
HTTP/1.1 201 Created
{
"order_id": "ETHBTC-A1234BC",
"errors": [],
"credits": 8
}
Error
Http-Status 422
Code | Note |
---|---|
96 | Address is not valid |
52 | Invalid order type |
55 | Trading on the marketplace is currently suspended. |
Orders - deleteOrder
Löschen einer Order
Credits: | 2 |
Credits (instant*): | 10 |
*Orders die nicht älter als 60 Sekunden sind. |
Bitte beachten Sie (neu ab API-Version v4): Die Methode deleteOrder kann jederzeit, d.h. auch bei einem negativen Credit-Stand ausgeführt werden. Es wird also nie ein HTTP-Statuscode 429 zurückgegeben.
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
|
Handelspaar (s. Tabelle Handelspaare) |
order_id | String |
ID des Angebots |
Response
Success-Response:
HTTP/1.1 200 OK
{
"errors": [],
"credits": 5
}
Error
Http-Status 403
Code | Note |
---|---|
54 | Cancellation not allowed anymore |
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Http-Status 422
Code | Note |
---|---|
55 | Trading on the marketplace is currently suspended. |
Orders - showMyOrders
Abrufen und Filtern meiner Orders
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair OPTIONAL
|
String |
|
Nur Orders für ein bestimmtes Handelspaar abrufen. |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type OPTIONAL
|
String |
|
Angebots-Typ |
|
state OPTIONAL
|
Integer |
|
0 |
Aktueller Status (s. Tabelle Possible Order-State-Values) |
date_start OPTIONAL
|
String |
Startzeitpunkt, ab dem die Orders zurückgeliefert werden. |
||
date_end OPTIONAL
|
String |
Endzeitpunkt, bis zu dem die Orders zurückgeliefert werden. |
||
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
orders | Array |
Max. 20 Angebote mit ihren Details (s. Tabelle Order-Details) |
|
page | Array |
Informationen zu den möglichen Ergebnisseiten (s. Tabelle Page-Details) |
Page Details
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite zu den Suchkriterien |
Success-Response:
HTTP/1.1 200 OK
{
"orders":
[
{
"order_id': "2EDYNS",
"trading_pair": "btceur",
"type": "sell",
"max_amount": 0. {
"order_id":"6784S7",
"trading_pair":"btceur",
"is_external_wallet_order":false,
"type":"sell",
"max_amount_currency_to_trade":"0.015",
"min_amount_currency_to_trade":"0.007",
"price":8700,
"max_volume_currency_to_pay":130.5,
"min_amount": 0.2,
"price": 250.55,
"max_volume": 125.28,
"min_volume": 50.11,
"end_datetime": "2015-01-20T15:00:00+02:00",
"new_order_for_remaining_amount": true,
"state": 0,
"order_requirements":
{
"min_trust_level":"silver",
"only_kyc_full": true,
"payment_option": 1,
"min_volume_currency_to_pay":60.9,
"order_requirements":
{
"min_trust_level":"bronze",
"only_kyc_full":true,
"seat_of_bank": {"DE", "NL"}
},
"created_at": "2015-01-10T15:00:00+02:00"
[ "AT", "DE" ],
"payment_option":3
},
"new_order_for_remaining_amount":false,
"state":0,
"sepa_option":1,
"end_datetime":"2019-09-16T23:45:00+02:00",
"created_at":"2019-08-12T08:33:24+02:00"
},
{
"order_id":"4XDM7A",
"trading_pair":"btceur",
"is_external_wallet_order":false,
"type":"buy",
"max_amount_currency_to_trade":"0.15",
"min_amount_currency_to_trade":"0.075",
"price":8590,
"max_volume_currency_to_pay":1288.5,
"min_volume_currency_to_pay":644.25,
"order_requirements":
{
"min_trust_level":"bronze",
"only_kyc_full":false,
"seat_of_bank":["DE"],
"payment_option":1
},
"new_order_for_remaining_amount":true,
"state":0,
"sepa_option":0,
"end_datetime":"2019-09-16T23:45:00+02:00",
"created_at":"2019-08-12T08:32:53+02:00"
},
{
"order_id":"FZ2VA7",
"trading_pair":"btceur",
"is_external_wallet_order":false,
"type":"buy",
"max_amount_currency_to_trade":"0.01",
"min_amount_currency_to_trade":"0.01",
"price":8500,
"max_volume":85,
"min_volume":85,
"order_requirements":
{
"min_trust_level":"bronze",
"only_kyc_full":false,
"seat_of_bank":[ "AT", "DE", "NL" ]
"payment_option":1
},
"new_order_for_remaining_amount":true,
"state":0,
"sepa_option":0,
"end_datetime":"2019-09-11T23:45:00+02:00",
"created_at":"2019-08-07T12:18:00+02:00"
}
],
"page": {
"current": 1,
"last": 2
"page":{
"current":1,
"last":1
},
"errors": [],
"credits": 15
"errors":[],
"credits":68
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Http-Status 422
Code | Note |
---|---|
31 | Page is greater than last page. |
Abrufen und Filtern meiner Orders
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair OPTIONAL
|
String |
|
Nur Orders für ein bestimmtes Handelspaar abrufen. |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type OPTIONAL
|
String |
|
Angebots-Typ |
|
state OPTIONAL
|
Integer |
|
0 |
Aktueller Status (s. Tabelle Possible Order-State-Values) |
date_start OPTIONAL
|
String |
Startzeitpunkt, ab dem die Orders zurückgeliefert werden. |
||
date_end OPTIONAL
|
String |
Endzeitpunkt, bis zu dem die Orders zurückgeliefert werden. |
||
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
orders | Array |
Max. 20 Angebote mit ihren Details (s. Tabelle Order-Details) |
|
page | Array |
Informationen zu den möglichen Ergebnisseiten (s. Tabelle Page-Details) |
Page Details
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite zu den Suchkriterien |
Success-Response:
HTTP/1.1 200 OK
{
"orders":
[
{
"order_id":"ETHBTC-TT4RZR",
"trading_pair":"ethbtc",
"is_external_wallet_order":true,
"type":"buy",
"max_amount_currency_to_trade":"12",
"min_amount_currency_to_trade":"10",
"price":"0.01151",
"max_volume_currency_to_pay":"0.13812",
"min_volume_currency_to_pay":"0.1151",
"new_order_for_remaining_amount":false,
"state":"0",
"end_datetime":"2019-08-17T23:45:00+02:00",
"created_at":"2019-08-12T08:01:26+02:00",
},
{
"order_id":"ETHBTC-76P6EX",
"trading_pair":"ethbtc",
"is_external_wallet_order":true,
"type":"buy",
"max_amount_currency_to_trade":"10",
"min_amount_currency_to_trade":"10",
"price":"0.019",
"max_volume_currency_to_pay":"0.19",
"min_volume_currency_to_pay":"0.19",
"new_order_for_remaining_amount":false,
"state":"0",
"end_datetime":"2019-08-06T23:45:00+02:00",
"created_at":"2019-08-01T13:48:01+02:00",
}
],
"page":
{
"current":1,
"last":1
},
"errors":[],
"credits":60
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Http-Status 422
Code | Note |
---|---|
31 | Page is greater than last page. |
Orders - showMyOrderDetails
Details zu einer meiner Order abrufen
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
|
order_id | String |
ID des Angebots |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
order | Array |
Details zum Angebot (s. Tabelle Order-Details) |
Order Details
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
ID des Angebots |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
is_external_wallet_order | Boolean |
Zeigt an ob sich die Order auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
type | String |
|
Typ des Angebots |
max_amount_currency_to_trade | Float |
Maximal zu kaufende/verkaufende Coin-Menge |
|
min_amount_currency_to_trade | Float |
Minimal zu kaufende/verkaufende Coin-Menge |
|
price | Float |
Preis pro Coin in Euro |
|
max_volume_currency_to_pay | Float |
Max. Euro-Volumen der Order |
|
min_volume_currency_to_pay | Float |
Min. Euro-Volumen der Order |
|
end_datetime | String |
Ablaufzeitpunkt des Angebots. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00). |
|
new_order_for_remaining_amount | Boolean |
Neues Angebot mit Restmenge anlegen, wenn nur eine Teilmenge aus dem Angebot bedient wurde. |
|
state | Integer |
Aktueller Status (s. Tabelle Possible Order-State-Values) |
|
order_requirements | Array |
Voraussetzungen zum Bedienen des Angebots (s. Tabelle Order Requirements) |
|
sepa_option | Integer |
|
Gibt zusätzliche SEPA-Optionen an (nur in Kombination mit der payment_option "2" oder "3" möglich, s. Tabelle Order Requirements). |
created_at | String |
Erstellzeitpunkt des Angebots. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00) |
Order requirements
Name | Type | Value | Notes |
---|---|---|---|
min_trust_level | String |
|
Mindest-Trust-Level des Handelspartners |
only_kyc_full | Boolean |
Handelspartner muss vollständig identifiziert sein |
|
seat_of_bank | Array |
|
Erlaubte Länder, in denen die Bank des Handelspartners ihren Sitz haben darf (ISO 3166-2) |
payment_option | Integer |
1 => Express-Only |
Location-Header
Hinweis: Sofern das Angebot z.T. oder komplett von einem anderen Marktplatzteilnehmer bedient wurde, wird der Status-Code 301 erfolgen und ein Location-Header mit dem URI im Response übergeben, der auf die API-Methode "showMyTradeDetails" des konkreten Trades zeigt.
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id
Possible Order-State-Values
Code | Reason | Note |
---|---|---|
-2 | Expired | Angebot ist ausgelaufen |
-1 | Cancelled | Angebot wurde abgebrochen |
0 | Pending | Das Angebot ist auf dem Marktplatz verfügbar. |
Success-Response:
HTTP/1.1 200 OK
{
"order":
{
"order_id': "2EDYNS",
"trading_pair": "btceur",
"is_external_wallet_order": false,
"type": "sell",
"max_amount": "max_amount_currency_to_trade": 0.5,
"min_amount": "min_amount_currency_to_trade": 0.2,
"price": 250.55,
"max_volume": "max_volume_currency_to_pay": 125.28,
"min_volume": "min_volume_currency_to_pay": 50.11,
"end_datetime": "2015-01-20T15:00:00+02:00",
"new_order_for_remaining_amount": true,
"state": 0,
"order_requirements":
{
"min_trust_level":"silver",
"only_kyc_full": true,
"payment_option": 1,
"seat_of_bank": {"DE", "NL"}
},
"sepa_option": 0,
"created_at": "2015-01-10T15:00:00+02:00"
},
"errors": [],
"credits": 15
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Details zu einer meiner Order abrufen
Credits: | 2 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare - Krypto-zu-Krypto Marktplatz |
|
order_id | String |
ID des Angebots |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
order | Array |
Details zum Angebot (s. Tabelle Order-Details) |
Order Details
Name | Type | Value | Notes |
---|---|---|---|
order_id | String |
ID des Angebots |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
is_external_wallet_order | Boolean |
Zeigt an ob sich die Order auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
type | String |
|
Typ des Angebots |
max_amount_currency_to_trade | Float |
Maximal zu kaufende/verkaufende Coin-Menge |
|
min_amount_currency_to_trade | Float |
Minimal zu kaufende/verkaufende Coin-Menge |
|
price | Float |
Preis pro Coin |
|
max_volume_currency_to_pay | Float |
Max. Volumen der Order |
|
min_volume_currency_to_pay | Float |
Min. Volumen der Order |
|
end_datetime | String |
Ablaufzeitpunkt des Angebots. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00). |
|
new_order_for_remaining_amount | Boolean |
Neues Angebot mit Restmenge anlegen, wenn nur eine Teilmenge aus dem Angebot bedient wurde. |
|
state | Integer |
Aktueller Status (s. Tabelle Possible Order-State-Values) |
|
created_at | String |
Erstellzeitpunkt des Angebots. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00) |
Location-Header
Hinweis: Sofern das Angebot z.T. oder komplett von einem anderen Marktplatzteilnehmer bedient wurde, wird der Status-Code 301 erfolgen und ein Location-Header mit dem URI im Response übergeben, der auf die API-Methode "showMyTradeDetails" des konkreten Trades zeigt.
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id
Possible Order-State-Values
Code | Reason | Note |
---|---|---|
-2 | Expired | Angebot ist ausgelaufen |
-1 | Cancelled | Angebot wurde abgebrochen |
0 | Pending | Das Angebot ist auf dem Marktplatz verfügbar. |
Success-Response:
HTTP/1.1 200 OK
{
"order":
{
"order_id":"ETHBTC-TT4RZR",
"trading_pair":"ethbtc",
"is_external_wallet_order":true,
"type":"buy",
"max_amount_currency_to_trade":"12",
"min_amount_currency_to_trade":"10",
"price":"0.01151",
"max_volume_currency_to_pay":"0.13812",
"min_volume_currency_to_pay":"0.1151",
"new_order_for_remaining_amount":false,
"state":"0",
"end_datetime":"2019-08-17T23:45:00+02:00",
"created_at":"2019-08-12T08:01:26+02:00",
},
"errors":[],
"credits": 15
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Trades
Trades executeTradeTrades - executeTrade
Kaufen/Verkaufen einer konkreten Order
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
|
order_id | String |
ID des Angebots |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type | String |
|
Angebots-Typ |
|
payment_option OPTIONAL
|
Integer |
|
1 |
1 => Express-Kauf |
amount_currency_to_trade | Float |
Menge der Coins |
Response
Location-Header
Sofern die Details zu dem neu angelegten Trade abgerufen werden sollen, kann der hier im Location-Header enthaltene URI verwendet werden, der auf die API-Methode "showMyTradeDetails" des konkreten Trades zeigt.
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id
Success-Response:
HTTP/1.1 201 OK
{
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Http-Status 422
Code | Note |
---|---|
29 | Express trade is temporary not available. |
55 | Trading on the marketplace is currently suspended. |
51 | Order not possible |
52 | Invalid order type |
70 | There is no active reservation |
71 | Express trade not allowed |
73 | The transfer via Fidor has failed due to technical reasons. We will repeat the transfer in about 5 minutes. |
76 | The reserved balance is not sufficient. |
106 | Sepa trade not possible |
110 | SEPA-instant trade is not possible |
113 | Futurum trading not possible |
114 | Futurum-Trading outside of business hours is not possible |
Kaufen/Verkaufen einer konkreten Order
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare - Krypto-zu-Krypto Marktplatz |
|
order_id | String |
ID des Angebots |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type | String |
|
Angebots-Typ |
|
amount_currency_to_trade | Float |
Menge der Coins |
Response
Location-Header
Sofern die Details zu dem neu angelegten Trade abgerufen werden sollen, kann der hier im Location-Header enthaltene URI verwendet werden, der auf die API-Methode "showMyTradeDetails" des konkreten Trades zeigt.
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id
Success-Response:
HTTP/1.1 201 OK
{
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
50 | Order not found |
Http-Status 422
Code | Note |
---|---|
29 | Express trade is temporary not available. |
55 | Trading on the marketplace is currently suspended. |
51 | Order not possible |
52 | Invalid order type |
Trades - showMyTrades
Abrufen und Filtern meiner getätigten Trades
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair OPTIONAL
|
String |
|
Nur Trades für ein bestimmtes Handelspaar abrufen. |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type OPTIONAL
|
String |
|
Trade-Typ |
|
state OPTIONAL
|
Integer |
|
0 |
Aktueller Trade-Status (s. Tabelle Possible Trade-State-Values) |
only_trades_with_action_for_payment_or_transfer_required OPTIONAL
|
Integer |
|
0 |
Nur bei Trade-Status 0 (Pending) |
payment_method OPTIONAL
|
Integer |
|
s. Tabelle Possible payment method values |
|
date_start OPTIONAL
|
String |
Startzeitpunkt, ab dem Trades zurückgeliefert werden. |
||
date_end OPTIONAL
|
String |
Endzeitpunkt, bis zu dem Trades zurückgeliefert werden. |
||
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trades | Array |
Max. 20 Trades mit ihren Details (s. Tabelle Trade-Details) |
|
page | Array |
Informationen zu den möglichen Ergebnisseiten (s. Tabelle Page-Details) |
Page Details
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite zu den Suchkriterien |
Success-Response:
HTTP/1.1 200 OK
{
"trades":
[
{
"trade_id': "2EDYNS",
"trading_pair": "btceur",
"is_external_wallet_trade": false,
"type": "sell",
"amount": "amount_currency_to_trade": 0.5,
"price": 250.55,
"volume": "volume_currency_to_pay": 125.28,
"volume_after_fee": "volume_currency_to_pay_after_fee": 124.68,
"fee_eur": "amount_currency_to_trade_after_fee": 0.4975
"fee_currency_to_pay": 0.6,
"fee_btc": "fee_currency_to_trade": 0.0025,
"fee_currency": 0.0025,
"new_trade_id_for_remaining_amount": "C4Y8HD",
"state": 1,
"my_rating_for_trading_partner": "positive",
"trading_partner_information":
{
"username":"testuser",
"is_kyc_full": true,
"bank_name": "sparkasse",
"bic": "NOL12345",
"rating": 99,
"amount_trades": 42,
"trust_level": "gold",
"seat_of_bank": "DE"
},
"payment_method": 1,
"created_at": "2015-01-10T15:00:00+02:00",
"successfully_finished_at": "2015-01-10T15:00:00+02:00"
},
],
"page": {
"current": 2,
"last": 4
},
"errors": [],
"credits": 15
}
Error
Http-Status 422
Abrufen und Filtern meiner getätigten Trades
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair OPTIONAL
|
String |
|
Nur Trades für ein bestimmtes Handelspaar abrufen. |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type OPTIONAL
|
String |
|
Trade-Typ |
|
state OPTIONAL
|
Integer |
|
0 |
Aktueller Trade-Status (s. Tabelle Possible Trade-State-Values) |
date_start OPTIONAL
|
String |
Startzeitpunkt, ab dem Trades zurückgeliefert werden. |
||
date_end OPTIONAL
|
String |
Endzeitpunkt, bis zu dem Trades zurückgeliefert werden. |
||
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trades | Array |
Max. 20 Trades mit ihren Details (s. Tabelle Trade-Details) |
|
page | Array |
Informationen zu den möglichen Ergebnisseiten (s. Tabelle Page-Details) |
Page Details
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite zu den Suchkriterien |
Success-Response:
HTTP/1.1 200 OK
{
"trades":
[
{
"trade_id":"ETHBTC-Z86KWB",
"is_external_wallet_trade":true,
"trading_pair":"ethbtc",
"type":"sell",
"amount_currency_to_trade":"10",
"price":"0.01900000",
"volume_currency_to_pay":"0.19",
"amount_currency_to_trade_after_fee":"9.95000000",
"volume_currency_to_pay_after_fee":"0.18810000",
"fee_currency_to_trade":"0.05000000",
"fee_currency_to_pay":"0.00190000",
"state":0,
"my_rating_for_trading_partner":"pending",
"trading_partner_information":{
"username":"MaxUser",
"is_kyc_full":true,
"trust_level":"bronze",
"amount_trades":72,
"rating":67
},
"created_at":"2019-08-05T14:41:07+02:00"
},
],
"page": {
"current": 2,
"last": 4
},
"errors": [],
"credits": 15
}
Error
Http-Status 422
Trades - showMyTradeDetails
Details zu einem Trade abrufen
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
|
trade_id | String |
ID des abzufragenden Trades. |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trade | Array |
Details zum Trade (s. Tabelle Trade-Details) |
Trade-Details
Name | Type | Value | Notes |
---|---|---|---|
trade_id | String |
ID des Trades |
|
is_external_wallet_trade | Boolean |
Zeigt an ob sich der Trade auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
type | String |
|
Typ des Trades |
amount_currency_to_trade | Float |
Gekaufte/verkaufte Coin-Menge |
|
price | Float |
Preis pro Coin in Euro |
|
volume_currency_to_pay | Float |
Euro-Volumen des Trades |
|
amount_currency_to_trade_after_fee | Float |
Anzahl der Coins nach Abzug der Gebühren |
|
volume_currency_to_pay_after_fee | Float |
Euro-Volumen des Trades nach Abzug der Gebühren |
|
fee_currency_to_pay | Float |
Gebühr in Euro |
|
fee_currency_to_trade | Float |
Gebühr in Kryptowährung des jeweiligen Handelspaars |
|
new_order_id_for_remaining_amount OPTIONAL
|
String |
ID des neuen Angebots, das automatisch für die verbleibende Coin-Menge erstellt wurde. |
|
state | Integer |
|
Aktueller Status (s. Tabelle Possible Trade-State-Values) |
is_trade_marked_as_paid | Boolean |
Zeigt an, ob der Trade als "bezahlt" markiert wurde. |
|
trade_marked_as_paid_at OPTIONAL
|
String |
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00) |
|
my_rating_for_trading_partner | String |
|
Abgegebene Bewertung für den Handelspartner |
trading_partner_information | Array |
Details über den Handelspartner (s. Tabelle Trading Partner Information) |
|
created_at | String |
Erstellzeitpunkt des Trades. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00) |
|
successfully_finished_at OPTIONAL
|
String |
Nur bei Trade-Status 1 (Successful). |
|
cancelled_at OPTIONAL
|
String |
Nur bei Trade-Status -1 (Cancelled). |
|
payment_method | Integer |
|
s. Tabelle Possible payment method values |
Trading Partner Information
Name | Type | Value | Notes |
---|---|---|---|
username | String |
User-Name |
|
is_kyc_full | Boolean |
Vollständig identifizierter User |
|
trust_level | String |
|
Trust-Level |
depositor OPTIONAL
|
String |
Name des Empfängers |
|
iban OPTIONAL
|
String |
Iban des Empfängers |
|
bank_name | String |
Name der Bank |
|
bic | String |
BIC der Bank |
|
seat_of_bank | String |
|
Sitz der Bank als Ländercode in ISO 3166-2 |
amount_trades | Integer |
Anzahl bereits getätigten Trades |
|
rating | Integer |
Prozentualer Anteil an positiven Bewertungen durch die Handelspartner |
Possible Trade-State-Values
Code | Reason | Note |
---|---|---|
-1 | Cancelled | Der Trade wurde abgebrochen. |
0 | Pending | Der Trade wurde noch nicht erfolgreich abgeschlossen. |
1 | Successful | Der Trade wurde erfolgreich abgeschlossen. |
Possible payment method values
Code | Reason | Note |
---|---|---|
1 | SEPA | Der Trade wurde durch eine manuelle SEPA-Überweisung abgewickelt. |
2 | Express | Der Trade wurde als Express-Handel abgewickelt. |
3 | SEPA-Instant | Der Trade wurde durch eine manuelle SEPA-Echtzeitüberweisung abgewickelt. |
Success-Response BTC / EUR:
HTTP/1.1 200 OK
{
"trade":
{
"trade_id': "2EDYNS",
"trading_pair": "btceur",
"is_external_wallet_trade": false,
"type": "sell",
"amount": "amount_currency_to_trade": 0.5,
"price": 250.55,
"volume": "volume_currency_to_pay": 125.28,
"volume_after_fee": "volume_currency_to_pay_after_fee": 124.68,
"fee_eur": "amount_currency_to_trade_after_fee": 0.4975
"fee_currency_to_pay": 0.6,
"fee_btc": "fee_currency_to_trade": 0.0025,
"fee_currency": 0.0025,
"new_trade_id_for_remaining_amount": "C4Y8HD",
"state": 1,
"is_trade_marked_as_paid": false,
"my_rating_for_trading_partner": "positive",
"trading_partner_information":
{
"username":"testuser",
"is_kyc_full": true,
"depositor": "Max Musterman"
"iban": "DE09999999999999999999"
"bank_name": "sparkasse",
"bic": "HASPDEHHXXX",
"rating": 99,
"amount_trades": 42,
"trust_level": "gold",
"seat_of_bank": "DE"
},
"payment_method": 1,
"created_at": "2015-01-10T15:00:00+02:00",
"successfully_finished_at": "2015-01-10T15:00:00+02:00"
},
"errors": [],
"credits": 15
}
Error
Http-Status 404
Code | Note |
---|---|
75 | Trade not found |
Details zu einem Trade abrufen
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare - Krypto-zu-Krypto Marktplatz |
|
trade_id | String |
ID des abzufragenden Trades. |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trade | Array |
Details zum Trade (s. Tabelle Trade-Details) |
Trade-Details
Name | Type | Value | Notes |
---|---|---|---|
trade_id | String |
ID des Trades |
|
is_external_wallet_trade | Boolean |
Zeigt an ob sich der Trade auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
type | String |
|
Typ des Trades |
amount_currency_to_trade | Float |
Gekaufte/verkaufte Coin-Menge |
|
price | Float |
Preis pro Coin |
|
volume_currency_to_pay | Float |
Volumen des Trades |
|
amount_currency_to_trade_after_fee | Float |
Menge der gehandelten Coins nach Abzug der Gebühren |
|
volume_currency_to_pay_after_fee | Float |
Volumen nach Abzug der Gebühren |
|
fee_currency_to_trade | Float |
Gebühr |
|
fee_currency_to_pay | Float |
Gebühr |
|
new_order_id_for_remaining_amount OPTIONAL
|
String |
ID des neuen Angebots, das automatisch für die verbleibende Coin-Menge erstellt wurde. |
|
state | Integer |
|
Aktueller Status (s. Tabelle Possible Trade-State-Values) |
my_rating_for_trading_partner | String |
|
Abgegebene Bewertung für den Handelspartner |
trading_partner_information | Array |
Details über den Handelspartner (s. Tabelle Trading Partner Information) |
|
created_at | String |
Erstellzeitpunkt des Trades. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00) |
|
successfully_finished_at OPTIONAL
|
String |
Nur bei Trade-Status 1 (Successful). |
|
cancelled_at OPTIONAL
|
String |
Nur bei Trade-Status -1 (Cancelled). |
Trading Partner Information
Name | Type | Value | Notes |
---|---|---|---|
username | String |
User-Name |
|
is_kyc_full | Boolean |
Vollständig identifizierter User |
|
trust_level | String |
|
Trust-Level |
amount_trades | Integer |
Anzahl bereits getätigten Trades |
|
rating | Integer |
Prozentualer Anteil an positiven Bewertungen durch die Handelspartner |
Possible Trade-State-Values
Code | Reason | Note |
---|---|---|
-1 | Cancelled | Der Trade wurde abgebrochen. |
0 | Pending | Der Trade wurde noch nicht erfolgreich abgeschlossen. |
1 | Successful | Der Trade wurde erfolgreich abgeschlossen. |
Success-Response DASH / BTC:
HTTP/1.1 200 OK
{
"trade":{
"trade_id":"ETHBTC-Z86KWB",
"is_external_wallet_trade":true,
"trading_pair":"ethbtc",
"type":"sell",
"amount_currency_to_trade":"10",
"price":"0.01900000",
"volume_currency_to_pay":"0.19",
"amount_currency_to_trade_after_fee":"9.95000000",
"volume_currency_to_pay_after_fee":"0.18810000",
"fee_currency_to_trade":"0.05000000",
"fee_currency_to_pay":"0.00190000",
"state":0,
"my_rating_for_trading_partner":"pending",
"trading_partner_information":{
"username":"MaxUser",
"is_kyc_full":true,
"trust_level":"bronze",
"amount_trades":72,
"rating":67
},
"created_at":"2019-08-05T14:41:07+02:00"
},
"errors":[
],
"credits":63
}
Error
Http-Status 404
Code | Note |
---|---|
75 | Trade not found |
Trades - markTradeAsPaid
Trade als bezahlt markieren
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
|
trade_id | String |
ID des Trades. |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
volume_currency_to_pay_after_fee | Float |
Euro-Volumen des Trades nach Abzug der Gebühren (s. Tabelle Trade-Details) |
Response
Success-Response:
HTTP/1.1 200 OK
{
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
75 | Trade not found |
Http-Status 422
Code | Note |
---|---|
74 | this action is not possible for current trade state |
77 | volume_after_fee value deviates |
78 | trade is already marked as paid |
Trades - markTradeAsPaymentReceived
Zahlungseingang bestätigen.
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
|
trade_id | String |
ID des Trades. |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
volume_currency_to_pay_after_fee | Float |
Euro-Volumen des Trades nach Abzug der Gebühren (s. Tabelle Trade-Details) |
||
rating | String |
|
Bewertung des Handelspartners |
|
is_paid_from_correct_bank_account | Boolean |
|
Bestätigung des Zahlungseingangs des Kaufpreises vom verifizierten und über bitcoin.de bei Zustandekommen des Kaufvertrags übermittelten Käufer-Bankkontos. Bei abweichenden Kontodaten kontaktieren Sie bitten den Support auf der Detailseite zu dem jeweiligen Verkauf über die bitcoin.de Weboberfläche. |
Response
Success-Response:
HTTP/1.1 200 OK
{
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
75 | Trade not found |
Http-Status 422
Code | Note |
---|---|
74 | this action not possible for current trade state |
77 | volume_after_fee value deviates |
79 | payment has already been confirmed |
115 | mark trade as payment received is currently disabled |
Trades - addTradeRating
Handelspartner bewerten
Credits: | 1 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
|
Handelspaar (s. Tabelle Handelspaare) |
trade_id | String |
ID des Trades. |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
rating | String |
|
Bewertung des Handelspartners |
Response
Success-Response:
HTTP/1.1 201 OK
{
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
75 | Trade not found |
Http-Status 422
Sonstiges
Sonstiges showAccountInfoSonstiges - showAccountInfo
Abruf von Account Infos
Credits: | 2 |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
data | Array |
Account-Infos (s. Tabelle Data) |
Data
Name | Type | Value | Notes |
---|---|---|---|
balances | Array |
Auflistung aller Balances (am Beispiel BTC s. Tabelle Kryptowährung) |
|
fidor_reservation OPTIONAL
|
Array |
Infos zur ggfs. vorhandenen Fidor-Reservierung (s. Tabelle Fidor-Reservation) |
|
encrypted_information | Array |
Verschlüsselte Infos (s. Tabelle Encrypted-Information¹) |
Kryptowährung
Name | Type | Value | Notes |
---|---|---|---|
btc | Array |
Infos zur BTC-Balance (Aufbau s. Tabelle BTC) |
BTC
Name | Type | Value | Notes |
---|---|---|---|
total_amount | String |
Aktuelles BTC-Guthaben |
|
available_amount | String |
Aktuell verfügbares BTC-Guthaben |
|
reserved_amount | String |
Aktuell reserviertes BTC-Guthaben |
Fidor-Reservation
Name | Type | Value | Notes |
---|---|---|---|
total_amount | Float |
Gesambetrag der Reservierung |
|
available_amount | Float |
Aktuell verfügbarer Betrag der Reservierung |
|
reserved_at | String |
Erstelldatum der Reservierung (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339 |
|
valid_until | String |
Reservierung gültig bis (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
|
allocation | String |
Prozentuale Aufteilung des verfügbaren Betrags der Reservierung (am Beispiel BCH s. Tabelle Prozentuale Aufteilung) |
Prozentuale Aufteilung
Name | Type | Value | Notes |
---|---|---|---|
bch | String |
Infos zur BCH-Aufteilung (Aufbau s. Tabelle BCH) |
BCH
Name | Type | Value | Notes |
---|---|---|---|
percent | String |
Prozentuale Aufteilung der noch verfügbaren Reservierung |
|
max_eur_volume | String |
Max. Betrag zur Hervorhebung von Kaufanfragen |
|
eur_volume_open_orders | String |
Akt. verwendeter Betrag zur Hervorhebung von Kaufanfragen |
Encrypted-Information¹
Name | Type | Value | Notes |
---|---|---|---|
bic_short OPTIONAL
|
String |
Verschlüsselte Bankengruppe aus der BIC (ersten 4 Zeichen) |
|
bic_full OPTIONAL
|
String |
Verschlüsselte komplette BIC |
|
uid | String |
Verschlüsselte eigene User-Id |
¹Diese Informationen können zum Abgleich von Angebots-Bedingungen genutzt werden, wenn die Websocket-API genutzt wird, um über neue Angebote informiert zu werden (s. Kapitel Websocket-API).
Success-Response:
HTTP/1.1 200 OK
{
"data":
{
"balances":
{
"btc":
{
"available_amount": "19",
"reserved_amount":"1.3",
"total_amount": "20.3"
},
"bch":
{
"available_amount": "5",
"reserved_amount":"2.5",
"total_amount": "7.5"
},
"eth":
{
"available_amount": "10",
"reserved_amount":"2.5",
"total_amount": "12.5"
}
},
"fidor_reservation":
{
"total_amount": 500,
"available_amount": 235.55,
"reserved_at": "2017-10-05T08:31:23+02:00",
"valid_until": "2017-10-06T08:31:23+02:00",
"allocation":
{
"btc":
{
"percent": 50,
"max_eur_volume": 500,
"eur_volume_open_orders": 0
},
"eth":
{
"percent": 0,
"max_eur_volume": 0,
"eur_volume_open_orders": 0
},
"bch":
{
"percent": 50,
"max_eur_volume": 500,
"eur_volume_open_orders": 0
},
}
},
"encrypted_information":
{
"bic_short": "sdf..",
"bic_full": "sdfiojf..",
"uid": "Fijsdf3lksjdf.."
},
},
"errors": [],
"credits": 12
}
Sonstiges - showOrderbookCompact
Kauf- und Verkaufsangebote (bids und asks) in kompakter Form.
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
|
Handelspaar (s. Tabelle Handelspaare) |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
orders | Array |
Array mit Bids / Asks |
Orders
Name | Type | Value | Notes |
---|---|---|---|
bids | Array |
Auflistung der Bids |
|
asks | Array |
Auflistung der Asks |
Bids
Name | Type | Value | Notes |
---|---|---|---|
price | Float |
Preis pro Coin |
|
amount_currency_to_trade | Float |
Anzahl Coins |
Asks
Name | Type | Value | Notes |
---|---|---|---|
price | Float |
Preis pro Coin |
|
amount_currency_to_trade | Float |
Anzahl Coins |
Success-Response:
HTTP/1.1 200 OK
{
"trading_pair":"btceur",
"orders":{
"bids": [
{
"price":200,
"amount":0."amount_currency_to_trade":0.2
},
{
"price":205,
"amount":1
"amount_currency_to_trade":1
},
],
"asks": [
{
"price":250,
"amount":0."amount_currency_to_trade":0.2
},
{
"price":265.07,
"amount":0."amount_currency_to_trade":0.3102676
},
]
},
"errors":[],
"credits":19
}
Sonstiges - showPublicTradeHistory
Erfolgreich abgeschlossene Trades. Wenn kein Parameter gesetzt wird, werden alle erfolgreich abgeschlossenen Trades der letzten 24 Stunden zurückgeliefert. Die Liste ist absteigend nach Datum sortiert.
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
|
Handelspaar (s. Tabelle Handelspaare) |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
since_tid OPTIONAL
|
Integer |
inkrementelle Daten ab einer bestimmten TID anzeigen. |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trading_pair | string |
Handelspaar (s. Tabelle Handelspaare) |
|
trades | Array |
Erfolgreich abgeschlossene Trades |
Trades
Name | Type | Value | Notes |
---|---|---|---|
0 | Array |
s. Tabelle Trade Informationen |
Trade Informationen
Name | Type | Value | Notes |
---|---|---|---|
date | Integer |
Datum (Unixtimestamp) |
|
price | Float |
Preis pro Coin |
|
amount_currency_to_trade | Float |
Anzahl Coins |
|
tid | Integer |
Eindeutige ID |
Success-Response:
HTTP/1.1 200 OK
{
"trading_pair":"btceur",
"trades":[
{
"date":1435922625,
"price":230,
"amount":"2."amount_currency_to_trade":"2.50000000",
"tid":1252020
},
{
"date":1435922655,
"price":200.1,
"amount":"0."amount_currency_to_trade":"0.60000000",
"tid":1252023
}
],
"errors":[],
"credits":19
}
Sonstiges - showRates
Abfrage des gewichteten Durchschnittskurses der letzten 3 Stunden und der letzten 12 Stunden.
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trading_pair | string |
Handelspaar (s. Tabelle Handelspaare) |
|
rates | Array |
Rate-Infos (s. Tabelle Rates) |
Rates
Name | Type | Value | Notes |
---|---|---|---|
rate_weighted | String |
gibt in der Regel den gewichtete Durchschnittskurs der letzten 3 Stunden an. Wird eine kritische Masse an Trades in den letzten 3 Stunden unterschritten, dann wird hier der 12 Stunden Durchschnitt zurückgegeben. |
|
rate_weighted_3h | String |
Durchschnittskurs der letzten 3 Stunden |
|
rate_weighted_12h | String |
Durchschnittskurs der letzten 12 Stunden |
Success-Response:
HTTP/1.1 200 OK
{
"trading_pair":"btceur",
"rates":{
"rate_weighted":"257.3999269",
"rate_weighted_3h":"258.93994247",
"rate_weighted_12h":"255.30363219"
},
"errors":[],
"credits":19
}
Abfrage des gewichteten Durchschnittskurses der letzten 3 Stunden und der letzten 12 Stunden.
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
trading_pair | String |
s. Tabelle Handelspaare - Krypto-zu-Krypto Marktplatz |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
trading_pair | string |
Handelspaar (s. Tabelle Handelspaare) |
|
rates | Array |
Rate-Infos (s. Tabelle Rates) |
Rates
Name | Type | Value | Notes |
---|---|---|---|
rate_weighted | String |
gibt in der Regel den gewichtete Durchschnittskurs der letzten 3 Stunden an. |
Success-Response:
HTTP/1.1 200 OK
{
"trading_pair":"dashbtc",
"rates":{
"rate_weighted":"0.01999269",
},
"errors":[],
"credits":19
}
Sonstiges - showAccountLedger
Abruf des Kontoauszuges
Bitte beachten Sie, dass im Kontoauzug nur Transaktionen aufgelistet werden, die bis zum Vortag ausgeführt wurden. Transaktionen von heute sind also erst morgen im Kontoauszug aufgeführt.
Credits: | 3 |
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
type OPTIONAL
|
String |
|
all |
Positions-Typ |
datetime_start OPTIONAL
|
String |
akt. Datum -10 Tage |
Buchungsdatum, ab dem die Positionen aufgelistet werden. |
|
datetime_end OPTIONAL
|
String |
akt. Datum |
Buchungsdatum, bis zu dem die Positionen aufgelistet werden. |
|
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
account_ledger | Array |
Details zur Position (s. Tabelle Details zur Position) |
|
page | Array |
Informationen zu den möglichen Ergebnisseiten (s. Tabelle Page-Details) |
Details zur Position
Name | Type | Value | Notes |
---|---|---|---|
date | String |
Buchungsdatum (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
|
type | String |
Typ der Position |
|
reference | String |
Referenz zu der Position (trade_id bei buy/sell oder txid bei einer Einzahlung/Auszahlung) |
|
trade OPTIONAL
|
Array |
Tradedetails (nur bei Typ sell/buy) (s. Tabelle Tradedetails) |
|
cashflow | String |
Zu- / Abgang |
|
balance | String |
Kontostand |
Tradedetails
Name | Type | Value | Notes |
---|---|---|---|
trade_id | String |
ID des Trades |
|
trading_pair | String |
Handelspaar (s. Tabelle Handelspaare) |
|
price | String |
Preis pro Coin |
|
is_external_wallet_trade | Boolean |
Zeigt an ob sich der Trade auf einen "Krypto-zu-Krypto (mit eigener Wallet)" Marktplatz bezieht. |
|
currency_to_trade | Array |
(Krypto) Währung-Summen (s. Tabelle Currency to trade) |
|
currency_to_pay | Array |
(Krypto) Währung-Summen (s. Tabelle Currency to pay) |
Currency to trade
Name | Type | Value | Notes |
---|---|---|---|
currency | String |
(Krypto) Währung |
|
before_fee | String |
Summe vor Gebühr |
|
after_fee | String |
Summe nach Gebühr |
Currency to pay
Name | Type | Value | Notes |
---|---|---|---|
currency | String |
(Krypto) Währung |
|
before_fee | String |
Summe vor Gebühr |
|
after_fee | String |
Summe nach Gebühr |
Page Details
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite zu den Suchkriterien |
Success-Response:
HTTP/1.1 200 OK
{
"account_ledger":[
{
"date":"2015-08-13T10:20:27+02:00",
"type":"sell",
"reference":"NVP39U",
"trade":{
"trade_id":"NVP39U",
"trading_pair":"btceur",
"price":"243.77",
"primary_currency":{
"currency_to_trade":{
"currency":"btc",
"before_fee":"1.71600000",
"after_fee":"1.69884000"
},
"secondary_currency":{
"currency_to_pay":{
"currency":"eur",
"before_fee":"418,31",
"after_fee":"414,13"
}
},
"cashflow":"-1.71600000",
"balance":"3.00019794"
},
{
"date":"2015-08-12T13:05:02+02:00",
"type":"payout",
"reference":"dqwdqwdwqwq4dqw4d5qd45qd45qwd4qw5df45g4r5g4trh4r5j5j4tz5j4tbc",
"cashflow":"-0.10000000",
"balance":"4.71619794"
},
{
"date":"2015-08-12T12:30:01+02:00",
"type":"payout",
"reference":"bdgwflwguwgr884t34g4g555h4zr5j4fh5j48rg4s5bx2nt4jr5jr45j4r5j4",
"cashflow":"-1.91894200",
"balance":"4.81619794"
},
{
"date":"2015-08-10T12:12:41+02:00",
"type":"buy",
"reference":"HCRBEL",
"trade":{
"trade_id":"HCRBEL",
"price":"244",
"btc":{
"before_fee":"0.55676560",
"after_fee":"0.55119794"
},
"euro":{
"before_fee":"135,85",
"after_fee":"134,49"
}
},
"cashflow":"0.55119794",
"balance":"6.73513994"
}
],
"page":{
"current":1,
"last":1
},
"errors":[
],
"credits":9
}
Sonstiges - showPermissions
Liefert alle Aktionen, für die der für die Anfrage genutzte Api-Key freigeschaltet ist.
Credits: | 2 |
Response
Success-Response:
HTTP/1.1 200 OK
{
"permissions": [
"showOrderbook",
"createOrder",
"executeTrade",
"showPermissions",
],
"errors": [],
"credits": 5
}
Withdrawal
Withdrawal createWithdrawalWithdrawal - createWithdrawal
Anlegen einer neuen Auszahlung
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
amount | Float |
Coin-Betrag |
||
address | String |
Coin-Empfänger-Adresse |
||
recipient_purpose OPTIONAL
|
String |
Verwendungszweck der bei der Auszahlung verwendet wird (s. Unterstützung der Option "recipient_purpose") |
||
network_fee | String |
Netzwerkgebühr (s. API-Methode showWithdrawalMinNetworkFee, deren zurückgelieferte Mindestnetzwerkgebühr b.B. auch erhöht werden kann) |
||
comment OPTIONAL
|
String |
Kommentar (nur auf bitcoin.de einsehbar) |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
withdrawal_id | Integer |
Auszahlungs-ID |
Location-Header
Sofern die Details zu der neu angelegten Auszahlung abgerufen werden sollen, kann der hier im Location-Header enthaltene URI verwendet werden, der auf die API-Methode "showWithdrawal" der konkreten Auszahlung zeigt.
https://api.bitcoin.de/v4/:currency/withdrawals/:withdrawal_id
Success-Response:
HTTP/1.1 201 Created
{
"withdrawal_id": 123413,
"errors": [],
"credits": 8
}
Error
Http-Status 422
Code | Note |
---|---|
35 | Invalid currency |
36 | Forbidden value for query parameter |
37 | Too many characters |
82 | You have not accepted the withdrawal conditions yet |
83 | Withdrawals are currently disabled |
92 | Invalid address |
Withdrawal - deleteWithdrawal
Ermöglicht das Abbrechen einer Auszahlung, sofern die Auszahlungsanforderung vom System noch nicht prozessiert wurde
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
withdrawal_id | Integer |
Auszahlungs-ID (s. withdrawal_id im Response von API-Methode showWithdrawals bzw. createWithdrawal) |
Response
Success-Response:
HTTP/1.1 200 OK
{
"errors": [],
"credits": 8
}
Error
Http-Status 403
Code | Note |
---|---|
81 | Withdrawal cannot be cancelled anymore |
Http-Status 404
Code | Note |
---|---|
80 | Withdrawal not found |
Http-Status 422
Withdrawal - showWithdrawal
Details einer Auszahlung abrufen
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
withdrawal_id | Integer |
Auszahlungs-ID (s. withdrawal_id im Response von API-Methode showWithdrawals bzw. createWithdrawal) |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
withdrawal | Array |
Details zur Auszahlung |
Withdrawal
Name | Type | Value | Notes |
---|---|---|---|
withdrawal_id | String |
Auszahlungs-Id |
|
address | String |
Coin-Empfänger-Adresse |
|
recipient_purpose OPTIONAL
|
String |
Verwendungszweck für die Auszahlung (s. Unterstützung der Option "recipient_purpose") |
|
amount | Float |
Coin-Auszahlbetrag |
|
network_fee | Float |
Netzwerkgebühr im jeweiligen Coin |
|
comment | String |
Kommentar zur Auszahlung (nur auf bitcoin.de einsehbar) |
|
created_at | String |
Anforderungszeitpunkt der Auszahlung (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
|
state | Integer |
|
Aktueller Status der Auszahlung (s. Tabelle Possible Withdrawal-State-Values) |
transferred_at | String |
Zeitpunkt an dem die Auszahlung ausgeführt wurde (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
|
txid | String |
Transaktions-Id, falls die Auszahlung ausgeführt wurde |
Possible Withdrawal-State-Values
Code | Reason | Note |
---|---|---|
-1 | Cancelled | Die Auszahlung wurde abgebrochen |
0 | Pending | Die Auszahlung wurde noch nicht ausgeführt. |
1 | Transferred | Die Auszahlung wurde ausgeführt. |
Success-Response:
HTTP/1.1 200 OK
{
"withdrawal": {
"withdrawal_id": "123",
"address": "123sdfasdiojf3434",
"recipient_purpose": "123",
"amount": 12.54202,
"network_fee": 0.01,
"comment": "Bitpay",
"created_at": "2015-03-22T11:36:41+02:00",
"state": 1,
"transferred_at": "2015-03-22T11:45:23+02:00",
"txid": "sdofji234oijsdfiojdsij2"
},
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
80 | Withdrawal not found |
Http-Status 422
Withdrawal - showWithdrawalMinNetworkFee
Aktuelle Mindest-Netzwerkgebühr für eine Auszahlung anzeigen
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
min_network_fee | String |
Die aktuelle Mindest-Netzwerkgebühr für eine Auszahlung |
Success-Response:
HTTP/1.1 200 OK
{
"min_network_fee": "0.000035",
"errors": [],
"credits": 8
}
Error
Http-Status 422
Withdrawal - showWithdrawals
Abrufen von Auszahlungen
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
address OPTIONAL
|
String |
Empfängeradresse zu der alle Auszahlungen abgerufen werden sollen |
||
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
withdrawals | Array |
Max. 10 Auszahlungen mit ihren Details (s. Tabelle Withdrawal) |
|
page | Array |
Informationen zu den möglichen Ergebnisseiten |
Page
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite |
Success-Response:
HTTP/1.1 200 OK
{
"withdrawals": [
{
"withdrawal_id": "123",
"address": "123sdfasdiojf3434",
"recipient_purpose": "123",
"amount": 12.54202,
"network_fee": 0.01,
"comment": "Bitpay",
"created_at": "2015-03-22T11:36:41+02:00",
"state": 1,
"transferred_at": "2015-03-22T11:45:23+02:00",
"txid": "sdofji234oijsdfiojdsij2"
},
{
"withdrawal_id": "234",
"address": "234sdfasdiojf3434",
"recipient_purpose": "234",
"amount": 0.25,
"network_fee": 0,
"comment": "Börse",
"created_at": "2015-03-23T16:22:41+02:00",
"state": -1,
"transferred_at": NULL,
"txid": NULL
}
],
"page": {
"current": 1,
"last": 3
},
"errors": [],
"credits": 8
}
Error
Http-Status 422
Code | Note |
---|---|
92 | Invalid address |
35 | Invalid currency |
31 | Page is greater than last page. |
27 | Forbidden value for get parameter |
Withdrawal - showOutgoingAddresses
Abfrage von Auszahlungsadressen für eine Währung
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
outgoing_address | Array |
Max. 10 Auszahlungsadressen mit ihren Details |
|
page | Array |
Werte des Pager |
Page
Name | Type | Value | Notes |
---|---|---|---|
current | Integer |
Aktuell zurückgelieferte Seite |
|
last | Integer |
Letzte verfügbare Seite |
Success-Response:
HTTP/1.1 200 OK
{
"outgoing_address": {
{
"address_id": 7411,
"recipient_address": "0xc562be8f6893e0cc796a19e42dccf0ed7ea1d5d4",
"comment": "Mein Self-Hosted Wallet"
},
{
"address_id": 4909,
"recipient_address": "0xc562ccddeeffa19e42dcca19e42dcca19e42dcc",
"recipient_purpose": "123",
"comment": "Mein Wallet bei Börse XY"
},
{
"address_id": 7910,
"recipient_address": "0xc562ccddeea19e42dcca19e42dcca19e42dccff",
"recipient_purpose": "150",
"comment": "Peters Wallet bei Börse ABC"
},
},
"page": {
"current": 1,
"last": 2
},
"errors":{},
"credits":19
}
Deposit
Deposit requestDepositAddressDeposit - requestDepositAddress
Unbenutzte Einzahladresse abrufen
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
POST - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
currency | String |
Kryptowährung (s. Tabelle Kryptowährungen) |
||
comment OPTIONAL
|
String |
Kommentar, der nur einer neu angelegten Einzahladresse zugeordnet werden kann. Wird ein Kommentar übergeben und es liegt noch eine unbenutzte Einzahladresse vor, so wird nicht ein 200er Response-Code zurückgeliefert, sondern ein 422 mit Error-Code 93. |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
address | String |
Bereits zuvor angelegte aber noch unbenutzte Einzahladresse zurückgeliefert |
|
recipient_purpose OPTIONAL
|
String |
Verwendungszweck, der bei einer Einzahlung mit angegeben werden muss (s. Unterstützung der Option "recipient_purpose") |
Success 201
Response
Name | Type | Value | Notes |
---|---|---|---|
address | String |
Neu erstellte Einzahladresse |
|
recipient_purpose OPTIONAL
|
String |
Verwendungszweck, der bei einer Einzahlung mit angegeben werden muss (s. Unterstützung der Option "recipient_purpose") |
Success-Response:
HTTP/1.1 200 OK
{
"address": "123sdfasdiojf3434",
"recipient_purpose": 123,
"errors": [],
"credits": 8
}
Error
Http-Status 422
Code | Note |
---|---|
93 | Passing a comment is only allowed for newly created deposit addresses, but not for already created/unused deposit addresses |
90 | Requesting new deposit address currently not possible |
36 | Forbidden value for query parameter |
35 | Invalid currency |
Deposit - showDeposit
Details einer Einzahlung abrufen
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
deposit_id | Integer |
Einzahlungs-ID (s. deposit_id im Response von API-Methode showDeposits) |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
deposit | Array |
Details zur Einzahlung |
Deposit
Name | Type | Value | Notes |
---|---|---|---|
deposit_id | Integer |
Einzahlungs-Id |
|
address | String |
Coin-Adresse, welche die Einzahlung empfängt |
|
recipient_purpose OPTIONAL
|
String |
Verwendungszweck welcher der Einzahladresse zugeordnet ist (s. Unterstützung der Option "recipient_purpose") |
|
amount | Float |
Coin-Betrag |
|
state | Integer |
|
Aktueller Status der Einzahlung (s. Tabelle Possible Deposit-State-Values) |
txid | String |
Transaktions-Id der Einzahlung |
|
confirmations | Integer |
Bestätigungsanzahl der Transaktion. Die Bestätigungsanzahl wird im state=2 (Fully confirmed) nicht weiter aktualisiert! |
|
created_at | String |
Zeitpunkt an dem die Einzahlung im Netzwerk des zugehörigen Coins verzeichnet wurde (Format: 2015-04-07T12:23:04+02:00 gemäß RFC 3339) |
Possible Deposit-State-Values
Success-Response:
HTTP/1.1 200 OK
{
"deposit": {
"deposit_id": 123,
"address":"134oisjdfijfj",
"recipient_purpose":"123",
"amount": 12.54202,
"state": 1,
"txid": "sdofji234oijsdfiojdsij2",
"confirmations": 3
3,
"created_at": "2020-01-08T11:36:41+02:00"
},
"errors": [],
"credits": 8
}
Error
Http-Status 404
Code | Note |
---|---|
91 | Deposit not found |
Http-Status 422
Deposit - showDeposits
Abrufen von Einzahlungen
URL-Parameter
Name | Type | Values | Notes |
---|---|---|---|
currency | String |
|
Kryptowährung |
GET - Parameter
Name | Type | Values | Default | Notes |
---|---|---|---|---|
address OPTIONAL
|
String |
Einzahladresse zu der alle Einzahlungen abgerufen werden sollen |
||
page OPTIONAL
|
Integer |
1 |
Seitenzahl zum Blättern innerhalb der Ergebnisseiten |
Response
Success 200
Name | Type | Value | Notes |
---|---|---|---|
deposits | Array |
Max. 10 Einzahlungen mit ihren Details (s. Tabelle Deposit) |
Success-Response:
HTTP/1.1 200 OK
{ "deposits": {
"deposits":
[
{
"deposit_id": "123",
"address": "123qwertzasdfgyxcv123",
"recipient_purpose": "123",
"amount": 2.14578,
"state": 1,
"txid": "hueqbfuzacoevewoubwevbweivb2iur3feicie323535",
"confirmations": 3
3,
"created_at": "2020-01-08T11:36:41+02:00"
},
{
"deposit_id": "234",
"address": "234qwertzasdfgyxcv234",
"recipient_purpose": "234",
"amount": 0.01478,
"state": 0,
"txid": "drqdu73833223zug28f2fb2798fhb23ufi23zbf9723fh"
"drqdu73833223zug28f2fb2798fhb23ufi23zbf9723fh",
"confirmations": 0
0,
"created_at": "2020-01-09T11:36:41+02:00"
},
],
"page": {
"current": 1,
"last": 3
},
"errors": [],
"credits": 5
}
Error
Http-Status 422
Code | Note |
---|---|
92 | Invalid address |
35 | Invalid currency |
31 | Page is greater than last page. |
27 | Forbidden value for get parameter |
Websocket-API
Sofern Sie möglichst zeitnah auf Änderungen im Orderbook reagieren möchten, ohne sekündlich das Orderbook “manuell” abfragen zu müssen, können Sie unsere Websocket-API verwenden, die Sie komfortabel bei jeder Änderung am Orderbook informiert.
Host: https://ws.bitcoin.de
Port: 443
Namespace: market
Aufgrund möglicher Software-Inkompatibilitäten empfehlen wir Ihnen für die Nutzung unserer Websocket-API die Socket.io-Client-Bibliothek in der Version 4.5.4. Ältere Versionen der Socket.io-Client-Bibliothek (2.x und 3.x) werden von unserem Socket.io-Server aus Kompatibilitätsgründen aktuell noch unterstützt (Stand: Januar 2023). Von einer Nutzung wird aufgrund potentiell möglicher Sicherheitslücken jedoch abgeraten. Eine Garantie für die Dauer der Aufrechterhaltung der Kompatibilität zu Socket.io-Clients mit Version 2.x und 3x. kann nicht gegeben werden. Mittelfristig ist eine Abkündigung der Unterstützung von älteren Versionen geplant.
Folgende Events mit den entsprechenden relevanten Feldern stehen zur Verfügung:
remove_order
Dieses Event wird ausgelöst, sobald ein Angebot nicht mehr auf dem Marktplatz verfügbar ist.
Name | Type | Values | Notes |
---|---|---|---|
order_id* | string | -- | Id des nicht mehr handelbaren Angebots |
order_type | string | {buy, sell} | Angebots-Typ. “buy” entspricht einem Kaufangebot und “sell” einem Verkaufsangebot. |
amount** OPTIONAL |
float | -- | Menge der gehandelten BTC |
price** OPTIONAL |
float | -- | Preis pro BTC in Euro |
trading_pair | string | s. Tabelle Handelspaarliste | Handelspaar s. Tabelle Handelspaarliste |
*Sofern Sie darüber informiert werden möchten, wenn eines Ihrer Angebote bedient wurde, können Sie die übermittelte order_id mit einer Liste Ihrer verfügbaren Angebote abgleichen, die sie zuvor über die API-Methode showMyOrders abgerufen haben.
** Diese beiden Felder sind nur im remove_order-Event vorhanden, sofern ein Trade zustande kam. Wenn ein Angebot frühzeitig abgebrochen wurde, werden diese beiden Felder somit nicht übermittelt.
add_order
Dieses Event wird ausgelöst, sobald ein Angebot auf dem Marktplatz hinzugefügt wurde.
Name | Type | Values | Notes |
---|---|---|---|
order_id | string | -- | Id des nicht mehr handelbaren Angebots |
order_type | string | {buy, sell} | Angebots-Typ. “buy” entspricht einem Kaufangebot und “sell” einem Verkaufsangebot. |
amount | float | -- | Menge der BTC |
min_amount | float | -- | Mindestmenge an BTC |
price | float | -- | Preis pro BTC in Euro |
min_trust_level | string | {bronze, silver, gold} | Mindest-Trust-Levels zur Annahme des Angebots |
only_kyc_full | int | {0, 1} | Handelspartner muss vollständig identifiziert sein |
is_kyc_full | int | {0, 1} | Angebotsersteller ist vollständig identifiziert |
seat_of_bank_of_creator | string | s. Tabelle Bankenländerliste | Sitz der Bank des Angebotserstellers als Ländercode in ISO 3166-2 |
bic_short* | string | -- | BIC der Bankengruppe des Angebotsersteller. |
bic_full* | string | -- | Vollständige BIC des Angebotserstellers |
trade_to_sepa_country | array | s. Tabelle Bankenländerliste | s. Tabelle Bankenländerliste |
payment_option | int | 1 , 2 , 3 |
1 => Express-Only 2 => SEPA-Only 3 => Express & SEPA |
sepa_option | int | 0 , 1 |
0 => keine SEPA-Option vorhanden 1 => Beschleunigte Zahlungsabwicklung via SEPA-Echtzeitüberweisung möglich |
trading_pair | string | s. Tabelle Handelspaarliste | Handelspaar s. Tabelle Handelspaarliste |
*Die beiden Felder bic_short und bic_full liegen in verschlüsselter Form vor. Sind Sie nur an Angeboten interessiert, deren Angebotsersteller ein Konto bei der gleichen Bank oder Bankengruppe wie Sie nutzt, so können Sie zum Abgleich des jeweiligen Feldes Ihre verschlüsselte BIC oder Bankengruppen-BIC mit der API-Methode showAccountInfo abrufen.
Beispiel:
Es folgt eine Beispiel-Implementierung in Javascript, welche auf die Bibliothek Socket.io für die Websocket-Kommunikation zurückgreift.
// Script https://www.bitcoin.de/js/socket.io.min.js needs to be included in the first place to get access to variable io
if (typeof io != 'undefined') {
var socket = io('https://ws.bitcoin.de:443/market', {path: '/socket.io/1'});
if (typeof socket != 'undefined') {
socket.on('connect', function () {
// Connection has successfully been established.
// Do some initialization stuff here.
});
socket.on('disconnect', function () {
});
// An order has been removed from the orderbook
socket.on('remove_order', function (order) {
// Variable order contains the element order_id
console.log(order);
});
// A new order has been added to the orderbook
socket.on('add_order', function (order) {
// Variable order contains all above listed elements (i.e. order_id, order_type)
console.log(order);
});
}
}
Sofern Sie sich in einer anderen Programmiersprache mit dem Websocket verbinden möchten, um auf die besagten Events zu horchen, müssen Sie nach einer entsprechenden Bibliothek suchen, die Ihnen die Kommunikation mit Websockets ermöglicht.
Programmierhinweise
POST-Parameter mit cURL
Sofern Sie die Verbindung zur Trading-API mit Hilfe der cURL-Bibliothek in der Programmiersprache PHP herstellen, dazu aber nicht das zur Verfügung gestellte SDK verwenden möchten, weisen wir Sie darauf hin, dass POST-Parameter in Form eines Strings (mit Hilfe der Funktion http_build_query()) und nicht eines Arrays übergeben werden sollten, um mögliche Fehler zu vermeiden.
Das folgende Beispiel stellt die korrekte Übergabe dar:
$post_parameters = array('amount' => 12.5, 'type' => 'buy');
$prepared_post_parameters = http_build_query($post_parameters, '', '&');
curl_setopt($this->curl_handle, CURLOPT_POSTFIELDS, $prepared_post_parameters);