Dokumentation der Bitcoin.de Trading-API - v4

Wir empfehlen für die Dokumentation mindestens eine Auflösung von 1024x768 zu verwenden. Bei geringeren Auflösungen können wir eine gute Lesbarkeit leider nicht garantieren.

Changelog
Changelog 16.01.2023
Changelog 13.01.2022
Changelog 05.04.2021
Changelog 03.11.2020
Changelog 30.07.2020
Changelog 14.07.2020
Changelog 13.01.2020
Changelog 17.12.2019
Changelog 30.09.2019
Changelog 16.09.2019
Changelog

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

Changelog 14.07.2020

Integration von SEPA-Echtzeitüberweisung in der Trading-API

Changelog 13.01.2020

Changelog 17.12.2019


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:

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:

Viele bestehende Methoden sind für die Nutzung des Krypto-zu-Krypto (mit externem Wallet)-Marktplatzes erweitert worden:

Neue Methoden sind für die Krypto-zu-Krypto (mit externem Wallet)-Marktplätze eingeführt worden:

Request

Allgemeine Informationen zu dem Aufruf (API Call)

Zugangsdaten

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

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

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

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

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

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.

Response

Allgemeine Informationen zu der Rückgabe (API Response)

Format

General Response Format

JSON

Codes

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

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.
Error-Codes

Auflistung der Error-Codes

Request

Error-CodeMessage
1Missing header
2Inactive api key
3Invalid api key
4Invalid nonce
5Invalid signature
6Insufficient credits
7Invalid route
8Unkown api action
9Additional agreement not accepted
32Api key banned
33Ip banned
94Ip access restricted
10No 2 factor authentication
11No beta group user
12Technical reason
13Trading api currently unavailable
14No action permission for api key
15Missing post parameter
16Missing get parameter
17Invalid number
18Number too low
19Number too big
20Too many decimal places
21Invalid boolean value
22Forbidden parameter value
23Invalid min amount
24Invalid datetime format
25Date lower than min date
26Invalid value
27Forbidden value for get parameter
28Forbidden value for post parameter
29Express trade temporarily not available
30End datetime younger than start datetime
31Page greater than last page
34Invalid trading pair
35Invalid currency
36Forbidden value for query parameter
37Too many characters
44No kyc full
45Operation currently not possible
46Has to accept additional agreement
47Not part of beta group for api version
113Futurum not possible
114Futurum outside business hours
116Trading pair is delisted
117Currency is delisted

Order

Error-CodeMessage
50Order not found
51Order not possible
52Invalid order type
53Payment option not allowed for type buy
54Cancellation not allowed
55Trading suspended
56Express trade not possible
106Sepa trade not possible
57No bank account
58Order not possible for trading pair
59Order not possible due supplementary agreement
107Sepa instant not allowed for type buy
108Sepa instant not allowed for payment option
109Sepa instant order not possible

Trade

Error-CodeMessage
70No active reservation
71Express trade not allowed
72Express trade failure temporary
73Express trade failure
74Invalid trade state
75Trade not found
76Reservation amount insufficient
77Volume currency to pay after fee deviates
78Already marked as paid
79Payment already marked as received
100Trade already rated
101Trade not possible for trading pair
103Already marked as transferred
104Coins already marked as received
110Sepa instant trade not possible
115Confirmation of payment receipt currently not possible

Withdrawal

Error-CodeMessage
80Withdrawal not found
81Withdrawal cancellation not allowed
82Withdrawal conditions have not accepted
83Withdrawals disabled
111Withdrawals invalid recipient purpose
118Withdrawal recipient address not whitelisted

Deposit

Error-CodeMessage
90Requesting deposit address currenty not possible
91Deposit not found
92Invalid address
93Comments only allowed for newly created deposit addresses
112Watching deposits currently not possible

Crypto (Marketplace Wallet) - to - Crypto (External Customer Wallet)

Error-CodeMessage
95No address available
96Address not valid
97Address can not be used
98Address is used in another trade
99Address not found
102No address for remaining order available
105Amount currency to trade after fee deviates

Fehlerbeispiel

Response mit Fehlerbeispiel

{
    "errors": [
        {
            "message": "Order not found",
            "code": 50,
            "field": "order_id"
        }
    ]
}
Maintenance-Details

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

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

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

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 ---
* = Bitte beachten Sie: Einzahlungen, bei deren Währung die Option "recipient_purpose" Pflicht ist, können nur Ihrem Konto gutgeschrieben werden, wenn Sie auch das entsprechende "recipient_purpose" bei Ihrer Einzahlung verwenden.

Orders

Orders showOrderbook

Durchsuchen des Orderbooks nach passenden Angeboten

Credits:2
GET
https://api.bitcoin.de/v4/:trading_pair/orderbook

URL-Parameter

Name Type Values Notes
trading_pair String

s. Tabelle Handelspaare

GET - Parameter

Name Type Values Default Notes
type String

buy

sell

Angebots-Typ.
“buy” liefert Verkaufsangebote, “sell” Kaufangebote

amount_currency_to_trade
OPTIONAL
Float

Menge der Coins

price
OPTIONAL
Float

Preis pro Coin.

Entspricht bei "buy" dem maximalen Kaufpreis und bei "sell" dem minimalen Verkaufspreis.

order_requirements_fullfilled
OPTIONAL
Integer

1

0

0

Nur Angebote anzeigen, deren Anforderungen ich erfülle (bspw. Legitimationsstatus, Trust-Level, Sitz der Bank, Zahlungsart).

only_kyc_full
OPTIONAL
Integer

1

0

0

Nur Angebote von vollständig identifizierten Usern anzeigen.

only_express_orders
OPTIONAL
Integer

1

0

0

Nur Angebote anzeigen, die über Express-Handel gehandelt werden können.
Achtung:
Dieser Parameter wird nur ausgewertet wenn der Parameter "payment_option" nicht gesetzt ist.

payment_option
OPTIONAL
Integer

1

2

3

Ist der Parameter 'payment_option' gesetzt, so wird der Parameter "only_express_orders" bei der Abfrage ignoriert.

1 => Express-Only
2 => SEPA-Only
3 => Express & SEPA

sepa_option
OPTIONAL
Integer

0

1

0

Diese Option ist nur verfügbar, wenn type="buy" und payment_option=2 oder payment_option=3 gesetzt wurde!

0 => keine SEPA-Beschränkungen
1 => Nur Angebote von Handelspartnern anzeigen, die eine beschleunigte Zahlungsabwicklung via SEPA-Echtzeitüberweisung anbieten

only_same_bankgroup
OPTIONAL
Integer

1

0

0

Nur Angebote von Handelspartnern anzeigen, die ein Bankkonto bei derselben Bankgruppe (BIC-Nummernkreis) wie ich haben.

only_same_bic
OPTIONAL
Integer

1

0

0

Nur Angebote von Handelspartnern anzeigen, die ein Bankkonto bei derselben Bank wie ich haben.

seat_of_bank
OPTIONAL
Array

Bankenländerliste

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

medium

large

small

Anzahl der Angebote, die geladen werden.
Je nach Größe werden teilweise zusätzliche Credits berechnet.

small => 20 Ergebnisse
medium => 50 Ergebnisse, +1 Credit
large => 100 Ergebnisse, +2 Credits

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

buy

sell

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

0

1

Optionen zur Abwicklung via SEPA

0 => keine Optionen vorhanden
1 => Beschleunigte Zahlungsabwicklung via SEPA-Echtzeitüberweisung möglich

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

bronze

silver

gold

platin

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

bronze

silver

gold

platin

Mindest-Trust-Level des Handelspartners

only_kyc_full
OPTIONAL
Boolean

Handelspartner muss vollständig identifiziert sein

seat_of_bank
OPTIONAL
Array

Bankenländerliste

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

2

3

1 => Express-Only
2 => SEPA-Only
3 => Express & SEPA

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
GET
https://api.bitcoin.de/v4/:trading_pair/orderbook

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

buy

sell

Angebots-Typ.
“buy” liefert Verkaufsangebote , “sell” Kaufangebote

amount_currency_to_trade
OPTIONAL
Float

Menge der Coins

price
OPTIONAL
Float

Preis pro Coin.

Entspricht bei "buy" dem maximalen Kaufpreis und bei "sell" dem minimalen Verkaufspreis.

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

buy

sell

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

bronze

silver

gold

platin

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
Code Note
52

Invalid order type

18

Number too low


showOrderDetails

Details zu einem Angebot abrufen

Credits:2
GET
https://api.bitcoin.de/v4/:trading_pair/orders/public/details/:order_id

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

buy

sell

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

0

1

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).

0 => keine SEPA-Option vorhanden
1 => beschleunigte Zahlungsabwicklung via SEPA-Echtzeitüberweisung möglich.

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

bronze

silver

gold

platin

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

bronze

silver

gold

platin

Mindest-Trust-Level des Handelspartners

only_kyc_full Boolean

Handelspartner muss vollständig identifiziert sein

seat_of_bank Array

Bankenländerliste

Erlaubte Länder, in denen die Bank des Handelspartners ihren Sitz haben darf (ISO 3166-2) s. Tabelle Bankenländerliste

payment_option Integer

1

2

3

1 => Express-Only
2 => SEPA-Only
3 => Express & SEPA

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
GET
https://api.bitcoin.de/v4/:trading_pair/orders/public/details/:order_id

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

buy

sell

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

bronze

silver

gold

platin

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


createOrder

Anlegen einer neuen Order

Credits:1
POST
https://api.bitcoin.de/v4/:trading_pair/orders

URL-Parameter

Name Type Values Notes
trading_pair string

Handelspaare

Handelspaar (s. Tabelle Handelspaare)

POST - Parameter

Name Type Values Default Notes
type String

buy

sell

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.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).
Zulässige Werte für die Minuten sind: 00, 15 , 30, 45

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

bronze

silver

gold

platin

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

2

3

1

Diese Option wirkt sich nur bei type="sell" aus!

1 => Express-Only
2 => SEPA-Only
3 => Express & SEPA

Bei type="buy" ist Ihre Vorgabe unter "Express-Handel-Einstellungen" (bei ausreichender Reservierung!) maßgeblich

sepa_option
OPTIONAL
Integer

0

1

0

Diese Option ist nur verfügbar, wenn type="sell" und payment_option=2 oder payment_option=3 gesetzt wurde!

0 => keine SEPA-Option
1 => Beschleunigte Zahlungsabwicklung via SEPA-Echtzeitüberweisung möglich

seat_of_bank
OPTIONAL
Array

Bankenländerliste

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
POST
https://api.bitcoin.de/v4/:trading_pair/orders

URL-Parameter

Name Type Values Notes
trading_pair string

Handelspaare

Handelspaar (s. Tabelle Handelspaare)

POST - Parameter

Name Type Values Default Notes
type String

buy

sell

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.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).
Zulässige Werte für die Minuten sind: 00, 15 , 30, 45

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.


deleteOrder

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.

DELETE
https://api.bitcoin.de/v4/:trading_pair/orders/:order_id

URL-Parameter

Name Type Values Notes
trading_pair String

Handelspaare

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.


showMyOrders

Abrufen und Filtern meiner Orders

Credits:2
Berücksichtigt alle Handelspaare
GET
https://api.bitcoin.de/v4/orders
Berücksichtigt ein spezifisches Handelspaar
GET
https://api.bitcoin.de/v4/:trading_pair/orders

URL-Parameter

Name Type Values Notes
trading_pair
OPTIONAL
String

Handelspaare

Nur Orders für ein bestimmtes Handelspaar abrufen.

GET - Parameter

Name Type Values Default Notes
type
OPTIONAL
String

buy

sell

Angebots-Typ

state
OPTIONAL
Integer

-2

-1

0

0

Aktueller Status (s. Tabelle Possible Order-State-Values)

date_start
OPTIONAL
String

Startzeitpunkt, ab dem die Orders zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

date_end
OPTIONAL
String

Endzeitpunkt, bis zu dem die Orders zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

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
Berücksichtigt alle Handelspaare
GET
https://api.bitcoin.de/v4/orders
Berücksichtigt ein spezifisches Handelspaar
GET
https://api.bitcoin.de/v4/:trading_pair/orders

URL-Parameter

Name Type Values Notes
trading_pair
OPTIONAL
String

Handelspaare

Nur Orders für ein bestimmtes Handelspaar abrufen.

GET - Parameter

Name Type Values Default Notes
type
OPTIONAL
String

buy

sell

Angebots-Typ

state
OPTIONAL
Integer

-2

-1

0

0

Aktueller Status (s. Tabelle Possible Order-State-Values)

date_start
OPTIONAL
String

Startzeitpunkt, ab dem die Orders zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

date_end
OPTIONAL
String

Endzeitpunkt, bis zu dem die Orders zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

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.


showMyOrderDetails

Orders - showMyOrderDetails

Details zu einer meiner Order abrufen

Credits:2
GET
https://api.bitcoin.de/v4/:trading_pair/orders/:order_id

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

buy

sell

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

0

1

Gibt zusätzliche SEPA-Optionen an (nur in Kombination mit der payment_option "2" oder "3" möglich, s. Tabelle Order Requirements).

0 => keine SEPA-Optionen vorhanden
1 => beschleunigte Zahlungsabwicklung via SEPA-Echtzeitüberweisung möglich

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

bronze

silver

gold

platin

Mindest-Trust-Level des Handelspartners

only_kyc_full Boolean

Handelspartner muss vollständig identifiziert sein

seat_of_bank Array

Bankenländerliste

Erlaubte Länder, in denen die Bank des Handelspartners ihren Sitz haben darf (ISO 3166-2)

payment_option Integer

1 => Express-Only
2 => SEPA-Only
3 => Express & SEPA

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
GET
https://api.bitcoin.de/v4/:trading_pair/orders/:order_id

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

buy

sell

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 executeTrade

Kaufen/Verkaufen einer konkreten Order

Credits:1
POST
https://api.bitcoin.de/v4/:trading_pair/trades/:order_id

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

buy

sell

Angebots-Typ

payment_option
OPTIONAL
Integer

1

2

3

1

1 => Express-Kauf
2 => SEPA-Kauf
3 => SEPA-Kauf Echtzeitüberweisung

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
POST
https://api.bitcoin.de/v4/:trading_pair/trades/:order_id

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

buy

sell

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


showMyTrades

Abrufen und Filtern meiner getätigten Trades

Credits:3
Berücksichtigt alle Handelspaare
GET
https://api.bitcoin.de/v4/trades
Berücksichtigt ein spezifisches Handelspaar
GET
https://api.bitcoin.de/v4/:trading_pair/trades

URL-Parameter

Name Type Values Notes
trading_pair
OPTIONAL
String

Handelspaare

Nur Trades für ein bestimmtes Handelspaar abrufen.

GET - Parameter

Name Type Values Default Notes
type
OPTIONAL
String

buy

sell

Trade-Typ

state
OPTIONAL
Integer

-1

0

1

0

Aktueller Trade-Status (s. Tabelle Possible Trade-State-Values)

only_trades_with_action_for_payment_or_transfer_required
OPTIONAL
Integer

1

0

0

Nur bei Trade-Status 0 (Pending)
Trades anzeigen, die noch als bezahlt markiert werden müssen.

payment_method
OPTIONAL
Integer

1

2

3

s. Tabelle Possible payment method values

date_start
OPTIONAL
String

Startzeitpunkt, ab dem Trades zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

date_end
OPTIONAL
String

Endzeitpunkt, bis zu dem Trades zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

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
Code Note
34

Invalid trading_pair

31

Page is greater than last page.


Abrufen und Filtern meiner getätigten Trades

Credits:3
Berücksichtigt alle Handelspaare
GET
https://api.bitcoin.de/v4/trades
Berücksichtigt ein spezifisches Handelspaar
GET
https://api.bitcoin.de/v4/:trading_pair/trades

URL-Parameter

Name Type Values Notes
trading_pair
OPTIONAL
String

Handelspaare

Nur Trades für ein bestimmtes Handelspaar abrufen.

GET - Parameter

Name Type Values Default Notes
type
OPTIONAL
String

buy

sell

Trade-Typ

state
OPTIONAL
Integer

-1

0

1

0

Aktueller Trade-Status (s. Tabelle Possible Trade-State-Values)

date_start
OPTIONAL
String

Startzeitpunkt, ab dem Trades zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

date_end
OPTIONAL
String

Endzeitpunkt, bis zu dem Trades zurückgeliefert werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

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
Code Note
34

Invalid trading_pair

31

Page is greater than last page.


showMyTradeDetails

Trades - showMyTradeDetails

Details zu einem Trade abrufen

Credits:3
GET
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id

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

buy

sell

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

-1

0

1

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

pending

negative

neutral

positive

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).
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00)

cancelled_at
OPTIONAL
String

Nur bei Trade-Status -1 (Cancelled).
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00)

payment_method Integer

1

2

3

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

bronze

silver

gold

platin

Trust-Level

depositor
OPTIONAL
String

Name des Empfängers
Nur bei Trade-Status 0 (Pending)

iban
OPTIONAL
String

Iban des Empfängers
Nur bei Trade-Status 0 (Pending)

bank_name String

Name der Bank

bic String

BIC der Bank

seat_of_bank String

Bankenländerliste

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
GET
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id

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

buy

sell

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

-1

0

1

Aktueller Status (s. Tabelle Possible Trade-State-Values)

my_rating_for_trading_partner String

pending

negative

neutral

positive

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).
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00)

cancelled_at
OPTIONAL
String

Nur bei Trade-Status -1 (Cancelled).
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00)

Trading Partner Information
Name Type Value Notes
username String

User-Name

is_kyc_full Boolean

Vollständig identifizierter User

trust_level String

bronze

silver

gold

platin

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


markTradeAsPaid

Trades - markTradeAsPaid

Trade als bezahlt markieren

Credits:1
POST
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id/mark_trade_as_paid

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


markTradeAsPaymentReceived

Trades - markTradeAsPaymentReceived

Zahlungseingang bestätigen.

Credits:1
POST
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id/mark_trade_as_payment_received

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

positive

neutral

negative

Bewertung des Handelspartners

is_paid_from_correct_bank_account Boolean

true

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


addTradeRating

Trades - addTradeRating

Handelspartner bewerten

Credits:1
POST
https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id/add_trade_rating

URL-Parameter

Name Type Values Notes
trading_pair String

Handelspaare

Handelspaar (s. Tabelle Handelspaare)

trade_id String

ID des Trades.

POST - Parameter

Name Type Values Default Notes
rating String

positive

neutral

negative

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
Code Note
74

this action not possible for current trade state

100

trade already rated


Sonstiges

Sonstiges showAccountInfo

Sonstiges - showAccountInfo

Abruf von Account Infos

Credits:2
GET
https://api.bitcoin.de/v4/account

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
}

showOrderbookCompact

Sonstiges - showOrderbookCompact

Kauf- und Verkaufsangebote (bids und asks) in kompakter Form.

Credits:3
GET
https://api.bitcoin.de/v4/:trading_pair/orderbook/compact

URL-Parameter

Name Type Values Notes
trading_pair String

Handelspaare

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
}

showPublicTradeHistory

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
GET
https://api.bitcoin.de/v4/:trading_pair/trades/history

URL-Parameter

Name Type Values Notes
trading_pair String

Handelspaare

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
}

showRates

Abfrage des gewichteten Durchschnittskurses der letzten 3 Stunden und der letzten 12 Stunden.

Credits:3
GET
https://api.bitcoin.de/v4/:trading_pair/rates

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
GET
https://api.bitcoin.de/v4/:trading_pair/rates

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
}

showAccountLedger

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
GET
https://api.bitcoin.de/v4/:currency/account/ledger

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

Kryptowährung

GET - Parameter

Name Type Values Default Notes
type
OPTIONAL
String

all

buy

sell

inpayment

payout

affiliate

welcome_btc

buy_yubikey

buy_goldshop

buy_diamondshop

kickback

outgoing_fee_voluntary

all

Positions-Typ

datetime_start
OPTIONAL
String

akt. Datum -10 Tage

Buchungsdatum, ab dem die Positionen aufgelistet werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

datetime_end
OPTIONAL
String

akt. Datum
-1 Tag

Buchungsdatum, bis zu dem die Positionen aufgelistet werden.
Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00).

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
}

showPermissions

Sonstiges - showPermissions

Liefert alle Aktionen, für die der für die Anfrage genutzte Api-Key freigeschaltet ist.

Credits:2
GET
https://api.bitcoin.de/v4/permissions

Response

Success-Response:
HTTP/1.1 200 OK
{
 "permissions": [
     "showOrderbook",
     "createOrder",
     "executeTrade",
     "showPermissions",
  ],
 "errors": [],
 "credits": 5
}

Withdrawal

Withdrawal createWithdrawal

Withdrawal - createWithdrawal

Anlegen einer neuen Auszahlung

POST
https://api.bitcoin.de/v4/:currency/withdrawals

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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


deleteWithdrawal

Withdrawal - deleteWithdrawal

Ermöglicht das Abbrechen einer Auszahlung, sofern die Auszahlungsanforderung vom System noch nicht prozessiert wurde

DELETE
https://api.bitcoin.de/v4/:currency/withdrawals/:withdrawal_id

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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
Code Note
35

Invalid currency

36

Forbidden value for query parameter


showWithdrawal

Withdrawal - showWithdrawal

Details einer Auszahlung abrufen

GET
https://api.bitcoin.de/v4/:currency/withdrawals/:withdrawal_id

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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

-1

0

1

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
Code Note
27

Forbidden value for get parameter

35

Invalid currency


showWithdrawalMinNetworkFee

Withdrawal - showWithdrawalMinNetworkFee

Aktuelle Mindest-Netzwerkgebühr für eine Auszahlung anzeigen

GET
https://api.bitcoin.de/v4/:currency/withdrawals/min_network_fee

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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
Code Note
27

Forbidden value for get parameter

35

Invalid currency


showWithdrawals

Withdrawal - showWithdrawals

Abrufen von Auszahlungen

GET
https://api.bitcoin.de/v4/:currency/withdrawals

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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


showOutgoingAddresses

Withdrawal - showOutgoingAddresses

Abfrage von Auszahlungsadressen für eine Währung

GET
https://api.bitcoin.de/v4/:currency/outgoing_address

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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 requestDepositAddress

Deposit - requestDepositAddress

Unbenutzte Einzahladresse abrufen

POST
https://api.bitcoin.de/v4/:currency/deposits/new_address

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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


showDeposit

Deposit - showDeposit

Details einer Einzahlung abrufen

GET
https://api.bitcoin.de/v4/:currency/deposits/:deposit_id

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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

-1

0

1

2

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

Code Reason Note
-1 Invalid Die Einzahlung ist ungültig
0 Unconfirmed Die Einzahlung befindet sich noch im Mempool und wurde bisher in keinen Block aufgenommen.
1 Partially confirmed Die Einzahlung verfügt entweder über noch zu wenig Bestätigungen, weshalb sie noch dem unbestätigten Coin-Guthaben zugeordnet wird oder weißt zwar bereits ausreichend Bestätigungen auf, befindet sich aber noch in
Bearbeitung.
2 Fully confirmed Die Einzahlung verfügt über ausreichend Bestätigungen, wurde erfolgreich bearbeitet und dem bestätigten Coin-Guthaben gutgeschrieben.
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
Code Note
27

Forbidden value for get parameter

35

Invalid currency


showDeposits

Deposit - showDeposits

Abrufen von Einzahlungen

GET
https://api.bitcoin.de/v4/:currency/deposits

URL-Parameter

Name Type Values Notes
currency String

Kryptowährungen

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

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

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

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

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

Programmierhinweise

POST-Parameter mit cURL

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);