shiphero-webhooks
Installation
SKILL.md
ShipHero Webhooks
When to Use This Skill
- How do I receive ShipHero webhooks?
- How do I verify ShipHero webhook signatures?
- How do I handle Order Allocated, Shipment Update, or Inventory Update events?
- Why is my ShipHero webhook signature verification failing?
- How do I register a ShipHero webhook with the
webhook_createmutation?
Verification (core)
ShipHero signs each webhook with HMAC-SHA256 over the raw JSON request body, base64-encoded, sent in the x-shiphero-hmac-sha256 header. The key is the app's shared_signature_secret, returned once by the webhook_create mutation. Verify by recomputing base64(HMAC-SHA256(rawBody, secret)) and comparing timing-safe against the header. Pass the raw body — parsing JSON first will break the signature. This is a plain HMAC of the raw body (NOT payload-concatenated-with-account-id, NOT Standard Webhooks).
There is no topic header — dispatch on the webhook_type field inside the (verified) payload. X-Shiphero-Message-ID is a unique per-delivery id for deduplication.
Node: