am 27.09.2020 18:13
Ich bin gerade dabei die Comdirect REST API in einem Rust crate (crate = library in Rust) abzubilden und habe mich bis zu den Quotes vorgearbeitet.
Leider habe ich bei den Quotes, genauer gesagt bei Punkt 8.1.3 ein Problem. Sowohl meine Implementation als auch die Postman-Collection bekommt hier einen 422 von dem API zurück.
So sieht mein aktueller ablauf aus (Postman Code-Generation):
8.1.1 Anlage Validierung Quote Request-Initialisierung
POST /brokerage/v3/quoteticket HTTP/1.1
Host: https://api.comdirect.de/api
Accept: application/json
Authorization: Bearer __ACESS_TOKEN__
x-http-request-info: {"clientRequestId":{"sessionId":"__SESSION_ID__","requestId":"219236953"}}
Content-Type: application/json
Cookie: qSession=__Q_SESSION__
{"depotId":"__DEPOT_ID__","orderType":"QUOTE","side":"BUY","instrumentId":"US0079031078","quantity":{"value":"1","unit":"XXX"},"venueId":"C3E017C9A9464A688F57E57BD7661C12"}Response
{
"depotId": "__DEPOT_ID__",
"orderType": "QUOTE",
"side": "BUY",
"instrumentId": "US0079031078",
"venueId": "C3E017C9A9464A688F57E57BD7661C12",
"quantity": {
"value": "1",
"unit": "XXX"
},
"quoteTicketId": "__QUOTE_TICKET_ID__"
}
8.1.2 Änderung Validierung Quote Request-Initialisierung mit TAN
PATCH /brokerage/v3/quoteticket/__QUOTE_TICKET_ID__ HTTP/1.1
Host: https://api.comdirect.de/api
Accept: application/json
Authorization: Bearer __ACCESS_TOKEN__
x-http-request-info: {"clientRequestId":{"sessionId":"__SESSION_ID__","requestId":"219236953"}}
Content-Type: application/json
x-once-authentication-info: {"id":"__TAN_ID__"}
x-once-authentication: TAN_FREI
Cookie: qSession=__Q_SESSION__
Response
8.1.3 Anlage Quote Request
POST /brokerage/v3/quotes HTTP/1.1
Host: https://api.comdirect.de/api
Accept: application/json
Authorization: Bearer __ACESS_TOKEN__
x-http-request-info: {"clientRequestId":{"sessionId":"__SESSION_ID__","requestId":"221780369"}}
Content-Type: application/json
Cookie: qSession=__Q_SESSION__
{"depotId":"__DEPOT_ID__","orderType":"QUOTE","side":"BUY","instrumentId":"US0079031078","quantity":{"value":"1","unit":"XXX"},"venueId":"C3E017C9A9464A688F57E57BD7661C12"}Response
{
"code": "request.object.invalid",
"messages": [
{
"severity": "ERROR",
"key": "fehler_unsupported_ordertyp",
"message": "Der Ordertyp ist leider ungültig.",
"args": {},
"origin": []
}
]
}
Ich habe schon versucht den Order-Typ in 8.1.3 durch MARKET bzw. LIMIT (mit extra limit Feld) auszutauschen. Hat leider nicht funktioniert.
Gelöst! Gzum hilfreichen Beitrag.
am 29.09.2020 15:29
am 29.09.2020 15:29
Hallo @RustDev,
herzlich willkommen in unserer Community.
Der Handelsplatz, an den du die Quote-Anfrage schreiben willst, unterstützt LiveTrading nicht.
In unseren Systemen gibt es zwei Handelsplätze mit dem Namen „Tradegate“: Einmal der börsliche Handelsplatz (erkennbar an "type": "EXCHANGE") und einmal der Außerbörsliche ("type": "OFF"). Beide Handelsplätze haben unterschiedliche venueIDs.
Deine Quote-Anfrage hast du an den börslichen Handelsplatz gestellt, der die Anfrage leider nicht verarbeiten kann. Führe noch einmal die dimensions-Anfrage aus und wähle einen Handelsplatz vom Typ „OFF“ aus. Damit sollte der LiveTrade funktionieren.
Viele Grüße
Mario
30.09.2020 16:43 - bearbeitet 03.10.2020 13:07
30.09.2020 16:43 - bearbeitet 03.10.2020 13:07
Danke @ehemaliger Nutzer ,
am Außerbörslichen Handelsplatz funktioniert alles. Ich hätte vorher einen Blick auf die "orderTypes" der einzelnen Handelsplätze werfen sollen.