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 05.12.2019
Changelog 30.09.2019
Changelog 16.09.2019
Changelog

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üte 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
requestDepositAddress 2
showDeposit 2
showDeposits 2
addToAddressPool 2
removeFromAddressPool 2
listAddressPool 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

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

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

Withdrawal

Error-CodeMessage
80Withdrawal not found
81Withdrawal cancellation not allowed
82Withdrawal conditions have not accepted
83Withdrawals disabled

Deposit

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

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 Krypto-zu-Euro Marktplatz

Handelspaar-Kürzel Bezeichnung
btceur BTC / EUR
bcheur BCH / EUR
btgeur BTG / EUR
etheur ETH / EUR
bsveur BSV / EUR

Handelspaare - Krypto-zu-Krypto (mit eigener Wallet) Marktplatz

Handelspaar-Kürzel Bezeichnung
iotabtc IOTA / BTC
dashbtc DASH / BTC
gntbtc GNT / BTC
ltcbtc LTC / BTC
Kryptowährungen

Kryptowährungen

Kryptowährungen-Kürzel Bezeichnung
btc Bitcoin
bch Bitcoin Cash
btg Bitcoin Gold
eth Ethereum
bsv Bitcoin SV

Kryptowährungen (mit eigener Wallet)

Kryptowährungen-Kürzel Bezeichnung
iota Iota
dash Dash
gnt Golem
ltc Litecoin

Addresspool

Addresspool addToAddressPool

Addresspool - addToAddressPool

Adressen zum Pool hinzufügen

Credits:2
POST
https://api.bitcoin.de/v4/:currency/address

URL-Parameter

Name Type Values Notes
currency string

s. Tabelle Kryptowährungen (mit eigener Wallet)

POST - Parameter

Name Type Values Default Notes
address Array

Adresse, die dem Pool hinzugefügt werden soll. Entweder 1 Adresse als String oder mehrere als Array

amount_usages
OPTIONAL
Integer

5

Die maximale Anzahl der Verwendungen einer Adresse

comment
OPTIONAL
String

Kommentar / Schlüsselwort zur Adresse

Response

Success-Response:
HTTP/1.1 201 OK
{
 "errors": [],
 "credits": 8
}

Error

Http-Status 422
Code Note
15

Missing post parameter

17

Invalid number

96

Address is not valid

97

Address can not be used


removeFromAddressPool

Addresspool - removeFromAddressPool

Adresse aus dem Pool entfernen

Credits:2
DELETE
https://api.bitcoin.de/v4/:currency/address/:address

URL-Parameter

Name Type Values Notes
currency string

s. Tabelle Kryptowährungen (mit eigener Wallet)

address string

Adresse, die aus dem Pool entfernt werden soll

Response

Success-Response:
HTTP/1.1 200 OK
{
 "errors": [],
 "credits": 8
}

Error

Http-Status 422
Code Note
98

Address is already in use

99

Address not found


listAddressPool

Addresspool - listAddressPool

Liste der im Pool vorhandenen Adressen, ggf. entsprechend den Filterkriterien

Credits:2
GET
https://api.bitcoin.de/v4/:currency/address

URL-Parameter

Name Type Values Notes
currency string

s. Tabelle Kryptowährungen (mit eigener Wallet)

GET - Parameter

Name Type Values Default Notes
usable
OPTIONAL
Integer

0

1

2

0

0 => Alle Adressen
1 => Nur verwendbare Adressen
2 => Nicht verwendbare Adressen

comment
OPTIONAL
String

Adressen, die mit dem angegebenen Kommentar / Schlüsselwort angelegt wurden

page
OPTIONAL
Integer

1

Seitenzahl zum Blättern innerhalb der Ergebnisseiten

Response

Success 200
Name Type Value Notes
addresses Array

Max. 20 Adressen zu Ihren Filterkriterien (s. Tabelle Adress-Details)

page Array

Informationen zu den möglichen Ergebnisseiten (s. Tabelle Page-Details)

Adress-Details
Name Type Value Notes
address String

Adresse

amount_usages Integer

Anzahl der Verwendungen

max_amount_usages Integer

Maximale Anzahl der Verwendungen

comment String

Zur Adresse hinterlegter Kommentar / Schlüsselwort

is_usable Boolean

Verwendbarkeit

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
{
 "addresses":
 [
   {
     "address": "7qBGycUABC1233oPPfC1ht4geDJncwGg6Z",
     "amount_usages": 0,
     "max_amount_usages": 66,
     "comment": "example",
     "is_usable": true
   }
 ],
 "page": {
     "current": 1,
     "last": 1
  },
  "errors": [],
  "credits":8
}

Error

Http-Status 422
Code Note
31

Page is greater than last page.

17

Invalid number


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

1

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

only_same_bankgroup
OPTIONAL
Integer

1

0

0

Nur Angebote von Handelspartner 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

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

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":
       "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,
       "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


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 (mit eigener Wallet) 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.

order_requirements_fullfilled
OPTIONAL
Integer

1

0

0

Nur Angebote anzeigen, deren Anforderungen ich erfülle (bspw. Trust-Level).

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)

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

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

Success-Response:
HTTP/1.1 200 OK
{
   "orders":{
        "order_id":"DB-75S6ZF",
        "is_external_wallet_order":true,
        "trading_pair":"dashbtc",
        "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
        },
        "order_requirements":{
           "min_trust_level":"starter"
        }
   },
   "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.).

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
   },
   "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 (mit eigener Wallet) 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)

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

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

Success-Response:
HTTP/1.1 200 OK
{
   "order":{
      "order_id":"DB-YTR3N3",
      "trading_pair":"dashbtc",
      "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
      },
      "order_requirements":{
         "min_trust_level":"starter"
      }
   },
   "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

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.

71

Express trade not allowed


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

address
OPTIONAL
String

freie Adresse aus dem Adresspool

Bei einer Kaufanfrage kann die Empfänger-Adresse angegeben werden. Ist keine Adresse angegeben, wird eine verfügbare aus Ihrem Adresspool ausgewählt.

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

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": "DB-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,
         "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,
         "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,
         "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":"DB-TT4RZR",
         "trading_pair":"dashbtc",
         "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",
         "address":"XcAY4szSQZ5X5yEUSMFD7LDgE9vgWvRAoL",
         "end_datetime":"2019-08-17T23:45:00+02:00",
         "created_at":"2019-08-12T08:01:26+02:00",
         "order_requirements":
         {
            "min_trust_level":"starter"
         }
      },
      {
         "order_id":"DB-76P6EX",
         "trading_pair":"dashbtc",
         "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",
         "address":"XohoV9d5wUL38M3oaspvzPDFmoqsT2VM4g",
         "end_datetime":"2019-08-06T23:45:00+02:00",
         "created_at":"2019-08-01T13:48:01+02:00",
         "order_requirements":
         {
            "min_trust_level":"starter"
         }
      }
   ],
   "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

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)

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"}
        },
        "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 (mit eigener Wallet) 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)

address
OPTIONAL
String

Nur bei einer Kaufanfrage - Empfänger-Adresse für die gekauften Coins.

order_requirements Array

Voraussetzungen zum Bedienen des Angebots (s. Tabelle Order Requirements)

created_at String

Erstellzeitpunkt des Angebots. Format gemäß RFC 3339 (Bsp: 2015-01-20T15:00:00+02:00)

Order requirements
Name Type Value Notes
min_trust_level String

bronze

silver

gold

platin

Mindest-Trust-Level des Handelspartners

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":"DB-TT4RZR",
       "trading_pair":"dashbtc",
       "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",
       "address":"XcAY4szSQZ5X5yEUSMoZ7LDgEDFgWvRAoL",
       "end_datetime":"2019-08-17T23:45:00+02:00",
       "created_at":"2019-08-12T08:01:26+02:00",
       "order_requirements":{
          "min_trust_level":"starter"
       }
   },
   "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

1

1 => Express-Kauf
2 => SEPA-Kauf

amount_currency_to_trade Float

Menge der Coins

Response

Location-Header

Sofern die Details zu dem neu angelegten Trade abgerufen werden sollen, kann der hier im Location-Header enthaltene URI verwendet werden, der auf die API-Methode "showMyTradeDetails" des konkreten Trades zeigt.

https://api.bitcoin.de/v4/:trading_pair/trades/:trade_id
Success-Response:
HTTP/1.1 201 OK
{
 "errors": [],
 "credits": 8
}

Error

Http-Status 404
Code Note
50

Order not found

Http-Status 422
Code Note
29

Express trade is temporary not available.

55

Trading on the marketplace is currently suspended.

51

Order not possible

52

Invalid order type

70

There is no active reservation

71

Express trade not allowed

73

The transfer via Fidor has failed due to technical reasons. We will repeat the transfer in about 5 minutes.

76

The reserved balance is not sufficient.

106

Sepa trade not possible


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 (mit eigener Wallet) 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

address
OPTIONAL
String

Bei einer Order vom Typ "sell" kann die Empfänger-Adresse für die gekauften Coins angegeben werden. Ist keine Adresse angegeben, wird eine verfügbare aus Ihrem Adresspool ausgewählt.

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

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)

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 transferiert markiert werden müssen.

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":"DB-Z86KWB",
        "is_external_wallet_trade":true,
        "trading_pair":"dashbtc",
        "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",
        "address":"XfFCdoTD3rvviBr89W3gURuP9SJuEDDL1L",
        "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

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

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.
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": 'DE02370501980001802057
           "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 (mit eigener Wallet) 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

address String

Empfänger-Adresse von dem Käufer für die Coins.

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)

are_coins_marked_as_transferred Boolean

Zeigt an, ob die Coins bereits als "transferiert" markiert wurden.

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

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":"DB-Z86KWB",
      "is_external_wallet_trade":true,
      "trading_pair":"dashbtc",
      "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",
      "address":"XfFCdoTD3rvviBr89W3gURuP9SJuETNL1L",
      "state":0,
      "are_coins_marked_as_transferred": true
      "coins_marked_as_transferred_at": "2019-08-05T14:45:33+02:00"
      "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


markCoinsAsTransferred

Trades - markCoinsAsTransferred

Trade als bezahlt markieren

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

URL-Parameter

Name Type Values Notes
trading_pair String

s. Tabelle Handelspaare - Krypto-zu-Krypto (mit eigener Wallet) Marktplatz

trade_id String

ID des Trades.

POST - Parameter

Name Type Values Default Notes
amount_currency_to_trade_after_fee Float

Menge der gehandelten Coins 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

105

amount_currency_to_trade_after_fee value deviates

103

coins are already marked as transferred


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


markCoinsAsReceived

Trades - markCoinsAsReceived

Coin-Empfang bestätigen.

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

URL-Parameter

Name Type Values Notes
trading_pair String

s. Tabelle Handelspaare - Krypto-zu-Krypto (mit eigener Wallet) Marktplatz

trade_id String

ID des Trades.

POST - Parameter

Name Type Values Default Notes
amount_currency_to_trade_after_fee Float

Menge der gehandelten Coins nach Abzug der Gebühren (s. Tabelle Trade-Details)

rating String

positive

neutral

negative

Bewertung des Handelspartners

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

105

amount_currency_to_trade_after_fee value deviates

104

coins has already marked as received


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


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 (mit eigener Wallet) 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
}

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

Success 201
Response
Name Type Value Notes
address String

Neue Einzahladresse angelegt

Success-Response:
HTTP/1.1 200 OK
{
   "address": "123sdfasdiojf3434",
   "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

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 über noch zu wenig Bestätigungen, weshalb sie noch dem unbestätigten Coin-Guthaben zugeordnet wird.
2 Fully confirmed Die Einzahlung verfügt über ausreichend Bestätigungen und wurde dem bestätigten Coin-Guthaben gutgeschrieben.
Success-Response:
HTTP/1.1 200 OK
{
   "deposit": {
      "deposit_id": 123,
      "address":"134oisjdfijfj",
      "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",
         "amount": 2.14578,
         "state": 1,
         "txid": "hueqbfuzacoevewoubwevbweivb2iur3feicie323535",
         "confirmations": 3
3,
         "created_at": "2020-01-08T11:36:41+02:00"
      },
      {
         "deposit_id": "234",
         "address": "234qwertzasdfgyxcv234",
         "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


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

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 200 OK
{
 "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

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",
      "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",
         "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",
         "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


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

Aufgrund möglicher Software-Inkompatibilitäten empfehlen wir Ihnen für die Nutzung unserer Websocket-API die Socket.io-Client-Bibliothek in der Version 0.9.16.

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
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.connect('https://ws.bitcoin.de', {port: 443});

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