Webhooks

订阅跨系统事件。事件发生的瞬间我们就 POST JSON 到你的接口——无需轮询。

事件

shipment.deliveredWMS 出库单确认送达
sales_order.releasedOMS 订单释放下发 WMS
inbound_receipt.completedWMS 入库单完成
drayage_order.completed拖车订单完成(集装箱送达)
inventory.adjusted库存已调整
wave.released拣选波次已释放
transport_order.podTMS 回单已上传
trial.expiring试用 30 天后到期
Webhook 负载
{
  "event": "shipment.delivered",
  "at": "2026-10-06T18:42:11Z",
  "data": { "shipment_id": "shp_2041",
    "merchant_id": "mch_acme",
    "delivered_at": "2026-10-06T18:40:02Z" }
}

验证签名

每次推送都带 X-Bodegito-Signature(用你的 webhook secret 对原始 body 做 HMAC-SHA256)和 X-Bodegito-Timestamp。超过 5 分钟或签名不对的直接拒绝。

Headers + verify
X-Bodegito-Signature: sha256=9f2c...a1
X-Bodegito-Timestamp: 1728268931

# verify (node)
crypto.timingSafeEqual(
  Buffer.from(received),
  Buffer.from('sha256=' + crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(rawBody).digest('hex'))
);

重试策略

10 秒内期望 2xx,否则按指数退避重试(1 分钟 → 5 分钟 → 30 分钟 → 2 小时 → 12 小时),之后进死信队列保留 7 天。