Place a delivery order
place_delivery_orderOrders food for delivery in one call: prices the order, quotes the delivery fee, then places it or returns a draft depending on the permission chosen when connecting (get_connection_permissions shows it). With full control it places the order within the spending limits set; with confirm-each-decision it places nothing and returns a draft summary with a draftId that confirm_delivery_order places. Same inputs and rules as draft_delivery_order. idempotencyKey is required: the same key returns the same order instead of creating a second one. When payment is online, the result includes a payment link to WaitApp's payment page where the guest sees the exact charge and pays it; this tool charges nothing. The venue must accept the order after it is placed; track_order follows it by orderCode.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"idempotencyKey": "<idempotencyKey>",
"restaurantId": "<restaurantId>",
"items": "<items>",
"guestName": "<guestName>",
"guestPhone": "<guestPhone>"
},
"name": "place_delivery_order"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| payment | No | ||
| guestName | Yes | ||
| guestPhone | Yes | ||
| restaurantId | Yes | ||
| idempotencyKey | Yes | A unique value you generate for this order; reuse it on any retry | |
| deliveryAddress | No | Full delivery address. Not needed when savedLocationId is given | |
| savedLocationId | No | The id of one of the person's saved locations (see list_saved_locations), used instead of deliveryAddress |