Skip to main content
HomeBlogVergelijkingenVerzendingen volgen via webhooks: Hoe tracking-webhooks werken versus polling (payloads, retries en configuratie)

Verzendingen volgen via webhooks: Hoe tracking-webhooks werken versus polling (payloads, retries en configuratie)

17TRACK

Verzendtracking-webhooks sturen een HTTP-verzoek naar je applicatie wanneer een trackingservice een update te melden heeft. Polling werkt in de tegenovergestelde richting: je applicatie vraagt herhaaldelijk de nieuwste trackinginformatie op. Voor ontwikkelaars die verzendgegevens koppelen aan een orderbeheersysteem, winkel of klantenmeldingsservice zijn webhooks over het algemeen het betere primaire updatemechanisme wanneer dit wordt ondersteund; gerichte polling kan helpen gemiste updates te herstellen en records te reconciliëren.

Webhook Shipment Tracking How Tracking Webhooks Work vs Polling Payloads

Geen van beide methoden zorgt ervoor dat een vervoerder een pakket eerder scant. Beide zijn afhankelijk van het moment waarop de trackingbron nieuwe informatie ontvangt en beschikbaar maakt. Het praktische verschil is hoe je applicatie deze informatie ontvangt, hoeveel verzoekverkeer wordt gegenereerd en wat er gebeurt wanneer de aflevering mislukt.

Tracking-webhooks versus polling: het operationele verschil

Dit zijn integratiepatronen, geen concurrerende trackingdatabases. Een vervoerder of trackingplatform kan een van beide patronen of beide aanbieden, met verschillende toegangsvoorwaarden. Vergelijk het gedrag van de specifieke API die je wilt gebruiken in plaats van ervan uit te gaan dat alle webhookservices dezelfde garanties bieden.

BeslispuntWebhooksPolling
Wie start het verzoek?De trackingservice roept je endpoint aan.Je applicatie roept de tracking-API aan.
Vertragingsduur van updatesHangt af van de actualiteit van de bron, gebeurtenisgeneratie, aflevering en verwerking.Hangt ook af van het moment waarop je volgende geplande verzoek wordt uitgevoerd.
VerzoekvolumeWordt bepaald door verzonden updates, batching en afleveringspogingen.Wordt bepaald door verzendvolume, pollingfrequentie en batching.
InfrastructuurVereist een toegankelijke ontvanger en veilige afhandeling van inkomende verzoeken.Vereist een planner, uitgaande API-toegang en afhandeling van snelheidslimieten.
Herstel na foutenHangt af van pogingen van de provider plus je eigen reconciliatieproces.Hangt af van volgende verzoeken en van de vraag of de API de benodigde geschiedenis bewaart.

Kies eerst webhooks wanneer tijdige updates belangrijk zijn en je team een betrouwbare ontvanger kan beheren. Kies eerst polling wanneer inkomende endpoints onpraktisch zijn, het verzendvolume beperkt is of de bron geen geschikte webhooks biedt. Gebruik een hybride ontwerp wanneer gemiste updates de klantcommunicatie of bedrijfsvoering zouden verstoren en de API reconciliatie ondersteunt.

Ga er niet van uit dat webhooks goedkoper zijn. Abonnementskosten, trackingregistratie, API-aanroepen, gebeurtenisaflevering en infrastructuur kunnen verschillend worden gefactureerd. Vergelijk de daadwerkelijke commerciële voorwaarden en verwachte werklast in plaats van minder verzoeken te beschouwen als bewijs van een lagere factuur.

Wat gebeurt er tussen een scan door de vervoerder en je applicatie?

  1. Identificeer de zending. Koppel het trackingnummer, indien vereist de vervoerdersinformatie en een interne verzendreferentie. Sommige services vereisen registratie voordat monitoring begint.
  2. Configureer gebeurtenisaflevering. Geef een HTTPS-callback-URL op en selecteer ondersteunde gebeurtenisabonnementen.
  3. De bron ontvangt trackinginformatie. Een scan door de vervoerder of een statuswijziging wordt beschikbaar voor de trackingservice.
  4. De service verstuurt een webhook. Het verzoek kan een volledige trackingsnapshot, één controlepunt of alleen een referentie bevatten waarvoor een API-opvraag nodig is.
  5. Je ontvanger valideert en slaat deze op. Authenticeer het verzoek, controleer de structuur en leg de gebeurtenis duurzaam vast of plaats deze in een wachtrij.
  6. Een worker werkt bedrijfssystemen bij. Normaliseer statussen, werk verzendrecords bij en activeer alleen acties die nog passend zijn.

Een webhookaflevering is niet hetzelfde als een fysieke aflevering. Het is een bericht over verzendinformatie. Evenmin bewijst een succesvolle webhookrespons dat een e-mail is verzonden of dat een orderrecord is bijgewerkt; dat zijn downstream verwerkingsresultaten die afzonderlijk moeten worden gemonitord.

Een tracking-webhookpayload lezen

De volgende JSON is een illustratief integratieontwerp, geen 17TRACK-payload of universeel schema. Werkelijke veldnamen, statuscodes, tijdstempelformaten en gebeurtenis-ID's moeten afkomstig zijn uit de documentatie van de geselecteerde provider.

{
  "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"
    }
  }
}

Houd in je datamodel drie klokken gescheiden: wanneer de verzendgebeurtenis plaatsvond, wanneer de provider het bericht genereerde en wanneer je applicatie het ontving. Een vertraagd controlepunt kan na een nieuwer controlepunt aankomen. Een tijdstempel zonder offset vereist ook een expliciete interpretatie; behandel niet stilzwijgend elke tijdstempel in lokale vervoerdertijd als UTC.

Bewaar je interne verzendreferentie naast de identificatiegegevens van de provider. Een trackingnummer alleen is mogelijk geen voldoende permanente globale identificatie, vooral niet bij verschillende vervoerderscontexten. Houd voor gesplitste orders records op verzendingsniveau bij in plaats van de status ‘afgeleverd’ van één pakket de volledige order als voltooid te laten markeren.

Bewaar de oorspronkelijke status en beschrijving naast je genormaliseerde bedrijfsstatus. Je applicatie kan meerdere vervoerdersberichten naar “onderweg” mappen, maar supportmedewerkers kunnen het oorspronkelijke controlepunt nog steeds nodig hebben om een vertraging te begrijpen. Behandel geschatte leverdata als schattingen en onderscheid een ontbrekend veld van een expliciete instructie om een bestaande waarde te wissen.

Pogingen, bevestigingen en dubbele gebeurtenissen

Webhookaflevering kan mislukken door time-outs, netwerkonderbrekingen, authenticatiefouten of een onbeschikbare ontvanger. Een provider kan het opnieuw proberen, maar er bestaat geen universeel schema voor nieuwe pogingen, geen universele bewaartermijn en geen universeel maximumaantal pogingen. Controleer welke responses een nieuwe poging activeren, hoe omleidingen worden afgehandeld en of handmatige herlevering beschikbaar is.

Bevestig na duurzame acceptatie

Houd het verzoekpad kort: valideer het verzoek, bewaar het geaccepteerde werk en retourneer de succesrespons die de provider vereist. Verstuur e-mails en voer tragere bedrijfsbewerkingen asynchroon uit. De HTTP-specificatie definieert 202 Accepted als acceptatie voor verwerking en niet als voltooide verwerking, maar je provider kan een andere succesrespons vereisen. Volg het webhookcontract van de provider.

Succes retourneren voordat er iets is opgeslagen brengt het risico met zich mee dat de update verloren gaat als je proces crasht. Wachten op elke downstreamactie brengt het risico van een time-out en een nieuwe afleveringspoging met zich mee. Een duurzame inbox of wachtrij vormt een grens tussen ontvangst en verwerking.

Maak verwerking idempotent

Idempotentie betekent dat het opnieuw verwerken van dezelfde gebeurtenis de bedrijfseffecten niet herhaalt. Een verzender kan het opnieuw proberen nadat je server een gebeurtenis heeft geaccepteerd maar de bevestiging verloren is gegaan. Dubbele aflevering moet daarom een normale testsituatie zijn.

  • Gebruik een gedocumenteerde gebeurtenis-ID als sleutel voor deduplicatie wanneer die beschikbaar is, binnen de juiste provider of account.
  • Als er geen ID bestaat, ontwerp dan een samengestelde sleutel op basis van stabiele gebeurtenisvelden en test het risico op botsingen.
  • Dwing uniciteit atomair af in opslag; een afzonderlijke reeks “controleren en vervolgens invoegen” kan bij gelijktijdige aflevering een raceconditie veroorzaken.
  • Bescherm ook downstreamacties. Een dubbele gebeurtenis mag geen nieuwe afleveringsmelding versturen of een financiële actie herhalen.
  • Stel de bewaartermijn af op het replaygedrag van de provider en je herstelvereisten, in plaats van deduplicatierecords onmiddellijk te verwijderen.

Ga niet uit van chronologische aankomst

Overschrijf de huidige verzendstatus niet alleen omdat een verzoek als laatste is aangekomen. Vergelijk de betekenis van de gebeurtenis, tijdstempels en eventuele gedocumenteerde sequentie-informatie. Bewaar late controlepunten in de geschiedenis zonder de weergegeven status automatisch terug te zetten. Sta tegelijkertijd gedocumenteerde correcties toe: een starre regel dat afgeleverde zendingen nooit kunnen veranderen kan legitieme uitzonderingen of gecorrigeerde informatie verbergen.

Een praktische installatiechecklist

1. Bevestig het providercontract

Bevestig vóór de implementatie de registratievereisten, ondersteunde gebeurtenissen, payloadstructuur, authenticatie, responsverwachtingen, time-outs, retrygedrag en API-limieten. Controleer of een melding een snapshot of een incrementele wijziging vertegenwoordigt, of afleveringen meerdere records kunnen bevatten en of een abonnement een initiële status verstuurt.

Begin voor een 17TRACK-integratie met de officiële Tracking API-pagina en API-documentatie. Gebruik de providerspecifieke documentatie om aanvraagvelden en callbackvereisten vast te stellen; de generieke payload hierboven is geen vervanging daarvoor. Bevestig de toegangsvoorwaarden en operationele limieten voor de integratie die je wilt implementeren.

2. Beveilig het ontvangende endpoint

Gebruik HTTPS en het authenticatiemechanisme dat de provider documenteert. Als de provider een HMAC-handtekening gebruikt, valideer dan exact de ondertekende invoer die wordt gespecificeerd. Wanneer onbewerkte requestbytes worden ondertekend, kan het parseren en opnieuw serialiseren van JSON vóór verificatie die bytes wijzigen en de handtekening ongeldig maken. Gebruik een vergelijking met constante tijd voor van geheimen afgeleide handtekeningwaarden.

Als ondertekende tijdstempels of afleverings-ID's beschikbaar zijn, pas dan de gedocumenteerde replaybeveiliging toe. Een geldige handtekening authenticeert een bericht, maar bewijst op zichzelf niet dat het bericht actueel is. Houd geheimen uit URL's en applicatielogs, ondersteun geheimrotatie en beperk verzoekgroottes. IP-allowlisting kan een aanvullende controle zijn wanneer onderhouden adresbereiken bestaan, maar is geen vervanging voor berichtauthenticatie.

3. Scheid ontvangst van bedrijfsverwerking

Sla voldoende informatie op om een geaccepteerde gebeurtenis te kunnen traceren en veilig opnieuw af te spelen. Queue-workers moeten de update normaliseren, statusovergangsregels toepassen en actieresultaten vastleggen. Plaats werk dat herhaaldelijk mislukt in een controleerbare dead-letterworkflow in plaats van het eindeloos opnieuw te proberen. Beperk toegang en bewaartermijnen omdat trackingpayloads klantgerelateerde informatie kunnen bevatten.

4. Test foutpaden vóór de lancering

  • Verstuur dezelfde gebeurtenis twee keer, inclusief gelijktijdige afleveringen.
  • Lever een ouder controlepunt af na een nieuwer controlepunt.
  • Simuleer een wachtrij-uitval en een workercrash na ontvangst.
  • Test ongeldige authenticatie, ongeldige JSON en te grote verzoeken.
  • Test onbekende zendingen, ontbrekende optionele velden en toegevoegde velden.
  • Controleer dat één afgeleverd pakket een gesplitste order niet voltooit.
  • Speel na herstel een gebeurtenis opnieuw af en bevestig dat meldingen gededupliceerd blijven.

Wees waar veilig tolerant voor aanvullende velden, maar interpreteer onbekende statuswaarden niet stilzwijgend opnieuw. Bewaar de onbewerkte waarde en stuur niet-herkende gevallen via een gedefinieerd fallback- of beoordelingsproces.

Waar polling nog steeds zijn plaats heeft

Polling is nuttig voor de eerste synchronisatie, herstel na een storing en het controleren van zendingen waarvan verwachte updates niet zijn aangekomen. Stilte alleen bewijst echter niet dat een webhook is mislukt: een pakket kan daadwerkelijk geen nieuwe scans hebben. Reconcileer met de huidige status of geschiedenis van de API in plaats van ervan uit te gaan dat elke stille zending een melding nodig heeft.

Voor schaalplanning is een vereenvoudigd pollingmodel requests per hour ≈ active shipments × polls per shipment per hour, uitgaande van één zending per verzoek. Batch-endpoints veranderen deze berekening. Ter illustratie: 1.000 zendingen die vier keer per uur worden gecontroleerd, genereren vóór nieuwe pogingen 4.000 verzoeken per uur; dit is rekenkunde, geen schatting van een providertarief of quota.

Plan controles op basis van verzendactiviteit en bedrijfsrisico, respecteer snelheidslimieten en voeg jitter toe zodat taken niet allemaal tegelijk starten. Gebruik voor opnieuw probeerbare fouten begrensde backoff en volg toepasselijke serverinstructies. Probeer permanente credential- of validatiefouten niet herhaaldelijk opnieuw zonder ze te corrigeren.

Een praktisch hybride systeem gebruikt webhooks voor routinematige updates en gerichte API-opvragingen voor vermoedelijke hiaten. Monitor ontvangstfouten, wachtrijleeftijd, verwerkingsfouten, dubbele percentages en reconciliatieverschillen afzonderlijk. Wanneer tijdstempels betrouwbaar zijn, maak dan onderscheid tussen vertraging in brongegevens, vertraging bij webhookaflevering en interne verwerkingsvertraging.

Veelgestelde vragen

Zijn tracking-webhooks realtime?

Ze kunnen de vertraging verminderen die ontstaat door te wachten op de volgende pollingcyclus. Ze garanderen geen onmiddellijke scans door vervoerders of directe updates van de bron. De end-to-end-actualiteit omvat rapportage door de vervoerder, verwerking door de provider, aflevering van het verzoek en je eigen applicatie.

Kan ik volledig stoppen met pollen nadat ik webhooks heb ingeschakeld?

Mogelijk, als de herstelfuncties van de provider en je bedrijfsvereisten dat aanvaardbaar maken. Behoud voor operationeel belangrijke verzendrecords een reconciliatiemethode. Die kan gericht zijn in plaats van continu elke zending te pollen.

Wat gebeurt er als mijn webhook-endpoint offline is?

Herstel hangt af van het gedocumenteerde retrybeleid van de verzender. Ga er niet van uit dat nieuwe pogingen onbeperkt doorgaan. Controleer na het herstellen van het endpoint mislukte afleveringen, gebruik ondersteunde hulpmiddelen voor herlevering en reconcileer getroffen zendingen via de API waar dat beschikbaar is.

Moet elke webhook een klantmelding activeren?

Nee. Een gebeurtenis kan een duplicaat, een historisch controlepunt of een update zijn die de klantgerichte status niet wijzigt. Activeer meldingen op basis van gededupliceerde bedrijfsovergangen, met regels voor uitzonderingen en correcties.

Betekent een succesvolle HTTP-respons dat de verzendupdate voltooid is?

Niet noodzakelijk. In een asynchroon ontwerp betekent dit dat de ontvanger de gebeurtenis volgens het overeengekomen contract heeft geaccepteerd. Houd de voltooiing van de verwerking en de resultaten van downstreammeldingen afzonderlijk bij, zodat een geaccepteerd verzoek geen mislukte workflow kan verbergen.

Bronnen

Loading