Webhooks
Denne guide forklarer, hvordan du sætter Shipits udgående webhooks op, hvordan du verificerer leveringer, og hvilke hændelser Shipit i øjeblikket kan sende.
Hvad webhooks bruges til
Udgående webhooks gør det muligt for Shipit at kalde dit endpoint, når en understøttet hændelse sker.
Typiske anvendelser:
- synkronisere nybookede forsendelser til dit eget system
- reagere automatisk på bookingfejl
- opdatere dit interface, når en ny sporingshændelse ankommer
- overvåge wallet-krediteringer, debiteringer og lav saldo-advarsler
Understøttede hændelser
Shipit understøtter i øjeblikket disse udgående webhook-hændelser:
shipment.bookedshipment.failedshipment.tracking_event_updatedpending_shipment.createdpending_shipment.completedwallet.creditedwallet.debitedwallet.low_balance
Eksempelpayloads findes på siden Hændelsespayloads og sporingsstatusser.
Anbefalet opsætning
- Opret et HTTPS-endpoint i din applikation, som accepterer JSON.
- Returnér et
2xx-svar, når du har accepteret payloaden. - Opret en webhook i Shipit og tilføj dit endpoint-URL.
- Vælg de hændelser, du vil abonnere på.
- Kopiér signeringshemmeligheden og gem den i din applikation.
- Send en test og bekræft, at dit endpoint modtager den.
- Gennemgå webhook-historikken i Shipit for at bekræfte leveringen.
Request-format
Shipit sender JSON-requests med disse standardheaders:
Content-Type: application/jsonX-Webhook-Signature: <hmac_sha256_signature>
Du kan også tilføje dine egne headers i webhook-konfigurationen.
Signaturverifikation
Shipit signerer den rå JSON-payload med HMAC-SHA256 ved hjælp af webhookens signeringshemmelighed. Den resulterende hash sendes i headeren X-Webhook-Signature.
Anbefalet flow:
- Læs request body råt og præcist som modtaget.
- Beregn en
HMAC-SHA256med din signeringshemmelighed. - Sammenlign den beregnede værdi med
X-Webhook-Signaturemed en constant-time sammenligning. - Afvis requesten, hvis signaturerne ikke matcher.
Leveringsadfærd
- Alle
2xx-svar behandles som succesfulde leveringer. - Alle ikke-
2xx-svar behandles som fejl. - Netværksfejl og timeouts behandles også som fejl.
- Fejlede leveringer kan prøves igen efter webhookens retry-indstillinger.
- Gentagne fejl kan flytte en webhook til en tilstand, der kræver review.
HTTP-metoder og autentificering
Shipit understøtter disse udgående HTTP-metoder:
GETPOSTPUTPATCHHEAD
POST er det anbefalede standardvalg, medmindre din integration kræver noget andet.
Understøttede autentificeringsmetoder:
- ingen autentificering
- Basic Auth
- Digest Auth
Timeouts, retries og payloadgrænser
Hver webhook kan konfigureres med:
- request timeout
- connection timeout
- maksimalt antal retries
- retry-strategi
- grundlæggende retry-forsinkelse
- maksimal payloadstørrelse
- opbevaringsperiode for historik
Requesthistorik
Shipit registrerer hvert faktisk leveringsforsøg i webhook-historikken, inklusive retries. For hvert forsøg kan du se:
- request-URL og HTTP-metode
- headers
- payload
- svarstatuskode
- svarbody
- varighed
- fejlmeddelelse, hvis der ikke blev modtaget et svar
Sporingsstatusser
shipment.tracking_event_updated indeholder værdien tracking_event.status fra Shipits enum for sporingsstatusser. Den fulde liste findes på siden Hændelsespayloads og sporingsstatusser.
