Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Anbindungsleitfaden
Warenpost International für Selbstprogrammierer (ReST-API)
Version 1.0/Stand 3.3.2020
Warenpost International Seite 2 von 65
Anbindungsleitfaden
2
Information und Identifikation
0.1 Änderungshistorie
Version Datum Bearbeitungsart Bearbeiter
1.0 3.3.2020 Erstellung Jan Henrik Walter, Georg Herrmann, Michael Steets
1.01 18.3.2020 Kleinere Korrekturen Michael Steets
1.03 5.6.2020 Feldänderungen für gepl. Release Mitte Juni 2020 (addressLine1-3, senderPostalCode, contentPieceValue, jobReference)
Michael Steets
Warenpost International Seite 3 von 65
Anbindungsleitfaden
3
Inhaltsverzeichnis
Information und Identifikation ...................................................................................................... 2
0.1 Änderungshistorie ............................................................................................................................ 2
1 Einleitung ................................................................................................................................. 7
1.1 Was ist Warenpost International? ................................................................................................ 7
1.2 Wofür ist dieser Leitfaden? ............................................................................................................ 7
1.3 Welche Möglichkeiten gibt es sonst noch, Warenpost International zu nutzen? ............. 8
1.4 Wofür ist dieser Leitfaden nicht? .................................................................................................. 9
2 Grundlegende Funktionsprinzipien von Warenpost International .................................. 10
2.1 Funktionalitäten .............................................................................................................................. 10
2.2 Zugang zu den Systemen ............................................................................................................. 10
2.3 Umgebungen ................................................................................................................................... 10
2.3.1 Sandbox – Ihre Spielwiese ................................................................................................... 10
2.3.2 Livesystem ............................................................................................................................... 10
2.4 Einschränkungen der API Warenpost International .............................................................. 10
3 Aufschaltprozess................................................................................................................... 11
3.1 Dokumentation ............................................................................................................................... 11
3.2 Account zu Testsystem und Testportokasse erhalten .......................................................... 11
3.3 Testing ............................................................................................................................................... 12
3.4 Umstellung der Software auf die Liveumgebung .................................................................. 12
4 Workflows der Auftragserstellung (“Logiken”) ................................................................ 14
4.1 Gemeinsamkeiten der Logiken: .................................................................................................. 14
4.2 Unterschiede der Logiken ............................................................................................................ 14
4.3 Logik 1: „Create Order Finalized“ ............................................................................................... 15
4.4 Logik 2: „Create Order Open“ ...................................................................................................... 15
5 Prozesse der Auftragslogik - Basics .................................................................................... 16
5.1 Authentizierung .............................................................................................................................. 16
5.2 Testumgebung (Sandbox) ........................................................................................................... 16
5.3 Livesystem ....................................................................................................................................... 16
6 Detailprozesse der Auftragslogik - Ordererzeugung ........................................................ 17
6.1 Prozess/Logik Create Order Finalized ....................................................................................... 17
6.1.1 Request „Get Access Token“ ............................................................................................... 17
6.1.2 Beispiel: .................................................................................................................................... 17
6.1.3 Request „Create Order“ ........................................................................................................ 18
6.1.4 Request „Get Item Labels” ................................................................................................... 19
6.2 Beschreibung der Logik: Create Order Open ........................................................................... 20
6.2.1 Request „Get Access Token” ............................................................................................... 20
Warenpost International Seite 4 von 65
Anbindungsleitfaden
4
6.2.2 Request „Create Order” ........................................................................................................ 20
6.2.3 Request „Add Items to an Order” ....................................................................................... 20
6.2.4 Request „Get Item Label“ ..................................................................................................... 20
6.2.5 Request „Finalize Order“ ...................................................................................................... 21
6.3 Weitere verfügbare Requests ...................................................................................................... 21
6.3.1 Get item .................................................................................................................................... 21
6.3.2 Get Order.................................................................................................................................. 21
6.3.3 Get shipments for an order ................................................................................................. 21
6.3.4 Validate order items .............................................................................................................. 21
7 Umstieg und Einsatz im Produktivsystem .......................................................................... 21
7.1 Voraussetzungen ............................................................................................................................ 21
8 Beispiel-Requests ................................................................................................................. 23
8.1 Beispiel „Get Access Token“ in JSON und cURL (Sandbox) ................................................. 23
JSON ........................................................................................................................................................... 24
cURL............................................................................................................................................................ 24
URL .............................................................................................................................................................. 24
Autorisation .............................................................................................................................................. 24
Header ........................................................................................................................................................ 24
Body ............................................................................................................................................................ 24
Request ...................................................................................................................................................... 24
8.2 Beispiel „Get Access Token“ in JSON und cURL (Livesystem) ............................................ 25
JSON ........................................................................................................................................................... 25
cURL............................................................................................................................................................ 25
URL .............................................................................................................................................................. 25
Autorisation .............................................................................................................................................. 25
Header ........................................................................................................................................................ 25
Body ............................................................................................................................................................ 25
Request ...................................................................................................................................................... 25
8.3 Beispiel „Create Order Finalized” in Maximalausprägung (Sandbox) ............................... 26
JSON ........................................................................................................................................................... 26
cURL............................................................................................................................................................ 26
URL .............................................................................................................................................................. 26
Autorisation .............................................................................................................................................. 26
Header ........................................................................................................................................................ 26
Body ............................................................................................................................................................ 26
Request ...................................................................................................................................................... 26
8.4 Beispiel für „Create Order Finalized” in Minimalausprägung (Sandbox) ......................... 28
8.4.1 URL ............................................................................................................................................ 28
Warenpost International Seite 5 von 65
Anbindungsleitfaden
5
8.4.2 Autorisation ............................................................................................................................. 28
8.4.3 Header ...................................................................................................................................... 28
8.4.4 Body .......................................................................................................................................... 28
8.4.5 Response .................................................................................................................................. 29
8.5 Beispiel für „Get Item Labels” ...................................................................................................... 30
8.5.1 URL ............................................................................................................................................ 30
8.5.2 Autorisation ............................................................................................................................. 30
8.5.3 Header ...................................................................................................................................... 30
8.5.4 Body .......................................................................................................................................... 30
8.5.5 Response .................................................................................................................................. 30
8.6 Beispiel für „Create Order Open” ................................................................................................ 31
8.6.1 URL ............................................................................................................................................ 31
8.6.2 Autorisation ............................................................................................................................. 31
8.6.3 Header ...................................................................................................................................... 31
8.6.4 Body .......................................................................................................................................... 31
8.6.5 Response .................................................................................................................................. 31
8.7 Beispiel für „Add Items to an Order” in Minimalausprägung .............................................. 32
8.7.1 URL ............................................................................................................................................ 32
8.7.2 Autorisation ............................................................................................................................. 32
8.7.3 Header ...................................................................................................................................... 32
8.7.4 Body .......................................................................................................................................... 32
8.7.5 Response .................................................................................................................................. 32
8.8 Beispiel für „Add Items to an Order” in Maximalausprägung.............................................. 34
8.8.1 URL ............................................................................................................................................ 34
8.8.2 Autorisation ............................................................................................................................. 34
8.8.3 Header ...................................................................................................................................... 34
8.8.4 Body .......................................................................................................................................... 34
8.8.5 Response .................................................................................................................................. 35
8.9 Beispiel für ”Get Item Label” ........................................................................................................ 37
8.9.1 URL ............................................................................................................................................ 37
8.9.2 Autorisation ............................................................................................................................. 37
8.9.3 Header ...................................................................................................................................... 37
8.9.4 Body .......................................................................................................................................... 37
8.9.5 Response .................................................................................................................................. 37
8.10 Beispiel für einen „Finalize Order” request (Sandbox): .................................................... 38
8.10.1 URL ............................................................................................................................................ 38
8.10.2 Autorisation ............................................................................................................................. 38
8.10.3 Header ...................................................................................................................................... 38
Warenpost International Seite 6 von 65
Anbindungsleitfaden
6
8.10.4 Body .......................................................................................................................................... 38
8.10.5 Response .................................................................................................................................. 38
8.11 Beispiel für einen „Get item“ request (Sandbox) ............................................................... 41
8.11.1 URL ............................................................................................................................................ 41
8.11.2 Autorisation ............................................................................................................................. 41
8.11.3 Header ...................................................................................................................................... 41
8.11.4 Body .......................................................................................................................................... 41
8.11.5 Response .................................................................................................................................. 41
8.12 Beispiel für einen „Get Order“ Request (Sandbox) ............................................................ 43
8.12.1 URL ............................................................................................................................................ 43
8.12.2 Autorisation ............................................................................................................................. 43
8.12.3 Header ...................................................................................................................................... 43
8.12.4 Body .......................................................................................................................................... 43
8.12.5 Response .................................................................................................................................. 43
8.13 Beispiel für einen „Get shipments for an order“ Request ................................................ 46
8.13.1 URL ............................................................................................................................................ 46
8.13.2 Autorisation ............................................................................................................................. 46
8.13.3 Header ...................................................................................................................................... 46
8.13.4 Body .......................................................................................................................................... 46
8.13.5 Response .................................................................................................................................. 46
8.14 Beispiel für einen „validate order item“ Request ............................................................... 48
8.14.1 URL ............................................................................................................................................ 48
8.14.2 Autorisation ............................................................................................................................. 48
8.14.3 Header ...................................................................................................................................... 48
8.14.4 Body .......................................................................................................................................... 48
8.14.5 Response .................................................................................................................................. 50
9 Detaillierte Feldbeschreibung ............................................................................................. 51
10 Produktliste Warenpost International ............................................................................ 55
11 Liste der Länder, in die Warenpost International verschickt werden kann ................. 56
12 Support und Ansprechpartner ......................................................................................... 65
Warenpost International Seite 7 von 65
Anbindungsleitfaden
7
1 Einleitung
1.1 Was ist Warenpost International?
Warenpost International ist die Lösung für den Versand kleinteiliger Produkte, Ersatzteile, Warenproben oder Muster.
verschiedene Varianten und Tarife
Nutzung ausschließlich online
Mehrere Zugangskanäle
Einlieferung der physischen Sendungen wie gewohnt
Abrechnung über Internetmarke
Weitere Details finden Sie im offiziellen Produktblatt:
https://www.deutschepost.de/content/dam/dpag/images/B_b/Briefe_ins_Ausland/warenpostintern
ational/dp-warenpost-international-produktblatt-012020.pdf
Informationen zur Nutzung des Kilotarifs finden Sie unter: https://www.deutschepost.de/de/b/briefe-
ins-ausland/warenpost-international/warenpost-international-kilotarif.html
Antworten auf weitere grundsätzliche Fragen finden Sie auch unter
https://www.deutschepost.de/de/b/briefe-ins-ausland/haeufige-fragen.html
1.2 Wofür ist dieser Leitfaden?
Auf den nachfolgenden Seiten finden Sie eine erste Anleitung zur Erstellung von Aufträgen für Warenpost International und die Erzeugung der dafür genutzten Sendungsetiketten (Label) über die ReST-basierte Deutsche Post International Shipping-API (aka PacketPlus-API).
Die API unterstützt Sie dabei besonders in folgenden Aspekten:
Erfassung von Zollinhaltsdaten o Bei Sendungen in Nicht-EU-Länder ist neben Absender und Empfänger auch die Angabe des
Sendungsinhalts zwingend erforderlich. Diese Daten werden digital an die Zollbehörden des jeweiligen Ziellandes übermittelt.
Nutzung international standardisierter Etiketten
o Die Nutzung von Warenpost International setzt im Wesentlichen die Nutzung des „Harmonized
Labels“, einem standardisierten Labelformat für den internationalen Warenversand, voraus.
(vgl.
https://www.deutschepost.de/content/dam/dpag/images/B_b/Briefe_ins_Ausland/warenpos
tinternational/dp-warenpost-international-harmonisiertes-label-01-2020.pdf ).
Lediglich beim Warenversand innerhalb der EU ohne Sendungsverfolgung (EU untracked) kann darauf verzichtet werden. Jedoch empfehlen wir auch für diese Sendungen, das Harmonized Label zu nutzen. Über
https://www.deutschepost.de/content/dam/dpag/images/B_b/Briefe_ins_Ausland/warenpostinternational/dp-warenpost-international-produktblatt-012020.pdfhttps://www.deutschepost.de/content/dam/dpag/images/B_b/Briefe_ins_Ausland/warenpostinternational/dp-warenpost-international-produktblatt-012020.pdfhttps://www.deutschepost.de/de/b/briefe-ins-ausland/warenpost-international/warenpost-international-kilotarif.htmlhttps://www.deutschepost.de/de/b/briefe-ins-ausland/warenpost-international/warenpost-international-kilotarif.htmlhttps://www.deutschepost.de/de/b/briefe-ins-ausland/haeufige-fragen.htmlhttps://www.deutschepost.de/content/dam/dpag/images/B_b/Briefe_ins_Ausland/warenpostinternational/dp-warenpost-international-harmonisiertes-label-01-2020.pdfhttps://www.deutschepost.de/content/dam/dpag/images/B_b/Briefe_ins_Ausland/warenpostinternational/dp-warenpost-international-harmonisiertes-label-01-2020.pdf
Warenpost International Seite 8 von 65
Anbindungsleitfaden
8
die PacketPlus-API wird für alle Produkte Warenpost International das Harmonized Label in der jeweils aktuellen Version erzeugt.
Nutzung vorhandener Zahlungsart per Internetmarke
o Die Frankierung auf dem Label wird über die Internetmarke erstellt. Daher ist zur Nutzung von
Warenpost International über die API auch eine Portokasse zur Bezahlung der erzeugten
Internetmarken erforderlich. Die API stellt dabei eine (implizite) ReST-Service-Fassade für den
ihnen evtl. bekannten Internetmarken-SOAP-Webservice bereit.
1.3 Welche Möglichkeiten gibt es sonst noch, Warenpost International zu nutzen?
Falls die Selbstprogrammierung unter Nutzung der API nicht in Frage kommt, bieten wir zusätzliche, hier nicht weiter ausgeführte, Möglichkeiten zur Nutzung von Warenpost International an:
Alle Produkte der Kategorie „Warenpost International “ werden über verschiedene elektronische Plattformen angeboten, aktuell verfügen Sie über drei weitere Möglichkeiten:
1. Für kleine Versandmengen bieten wir registrierten Geschäftskunden den Abruf über den Shop der
Deutschen Post an unter https://shop.deutschepost.de/shop/katalog/index.jsp.
Der Online-Shop der Deutschen Post bietet Ihnen folgende Vorteile:
a. Einfache Datenerfassung
b. Erstellung des empfohlenen Harmonized Label (aber eben nur einzeln)
c. Kein eigener Programmieraufwand
2. Für Kunden mit großem Sendungsvolumen steht das elektronische Auftragsmanagement der
Deutschen Post (AM.exchange) auch für Warenpost International offen. Die Direktanbindung
finden Sie unter deutschepost.de/am (
https://www.deutschepost.de/de/e/elektronisches_auftragsmanagement.html)
3. Darüber hinaus ist Warenpost International in verschiedene Versand- und Logistiksoftwareprodukte
von Drittanbietern integriert. Den aktuellen Stand erhalten Sie jeweils unter
https://www.deutschepost.de/de/b/briefe-ins-ausland/warenpost-international.html sowie unter
https://www.deutschepost.de/de/i/internetmarke-porto-
drucken/geschaeftskunden/partner.html#partnerfinder
https://www.deutschepost.de/de/e/elektronisches_auftragsmanagement.htmlhttps://www.deutschepost.de/de/b/briefe-ins-ausland/warenpost-international.htmlhttps://www.deutschepost.de/de/i/internetmarke-porto-drucken/geschaeftskunden/partner.html#partnerfinderhttps://www.deutschepost.de/de/i/internetmarke-porto-drucken/geschaeftskunden/partner.html#partnerfinder
Warenpost International Seite 9 von 65
Anbindungsleitfaden
9
1.4 Wofür ist dieser Leitfaden nicht?
Diese Anleitung beschreibt nicht den Versand nationaler Warenpost oder anderer Brief- oder Paketprodukte.
Sie ersetzt auch nicht die möglicherweise bekannte Beschreibung der SOAP-Schnittstelle für die Nutzung der
Internetmarke.
Warenpost International Seite 10 von 65
Anbindungsleitfaden
10
2 Grundlegende Funktionsprinzipien von Warenpost International
2.1 Funktionalitäten
ReST-API als Ersatz der bekannten Internetmarken-SOAP-Schnittstelle o sofern Harmonized Label benötigt o sofern Zollinhaltsdaten benötigt
Integration von Portokassen über Autorisierungsfunktion
Zusammenstellung von Einzelsendungen zu größeren Einheiten, sog. Orders oder Aufträgen
Übertragung in die Systeme der Deutschen Post zur Weiterverarbeitung und automatischen Übertragung von Zollinhaltsdaten
Erzeugung von Harmonized Labels/Sendungsetiketten mittels standardisierter ReST-Calls
2.2 Zugang zu den Systemen
Der Einsatz der ReST-API für Warenpost International ist ausschließlich für Geschäftskunden (Selbstprogrammierer) und Partner vorgesehen. Zugangsdaten können über den zuständigen vertrieblichen Ansprechpartner oder auch direkt vom technischen Support angefordert werden.
2.3 Umgebungen
2.3.1 Sandbox – Ihre Spielwiese
Testsystem zur Unterstützung für Partner und Selbstprogrammierer
Bereitstellung ReST-Schnittstelle zur kompletten Abbildung des Workflows
Keine Kosten durch Nutzung von Testportokasse
Geringer Umstellungsaufwand auf Livesystem
2.3.2 Livesystem
Bereitstellung ReST-Schnittstelle zur kompletten Abbildung des Workflows
Nutzung existierender Portokassen (Internetmarke) zur Abrechnung der Versände; Kilotarif-
Abrechnung zusätzlich über AM
Vollständige Nutzung der Produkte nur für Geschäftskunden mit Kilotarifen
2.4 Einschränkungen der API Warenpost International
Tracking von Sendungsinformationen über die API ist nicht möglich. Funktionalität nur über die
bekannten Methoden des Track Event Information Services bzw. Aufruf der Webseite zu Tracking
Informationen der Deutsche Post DHL.
Warenpost International Seite 11 von 65
Anbindungsleitfaden
11
3 Aufschaltprozess
3.1 Dokumentation
Diese Dokumentation soll Ihnen die fachlichen und technischen Prinzipien der ReST-API für Warenpost International verdeutlichen und Ihnen die notwendigen Informationen für eine erfolgreiche Programmierung bereitstellen. Im Bestreben, Ihnen den bestmöglichen Support zu bieten und die Dokumentation laufend zu verbessern, nehmen wir Anregungen bzgl. Unklarheiten, Ungenauigkeiten oder Fehlern zur Verbesserung dieser Dokumentation unter [email protected] gerne entgegen.
3.2 Account zu Testsystem und Testportokasse erhalten
Die Aufschaltung für Warenpost International mittels API (für Selbstprogrammierer) erfolgt im ersten Schritt mit einer Aufschaltung für die Testumgebung („Sandbox“) und stellt die hierfür notwendigen Zugänge zur Verfügung. Minimale Voraussetzungen hierfür sind:
Ihr Firmenname
Ihr Name und Ihre Email
Post-Kundennummer (EKP)
Falls Sie bereits über eine Partneranbindung (PARTNER_ID) an die Internetmarke (in der Liveumgebung) verfügen, wäre eine Information darüber wünschenswert. Für den Test in der Sandbox wird sie nicht benötigt, im Vorfeld können wir aber ggfs. bereits „Stolpersteine“ beseitigen, die sich ggfs. durch unklare Formulierungen in dieser Doku ergeben.
Das Anlegen der Zugänge auf Seiten der Post beinhaltet:
Das Anlegen notwendiger Kundenstammdaten zur Nutzung individueller Tarife (Kilotarif).
die Bereitstellung einer kundenspezifischen Testportokasse in der Sandbox. Die Portokasse stellt die erste Autorisierungsebene innerhalb der Requests an die API dar.
Die Testportokasse in Form einer fiktiven Mailadadresse und das Portokassenpasswort werden vom API-Support erzeugt und dem Kunden per E-Mail übermittelt. Diese kundenindividuellen Daten dienen als Nutzername und Passwort, um den zur Nutzung aller folgenden Requests jeweils notwendigen Usertoken zu erzeugen. Bitte beachten Sie, dass in der Sandbox Ihre möglicherweise bereits existierenden Portokassen aus der Produktionsumgebung oder eine im Rahmen einer Anbindung an die Internetmarke (SOAP-API) existierenden Testportokassen nicht nutzbar sind. Test- und Produktionsumgebung sind strikt voneinander getrennt. Einschränkungen:
mailto:[email protected]
Warenpost International Seite 12 von 65
Anbindungsleitfaden
12
Eine Entwicklung gegen die Liveumgebung ist für die Nutzung der PacketPlus-API nicht zweckmäßig und wird nur in Ausnahmefällen unterstützt.
3.3 Testing
Der Kunde kann nun mit den ihm zur Verfügung gestellten Zugangsdaten seine Software für die Erzeugung von Aufträgen und Labels mittels der erforderlichen ReST-Calls gegen die Sandbox durchführen. Nach erfolgreicher Entwicklung erfolgt dann auf Kundenwunsch der Schritt zur Liveumgebung.
3.4 Umstellung der Software auf die Liveumgebung
Der Wechselzeitpunkt auf die Liveumgebung wird vom Kunden selbst bestimmt. Hierfür sind nur
wenige Schritte notwendig, die dafür notwendigen Informationen und Zugangsdaten liegen in der
Regel bereits im Vorfeld vor, können durch den Kunden selbst durchgeführt bzw. angefordert
werden.
Notwendige durchzuführende Anpassungen und Voraussetzungen:
1. Die Aufrufpfade der API ändern sich von https://api-qa.deutschepost.com auf
https://api.deutschepost.com
2. Für die Autorisierung muss eine Kunden-Portokasse aus der Liveumgebung genutzt werden. In der
Regel liegen Nutzername („Mailadresse“ der Portokasse) sowie Passwort dem Kunden bereits vor. Ist
dies nicht der Fall, kann der Kunde eine individuelle, sich selbst zugeordnete Portokasse unter
https://portokasse.deutschepost.de/portokasse/#!/ selbst erstellen.
Hinweis: Nutzernamen und Passwort dürfen kein „&“ enthalten!
3. Zur Nutzung der Kilotarif-Produkte ist der Abschluss eines entsprechenden Vertrags erforderlich, dies
kann online unter
https://www.dhl.de/content/dpks/de/themenauswahl/kundenservice-formulare/warenpost-
international.html geschehen. Das Vorliegen einer Post-Kundennummer (EKP) wird dabei
vorausgesetzt.
4. Stellen Sie sicher, dass bei (geplanter) Nutzung von Kilotarifen die EKP auch in der genutzten
Kundenportokasse hinterlegt ist. Dies können Sie in den Einstellungen Ihrer Portokasse überprüfen
bzw. ändern (siehe Screenshot).
https://api.deutschepost.com/https://portokasse.deutschepost.de/portokasse/#!/https://www.dhl.de/content/dpks/de/themenauswahl/kundenservice-formulare/warenpost-international.htmlhttps://www.dhl.de/content/dpks/de/themenauswahl/kundenservice-formulare/warenpost-international.html
Warenpost International Seite 13 von 65
Anbindungsleitfaden
13
Beachten Sie, dass es nach Eintragen Ihrer EKP bis zu 24h dauern kann, bis Kilotarife mit Ihrer
Portokasse nutzbar sind.
Die Nutzung von Einzeltarifprodukten ist dagegen nicht an eine EKP gebunden.
5. Sofern noch nicht vorliegend, sollte nun spätestens die Anforderung von PARTNER_ID und SCHLUESSEL_DPWN_PARTNER beim Team der Internetmarke (mail: [email protected]) erfolgt sein. Falls diese noch nicht vorliegen, können sie über folgenden Link beantragt werden https://www.deutschepost.de/content/dam/dpag/images/i_i/Internetmarke/partnerwerden/dp-internetmarke-anmeldebogen-api-anbindung.pdf Partnern der Deutschen Post, die bereits die Programmierung der Internetmarke nutzen, liegen diese Daten in der Regel vor. Diese kundenindividuellen Daten werden in der Liveumgebung für die Berechnung eines gültigen Request-Headers zwingend benötigt. Falls erforderlich, können diese beim Team Internetmarke erneut angefordert werden.
6. Anders als in der Sandbox ist die Gültigkeit eines Request-Header durch Verwendung eines
Timestamps auf vier Minuten begrenzt. Das bedeutet, dass ein gültiger Request-Header jeweils
zeitnah neu berechnet werden muss. Die genaue Berechnungsvorschrift zur Generierung des Headers
finden Sie in Kapitel 7.1 (Umstieg aufs Livesystem).
Zusammenfassend gesagt, sind Ihre Requests gegen das Livesystem also immer durch Ihre
individuelle Liveportokasse („Internetmarken-Token“) autorisiert und Ihren individuellen, jeweils
dynamisch erzeugten, Header authentifiziert.
mailto:[email protected]://www.deutschepost.de/content/dam/dpag/images/i_i/Internetmarke/partnerwerden/dp-internetmarke-anmeldebogen-api-anbindung.pdfhttps://www.deutschepost.de/content/dam/dpag/images/i_i/Internetmarke/partnerwerden/dp-internetmarke-anmeldebogen-api-anbindung.pdf
Warenpost International Seite 14 von 65
Anbindungsleitfaden
14
4 Workflows der Auftragserstellung (“Logiken”)
Um einen Auftrags („order“) für Warenpost International über die API zu erstellen, existieren aktuell zwei verschiedene Möglichkeiten (im weiteren Verlauf “Logiken“ genannt). Beiden Logiken liegt ein grundsätzlicher Workflow zur Erstellung von Aufträgen zugrunde. Dieser richtet sich letzten Endes nach den individuellen Prozessen und Bedürfnissen der sie verwendenden Kunden. Vereinfacht gesagt, ein Auftrag kann entweder in einem einzigen Schritt vollständig erzeugt werden oder aber eine Auftragshülle wird sukzessive mit Auftragspositionen gefüllt.
4.1 Gemeinsamkeiten der Logiken:
1. Authentifizieren 2. Zusammenstellung eines Auftrags inkl. der Auftragspositionen („items“)
a. Druck der Versandetiketten („Label“) vor Finalisierung 3. Finalisierung des Auftrags
a. alternativ Druck der Versandetiketten nach Finalisierung Die Finalisierung eines Auftrags sorgt für seine Übertragung und Weiterverarbeitung in die Systeme der Deutschen Post. Unter anderem wird die notwendige Übertragung der Sendungsdaten in die Zollsysteme der Empfängerländer sowie (zukünftig (!) auch die Übertragung an das Auftragsmanagement AM der Deutschen Post) angestoßen. Deshalb kann ein finalisierter Auftrag nicht mehr verändert werden. Ein finalisierter Auftrag wird als Shipment oder „AWB“ gespeichert und erhält eine AWB-ID (sichtbar in der Response beim Finalisieren).
Ein AWB entspricht in etwa der möglicherweise aus dem Bereich „Auftragsmanagement“ bereits bekannten Einlieferungsliste.
4.2 Unterschiede der Logiken
Unterschiede gibt es, wie gesagt, in der zeitlichen Abfolge/Dauer der Auftragserstellung, also letzten Endes im Workflow. Ein Auftrag kann
1. In einem einzigen Vorgang erstellt und abgeschlossen werden („Logik 1“) oder 2. eröffnet, über einen Zeitraum hinweg mit Items gefüllt und erst am Schluss abgeschlossen/finalisiert
werden („Logik 2“).
Warenpost International Seite 15 von 65
Anbindungsleitfaden
15
4.3 Logik 1: „Create Order Finalized“
Diese Logik eignet sich, wenn alle Sendungen („Items“), die zu einem Auftrag zusammengefasst werden sollen, bereits bekannt/fertig sind. In einem einzigen großen Request wird der Auftrag erstellt, die Sendungen diesem Auftrag zugeordnet und der Auftrag automatisch abgeschlossen (finalisiert). Daraufhin können dann alle zu diesem Auftrag gehörenden Label mit einem weiteren Request erstellt werden. Eine nachträgliche Änderung des Auftrags ist jedoch in dieser Logik nicht mehr möglich. Aus Performancegründen sollte die Anzahl der Sendungen hier nicht mehr als 300 Sendungen in einem Auftrag betragen. Die drei hierfür mindestens zu implementierenden Requests sind: 1. Get Access Token 2. Create Order 3. Get Item Labels Darüber hinaus existiert eine Reihe weiterer nutzbarer Requests, welche Ihnen im Verlauf dieses Dokumentes vorgestellt werden.
4.4 Logik 2: „Create Order Open“
Bei dieser Logik wird zunächst eine Auftragshülle angelegt und danach werden einzelne Sendungen hinzugefügt. Die Item-Label können dann einzeln und direkt nach dem Hinzufügen der Sendungen zum Auftrag erzeugt werden.
Die maximal einem Auftrag zuordenbare Menge an Sendungen beträgt in dieser Logik 5000.
Aus Performancegründen und zur Erhöhung der Übersichtlichkeit wird jedoch empfohlen, deutlich unter diesem Maximums zu bleiben.
Alternativ (und wie in Logik 1) können auch hier alle Label nach Finalisierung eines Auftrages erzeugt werden. In diesem Fall sollte auch hier die Anzahl von Sendungen in einem Auftrag auf maximal 300 Sendungen beschränkt werden.
Die hierfür mindestens zu implementierenden Requests sind: 1. Get Access Token 2. Create Order 3. Add Items to an Order 4. Get Item Label 5. Finalize Order Auch hier stehen weitere Requests zur Verfügung, welche ihnen im Verlauf dieses Dokuments vorgestellt werden.
Warenpost International Seite 16 von 65
Anbindungsleitfaden
16
5 Prozesse der Auftragslogik - Basics
5.1 Authentizierung
Zur erfolgreichen Ausführung eines Requests ist jeweils das Vorliegen eines (zeitlich begrenzen) gültigen Zugriffstokens erforderlich.
Die API nutzt das OAuth 2.0-Protokoll, um durch eine Kombination aus Authentifizierung und Autorisierung durch den „Get Access Token“ API-Call ein „OAuth2 Bearer Token“ zu generieren und Ihnen dadurch den Zugang zur „Deutschen Post International Shipping API“ zu ermöglichen
Die Autorisierung und damit die Nutzung der API ist durch HTTP Basic Authentifizierung gesichert, bei der Sie Ihre Portokassen E-Mail und das Portokassenpasswort angeben müssen, da hierüber die Bezahlung durch die Internetmarke erfolgt. Vereinfacht gesagt: die Informationen des Headers berechtigt einen Partner zum grundsätzlichen Zugriff auf das System der Internetmarke. Dieser Zugriff erfolgt implizit durch die Nutzung der entsprechenden API-Requests. Ein expliziter Aufruf, wie es der Partner ggfs. aus der Internetmarken-(SOAP)-API kennt, findet hier nicht statt. In der Sandbox nutzt er die PARTNER_ID (auch bekannt als „Channel“) „DP_LT“ der Deutschen Post (die als alleiniger Partner in der Sandbox fungiert), in der Liveumgebung nutzt ein Partner oder Eigenentwickler seine individuelle PARTNER_ID. Die Nutzung einer spezifischen Portokasse für einen Auftrag (nämlich über den mit der jeweiligen Autorisierung abgerufenen Token) legt dann zum Beispiel fest, aus welcher Kasse resp. von welchem Endkunden/Mandanten die jeweiligen Sendungen bezahlt werden (vereinfacht gesagt).
5.2 Testumgebung (Sandbox)
In der Sandbox wird ein vereinfachter Authentifizierungsprozess genutzt, um u.a. Aufwände im Zuge einer Entwicklung zu minimieren. Die Gültigkeitsdauer eines durch die Internetmarke bereitgestellten Tokens ist deutlich länger und die Zugangsberechtigung zum System der Internetmarke wird durch einen für alle Nutzer vereinheitlichten Header sichergestellt.
5.3 Livesystem
Im Livesystem erfolgt der grundsätzliche Zugang über einen firmenspezifischen und jeweils zeitnah neu zu berechnenden Header (Aktualisierung des Timestamps und der abhängigen Felder), darüber hinaus beträgt die Gültigkeit eines Tokens lediglich vier Minuten.
Warenpost International Seite 17 von 65
Anbindungsleitfaden
17
6 Detailprozesse der Auftragslogik - Ordererzeugung
6.1 Prozess/Logik Create Order Finalized
6.1.1 Request „Get Access Token“
Als ersten Schritt müssen Sie sich gegen die API authentifizieren, um Warenpost International nutzen zu können. Dazu wird ein Token über die Internetmarke abgerufen. Im Folgenden zur Verdeutlichung ein Beispiel aus der Testumgebung; wie bereits oben erwähnt, unterscheiden sich die notwendigen Angaben zur Authentifizierung auf dem Testsystem von denen in der Produktion. Daher wird das folgende Beispiel auch nur in der Testumgebung funktionieren!
6.1.2 Beispiel:
Voraussetzungen/Annahmen:
1. Für die Testumgebung erhalten Sie ihre Portokassen-Email und -Passwort von der Deutschen Post im folgenden beispielhaften Format. Zusammen mit den weiter unten angegeben Headerdaten können Sie in unserer Testumgebung ein Access Token erhalten. Das Vorgehen zur Produktivnutzung ist in Kapitel 7 beschrieben.
2. Beispiel für Portokassen-Email: [email protected]
3. Beispiel für Portokassen Passwort: wapoTestPw123
4. Im HTTPS Request muss die HTTP Basic Authentifizierung genutzt werden.
Portokassen-Email und Portokassen-Passwort müssen dabei base64 verschlüsselt werden. Bei der Verschlüsselung werden E-Mail und das Passwort mit einem Doppelpunkt „:“ getrennt. Weiterhin ist UTF-8 als Characterset zu verwenden.
Authentifizierung: Basic
Warenpost International Seite 18 von 65
Anbindungsleitfaden
18
KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
Diese konkreten vier Header-Informationen sind, wie bereits erwähnt, ausschließlich in der Testumgebung nutzbar, da in dieser die dynamische Prüfung von TIMESTAMP und Hashwert (PARTNER_SIGNATURE) entfällt.
6. Sie erhalten daraufhin eine Antwort (Response) im SOAP/XML-Format mit einem gültigen Token, dem UserToken für die weiterführenden Requests. Dieses Format wurde gewählt, da es den meisten Kunden bereits von den nativen Internetmarken-SOAP-Requests bekannt sein dürfte. Alle weiteren Responses sind demgegenüber in JSON gehalten. Beispielantwort/-Response: yDI0S6akfOJsY7DV6EcKeaAfsCIAlbpGKv1ppielQ6o= 484440 false
6.1.3 Request „Create Order“
Der nächste Schritt ist die Anlage einer sogenannten „Order“. Dies ist eine Auftragshülle zur Erfassung von 1 – max. 5000 Einzelsendungen, wobei wir je nach Nutzungskontext empfehlen deutlich weniger Sendungen in einem Auftrag zusammenzufassen. Für jede Einzelsendung können die folgenden Datenfelder erfasst werden. Der Content-Part ist dabei nur für Nicht-EU-Sendungen notwendig. Details sowie die Angabe welche Felder verpflichtend oder optional sind, finden sie in Kap. 7. In Kap. 6 finden sie Beispiel-Requests. Informationen zu den nutzbaren Länderkürzeln finden sie in Kap. 9.
-customerEkp
-orderStatus
Paperwork:
Items (1/2):
-product -serviceLevel
Items(2/2):
-returnItemWanted -shipmentAmount
-shipmentCurrency
Contents:
-contentPieceHsCode -contentPieceDescription
-contentPieceNetweight
Warenpost International Seite 19 von 65
Anbindungsleitfaden
19
-contactName -jobReference
-pickupType -awbCopyCount
-custRef -recipient
-recipientPhone -recipientFax
-recipientEmail -addressLine1
-addressLine2 -addressLine3
-city -state
-postalCode -destinationCountry
-shipmentGrossWeight -senderName
-senderAddressLine1 -senderAddressLine2
-senderCountry -senderCity
-senderPostalCode -senderPhone
-senderEmail -shipmentNaturetype
-contentPieceOrigin -contentPieceAmount
-contentPieceValue
6.1.4 Request „Get Item Labels”
Mit diesem Request rufen sie alle Labels ihrer Sendungen in einer Datei ab und können diese nun ausdrucken. Dabei stehen ihnen folgende Optionen zur Verfügung: “image/png” (A6)
“image/png+6x4” (6x4 inch)
“application/pdf” (A6)
“application/pdf+singlepage” (A6)
“application/pdf+singlepage+6x4” (6x4 inch)
“application/zpl” (A6)
“application/zpl+rotated” (rotated by 90 degrees for label printers)
“application/zpl+6x4” (6x4 inch)
“application/zpl+rotated+6x4” (6x4 inch and rotated by 90 degrees for label printers)
Die Festlegung erfolgt im Header-Parameter ACCEPT.
Warenpost International Seite 20 von 65
Anbindungsleitfaden
20
6.2 Beschreibung der Logik: Create Order Open
6.2.1 Request „Get Access Token”
Als erstes müssen sie einen Token über die Internetmarke abfragen. Siehe Kapitel 3.1.
6.2.2 Request „Create Order”
Nun können sie einen neuen Auftrag erstellen/öffnen, in welchen Sie die Items über den Tag verteilt hinzufügen können. Benötigte Felder (required fields):
customerEkp
orderStatus
6.2.3 Request „Add Items to an Order”
Nach der Erstellung eines Auftrags werden nun die Sendungen einzeln oder max. 2500 mit diesem Request hinzugefügt. Details zu den einzelnen Feldern finden sie in Kap. 7. In Kap. 6 finden sie Beispiele. Informationen zu den nutzbaren Länderkürzeln finden sie in Kap. 9
Items (1/2): -product
-serviceLevel -custRef
-recipient -recipientPhone
-recipientFax -recipientEmail
-addressLine1 -addressLine2
-addressLine3 -city
-state -postalCode
-destinationCountry
Items(2/2): -returnItemWanted
-shipmentAmount -shipmentCurrency
-shipmentGrossWeight -senderName
-senderAddressLine1 -senderAddressLine2
-senderCountry -senderCity
-senderPostalCode -senderPhone
-senderEmail -shipmentNaturetype
Contents: -contentPieceHsCode
-contentPieceDescription -contentPieceNetweight
-contentPieceOrigin -contentPieceAmount
-contentPieceValue
6.2.4 Request „Get Item Label“
Mit diesem Request rufen sie jeweils genau ein Label in einer Datei ab und können dieses nun ausdrucken. Dabei stehen ihnen folgende Optionen zur Verfügung: “image/png” (A6)
Warenpost International Seite 21 von 65
Anbindungsleitfaden
21
“image/png+6x4” (6x4 inch)
“application/pdf” (A6)
“application/pdf+singlepage” (A6)
“application/pdf+singlepage+6x4” (6x4 inch)
“application/zpl” (A6)
“application/zpl+rotated” (rotated by 90 degrees for label printers)
“application/zpl+6x4” (6x4 inch)
“application/zpl+rotated+6x4” (6x4 inch and rotated by 90 degrees for label printers)
Die Festlegung erfolgt im Header-Parameter ACCEPT
6.2.5 Request „Finalize Order“
Den erstellten Auftrag müssen sie nun noch abschließen/finalisieren. Dies können sie einmalig am Ende eines Tages machen oder nach Bedarf über den Tag verteilt. Z.B. um mehrere Label mit einem Request zu erzeugen oder um die Anzahl der Sendungen pro Auftrag zu begrenzen.
6.3 Weitere verfügbare Requests
6.3.1 Get item
Sie erhalten alle Information über das angegebene Item.
6.3.2 Get Order
Sie erhalten die Auftragsdaten (den „Auftragskopf“) für die angegebenen orderID.
6.3.3 Get shipments for an order
Sucht nach Sendungen, die an eine bestimmte Bestellung angehängt sind. Antworten mit dem Status "Nicht gefunden" (404) erscheinen, wenn keine Bestellung vorhanden ist oder wenn dieser Bestellung keine Sendungen beigefügt sind.
6.3.4 Validate order items
Vorabprüfung eines create-order Auftrages.
Beispiele für diese Requests finden sie in Kap. 8
7 Umstieg und Einsatz im Produktivsystem
7.1 Voraussetzungen
Warenpost International Seite 22 von 65
Anbindungsleitfaden
22
Jeder Request für Warenpost International wird daraufhin geprüft, ob die Anfrage von einem zugelassenen System stammt. Dazu übermittelt das anfragende System im Header folgende Authentifizierungsinformationen:
Header Element
Kurzbeschreibung
notwendig (JA/NEIN)
Typ Länge Hash Beispiel- Werte
Default
PARTNER_ID
Die mit dem Partner vereinbarte ID.
JA STRING 5 Y IMPAR
REQUEST_TIMESTAMP
Absendezeitpunkt
(Datum und Uhrzeit) des Requests. Darf bei
Absetzten des Requests nicht älter als
vier Minuten sein, ansonsten wird der
Request abgewiesen.
JA DDMMYYY
Y-HHMMSS
15 Y 02022020-
0135500
KEY_PHASE
vereinbarte Version des
Geheimnisses (Default: 1).
JA NUMBER 3 Y 1 1
SIGNATURE_ALGORITHM
Verwendeter Signaturalgorithmus
(entfällt bei Warenpost International; nur für
Internetmarken-API relevant)
NEIN STRING 16 Y md5
sha-256
sha-384
sha-512
Md5
PARTNER_SIGNATURE
Signatur (Hash) des
Requests über die zwischen DPAG und
Drittanbieter definierten Felder.
Stimmt der Hash nicht überein, so wird der
Request abgewiesen. Die genaue
Zusammensetzung der Signatur ist
nachfolgend beschrieben.
JA ALPHANU
M-
ERISCH
8 Y a0b1c2d3
Die Signatur/Prüfsumme wird als MD5-Hash, basierend auf den Inhalten der folgenden Felder berechnet:
PARTNER_ID
REQUEST_TIMESTAMP
KEY_PHASE
SCHLUESSEL_DPWN_PARTNER
Warenpost International Seite 23 von 65
Anbindungsleitfaden
23
Für die Prüfsummenbildung werden die Inhalte der o. g. Felder aneinandergehängt. Alle Feldinhalte werden rechts und links um Blanks bereinigt und mit dem Trenner „::“ versehen konkateniert. Wenn ein Feld leer oder im Request nicht vorhanden ist, werden folgende Trennzeichen angewendet „::::“ Das Ergebnis wird als Eingabe für die HASH Erstellung verwendet, das Ergebnis ist ein MD5-Hashwert. Die Bytes werden in ihrer hexadezimalen Darstellung (mit a–f in Kleinbuchstaben) in einen Text umgewandelt. Hexadezimale Darstellungen von Bytes, die nur über eine Stelle verfügen (0–f) werden um eine führende Null erweitert (00–0f). Die ersten 8 Zeichen des daraus resultierenden Textes werden im Feld PARTNER_SIGNATURE abgelegt. Auf der Empfängerseite (also der Post) werden dieselben Schritte zur Verifizierung der PARTNER_SIGNATURE durchgeführt. Zusätzlich wird geprüft, ob zwischen dem Wert REQUEST_TIMESTAMP und dem aktuellen Systemdatum nicht mehr als vier Minuten vergangen sind.
Berechnungsbeispiel: PARTNER_ID, SCHLUESSEL_DPWN_PARTNER: statisch je Partner KEY_PHASE: immer = „1“ TIMESTAMP: aktuelle Zeit Ergebnis: PARTNER_SIGNATURE
POST-Parameter Wert
URL https://internetmarke.deutschepost.de/OneClickForApp/V3 (nur z.K.)
PARTNER_ID XXXXX
REQUEST_TIMESTAMP 15012020-102200
KEY_PHASE 1
SCHLUESSEL_DPWN_PARTNER 5q6gTCuKgrgoAEbH47Wtvh6mtYEWZKEZ
Concat PARTNER_ID::REQUEST_TIMESTAMP::KEY_PHASE::SCHLUESSEL_DPWN_PARTNER
Signatur-String XXXXX::15012020-102200::1::5q6gTCuKgrgoAEbH47Wtvh6mtYEWZKEZ
md5-Hash
MD5-Hash 5038e6461d37943a5b852a41f9961a9b
Zeichen 1-8
PARTNER_SIGNATURE 5038e646
8 Beispiel-Requests
8.1 Beispiel „Get Access Token“ in JSON und cURL (Sandbox)
https://internetmarke.deutschepost.de/OneClickForApp/V3
Warenpost International Seite 24 von 65
Anbindungsleitfaden
24
JSON cURL
URL
GET https://api-qa.deutschepost.com/v1/auth/accesstoken
Autorisation
Basic d2Fwb0B0ZXN0LmRlOndhcG9UZXN0UHcxMjM=
Header
KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
Body
Keiner
Request
curl --location --request GET 'https://api-qa.deutschepost.com/v1/auth/accesstoken' \
--header 'KEY_PHASE: 1' \
--header 'PARTNER_ID: DP_LT' \
--header 'REQUEST_TIMESTAMP: 16082018-122210' \
--header 'PARTNER_SIGNATURE: 9d7c35be' \
--header 'Authorization: Basic d2Fwb0B0ZXN0LmRlOndhcG9UZXN0UHcxMjM='
https://api-qa.deutschepost.com/v1/auth/accesstokenhttps://api-qa.deutschepost.com/v1/auth/accesstoken
Warenpost International Seite 25 von 65
Anbindungsleitfaden
25
8.2 Beispiel „Get Access Token“ in JSON und cURL (Livesystem)
JSON cURL
URL
GET https://api.deutschepost.com/v1/auth/accesstoken
Autorisation
Basic ZWNodGVwb3J0b2thc3NlQGt1bmRlbmRvbWFpbjplY2h0ZXNwYXNzd29ydA==
Header
KEY_PHASE: 1 PARTNER_ID: XXXXX REQUEST_TIMESTAMP: 15012020-102200 PARTNER_SIGNATURE: 5038e646
Body
Keiner
Request
curl --location --request GET 'https://api.deutschepost.com/v1/auth/accesstoken' \
--header 'KEY_PHASE: 1' \
--header 'PARTNER_ID: XXXXX' \
--header 'REQUEST_TIMESTAMP: 15012020-102200' \
--header 'PARTNER_SIGNATURE: 5038e646' \
--header 'Authorization: Basic ZWNodGVwb3J0b2thc3NlQGt1bmRlbmRvbWFpbjplY2h0ZXNwYXNzd29ydA=='
Response: nBI2fcUsyE9VztC8MnnjvXBECzmHk_qNA_srfCNvFLY= 968101 false
https://api.deutschepost.com/v1/auth/accesstokenhttps://api.deutschepost.com/v1/auth/accesstoken
Warenpost International Seite 26 von 65
Anbindungsleitfaden
26
8.3 Beispiel „Create Order Finalized” in Maximalausprägung (Sandbox)
JSON cURL
URL
POST https://api-qa.deutschepost.com/dpi/shipping/v1/orders
Autorisation
Bearer nBI2fcUsyE9VztC8MnnjvXBECzmHk_qNA_srfCNvFLY=
Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
Body
{ "customerEkp": "1234567890", "orderStatus": “FINALIZE”, "paperwork": { "contactName": "Eric Theodore Cartman", "jobReference": "Text JobReference", "pickupType": "CUSTOMER_DROP_OFF", "awbCopyCount": 1 }, "items": [ { "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "recipientPhone": "", "recipientFax": "",
Request
curl --location --request POST 'https://api-qa.deutschepost.com/dpi/shipping/v1/orders' \ --header 'Content-Type: application/json' \ --header 'KEY_PHASE: 1' \ --header 'PARTNER_ID: DP_LT ' \ --header 'REQUEST_TIMESTAMP: 16102018-144300' \ --header 'PARTNER_SIGNATURE: 9d7c35be ' \ --header 'Authorization: Bearer nBI2fcUsyE9VztC8MnnjvXBECzmHk_qNA_srfCNvFLY=' \ --data-raw '{ "customerEkp": "1234567890", "orderStatus": “FINALIZE”, "paperwork": { "contactName": "Eric Theodore Cartman", "jobReference": "Text JobReference", "pickupType": "CUSTOMER_DROP_OFF", "awbCopyCount": 1 }, "items": [ { "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "recipientPhone": "", "recipientFax": "", "recipientEmail": "",
Warenpost International Seite 27 von 65
Anbindungsleitfaden
27
"recipientEmail": "", "addressLine1": "Straße 17.", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt", "state": "Mitte", "postalCode": "12345", "destinationCountry": "CH", "returnItemWanted": false, "shipmentAmount": 0, "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Schrauben", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1, "contentPieceValue": "32.23" } ]} ]}
"addressLine1": "Straße 17.", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt", "state": "Mitte", "postalCode": "12345", "destinationCountry": "CH", "returnItemWanted": false, "shipmentAmount": 0, "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Schrauben", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1, "contentPieceValue": "32.23" } ]} ]} '
Warenpost International Seite 28 von 65
Anbindungsleitfaden
28
8.4 Beispiel für „Create Order Finalized” in Minimalausprägung (Sandbox)
8.4.1 URL
POST https://api-qa.deutschepost.com/dpi/shipping/v1/orders
8.4.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.4.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.4.4 Body
{
"customerEkp": "1234567890", "orderStatus": "FINALIZE", "paperwork": { "contactName": "Eric Theodore Cartman", "awbCopyCount": 1 }, "items": [ { "product": "10292", "recipient": "Marge Bouvier", "addressLine1": "Straße 17.", "city": " BspStadt", "destinationCountry": "AT", "shipmentGrossWeight": 500, "senderName": " Kunde123", "senderAddressLine1": "Breite Gasse 7", "senderCountry": "DE", "senderCity": " BspStadt", "senderPostalCode": "12345" } ] }
Warenpost International Seite 29 von 65
Anbindungsleitfaden
8.4.5 Response
"customerEkp": "1234567890", "orderId": 124214, "shipments": [ { "awb": "9980000087897", "items": [ { "id": 17418744, "barcode": "RL703774825DE", "product": "10292", "serviceLevel": "STANDARD", "recipient": "Marge Bouvier", "addressLine1": "Straße 17.", "city": " BspStadt", "destinationCountry": "AT", "shipmentGrossWeight": 500, "senderName": " Kunde123", "senderAddressLine1": "Breite Gasse 7", "senderCountry": "DE", "senderCity": " BspStadt", "senderPostalCode": "12345", "voucherId": "A001210D490000000648", "returnItemWanted": false, "contents": [] } ] } ] } Die AWB, "awb": "9980000087897", enthält die Nummer des erzeugten Shipments nach Finalisierung des Auftrags. Die ursprüngliche Order-Id ist lokal und hat danach keine Bedeutung mehr.
Warenpost International Seite 30 von 65
Anbindungsleitfaden
8.5 Beispiel für „Get Item Labels”
8.5.1 URL
GET https://api-qa.deutschepost.com/dpi/shipping/v1/shipments//itemlabels enthält die gültige AWB-Nummer aus dem Response des erfolgreichen CreateOrder-Requests.
8.5.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.5.3 Header
Content-Type: application/json Accept: application/pdf KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.5.4 Body Keiner
8.5.5 Response
https://api-qa.deutschepost.com/dpi/shipping/v1/shipments/%3cawb%3e/itemlabels
Warenpost International Seite 31 von 65
Anbindungsleitfaden
8.6 Beispiel für „Create Order Open”
8.6.1 URL
POST https://api-qa.deutschepost.com/dpi/shipping/v1/orders
8.6.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.6.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.6.4 Body { "customerEkp": "1234567890", "orderStatus": "OPEN", "items": [ ] }
8.6.5 Response
{ "customerEkp": "1234567890", "orderId": 124212 }
Warenpost International Seite 32 von 65
Anbindungsleitfaden
8.7 Beispiel für „Add Items to an Order” in Minimalausprägung
8.7.1 URL
POST https://api-qa.deutschepost.com/dpi/shipping/v1/orders//items enthält eine gültige Order-Nummer aus dem create Order OPEN Request.
8.7.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.7.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.7.4 Body
[ { "product": "10260", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "city": " BspStadt ", "destinationCountry": "AT", "shipmentGrossWeight": 500, "senderName": "senderName", "senderAddressLine1": "Strasse 1", "senderCountry": "DE", "senderCity": "Stadt", "senderPostalCode": "12345", "shipmentNaturetype": "SALE_GOODS", “shipmentCurrency”: “EUR” } ]
8.7.5 Response
[ { "id": 17418745, "barcode": "LB106600059DE", "product": "10260", "serviceLevel": "STANDARD", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "city": " BspStadt ", "destinationCountry": "AT",
https://api-qa.deutschepost.com/dpi/shipping/v1/orders/%3c0rderId%3e/items
Warenpost International Seite 33 von 65
Anbindungsleitfaden
"shipmentGrossWeight": 500, "senderName": "senderName", "senderAddressLine1": "Strasse 1", "senderCountry": "DE", "senderCity": "Stadt", "senderPostalCode": "12345", "voucherId": "A001210D49000000065B", "returnItemWanted": false, "contents": [] } ]
Der Item-Barcode ist die konkrete Sendungs-ID, mit der dann z.B. ein Tracking über die Tracking-Systeme der Deutschen Post (AM oder Sendungsverfolgung) möglich ist.
Warenpost International Seite 34 von 65
Anbindungsleitfaden
8.8 Beispiel für „Add Items to an Order” in Maximalausprägung
8.8.1 URL
POST https://api-qa.deutschepost.com/dpi/shipping/v1/orders//items enthält eine gültige Order-Nummer aus dem create Order OPEN Request.
8.8.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.8.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.8.4 Body
Zweispaltige Tabelle; jeweils eine EU- und non-EU-Sendung, gekennzeichnet über die Product-Nummer (rot markiert) [ { "product": "10292", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "recipientPhone": "", "recipientFax": "", "recipientEmail": "", "addressLine1": "Straße 17", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt ", "state": "Mitte", "postalCode": "12345", "destinationCountry": "DE", "returnItemWanted": false, "shipmentAmount": 0, "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse",
"senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Schrauben", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1, "contentPieceValue": "32.23" } ] },
Warenpost International Seite 35 von 65
Anbindungsleitfaden
{ "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Homer Simpson", "recipientPhone": "", "recipientFax": "", "recipientEmail": "", "addressLine1": "Evergreen Terrace", "addressLine2": "neben", "addressLine3": "Ned Flanders", "city": "Springfield", "state": "Ohio", "postalCode": "12345", "destinationCountry": "US", "returnItemWanted": false, "shipmentAmount": 0, "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123",
"senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "shipmentNaturetype": "SALE_GOODS","contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Muttern", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1, "contentPieceValue": "32.23" } ] } ]
8.8.5 Response
[ { "id": 17418747, "barcode": "RL703774848DE", "product": "10292", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt ", "state": "Mitte", "postalCode": "12345", "destinationCountry": "DE", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890",
Warenpost International Seite 36 von 65
Anbindungsleitfaden
"senderEmail": "[email protected]", "voucherId": "A001210D49000000067D", "returnItemWanted": false, "contents": [] }, { "id": 17418746, "barcode": "RL703774834DE", "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Homer Simpson", "addressLine1": "Evergreen Terrace", "addressLine2": "neben", "addressLine3": "Ned Flanders", "city": "Springfield", "state": "Ohio", "postalCode": "12345", "destinationCountry": "US", "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D49000000066E", "returnItemWanted": false, "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Muttern", "contentPieceValue": "32.23", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1 } ] } ]
Warenpost International Seite 37 von 65
Anbindungsleitfaden
Dem aufmerksamen Leser des Beispiels wird nicht der leere Content-Block (“"contents": [] “) in der response entgangen sein, Für Sendungsziele innerhalb der EU sind keine Zollinformationen erforderlich, diese werden daher auch nicht generiert. Somit enthalten die Harmonized Labels diese Informationen auch nicht.
8.9 Beispiel für ”Get Item Label”
Label zu einem Item erzeugen. Rückgabewert ist ein PDF-Bytestream. Die Speichermethode muss durch den Entwickler selber programmiert werden (keine jnteraktive „Speichern“-Aktion durch die API angeboten)
8.9.1 URL
GET https://api-qa.deutschepost.com/dpi/shipping/v1/items//label enthält eine gültige Item-Nummer aus dem create Order oder Add Item Request.
8.9.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.9.3 Header
Content-Type: application/json Accept: image/png KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.9.4 Body Keiner
8.9.5 Response
, der das Sendungslabel enthält.
https://api-qa.deutschepost.com/dpi/shipping/v1/items/%3citemId%3e/label
Warenpost International Seite 38 von 65
Anbindungsleitfaden
8.10 Beispiel für einen „Finalize Order” request (Sandbox):
Abschließen eines offenen Auftrags.
8.10.1 URL
GET https://api-qa.deutschepost.com/dpi/shipping/v1/orders//finalization enthält eine gültige Order-Nummer aus einem create Order OPEN Request.
8.10.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.10.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.10.4 Body { "contactName": "Eric Theodore Cartman", "jobReference": "Text JobReference", "pickupType": "CUSTOMER_DROP_OFF", "awbCopyCount": 1 }
8.10.5 Response
{ "customerEkp": "0000010000", "orderId": 124216, "shipments": [ { "awb": "9980000087898", "items": [ { "id": 17418746, "barcode": "RL703774834DE", "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Homer Simpson", "addressLine1": "Evergreen Terrace", "addressLine2": "neben", "addressLine3": "Ned Flanders",
https://api-qa.deutschepost.com/dpi/shipping/v1/orders/%3corderId%3e/finalization
Warenpost International Seite 39 von 65
Anbindungsleitfaden
"city": "Springfield", "state": "Ohio", "postalCode": "12345", "destinationCountry": "US", "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D49000000066E", "returnItemWanted": false, "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Muttern", "contentPieceValue": "32.23", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1 } ] }, { "id": 17418747, "barcode": "RL703774848DE", "product": "10292", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt ", "state": "Mitte", "postalCode": "12345", "destinationCountry": "DE", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE",
Warenpost International Seite 40 von 65
Anbindungsleitfaden
"senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D49000000067D", "returnItemWanted": false, "contents": [] } ] } ] }
Warenpost International Seite 41 von 65
Anbindungsleitfaden
8.11 Beispiel für einen „Get item“ request (Sandbox)
Informationen zu einem (zu einem nicht finalisierten Auftrag) Item ausgeben
8.11.1 URL
GET https://api-qa.deutschepost.com/dpi/shipping/v1/items/ enthält eine gültige Item-Nummer.
8.11.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.11.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.11.4 Body
Keiner
8.11.5 Response
{ "id": 17418757, "barcode": "RL703774879DE", "product": "10292", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt ", "state": "Mitte", "postalCode": "12345", "destinationCountry": "DE", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D4900000006C9",
https://api-qa.deutschepost.com/dpi/shipping/v1/items/%3cItemId
Warenpost International Seite 42 von 65
Anbindungsleitfaden
"returnItemWanted": false, "contents": [] }
Warenpost International Seite 43 von 65
Anbindungsleitfaden
8.12 Beispiel für einen „Get Order“ Request (Sandbox)
Informationen zu einer Order
8.12.1 URL
GET https://api-qa.deutschepost.com/dpi/shipping/v1/orders/ muss eine gültige Order-Nummer aus einem CreateOrder-OPEN-Request enthalten
8.12.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.12.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.12.4 Body
Keiner
8.12.5 Response
{ "customerEkp": "0000010000", "orderId": 124221, "items": [ { "id": 17418757, "barcode": "RL703774879DE", "product": "10292", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt ", "state": "Mitte", "postalCode": "12345", "destinationCountry": "DE", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse",
https://api-qa.deutschepost.com/dpi/shipping/v1/orders/%3corderId
Warenpost International Seite 44 von 65
Anbindungsleitfaden
"senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D4900000006C9", "returnItemWanted": false, "contents": [] }, { "id": 17418756, "barcode": "RL703774865DE", "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Homer Simpson", "addressLine1": "Evergreen Terrace", "addressLine2": "neben", "addressLine3": "Ned Flanders", "city": "Springfield", "state": "Ohio", "postalCode": "12345", "destinationCountry": "US", "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D4900000006BA", "returnItemWanted": false, "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Muttern", "contentPieceValue": "32.23", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1 } ]
Warenpost International Seite 45 von 65
Anbindungsleitfaden
} ] } Informationen zu einer abgeschlossenen Order werden nicht ausgegeben.
Warenpost International Seite 46 von 65
Anbindungsleitfaden
8.13 Beispiel für einen „Get shipments for an order“ Request
Ausgabe von Shipments zu einer Order
8.13.1 URL
GET https://api-qa.deutschepost.com/dpi/shipping/v1/orders//shipments enthält eine gültige Order-Nummer aus einem create Order OPEN Request.
8.13.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.13.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.13.4 Body
Keiner
8.13.5 Response
1. Wenn keine Shipments existieren (Auftrag nicht finalisiert):
{ "messages": [ "No shipments are available for order with ID [124221]." ] }
2. Wenn Shipment existiert:
https://api-qa.deutschepost.com/dpi/shipping/v1/orders/%3corderiD%3e/shipments
Warenpost International Seite 47 von 65
Anbindungsleitfaden
[ { "awb": "9980000087902", "items": [ { "id": 17418756, "barcode": "RL703774865DE", "product": "10293", "serviceLevel": "STANDARD", "custRef": "CUSTOMER REFERENCE", "recipient": "Homer Simpson", "addressLine1": "Evergreen Terrace", "addressLine2": "neben", "addressLine3": "Ned Flanders", "city": "Springfield", "state": "Ohio", "postalCode": "12345", "destinationCountry": "US", "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D4900000006BA", "returnItemWanted": false, "shipmentNaturetype": "SALE_GOODS", "contents": [ { "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 Muttern", "contentPieceValue": "32.23", "contentPieceNetweight": 50, "contentPieceOrigin": "AT", "contentPieceAmount": 1 } ] }, { "id": 17418757, "barcode": "RL703774879DE", "product": "10292", "serviceLevel": "STANDARD",
Warenpost International Seite 48 von 65
Anbindungsleitfaden
"custRef": "CUSTOMER REFERENCE", "recipient": "Marge Bouvier", "addressLine1": "Straße 17", "addressLine2": "Kreuzung", "addressLine3": "2. Fenster links", "city": " BspStadt ", "state": "Mitte", "postalCode": "12345", "destinationCountry": "DE", "shipmentGrossWeight": 500, "senderName": "Kunde123", "senderAddressLine1": "Breite Gasse", "senderAddressLine2": "2. Haus rechts", "senderCountry": "DE", "senderCity": " BspStadt ", "senderPostalCode": "12345", "senderPhone": "+49301234567890", "senderEmail": "[email protected]", "voucherId": "A001210D4900000006C9", "returnItemWanted": false, "contents": [] } ] } ]
8.14 Beispiel für einen „validate order item“ Request
8.14.1 URL
POST https://api-qa.deutschepost.com/dpi/shipping/v1/validation
8.14.2 Autorisation
Bearer SovVegFT0uw6gTapSsOoPzxa_snZm35QuAqINkutI1w=
8.14.3 Header
Content-Type: application/json KEY_PHASE: 1 PARTNER_ID: DP_LT REQUEST_TIMESTAMP: 16082018-122210 PARTNER_SIGNATURE: 9d7c35be
8.14.4 Body
{ "customerEkp": "{{custEKP}}", "items": [
https://api-qa.deutschepost.com/dpi/shipping/v1/validation
Warenpost International Seite 49 von 65
Anbindungsleitfaden
{ "id": 0, "product": "10272", "serviceLevel": "STANDARD", "custRef": "04 03 01 T002", "custRef2": "1714343439", "recipient": "Marge Bouvier", "recipientPhone": "", "recipientFax": "", "recipientEmail": "", "addressLine1": "Straße des 17. Juni 1", "addressLine2": "Kreuzung Yzak-Rabin-Straße", "addressLine3": "Rez-de-Chaussée", "city": "Berlin", "state": "Mitte", "postalCode": "01000", "destinationCountry": "US", "returnItemWanted": false, "shipmentAmount": 0, "shipmentCurrency": "EUR", "shipmentGrossWeight": 500, "senderName": "Miroslav Ćiro Blažević", "senderAddressLine1": "Lenné-Park 12", "senderAddressLine2": "107a - 111a/b", "senderCountry": "US", "senderCity": "Castrop-Rauxel", "senderPostalCode": "01432", "senderPhone": "+4935120681234", "senderEmail": "[email protected]",
"shipmentNaturetype": "RETURN_GOODS", "contents": [ { "contentPieceIndexNumber": 0, "contentPieceHsCode": "1234567890", "contentPieceDescription": "10 x Sánguches", "contentPieceNetweight": 50, "contentPieceOrigin": "AF", "contentPieceAmount": 1, "contentPieceValue": "322.23" } ] } ]
}
Warenpost International Seite 50 von 65
Anbindungsleitfaden
8.14.5 Response
{
"customerEkp": "0000010000",
"items": [
{
"id": 0,
"product": "10272",
"serviceLevel": "STANDARD",
"custRef": "04 03 01 T002",
"custRef2": "1714343439",
"recipient": "Marge Bouvier",
"recipientPhone": "",
"recipientFax": "",
"recipientEmail": "",
"addressLine1": "Straße des 17. Juni 1",
"addressLine2": "Kreuzung Yzak-Rabin-Straße",
"addressLine3": "Rez-de-Chaussée",
"city": "Berlin",
"state": "Mitte",
"postalCode": "01000",
"destinationCountry": "US",
"shipmentAmount": 0.0,
"shipmentCurrency": "EUR",
"shipmentGrossWeight": 500,
"senderName": "Miroslav Ćiro Blažević",
"senderAddressLine1": "Lenné-Park 12",
"senderAddressLine2": "107a - 111a/b",
"senderCountry": "US",
"senderCity": "Castrop-Rauxel",
"senderPostalCode": "01432",
"senderPhone": "+4935120681234",
"senderEmail": "[email protected]",
"returnItemWanted": false,
"shipmentNaturetype": "RETURN_GOODS",
"contents": [
{
"contentPieceIndexNumber": 0,
"contentPieceHsCode": "1234567890",
"contentPieceDescription": "10 x Sánguches",
"contentPieceValue": "322.23",
"contentPieceNetweight": 50,
"contentPieceOrigin": "AF",
"contentPieceAmount": 1
}
]
}
]
}
Warenpost International Seite 51 von 65
Anbindungsleitfaden
9 Detaillierte Feldbeschreibung
Für WaPo
Int relevant
Crea
te Order
Add
Items to an Order
Feldname Beschreibung Definition Feld-Länge
Pflicht/ Optional
Beispiel bzw. Auswahl
X X customerEkp 10-stellige EKP / Postkundennummer
Alpha-numerisch
16 Pflicht 1234567890
X X orderStatus Auftragsstatus Gibt an, ob dem Auftrag weitere Sendungen hinzugefügt werden
können. „OPEN" bedeutet, dass später Sendungen hinzugefügt werden können. „FINALIZE" bedeutet, dass
die Bestellung sofort abgeschlossen wird.
Alpha-numerisch
Pflicht
OPEN FINALIZE
X paperwork
X X contactName Ansprechpartner bei Rückfragen (aktuell für
WaPo noch nicht aktiv)
Alpha-numerisch
Pflicht Max Musterhaft
X jobReference Irrelevant bei Warenpost International
Alpha-numerisch
(max. 17 Zeichen)
Optional
X pickupType Irrelevant bei Warenpost
International
Alpha-
numerisch
Optional CUSTOMER_DR
OP_OFF
X X X awbCopyCount Kopien des AWB labels.(aktuell für WaPo noch nicht aktiv)
numerisch Pflicht 1
X X items
X X id Systemisch gesetzte ID der Sendung, relevant für Folgerequests
numerisch 8 Wird systemseitig gesetzt
X X X product Produktnummer gem. PPL Alpha-
numerisch
5 Pflicht
10246
X X X serviceLevel Der Service-Level, der für den Versand dieses Artikels verwendet wird. (aktuell für WaPo noch nicht aktiv)
Alpha-numerisch
Pflicht
STANDARD, keine Alternative bei WaPoInt
X X custRef Kundenreferenz (aktuell für WaPo noch nicht aktiv)
Alpha-numerisch
20 optional Test123
X X X recipient Name des Empfängers Alpha-nume