SOAP API - Sendungen und Statusdaten
1Â Â Allgemein
1.1  Einführung
Nachfolgend wird die SOAP Schnittstelle beschrieben, die vom Shiptrack.com Service angeboten. Die Schnittstelle arbeitet nach dem SOAP-Standard. Die Authentifizierung des Aufrufers, erfolgt an der Schnittstelle mithilfe eines zuvor definierten Benutzernamens und Passworts über die HTTP-Basic Authentifizierungsmethode (siehe RFC2617).
1.2Â Â Fehlerbehandlung
Damit bei einem auftretenden Fehler in der Schnittstelle der Aufrufer eine aussagekräftige Fehlermeldung bekommt, sendet die Schnittstelle eine Antwort mit einem HTTP-Statuscode, der den Fehler repräsentiert. Außerdem wird eine Nachricht zurück geliefert, die Detailinformationen zum Fehler enthält. Für den Fehler, dass ein Kunde als Parameter angegeben wird, der nicht existiert, wird zum Beispiel der HTTP-Statuscode 404 zurückgesendet. Die dazugehörige Detail-Fehlermeldung sieht wie folgt aus:
Der Standardfehlercode für undefinierte Fehler ist der HTTP-Statuscode 505. Nachfolgend ist eine Tabelle mit allen bekannten Shiptrack.com spezifischen Fehlercodes aufgelistet:
Fehlercode | HTTP-Status | Beschreibung |
---|---|---|
404.1 | 404 | Die angegebene Client-Id existiert nicht in der Datenbank |
400.1 | 400 | Das angegebene Datumsformat im since-Parameter entspricht nicht den Richtlinien |
500.1 | 500 | Es ist kein Statusbaum konfiguriert um die Status auszuwerten |
Inhalt:
|
Â
Â
2Â Â Sendungsverfolgungsdaten
Über die SOAP Schnittstellen können die Sendungsverfolgungsdaten mithilfe von zwei Funktionen abgerufen werden, die ein gefiltertes Ergebnis der gesamten Sendungsverfolgungsdaten eines Kunden zurück liefern. Beide Funktionen liefern das Ergebnis in Form eines XML-Strings, dessen Format im nachfolgenden Kapitel erläutert wird. Die zugehörigen WSDL Dateien, die den SOAP Webservice beschreiben, finden Sie hier:
Â
2.1Â Â Sammelabfrage
Die Endpunkt-URL der Sammelabfrage muss folgende Struktur aufweisen:
2.1.1Â Â GET
Mit der http-Methode GET werden alle Sendungen, die den Kunden mit der in der URL angegebenen Client-Id zugeordnet sind auf. Das Ergebnis wird als XML zurück geliefert und als Stream übertragen. Die Liste der Sendungsdaten die zurückgeschickt wird, kann mit folgenden optionalen GET Parametern eingeschränkt werden:
since Wird dieser Parameter angegeben, werden nur Datensätze zurück geliefert, die seit dem Zeitpunkt importiert oder bei denen neue Daten hinzugefügt wurden.
Datentyp:
Datum - Format(YYYYMMddHHmmss) in der Zeitzone UTC oder ISO-8601until Wird dieser Parameter angegeben, werden nur Datensätze zurück geliefert, die bis zu dem Zeitpunkt importiert oder bei denen neue Daten hinzugefügt wurden.
Datentyp:
Datum - Format(YYYYMMddHHmmss) in der Zeitzone UTC oder ISO-8601
Â
2.2Â Â Einzelabfrage
Die URL für der Einzelabfrage hat folgenden Aufbau:
2.2.1Â Â GetWithTrackingNr
Diese Methode führt eine Suche auf der Trackingnummer einer Sendung oder eines Paketes durch. Es wird immer die komplette Sendung zurück geliefert, auch wenn die Trackingnummer sich auf der Paketebene findet. Betroffene Felder sind: shipment_tracking_id auf Sendungsebene und send_id auf Paketebene.
Parameter | Beschreibung |
---|---|
client | Id des Shiptrack.com Kunden. Wird von ecovium mitgeteilt. |
trackingNr | Trackingnummer nach der gesucht werden soll. |
2.2.2Â Â GetWithReferenceNr
Dieser Aufruf ermöglicht eine Suche auf den Referenznummern einer Sendung, sowohl auf Sendungs- als auch auf Paketebene. Der angegebene Wert wird in folgenden Feldern gesucht: send_referenznr_01, send_referenznr_02, send_referenznr_03, send_referenznr_04, send_referenznr_05 auf Sendungsebene und send_referenznr_06, send_referenznr_07, send_referenznr_08, send_referenznr_09, send_referenznr_10 auf Paketebene.
Parameter | Beschreibung |
---|---|
client | Id des Shiptrack.com Kunden. Wird von ecovium mitgeteilt. |
referenceNr | Referenznummer nach der gesucht werden soll. |
Â
2.3Â Â Sendungsanlage via PUT
Mit Hilfe des http-Verbs PUT lassen sich sowohl einzelne als auch mehrere Sendungen an den Service übermitteln. Zur erfolgreichen Übermittlung müssen die in Punkt 2.3.1 definierten Felder angegeben werden.
Nach erfolgreicher Übermittlung stehen die Daten stehen die Daten nicht sofort zum Abruf über die Sammel- oder Einzelabfrage zur Verfügung, sondern müssen zunächst durch den Service abgearbeitet werden.
2.3.1  Minimale Felder für die Anlage einer Sendung
Parameter | Beschreibung |
---|---|
shipment_tracking_id | Tracking-Sendungsnummer des Frachtführers |
frachtfuehrer | Kürzel des Frachtführers |
send_versanddatum | Datum an dem die Sendung versendet wurde |
2.3.2  Beispiel für die Anlage einer Sendung
<?xml version="1.0" encoding="utf-8"?>
<workitem>
<shipment collection="true">
<frachtfuehrer>HVS</frachtfuehrer>
<send_versanddatum>
<date>01/22/2017</date>
</send_versanddatum>
<shipment_tracking_id>365767978452</shipment_tracking_id>
</shipment>
</workitem>
Â
2.4Â Â Sendungsverfolgungsdatenformat
Nachfolgend wird das Format der Sendungsverfolgungsdaten, welche von der Schnittstelle zurück geliefert und angenommen werden erläutert.
Die Übertragung der Daten findet im XML-Format statt. Die Kodierung des XML erfolgt immer als UTF-8 und beginnt mit dem Tag „workitem“. Innerhalb des Tags „workitem“ können eine oder mehrere Sendungen übergeben werden. Eine Sendung wird dabei immer mit dem Tag „shipment“ eingeleitet. Wichtig dabei ist, dass bei dem „shipment“ Tag immer das Attribut „collection“ mit dem Wert „true“ vorhanden ist. Ebenso werden alle Tags, die in dem XML vorkommen, kleingeschrieben.
Mindestens folgender Inhalt muss übertragen werden:
<?xml version="1.0" encoding="utf-8"?>
<workitem>
<shipment_count>0</shipment_count>
</workitem>
Eine erfolgreiche Abfrage liefert folgende Daten zurück:
2.4.1Â Â Grundstruktur
2.4.1.1Â Â Grundstruktur mit mehreren Sendungen
2.4.1.2Â Â Grundstruktur mit mit Paketen
Eine Sendung kann wiederum ein oder mehrere Pakete enthalten. Ein Paket wird dabei mit dem Tag „package“ eingeleitet. Auch bei diesem Tag muss das Attribut „collection“ mit dem Wert „true“ angegeben werden.
2.4.1.3Â Â Grundstruktur mit mehreren Paketen
Â
2.4.2Â Â Status-Codes
Im zurück gelieferten Ergebnis sind sowohl Status-Werte auf Ebene der Sendung unter dem Schlüssel shipment.shipment_tracking_id.status_code
zu finden, als auch auf der Ebene einzelner Pakete. Diese sind unter dem Schlüssel shipment.package.package_tracking_status.status_path
zu finden. Die genannten Schlüssel enthalten von ecovium normierte Status-Codes. Diese Status-Codes sind im Anhang unter Punkt 3.1 aufgelistet.
Der Status-Code, der unter dem shipment.package.package_tracking_status.status_code
zu finden ist, ist der originale Status-Code der vom Frachtführer übermittelt wurde.
Â
2.4.3Â Â Minimal Felder
Das Ergebnis kann je nach vorhandenem Informationsvolumen mehr oder weniger Informationen enthalten. In der nachfolgenden Tabelle sind alle Felder mit einer Beschreibung aufgeführt die bei jeder Anfrage mindestens mit gesendet werden.
Feld | Beschreibung |
---|---|
shipment_tracking_id | Tracking-Sendungsnummer des Frachtführers. |
shipment_id | Eindeutige Id der Sendung im Shiptrack.com System. |
frachtfuehrer | Kürzel des Frachtführers, mit dem die Sendung befördert wird. |
package.send_id | Tracking-Paketnummer des Frachtführers. |
send_versanddatum | Datum an dem die Sendung versendet wurde. |
Â
2.4.4Â Â Datumswerte
Datumswerte werden in den Sendungsdaten immer nach folgendem Schema dargestellt:
Feld | Beschreibung |
---|---|
date | Datum im Format mm/dd/yyyy |
time | Zeit im Format hh:mm:ss |
timezone | Zeitzone. Optionales Feld. Wenn Feld nicht angegeben ist die Zeitzone unbekannt. |
timezone.name | Name der Zeitzone |
timezone.offset | Offset zur UTC Zeitzone |
Â
2.4.5Â Â Optionale Felder
2.4.5.1Â Â Shipment-ebene
Alle diese Felder befinden sich auf der Shipment-Ebene, weswegen diese nicht explizit angegeben wird.
Feld | Beschreibung |
---|---|
send_referenznr_01 | Referenznummer 1 |
send_referenznr_02 | Referenznummer 2 |
send_referenznr_03 | Referenznummer 3 |
send_referenznr_04 | Referenznummer 4 |
send_referenznr_05 | Referenznummer 5 |
abs_adr_01 | Absenderadresse 1 |
abs_adr_02 | Absenderadresse 2 |
abs_adr_03 | Absenderadresse 2 |
abs_strasse | Absenderstraße |
abs_plz | Absenderpostleitzahl |
abs_ort | Absenderort |
abs_land | Absenderland |
abs_land_kurz | Zweistelliges Absenderländerkürzel (ISO3166) |
abs_mail | Absendermail |
abs_telefon | Absendertelefon |
abs_telefax | Absenderfax |
abs_loc | Standort des Absenders |
empf_adr_01 | Empfängeradresse 1 |
empf_adr_02 | Empfängeradresse 2 |
empf_adr_03 | Empfängeradresse 2 |
empf_strasse | Empfängerstraße |
empf_hnr | Empfängerhausnummer |
empf_plz | Empfängerpostleitzahl |
empf_ort | Empfängerort |
empf_land_kurz | Zweistelliges Empfängerländerkürzel (ISO3166) |
empf_land | Empfängerland |
empf_staat | Staat des Empfängers |
empf_iso | ISO-Code des Empfängers |
empf_nationalitaet | Nationalität des Empfängers |
empf_postfach | Postfach des Empfängers |
empf_unterschrift | Empfängerunterschrift |
empf_mail | Empfängermail |
empf_tel | Empfängertelefon |
empf_kdnr | Empfängerkundennummer |
empf_locale | Sprache des Empfängers (aktuell mögliche Werte: af-ZA, am-ET, be-BY, bg-BG, ca-ES, cs-CZ, da-DK, de-AT, de-CH, de-DE, el-GR, en-AU, en-CA, en-GB, en-IE, en-NZ, en-US, es-ES, et-EE, eu-ES, fi-FI, fr-BE, fr-CA, fr-CH, fr-FR, he-IL, hi-IN, hr-HR, hy-AM, is-IS, it-CH, it-IT, ja-JP, kk-KZ, ko-KR, la-LN, lt-LT, nl-BE, nl-NL, no-NO, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sk-SK, sl-SI, sr-YU, sv-SE, tr-TR, uk-UA, zh-CN, zh-HK, zh-TW) |
send_gewichtgesamt | Gewicht aller Pakete in der Sendung |
shipment_tracking_url | Link auf eine gebuchte Portalseite mit Trackinginformationen |
send_abholdatum | Abholdatum der Sendung |
send_anz | Anzahl der Pakete in der Sendung |
send_kundenkennung | ggf. besondere Kundennummer |
send_termindatum | Auslieferungsfälligkeit |
send_service_code | Code Zusatzinformationen zur Sendung |
send_service_details | Zusatzinformationen zur Sendung |
send_nachnahmebetrag | Nachnahmebetrag |
send_nachnahmewaehrung | Nachnahmebetrag Währung |
send_mandant | Mandant einer Sendung |
send_service_code | Service code |
send_service_details | Details zur Serviceart |
send_customerservice | Freie Bezeichnung der Serviceart (z.B. Express, Overnight) |
shipment_tags | Spezielle Key-Value Parameter (inbound, outbound b2b,b2c) |
send_estimatedtimeofarrival | Voraussichtliche Lieferzeit |
send_contractedtimeofarrival | Vertragliche Lieferzeit |
send_versandart_kunde | Serviceart Versand |
sourcesystem_shipmentid | Eindeutige ID der Sendung aus dem Vorsystem |
Â
2.4.5.2Â Â Shipmentstatus-ebene
Alle diese Felder können sich auf der Shipment-Tracking-Status-Ebene befinden.
Feld | Beschreibung |
---|---|
status_date | Statusdatum |
status_code | Shiptrack-Statuscode |
Â
2.4.5.3Â Â Paket-ebene
Alle diese Felder können sich auf der Package-Ebene befinden.
Feld | Beschreibung |
---|---|
send_referenznr_06 | Referenznummer 6 |
send_referenznr_07 | Referenznummer 7 |
send_referenznr_08 | Referenznummer 8 |
send_referenznr_09 | Referenznummer 9 |
send_referenznr_10 | Referenznummer 10 |
send_anzahllademittel_01 | Anzahl der Lademittel 01 |
send_anzahllademittel_02 | Anzahl der Lademittel 02 |
send_anzahllademittel_03 | Anzahl der Lademittel 03 |
send_anzahllademittel_04 | Anzahl der Lademittel 04 |
send_artlademittel_01 | Art des Lademittels 01 |
send_gewichteinzel | Gewicht des Pakets |
send_hoehe | Höhe des Pakets |
send_laenge | Länge des Pakets |
send_breite | Breite des Pakets |
send_versandart | Versandart des Pakets |
send_zusatz | Zusätzliche Pakete |
sourcesystem_packageid | Eindeutige ID des Pakets aus dem Vorsystem |
Â
2.4.5.4Â Â Packagestatus-ebene
Alle diese Felder können sich ebenfalls auf der Package-Tracking-Status-Ebene befinden.
Feld | Beschreibung |
---|---|
status_date | Statusdatum |
status_details | Statusdetails |
status_code | Statuscode |
status_path.status_code | Shiptrack-Statuscode |
status_recipient | Wer hat das Paket entgegengenommen |
status_drop_location | Detail, wo z.B. das Paket abgelegt wurde |
status_country | Statusland kurz |
status_zip | Status Postleitzahl |
status_city | Statusort |
Status_state | Staat zum Status |
status_street | Statusstraße |
status_depot_name | Status-Depotname |
status_additional_info | Zusatzinformationen zum Status |
status_loc | Standort zum Status |
Â
2.4.5.5Â Â Dokument-ebene
Diese Ebene befindet sich innerhalb der Shipment-Ebene. Dieses enthält Dokumente wie Label oder Abliefernachweise (PODs).
Feld | Beschreibung |
---|---|
shipment_document_id | Eindeutige DokumentenId |
shipment_document_status_type | Status des Dokuments. Derzeit mögliche Status:("ShipmentDocumentOnInternalStorageStatus", |
shipment_document_type | Dokumentart. Beispiele: "PoD", |
url | Eindeutiger Pfad zum Dokument |
created | Erstellungsdatum des Dokuments in der Datenbank |
shipment_document_originalname | Originalname des Dokuments, wenn vorhanden |
mimetype | Dokumententyp (tif, gif, png, pdf ...) |
size | Dokumentengröße in byte |
shipment_document_description | Beschreibung des Dokuments |
Â
2.4.5.6Â Â Incident-ebene
Diese Ebene befindet sich innerhalb der Shipment-Ebene.
Feld | Beschreibung |
---|---|
name | Name der Definition, die gegriffen hat |
definition | Guid zur Definition, die gegriffen hat |
created | Erstellungsdatum des Incidents |
Â
2.4.5.7Â Â Timing-ebene
Diese Ebene befindet sich innerhalb der Shipment-Ebene und enthält GTA, ETA oder FIX timings.
Feld | Beschreibung |
---|---|
type | Typ des Timings (ETA, GTA, FIX) |
calculation_quality | Trefferqualität ETA (ContryToCountry → PlzToPlzWithServicedefinition) |
source.label | Wer hat es erstellt oder berechnet (derzeit Ecovium oder Carrier) |
source.service_definition_guid | Eindeutige Id der zugrundeliegenden Versandart |
source.transit_times_guid | Eindeutige Id der zugrundeliegenden Versandzeit in der  Versandart |
source.hours_added.hours_total | Summe der Tage aus hours_saturday, hours_sunday & hours_holiday |
source.hours_added.hours_saturday | Anzahl der Samstage, die auf die Laufzeit drauf gerechnet wurden |
source.hours_added.hours_sunday | Anzahl der Sonntage, die auf die Laufzeit drauf gerechnet wurden |
source.hours_added.hours_holiday | Anzahl der Feiertage, die auf die Laufzeit drauf gerechnet wurden |
creation_date | Erstellungszeitpunkt der Berechnung |
range.from_date | Errechneter Lieferzeitpunkt von (Datum + Uhrzeit) |
range.to_date | Errechneter Lieferzeitpunkt bis (Datum + Uhrzeit) |
Â
Â
Â