Lewati ke konten

Webhooks

Provider mengirim notifikasi status pengiriman ke endpoint kamu. parseWebhook() mengubah payload mentah provider menjadi WebhookEvent ternormalisasi.

const event = provider.parseWebhook(payload, headers)
// {
// id: string
// provider: 'biteship' | 'komerce' | 'shipper'
// type: string
// trackingId: string
// status: string
// normalizedStatus?: ShipmentStatus
// timestamp: string
// rawPayload: unknown
// }

Dukungan per provider

ProviderWebhookSignature verification
Biteship
Shipper
Komerce (tier Shipping Cost)WEBHOOK_NOT_SUPPORTED

Provider yang tidak menyediakan webhook di tier akun yang ditarget tetap mengimplementasikan parseWebhook, tapi melempar ShippingSDKError dengan code WEBHOOK_NOT_SUPPORTED.

Implikasi tanpa signature verification

Biteship dan Shipper tidak menyediakan verifikasi signature — endpoint webhook harus stateless & open (dijelaskan di dashboard provider masing-masing). Keamanan idempotency diserahkan ke consumer: pastikan endpoint kamu idempotent terhadap event duplikat (misal lewat event.id atau event.trackingId).