<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Thema "Betreff: Rest API: &amp;quot;Der Header 'x-http-request-info' ist fehlerhaft.&amp;quot;" in Off-Topic</title>
    <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351439#M15502</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.comdirect.de/t5/user/viewprofilepage/user-id/32821"&gt;@heraklit&lt;/a&gt;&amp;nbsp; schrieb:&lt;BR /&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Was mache ich falsch?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Das findest am einfachsten heraus, indem du den Vorgang mit Postman durchführst und dann die die Unterschiede zwischen deinen eigenen und den Postman-Requests analysierst.&lt;/P&gt;</description>
    <pubDate>Mon, 11 Aug 2025 17:09:48 GMT</pubDate>
    <dc:creator>dg2210</dc:creator>
    <dc:date>2025-08-11T17:09:48Z</dc:date>
    <item>
      <title>Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351438#M15501</link>
      <description>&lt;P&gt;Liebe alle,&lt;/P&gt;&lt;P&gt;ich habe letzte Woche die API freigeschltet und versuche, mit einem Python Script eine Session zu etablieren und/oder eine mTan zu erhalten. Schritt 1, OAuth2 Authentifikations-Token, klappt. Dann kommt mit dem Script:&lt;/P&gt;&lt;P&gt;import requests&lt;BR /&gt;import base64&lt;BR /&gt;import json&lt;BR /&gt;import uuid&lt;/P&gt;&lt;P&gt;ACCESS_TOKEN = "&amp;lt;MEIN_ACCESS_TOKEN&amp;gt;"&lt;/P&gt;&lt;P&gt;def build_request_info():&lt;BR /&gt;req_info = {&lt;BR /&gt;"clientRequestId": str(uuid.uuid4())&lt;BR /&gt;}&lt;BR /&gt;req_info_json = json.dumps(req_info, separators=(',', ':'))&lt;BR /&gt;encoded = base64.b64encode(req_info_json.encode('utf-8')).decode('ascii')&lt;BR /&gt;return encoded&lt;/P&gt;&lt;P&gt;url = "&lt;A href="https://api.comdirect.de/api/banking/v1/accounts" target="_blank"&gt;https://api.comdirect.de/api/banking/v1/accounts&lt;/A&gt;"&lt;/P&gt;&lt;P&gt;headers = {&lt;BR /&gt;"Authorization": f"Bearer {ACCESS_TOKEN}",&lt;BR /&gt;"Accept": "application/json",&lt;BR /&gt;"Content-Type": "application/json",&lt;BR /&gt;"x-http-request-info": build_request_info()&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;resp = requests.get(url, headers=headers)&lt;/P&gt;&lt;P&gt;print("x-http-request-info:", headers["x-http-request-info"])&lt;BR /&gt;print("Status:", resp.status_code)&lt;BR /&gt;print("Headers:", resp.headers)&lt;BR /&gt;print("Body:", resp.text)&lt;BR /&gt;---schnapp----&lt;BR /&gt;als Antwort:&lt;BR /&gt;Fehler beim Abrufen: 400 {"code":"request.header.invalid","messages":[{"key":"request.header.invalid.x-http-request-info","severity":"ERROR","message":"Der Header 'x-http-request-info' ist fehlerhaft."}]}asselbe mit curl:&lt;BR /&gt;curl -X GET "&lt;A href="https://api.comdirect.de/api/banking/v2/accounts" target="_blank"&gt;https://api.comdirect.de/api/banking/v2/accounts&lt;/A&gt;"&lt;BR /&gt;-H "Authorization: Bearer &amp;lt;Access Token&amp;gt;"&lt;BR /&gt;-H "x-http-request-info: &amp;lt;request_info_encoded, s.o.&amp;gt;"&lt;BR /&gt;-H "Accept: application/json"&lt;BR /&gt;---schnapp---&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Antwort:&lt;BR /&gt;{"code":"request.header.invalid","messages":[{"key":"request.header.invalid.x-http-request-info","severity":"ERROR","message":"Der Header 'x-http-request-info' ist fehlerhaft."}]}&lt;BR /&gt;&lt;BR /&gt;Was mache ich falsch?&lt;BR /&gt;TIA und viele Grüße&lt;BR /&gt;h&lt;/P&gt;</description>
      <pubDate>Mon, 11 Aug 2025 16:56:11 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351438#M15501</guid>
      <dc:creator>heraklit</dc:creator>
      <dc:date>2025-08-11T16:56:11Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351439#M15502</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.comdirect.de/t5/user/viewprofilepage/user-id/32821"&gt;@heraklit&lt;/a&gt;&amp;nbsp; schrieb:&lt;BR /&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Was mache ich falsch?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Das findest am einfachsten heraus, indem du den Vorgang mit Postman durchführst und dann die die Unterschiede zwischen deinen eigenen und den Postman-Requests analysierst.&lt;/P&gt;</description>
      <pubDate>Mon, 11 Aug 2025 17:09:48 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351439#M15502</guid>
      <dc:creator>dg2210</dc:creator>
      <dc:date>2025-08-11T17:09:48Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351479#M15505</link>
      <description>&lt;P&gt;vielen Dank für den Hinweis. Ich möchte den Vorgang aber gern rein in Python lösen, ohne Postman.&lt;BR /&gt;Ich poste noch einmal den korrekt eingerückten Code (habe die code-Formatierung nicht gesehen, sorry) – vielleicht fällt jemandem direkt auf, warum der x-http-request-info-Header als fehlerhaft zurückkommt:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;import requests
import base64
import json
import uuid

ACCESS_TOKEN = "&amp;lt;MEIN_ACCESS_TOKEN&amp;gt;"

def build_request_info():
    req_info = {
        "clientRequestId": str(uuid.uuid4())
    }
    req_info_json = json.dumps(req_info, separators=(',', ':'))
    encoded = base64.b64encode(req_info_json.encode('utf-8')).decode('ascii')
    return encoded

url = "https://api.comdirect.de/api/banking/v1/accounts"

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}",
    "Accept": "application/json",
    "Content-Type": "application/json",
    "x-http-request-info": build_request_info()
}

resp = requests.get(url, headers=headers)

print("x-http-request-info:", headers["x-http-request-info"])
print("Status:", resp.status_code)
print("Headers:", resp.headers)
print("Body:", resp.text)&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;TIA und Grüße,&lt;/P&gt;&lt;P&gt;heraklit&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 10:22:00 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351479#M15505</guid>
      <dc:creator>heraklit</dc:creator>
      <dc:date>2025-08-12T10:22:00Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351483#M15506</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://community.comdirect.de/t5/user/viewprofilepage/user-id/32821"&gt;@heraklit&lt;/a&gt;&amp;nbsp; schrieb:&lt;BR /&gt;&lt;P&gt;vielen Dank für den Hinweis. Ich möchte den Vorgang aber gern rein in Python lösen, ohne Postman.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Niemand hier schreibt dir eine bestimmte Implementierung vor.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Meine Prognose ist: solange du nicht bereit bist, an der Diagnose deines Problems mitzuarbeiten, wirst du in dieser Community wenig Chancen auf Hilfe haben.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 11:27:52 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351483#M15506</guid>
      <dc:creator>dg2210</dc:creator>
      <dc:date>2025-08-12T11:27:52Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351485#M15507</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Chat GTP gibt mir folgender Tip zu deiner Fehlermeldung 400:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Laut &lt;A target="_new" rel="noopener"&gt;Comdirect API-Dokumentation&lt;/A&gt; (Stand: 2024) muss der x-http-request-info-Header ein &lt;STRONG&gt;Base64-kodiertes JSON&lt;/STRONG&gt; mit mehreren Pflichtfeldern enthalten:&lt;/P&gt;&lt;H3&gt;&amp;nbsp;&lt;STRONG&gt;Pflichtfelder:&lt;/STRONG&gt;&lt;/H3&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;clientRequestId (UUID, eindeutig)&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;clientSystemId (String, z. B. dein App-Name)&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;clientDeviceId (String, z. B. Gerät oder hostname)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;PRE&gt;&amp;nbsp;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 13:14:39 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351485#M15507</guid>
      <dc:creator>Marten68</dc:creator>
      <dc:date>2025-08-12T13:14:39Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351507#M15508</link>
      <description>&lt;P&gt;Hallo,&lt;/P&gt;&lt;P&gt;vielen Dank. ich hae mit ChatGPT auch schon rumgerätselt - eine &lt;A target="_new" rel="noopener"&gt;Comdirect API-Dokumentation&lt;/A&gt; (Stand: 2024) finde ich nirgendwo und in version 2020 steht nichts davon. Anyway, habe, mit ChatGPT-Hilfe, das Script jetzt so angepasst:&lt;/P&gt;&lt;PRE&gt;import requests
import base64
import uuid
import json
from urllib.parse import urlencode
import socket

# === Zugangsdaten ===
client_id = "&amp;lt;meine client_id&amp;gt;"
client_secret = "&amp;lt;meine client_secret&amp;gt;"
username = "&amp;lt;mein username&amp;gt;"
password = "&amp;lt;mein Passwort&amp;gt;"

# === Hilfsfunktion: Header bauen ===
def build_api_headers(token, tan=None):
    x_info = {
        "clientRequestId": str(uuid.uuid4()),
        "clientSystemId": "my-python-client",
        "clientDeviceId": "my-device" # hier müssen imho nur beliebige strings hin oder socket.gethostname()
    }
    x_info_encoded = base64.b64encode(json.dumps(x_info).encode()).decode()

    headers = {
        "Authorization": f"Bearer {token}",
        "Accept": "application/json",
        "x-http-request-info": x_info_encoded
    }
    if tan:
        headers["x-once-authentication-info"] = tan
    return headers

# === Allgemeine GET-Funktion mit TAN-Unterstützung ===
def api_get(url, token):
    # Erster Versuch ohne TAN
    resp = requests.get(url, headers=build_api_headers(token))
    
    if resp.status_code == 403:
        print("==&amp;gt; TAN erforderlich! Prüfe SMS oder App.")
        tan = input("&amp;gt; TAN: ")
        resp = requests.get(url, headers=build_api_headers(token, tan=tan))
    
    # JSON oder Text zurückgeben
    try:
        return resp.json()
    except json.JSONDecodeError:
        return resp.text

# === Schritt 1: Access Token holen ===
def get_access_token():
    token_headers = {
        "Content-Type": "application/x-www-form-urlencoded",
        "Accept": "application/json"
    }

    token_data = {
        "client_id": client_id,
        "client_secret": client_secret,
        "grant_type": "password",
        "username": username,
        "password": password
    }

    print("==&amp;gt; Hole Access Token ...")
    resp = requests.post(
        "https://api.comdirect.de/oauth/token",
        headers=token_headers,
        data=urlencode(token_data)
    )
    resp.raise_for_status()

    token = resp.json()["access_token"]
    print("Access Token:", token)
    return token

# === Hauptprogramm ===
if __name__ == "__main__":
    token = get_access_token()
    # Beispielaufruf: Kontenliste holen
    accounts = api_get("https://api.comdirect.de/api/banking/v1/accounts", token)
    print(json.dumps(accounts, indent=2, ensure_ascii=False))&lt;/PRE&gt;&lt;P&gt;es bleibt dabei:&lt;/P&gt;&lt;PRE&gt;==&amp;gt; Hole Access Token ...
Access Token: &amp;lt;mein access token&amp;gt;
{
  "code": "request.header.invalid",
  "messages": [
    {
      "key": "request.header.invalid.x-http-request-info",
      "severity": "ERROR",
      "message": "Der Header 'x-http-request-info' ist fehlerhaft."
    }
  ]
}&lt;/PRE&gt;&lt;P&gt;;-(&lt;/P&gt;</description>
      <pubDate>Tue, 12 Aug 2025 16:18:20 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351507#M15508</guid>
      <dc:creator>heraklit</dc:creator>
      <dc:date>2025-08-12T16:18:20Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351599#M15512</link>
      <description>&lt;P&gt;Der Fehler steht doch darin. Vielleicht solltest du wirklich mal postman oder die Doku bemühen um deine requests zu überprüfen.,bvevor du chatgpt nutzt.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Zu deinen Lösungen:&lt;/P&gt;&lt;P&gt;Clientsystemid und Clientdeviceid hat sich chatgpt wohl ausgedacht? Finde keine Hinweise in der Doku...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dafür steht da aber wie die clientrequestsid auszusehen hat. Eine uuid wie du chatgpt daraus macht ist es jedenfalls nicht.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ich hoffe bei den Dingen die du damit machen willst verlässt du dich nicht zu sehr auf chatgpt... Das kann teuer werden.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 18:07:51 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/351599#M15512</guid>
      <dc:creator>javadoc</dc:creator>
      <dc:date>2025-08-13T18:07:51Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/352056#M15547</link>
      <description>&lt;P&gt;Pro Tipp, der dir seeeehr viel Arbeit abnehmen wird:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- Schau einfach in eines der funktionierenden GitHub Repositories wie bspw.:&amp;nbsp;&lt;A href="https://github.com/keisentraut/python-comdirect-api" target="_blank"&gt;https://github.com/keisentraut/python-comdirect-api&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Grüße&lt;/P&gt;</description>
      <pubDate>Tue, 19 Aug 2025 11:57:27 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/352056#M15547</guid>
      <dc:creator>FSQuant</dc:creator>
      <dc:date>2025-08-19T11:57:27Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/352057#M15548</link>
      <description>&lt;P&gt;...mit AI Unterstützung sollte es dann relativ einfach sein:&lt;/P&gt;&lt;P&gt;Am besten nimmst du Claude AI und legst einen workspace an, dann zuerst die Files vom GitHub Repository rein kopieren - und dann deine Datei.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Aug 2025 11:58:28 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/352057#M15548</guid>
      <dc:creator>FSQuant</dc:creator>
      <dc:date>2025-08-19T11:58:28Z</dc:date>
    </item>
    <item>
      <title>Betreff: Rest API: "Der Header 'x-http-request-info' ist fehlerhaft."</title>
      <link>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/352074#M15555</link>
      <description>&lt;P&gt;Ah, und was mir eben noch eingefallen ist:&lt;/P&gt;&lt;P&gt;Damit das Modell auch richtig viel Context hat, kipp einfach das Doku-API-PDF komplett in das Modell!&lt;/P&gt;</description>
      <pubDate>Tue, 19 Aug 2025 14:45:06 GMT</pubDate>
      <guid>https://community.comdirect.de/t5/off-topic/rest-api-quot-der-header-x-http-request-info-ist-fehlerhaft-quot/m-p/352074#M15555</guid>
      <dc:creator>FSQuant</dc:creator>
      <dc:date>2025-08-19T14:45:06Z</dc:date>
    </item>
  </channel>
</rss>

