Webhook Events

Collection of events that can trigger webhook notifications from Rackbeat.

This event catalog for Rackbeat's webhooks is a structured list of events that can trigger webhook notifications. It provides details about relevant events, e.g. name, description, and the data payload it carries when sent via webhook. This catalog helps developers understand what events they can subscribe to and how to handle the corresponding data.

General Format for Webhook Delivery


Headers

Upon creating a new webhook, a 32-character "token" will be given to you. Store this token securely. It will be passed on every webhook in a Rackbeat-Webhook-Token header, and can be used to verify that the origin is Rackbeat.

Every webhook request includes these headers:

  • Rackbeat-Webhook-Token: Your webhook's verification token
  • Rackbeat-Webhook-Event: The event that triggered the webhook
  • Rackbeat-Account-Id: Your Rackbeat account ID
  • User-Agent: "Rackbeat Webhook"

Payload Structure

The payload structure varies by event type, but generally includeskey and key_name(name of the id/number/identifier/key for the element, which usually is "number" or "id"):

{
  "key": 123,
  "key_name": "id",
  "event": "order.created",
  "data": {
    // Event-specific data
  }
}

For "updated" events, additional fields are included:

  • old_key: Previous identifier value (old id/number/identifier/key of the element). Included in case it was changed, but generally always supplied.
  • new_key: New identifier value (new id/number/identifier/key of the element). Included in case it was changed, but generally always supplied.
  • changed: Updated data (array of keys).

Account & Settings


Entity

Event name

Extra info

Delivery terms

  • delivery_terms.created
  • delivery_terms.updated
Delivery terms API

Employees

  • employee.created
  • employee.updated
Employees API

Payment terms

  • payment_terms.created
  • payment_terms.updated
Payment terms API

Plugins

  • plugin.uninstalled

Tabs (Iframes)

  • iframe.created
  • iframe.updated
Tabs API

Items, Products & BoMs


ℹ️ Read more about the differences between items, products and bill of materials as well as batches, collections, locations and units in our guide "Intro to Items, Products & BoMs".

Entity

Event name

Extra info

Batches

  • batch.created
  • batch.updated
Batches API

Collections

  • collection.created
  • collection.updated
Collections API

Item cost price

  • item.updated.cost_price.changed
Items API

Item translations

  • item_translation.updated

ℹ️ Returns changes for translations. Payload type can be description or name.

Locations

  • location.created
  • location.updated
  • location.deleted
Locations API

Bill of Material (lot)

  • lot.created
  • lot.updated
  • lot.deleted
  • lot.copied

BoM API
ℹ️ if created from a copy, will include origin_key which is the original item number

Products

  • product.created
  • product.updated
  • product.deleted
  • product.copied

Products API
ℹ️ if created from a copy, will include origin_key which is the original item number

Units

  • unit.created
  • unit.updated
Units API

Inventory & Movements


ℹ️ Read more about managing your warehouse operations, including stock adjustments, internal movements, checking processes, and inventory transactions in our guide "Intro to Inventory".

Inventory changes

💡

Good to know:

  • Events will be sent for changes in inventory for BoMs (lots) and products.
  • Type can be any of stock, available, in_order, purchased.
Event nameExample dataExtra info
inventory.changed: any change to inventory for an item.{"item": "robot", "item_type": "product", "previous": 1, "current": 2, "action": "increased", "type": "stock"}
inventory.reached_zero: once an item has zero (0) in inventory.{"item": "robot", "item_type": "product", "previous": 2, "current": 0, "type": "available"}
inventory.reached_minimum: once an item has reached the set minimum stock in inventory.{"item": "robot", "item_type": "lot", "previous": 200, "current": 100, "minimum": 150, "type": "stock"}ℹ️ will only trigger for stock

Inventory transactions

Event name: inventory_transaction.created

Example payload:

{
  "id": 1,
  "item": {
      "number": "shoe-box-1001",
      "type": "product",
      "totals": {
          "value": 377.5,
          "quantity": 250,
          "cost_price": 1.51
      }
  },    
  "location": {
      "number": 1000,
      // Totals are for item on that location, not for the location alone.
      "totals": {
          "value": 151.0,
          "quantity": 100,
          "cost_price": 1.51
      }
  },
  "quantity": 100,
  "cost_price": 1.51,
  "effective_from": "2019-08-01T11:39:10.958426+00:00"
}

Movements

Event name: movement.booked

Purchasing & Suppliers


Entity

Event name

Extra info

Suppliers

  • supplier.created
  • supplier.updated
Supplier API

Supplier contacts

  • supplier_contact.created
  • supplier_contact.updated
Supplier API

Supplier invoices

  • supplier_invoice.booked
  • supplier_invoice.created
  • supplier_invoice.updated
  • supplier_invoice.partly_received
  • supplier_invoice.received
Supplier Invoice API

Purchase orders

  • purchase_order.updated
  • purchase_order.booked
  • purchase_order.created
  • purchase_order.partly_received
  • purchase_order.received
Purchase Order API

Purchase receipts

  • purchase_order_receipt.created
  • purchase_order_receipt.deleted
  • purchase_order_receipt.received
Purchase Receipts API

Sales & Customers


Entity

Event name

Extra info

Customers

  • customer.created
  • customer.updated
Customer API

Customer contacts

  • customer_contact.created
  • customer_contact.updated
  • customer_contact.deleted
Customer API

Customer invoices

  • customer_invoice.booked
  • customer_invoice.created
  • customer_invoice.updated
Customer Invoices API

Orders

  • order.created
  • order.updated
  • order.deleted
  • order.booked
  • order.shipped
  • order.invoice_created
  • order.cancelled
Orders API

Shipments

  • order_shipment.created
  • order_shipment.deleted
  • order_shipment.picked
  • order_shipment.partly_picked
  • order_shipment.unpicked
  • order_shipment.shipped
Shipments API

Shipments / Picking

  • order_shipment_line.picked
  • order_shipment_line.unpicked

Shipments API
ℹ️ An extra attribute shipment_id will be attached to these payloads to locate the corresponding shipment.

Example payload for order shipment lines:

{  
    "key":          123,    // Line ID  
    "key_name":     "id",   // Name of the key in Rackbeat. For shipment lines its "id".  
    "shipment_id":  1,      // The related shipment's ID  
}