Skip to main content

Webhooks and endpoints by scenario

Use this page as a quick reference for the default webhooks your application receives and the endpoints it calls in each baseline scenario. It summarizes the flows detailed in the OFO, POS, and 3PL roadmaps so you can confirm coverage before you submit for certification.

Every application also completes the shared readiness baseline, including the Ping (ping.ping) connectivity check. Confirm the final requirements for your product with your Otter representative before you submit.

Online food ordering (OFO)​

Your marketplace or ordering channel sends orders into Otter and receives menu and storefront changes.

Webhooks you receive​

WebhookPurpose
Menu Publish (menus.menu_publish)Apply a published menu from Otter.
Menu upsert hours (menus.upsert_hours)Apply menu hours changes.
Update menu entities availabilities (menus.update_menu_entities_availabilities)Apply item and modifier availability changes.
Order status update (orders.order_status_update)React to order status and cancellation changes.
Get store availability (storefront.get_store_availability)Report whether the store can accept orders.
Pause store (storefront.pause_store)Stop accepting orders for the store.
Unpause store (storefront.unpause_store)Resume accepting orders for the store.

Endpoints you call​

EndpointPurpose
POST /v1/menus/publishReport the menu publish result.
POST /v1/menus/hoursReport the menu hours result.
POST /v1/menus/entity/availability/bulkReport the availability update result.
POST /v1/ordersSend a marketplace order into Otter.
POST /v1/orders/{orderId}/statusAdvance or cancel an order.
POST /v1/storefront/hoursConfigure store hours.
POST /v1/storefront/availabilityChange whether the store can accept orders.

See the OFO roadmap for the full sequence.

Point of sale (POS)​

Your POS receives orders from Otter and is the source of truth for menus.

Webhooks you receive​

WebhookPurpose
Order creation (orders.new_order)Ingest a new order once into the POS.
Order status update (orders.order_status_update)Apply status transitions to the same POS order.

Endpoints you call​

EndpointPurpose
POST /v1/menusCreate or update the POS-owned catalog.
GET /v1/menus/jobs/{jobId}Poll the menu job until it succeeds or fails.

Publishing the catalog to targets and suspending entities are covered by the Publish menus to a target and Suspend or unsuspend entities how-tos. See the POS roadmap for the full sequence.

Third-party logistics (3PL)​

Your delivery network quotes, accepts, and fulfills delivery jobs.

Webhooks you receive​

WebhookPurpose
Request delivery quotes (delivery.request_quote)Return available delivery options.
Accept delivery (delivery.accept)Reserve and allocate the selected service.
Update delivery request (delivery.update_request)Apply supported changes to a delivery.
Cancel delivery (delivery.cancel)Stop a delivery job when allowed.

Endpoints you call​

EndpointPurpose
POST /v1/delivery/{deliveryReferenceId}/quotesReturn quote options with stable quote ids.
POST /v1/delivery/{deliveryReferenceId}/acceptConfirm allocation with committed estimates.
PUT /v1/delivery/{deliveryReferenceId}/statusPublish live delivery updates.
POST /v1/delivery/{deliveryReferenceId}/updateReply to an update request.
POST /v1/delivery/{deliveryReferenceId}/cancelReply to a cancellation.
POST /v1/delivery/callback/errorReport a failure for a webhook-triggered operation.

See the 3PL roadmap for the full sequence.

Next​