Skip to main content
StartseiteBlogVergleicheWebhook-Sendungsverfolgung: Wie Tracking-Webhooks im Vergleich zu Polling funktionieren (Payloads, Wiederholungsversuche & Einrichtung)

Webhook-Sendungsverfolgung: Wie Tracking-Webhooks im Vergleich zu Polling funktionieren (Payloads, Wiederholungsversuche & Einrichtung)

17TRACK

Shipment-Tracking-Webhooks senden eine HTTP-Anfrage an Ihre Anwendung, wenn ein Tracking-Dienst eine Aktualisierung zu melden hat. Polling funktioniert in die entgegengesetzte Richtung: Ihre Anwendung fragt wiederholt die neuesten Tracking-Informationen ab. Für Entwickler, die Versanddaten mit einem Auftragsverwaltungssystem, einem Shop oder einem Kundenbenachrichtigungsdienst verbinden, sind Webhooks im Allgemeinen der bessere primäre Aktualisierungsmechanismus, sofern sie unterstützt werden; gezieltes Polling kann dabei helfen, verpasste Aktualisierungen wiederherzustellen und Datensätze abzugleichen.

Webhook Shipment Tracking How Tracking Webhooks Work vs Polling Payloads

Keine der beiden Methoden veranlasst einen Transportdienstleister dazu, ein Paket früher zu scannen. Beide hängen davon ab, wann die Tracking-Quelle neue Informationen empfängt und bereitstellt. Der praktische Unterschied besteht darin, wie Ihre Anwendung von diesen Informationen erfährt, wie viel Anfrageverkehr sie erzeugt und was geschieht, wenn die Zustellung fehlschlägt.

Tracking-Webhooks im Vergleich zu Polling: der operative Unterschied

Dies sind Integrationsmuster und keine konkurrierenden Tracking-Datenbanken. Ein Transportdienstleister oder eine Tracking-Plattform kann eines dieser Muster oder beide anbieten, jeweils mit unterschiedlichen Zugangsbedingungen. Vergleichen Sie das Verhalten der konkreten API, die Sie verwenden möchten, anstatt anzunehmen, dass alle Webhook-Dienste dieselben Garantien bieten.

EntscheidungspunktWebhooksPolling
Wer startet die Anfrage?Der Tracking-Dienst ruft Ihren Endpunkt auf.Ihre Anwendung ruft die Tracking-API auf.
Verzögerung der AktualisierungHängt von der Aktualität der Quelle, der Ereigniserzeugung, der Zustellung und der Verarbeitung ab.Hängt ebenfalls davon ab, wann Ihre nächste geplante Anfrage ausgeführt wird.
AnfragevolumenWird durch ausgegebene Aktualisierungen, Bündelung und Zustellungswiederholungen bestimmt.Wird durch Sendungsvolumen, Polling-Häufigkeit und Bündelung bestimmt.
InfrastrukturErfordert einen erreichbaren Empfänger und eine sichere Verarbeitung eingehender Anfragen.Erfordert einen Scheduler, ausgehenden API-Zugriff und die Verarbeitung von Rate Limits.
FehlerbehebungHängt von den Wiederholungen des Anbieters sowie Ihrem eigenen Abgleichsprozess ab.Hängt von nachfolgenden Anfragen und davon ab, ob die API den benötigten Verlauf speichert.

Wählen Sie zuerst Webhooks, wenn zeitnahe Aktualisierungen wichtig sind und Ihr Team einen zuverlässigen Empfänger betreiben kann. Wählen Sie zuerst Polling, wenn eingehende Endpunkte unpraktisch sind, das Sendungsvolumen gering ist oder die Quelle keine geeigneten Webhooks bereitstellt. Verwenden Sie ein hybrides Design, wenn verpasste Aktualisierungen die Kundenkommunikation oder Abläufe beeinträchtigen würden und die API einen Abgleich unterstützt.

Gehen Sie nicht davon aus, dass Webhooks günstiger sind. Abonnementgebühren, Tracking-Registrierung, API-Aufrufe, Ereigniszustellung und Infrastruktur können unterschiedlich abgerechnet werden. Vergleichen Sie die tatsächlichen kommerziellen Bedingungen und den erwarteten Arbeitsaufwand, anstatt eine geringere Anzahl von Anfragen als Beweis für eine niedrigere Rechnung zu betrachten.

Was geschieht zwischen einem Scan durch den Transportdienstleister und Ihrer Anwendung?

  1. Identifizieren Sie die Sendung. Verknüpfen Sie die Tracking-Nummer, gegebenenfalls die Informationen zum Transportdienstleister und eine interne Sendungsreferenz. Einige Dienste erfordern eine Registrierung, bevor die Überwachung beginnt.
  2. Konfigurieren Sie die Ereigniszustellung. Geben Sie eine HTTPS-Callback-URL an und wählen Sie alle unterstützten Ereignisabonnements aus.
  3. Die Quelle empfängt Tracking-Informationen. Ein Scan durch den Transportdienstleister oder eine Statusänderung wird für den Tracking-Dienst verfügbar.
  4. Der Dienst sendet einen Webhook. Die Anfrage kann einen vollständigen Tracking-Snapshot, einen einzelnen Prüfpunkt oder nur eine Referenz enthalten, die eine API-Abfrage erfordert.
  5. Ihr Empfänger validiert und speichert ihn. Authentifizieren Sie die Anfrage, prüfen Sie ihre Struktur und speichern Sie das Ereignis dauerhaft oder stellen Sie es in eine Warteschlange.
  6. Ein Worker aktualisiert die Geschäftssysteme. Normalisieren Sie Statuswerte, aktualisieren Sie Sendungsdatensätze und lösen Sie nur Aktionen aus, die noch angemessen sind.

Eine Webhook-Zustellung ist nicht dasselbe wie eine physische Zustellung. Sie ist eine Nachricht über Versandinformationen. Ebenso beweist eine erfolgreiche Webhook-Antwort nicht, dass eine E-Mail gesendet oder ein Auftragsdatensatz aktualisiert wurde; dies sind nachgelagerte Verarbeitungsergebnisse, die eine eigene Überwachung benötigen.

Eine Tracking-Webhook-Nutzlast lesen

Das folgende JSON ist ein beispielhaftes Integrationsdesign, keine 17TRACK-Nutzlast und kein universelles Schema. Die tatsächlichen Feldnamen, Statuscodes, Zeitstempelformate und Ereigniskennungen müssen aus der Dokumentation des ausgewählten Anbieters stammen.

{
  "event_id": "evt_example_001",
  "event_type": "shipment.updated",
  "created_at": "2025-04-08T10:16:00Z",
  "shipment": {
    "reference": "shipment_example_123",
    "tracking_number": "EXAMPLE123456",
    "carrier_code": "example_carrier",
    "status": "in_transit",
    "checkpoint": {
      "occurred_at": "2025-04-08T10:10:00Z",
      "description": "Departed processing facility"
    }
  }
}

Trennen Sie in Ihrem Datenmodell drei Zeitpunkte: wann das Sendungsereignis stattgefunden hat, wann der Anbieter die Nachricht erzeugt hat und wann Ihre Anwendung sie empfangen hat. Ein verspäteter Prüfpunkt kann nach einem neueren eintreffen. Ein Zeitstempel ohne Offset benötigt ebenfalls eine eindeutige Interpretation; behandeln Sie nicht stillschweigend jeden lokal beim Transportdienstleister erfassten Zeitstempel als UTC.

Bewahren Sie Ihre interne Sendungsreferenz zusammen mit den Kennungen des Anbieters auf. Eine Tracking-Nummer allein reicht möglicherweise nicht als dauerhafte globale Kennung aus, insbesondere in unterschiedlichen Kontexten von Transportdienstleistern. Führen Sie bei geteilten Bestellungen Datensätze auf Sendungsebene, anstatt den gesamten Auftrag als abgeschlossen zu markieren, sobald ein einzelnes Paket zugestellt wurde.

Bewahren Sie den ursprünglichen Status und die ursprüngliche Beschreibung neben Ihrem normalisierten Geschäftsstatus auf. Ihre Anwendung kann mehrere Nachrichten eines Transportdienstleisters auf „unterwegs“ abbilden, aber der Support kann weiterhin den ursprünglichen Prüfpunkt benötigen, um eine Verzögerung zu verstehen. Behandeln Sie voraussichtliche Zustelltermine als Schätzungen und unterscheiden Sie zwischen einem fehlenden Feld und einer ausdrücklichen Anweisung, einen bestehenden Wert zu löschen.

Wiederholungen, Bestätigungen und doppelte Ereignisse

Die Webhook-Zustellung kann aufgrund von Timeouts, Netzwerkunterbrechungen, Authentifizierungsfehlern oder eines nicht verfügbaren Empfängers fehlschlagen. Ein Anbieter kann die Zustellung wiederholen, aber es gibt keinen universellen Wiederholungsplan, kein einheitliches Aufbewahrungsfenster und keine allgemein gültige maximale Anzahl von Versuchen. Klären Sie, welche Antworten einen weiteren Versuch auslösen, wie Weiterleitungen behandelt werden und ob eine manuelle erneute Zustellung möglich ist.

Nach dauerhafter Annahme bestätigen

Halten Sie den Anfragepfad kurz: Validieren Sie die Anfrage, speichern Sie die akzeptierte Arbeit dauerhaft und geben Sie die vom Anbieter erwartete Erfolgsantwort zurück. Senden Sie E-Mails und führen Sie langsamere Geschäftsprozesse asynchron aus. Die HTTP-Spezifikation definiert 202 Accepted als Annahme zur Verarbeitung und nicht als abgeschlossene Verarbeitung; Ihr Anbieter kann jedoch eine andere Erfolgsantwort verlangen. Befolgen Sie seinen Webhook-Vertrag.

Wenn Sie Erfolg melden, bevor etwas gespeichert wurde, riskieren Sie den Verlust der Aktualisierung, falls Ihr Prozess abstürzt. Wenn Sie auf jede nachgelagerte Aktion warten, riskieren Sie einen Timeout und einen weiteren Zustellversuch. Ein dauerhaftes Eingangsfach oder eine Warteschlange schafft eine Grenze zwischen Empfang und Verarbeitung.

Machen Sie die Verarbeitung idempotent

Idempotenz bedeutet, dass die erneute Verarbeitung desselben Ereignisses seine geschäftlichen Auswirkungen nicht wiederholt. Ein Absender kann erneut versuchen, nachdem Ihr Server ein Ereignis angenommen hat, die Bestätigung jedoch verloren gegangen ist. Doppelte Zustellungen sollten daher ein routinemäßiger Testfall sein.

  • Verwenden Sie eine dokumentierte Ereigniskennung als Deduplizierungsschlüssel, sofern eine solche verfügbar ist, und beziehen Sie sie auf den richtigen Anbieter oder das richtige Konto.
  • Wenn keine Kennung vorhanden ist, erstellen Sie einen zusammengesetzten Schlüssel aus stabilen Ereignisfeldern und testen Sie die Kollisionsrisiken.
  • Erzwingen Sie die Eindeutigkeit atomar im Speicher; eine getrennte Abfolge aus „prüfen, dann einfügen“ kann bei gleichzeitigen Zustellungen zu Race Conditions führen.
  • Schützen Sie auch nachgelagerte Aktionen. Ein doppeltes Ereignis darf keine weitere Zustellbenachrichtigung senden oder eine finanzielle Aktion wiederholen.
  • Legen Sie die Aufbewahrung entsprechend dem Replay-Verhalten des Anbieters und Ihren Wiederherstellungsanforderungen fest, anstatt Deduplizierungsdatensätze sofort zu löschen.

Gehen Sie nicht von einer chronologischen Ankunft aus

Überschreiben Sie den aktuellen Sendungsstatus nicht einfach deshalb, weil eine Anfrage zuletzt eingetroffen ist. Vergleichen Sie die Bedeutung des Ereignisses, Zeitstempel und alle dokumentierten Sequenzinformationen. Bewahren Sie verspätete Prüfpunkte im Verlauf auf, ohne den angezeigten Status automatisch zurückzusetzen. Lassen Sie zugleich dokumentierte Korrekturen zu: Eine starre Regel, nach der zugestellte Sendungen niemals geändert werden können, kann berechtigte Ausnahmen oder korrigierte Informationen verbergen.

Eine praktische Einrichtungs-Checkliste

1. Bestätigen Sie den Vertrag des Anbieters

Bestätigen Sie vor der Implementierung die Registrierungsanforderungen, unterstützten Ereignisse, Nutzlaststruktur, Authentifizierung, Antwortanforderungen, Timeouts, das Wiederholungsverhalten und API-Limits. Prüfen Sie, ob eine Benachrichtigung einen Snapshot oder eine inkrementelle Änderung darstellt, ob Zustellungen mehrere Datensätze enthalten können und ob ein Abonnement einen Anfangsstatus sendet.

Beginnen Sie bei einer 17TRACK-Integration mit der offiziellen Tracking API-Seite und der API-Dokumentation. Verwenden Sie die anbieterspezifische Dokumentation, um Anfragefelder und Callback-Anforderungen festzulegen; die allgemeine Nutzlast oben ist kein Ersatz dafür. Bestätigen Sie die Zugangsbedingungen und betrieblichen Limits für die Integration, die Sie bereitstellen möchten.

2. Sichern Sie den Empfangsendpunkt

Verwenden Sie HTTPS und den Authentifizierungsmechanismus, den der Anbieter dokumentiert. Wenn er eine HMAC-Signatur verwendet, validieren Sie exakt die von ihm angegebene signierte Eingabe. Werden rohe Anfragebytes signiert, kann das Parsen und erneute Serialisieren von JSON vor der Verifizierung diese Bytes verändern und die Signatur ungültig machen. Verwenden Sie für aus Geheimnissen abgeleitete Signaturwerte einen Vergleich in konstanter Zeit.

Wenn signierte Zeitstempel oder Zustellungskennungen verfügbar sind, wenden Sie die dokumentierten Replay-Schutzmaßnahmen an. Eine gültige Signatur authentifiziert eine Nachricht, stellt aber für sich genommen nicht fest, dass sie aktuell ist. Halten Sie Geheimnisse aus URLs und Anwendungsprotokollen fern, unterstützen Sie die Rotation von Geheimnissen und begrenzen Sie die Anfragegröße. Eine IP-Allowlist kann eine zusätzliche Maßnahme sein, sofern gepflegte Adressbereiche vorhanden sind, ersetzt jedoch nicht die Nachrichtenauthentifizierung.

3. Trennen Sie Empfang und Geschäftsverarbeitung

Speichern Sie genügend Informationen, um ein angenommenes Ereignis nachzuverfolgen und sicher erneut abzuspielen. Queue-Worker sollten die Aktualisierung normalisieren, Regeln für Zustandsübergänge anwenden und die Ergebnisse von Aktionen aufzeichnen. Verschieben Sie wiederholt fehlschlagende Arbeit in einen überprüfbaren Dead-Letter-Prozess, anstatt sie unbegrenzt zu wiederholen. Beschränken Sie Zugriff und Aufbewahrung, da Tracking-Nutzlasten kundenbezogene Informationen enthalten können.

4. Testen Sie Fehlerpfade vor dem Start

  • Senden Sie dasselbe Ereignis zweimal, einschließlich gleichzeitiger Zustellungen.
  • Stellen Sie einen älteren Prüfpunkt nach einem neueren zu.
  • Simulieren Sie einen Ausfall der Warteschlange und einen Absturz des Workers nach dem Empfang.
  • Testen Sie ungültige Authentifizierung, fehlerhaftes JSON und übergroße Anfragen.
  • Testen Sie unbekannte Sendungen, fehlende optionale Felder und hinzugefügte Felder.
  • Stellen Sie sicher, dass ein zugestelltes Paket keine geteilte Bestellung abschließt.
  • Spielen Sie ein Ereignis nach der Wiederherstellung erneut ab und bestätigen Sie, dass Benachrichtigungen dedupliziert bleiben.

Seien Sie, wo sicher, tolerant gegenüber zusätzlichen Feldern, interpretieren Sie unbekannte Statuswerte jedoch nicht stillschweigend um. Bewahren Sie den Rohwert auf und leiten Sie nicht erkannte Fälle an einen definierten Fallback- oder Prüfprozess weiter.

Wo Polling weiterhin sinnvoll ist

Polling ist für die erste Synchronisierung, die Wiederherstellung nach einem Ausfall und die Prüfung von Sendungen nützlich, bei denen erwartete Aktualisierungen nicht eingetroffen sind. Schweigen allein ist jedoch kein Beweis für einen Webhook-Fehler: Ein Paket kann tatsächlich keine neuen Scans haben. Gleichen Sie stattdessen den aktuellen Status oder Verlauf der API ab, anstatt anzunehmen, dass jede ruhige Sendung einen Alarm benötigt.

Für die Skalierungsplanung lautet ein vereinfachtes Polling-Modell requests per hour ≈ active shipments × polls per shipment per hour, unter der Annahme, dass eine Sendung pro Anfrage verarbeitet wird. Batch-Endpunkte verändern diese Berechnung. Zur Veranschaulichung erzeugen 1.000 Sendungen, die viermal pro Stunde geprüft werden, vor Wiederholungen 4.000 Anfragen pro Stunde; dies ist eine Rechenbeispiel und keine Anbieterquote oder Preisschätzung.

Planen Sie Prüfungen entsprechend der Sendungsaktivität und dem Geschäftsrisiko, beachten Sie Rate Limits und fügen Sie Jitter hinzu, damit nicht alle Jobs gleichzeitig starten. Verwenden Sie bei wiederholbaren Fehlern ein begrenztes Backoff und beachten Sie die geltenden Serverhinweise. Wiederholen Sie dauerhafte Anmeldungs- oder Validierungsfehler nicht fortlaufend, ohne sie zu korrigieren.

Ein praktisches hybrides System verwendet Webhooks für routinemäßige Aktualisierungen und gezielte API-Abfragen für vermutete Lücken. Überwachen Sie Empfangsfehler, das Alter der Warteschlange, Verarbeitungsfehler, Duplikatraten und Abweichungen beim Abgleich getrennt voneinander. Wenn Zeitstempel zuverlässig sind, unterscheiden Sie zwischen Verzögerungen der Quelldaten, der Webhook-Zustellung und der internen Verarbeitung.

FAQ

Sind Tracking-Webhooks Echtzeit?

Sie können die Verzögerung verringern, die durch das Warten auf den nächsten Polling-Zyklus entsteht. Sie garantieren weder sofortige Scans durch den Transportdienstleister noch unverzügliche Aktualisierungen der Quelle. Die Aktualität von Ende zu Ende umfasst die Meldung durch den Transportdienstleister, die Verarbeitung beim Anbieter, die Zustellung der Anfrage und Ihre eigene Anwendung.

Kann ich das Polling nach der Aktivierung von Webhooks vollständig einstellen?

Möglicherweise, wenn die Wiederherstellungsfunktionen des Anbieters und Ihre geschäftlichen Anforderungen dies zulassen. Für betrieblich wichtige Sendungsdatensätze sollten Sie eine Abgleichsmethode beibehalten. Sie kann gezielt sein, anstatt jede Sendung kontinuierlich abzufragen.

Was geschieht, wenn mein Webhook-Endpunkt offline ist?

Die Wiederherstellung hängt von der dokumentierten Wiederholungspolitik des Absenders ab. Gehen Sie nicht davon aus, dass Wiederholungen unbegrenzt fortgesetzt werden. Prüfen Sie nach der Wiederherstellung des Endpunkts fehlgeschlagene Zustellungen, verwenden Sie unterstützte Tools zur erneuten Zustellung und gleichen Sie betroffene Sendungen, sofern möglich, über die API ab.

Sollte jeder Webhook eine Kundenbenachrichtigung auslösen?

Nein. Ein Ereignis kann ein Duplikat, ein historischer Prüfpunkt oder eine Aktualisierung sein, die den kundenorientierten Status nicht verändert. Lösen Sie Benachrichtigungen aus deduplizierten geschäftlichen Übergängen aus und berücksichtigen Sie Regeln für Ausnahmen und Korrekturen.

Bedeutet eine erfolgreiche HTTP-Antwort, dass die Sendungsaktualisierung abgeschlossen ist?

Nicht unbedingt. In einem asynchronen Design bedeutet sie, dass der Empfänger das Ereignis gemäß dem vereinbarten Vertrag angenommen hat. Verfolgen Sie den Abschluss der Verarbeitung und die Ergebnisse nachgelagerter Benachrichtigungen getrennt, damit eine angenommene Anfrage keinen fehlgeschlagenen Workflow verbergen kann.

Quellen

Loading