Skip to main content

Order Management

After a merchant connects one of your locations to Stream, you will be able to send orders to us to forward to their POS system via the New Webhook Event (DSP -> Stream) endpoint.

After we process an order, there are multiple actions that may take place before the final fulfillment of the order. These actions include:

Order Identifiers

To ensure successful ingestion of the order, ensure the line item identifiers align with the following.

Order FieldMenu Field
Order.items[x].idMenu[x].categories[x].items[x].variations[x].id
Order.items[x].modifiers[x].idMenu[x].categories[x].items[x].modifier_groups[x].modifiers[x].id
caution

Only orders with a fulfillment_type of "drive_thru" may be submitted as unpaid. All other orders submitted through this integration must be paid at the time of submission.

Order Fulfillment Types

There are multiple types of fulfillment that can be submitted to Stream.

  • delivery: An order that is being delivered to a customer.
  • merchant_managed_delivery: An order that is being delivered to a customer by a merchant's employee / dispatch system.
  • pickup: An order that is being picked up by a customer.
  • curbside: An order that is being picked up by a customer at a curbside location.
  • drive_thru: An order that is being picked up at a drive thru window.

Accepting Orders

When an order is successfully injected into the merchant's POS system, we will notify you via the New Webhook Event (Stream -> DSP) endpoint with an event type of location.order.accept.

Failing Orders

When we are unable to inject an order into the merchant's POS system, we will notify you via the New Webhook Event (Stream -> DSP) endpoint with an event type of location.order.fail.

Notifying Order Status Change

When the status of an order changes in a way that affects the customer (e.g. Ready to pickup, Out for delivery), we will notify you via the New Webhook Event (Stream -> DSP) endpoint with an event type of location.order.notify_status_change.

Canceling Orders

Although we do our best to make sure that orders that can not be fulfilled do not get accepted. Sometimes orders are accepted and then canceled by the merchant. When this happens, we will notify you via the New Webhook Event (Stream -> DSP) endpoint with an event type of location.order.cancel.

If a customer decides to cancel an order from your platform, you can notify us via the New Webhook Event (DSP -> Stream) endpoint.