Configuring Webhooks
Webhooks are HTTP-based notifications that leverage Extensiv's REST API to retrieve transaction and inventory data based on "events" that take place in the 3PL Warehouse Management. Once webhooks are configured in 3PL Warehouse Manager, you or your developer resource can parse and interpret the data as needed for your operations.
This article reviews how to configure webhooks.
To access the Event Notifications page, you must have the following permission assigned to your user role: Customer Module > Data Connections.
To learn more about webhooks, see Webhooks FAQs.
Configuration steps
Each webhook event falls into seven event types (Order, Receipt, Adjustment, Assembly, Order Item, Item, or Inventory Summary). Additionally, certain events can include its resource, which contains details about the transaction that spawned the event. You can find the full list of events and resources in the tables below.
- To get started, navigate to Customers > Event Notifications in 3PL Warehouse Manager.
- In the left panel, select the Webhook Scope that best fits your needs. You can select a specific customer or set up a webhook for "Any Customer" if you want to receive events across all of your customers.
- To create a new webhook, click New Webhook above the grid.
- Enter a Description that describes what the webhook is used for—this value is primarily used to help you organize webhooks in the grid, then enter the appropriate Destination URL (must begin with https://)
- Select an Event Type from the drop-down list, then select the appropriate event(s) and resource(s) to include in your webhook. You can find detailed descriptions for each event and resource in the tables below.
Including resources in your payload allows you to retrieve the full object attached with the event notification, rather than just the relevant transaction ID. For example, for an "order create" event, the webhook not only communicates that an order was created, but also includes all the order details. Note that including these details could significantly increase your webhooks data usage.
- Click Save to create the webhook.
Once an event is configured with your endpoint, the event triggers the WMS to send a message to the specified destination URL. You can view webhook utilization in the Support Portal on the Account page:
To learn how to properly implement webhooks once configured, see Implementing Webhooks.
Events and resources
There are seven different event types currently available for webhooks: Order, Receipt, Adjustment, Assembly, Order Item, Item, and Inventory Summary. The events and resources for each event type are detailed below, as well as the API documentation links (i.e., the recommended APIs to be used to retrieve parsed or all details of each event).
If you or your developer want to understand the properties associated with a specific detailed resource, you can access the body relevant to each resource by doing the following:
- Select the relevant API documentation link in one of the tables below.
- In the Example Request section, click View More.
- Use < Ctrl + F > on your keyboard to search for the node name (e.g., savedElements—the name shows in the documentation link parameter within the table).
- Once you find the node, the relevant details are located within the curly brackets that immediately follow the node. This information should help you or your developer resource understand how to call these details.
Order
The events associated with orders are as follows:
Order Event | Event Trigger | API Documentation Link |
OrderCreate |
When a new order is created | GET Order |
OrderComplete |
When an order is marked as Complete | GET Order |
OrderUpdate |
When a change is saved to an existing order |
GET Order GET User |
OrderConfirm |
When an order is moved to a Closed status | GET Order |
OrderUnconfirm |
When a Closed order is reopened |
GET Order GET User |
OrderCancel |
When an order is moved to a Canceled status |
GET Order GET User |
Deleted | When an order is removed entirely from the database | N/A—internal use only* |
OrderFullyAllocated |
When all of an order's line item quantities are allocated to on-hand inventory | GET Order |
OrderExcludedFromPickJob |
When an order is removed from an existing pick job, or when an associated pick job is deleted |
GET Order GET Orders Picklist GET User |
Pick job - user assigned | When a pick job has a picker assigned (or re-assigned) to it | Working on a known issue with this event—documentation coming soon! |
Pick job - user unassigned | When a pick job has its assigned picker removed | Working on a known issue with this event—documentation coming soon! |
OrderPickJobDone | When a pick job is completed for an order |
GET Orders Picklist GET User |
Pack - started (Currently labeled as "Pick job - started, which will be corrected on 4/28) |
When a pack job begins for an order |
GET Order GET User |
Pack Complete | When an order is fully packed (i.e., when its Pack Done Date is set) |
GET Order GET User |
The resources available to include in order events are as follows:
Order Resource | Description | API Documentation Link |
Default ("Include resource in payload" option) | Enable and selects the resource payloads to be included in the webhook message | GET Order |
Order custom fields | Includes any order-level custom fields | GET order/{id}?detail=savedElements |
Packages | Includes package details, if available | GET order/{id}?detail=packages |
Contacts | Includes the order's Ship To, Bill To, and/or Sold To information | GET order/{id}?detail=contacts |
Billing details | Includes billing charges applied to the order | GET order/{id}?detail=billingDetails |
Outbound serial numbers | Includes outbound serial numbers scanned at the time of packing | GET order/{id}?detail=outboundSerialNumbers |
Small parcel | Includes the small parcel carrier and routing details | GET order/{id}?detail=smallParcel |
Parcel options | Includes small parcel settings | GET order/{id}?detail=parcelOptions |
Order items | Includes the order line items | GET order/{id}?detail=orderItems |
Order items > Item custom fields | Includes the ordered items and any custom fields at the line-item-level | GET order/{id}?detail=orderItems&Itemdetail=savedElements |
Order items > Allocations | Includes the ordered items and their inventory allocations info | GET order/{id}?detail=orderItems&Itemdetail=allocations |
Order items > Allocations with detail | Includes the ordered items and their inventory allocations with details | GET order/{id}?detail=orderItems&Itemdetail=allocationsWithDetail |
Receipt
The events associated with receipts are as follows:
Receipt Event | Event Trigger | API Documentation Link |
Create | When a new receipt is created | GET Receiver |
Complete | When a receipt is marked as Complete | GET Receiver |
Update | When a change is saved to an existing receipt |
GET Receiver GET User |
Confirm | When a receipt is moved to a Closed status | GET Receiver |
Unconfirm | When a Closed receipt is reopened |
GET Receiver GET User |
Cancel | When a receipt is moved to a Canceled status |
GET Receiver GET User |
Delete | When a receipt is removed entirely from the database | N/A—internal use only* |
The resources available to include in receipt events are as follows:
Receipt Resource | Description | API Documentation Link |
Default ("Include resource in payload" option) | Enables and selects the resource payloads to be included in the webhook message | GET Receiver |
Receipt custom fields | Includes any receipt-level custom fields | GET /inventory/receivers/{{receiver_id}}?detail=SavedElements |
Billing details | Includes billing charges applied to the receipt | GET /inventory/receivers/{{receiver_id}}?detail=BillingDetails |
Receive items | Includes the receipt line items | GET /inventory/receivers/{{receiver_id}}?detail=ReceiveItems |
Adjustment
The events associated with adjustments are as follows:
Adjustment Event | Event Trigger | API Documentation Link |
Create | When a new adjustment is created | GET Adjustment |
Confirm | When an adjustment is marked as Complete | GET Adjustment |
Cancel | When an adjustment is moved to a Canceled status | GET Adjustment |
Update | When a change is saved to an existing adjustment | GET Adjustment |
Delete | When an adjustment is removed entirely from the database | N/A—internal use only* |
The resources available to include in adjustment events are as follows:
Adjustment Resource | Description | API Documentation Link |
Default ("Include resource in payload" option) | Includes the adjustment resource payload | GET Adjustment |
Assembly
The events associated with assembly transactions are as follows:
Assembly Event | Event Trigger | API Documentation Link |
Create | When a new assembly transaction is created | GET Assembly |
Cancel | When an assembly transaction is moved to a Canceled status | GET Assembly |
Delete | When an assembly is removed entirely from the database | N/A—internal use only* |
Update | When a change is saved to an existing assembly transaction | GET Assembly |
Confirm | When an assembly transaction is marked as Complete | GET Assembly |
The resources available to include in assembly events are as follows:
Assembly Resource | Description | API Documentation Link |
Default ("Include resource in payload" option) | Includes complete assembly payload | GET Assembly |
Order item
The events associated with order items are as follows:
Order Item Event | Event Trigger | API Documentation Link |
Pack | When an order line item is associated with a package | GET Orders Item |
Unpack | When an order line item is unassociated from a package | GET Orders Item |
Pick | When an order line item is picked | GET Orders Item |
Unpick | When an order line item is unpicked | GET Orders Item |
The resources available to include in order item events are as follows:
Order Item Resource | Description | API Documentation Link |
Item custom fields | Includes the order line item custom fields. | GET /orders/{id}/items/{iid}?detail=SavedElements |
Allocations | includes the order line item inventory allocations. | GET /orders/{id}/items/{iid}?detail=Allocations |
Allocations with detail | includes the order line item inventory allocations with details. | GET /orders/{id}/items/{iid}?detail=AllocationsWithDetail |
Item
The events associated with items are as follows:
Item Event | Event Trigger | API Documentation Link |
Create | When a new item is created | GET Item |
Update | When a change is saved to an existing item (including when it is deactivated) | GET Item |
Delete | When an item is removed entirely from the database | N/A—internal use only* |
The resources available to include in item events are as follows:
Item Resource | Description | API Documentation Link |
Default ("Include resource in payload" option) | Includes the complete item payload | GET Item |
Inventory summary
The events associated with inventory summaries are as follows:
Inventory Summary Event | Event Trigger | API Documentation Link |
Update | When a stock status record is created, changed, or deleted (i.e., when the on-hand or available amount changes for an item) |
GET Stock Summaries |
The following resources for inventory summary events are automatically included:
Inventory Summary Resource | Description | API Documentation Link |
Default ("Include resource in payload" option) | Includes the Stock Summaries payload | GET Stock Summaries (SKU) |
*Delete events should not happen under normal circumstances. If you find that it does, please contact Technical Support.