Skip to content

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/quote

Authentication: None (Public)

Rate Limit: 100/min per IP

Path Parameters

ParameterTypeDescription
locationstringLocation 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"
}
FieldTypeRequiredDescription
dropoff_addressstringYesDrop-off street address
dropoff_citystringYesDrop-off city
dropoff_statestringYesDrop-off state/province code
dropoff_zipstringYesDrop-off postal code
dropoff_namestringNoRecipient name
dropoff_phonestringNoRecipient phone
scheduled_atstringNoRequested 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"
      }
    ]
  }
}
FieldTypeDescription
quotes[].quote_idstringProvider quote reference. Carry this through checkout.
quotes[].providerstringDelivery provider (e.g. DoorDash, Uber Direct)
quotes[].feenumberDelivery fee in USD (quotes are returned cheapest-first)
quotes[].eta_minintegerMinimum ETA in minutes from now
quotes[].eta_maxintegerMaximum ETA in minutes from now
quotes[].expiresstring | nullISO 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

StatusMessageCondition
404Location not foundUnknown location
422Delivery is not available for this locationLocation has delivery disabled
422Delivery is not available from this location right nowLocation has no pickup address precise enough to geocode
422Unable to get delivery quotesProvider returned no quotes / upstream error

Changelog
DateChange
2026-06-17Initial publication.

ShopHero CommerceCore Platform