Neu Automatisiertes Kaufen und Drucken von Deutsche Post Internetmarken via API / CSV-Import

dc-nico

Sehr aktives Mitglied
17. März 2011
3.010
274
Brandenburg an der Havel
Hallo,

hier ein kleines Programm, welches den Versand per Internetmarke von jedem Programm mit CSV-Export ermöglicht.


Internetmarken-Center​

Automatisiertes Kaufen und Drucken von Deutsche Post Internetmarken via CSV-Import

Das Internetmarken-Center ist eine leistungsstarke Windows-Desktop-Anwendung zur effizienten Abwicklung Ihres Postversands. Die Software liest Empfängerdaten direkt aus CSV-Dateien (z. B. aus Shop-Systemen, JTL-Wawi oder Excel) ein, kauft vollautomatisch die benötigten Portomarken über die offizielle REST-API der Deutschen Post und druckt diese passgenau auf Ihren Etikettendrucker.

1. Funktionsübersicht & Key Features​

  • Automatischer CSV-Import: Flexible Zuordnung von Empfängerfeldern (Name, Straße, PLZ, Ort, Land) aus beliebig strukturierten CSV-Dateien.
  • Batch-Verarbeitung (Massenkauf): Hunderte Sendungen gleichzeitig auswählen, Porto berechnen und in einem einzigen Durchgang kaufen.
  • Direktes Drucken auf Etikettendrucker: Nahtlose Ansteuerung von Labeldruckern (z. B. Brother QL, Dymo, Zebra) für Einzeletiketten oder DIN-A4-Bögen.
  • Porto-Vorauswahl & Automatische Erkennung: Schnelle Auswahl gängiger Brief- und Paketprodukte der Deutschen Post (Standardbrief, Kompaktbrief, Großbrief, Maxibrief, Priorität, Einschreiben, Warenpost) oder automatische Zuweisung direkt aus der CSV-Datei.
  • Historie & Nachdruck: Lokale Speicherung gekaufter Marken mit Möglichkeit zum erneuten Ausdrucken im Fehlerfall (z. B. bei Papierstau) sowie Export der generierten Sendungsnummern.
  • Lokale Datenhaltung: Keine monatlichen Lizenzgebühren oder Abhängigkeiten von Drittservern – die Kommunikation erfolgt direkt zwischen Ihrem PC und der API der Deutschen Post.

2. Einrichtungsanleitung: API & Portokasse freischalten​

Um die automatische Schnittstelle nutzen zu können, benötigen Sie offizielle Entwickler-Zugangsdaten der Deutschen Post sowie eine aktivierte Portokasse.

Teil A: API-Zugangsdaten der Deutschen Post anfordern​

  1. Registrierung im Entwicklerportal: Öffnen Sie das Entwicklerportal der Deutschen Post unter developer.deutschepost.de und erstellen Sie ein kostenloses Entwickler-Konto (Developer Account).
  2. API-Anwendung anlegen: Loggen Sie sich ein, navigieren Sie zu App-Verwaltung / Meine Apps, erstellen Sie eine neue App (z. B. Name: Internetmarken-Center) und wählen Sie die Schnittstelle "Internetmarke API" bzw. "Portokasse API" aus.
  3. API-Keys notieren: Nach dem Erstellen erhalten Sie im Entwickler-Dashboard Ihre Client ID (App-Schlüssel) und Ihr Client Secret (Geheimschlüssel).

Teil B: Portokasse einrichten, aufladen & Drittanbieter-App freischalten​

  1. Portokasse-Konto erstellen: Rufen Sie portokasse.deutschepost.de auf und registrieren Sie sich (oder nutzen Sie Ihre bestehenden Login-Daten der Deutschen Post / DHL).
  2. Erste Aufladung durchführen (Voraussetzung für Freischaltung): Loggen Sie sich in Ihre Portokasse ein und führen Sie eine erste Aufladung/Bestellung durch (z. B. 10 € oder 20 € per SEPA-Lastschrift, PayPal, Kreditkarte oder Überweisung). Erst durch diese erste Transaktion wird der Versand der Freischalt-E-Mail für die API-Anwendung angestoßen.
  3. App in der Portokasse aktivieren (Finaler Schlüssel): Sobald Sie die Bestätigungs-E-Mail zur App-Freischaltung von der Deutschen Post erhalten haben, loggen Sie sich erneut in Ihre Portokasse ein. Navigieren Sie zu Einstellungen ➔ Drittanbieter-Anwendungen / Berechtigungen (bzw. App-Verwaltung), suchen Sie die Anwendung Internetmarken-Center und aktivieren/bestätigen Sie diese explizit.

Teil C: Einmalige Konfiguration im Internetmarken-Center​

  1. Öffnen Sie das Internetmarken-Center auf Ihrem PC.
  2. Gehen Sie zu Einstellungen ➔ API / Post-Zugangsdaten.
  3. Tragen Sie Ihre Client ID, Ihr Client Secret sowie Ihre Portokasse-Zugangsdaten (E-Mail & Passwort) ein und speichern Sie die Eingabe.
  4. Die Software ist nun vollständig einsatzbereit!

Teil C: Option für Entwickler & Tests (Sandbox-Testkonto)​

  1. Wenn Sie das System vorab risikofrei in einer reinen Testumgebung testen möchten, registrieren Sie ein neues, separates Portokassen-Konto (ohne echtes Geld aufzuladen).
  2. Senden Sie anschließend eine E-Mail mit Ihrer Portokassen-ID und der registrierten E-Mail-Adresse an den Entwickler-Support (Internetmarke-Technik@deutschepost.de)
    und bitten darum, dieses als Testkonto einzurichten.
  3. Der Support stellt dieses Konto anschließend als kostenloses Entwickler-/Sandbox-Konto mit virtuellem Testguthaben für API-Tests um.

3. Wie das Programm funktioniert (Workflow)​


[ CSV-Datei / Export ] ➔ [ Daten-Import & Vorschau ] ➔ [ Produkt wählen / Automatisch aus CSV erkennen ] ➔ [ API-Kauf via Portokasse ] ➔ [ Etikettendruck ] ➔ [ Sendungsnummer für Import ]

  1. CSV-Datei laden: Sie wählen Ihre Exportdatei aus dem Shop- oder Warenwirtschaftssystem aus.
  2. Adressen prüfen: Die Anwendung zeigt eine übersichtliche Tabelle mit den eingelesenen Empfängern.
  3. Porto festlegen: Wählen Sie das gewünschte Porto-Produkt (z. B. Großbrief) manuell aus oder lassen Sie es automatisch über ein Feld in der CSV-Datei erkennen.
  4. Portokasse belasten & Generieren: Die Software sendet die Kaufanfrage verschlüsselt an die API der Deutschen Post. Das Guthaben wird automatisch von Ihrer Portokasse abgebucht, und das fertige Druckbild wird zurückgeliefert.
  5. Drucken & Sendungsnummern verarbeiten: Die Etiketten werden direkt an Ihren angeschlossenen Etikettendrucker gesendet. Die erzeugten Sendungsnummern stehen für den Rückimport in Ihr System zur Verfügung.

4. Systemvoraussetzungen​

  • Betriebssystem: Windows 10 / Windows 11 (64-Bit)
  • Hardware: Standard-PC / Laptop, angeschlossener Etikettendrucker (Brother QL, Dymo, Zebra etc.) oder Standard-A4-Drucker
  • Internetverbindung: Erforderlich zur Kommunikation mit der Schnittstelle der Deutschen Post
  • Voraussetzung: Aktive Portokasse mit ausreichendem Guthaben, API-Zugangsdaten & erfolgte App-Aktivierung
Betriebssystem: Windows 10 / Windows 11 (64-Bit)
  • Hardware: Standard-PC / Laptop, angeschlossener Etikettendrucker (Brother QL, Dymo, Zebra etc.) oder Standard-A4-Drucker
  • Internetverbindung: Erforderlich zur Kommunikation mit der Schnittstelle der Deutschen Post
  • Voraussetzung: Aktive Portokasse mit ausreichendem Guthaben & API-Zugangsdaten


    Download
Sollten noch Fragen offen sein, könnt ihr mich einfach anschreiben.

Gruß, Nico
 

Morimus

Sehr aktives Mitglied
16. Mai 2019
738
198
Echt gut!
Aber leider könnte ich das so bei uns im Hause (noch) nicht einsetzen:

Befehlsausführung über CSV-Daten:
Die Bestellreferenz aus der CSV wird zum Dateinamen.
Dabei werden nur / und \ ersetzt (main.py:1718, 1806).
Der daraus gebildete Pfad wird ungefiltert in einen PowerShell-Befehl mit doppelten Anführungszeichen eingesetzt (main.py:660–681).
PowerShell wertet darin Ausdrücke wie $() aus.
Ich konnte so mit einer manipulierte CSV, befehle mit den Rechten des angemeldeten Benutzers auslösen.

Zugangsdaten im Klartext:
Portokasse-Benutzername und Passwort werden unverändert per json.dump in %APPDATA%\InternetmarkenCenter\config.json gespeichert (main.py:86–89, 1041–1047).

Doppelkäufe:
Deine Anwendung kauft zuerst, speichert und druckt danach.
Scheitert das Erkennen der Markennummer, das Laden des PDFs, das Speichern oder Drucken, meldet sie einen Fehler, obwohl der Kauf bereits erfolgt sein kann (main.py:529–630, 1804–1812).

Und diverse weitere "Fehler" wie das hardgecodete Produktcode 1 wenn eine Versandart fehlt.
Oder fehlender timeout der API-Aufrufe.

Die Zeilennummern sind Zeilenzuordnungen des eingebetteten Python-Bytecodes.
 

dc-nico

Sehr aktives Mitglied
17. März 2011
3.010
274
Brandenburg an der Havel
Hallo, danke für dein Feedback.
In der heute erstellten Version scheint etwas mit dem von dir genannten PDF Erstellung und dem Kauf falsch zu laufen.
Habe es soeben selbst bemerkt, da ich den Versand ausgeführt habe.
Melde mich dann, sobald die Fehler behoben und Verbesserungen umgesetzt wurden.

Gruß, Nico
 

Ähnliche Themen