Next Restaurant 6.1.0: move your data in, run payroll, and connect other systems Next Inventory 6.2.0: a REST API and webhooks for your other systems Next DB 6.1: Auto-Updating Tables, Printing, Phone Layout and SEO Next Task 6.0.0: a task manager for Joomla Next Inventory 6.1.1: smoother Check Out, no more list limits, and much faster PHP2Shell: Is Your Joomla Site Safe? What to Do Today Introducing Next Boards: Kanban project and task boards for Joomla Building the Future of Joomla Extensions
NextSoftware

Webhook payload

Every message is an HTTP POST with a JSON body:

{
  "event": "stock_movement.finalized",
  "timestamp": "2026-11-11T09:30:00Z",
  "site": "https://example.com",
  "data": { }
}

Headers:

Header Value
Content-Type application/json
X-NextInventory-Event The event name
X-NextInventory-Signature sha256=<hex HMAC>, see Signatures
X-NextInventory-Delivery The delivery id, the same on every retry of one delivery
webhook-id msg_<delivery id>, the same on every retry (Standard Webhooks)
webhook-timestamp When this attempt was sent, in Unix seconds (signed)
webhook-signature v1,<base64 HMAC>, see Signatures
User-Agent NextInventory-Webhook/1.0

Use X-NextInventory-Delivery to ignore a message you have already processed. A retry after a timeout can arrive although your system did handle the first attempt.

stock_movement.finalized

{
  "id": 812,
  "movement_type": "check_out",
  "reference": "REQ-2231",
  "batch_id": "c5b0…",
  "movement_date": "2026-11-11",
  "warehouse_id": 1,
  "recipient_id": 5,
  "recipient_name": "Dana Smith",
  "created_by": 412,
  "lines": [
    { "item_id": 23, "title": "Laptop 14\"", "sku": "IT-0023", "quantity": 1.0, "stock_quantity": 6.0 }
  ]
}

stock_quantity on each line is the item's stock after the movement.

transfer.finalized

id, reference, transfer_date, from_warehouse_id, to_warehouse_id, created_by, lines.

adjustment.finalized

id, reference, adjustment_date, adjustment_type (addition, damage, subtraction), warehouse_id, created_by, lines.

stock.changed

One message per item whose quantity changed:

{
  "item_id": 17, "title": "A4 Copy Paper", "sku": "OFFC-001",
  "old_quantity": 26.0, "new_quantity": 16.0, "change": -10.0,
  "low_stock_threshold": 18.0, "warehouse_id": 1,
  "source": "transaction", "source_id": 9412
}

source says what changed it, and source_id is that record's id:

source source_id is
stock_movement the stock movement
transfer the transfer
adjustment the adjustment
transaction the ledger entry, from the Items page's Check In / Check Out / Add / Remove dialog
item_edit the item, when someone typed a new quantity into the item form (no ledger entry is written)
item_create the item, when it was created with an opening quantity

stock.low

{ "item_id": 17, "title": "A4 Copy Paper", "sku": "OFFC-001", "stock_quantity": 4.0, "low_stock_threshold": 5.0, "warehouse_id": 1 }

Sent once, when a stock change of any kind takes the item across its threshold. It is not sent again while the item stays low.

item.created and item.updated

id, title, item_type, sku, barcode, serial_number, category_id, warehouse_id, unit_id, stock_quantity, unit_price, low_stock_threshold, state.

item.deleted

id, title, sku.

warehouse.* and recipient.*

Warehouses: id, title, address, published, custom_fields. Recipients: id, name, email, department, published, custom_fields. custom_fields is an object of field name to value. *.deleted carries the record as it was just before it was deleted.

ping

Sent by Send a test ping: { "message": "Next Inventory webhook test.", "webhook_id": 3 }.

All Extensions