Appearance
Delivery
For delivery orders, request a delivery quote before calculating order totals. KitchenClick brokers delivery through a third-party logistics provider (Burq) and returns one or more provider quotes with fees and ETAs. The selected quote's fee feeds into POST /orders/calculate and is echoed back when the order is submitted.
Get Delivery Quote
POST /v1/ecommerce/locations/{location}/delivery/quoteAuthentication: None (Public)
Rate Limit: 100/min per IP
Path Parameters
| Parameter | Type | Description |
|---|---|---|
location | string | Location ID (e.g. loc_00000k1L2m3N4o5) |
The pickup address is derived server-side from the location's address — you only supply the drop-off.
Request Body
json
{
"dropoff_address": "456 Oak Avenue",
"dropoff_city": "Austin",
"dropoff_state": "TX",
"dropoff_zip": "78702",
"dropoff_name": "John Doe",
"dropoff_phone": "(555) 123-4567",
"scheduled_at": "2026-06-18T18:00:00"
}| Field | Type | Required | Description |
|---|---|---|---|
dropoff_address | string | Yes | Drop-off street address |
dropoff_city | string | Yes | Drop-off city |
dropoff_state | string | Yes | Drop-off state/province code |
dropoff_zip | string | Yes | Drop-off postal code |
dropoff_name | string | No | Recipient name |
dropoff_phone | string | No | Recipient phone |
scheduled_at | string | No | Requested delivery time in the store's local timezone (naive, no offset). Omit for ASAP. Converted to UTC server-side. |
Response
json
{
"status": "ready",
"data": {
"quotes": [
{
"quote_id": "burq_quote_abc123",
"provider": "DoorDash",
"fee": 5.99,
"eta_min": 20,
"eta_max": 35,
"expires": "2026-06-18T17:45:30Z"
},
{
"quote_id": "burq_quote_def456",
"provider": "Uber Direct",
"fee": 7.49,
"eta_min": 15,
"eta_max": 25,
"expires": "2026-06-18T17:45:30Z"
}
]
}
}| Field | Type | Description |
|---|---|---|
quotes[].quote_id | string | Provider quote reference. Carry this through checkout. |
quotes[].provider | string | Delivery provider (e.g. DoorDash, Uber Direct) |
quotes[].fee | number | Delivery fee in USD (quotes are returned cheapest-first) |
quotes[].eta_min | integer | Minimum ETA in minutes from now |
quotes[].eta_max | integer | Maximum ETA in minutes from now |
quotes[].expires | string | null | ISO 8601 expiry of the quote, if provided |
TIP
Quotes are not persisted. Re-request a quote if the customer changes the address or the previous quote expires, and pass the chosen fee into order calculation.
Errors
| Status | Message | Condition |
|---|---|---|
404 | Location not found | Unknown location |
422 | Delivery is not available for this location | Location has delivery disabled |
422 | Delivery is not available from this location right now | Location has no pickup address precise enough to geocode |
422 | Unable to get delivery quotes | Provider returned no quotes / upstream error |
Changelog
| Date | Change |
|---|---|
| 2026-06-17 | Initial publication. |