Skip to main content

New webhook events: stock levels, shipment tracking, partial receipts and record updates

If you connect SKU.io to a storefront, a 3PL portal, a data warehouse or Zapier, webhooks used to tell you about new records and a few big moments, but not much in between. Stock could move all day without a word, so you polled for levels. An order shipped in two boxes sent one webhook with no tracking number. A partial receipt looked the same as a finished PO, and a renamed product or corrected customer email never reached the other system. Six new webhook events close those gaps. Each one is signed, retried and logged like every other SKU.io webhook, and the busy ones are batched so a big receipt never floods your endpoint.

✨ What this means for you:

  • Stop polling for stock. Stock Level Changed fires whenever a product's stock at a warehouse moves, for any reason: a receipt, a sale, an allocation, an adjustment, a transfer or a 3PL sync.
  • Tracking for every box. Shipment Sent fires once per shipment, with its tracking number and link, so you can tell the customer each parcel is on its way.
  • Know when a PO is only part-way in. Purchase Order Partially Received fires when a receipt leaves some of the order still to come.
  • Keep other systems in step. Product Updated, Customer Updated and Sales Order Updated fire when the details those systems care about change.
  • No floods. Busy events are batched into one delivery per product per warehouse, or per record.
  • Receipts you record in SKU.io now send their events. Receiving a purchase order in the app now sends Goods Received (purchase_order.received) every time, as receipts recorded any other way already did.

Pick from the new events​

Go to Settings → Developer → Webhooks and click Create Webhook. The new events sit in their groups in the Event list, next to the ones you already use. Under each event, a chip shows the read scope it needs. Batched events also show a Coalesced chip with their window. Hover over the chip to see what the batching does.

The Create webhook dialog with Stock Level Changed selected, showing the inventory scope chip and the Coalesced · 30s chip

EventFires when
Stock Level ChangedA product's stock at a warehouse changes, with on hand, available, allocated and in transit, before and after
Shipment SentEach shipment of an order ships, with its tracking number, tracking link, carrier and lines
Purchase Order Partially ReceivedA receipt leaves some of the purchase order still to come
Product UpdatedA product's SKU, name, barcode, MPN, brand, type, parent, weight or dimensions change
Customer UpdatedA customer's name, email, phone, company, store, pricing tier or email opt-out changes
Sales Order UpdatedAn order's status, customer, shipping address, shipping method or dates change

Batched so a big receipt stays one delivery per product​

Stock Level Changed collects changes for 30 seconds, then sends one delivery per product per warehouse with the final levels and the previous ones. You never have to keep your own running totals. Receiving a 2,000-line purchase order sends one delivery per product, not one per line. If stock moves and moves back inside the window, nothing is sent. The three update events batch the same way over 10 seconds and send the record as it is when it's delivered.

Every attempt shows in the subscription's delivery log, so you can open any delivery and read exactly what your endpoint received.

A Stock Level Changed subscription's recent deliveries: four successful deliveries from one receipt, with one payload open showing the product, warehouse and before-and-after stock levels

Signed like every other webhook​

The new events use the same envelope, retries and signature as the rest. When you create a subscription, SKU.io shows its signing secret once. Every delivery carries an X-SKU-Signature header, an HMAC-SHA256 of the raw body keyed with that secret, so your endpoint can reject anything that didn't come from SKU.io. The guide has ready-to-paste checks in PHP, Node and Python.

The Webhook created dialog asking you to copy the signing secret now, used to verify the X-SKU-Signature header on every delivery

Where to find it​

Go to Settings → Developer → Webhooks and click Create Webhook. Connected apps can also subscribe to the new events through the API.

Full guide: Subscribe to webhooks · see also Monitor webhook deliveries