---
updatedAt: 2026-07-21T16:56:12.000Z
agentTools:
  projectIndex: https://developers.deliverect.com/v3.0-ordering-experience/llms.txt
---

# Busy mode

## Purpose

When a store is busy it may choose to restrict the flow of incoming orders either by **temporarily pausing their store** or by **increasing the expected pickup time of orders**. These events are sent via the Busy Mode webhook and should initiate real time updates to a stores availability.

## Format

Busy mode events will specify the target store via it's unique <Glossary>channelLinkId</Glossary> together with one of three updated `status` detailed below.

| Status   | Meaning                                                                                                                                                                                   |
| :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `PAUSED` | The store should be 'paused' and closed to online orders until further notification                                                                                                       |
| `BUSY`   | The store is currently busy and **ASAP orders should not be possible,&#x20;**&#x74;he specified `"delay"` in minutes should be clearly communicated to guests when processing new orders. |
| `ONLINE` | This is a request to disable busy mode. The store should be open as normal.                                                                                                               |

## Request

See below examples of busy mode events to expect;

```json PAUSED
{
    "accountId": "5b****71c6489f0029****d4",
    "locationId": "5c****ecc6489f0001****b8",
    "channelLinkId": "5e****abc11dec0001****9b",
    "status": "PAUSED"
}
```
```json ONLINE
{
    "accountId": "5b****71c6489f0029****d4",
    "locationId": "5c****ecc6489f0001****b8",
    "channelLinkId": "5e****abc11dec0001****9b",
    "status": "ONLINE"
}
```
```json BUSY
{
    "accountId": "61e14f0c888c8389fa5908bb",
    "locationId": "633d62de0f******f893bdf",
    "channelLinkId": "647618*******166c858de0b0",
    "status": "BUSY",
    "delay": 30
}
```

## Response

The response should indicate pausing or unpausing the store was successful with a `200 OK` status code. The body of the response should echo the current status of the store after having made the change ("PAUSED" , "ONLINE", "BUSY").&#x20;

```json Store Paused 200 OK
{
  "status": "PAUSED"
}
```
```json Store Online 200 OK
{
  "status": "ONLINE"
}
```
```json Store Busy 200 OK
{
  "status": "BUSY"
}
```

<br />

# OpenAPI definition

````json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Channel Webhooks",
    "description": "Recieve real time webhook events for various store operations",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://yourwebhook.com/",
      "description": "Placeholder for the webhook URL channels will provide to Deliverect during setup."
    }
  ],
  "paths": {
    "/channel/busy_mode": {
      "post": {
        "summary": "Busy mode",
        "description": "",
        "operationId": "channel_busy_mode",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          }
        },
        "deprecated": false,
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "application/json",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "User-Agent",
            "in": "header",
            "description": "Deliverect/{version}",
            "schema": {
              "type": "string",
              "default": "Deliverect/{version}"
            }
          },
          {
            "name": "X-Server-Authorization-HMAC-SHA256",
            "in": "header",
            "description": "{signature}",
            "schema": {
              "type": "string",
              "default": "{signature}"
            }
          }
        ]
      }
    }
  },
  "webhooks": {
    "https://yourwebhook.com/register": {
      "post": {
        "summary": "Channel Registration",
        "description": "",
        "operationId": "channel_register1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "status",
                  "channelLocationId",
                  "channelLinkId",
                  "locationId",
                  "channelLinkName"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "The store's onboarding status:\n\n- `register` — A new store/location needs to establish a connection between Deliverect and a channel platform\n- `active` — A new store/location is ready to start receiving orders into Deliverect from the channel platform\n- `inactive` — A customer wants to stop receiving orders to this store/location from the channel platform",
                    "enum": [
                      "register",
                      "active",
                      "inactive"
                    ],
                    "example": "register"
                  },
                  "channelLocationId": {
                    "type": "string",
                    "description": "An identifier which can be set in Deliverect, which is known to the Merchant and allows mapping to the corresponding Deliverect channel link",
                    "example": "UniqueIdInChannelForThisLocation"
                  },
                  "channelLinkId": {
                    "type": "string",
                    "description": "The <Glossary>channelLinkId</Glossary> is the unique store identifier in Deliverect for a specific channel in a location",
                    "example": "{{channelLinkId}}"
                  },
                  "locationId": {
                    "type": "string",
                    "description": "<Glossary>Location</Glossary>Id is the unique identifier of the location in Deliverect.",
                    "example": "{{locationId}}"
                  },
                  "channelLinkName": {
                    "type": "string",
                    "description": "The channel name displayed in Deliverect.",
                    "example": "Order Boss"
                  }
                }
              },
              "examples": {
                "register": {
                  "summary": "Register",
                  "description": "As the first onboarding step to initiate store mapping, the `register` status is sent and in response requires a JSON body including all supported webhook URLs (see <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/reference/channel_register#response-schemas\" target=\"_self\">Response body</a>)",
                  "value": {
                    "status": "register",
                    "channelLocationId": "UniqueIdInChannelForThisLocation",
                    "channelLinkId": "{{channelLinkId}}",
                    "locationId": "{{locationId}}",
                    "channelLinkName": "Order Boss"
                  }
                },
                "active": {
                  "summary": "Activate",
                  "description": "When a store is ready, the `active` status confirms that all integration functions are to be enabled as the store is ready to start receiving orders.",
                  "value": {
                    "status": "active",
                    "channelLocationId": "{{externalChannelLocationId}}",
                    "channelLinkId": "{{channelLinkId}}",
                    "locationId": "{{locationId}}",
                    "channelLinkName": "Order Boss"
                  }
                },
                "inactive": {
                  "summary": "Deactivate",
                  "description": "For offboarding, the `inactive` status confirms the customer wants to stop receiving orders to this store and needs fully de-integrated.",
                  "value": {
                    "status": "inactive",
                    "channelLocationId": "{{externalChannelLocationId}}",
                    "channelLinkId": "{{channelLinkId}}",
                    "locationId": "{{locationId}}",
                    "channelLinkName": "Order Boss"
                  }
                }
              }
            }
          },
          "required": true,
          "description": "To facilitate store onboarding, Deliverect first sends a `register` event to initiate store mapping on the channel side, where a JSON body listing all supported webhook URLs is expected in response (see <a href=\"https://developers.deliverect.com/v3.0-ordering-experience/reference/channel_register#response-schemas\" target=\"_self\">Response body</a>). When customers are ready to launch, an `active` status confirms that integrations functions like ordering, menu management etc should be switched on. If a store is to be offboarded sends an `inactive` event is sent and all aspects of the connection should be de-integrated."
        },
        "responses": {
          "200": {
            "description": "For a `register` event, return the JSON object below with the correct endpoint to use for each webhook event type. Deliverect stores these automatically, so no manual configuration is needed. For `active` and `inactive` events, no response body is expected; return a `200` only.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "<div class=\"callout-banner callout-banner--neutral\">\n  <span class=\"callout-icon\"><i class=\"fa-regular fa-square-info\"></i></span>\n  <p>\n    Please note, the expected response to a <code>register</code> event is\n    <strong>case-sensitive</strong> ensure the response matches the required format exactly.\n  </p>\n</div>\n\n```json\n{\n  \"statusUpdateURL\": \"https://integrator.com/statusUpdate\",\n  \"menuUpdateURL\": \"https://integrator.com/menuUpdate\",\n  \"snoozeUnsnoozeURL\": \"https://integrator.com/snoozeUnsnooze\",\n  \"busyModeURL\": \"https://integrator.com/busyMode\",\n  \"updatePrepTimeURL\": \"https://integrator.com/updatePrepTimeURL\",\n  \"courierUpdateURL\": \"https://yourwebhook.com/courier_update\",\n  \"paymentUpdateURL\": \"https://yourwebhook.com/payment_update\",\n  \"authorizationURL\": \"https://yourwebhook.com/authorization\",\n  \"menuUrl\": \"https://integrator.com/store\"\n}\n```",
                  "required": [
                    "statusUpdateURL",
                    "menuUpdateURL",
                    "snoozeUnsnoozeURL",
                    "busyModeURL"
                  ],
                  "properties": {
                    "statusUpdateURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/channel_order_status\" target=\"_self\">Order Status Update</a> events",
                      "example": "https://integrator.com/statusUpdate"
                    },
                    "menuUpdateURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/channel_menu_update\" target=\"_self\">Menu Update</a> requests",
                      "example": "https://integrator.com/menuUpdate"
                    },
                    "snoozeUnsnoozeURL": {
                      "type": "string",
                      "description": "Receive both <a href=\"/reference/channel_snooze\" target=\"_self\">Snooze / Unsnooze Products</a> requests",
                      "example": "https://integrator.com/snoozeUnsnooze"
                    },
                    "busyModeURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/busy-mode\" target=\"_self\">Busy mode</a> requests (paused/online)",
                      "example": "https://integrator.com/busyMode"
                    },
                    "updatePrepTimeURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/channel_prep_time\" target=\"_self\">Preparation Time Update</a> requests",
                      "example": "https://integrator.com/updatePrepTimeURL"
                    },
                    "courierUpdateURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/courier-update-webhook\" target=\"_self\">Courier Update</a> events",
                      "example": "https://yourwebhook.com/courier_update"
                    },
                    "paymentUpdateURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/payment-update-webhook\" target=\"_self\">Payment Update</a> events",
                      "example": "https://yourwebhook.com/payment_update"
                    },
                    "authorizationURL": {
                      "type": "string",
                      "description": "Receive <a href=\"/reference/channel_authorize\" target=\"_self\">SSO Authorization</a> requests",
                      "example": "https://yourwebhook.com/authorization"
                    },
                    "menuUrl": {
                      "type": "string",
                      "description": "Merchant Store URL / site URL",
                      "example": "https://integrator.com/store"
                    }
                  }
                },
                "examples": {
                  "register": {
                    "summary": "Register Response",
                    "value": {
                      "statusUpdateURL": "https://integrator.com/statusUpdate",
                      "menuUpdateURL": "https://integrator.com/menuUpdate",
                      "snoozeUnsnoozeURL": "https://integrator.com/snoozeUnsnooze",
                      "busyModeURL": "https://integrator.com/busyMode",
                      "updatePrepTimeURL": "https://integrator.com/updatePrepTimeURL",
                      "courierUpdateURL": "https://yourwebhook.com/courier_update",
                      "paymentUpdateURL": "https://yourwebhook.com/payment_update",
                      "authorizationURL": "https://yourwebhook.com/authorization",
                      "menuUrl": "https://integrator.com/store"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "explorer-enabled": false,
          "code-samples": [
            {
              "language": "json",
              "name": "Register",
              "code": "{\n  \"status\": \"register\",\n  \"channelLocationId\": \"UniqueIdInChannelForThisLocation\",\n  \"channelLinkId\": \"{{channelLinkId}}\",\n  \"locationId\": \"{{locationId}}\",\n  \"channelLinkName\": \"Order Boss\"\n}",
              "correspondingExample": "register"
            },
            {
              "language": "json",
              "name": "Activate",
              "code": "{\n  \"status\": \"active\",\n  \"channelLocationId\": \"{{externalChannelLocationId}}\",\n  \"channelLinkId\": \"{{channelLinkId}}\",\n  \"locationId\": \"{{locationId}}\",\n  \"channelLinkName\": \"Order Boss\"\n}",
              "correspondingExample": "active"
            },
            {
              "language": "json",
              "name": "Deactivate",
              "code": "{\n  \"status\": \"inactive\",\n  \"channelLocationId\": \"{{externalChannelLocationId}}\",\n  \"channelLinkId\": \"{{channelLinkId}}\",\n  \"locationId\": \"{{locationId}}\",\n  \"channelLinkName\": \"Order Boss\"\n}",
              "correspondingExample": "inactive"
            }
          ]
        },
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "application/json",
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "User-Agent",
            "in": "header",
            "description": "Deliverect/{version}",
            "schema": {
              "type": "string",
              "default": "Deliverect/{version}"
            }
          },
          {
            "name": "X-Server-Authorization-HMAC-SHA256",
            "in": "header",
            "description": "{signature}",
            "schema": {
              "type": "string",
              "default": "{signature}"
            }
          }
        ]
      }
    }
  }
}
````