Hilfe
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

NEU: comdirect REST API für Privatkunden

SMT_Chris
Community Manager
Community Manager
3.054 Beiträge

Hallo liebe Community,

es ist soweit: wir stellen ab sofort allen unseren Kunden das comdirect REST API zur Verfügung.

 

Was heißt das für euch?

Als Kunden von comdirect habt ihr die Möglichkeit, mit euren eigenen Software-Anwendungen

 

  • Wertpapierorders an börslichen/außerbörslichen Handelsplätzen zu platzieren
  • alle eure Kontosalden, Konto- und Depotumsätze sowie das Orderbuch abzurufen.

Weitere Informationen findet ihr unter developer.comdirect.de. Die Registrierung zur Nutzung des comdirect REST API ist dort ebenfalls verlinkt.

 

Fragen zur Integration des APIs in eure Software könnt ihr gerne hier diskutieren.

 

Viel Spaß beim Ausprobieren wünscht das comdirect API Team!

290 ANTWORTEN

komm direkt
Autor ★★
21 Beiträge

Crazy Alex, schau Dir mal die Antwort von @A_J_L vom 10.12.2019 08:44 an.

Er erklärt dort, dass bei einer Kontaktaufnahme zu Json etwas stehen muss.

 

Es kann also sein, dass Dein Request durchaus ok war, und dass Du jetzt nur noch Daten mitliefern musst.

Falls das nicht klappt, dann liegt es doch an den headern, also der Art, wie Deine Kontaktaufnahme vom Programm deklariert wird. Dann musst Du nur danach suchen, wie Du die Header veränderst.

Wie genau Du das mit VBA machen kannst, kann ich Dir deswegen nicht sagen, weil ich hauptsächlich in PHP arbeite.


Nur Eines weiss ich - die sollte man als aller erstes deklarieren - sogar bevor eine Leerzeile geliefert wird,

weil ansonsten schon ein automatischer Header deklariert wird. 
Im Grunde geht es für Dich darum Browser-headings zu simulieren, also zu sagen "hallo ich bin ein Firefox" oder Internet Explorer.

A_J_L
Experte ★★
505 Beiträge

@SMT_Jan-Ove  schrieb:

Daher darf der Body nicht (ganz) leer sein, sondern enthält einen leeren JSON-Body - sprich „{ }“.


@SMT_Jan-OveDanke, kaum wird einem das richtige gesagt, schon klappt es auch mit dem Löschen.

 

Die Gurus sollen mal bei @nmh nachfragen, der hat gute Lektoren 😉



Out of Rosenheim - der Oberbayern-Robo als wikifolio - Out of Kulmbach - der Robo für kurzfristige Trends als wikifolio

A_J_L
Experte ★★
505 Beiträge

Nachdem es @Gurus nicht gibt dann eben @SMT_Jan-Ove ... naja, vielleicht können sich die Gurus ja einen Account hier anlegen. Hier brauchen sie auch kein Lektorat 😉

 

Was mir in dem API als Feature tatsächlich fehlt, ist bei der Orderaufgabe die Kurse der Livetrading-Partner zu bekommen. Ich müsste in der Theorie für jeden Partner orders/quoteticket - dann nochmal mit TAN - und dann noch v3/quotes machen, um die Kurse zu bekommen. Sehr umständlich. Warum geht bei diesen 2 Endpoints nicht ein "venues":[{"venueId": ...},{"venueId": ...}] wo man sich dann für /v3/orders/validation eben eine von aussucht?

Wäre tatsächlich sehr hilfreich!

 



Out of Rosenheim - der Oberbayern-Robo als wikifolio - Out of Kulmbach - der Robo für kurzfristige Trends als wikifolio

SMT_Philipp
ehemaliger Mitarbeiter
1.562 Beiträge

Hallo @A_J_L,

 

ich leite deine Frage mal an die Kollegen weiter und melde mich wieder mit der Antwort. 🙂

 

Beste Grüße

Philipp


In der Kürze liegt die Wü

A_J_L
Experte ★★
505 Beiträge

@SMT_Philipp 

 

Wenn Du schon dabei bist, stimmt entweder in der Doku oder in der Implementation folgendes auch nicht beim Erstellen einer Order (/brokerage/v3/orders)

 

Ich schicke rein:

 

=>SDAT { "depotId": "abc", "side": "SELL", "instrumentId": "DE000LS9PGR4", "orderType": "STOP_MARKET", "quantity": {"value":"123","unit":"XXX"}, "venueId": "3053FBD1995146598833F23B03301815", "quoteId":"DEF", "quoteTicketId":"GHI" , "triggerLimit": {"value":"xx.yy", "unit": "EUR"}, "validityType":"GTD", "validity":"2020-05-18" }

also GoodTillDate

 

Die Order die ich zurück bekomme (und so zeigt es auch das Orderbuch an)

"validityType":"GFD"

also Good For Day.

 

Doku auf Seite 48 sagt, ich soll genau das reinschicken.

Danke fürs Weiterleiten!

 



Out of Rosenheim - der Oberbayern-Robo als wikifolio - Out of Kulmbach - der Robo für kurzfristige Trends als wikifolio

A_J_L
Experte ★★
505 Beiträge

Nachtrag @SMT_Philipp 

 

Also, der 18.05.2020 wäre wohl länger als 3 Monate weg, also kann das nicht gehen. Da sollte dann das API aber eine Fehlermeldung werfen, was es nicht tut.

 

Ich habe dann noch den 18.2.2020 probiert (also ❤️ Monate), aber, selbes Problem.



Out of Rosenheim - der Oberbayern-Robo als wikifolio - Out of Kulmbach - der Robo für kurzfristige Trends als wikifolio

SMT_Jan-Ove
ehemaliger Mitarbeiter
4.279 Beiträge

Hallo @A_J_L,

 

anbei die Antwort unserer Kollegen. 🙂

 

<<Was mir in dem API als Feature tatsächlich fehlt, ist bei der Orderaufgabe die Kurse der Livetrading-Partner zu bekommen. Ich müsste in der Theorie für jeden Partner orders/quoteticket - dann nochmal mit TAN - und dann noch v3/quotes machen, um die Kurse zu bekommen. >>


Wir stellen derzeit keine Kursversorgungs-API zur Verfügung. Der Aufruf der beschriebenen Schnittstelle darf nur erfolgen, wenn man ein konkretes „Angebot“ eines Emittenten erhalten möchte.

 

<<{ "depotId": "abc", "side": "SELL", "instrumentId": "DE000LS9PGR4", "orderType": "STOP_MARKET", "quantity": {"value":"123","unit":"XXX"}, "venueId": "3053FBD1995146598833F23B03301815", "quoteId":"DEF", "quoteTicketId":"GHI" , "triggerLimit": {"value":"xx.yy", "unit": "EUR"}, "validityType":"GTD", "validity":"2020-05-18" }>>


Da sich das Problem noch nicht ganz aus dem Geschriebenen ableitet, beschreibe ich ein paar Dinge, die zu beachten sind. Bitte prüfe diese und gib Feedback, ob einer der Punkte bei dir zutreffend ist:

 

Die Validierung der im Body angegebenen Order-Parameter erfolgt durch die Validation-Schnittstelle. Sobald die challenge-id erzeugt und an die v3/orders-Schnittstelle übergeben wurde, werden Änderungen am Body (an der Order) ignoriert.


Im Beispiel-Code oben ist die Zusammensetzung der Felder nicht korrekt, da die Felder quoteTicketId und quoteId nicht zum Ordertypen „STOP_MARKET“ passen. Das Hinzufügen der beiden Felder ist aber im Prinzip egal, da nur geprüft wird, ob die für die STOP_MARKET-Order benötigten Felder vorhanden sind.


Generell gilt, dass nur für eine Order vom Typ „QUOTE“ die drei Quote-Schnittstellen zuvor ausgeführt werden müssen.

 

<<Also, der 18.05.2020 wäre wohl länger als 3 Monate weg, also kann das nicht gehen. Da sollte dann das API aber eine Fehlermeldung werfen, was es nicht tut.>>


Bei der Validation wird auch die Validity gemäß Handelsplatz geprüft. Eine Fehlermeldung gibt dann entsprechend an, wenn sie falsch gesetzt ist.

 

Welchen Prozess wolltest du denn mit dem Request oben abbilden? Wenn du eine außerbörsliche Limit-Order aufgeben möchtest, kannst du dich an Kapitel 9.2.2 orientieren. Als Handelsplatz wählst du dann einen der Handelsplätze vom Typ „OFF“ (siehe Dimensions-Schnittstelle). Auch hierfür ist die Durchführung der drei Quote-Schnittstellen nicht notwendig.

 

Ich hoffe das hilft dir weiter. Wenn nicht, konkretisiere das Problem gerne noch einmal. 🙂

 

Beste Grüße

Jan-Ove

 

dg2210
Legende
7.795 Beiträge

@Crazyalex  schrieb:

 

Einen JSON-Konverter für Excel von dem ich nicht weiß wie ich ihn bedienen muss hab ich auch schon mal gefunden...

 

Der Weg ist weiterhin verdammt steinig und weit!

 


Warum willst du denn das alles "zu Fuß" machen, statt eine fertige (und getestete) Library zu nehmen?

Bettina Orlopp : „Wir haben kein Erkenntnis-, sondern ein Umsetzungsproblem.“ (Focus online 24.06.2025)

A_J_L
Experte ★★
505 Beiträge

Hallo @SMT_Jan-Ove ,

und hier zurück an die Kollegen:

 

Also, ich habe keine Probleme eine Order aufzugeben, das klappt wunderbar, der Flow ist mir bewusst, ich mache ihn auch so und Alles gut. Ich probiere es nochmal mit den 2 Punkten, ein Wunsch und ein Bugreport:

 

1. Wunsch Kurse

Also, ich will eine Aktie kaufen. Im Livetrading auf der Seite kann ich auf "Handelspartner - Kurse anzeigen gehen" und sehe bei allen "OFF" - venues den aktuellen Kurs. Das möchte ich auch im API erreichen, es geht da nicht um eine Live-Kursversorgung sondern die Info, wie die Kurse an den LT Handelplätzen sind. Deswegen mein Vorschlag/Wunsch, dass man bei /v3/quotes eben mehr als eine Venue reinschicken kann, um den Handelsplatz mit dem besten Preis identifizieren zu können.

 

2. Fehler kein GTD möglich

In dem Beispiel oben wollte ich einen Stop-Loss gültig bis 28.2.2020 über LT Lang&Schwarz aufgeben. Die venue kann das, wenn ich das manuell auf der Website mache, das kann nicht das Problem sein und es kommt keine Fehlermeldung.

Obwohl ich in Allen Schritten von Punkt 9.1. immer >>"validityType":"GTD", "validity":"2020-02-29"<< mitschicke, wird dies ignoriert und ich bekomme eine Tagesgültige Order aufgegeben >>"validityType":"GFD"<<. Das ist mein Problem.

 

Danke für Eure Hilfe!



Out of Rosenheim - der Oberbayern-Robo als wikifolio - Out of Kulmbach - der Robo für kurzfristige Trends als wikifolio

SMT_Jan-Ove
ehemaliger Mitarbeiter
4.279 Beiträge

Moin @A_J_L,

 

danke für deine Rückmeldung. Wir haben uns das hier einmal angesehen.

 

Zu 2.:


Bitte orientiere dich für eine Stop Loss Order (unabhängig ob über die Börse oder einen LiveTrading Partner) an dem Kapitel 9.2.


Das Kapitel 9.1. bezieht sich lediglich auf die Quote Order, gleichzusetzen mit dem LiveTrading ohne Limit im Web. Das von dir angesprochene LiveTrading mit Limit ist in der API-Welt eine „normale“ Order, die als venueId einen LiveTrading-Handelspartner erhält. Wenn du also die grundsätzliche Order Validation (Kapitel 7.1.5) durchführst und diese dann später ausführst (Kapitel 7.1.7), sollte auch deine Ordergültigkeit nicht überschrieben werden.


Bei einer Quote-Order wird die Angabe der Validity ignoriert, da die Order ohnehin nur wenige Sekunden gültig ist. Im Response wird dann als Validity GFD zurückgegeben.

 

Zu 1.:


Wir verstehen was du meinst; das ist aber leider in der jetzigen Form nicht abbildbar. Vielleicht kommt zu einem späteren Zeitpunkt etwas, was dir hilft. Entweder das, oder unserem Wahrsager droht dasselbe Schicksal wie unserem Lektor.

 

Beste Grüße

Jan-Ove