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


EntityEvent nameExtra 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".

EntityEvent nameExtra 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 a BOM is created from a copy, will include origin_key which is the original item number.
  • If a BOM is converted from a product, the product will be deleted before a new BOM is created. For better reference the product.deleted webhook will include a boolean converted_to_lot .
Products
  • product.created
  • product.updated
  • product.deleted
  • product.copied
Products API
  • If a product is created from a copy, will include origin_key which is the original item number.
  • If a BOM is converted from a product, the product will be deleted before a new BOM is created. For better reference the product.deleted webhook will include a boolean converted_to_lot .
Product Groups
  • product_group.created
  • product_group.updated
Item Groups API
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


EntityEvent nameExtra 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


EntityEvent nameExtra 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  
}